summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/battle_3.s46
-rw-r--r--asm/battle_4.s1088
-rw-r--r--asm/battle_7.s14
-rw-r--r--asm/battle_9.s8
-rw-r--r--asm/battle_anim.s88
-rw-r--r--asm/battle_anim_80A9C70.s (renamed from asm/battle_anin_80A9C70.s)2
-rw-r--r--asm/battle_anim_80FE840.s522
-rw-r--r--asm/battle_anim_8170478.s14
-rw-r--r--asm/battle_anim_sound_tasks.s1006
-rw-r--r--asm/battle_controller_linkopponent.s158
-rw-r--r--asm/battle_controller_linkpartner.s6
-rw-r--r--asm/battle_controller_opponent.s24
-rw-r--r--asm/battle_controller_player.s12
-rw-r--r--asm/battle_controller_player_partner.s12
-rw-r--r--asm/battle_controller_recorded_opponent.s12
-rw-r--r--asm/battle_controller_recorded_player.s6
-rw-r--r--asm/battle_controller_safari.s1412
-rw-r--r--asm/battle_controller_wally.s4
-rw-r--r--asm/battle_message.s82
-rw-r--r--asm/battle_records.s22
-rw-r--r--asm/battle_setup.s62
-rw-r--r--asm/battle_transition.s266
-rw-r--r--asm/berry_blender.s6
-rw-r--r--asm/berry_tag_screen.s16
-rw-r--r--asm/cable_club.s6
-rw-r--r--asm/calculate_base_damage.s1045
-rw-r--r--asm/clear_save_data_screen.s4
-rw-r--r--asm/coins.s2
-rw-r--r--asm/contest_painting.s2
-rw-r--r--asm/daycare.s108
-rw-r--r--asm/decoration.s56
-rw-r--r--asm/decoration_inventory.s459
-rw-r--r--asm/easy_chat.s2
-rw-r--r--asm/egg_hatch.s4
-rw-r--r--asm/evolution_scene.s6
-rw-r--r--asm/field_control_avatar.s32
-rw-r--r--asm/field_player_avatar.s4
-rw-r--r--asm/field_region_map.s4
-rw-r--r--asm/fldeff_80F9BCC.s12
-rw-r--r--asm/fldeff_strength.s4
-rw-r--r--asm/fldeff_sweetscent.s220
-rw-r--r--asm/fldeff_teleport.s2
-rw-r--r--asm/hall_of_fame.s2
-rw-r--r--asm/intro.s2
-rw-r--r--asm/item_use.s6
-rw-r--r--asm/link.s84
-rw-r--r--asm/load_save.s118
-rw-r--r--asm/lottery_corner.s12
-rw-r--r--asm/main_menu.s2
-rw-r--r--asm/mauville_old_man.s6
-rw-r--r--asm/menu_helpers.s6
-rw-r--r--asm/money.s2
-rw-r--r--asm/naming_screen.s6
-rw-r--r--asm/option_menu.s6
-rw-r--r--asm/player_pc.s20
-rw-r--r--asm/pokedex_area_screen.s2
-rw-r--r--asm/pokemon_1.s278
-rw-r--r--asm/pokemon_2.s70
-rw-r--r--asm/pokemon_3.s26
-rw-r--r--asm/pokemon_animation.s (renamed from asm/front_pic_anim.s)0
-rw-r--r--asm/record_mixing.s2
-rw-r--r--asm/recorded_battle.s (renamed from asm/rom_8184DA4.s)54
-rw-r--r--asm/region_map.s8
-rw-r--r--asm/reset_rtc_screen.s10
-rw-r--r--asm/roamer.s502
-rw-r--r--asm/rom3.s12
-rw-r--r--asm/rom4.s52
-rw-r--r--asm/rom6.s36
-rw-r--r--asm/rom_8034C54.s96
-rw-r--r--asm/rom_8072304.s2
-rw-r--r--asm/rom_80A5C6C.s90
-rw-r--r--asm/rom_80C6FA0.s208
-rw-r--r--asm/rom_8145E84.s60
-rw-r--r--asm/rom_8158B30.s29569
-rw-r--r--asm/rom_815A0D4.s14458
-rw-r--r--asm/rom_8161F74.s11568
-rw-r--r--asm/rom_81700F8.s2
-rw-r--r--asm/rom_817C95C.s12
-rw-r--r--asm/rom_818CFC8.s292
-rw-r--r--asm/rom_81BE66C.s126
-rw-r--r--asm/roulette.s26
-rw-r--r--asm/safari_zone.s14
-rw-r--r--asm/scrcmd.s14
-rw-r--r--asm/script.s8
-rw-r--r--asm/script_menu.s28
-rw-r--r--asm/script_pokemon_util_80F87D8.s4
-rw-r--r--asm/secret_base.s12
-rw-r--r--asm/shop.s8
-rw-r--r--asm/slot_machine.s8
-rw-r--r--asm/start_menu.s454
-rw-r--r--asm/starter_choose.s4
-rw-r--r--asm/trade.s10
-rw-r--r--asm/trader.s12
-rw-r--r--asm/trainer_card.s2
-rw-r--r--asm/tv.s22
-rw-r--r--asm/wallclock.s6
-rw-r--r--asm/wild_encounter.s22
97 files changed, 31928 insertions, 33393 deletions
diff --git a/asm/battle_3.s b/asm/battle_3.s
index 9a7a03e6f..db55726d9 100644
--- a/asm/battle_3.s
+++ b/asm/battle_3.s
@@ -141,7 +141,7 @@ _0803FBF8:
str r0, [r1]
movs r6, 0x1
_0803FC06:
- ldr r1, =gUnknown_02024248
+ ldr r1, =gLastUsedMovesByBanks
ldrb r2, [r7]
lsls r0, r2, 1
adds r0, r1
@@ -336,7 +336,7 @@ _0803FDCE:
beq _0803FE58
ldr r0, =gCurrentMove
strh r1, [r0]
- ldr r2, =gUnknown_02024208
+ ldr r2, =gLastUsedItem
ldrb r1, [r7]
movs r0, 0x58
muls r0, r1
@@ -420,8 +420,8 @@ _0803FEB8:
.pool
thumb_func_end sub_803FB4C
- thumb_func_start sub_803FECC
-sub_803FECC: @ 803FECC
+ thumb_func_start CheckMoveLimitations
+CheckMoveLimitations: @ 803FECC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -541,7 +541,7 @@ _0803FFAC:
ldr r1, =gUnknown_02024090
adds r0, r1
mov r12, r0
- ldr r1, =gUnknown_02024248
+ ldr r1, =gLastUsedMovesByBanks
ldr r0, [sp, 0xC]
adds r1, r0, r1
str r1, [sp, 0x18]
@@ -665,7 +665,7 @@ _08040096:
pop {r1}
bx r1
.pool
- thumb_func_end sub_803FECC
+ thumb_func_end CheckMoveLimitations
thumb_func_start sub_80400C8
sub_80400C8: @ 80400C8
@@ -674,7 +674,7 @@ sub_80400C8: @ 80400C8
ldrb r0, [r4]
movs r1, 0
movs r2, 0xFF
- bl sub_803FECC
+ bl CheckMoveLimitations
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0xF
@@ -997,7 +997,7 @@ _0804035A:
strb r0, [r6]
mov r3, r8
strb r0, [r3]
- ldr r0, =gUnknown_0202428E
+ ldr r0, =gSideAffecting
adds r3, r1, r0
ldrh r1, [r3]
movs r0, 0x1
@@ -1082,7 +1082,7 @@ _08040422:
strb r0, [r7]
ldr r3, =gActiveBank
strb r0, [r3]
- ldr r0, =gUnknown_0202428E
+ ldr r0, =gSideAffecting
adds r3, r1, r0
ldrh r1, [r3]
movs r0, 0x2
@@ -1177,7 +1177,7 @@ _080404EC:
lsls r0, 24
cmp r0, 0
bne _0804054E
- ldr r2, =gUnknown_0202428E
+ ldr r2, =gSideAffecting
adds r2, r3, r2
ldrh r0, [r2]
ldr r3, =0x0000feff
@@ -1260,7 +1260,7 @@ _080405C0:
ldrb r0, [r2, 0x7]
strb r0, [r5]
strb r0, [r6]
- ldr r0, =gUnknown_0202428E
+ ldr r0, =gSideAffecting
adds r3, r1, r0
ldrh r1, [r3]
movs r0, 0x20
@@ -2988,7 +2988,7 @@ _080414CC:
_080414DA:
ldrb r0, [r5]
bl GetBankIdentity
- ldr r2, =gUnknown_0202428E
+ ldr r2, =gSideAffecting
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -4237,7 +4237,7 @@ _0804207C:
adds r0, r1, 0
movs r2, 0x1
movs r3, 0
- bl sub_806957C
+ bl CalculateBaseDamage
ldr r1, =gBattleMoveDamage
str r0, [r1]
ldr r0, =gProtectStructs
@@ -6796,11 +6796,11 @@ _08043840:
_08043854:
ldr r0, [sp, 0x8]
ldr r1, [sp, 0x10]
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
adds r4, r0, 0
ldr r0, [sp, 0xC]
ldr r1, [sp, 0x14]
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -6823,7 +6823,7 @@ _08043872:
_0804388E:
ldr r0, [sp, 0x8]
ldr r1, [sp, 0x10]
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
@@ -6832,7 +6832,7 @@ _0804388E:
_080438A2:
ldr r0, [sp, 0xC]
ldr r1, [sp, 0x14]
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
@@ -8200,7 +8200,7 @@ berry_effects_maybe: @ 80444DC
str r1, [sp, 0xC]
add r0, sp, 0x4
strb r1, [r0]
- ldr r4, =gUnknown_02024208
+ ldr r4, =gLastUsedItem
ldr r1, =gBattleMons
movs r0, 0x58
muls r0, r7
@@ -8664,7 +8664,7 @@ _08044958:
str r0, [sp, 0xC]
adds r0, r7, 0
adds r1, r5, 0
- bl b_history__record_item_x12_of_player
+ bl RecordItemEffectBattle
bl _080451D6
.pool
_0804497C:
@@ -9749,7 +9749,7 @@ _08045280:
bcc _0804528C
b _0804582A
_0804528C:
- ldr r4, =gUnknown_02024208
+ ldr r4, =gLastUsedItem
ldr r1, =gBattleMons
movs r0, 0x58
muls r0, r7
@@ -10301,7 +10301,7 @@ _08045794:
beq _0804582A
cmp r1, 0
beq _0804582A
- ldr r0, =gUnknown_02024208
+ ldr r0, =gLastUsedItem
mov r1, sp
ldrh r1, [r1, 0x14]
strh r1, [r0]
@@ -10988,7 +10988,7 @@ _08045E20:
ldrb r1, [r0]
adds r0, r3, 0
movs r2, 0xFF
- bl sub_803FECC
+ bl CheckMoveLimitations
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0xF
@@ -11133,7 +11133,7 @@ _08045F8C:
adds r0, r1, 0
movs r2, 0x1
movs r3, 0
- bl sub_806957C
+ bl CalculateBaseDamage
ldr r1, =gBattleMoveDamage
str r0, [r1]
ldr r1, =gBankTarget
diff --git a/asm/battle_4.s b/asm/battle_4.s
index a7e61faec..ea8b469e5 100644
--- a/asm/battle_4.s
+++ b/asm/battle_4.s
@@ -454,8 +454,8 @@ _0804642A:
.pool
thumb_func_end mcmd_jump_if_move_not_executed
- thumb_func_start atk40_801DBA0
-atk40_801DBA0: @ 804643C
+ thumb_func_start atk40_jump_if_move_affected_by_protect
+atk40_jump_if_move_affected_by_protect: @ 804643C
push {lr}
ldr r1, =gProtectStructs
ldr r0, =gBankTarget
@@ -500,7 +500,7 @@ _080464A4:
pop {r0}
bx r0
.pool
- thumb_func_end atk40_801DBA0
+ thumb_func_end atk40_jump_if_move_affected_by_protect
thumb_func_start sub_80464AC
sub_80464AC: @ 80464AC
@@ -912,7 +912,7 @@ _080467D0:
movs r0, 0x32
mov r8, r0
_08046822:
- ldr r1, =gUnknown_0831C0F4
+ ldr r1, =gAccuracyStageRatios
lsls r0, r5, 24
asrs r0, 22
adds r0, r1
@@ -1508,7 +1508,7 @@ _08046D00:
cmp r0, 0
bne _08046D70
bl Random
- ldr r2, =gUnknown_0831C128
+ ldr r2, =gCriticalHitChance
lsls r1, r5, 1
adds r1, r2
lsls r0, 16
@@ -1537,11 +1537,11 @@ _08046D74:
.pool
thumb_func_end atk04_critcalc
- thumb_func_start atk05_cmd5
-atk05_cmd5: @ 8046D8C
+ thumb_func_start atk05_damagecalc1
+atk05_damagecalc1: @ 8046D8C
push {r4-r7,lr}
sub sp, 0x10
- ldr r4, =gUnknown_0202428E
+ ldr r4, =gSideAffecting
ldr r5, =gBankTarget
ldrb r0, [r5]
bl GetBankIdentity
@@ -1561,7 +1561,7 @@ atk05_cmd5: @ 8046D8C
adds r1, r2
ldr r7, =gCurrentMove
ldrh r2, [r7]
- ldr r4, =gUnknown_02024400
+ ldr r4, =gDynamicBasePower
ldrh r4, [r4]
str r4, [sp]
ldr r4, =gBattleStruct
@@ -1572,7 +1572,7 @@ atk05_cmd5: @ 8046D8C
str r4, [sp, 0x8]
ldrb r4, [r5]
str r4, [sp, 0xC]
- bl sub_806957C
+ bl CalculateBaseDamage
ldr r4, =gBattleMoveDamage
ldr r1, =gCritMultiplier
ldrb r1, [r1]
@@ -1630,10 +1630,10 @@ _08046E32:
pop {r0}
bx r0
.pool
- thumb_func_end atk05_cmd5
+ thumb_func_end atk05_damagecalc1
- thumb_func_start sub_8046E7C
-sub_8046E7C: @ 8046E7C
+ thumb_func_start AI_CalcDmg
+AI_CalcDmg: @ 8046E7C
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -1643,7 +1643,7 @@ sub_8046E7C: @ 8046E7C
lsrs r7, r0, 24
lsls r5, 24
lsrs r5, 24
- ldr r4, =gUnknown_0202428E
+ ldr r4, =gSideAffecting
adds r0, r5, 0
bl GetBankIdentity
movs r1, 0x1
@@ -1661,7 +1661,7 @@ sub_8046E7C: @ 8046E7C
ldr r2, =gCurrentMove
mov r8, r2
ldrh r2, [r2]
- ldr r6, =gUnknown_02024400
+ ldr r6, =gDynamicBasePower
ldrh r4, [r6]
str r4, [sp]
ldr r4, =gBattleStruct
@@ -1670,7 +1670,7 @@ sub_8046E7C: @ 8046E7C
str r4, [sp, 0x4]
str r7, [sp, 0x8]
str r5, [sp, 0xC]
- bl sub_806957C
+ bl CalculateBaseDamage
ldr r4, =gBattleMoveDamage
movs r1, 0
strh r1, [r6]
@@ -1726,7 +1726,7 @@ _08046F28:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8046E7C
+ thumb_func_end AI_CalcDmg
thumb_func_start battle_attack_damage_modulate_by_effectivity
battle_attack_damage_modulate_by_effectivity: @ 8046F60
@@ -1834,8 +1834,8 @@ _08047032:
bx r0
thumb_func_end battle_attack_damage_modulate_by_effectivity
- thumb_func_start sub_8047038
-sub_8047038: @ 8047038
+ thumb_func_start atk06_typecalc
+atk06_typecalc: @ 8047038
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -2108,7 +2108,7 @@ _08047260:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8047038
+ thumb_func_end atk06_typecalc
thumb_func_start b_wonderguard_and_levitate
b_wonderguard_and_levitate: @ 80472A8
@@ -2525,8 +2525,8 @@ _080475DE:
bx r0
thumb_func_end b_attack_effectivity_adapt
- thumb_func_start move_effectiveness_something
-move_effectiveness_something: @ 80475E4
+ thumb_func_start TypeCalc
+TypeCalc: @ 80475E4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -2760,7 +2760,7 @@ _0804779E:
pop {r1}
bx r1
.pool
- thumb_func_end move_effectiveness_something
+ thumb_func_end TypeCalc
thumb_func_start ai_rate_move
ai_rate_move: @ 80477BC
@@ -2924,8 +2924,8 @@ _080478EA:
.pool
thumb_func_end sub_80478B8
- thumb_func_start atk07_cmd7
-atk07_cmd7: @ 80478F4
+ thumb_func_start atk07_dmg_adjustment
+atk07_dmg_adjustment: @ 80478F4
push {r4-r7,lr}
bl Random
lsls r0, 16
@@ -2999,7 +2999,7 @@ _08047976:
bcs _080479B4
ldrb r0, [r5]
movs r1, 0x27
- bl b_history__record_item_x12_of_player
+ bl RecordItemEffectBattle
ldr r2, =gSpecialStatuses
ldrb r1, [r5]
lsls r0, r1, 2
@@ -3094,7 +3094,7 @@ _08047A5C:
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
- ldr r1, =gUnknown_02024208
+ ldr r1, =gLastUsedItem
adds r0, r3, 0
muls r0, r4
adds r0, r5
@@ -3109,10 +3109,10 @@ _08047A84:
pop {r0}
bx r0
.pool
- thumb_func_end atk07_cmd7
+ thumb_func_end atk07_dmg_adjustment
- thumb_func_start atk08_cmd8
-atk08_cmd8: @ 8047AA4
+ thumb_func_start atk08_dmg_adjustment2
+atk08_dmg_adjustment2: @ 8047AA4
push {r4-r7,lr}
bl Random
lsls r0, 16
@@ -3186,7 +3186,7 @@ _08047B26:
bcs _08047B64
ldrb r0, [r5]
movs r1, 0x27
- bl b_history__record_item_x12_of_player
+ bl RecordItemEffectBattle
ldr r2, =gSpecialStatuses
ldrb r1, [r5]
lsls r0, r1, 2
@@ -3267,7 +3267,7 @@ _08047BE8:
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
- ldr r1, =gUnknown_02024208
+ ldr r1, =gLastUsedItem
adds r0, r3, 0
muls r0, r7
adds r0, r4
@@ -3282,7 +3282,7 @@ _08047C10:
pop {r0}
bx r0
.pool
- thumb_func_end atk08_cmd8
+ thumb_func_end atk08_dmg_adjustment2
thumb_func_start atk09_attackanimation
atk09_attackanimation: @ 8047C30
@@ -3454,8 +3454,8 @@ _08047DB6:
.pool
thumb_func_end atk09_attackanimation
- thumb_func_start sub_8047DC8
-sub_8047DC8: @ 8047DC8
+ thumb_func_start atk0A_waitanimation
+atk0A_waitanimation: @ 8047DC8
push {lr}
ldr r0, =gBattleExecBuffer
ldr r0, [r0]
@@ -3469,10 +3469,10 @@ _08047DDA:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8047DC8
+ thumb_func_end atk0A_waitanimation
- thumb_func_start atk0B_graphicalhpupdate
-atk0B_graphicalhpupdate: @ 8047DE8
+ thumb_func_start atk0B_healthbarupdate
+atk0B_healthbarupdate: @ 8047DE8
push {r4,lr}
ldr r0, =gBattleExecBuffer
ldr r0, [r0]
@@ -3545,7 +3545,7 @@ _08047E76:
ldr r0, [r0]
cmp r0, 0
ble _08047EA2
- ldr r0, =gUnknown_03005D10
+ ldr r0, =gBattleResults
ldrb r1, [r0, 0x5]
movs r2, 0x1
orrs r1, r2
@@ -3560,7 +3560,7 @@ _08047EAA:
pop {r0}
bx r0
.pool
- thumb_func_end atk0B_graphicalhpupdate
+ thumb_func_end atk0B_healthbarupdate
thumb_func_start atk0C_datahpupdate
atk0C_datahpupdate: @ 8047EC4
@@ -4037,8 +4037,8 @@ _080482F2:
.pool
thumb_func_end atk0D_critmessage
- thumb_func_start atk0E_missmessage
-atk0E_missmessage: @ 8048310
+ thumb_func_start atk0E_effectiveness_sound
+atk0E_effectiveness_sound: @ 8048310
push {r4,lr}
ldr r0, =gBattleExecBuffer
ldr r0, [r0]
@@ -4136,7 +4136,7 @@ _080483D0:
pop {r0}
bx r0
.pool
- thumb_func_end atk0E_missmessage
+ thumb_func_end atk0E_effectiveness_sound
thumb_func_start atk0F_resultmessage
atk0F_resultmessage: @ 80483E0
@@ -4221,7 +4221,7 @@ _08048474:
movs r3, 0x99
b _0804856E
_08048478:
- ldr r4, =gUnknown_02024208
+ ldr r4, =gLastUsedItem
ldr r2, =gBattleMons
ldr r3, =gBankTarget
ldrb r1, [r3]
@@ -4286,7 +4286,7 @@ _08048510:
ands r0, r5
cmp r0, 0
beq _08048558
- ldr r4, =gUnknown_02024208
+ ldr r4, =gLastUsedItem
ldr r2, =gBattleMons
ldr r3, =gBankTarget
ldrb r1, [r3]
@@ -4368,8 +4368,8 @@ _080485BA:
.pool
thumb_func_end atk10_printstring
- thumb_func_start atk11_printstring2
-atk11_printstring2: @ 80485D0
+ thumb_func_start atk11_printstring_playeronly
+atk11_printstring_playeronly: @ 80485D0
push {r4,r5,lr}
ldr r5, =gActiveBank
ldr r0, =gBankAttacker
@@ -4395,7 +4395,7 @@ atk11_printstring2: @ 80485D0
pop {r0}
bx r0
.pool
- thumb_func_end atk11_printstring2
+ thumb_func_end atk11_printstring_playeronly
thumb_func_start atk12_waitmessage
atk12_waitmessage: @ 8048614
@@ -4480,8 +4480,8 @@ _080486AE:
.pool
thumb_func_end atk13_printfromtable
- thumb_func_start atk14_printfromtable2
-atk14_printfromtable2: @ 80486C4
+ thumb_func_start atk14_printfromtable_playeronly
+atk14_printfromtable_playeronly: @ 80486C4
push {r4-r6,lr}
ldr r0, =gBattleExecBuffer
ldr r0, [r0]
@@ -4522,7 +4522,7 @@ _0804870E:
pop {r0}
bx r0
.pool
- thumb_func_end atk14_printfromtable2
+ thumb_func_end atk14_printfromtable_playeronly
thumb_func_start sub_8048728
sub_8048728: @ 8048728
@@ -4637,7 +4637,7 @@ _08048828:
mov r3, r9
ldrb r0, [r3]
bl GetBankIdentity
- ldr r2, =gUnknown_0202428E
+ ldr r2, =gSideAffecting
movs r1, 0x1
ands r1, r0
lsls r1, 1
@@ -4726,7 +4726,7 @@ _080488FC:
bls _08048906
b _08048F40
_08048906:
- ldr r1, =gUnknown_0831C134
+ ldr r1, =gStatusFlagsForMoveEffects
ldr r2, =gBattleCommunication
ldrb r0, [r2, 0x3]
lsls r0, 2
@@ -5350,7 +5350,7 @@ _08048DFC:
ldr r0, [r0]
adds r0, 0x1
bl b_movescr_stack_push
- ldr r1, =gUnknown_0831C134
+ ldr r1, =gStatusFlagsForMoveEffects
ldr r0, =gBattleCommunication
ldrb r0, [r0, 0x3]
lsls r0, 2
@@ -5387,7 +5387,7 @@ _08048E50:
str r0, [r1]
_08048E64:
ldr r2, =gBattlescriptCurrInstr
- ldr r1, =gUnknown_0831C224
+ ldr r1, =gMoveEffectBS_Ptrs
ldr r5, =gBattleCommunication
ldrb r0, [r5, 0x3]
lsls r0, 2
@@ -5476,7 +5476,7 @@ _08048F40:
mov r0, r8
adds r0, 0x50
adds r1, r0
- ldr r2, =gUnknown_0831C134
+ ldr r2, =gStatusFlagsForMoveEffects
ldr r0, =gBattleCommunication
ldrb r3, [r0, 0x3]
lsls r0, r3, 2
@@ -5597,7 +5597,7 @@ _0804908A:
ldr r0, [r4]
adds r0, 0x1
bl b_movescr_stack_push
- ldr r1, =gUnknown_0831C224
+ ldr r1, =gMoveEffectBS_Ptrs
ldr r0, =gBattleCommunication
ldrb r0, [r0, 0x3]
lsls r0, 2
@@ -5651,7 +5651,7 @@ _0804912A:
mov r0, r8
adds r0, 0x50
adds r2, r0
- ldr r1, =gUnknown_0831C134
+ ldr r1, =gStatusFlagsForMoveEffects
ldr r0, =gBattleCommunication
ldrb r0, [r0, 0x3]
lsls r0, 2
@@ -5705,7 +5705,7 @@ _08049178:
ldr r0, [r4]
adds r0, 0x1
bl b_movescr_stack_push
- ldr r1, =gUnknown_0831C224
+ ldr r1, =gMoveEffectBS_Ptrs
ldr r0, =gBattleCommunication
ldrb r0, [r0, 0x3]
lsls r0, 2
@@ -5746,7 +5746,7 @@ _08049210:
ldr r0, [r4]
adds r0, 0x1
bl b_movescr_stack_push
- ldr r1, =gUnknown_0831C224
+ ldr r1, =gMoveEffectBS_Ptrs
ldr r0, =gBattleCommunication
ldrb r0, [r0, 0x3]
lsls r0, 2
@@ -5867,7 +5867,7 @@ _080492E0:
ldr r0, [r4]
adds r0, 0x1
bl b_movescr_stack_push
- ldr r1, =gUnknown_0831C224
+ ldr r1, =gMoveEffectBS_Ptrs
ldr r2, =gBattleCommunication
ldrb r0, [r2, 0x3]
lsls r0, 2
@@ -5922,7 +5922,7 @@ _080493A8:
ldr r0, [r4]
adds r0, 0x1
bl b_movescr_stack_push
- ldr r1, =gUnknown_0831C224
+ ldr r1, =gMoveEffectBS_Ptrs
ldr r0, =gBattleCommunication
ldrb r0, [r0, 0x3]
lsls r0, 2
@@ -6223,7 +6223,7 @@ _0804967C:
adds r0, 0xD0
ldr r1, [r5]
adds r1, r0
- ldr r2, =gUnknown_02024208
+ ldr r2, =gLastUsedItem
strh r3, [r1]
strh r3, [r2]
ldrb r0, [r7]
@@ -6402,7 +6402,7 @@ _08049836:
ldr r0, [r4]
adds r0, 0x1
bl b_movescr_stack_push
- ldr r1, =gUnknown_0831C224
+ ldr r1, =gMoveEffectBS_Ptrs
ldr r0, =gBattleCommunication
ldrb r0, [r0, 0x3]
lsls r0, 2
@@ -6487,7 +6487,7 @@ _08049900:
bl GetBankSide
lsls r0, 24
lsrs r4, r0, 24
- ldr r1, =gUnknown_02024208
+ ldr r1, =gLastUsedItem
mov r3, r9
ldrb r0, [r3]
muls r0, r5
@@ -6671,28 +6671,28 @@ _08049AA2:
.pool
thumb_func_end atk15_seteffectwithchancetarget
- thumb_func_start sub_8049AC0
-sub_8049AC0: @ 8049AC0
+ thumb_func_start atk16_seteffectprimary
+atk16_seteffectprimary: @ 8049AC0
push {lr}
movs r0, 0x1
movs r1, 0
bl sub_8048760
pop {r0}
bx r0
- thumb_func_end sub_8049AC0
+ thumb_func_end atk16_seteffectprimary
- thumb_func_start sub_8049AD0
-sub_8049AD0: @ 8049AD0
+ thumb_func_start atk17_seteffectsecondary
+atk17_seteffectsecondary: @ 8049AD0
push {lr}
movs r0, 0
movs r1, 0
bl sub_8048760
pop {r0}
bx r0
- thumb_func_end sub_8049AD0
+ thumb_func_end atk17_seteffectsecondary
- thumb_func_start sub_8049AE0
-sub_8049AE0: @ 8049AE0
+ thumb_func_start atk18_status_effect_clear
+atk18_status_effect_clear: @ 8049AE0
push {lr}
ldr r0, =gBattlescriptCurrInstr
ldr r0, [r0]
@@ -6719,7 +6719,7 @@ _08049B14:
adds r1, 0x50
_08049B1E:
adds r2, r1
- ldr r1, =gUnknown_0831C134
+ ldr r1, =gStatusFlagsForMoveEffects
ldrb r0, [r3, 0x3]
lsls r0, 2
adds r0, r1
@@ -6739,10 +6739,10 @@ _08049B1E:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8049AE0
+ thumb_func_end atk18_status_effect_clear
- thumb_func_start atk19_faintpokemon
-atk19_faintpokemon: @ 8049B5C
+ thumb_func_start atk19_faint_pokemon
+atk19_faint_pokemon: @ 8049B5C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -6786,7 +6786,7 @@ _08049B94:
str r4, [r6]
ldrb r0, [r5]
bl GetBankSide
- ldr r1, =gUnknown_0202428E
+ ldr r1, =gSideAffecting
lsls r0, 24
lsrs r0, 23
adds r0, r1
@@ -6862,7 +6862,7 @@ _08049C42:
lsls r1, 15
orrs r0, r1
str r0, [r5]
- ldr r1, =gUnknown_03005D10
+ ldr r1, =gBattleResults
ldrb r0, [r1]
cmp r0, 0xFE
bhi _08049C78
@@ -6874,7 +6874,7 @@ _08049C78:
b _08049CCE
.pool
_08049CA4:
- ldr r4, =gUnknown_03005D10
+ ldr r4, =gBattleResults
ldrb r0, [r4, 0x1]
cmp r0, 0xFE
bhi _08049CB0
@@ -7048,10 +7048,10 @@ _08049E32:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end atk19_faintpokemon
+ thumb_func_end atk19_faint_pokemon
- thumb_func_start sub_8049E40
-sub_8049E40: @ 8049E40
+ thumb_func_start atk1A_faint_animation
+atk1A_faint_animation: @ 8049E40
push {r4,r5,lr}
ldr r0, =gBattleExecBuffer
ldr r0, [r0]
@@ -7075,10 +7075,10 @@ _08049E6A:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8049E40
+ thumb_func_end atk1A_faint_animation
- thumb_func_start sub_8049E7C
-sub_8049E7C: @ 8049E7C
+ thumb_func_start atk1B_faint_effects_clear
+atk1B_faint_effects_clear: @ 8049E7C
push {r4,r5,lr}
sub sp, 0x4
ldr r0, =gBattleExecBuffer
@@ -7137,7 +7137,7 @@ _08049EE8:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8049E7C
+ thumb_func_end atk1B_faint_effects_clear
thumb_func_start atk1C_jumpifstatus
atk1C_jumpifstatus: @ 8049F04
@@ -7198,8 +7198,8 @@ _08049F70:
.pool
thumb_func_end atk1C_jumpifstatus
- thumb_func_start atk1D_jumpifsecondarystatus
-atk1D_jumpifsecondarystatus: @ 8049F7C
+ thumb_func_start atk1D_jumpifstatus2
+atk1D_jumpifstatus2: @ 8049F7C
push {r4,r5,lr}
ldr r5, =gBattlescriptCurrInstr
ldr r0, [r5]
@@ -7255,7 +7255,7 @@ _08049FE8:
pop {r0}
bx r0
.pool
- thumb_func_end atk1D_jumpifsecondarystatus
+ thumb_func_end atk1D_jumpifstatus2
thumb_func_start atk1E_jumpifability
atk1E_jumpifability: @ 8049FF4
@@ -7362,8 +7362,8 @@ _0804A0CE:
bx r0
thumb_func_end atk1E_jumpifability
- thumb_func_start sub_804A0DC
-sub_804A0DC: @ 804A0DC
+ thumb_func_start atk1F_jumpifsideaffecting
+atk1F_jumpifsideaffecting: @ 804A0DC
push {r4-r6,lr}
ldr r0, =gBattlescriptCurrInstr
ldr r0, [r0]
@@ -7398,7 +7398,7 @@ _0804A106:
ldrb r0, [r3, 0x7]
lsls r0, 24
adds r5, r1, r0
- ldr r1, =gUnknown_0202428E
+ ldr r1, =gSideAffecting
lsls r0, r4, 1
adds r0, r1
ldrh r0, [r0]
@@ -7416,10 +7416,10 @@ _0804A14E:
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end sub_804A0DC
+ thumb_func_end atk1F_jumpifsideaffecting
- thumb_func_start sub_804A154
-sub_804A154: @ 804A154
+ thumb_func_start atk20_jumpifstat
+atk20_jumpifstat: @ 804A154
push {r4,r5,lr}
movs r5, 0
ldr r4, =gBattlescriptCurrInstr
@@ -7534,10 +7534,10 @@ _0804A240:
pop {r0}
bx r0
.pool
- thumb_func_end sub_804A154
+ thumb_func_end atk20_jumpifstat
- thumb_func_start atk21_jumpifspecialstatusflag
-atk21_jumpifspecialstatusflag: @ 804A24C
+ thumb_func_start atk21_jumpifstatus3
+atk21_jumpifstatus3: @ 804A24C
push {r4-r6,lr}
ldr r4, =gBattlescriptCurrInstr
ldr r0, [r4]
@@ -7600,10 +7600,10 @@ _0804A2CA:
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end atk21_jumpifspecialstatusflag
+ thumb_func_end atk21_jumpifstatus3
- thumb_func_start sub_804A2D0
-sub_804A2D0: @ 804A2D0
+ thumb_func_start atk22_jumpiftype
+atk22_jumpiftype: @ 804A2D0
push {r4-r6,lr}
ldr r4, =gBattlescriptCurrInstr
ldr r0, [r4]
@@ -7648,10 +7648,10 @@ _0804A324:
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end sub_804A2D0
+ thumb_func_end atk22_jumpiftype
- thumb_func_start sub_804A32C
-sub_804A32C: @ 804A32C
+ thumb_func_start atk23_getexp
+atk23_getexp: @ 804A32C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -8148,7 +8148,7 @@ _0804A78E:
movs r0, 0x1
negs r0, r0
strb r0, [r1, 0x4]
- ldr r1, =gUnknown_02022F78
+ ldr r1, =gBattleTextBuff3
strb r3, [r1]
movs r0, 0x1
strb r0, [r1, 0x1]
@@ -8696,10 +8696,10 @@ _0804ACB2:
pop {r0}
bx r0
.pool
- thumb_func_end sub_804A32C
+ thumb_func_end atk23_getexp
- thumb_func_start sub_804ACD0
-sub_804ACD0: @ 804ACD0
+ thumb_func_start atk24
+atk24: @ 804ACD0
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -8985,7 +8985,7 @@ _0804AF22:
pop {r0}
bx r0
.pool
- thumb_func_end sub_804ACD0
+ thumb_func_end atk24
thumb_func_start sub_804AF30
sub_804AF30: @ 804AF30
@@ -9012,8 +9012,8 @@ sub_804AF30: @ 804AF30
.pool
thumb_func_end sub_804AF30
- thumb_func_start atk25_cmd25
-atk25_cmd25: @ 804AF70
+ thumb_func_start atk25_move_values_cleanup
+atk25_move_values_cleanup: @ 804AF70
push {lr}
bl sub_804AF30
ldr r1, =gBattlescriptCurrInstr
@@ -9023,10 +9023,10 @@ atk25_cmd25: @ 804AF70
pop {r0}
bx r0
.pool
- thumb_func_end atk25_cmd25
+ thumb_func_end atk25_move_values_cleanup
- thumb_func_start atk26_80225F0_storebyteforjump
-atk26_80225F0_storebyteforjump: @ 804AF88
+ thumb_func_start atk26_set_multihit
+atk26_set_multihit: @ 804AF88
ldr r3, =gUnknown_02024212
ldr r2, =gBattlescriptCurrInstr
ldr r0, [r2]
@@ -9036,10 +9036,10 @@ atk26_80225F0_storebyteforjump: @ 804AF88
str r0, [r2]
bx lr
.pool
- thumb_func_end atk26_80225F0_storebyteforjump
+ thumb_func_end atk26_set_multihit
- thumb_func_start atk27_cmd27
-atk27_cmd27: @ 804AFA0
+ thumb_func_start atk27_decrement_multihit
+atk27_decrement_multihit: @ 804AFA0
push {lr}
ldr r1, =gUnknown_02024212
ldrb r0, [r1]
@@ -9072,7 +9072,7 @@ _0804AFDE:
pop {r0}
bx r0
.pool
- thumb_func_end atk27_cmd27
+ thumb_func_end atk27_decrement_multihit
thumb_func_start atk28_goto
atk28_goto: @ 804AFE8
@@ -9177,8 +9177,8 @@ _0804B0A0:
bx r0
thumb_func_end atk29_jumpifbyte
- thumb_func_start sub_804B0A8
-sub_804B0A8: @ 804B0A8
+ thumb_func_start atk2A_jumpifhalfword
+atk2A_jumpifhalfword: @ 804B0A8
push {r4-r6,lr}
ldr r3, =gBattlescriptCurrInstr
ldr r1, [r3]
@@ -9262,10 +9262,10 @@ _0804B148:
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end sub_804B0A8
+ thumb_func_end atk2A_jumpifhalfword
- thumb_func_start sub_804B150
-sub_804B150: @ 804B150
+ thumb_func_start atk2B_jumpifword
+atk2B_jumpifword: @ 804B150
push {r4-r6,lr}
ldr r3, =gBattlescriptCurrInstr
ldr r1, [r3]
@@ -9355,10 +9355,10 @@ _0804B1FC:
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end sub_804B150
+ thumb_func_end atk2B_jumpifword
- thumb_func_start sub_804B204
-sub_804B204: @ 804B204
+ thumb_func_start atk2C_jumpifarrayequal
+atk2C_jumpifarrayequal: @ 804B204
push {r4-r7,lr}
ldr r2, =gBattlescriptCurrInstr
ldr r3, [r2]
@@ -9429,10 +9429,10 @@ _0804B284:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_804B204
+ thumb_func_end atk2C_jumpifarrayequal
- thumb_func_start sub_804B28C
-sub_804B28C: @ 804B28C
+ thumb_func_start atk2D_jumpifarraynotequal
+atk2D_jumpifarraynotequal: @ 804B28C
push {r4-r7,lr}
movs r7, 0
ldr r3, =gBattlescriptCurrInstr
@@ -9502,10 +9502,10 @@ _0804B308:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_804B28C
+ thumb_func_end atk2D_jumpifarraynotequal
- thumb_func_start sub_804B310
-sub_804B310: @ 804B310
+ thumb_func_start atk2E_setbyte
+atk2E_setbyte: @ 804B310
ldr r3, =gBattlescriptCurrInstr
ldr r2, [r3]
ldrb r1, [r2, 0x1]
@@ -9525,10 +9525,10 @@ sub_804B310: @ 804B310
str r0, [r3]
bx lr
.pool
- thumb_func_end sub_804B310
+ thumb_func_end atk2E_setbyte
- thumb_func_start sub_804B338
-sub_804B338: @ 804B338
+ thumb_func_start atk2F_addbyte
+atk2F_addbyte: @ 804B338
ldr r3, =gBattlescriptCurrInstr
ldr r2, [r3]
ldrb r1, [r2, 0x1]
@@ -9550,10 +9550,10 @@ sub_804B338: @ 804B338
str r0, [r3]
bx lr
.pool
- thumb_func_end sub_804B338
+ thumb_func_end atk2F_addbyte
- thumb_func_start sub_804B364
-sub_804B364: @ 804B364
+ thumb_func_start atk30_subbyte
+atk30_subbyte: @ 804B364
ldr r3, =gBattlescriptCurrInstr
ldr r2, [r3]
ldrb r1, [r2, 0x1]
@@ -9575,7 +9575,7 @@ sub_804B364: @ 804B364
str r0, [r3]
bx lr
.pool
- thumb_func_end sub_804B364
+ thumb_func_end atk30_subbyte
thumb_func_start atk31_copyarray
atk31_copyarray: @ 804B390
@@ -9624,8 +9624,8 @@ _0804B3D4:
.pool
thumb_func_end atk31_copyarray
- thumb_func_start atk32_memcpy_with_offset
-atk32_memcpy_with_offset: @ 804B3E4
+ thumb_func_start atk32_copyarray_withindex
+atk32_copyarray_withindex: @ 804B3E4
push {r4-r7,lr}
ldr r3, =gBattlescriptCurrInstr
ldr r1, [r3]
@@ -9681,7 +9681,7 @@ _0804B440:
pop {r0}
bx r0
.pool
- thumb_func_end atk32_memcpy_with_offset
+ thumb_func_end atk32_copyarray_withindex
thumb_func_start atk33_orbyte
atk33_orbyte: @ 804B450
@@ -9900,8 +9900,8 @@ _0804B5CC:
.pool
thumb_func_end atk39_pause
- thumb_func_start sub_804B5E0
-sub_804B5E0: @ 804B5E0
+ thumb_func_start atk3A_waitstate
+atk3A_waitstate: @ 804B5E0
push {lr}
ldr r0, =gBattleExecBuffer
ldr r0, [r0]
@@ -9915,10 +9915,10 @@ _0804B5F2:
pop {r0}
bx r0
.pool
- thumb_func_end sub_804B5E0
+ thumb_func_end atk3A_waitstate
- thumb_func_start atk3B_8022C68
-atk3B_8022C68: @ 804B600
+ thumb_func_start atk3B_healthbar_update
+atk3B_healthbar_update: @ 804B600
push {lr}
ldr r0, =gBattlescriptCurrInstr
ldr r0, [r0]
@@ -9949,7 +9949,7 @@ _0804B624:
pop {r0}
bx r0
.pool
- thumb_func_end atk3B_8022C68
+ thumb_func_end atk3B_healthbar_update
thumb_func_start atk3C_return
atk3C_return: @ 804B658
@@ -9959,8 +9959,8 @@ atk3C_return: @ 804B658
bx r0
thumb_func_end atk3C_return
- thumb_func_start sub_804B664
-sub_804B664: @ 804B664
+ thumb_func_start atk3D_end
+atk3D_end: @ 804B664
push {lr}
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
@@ -9984,7 +9984,7 @@ _0804B67C:
pop {r0}
bx r0
.pool
- thumb_func_end sub_804B664
+ thumb_func_end atk3D_end
thumb_func_start atk3E_end2
atk3E_end2: @ 804B6A4
@@ -10100,8 +10100,8 @@ _0804B77C:
bx r0
thumb_func_end atk42_jumpiftype2
- thumb_func_start sub_804B784
-sub_804B784: @ 804B784
+ thumb_func_start atk43_jumpifabilitypresent
+atk43_jumpifabilitypresent: @ 804B784
push {r4,lr}
sub sp, 0x4
ldr r4, =gBattlescriptCurrInstr
@@ -10139,10 +10139,10 @@ _0804B7C6:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_804B784
+ thumb_func_end atk43_jumpifabilitypresent
- thumb_func_start sub_804B7D0
-sub_804B7D0: @ 804B7D0
+ thumb_func_start atk44
+atk44: @ 804B7D0
ldr r0, =gBankAttacker
ldrb r0, [r0]
ldr r1, =gBattleStruct
@@ -10153,10 +10153,10 @@ sub_804B7D0: @ 804B7D0
strb r1, [r0]
bx lr
.pool
- thumb_func_end sub_804B7D0
+ thumb_func_end atk44
- thumb_func_start atk46_cmd46
-atk46_cmd46: @ 804B7EC
+ thumb_func_start atk45_playanimation
+atk45_playanimation: @ 804B7EC
push {r4-r6,lr}
ldr r5, =gBattlescriptCurrInstr
ldr r0, [r5]
@@ -10244,10 +10244,10 @@ _0804B8AA:
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end atk46_cmd46
+ thumb_func_end atk45_playanimation
- thumb_func_start sub_804B8B0
-sub_804B8B0: @ 804B8B0
+ thumb_func_start atk46_playanimation2
+atk46_playanimation2: @ 804B8B0
push {r4-r7,lr}
ldr r6, =gBattlescriptCurrInstr
ldr r0, [r6]
@@ -10342,10 +10342,10 @@ _0804B976:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_804B8B0
+ thumb_func_end atk46_playanimation2
- thumb_func_start sub_804B97C
-sub_804B97C: @ 804B97C
+ thumb_func_start atk47_setgraphicalstatchangevalues
+atk47_setgraphicalstatchangevalues: @ 804B97C
push {r4,lr}
movs r3, 0
ldr r1, =gBattleScripting
@@ -10395,7 +10395,7 @@ _0804B9B4:
pop {r0}
bx r0
.pool
- thumb_func_end sub_804B97C
+ thumb_func_end atk47_setgraphicalstatchangevalues
thumb_func_start atk48_playstatchangeanimation
atk48_playstatchangeanimation: @ 804B9D8
@@ -10647,8 +10647,8 @@ _0804BBBA:
bx r0
thumb_func_end atk48_playstatchangeanimation
- thumb_func_start sub_804BBCC
-sub_804BBCC: @ 804BBCC
+ thumb_func_start atk49_moveendturn
+atk49_moveendturn: @ 804BBCC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -11426,7 +11426,7 @@ _0804C2A4:
ands r0, r1
cmp r0, 0
beq _0804C308
- ldr r0, =gUnknown_02024248
+ ldr r0, =gLastUsedMovesByBanks
lsls r1, r4, 1
adds r1, r0
ldr r0, =gUnknown_020241EC
@@ -11443,7 +11443,7 @@ _0804C2A4:
b _0804C322
.pool
_0804C308:
- ldr r1, =gUnknown_02024248
+ ldr r1, =gLastUsedMovesByBanks
lsls r0, r4, 1
adds r0, r1
ldr r1, =0x0000ffff
@@ -11768,10 +11768,10 @@ _0804C5BA:
pop {r0}
bx r0
.pool
- thumb_func_end sub_804BBCC
+ thumb_func_end atk49_moveendturn
- thumb_func_start atk4A_damagecalc2
-atk4A_damagecalc2: @ 804C5F4
+ thumb_func_start atk4A_typecalc2
+atk4A_typecalc2: @ 804C5F4
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -12037,10 +12037,10 @@ _0804C804:
pop {r0}
bx r0
.pool
- thumb_func_end atk4A_damagecalc2
+ thumb_func_end atk4A_typecalc2
- thumb_func_start atk4B_cmd4b
-atk4B_cmd4b: @ 804C844
+ thumb_func_start atk4B_return_atk_to_ball
+atk4B_return_atk_to_ball: @ 804C844
push {r4,lr}
ldr r4, =gActiveBank
ldr r0, =gBankAttacker
@@ -12071,10 +12071,10 @@ _0804C872:
pop {r0}
bx r0
.pool
- thumb_func_end atk4B_cmd4b
+ thumb_func_end atk4B_return_atk_to_ball
- thumb_func_start atk4C_switch1
-atk4C_switch1: @ 804C894
+ thumb_func_start atk4C_copy_poke_data
+atk4C_copy_poke_data: @ 804C894
push {r4,r5,lr}
ldr r0, =gBattleExecBuffer
ldr r0, [r0]
@@ -12117,10 +12117,10 @@ _0804C8E4:
pop {r0}
bx r0
.pool
- thumb_func_end atk4C_switch1
+ thumb_func_end atk4C_copy_poke_data
- thumb_func_start sub_804C904
-sub_804C904: @ 804C904
+ thumb_func_start atk4D_switch_data_update
+atk4D_switch_data_update: @ 804C904
push {r4-r7,lr}
sub sp, 0x58
ldr r0, =gBattleExecBuffer
@@ -12336,10 +12336,10 @@ _0804CAA4:
pop {r0}
bx r0
.pool
- thumb_func_end sub_804C904
+ thumb_func_end atk4D_switch_data_update
- thumb_func_start atk4E_switch3
-atk4E_switch3: @ 804CAE8
+ thumb_func_start atk4E_switchin_anim
+atk4E_switchin_anim: @ 804CAE8
push {r4-r6,lr}
ldr r0, =gBattleExecBuffer
ldr r0, [r0]
@@ -12418,10 +12418,10 @@ _0804CB86:
pop {r0}
bx r0
.pool
- thumb_func_end atk4E_switch3
+ thumb_func_end atk4E_switchin_anim
- thumb_func_start atk4F_jumpifcannotswitch
-atk4F_jumpifcannotswitch: @ 804CBB0
+ thumb_func_start atk4F_jump_if_cannot_switch
+atk4F_jump_if_cannot_switch: @ 804CBB0
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -12816,7 +12816,7 @@ _0804CF00:
pop {r0}
bx r0
.pool
- thumb_func_end atk4F_jumpifcannotswitch
+ thumb_func_end atk4F_jump_if_cannot_switch
thumb_func_start sub_804CF10
sub_804CF10: @ 804CF10
@@ -13740,7 +13740,7 @@ _0804D6E0:
lsls r0, 24
cmp r0, 0
bne _0804D760
- ldr r1, =gUnknown_03005D10
+ ldr r1, =gBattleResults
ldrb r0, [r1, 0x2]
cmp r0, 0xFE
bhi _0804D760
@@ -13824,8 +13824,8 @@ _0804D804:
.pool
thumb_func_end atk50_openpartyscreen
- thumb_func_start atk51_cmd51
-atk51_cmd51: @ 804D820
+ thumb_func_start atk51_switch_handle_order
+atk51_switch_handle_order: @ 804D820
push {r4-r7,lr}
ldr r0, =gBattleExecBuffer
ldr r0, [r0]
@@ -14122,10 +14122,10 @@ _0804DA8A:
pop {r0}
bx r0
.pool
- thumb_func_end atk51_cmd51
+ thumb_func_end atk51_switch_handle_order
- thumb_func_start atk52_cmd52
-atk52_cmd52: @ 804DAAC
+ thumb_func_start atk52_switch_in_effects
+atk52_switch_in_effects: @ 804DAAC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -14166,7 +14166,7 @@ atk52_cmd52: @ 804DAAC
strb r0, [r1]
ldrb r0, [r4]
bl GetBankSide
- ldr r5, =gUnknown_0202428E
+ ldr r5, =gSideAffecting
lsls r0, 24
lsrs r0, 23
adds r0, r5
@@ -14346,7 +14346,7 @@ _0804DC88:
bne _0804DD8E
ldrb r0, [r5]
bl GetBankSide
- ldr r1, =gUnknown_0202428E
+ ldr r1, =gSideAffecting
lsls r0, 24
lsrs r0, 23
adds r0, r1
@@ -14457,10 +14457,10 @@ _0804DD8E:
pop {r0}
bx r0
.pool
- thumb_func_end atk52_cmd52
+ thumb_func_end atk52_switch_in_effects
- thumb_func_start sub_804DDA8
-sub_804DDA8: @ 804DDA8
+ thumb_func_start atk53_trainer_slide
+atk53_trainer_slide: @ 804DDA8
push {r4,r5,lr}
ldr r5, =gBattlescriptCurrInstr
ldr r0, [r5]
@@ -14479,10 +14479,10 @@ sub_804DDA8: @ 804DDA8
pop {r0}
bx r0
.pool
- thumb_func_end sub_804DDA8
+ thumb_func_end atk53_trainer_slide
- thumb_func_start atk54_802511C
-atk54_802511C: @ 804DDD8
+ thumb_func_start atk54_effectiveness_sound
+atk54_effectiveness_sound: @ 804DDD8
push {r4,r5,lr}
ldr r5, =gActiveBank
ldr r0, =gBankAttacker
@@ -14505,10 +14505,10 @@ atk54_802511C: @ 804DDD8
pop {r0}
bx r0
.pool
- thumb_func_end atk54_802511C
+ thumb_func_end atk54_effectiveness_sound
- thumb_func_start sub_804DE14
-sub_804DE14: @ 804DE14
+ thumb_func_start atk55_play_sound
+atk55_play_sound: @ 804DE14
push {r4,r5,lr}
ldr r5, =gActiveBank
ldr r0, =gBankAttacker
@@ -14532,10 +14532,10 @@ sub_804DE14: @ 804DE14
pop {r0}
bx r0
.pool
- thumb_func_end sub_804DE14
+ thumb_func_end atk55_play_sound
- thumb_func_start atk56_8025194
-atk56_8025194: @ 804DE50
+ thumb_func_start atk56_fainting_cry
+atk56_fainting_cry: @ 804DE50
push {r4,r5,lr}
ldr r5, =gBattlescriptCurrInstr
ldr r0, [r5]
@@ -14554,10 +14554,10 @@ atk56_8025194: @ 804DE50
pop {r0}
bx r0
.pool
- thumb_func_end atk56_8025194
+ thumb_func_end atk56_fainting_cry
- thumb_func_start atk57_80251C4_flee
-atk57_80251C4_flee: @ 804DE80
+ thumb_func_start atk57
+atk57: @ 804DE80
push {r4,lr}
movs r0, 0
bl GetBankByPlayerAI
@@ -14577,10 +14577,10 @@ atk57_80251C4_flee: @ 804DE80
pop {r0}
bx r0
.pool
- thumb_func_end atk57_80251C4_flee
+ thumb_func_end atk57
- thumb_func_start atk58_cmd58
-atk58_cmd58: @ 804DEB8
+ thumb_func_start atk58_return_to_ball
+atk58_return_to_ball: @ 804DEB8
push {r4,r5,lr}
ldr r5, =gBattlescriptCurrInstr
ldr r0, [r5]
@@ -14600,10 +14600,10 @@ atk58_cmd58: @ 804DEB8
pop {r0}
bx r0
.pool
- thumb_func_end atk58_cmd58
+ thumb_func_end atk58_return_to_ball
- thumb_func_start atk59_8025230
-atk59_8025230: @ 804DEEC
+ thumb_func_start atk59_learnmove_inbattle
+atk59_learnmove_inbattle: @ 804DEEC
push {r4-r7,lr}
ldr r0, =gBattlescriptCurrInstr
ldr r2, [r0]
@@ -14749,10 +14749,10 @@ _0804E018:
pop {r0}
bx r0
.pool
- thumb_func_end atk59_8025230
+ thumb_func_end atk59_learnmove_inbattle
- thumb_func_start sub_804E038
-sub_804E038: @ 804E038
+ thumb_func_start atk5A
+atk5A: @ 804E038
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -15133,7 +15133,7 @@ _0804E3B8:
pop {r0}
bx r0
.pool
- thumb_func_end sub_804E038
+ thumb_func_end atk5A
thumb_func_start atk5B_80256E0
atk5B_80256E0: @ 804E3C8
@@ -15280,8 +15280,8 @@ _0804E4FA:
.pool
thumb_func_end atk5B_80256E0
- thumb_func_start atk5C_cmd5c
-atk5C_cmd5c: @ 804E508
+ thumb_func_start atk5C_hitanimation
+atk5C_hitanimation: @ 804E508
push {r4,lr}
ldr r4, =gBattlescriptCurrInstr
ldr r0, [r4]
@@ -15342,7 +15342,7 @@ _0804E592:
pop {r4}
pop {r0}
bx r0
- thumb_func_end atk5C_cmd5c
+ thumb_func_end atk5C_hitanimation
thumb_func_start sub_804E598
sub_804E598: @ 804E598
@@ -15510,10 +15510,10 @@ _0804E6CA:
bx r1
thumb_func_end sub_804E598
- thumb_func_start sub_804E6D8
-sub_804E6D8: @ 804E6D8
+ thumb_func_start atk5D_getmoneyreward
+atk5D_getmoneyreward: @ 804E6D8
push {r4,lr}
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r0, [r0]
bl sub_804E598
adds r4, r0, 0
@@ -15524,7 +15524,7 @@ sub_804E6D8: @ 804E6D8
ands r0, r1
cmp r0, 0
beq _0804E6FC
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
ldrh r0, [r0]
bl sub_804E598
adds r4, r0
@@ -15568,7 +15568,7 @@ _0804E6FC:
pop {r0}
bx r0
.pool
- thumb_func_end sub_804E6D8
+ thumb_func_end atk5D_getmoneyreward
thumb_func_start atk5E_8025A70
atk5E_8025A70: @ 804E764
@@ -15690,8 +15690,8 @@ _0804E856:
.pool
thumb_func_end atk5F_8025B24
- thumb_func_start atk60_cmd60
-atk60_cmd60: @ 804E868
+ thumb_func_start atk60_increment_gamestat
+atk60_increment_gamestat: @ 804E868
push {lr}
ldr r0, =gBankAttacker
ldrb r0, [r0]
@@ -15711,7 +15711,7 @@ _0804E882:
pop {r0}
bx r0
.pool
- thumb_func_end atk60_cmd60
+ thumb_func_end atk60_increment_gamestat
thumb_func_start atk61_8025BA4
atk61_8025BA4: @ 804E898
@@ -15823,8 +15823,8 @@ atk62_08025C6C: @ 804E960
.pool
thumb_func_end atk62_08025C6C
- thumb_func_start atk63_jumptoattack
-atk63_jumptoattack: @ 804E990
+ thumb_func_start atk63_jumptorandomattack
+atk63_jumptorandomattack: @ 804E990
push {r4,lr}
ldr r0, =gBattlescriptCurrInstr
ldr r1, [r0]
@@ -15863,7 +15863,7 @@ _0804E9C2:
pop {r0}
bx r0
.pool
- thumb_func_end atk63_jumptoattack
+ thumb_func_end atk63_jumptorandomattack
thumb_func_start atk64_statusanimation
atk64_statusanimation: @ 804E9F4
@@ -15924,8 +15924,8 @@ _0804EA5C:
.pool
thumb_func_end atk64_statusanimation
- thumb_func_start atk65_8025D90
-atk65_8025D90: @ 804EA84
+ thumb_func_start atk65_status2animation
+atk65_status2animation: @ 804EA84
push {r4,r5,lr}
ldr r0, =gBattleExecBuffer
ldr r0, [r0]
@@ -15993,10 +15993,10 @@ _0804EB04:
pop {r0}
bx r0
.pool
- thumb_func_end atk65_8025D90
+ thumb_func_end atk65_status2animation
- thumb_func_start atk66_8025E38
-atk66_8025E38: @ 804EB2C
+ thumb_func_start atk66_chosenstatusanimation
+atk66_chosenstatusanimation: @ 804EB2C
push {r4,r5,lr}
ldr r0, =gBattleExecBuffer
ldr r0, [r0]
@@ -16057,7 +16057,7 @@ _0804EB9E:
pop {r0}
bx r0
.pool
- thumb_func_end atk66_8025E38
+ thumb_func_end atk66_chosenstatusanimation
thumb_func_start atk67_8025ECC
atk67_8025ECC: @ 804EBC0
@@ -16163,8 +16163,8 @@ _0804EC96:
.pool
thumb_func_end atk67_8025ECC
- thumb_func_start sub_804ECA4
-sub_804ECA4: @ 804ECA4
+ thumb_func_start atk68_80246A0
+atk68_80246A0: @ 804ECA4
push {r4,r5,lr}
movs r1, 0
ldr r2, =gNoOfAllBanks
@@ -16189,10 +16189,10 @@ _0804ECC2:
pop {r0}
bx r0
.pool
- thumb_func_end sub_804ECA4
+ thumb_func_end atk68_80246A0
- thumb_func_start atk69_8025FE0
-atk69_8025FE0: @ 804ECDC
+ thumb_func_start atk69_dmg_adjustment2
+atk69_dmg_adjustment2: @ 804ECDC
push {r4-r7,lr}
ldr r7, =gBattleMons
ldr r6, =gBankTarget
@@ -16243,7 +16243,7 @@ _0804ED2A:
bcs _0804ED68
ldrb r0, [r5]
movs r1, 0x27
- bl b_history__record_item_x12_of_player
+ bl RecordItemEffectBattle
ldr r2, =gSpecialStatuses
ldrb r1, [r5]
lsls r0, r1, 2
@@ -16338,7 +16338,7 @@ _0804EE10:
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
- ldr r1, =gUnknown_02024208
+ ldr r1, =gLastUsedItem
adds r0, r3, 0
muls r0, r4
adds r0, r5
@@ -16353,10 +16353,10 @@ _0804EE38:
pop {r0}
bx r0
.pool
- thumb_func_end atk69_8025FE0
+ thumb_func_end atk69_dmg_adjustment2
- thumb_func_start atk6A_stash_item_for_side
-atk6A_stash_item_for_side: @ 804EE58
+ thumb_func_start atk6A_removeitem
+atk6A_removeitem: @ 804EE58
push {r4-r6,lr}
sub sp, 0x4
ldr r6, =gBattlescriptCurrInstr
@@ -16403,10 +16403,10 @@ atk6A_stash_item_for_side: @ 804EE58
pop {r0}
bx r0
.pool
- thumb_func_end atk6A_stash_item_for_side
+ thumb_func_end atk6A_removeitem
- thumb_func_start atk6B_end_battle_80261CC
-atk6B_end_battle_80261CC: @ 804EEC8
+ thumb_func_start atk6B_atknameinbuff1
+atk6B_atknameinbuff1: @ 804EEC8
ldr r1, =gBattleTextBuff1
movs r0, 0xFD
strb r0, [r1]
@@ -16429,10 +16429,10 @@ atk6B_end_battle_80261CC: @ 804EEC8
str r0, [r1]
bx lr
.pool
- thumb_func_end atk6B_end_battle_80261CC
+ thumb_func_end atk6B_atknameinbuff1
- thumb_func_start atk6C_8026208
-atk6C_8026208: @ 804EF04
+ thumb_func_start atk6C_lvlbox_display
+atk6C_lvlbox_display: @ 804EF04
push {r4,lr}
sub sp, 0x4
ldr r0, =gBattleScripting
@@ -16641,7 +16641,7 @@ _0804F0F2:
pop {r0}
bx r0
.pool
- thumb_func_end atk6C_8026208
+ thumb_func_end atk6C_lvlbox_display
thumb_func_start sub_804F100
sub_804F100: @ 804F100
@@ -17097,8 +17097,8 @@ _0804F4CE:
bx r1
thumb_func_end sub_804F498
- thumb_func_start sub_804F4D4
-sub_804F4D4: @ 804F4D4
+ thumb_func_start atk6D_set_sentpokes_values
+atk6D_set_sentpokes_values: @ 804F4D4
push {lr}
bl sub_803F988
ldr r1, =gBattlescriptCurrInstr
@@ -17108,10 +17108,10 @@ sub_804F4D4: @ 804F4D4
pop {r0}
bx r0
.pool
- thumb_func_end sub_804F4D4
+ thumb_func_end atk6D_set_sentpokes_values
- thumb_func_start atk6E_state0_side_becomes_attacker
-atk6E_state0_side_becomes_attacker: @ 804F4EC
+ thumb_func_start atk6E_set_atk_to_player0
+atk6E_set_atk_to_player0: @ 804F4EC
push {lr}
movs r0, 0
bl GetBankByPlayerAI
@@ -17124,10 +17124,10 @@ atk6E_state0_side_becomes_attacker: @ 804F4EC
pop {r0}
bx r0
.pool
- thumb_func_end atk6E_state0_side_becomes_attacker
+ thumb_func_end atk6E_set_atk_to_player0
- thumb_func_start atk6F_8026810
-atk6F_8026810: @ 804F50C
+ thumb_func_start atk6F_set_visible
+atk6F_set_visible: @ 804F50C
push {r4,r5,lr}
ldr r5, =gBattlescriptCurrInstr
ldr r0, [r5]
@@ -17147,10 +17147,10 @@ atk6F_8026810: @ 804F50C
pop {r0}
bx r0
.pool
- thumb_func_end atk6F_8026810
+ thumb_func_end atk6F_set_visible
- thumb_func_start atk70_record_ability_usage_of_side
-atk70_record_ability_usage_of_side: @ 804F540
+ thumb_func_start atk70_record_ability
+atk70_record_ability: @ 804F540
push {r4,lr}
ldr r4, =gBattlescriptCurrInstr
ldr r0, [r4]
@@ -17169,7 +17169,7 @@ atk70_record_ability_usage_of_side: @ 804F540
pop {r0}
bx r0
.pool
- thumb_func_end atk70_record_ability_usage_of_side
+ thumb_func_end atk70_record_ability
thumb_func_start sub_804F574
sub_804F574: @ 804F574
@@ -17192,8 +17192,8 @@ sub_804F574: @ 804F574
.pool
thumb_func_end sub_804F574
- thumb_func_start atk71_80268A0
-atk71_80268A0: @ 804F59C
+ thumb_func_start atk71_buffer_move_to_learn
+atk71_buffer_move_to_learn: @ 804F59C
push {lr}
bl sub_804F574
ldr r1, =gBattlescriptCurrInstr
@@ -17203,10 +17203,10 @@ atk71_80268A0: @ 804F59C
pop {r0}
bx r0
.pool
- thumb_func_end atk71_80268A0
+ thumb_func_end atk71_buffer_move_to_learn
- thumb_func_start atk72_flee
-atk72_flee: @ 804F5B4
+ thumb_func_start atk72_jump_if_can_run_frombattle
+atk72_jump_if_can_run_frombattle: @ 804F5B4
push {lr}
ldr r0, =gUnknown_0202420D
ldrb r0, [r0]
@@ -17238,10 +17238,10 @@ _0804F5F0:
pop {r0}
bx r0
.pool
- thumb_func_end atk72_flee
+ thumb_func_end atk72_jump_if_can_run_frombattle
- thumb_func_start atk73_cmd73
-atk73_cmd73: @ 804F5F8
+ thumb_func_start atk73_hp_thresholds
+atk73_hp_thresholds: @ 804F5F8
push {r4-r6,lr}
ldr r0, =gBattleTypeFlags
ldr r4, [r0]
@@ -17317,10 +17317,10 @@ _0804F68E:
pop {r0}
bx r0
.pool
- thumb_func_end atk73_cmd73
+ thumb_func_end atk73_hp_thresholds
- thumb_func_start atk74_hp_tresholds_2
-atk74_hp_tresholds_2: @ 804F6A4
+ thumb_func_start atk74_hp_thresholds2
+atk74_hp_thresholds2: @ 804F6A4
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -17401,7 +17401,7 @@ _0804F73E:
pop {r0}
bx r0
.pool
- thumb_func_end atk74_hp_tresholds_2
+ thumb_func_end atk74_hp_thresholds2
thumb_func_start atk75_8026A58
atk75_8026A58: @ 804F754
@@ -17420,7 +17420,7 @@ atk75_8026A58: @ 804F754
muls r0, r2
ldr r1, =gEnemyParty
adds r0, r1
- ldr r1, =gUnknown_02024208
+ ldr r1, =gLastUsedItem
ldrh r1, [r1]
lsls r2, 24
lsrs r2, 24
@@ -17438,8 +17438,8 @@ atk75_8026A58: @ 804F754
.pool
thumb_func_end atk75_8026A58
- thumb_func_start sub_804F7AC
-sub_804F7AC: @ 804F7AC
+ thumb_func_start atk76_various
+atk76_various: @ 804F7AC
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -18051,7 +18051,7 @@ _0804FD78:
pop {r0}
bx r0
.pool
- thumb_func_end sub_804F7AC
+ thumb_func_end atk76_various
thumb_func_start atk77_setprotect
atk77_setprotect: @ 804FD8C
@@ -18089,7 +18089,7 @@ _0804FDBC:
bne _0804FDCC
movs r6, 0
_0804FDCC:
- ldr r2, =gUnknown_0831C3D8
+ ldr r2, =sProtectSuccessRates
mov r5, r8
ldrb r1, [r5]
lsls r0, r1, 3
@@ -18313,8 +18313,8 @@ _0804FFCC:
.pool
thumb_func_end atk78_faintifabilitynotdamp
- thumb_func_start atk79_setuserhptozero
-atk79_setuserhptozero: @ 804FFE4
+ thumb_func_start atk79_setatkhptozero
+atk79_setatkhptozero: @ 804FFE4
push {r4,lr}
sub sp, 0x4
ldr r0, =gBattleExecBuffer
@@ -18353,10 +18353,10 @@ _08050028:
pop {r0}
bx r0
.pool
- thumb_func_end atk79_setuserhptozero
+ thumb_func_end atk79_setatkhptozero
- thumb_func_start sub_8050044
-sub_8050044: @ 8050044
+ thumb_func_start atk7A_jumpwhiletargetvalid
+atk7A_jumpwhiletargetvalid: @ 8050044
push {r4-r7,lr}
ldr r3, =gBattlescriptCurrInstr
ldr r2, [r3]
@@ -18430,10 +18430,10 @@ _080500E0:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_8050044
+ thumb_func_end atk7A_jumpwhiletargetvalid
- thumb_func_start sub_80500E8
-sub_80500E8: @ 80500E8
+ thumb_func_start atk7B_healhalfHP_if_possible
+atk7B_healhalfHP_if_possible: @ 80500E8
push {r4-r6,lr}
ldr r4, =gBattlescriptCurrInstr
ldr r1, [r4]
@@ -18490,10 +18490,10 @@ _0805015E:
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end sub_80500E8
+ thumb_func_end atk7B_healhalfHP_if_possible
- thumb_func_start sub_8050164
-sub_8050164: @ 8050164
+ thumb_func_start atk7C_8025508
+atk7C_8025508: @ 8050164
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -18646,10 +18646,10 @@ _080502AE:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8050164
+ thumb_func_end atk7C_8025508
- thumb_func_start sub_80502C8
-sub_80502C8: @ 80502C8
+ thumb_func_start atk7D_set_rain
+atk7D_set_rain: @ 80502C8
push {lr}
ldr r2, =gBattleWeather
ldrh r0, [r2]
@@ -18684,7 +18684,7 @@ _08050304:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80502C8
+ thumb_func_end atk7D_set_rain
thumb_func_start atk7E_setreflect
atk7E_setreflect: @ 805031C
@@ -18692,7 +18692,7 @@ atk7E_setreflect: @ 805031C
ldr r6, =gBankAttacker
ldrb r0, [r6]
bl GetBankIdentity
- ldr r4, =gUnknown_0202428E
+ ldr r4, =gSideAffecting
movs r5, 0x1
adds r1, r5, 0
ands r1, r0
@@ -18750,7 +18750,7 @@ _0805035C:
cmp r0, 0
beq _080503CC
movs r0, 0x1
- bl sub_8069DEC
+ bl CountAliveMonsInBattle
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x2
@@ -18775,8 +18775,8 @@ _080503D2:
.pool
thumb_func_end atk7E_setreflect
- thumb_func_start sub_80503E8
-sub_80503E8: @ 80503E8
+ thumb_func_start atk7F_setseeded
+atk7F_setseeded: @ 80503E8
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -18862,7 +18862,7 @@ _08050488:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80503E8
+ thumb_func_end atk7F_setseeded
thumb_func_start atk80_manipulatedamage
atk80_manipulatedamage: @ 80504A8
@@ -19062,15 +19062,15 @@ _0805063A:
bx r0
thumb_func_end atk82_jumpifnotfirstturn
- thumb_func_start sub_8050640
-sub_8050640: @ 8050640
+ thumb_func_start atk83_nop
+atk83_nop: @ 8050640
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
bx lr
.pool
- thumb_func_end sub_8050640
+ thumb_func_end atk83_nop
thumb_func_start sub_8050650
sub_8050650: @ 8050650
@@ -19150,8 +19150,8 @@ _080506E2:
bx r1
thumb_func_end sub_8050650
- thumb_func_start sub_80506EC
-sub_80506EC: @ 80506EC
+ thumb_func_start atk84_jump_if_cant_sleep
+atk84_jump_if_cant_sleep: @ 80506EC
push {r4-r6,lr}
ldr r5, =gBattlescriptCurrInstr
ldr r1, [r5]
@@ -19207,10 +19207,10 @@ _08050762:
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end sub_80506EC
+ thumb_func_end atk84_jump_if_cant_sleep
- thumb_func_start sub_8050768
-sub_8050768: @ 8050768
+ thumb_func_start atk85_stockpile
+atk85_stockpile: @ 8050768
push {r4,r5,lr}
ldr r5, =gDisableStructs
ldr r4, =gBankAttacker
@@ -19263,7 +19263,7 @@ _080507CA:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8050768
+ thumb_func_end atk85_stockpile
thumb_func_start atk86_stockpiletobasedamage
atk86_stockpiletobasedamage: @ 80507E4
@@ -19303,7 +19303,7 @@ _08050828:
beq _080508B0
ldr r0, =gBattleMoveDamage
mov r8, r0
- ldr r4, =gUnknown_0202428E
+ ldr r4, =gSideAffecting
ldr r5, =gBankTarget
ldrb r0, [r5]
bl GetBankIdentity
@@ -19329,7 +19329,7 @@ _08050828:
str r4, [sp, 0x8]
ldrb r4, [r5]
str r4, [sp, 0xC]
- bl sub_806957C
+ bl CalculateBaseDamage
ldrb r2, [r6]
lsls r1, r2, 3
subs r1, r2
@@ -19386,8 +19386,8 @@ _080508CA:
.pool
thumb_func_end atk86_stockpiletobasedamage
- thumb_func_start atk87_stockpiletohprecovery
-atk87_stockpiletohprecovery: @ 8050904
+ thumb_func_start atk87_stockpiletohpheal
+atk87_stockpiletohpheal: @ 8050904
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -19486,7 +19486,7 @@ _080509D0:
pop {r0}
bx r0
.pool
- thumb_func_end atk87_stockpiletohprecovery
+ thumb_func_end atk87_stockpiletohpheal
thumb_func_start atk88_negativedamage
atk88_negativedamage: @ 80509E8
@@ -20186,8 +20186,8 @@ _08050FD2:
.pool
thumb_func_end atk8C_confuseifrepeatingattackends
- thumb_func_start atk8D_setloopcounter
-atk8D_setloopcounter: @ 8050FF0
+ thumb_func_start atk8D_setmultihit_counter
+atk8D_setmultihit_counter: @ 8050FF0
push {r4,r5,lr}
ldr r0, =gBattlescriptCurrInstr
ldr r0, [r0]
@@ -20220,10 +20220,10 @@ _08051026:
pop {r0}
bx r0
.pool
- thumb_func_end atk8D_setloopcounter
+ thumb_func_end atk8D_setmultihit_counter
- thumb_func_start atk8E_cmd8e
-atk8E_cmd8e: @ 805103C
+ thumb_func_start atk8E_prepare_multihit
+atk8E_prepare_multihit: @ 805103C
ldr r1, =gBattleScripting
movs r2, 0
movs r0, 0xFD
@@ -20241,7 +20241,7 @@ atk8E_cmd8e: @ 805103C
str r0, [r1]
bx lr
.pool
- thumb_func_end atk8E_cmd8e
+ thumb_func_end atk8E_prepare_multihit
thumb_func_start sub_8051064
sub_8051064: @ 8051064
@@ -20333,8 +20333,8 @@ _08051116:
.pool
thumb_func_end sub_8051064
- thumb_func_start sub_805112C
-sub_805112C: @ 805112C
+ thumb_func_start atk8F_forcerandomswitch
+atk8F_forcerandomswitch: @ 805112C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -20692,10 +20692,10 @@ _08051414:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_805112C
+ thumb_func_end atk8F_forcerandomswitch
- thumb_func_start sub_8051424
-sub_8051424: @ 8051424
+ thumb_func_start atk90_conversion_type_change
+atk90_conversion_type_change: @ 8051424
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -20903,10 +20903,10 @@ _080515B0:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8051424
+ thumb_func_end atk90_conversion_type_change
- thumb_func_start atk91_givemoney
-atk91_givemoney: @ 80515C8
+ thumb_func_start atk91_givepaydaymoney
+atk91_givepaydaymoney: @ 80515C8
push {r4,lr}
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
@@ -20967,7 +20967,7 @@ _08051658:
pop {r0}
bx r0
.pool
- thumb_func_end atk91_givemoney
+ thumb_func_end atk91_givepaydaymoney
thumb_func_start atk92_setlightscreen
atk92_setlightscreen: @ 8051664
@@ -20975,7 +20975,7 @@ atk92_setlightscreen: @ 8051664
ldr r5, =gBankAttacker
ldrb r0, [r5]
bl GetBankIdentity
- ldr r4, =gUnknown_0202428E
+ ldr r4, =gSideAffecting
movs r6, 0x1
adds r1, r6, 0
ands r1, r0
@@ -21033,7 +21033,7 @@ _080516A4:
cmp r0, 0
beq _08051714
movs r0, 0x1
- bl sub_8069DEC
+ bl CountAliveMonsInBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
@@ -21112,7 +21112,7 @@ _08051782:
bcs _080517C0
ldrb r0, [r5]
movs r1, 0x27
- bl b_history__record_item_x12_of_player
+ bl RecordItemEffectBattle
ldr r2, =gSpecialStatuses
ldrb r1, [r5]
lsls r0, r1, 2
@@ -21341,7 +21341,7 @@ _08051990:
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
- ldr r1, =gUnknown_02024208
+ ldr r1, =gLastUsedItem
mov r2, r9
ldrb r0, [r2]
muls r0, r3
@@ -21452,8 +21452,8 @@ _08051AA2:
.pool
thumb_func_end atk94_gethalfcurrentenemyhp
- thumb_func_start sub_8051AC0
-sub_8051AC0: @ 8051AC0
+ thumb_func_start atk95_setsandstorm
+atk95_setsandstorm: @ 8051AC0
push {lr}
ldr r2, =gBattleWeather
ldrh r1, [r2]
@@ -21489,10 +21489,10 @@ _08051AFE:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8051AC0
+ thumb_func_end atk95_setsandstorm
- thumb_func_start sub_8051B18
-sub_8051B18: @ 8051B18
+ thumb_func_start atk96_weatherdamage
+atk96_weatherdamage: @ 8051B18
push {r4,r5,lr}
sub sp, 0x4
movs r0, 0
@@ -21662,10 +21662,10 @@ _08051C6A:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8051B18
+ thumb_func_end atk96_weatherdamage
- thumb_func_start atk97_tryinfatuatetarget
-atk97_tryinfatuatetarget: @ 8051C90
+ thumb_func_start atk97_try_infatuation
+atk97_try_infatuation: @ 8051C90
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -21768,11 +21768,11 @@ _08051D1C:
_08051D94:
mov r0, r10
mov r1, r9
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
adds r4, r0, 0
mov r0, r8
adds r1, r7, 0
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -21790,14 +21790,14 @@ _08051D94:
bne _08051DE4
mov r0, r10
mov r1, r9
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
beq _08051DE4
mov r0, r8
adds r1, r7, 0
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
@@ -21846,10 +21846,10 @@ _08051E2C:
pop {r0}
bx r0
.pool
- thumb_func_end atk97_tryinfatuatetarget
+ thumb_func_end atk97_try_infatuation
- thumb_func_start sub_8051E48
-sub_8051E48: @ 8051E48
+ thumb_func_start atk98_status_icon_update
+atk98_status_icon_update: @ 8051E48
push {r4-r7,lr}
ldr r0, =gBattleExecBuffer
ldr r0, [r0]
@@ -21960,10 +21960,10 @@ _08051F34:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8051E48
+ thumb_func_end atk98_status_icon_update
- thumb_func_start atk99_setmisteffect
-atk99_setmisteffect: @ 8051F58
+ thumb_func_start atk99_setmist
+atk99_setmist: @ 8051F58
push {r4-r6,lr}
ldr r6, =gSideTimers
ldr r4, =gBankAttacker
@@ -22011,7 +22011,7 @@ _08051F98:
strb r1, [r0, 0x5]
ldrb r0, [r4]
bl GetBankIdentity
- ldr r2, =gUnknown_0202428E
+ ldr r2, =gSideAffecting
adds r1, r5, 0
ands r1, r0
lsls r1, 1
@@ -22034,10 +22034,10 @@ _08051FE6:
pop {r0}
bx r0
.pool
- thumb_func_end atk99_setmisteffect
+ thumb_func_end atk99_setmist
- thumb_func_start atk9A_setincreasedcriticalchance
-atk9A_setincreasedcriticalchance: @ 8052000
+ thumb_func_start atk9A_set_focusenergy
+atk9A_set_focusenergy: @ 8052000
push {lr}
ldr r1, =gBattleMons
ldr r0, =gBankAttacker
@@ -22076,7 +22076,7 @@ _08052048:
pop {r0}
bx r0
.pool
- thumb_func_end atk9A_setincreasedcriticalchance
+ thumb_func_end atk9A_set_focusenergy
thumb_func_start atk9B_transformdataexecution
atk9B_transformdataexecution: @ 805205C
@@ -22264,8 +22264,8 @@ _080521EC:
.pool
thumb_func_end atk9B_transformdataexecution
- thumb_func_start sub_80521FC
-sub_80521FC: @ 80521FC
+ thumb_func_start atk9C_set_substitute
+atk9C_set_substitute: @ 80521FC
push {r4-r7,lr}
ldr r7, =gBattleMons
ldr r6, =gBankAttacker
@@ -22344,7 +22344,7 @@ _08052290:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80521FC
+ thumb_func_end atk9C_set_substitute
thumb_func_start sub_80522B8
sub_80522B8: @ 80522B8
@@ -22395,7 +22395,7 @@ atk9D_copyattack: @ 8052300
ldr r1, =0x0000ffff
adds r7, r1, 0
strh r7, [r0]
- ldr r5, =gUnknown_02024248
+ ldr r5, =gLastUsedMovesByBanks
ldr r6, =gBankTarget
ldrb r0, [r6]
lsls r0, 1
@@ -22491,7 +22491,7 @@ _080523CE:
mov r0, r12
adds r0, 0xC
adds r1, r0
- ldr r2, =gUnknown_02024248
+ ldr r2, =gLastUsedMovesByBanks
ldr r3, =gBankTarget
ldrb r0, [r3]
lsls r0, 1
@@ -22602,8 +22602,8 @@ _080524CC:
bx r0
thumb_func_end atk9D_copyattack
- thumb_func_start sub_80524DC
-sub_80524DC: @ 80524DC
+ thumb_func_start atk9E_metronome
+atk9E_metronome: @ 80524DC
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -22671,10 +22671,10 @@ _0805251C:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80524DC
+ thumb_func_end atk9E_metronome
- thumb_func_start atk9F_nightshadedamageeffect
-atk9F_nightshadedamageeffect: @ 8052584
+ thumb_func_start atk9F_dmgtolevel
+atk9F_dmgtolevel: @ 8052584
ldr r3, =gBattleMoveDamage
ldr r2, =gBattleMons
ldr r0, =gBankAttacker
@@ -22691,7 +22691,7 @@ atk9F_nightshadedamageeffect: @ 8052584
str r0, [r1]
bx lr
.pool
- thumb_func_end atk9F_nightshadedamageeffect
+ thumb_func_end atk9F_dmgtolevel
thumb_func_start atkA0_psywavedamageeffect
atkA0_psywavedamageeffect: @ 80525B4
@@ -22955,7 +22955,7 @@ atkA3_disablelastusedattack: @ 80527F8
adds r7, r2, 0
adds r7, 0xC
adds r0, r7
- ldr r5, =gUnknown_02024248
+ ldr r5, =gLastUsedMovesByBanks
lsls r1, 1
adds r1, r5
ldrh r0, [r0]
@@ -23112,7 +23112,7 @@ atkA4_setencore: @ 805293C
adds r6, r3, 0
adds r6, 0xC
adds r0, r6
- ldr r2, =gUnknown_02024248
+ ldr r2, =gLastUsedMovesByBanks
lsls r1, 1
adds r1, r2
ldrh r0, [r0]
@@ -23249,8 +23249,8 @@ _08052A5E:
.pool
thumb_func_end atkA4_setencore
- thumb_func_start sub_8052A70
-sub_8052A70: @ 8052A70
+ thumb_func_start atkA5_painsplitdmgcalc
+atkA5_painsplitdmgcalc: @ 8052A70
push {r4-r7,lr}
ldr r6, =gBattleMons
ldr r0, =gBankTarget
@@ -23335,7 +23335,7 @@ _08052B2A:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8052A70
+ thumb_func_end atkA5_painsplitdmgcalc
thumb_func_start atkA6_settypetorandomresistance
atkA6_settypetorandomresistance: @ 8052B34
@@ -23942,8 +23942,8 @@ _08053012:
bx r1
thumb_func_end move_weather_interaction
- thumb_func_start sub_8053018
-sub_8053018: @ 8053018
+ thumb_func_start atkA9_sleeptalk_choose_move
+atkA9_sleeptalk_choose_move: @ 8053018
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -24006,7 +24006,7 @@ _08053084:
ldrb r0, [r0]
adds r1, r6, 0
movs r2, 0xFD
- bl sub_803FECC
+ bl CheckMoveLimitations
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0xF
@@ -24076,10 +24076,10 @@ _0805311C:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8053018
+ thumb_func_end atkA9_sleeptalk_choose_move
- thumb_func_start atkAA_destinybondeffect
-atkAA_destinybondeffect: @ 8053150
+ thumb_func_start atkAA_set_destinybond
+atkAA_set_destinybond: @ 8053150
ldr r1, =gBattleMons
ldr r0, =gBankAttacker
ldrb r2, [r0]
@@ -24098,7 +24098,7 @@ atkAA_destinybondeffect: @ 8053150
str r0, [r1]
bx lr
.pool
- thumb_func_end atkAA_destinybondeffect
+ thumb_func_end atkAA_set_destinybond
thumb_func_start b_feature_update_destiny_bond
b_feature_update_destiny_bond: @ 8053180
@@ -24144,8 +24144,8 @@ _080531CA:
.pool
thumb_func_end b_feature_update_destiny_bond
- thumb_func_start atkAB_802A458
-atkAB_802A458: @ 80531E0
+ thumb_func_start atkAB_DestinyBondFlagUpdate
+atkAB_DestinyBondFlagUpdate: @ 80531E0
push {lr}
bl b_feature_update_destiny_bond
ldr r1, =gBattlescriptCurrInstr
@@ -24155,7 +24155,7 @@ atkAB_802A458: @ 80531E0
pop {r0}
bx r0
.pool
- thumb_func_end atkAB_802A458
+ thumb_func_end atkAB_DestinyBondFlagUpdate
thumb_func_start atkAC_remaininghptopower
atkAC_remaininghptopower: @ 80531F8
@@ -24189,7 +24189,7 @@ _08053224:
cmp r1, r0
bgt _08053224
_08053232:
- ldr r2, =gUnknown_02024400
+ ldr r2, =gDynamicBasePower
ldr r1, =gUnknown_0831C408
adds r0, r3, 0x1
adds r0, r1
@@ -24204,15 +24204,15 @@ _08053232:
.pool
thumb_func_end atkAC_remaininghptopower
- thumb_func_start atkAD_reducepprandom
-atkAD_reducepprandom: @ 8053260
+ thumb_func_start atkAD_spite_ppreduce
+atkAD_spite_ppreduce: @ 8053260
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
- ldr r4, =gUnknown_02024248
+ ldr r4, =gLastUsedMovesByBanks
ldr r1, =gBankTarget
ldrb r3, [r1]
lsls r0, r3, 1
@@ -24299,7 +24299,7 @@ _08053304:
strb r5, [r1]
movs r0, 0x2
strb r0, [r1, 0x1]
- ldr r2, =gUnknown_02024248
+ ldr r2, =gLastUsedMovesByBanks
mov r3, r8
ldrb r0, [r3]
lsls r0, 1
@@ -24425,10 +24425,10 @@ _08053422:
pop {r0}
bx r0
.pool
- thumb_func_end atkAD_reducepprandom
+ thumb_func_end atkAD_spite_ppreduce
- thumb_func_start atkAE_clearstatusifnotsoundproofed
-atkAE_clearstatusifnotsoundproofed: @ 8053438
+ thumb_func_start atkAE_heal_party_status
+atkAE_heal_party_status: @ 8053438
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -24740,7 +24740,7 @@ _080536DE:
pop {r0}
bx r0
.pool
- thumb_func_end atkAE_clearstatusifnotsoundproofed
+ thumb_func_end atkAE_heal_party_status
thumb_func_start atkAF_cursetarget
atkAF_cursetarget: @ 805371C
@@ -24803,8 +24803,8 @@ _0805378C:
.pool
thumb_func_end atkAF_cursetarget
- thumb_func_start atkB0_setspikes
-atkB0_setspikes: @ 80537A0
+ thumb_func_start atkB0_set_spikes
+atkB0_set_spikes: @ 80537A0
push {r4,lr}
ldr r4, =gBankAttacker
ldrb r0, [r4]
@@ -24847,7 +24847,7 @@ atkB0_setspikes: @ 80537A0
b _0805381E
.pool
_08053804:
- ldr r1, =gUnknown_0202428E
+ ldr r1, =gSideAffecting
adds r1, r2, r1
ldrh r2, [r1]
movs r0, 0x10
@@ -24865,10 +24865,10 @@ _0805381E:
pop {r0}
bx r0
.pool
- thumb_func_end atkB0_setspikes
+ thumb_func_end atkB0_set_spikes
- thumb_func_start atkB1_setforesight
-atkB1_setforesight: @ 805382C
+ thumb_func_start atkB1_set_foresight
+atkB1_set_foresight: @ 805382C
ldr r1, =gBattleMons
ldr r0, =gBankTarget
ldrb r2, [r0]
@@ -24887,7 +24887,7 @@ atkB1_setforesight: @ 805382C
str r0, [r1]
bx lr
.pool
- thumb_func_end atkB1_setforesight
+ thumb_func_end atkB1_set_foresight
thumb_func_start atkB2_setperishsong
atkB2_setperishsong: @ 805385C
@@ -25084,7 +25084,7 @@ _080539BA:
ands r0, r2
str r0, [r1]
_080539EE:
- ldr r3, =gUnknown_02024400
+ ldr r3, =gDynamicBasePower
ldr r2, =gBattleMoves
mov r0, r8
ldrh r1, [r0]
@@ -25154,8 +25154,8 @@ _08053A60:
.pool
thumb_func_end atkB3_rolloutdamagecalculation
- thumb_func_start atkB4_jumpifconfusedandattackmaxed
-atkB4_jumpifconfusedandattackmaxed: @ 8053A90
+ thumb_func_start atkB4_jumpifconfusedandstatmaxed
+atkB4_jumpifconfusedandstatmaxed: @ 8053A90
push {r4,r5,lr}
ldr r5, =gBattleMons
ldr r0, =gBankTarget
@@ -25204,10 +25204,10 @@ _08053AF2:
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end atkB4_jumpifconfusedandattackmaxed
+ thumb_func_end atkB4_jumpifconfusedandstatmaxed
- thumb_func_start sub_8053AF8
-sub_8053AF8: @ 8053AF8
+ thumb_func_start atkB5_furycuttercalc
+atkB5_furycuttercalc: @ 8053AF8
push {r4,r5,lr}
ldr r0, =gBattleMoveFlags
ldrb r1, [r0]
@@ -25243,7 +25243,7 @@ _08053B34:
adds r0, 0x1
strb r0, [r1, 0x10]
_08053B4C:
- ldr r3, =gUnknown_02024400
+ ldr r3, =gDynamicBasePower
ldr r2, =gBattleMoves
ldr r0, =gCurrentMove
ldrh r1, [r0]
@@ -25282,7 +25282,7 @@ _08053B8C:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8053AF8
+ thumb_func_end atkB5_furycuttercalc
thumb_func_start atkB6_happinesstodamagecalculation
atkB6_happinesstodamagecalculation: @ 8053BAC
@@ -25297,7 +25297,7 @@ atkB6_happinesstodamagecalculation: @ 8053BAC
ldrb r0, [r0]
cmp r0, 0x79
bne _08053BEC
- ldr r4, =gUnknown_02024400
+ ldr r4, =gDynamicBasePower
ldr r2, =gBattleMons
ldr r0, =gBankAttacker
ldrb r1, [r0]
@@ -25309,7 +25309,7 @@ atkB6_happinesstodamagecalculation: @ 8053BAC
b _08053C02
.pool
_08053BEC:
- ldr r4, =gUnknown_02024400
+ ldr r4, =gDynamicBasePower
ldr r2, =gBattleMons
ldr r0, =gBankAttacker
ldrb r1, [r0]
@@ -25345,7 +25345,7 @@ atkB7_presentdamagecalculation: @ 8053C30
ands r4, r0
cmp r4, 0x65
bgt _08053C4C
- ldr r1, =gUnknown_02024400
+ ldr r1, =gDynamicBasePower
movs r0, 0x28
strh r0, [r1]
b _08053C8E
@@ -25353,7 +25353,7 @@ atkB7_presentdamagecalculation: @ 8053C30
_08053C4C:
cmp r4, 0xB1
bgt _08053C5C
- ldr r1, =gUnknown_02024400
+ ldr r1, =gDynamicBasePower
movs r0, 0x50
strh r0, [r1]
b _08053C8E
@@ -25361,7 +25361,7 @@ _08053C4C:
_08053C5C:
cmp r4, 0xCB
bgt _08053C6C
- ldr r1, =gUnknown_02024400
+ ldr r1, =gDynamicBasePower
movs r0, 0x78
strh r0, [r1]
b _08053C8E
@@ -25423,13 +25423,13 @@ _08053CE6:
.pool
thumb_func_end atkB7_presentdamagecalculation
- thumb_func_start atkB8_setsafeguard
-atkB8_setsafeguard: @ 8053CFC
+ thumb_func_start atkB8_set_safeguard
+atkB8_set_safeguard: @ 8053CFC
push {r4-r7,lr}
ldr r7, =gBankAttacker
ldrb r0, [r7]
bl GetBankIdentity
- ldr r4, =gUnknown_0202428E
+ ldr r4, =gSideAffecting
movs r6, 0x1
adds r1, r6, 0
ands r1, r0
@@ -25493,7 +25493,7 @@ _08053D88:
pop {r0}
bx r0
.pool
- thumb_func_end atkB8_setsafeguard
+ thumb_func_end atkB8_set_safeguard
thumb_func_start atkB9_magnitudedamagecalculation
atkB9_magnitudedamagecalculation: @ 8053DA4
@@ -25509,7 +25509,7 @@ atkB9_magnitudedamagecalculation: @ 8053DA4
lsrs r3, r0, 16
cmp r3, 0x4
bgt _08053DD0
- ldr r1, =gUnknown_02024400
+ ldr r1, =gDynamicBasePower
movs r0, 0xA
strh r0, [r1]
movs r3, 0x4
@@ -25518,7 +25518,7 @@ atkB9_magnitudedamagecalculation: @ 8053DA4
_08053DD0:
cmp r3, 0xE
bgt _08053DE4
- ldr r1, =gUnknown_02024400
+ ldr r1, =gDynamicBasePower
movs r0, 0x1E
strh r0, [r1]
movs r3, 0x5
@@ -25527,7 +25527,7 @@ _08053DD0:
_08053DE4:
cmp r3, 0x22
bgt _08053DF8
- ldr r1, =gUnknown_02024400
+ ldr r1, =gDynamicBasePower
movs r0, 0x32
strh r0, [r1]
movs r3, 0x6
@@ -25536,7 +25536,7 @@ _08053DE4:
_08053DF8:
cmp r3, 0x40
bgt _08053E0C
- ldr r1, =gUnknown_02024400
+ ldr r1, =gDynamicBasePower
movs r0, 0x46
strh r0, [r1]
movs r3, 0x7
@@ -25545,7 +25545,7 @@ _08053DF8:
_08053E0C:
cmp r3, 0x54
bgt _08053E20
- ldr r1, =gUnknown_02024400
+ ldr r1, =gDynamicBasePower
movs r0, 0x5A
strh r0, [r1]
movs r3, 0x8
@@ -25554,14 +25554,14 @@ _08053E0C:
_08053E20:
cmp r3, 0x5E
bgt _08053E34
- ldr r1, =gUnknown_02024400
+ ldr r1, =gDynamicBasePower
movs r0, 0x6E
strh r0, [r1]
movs r3, 0x9
b _08053E3C
.pool
_08053E34:
- ldr r1, =gUnknown_02024400
+ ldr r1, =gDynamicBasePower
movs r0, 0x96
strh r0, [r1]
movs r3, 0xA
@@ -25625,8 +25625,8 @@ _08053E94:
.pool
thumb_func_end atkB9_magnitudedamagecalculation
- thumb_func_start atkBA_802B140
-atkBA_802B140: @ 8053EC8
+ thumb_func_start atkBA_jumpifnopursuitswitchdmg
+atkBA_jumpifnopursuitswitchdmg: @ 8053EC8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -25797,10 +25797,10 @@ _0805404A:
pop {r0}
bx r0
.pool
- thumb_func_end atkBA_802B140
+ thumb_func_end atkBA_jumpifnopursuitswitchdmg
- thumb_func_start sub_805405C
-sub_805405C: @ 805405C
+ thumb_func_start atkBB_setsunny
+atkBB_setsunny: @ 805405C
push {lr}
ldr r2, =gBattleWeather
ldrh r1, [r2]
@@ -25836,7 +25836,7 @@ _0805409A:
pop {r0}
bx r0
.pool
- thumb_func_end sub_805405C
+ thumb_func_end atkBB_setsunny
thumb_func_start atkBC_maxattackhalvehp
atkBC_maxattackhalvehp: @ 80540B4
@@ -26021,7 +26021,7 @@ _08054210:
_08054250:
adds r0, r2, 0
bl GetBankSide
- ldr r4, =gUnknown_0202428E
+ ldr r4, =gSideAffecting
lsls r0, 24
lsrs r0, 23
adds r0, r4
@@ -26067,8 +26067,8 @@ _080542BA:
.pool
thumb_func_end atkBE_breakfree
- thumb_func_start atkBF_setcurled
-atkBF_setcurled: @ 80542C8
+ thumb_func_start atkBF_set_defense_curl
+atkBF_set_defense_curl: @ 80542C8
ldr r1, =gBattleMons
ldr r0, =gBankAttacker
ldrb r2, [r0]
@@ -26087,7 +26087,7 @@ atkBF_setcurled: @ 80542C8
str r0, [r1]
bx lr
.pool
- thumb_func_end atkBF_setcurled
+ thumb_func_end atkBF_set_defense_curl
thumb_func_start atkC0_recoverbasedonsunlight
atkC0_recoverbasedonsunlight: @ 80542F8
@@ -26211,8 +26211,8 @@ _080543F2:
.pool
thumb_func_end atkC0_recoverbasedonsunlight
- thumb_func_start sub_8054400
-sub_8054400: @ 8054400
+ thumb_func_start atkC1_hidden_power
+atkC1_hidden_power: @ 8054400
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -26309,7 +26309,7 @@ sub_8054400: @ 8054400
ands r1, r3
lsls r1, 5
orrs r4, r1
- ldr r5, =gUnknown_02024400
+ ldr r5, =gDynamicBasePower
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
@@ -26349,7 +26349,7 @@ _080544F0:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8054400
+ thumb_func_end atkC1_hidden_power
thumb_func_start atkC2_selectnexttarget
atkC2_selectnexttarget: @ 8054524
@@ -26439,7 +26439,7 @@ atkC3_setfutureattack: @ 8054598
_080545DC:
adds r0, r1, 0
bl GetBankIdentity
- ldr r4, =gUnknown_0202428E
+ ldr r4, =gSideAffecting
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -26497,7 +26497,7 @@ _080545DC:
str r4, [sp, 0x8]
ldrb r4, [r6]
str r4, [sp, 0xC]
- bl sub_806957C
+ bl CalculateBaseDamage
ldrb r1, [r6]
lsls r1, 2
mov r2, r8
@@ -26554,8 +26554,8 @@ _080546CC:
.pool
thumb_func_end atkC3_setfutureattack
- thumb_func_start atkC4_802B910
-atkC4_802B910: @ 80546E4
+ thumb_func_start atkC4_beat_up
+atkC4_beat_up: @ 80546E4
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -26783,7 +26783,7 @@ _080548E2:
pop {r0}
bx r0
.pool
- thumb_func_end atkC4_802B910
+ thumb_func_end atkC4_beat_up
thumb_func_start atkC5_hidepreattack
atkC5_hidepreattack: @ 80548F4
@@ -26940,8 +26940,8 @@ _08054A2C:
.pool
thumb_func_end atkC7_setminimize
- thumb_func_start sub_8054A48
-sub_8054A48: @ 8054A48
+ thumb_func_start atkC8_sethail
+atkC8_sethail: @ 8054A48
push {lr}
ldr r3, =gBattleWeather
ldrh r1, [r3]
@@ -26976,7 +26976,7 @@ _08054A86:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8054A48
+ thumb_func_end atkC8_sethail
thumb_func_start atkC9_jumpifattackandspecialattackcannotfall
atkC9_jumpifattackandspecialattackcannotfall: @ 8054AA0
@@ -27375,8 +27375,8 @@ _08054E02:
.pool
thumb_func_end atkD0_settaunt
- thumb_func_start atkD1_sethelpinghand
-atkD1_sethelpinghand: @ 8054E0C
+ thumb_func_start atkD1_set_helpinghand
+atkD1_set_helpinghand: @ 8054E0C
push {r4,lr}
ldr r4, =gBankAttacker
ldrb r0, [r4]
@@ -27446,10 +27446,10 @@ _08054EAA:
pop {r0}
bx r0
.pool
- thumb_func_end atkD1_sethelpinghand
+ thumb_func_end atkD1_set_helpinghand
- thumb_func_start sub_8054EB4
-sub_8054EB4: @ 8054EB4
+ thumb_func_start atkD2_swap_items
+atkD2_swap_items: @ 8054EB4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -27742,10 +27742,10 @@ _08055132:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8054EB4
+ thumb_func_end atkD2_swap_items
- thumb_func_start sub_8055148
-sub_8055148: @ 8055148
+ thumb_func_start atkD3_copy_ability
+atkD3_copy_ability: @ 8055148
push {r4,lr}
ldr r3, =gBattleMons
ldr r4, =gBankTarget
@@ -27798,10 +27798,10 @@ _080551B6:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8055148
+ thumb_func_end atkD3_copy_ability
- thumb_func_start atkD4_802C408
-atkD4_802C408: @ 80551C0
+ thumb_func_start atkD4_wish_effect
+atkD4_wish_effect: @ 80551C0
push {r4-r7,lr}
ldr r7, =gBattlescriptCurrInstr
ldr r2, [r7]
@@ -27898,10 +27898,10 @@ _0805528C:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end atkD4_802C408
+ thumb_func_end atkD4_wish_effect
- thumb_func_start sub_8055294
-sub_8055294: @ 8055294
+ thumb_func_start atkD5_setroots
+atkD5_setroots: @ 8055294
push {lr}
ldr r1, =gStatuses3
ldr r0, =gBankAttacker
@@ -27941,7 +27941,7 @@ _080552E4:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8055294
+ thumb_func_end atkD5_setroots
thumb_func_start atkD6_doubledamagedealtifdamaged
atkD6_doubledamagedealtifdamaged: @ 80552EC
@@ -27988,8 +27988,8 @@ _0805532A:
.pool
thumb_func_end atkD6_doubledamagedealtifdamaged
- thumb_func_start sub_805534C
-sub_805534C: @ 805534C
+ thumb_func_start atkD7_setyawn
+atkD7_setyawn: @ 805534C
push {r4,lr}
ldr r1, =gStatuses3
ldr r0, =gBankTarget
@@ -28040,7 +28040,7 @@ _080553B0:
pop {r0}
bx r0
.pool
- thumb_func_end sub_805534C
+ thumb_func_end atkD7_setyawn
thumb_func_start atkD8_setdamagetohealthdifference
atkD8_setdamagetohealthdifference: @ 80553BC
@@ -28093,7 +28093,7 @@ _0805541A:
thumb_func_start atkD9_scaledamagebyhealthratio
atkD9_scaledamagebyhealthratio: @ 8055428
push {r4,lr}
- ldr r4, =gUnknown_02024400
+ ldr r4, =gDynamicBasePower
ldrh r0, [r4]
cmp r0, 0
bne _08055464
@@ -28426,7 +28426,7 @@ _080556CE:
ldr r0, =0x0000ffff
cmp r1, r0
beq _080556FC
- ldr r0, =gUnknown_02024400
+ ldr r0, =gDynamicBasePower
adds r1, r5, 0x1
lsls r1, 1
adds r1, r6
@@ -28435,7 +28435,7 @@ _080556CE:
b _08055702
.pool
_080556FC:
- ldr r1, =gUnknown_02024400
+ ldr r1, =gDynamicBasePower
movs r0, 0x78
strh r0, [r1]
_08055702:
@@ -28736,8 +28736,8 @@ _0805598E:
.pool
thumb_func_end atkE0_setstealstatchange
- thumb_func_start atkE1_802CBE4
-atkE1_802CBE4: @ 805599C
+ thumb_func_start atkE1_intimidate_string_loader
+atkE1_intimidate_string_loader: @ 805599C
push {r4-r6,lr}
ldr r4, =gBattleScripting
ldr r0, =gBattleStruct
@@ -28832,10 +28832,10 @@ _08055A6C:
pop {r0}
bx r0
.pool
- thumb_func_end atkE1_802CBE4
+ thumb_func_end atkE1_intimidate_string_loader
- thumb_func_start atkE2_cmde2
-atkE2_cmde2: @ 8055A78
+ thumb_func_start atkE2_switchout_abilities
+atkE2_switchout_abilities: @ 8055A78
push {r4-r6,lr}
sub sp, 0x4
ldr r5, =gBattlescriptCurrInstr
@@ -28887,7 +28887,7 @@ _08055AD2:
pop {r0}
bx r0
.pool
- thumb_func_end atkE2_cmde2
+ thumb_func_end atkE2_switchout_abilities
thumb_func_start atkE3_jumpiffainted
atkE3_jumpiffainted: @ 8055AF4
@@ -28930,8 +28930,8 @@ _08055B42:
bx r0
thumb_func_end atkE3_jumpiffainted
- thumb_func_start sub_8055B48
-sub_8055B48: @ 8055B48
+ thumb_func_start atkE4_getsecretpowereffect
+atkE4_getsecretpowereffect: @ 8055B48
push {lr}
ldr r0, =gUnknown_02022FF0
ldrb r0, [r0]
@@ -29005,10 +29005,10 @@ _08055BE8:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8055B48
+ thumb_func_end atkE4_getsecretpowereffect
- thumb_func_start atkE5_pickupitemcalculation
-atkE5_pickupitemcalculation: @ 8055C00
+ thumb_func_start atkE5_pickup
+atkE5_pickup: @ 8055C00
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -29240,10 +29240,10 @@ _08055DD8:
pop {r0}
bx r0
.pool
- thumb_func_end atkE5_pickupitemcalculation
+ thumb_func_end atkE5_pickup
- thumb_func_start atkE6_castform_transform
-atkE6_castform_transform: @ 8055DFC
+ thumb_func_start atkE6_castform_change_animation
+atkE6_castform_change_animation: @ 8055DFC
push {r4,lr}
ldr r4, =gActiveBank
ldr r0, =gBattleScripting
@@ -29285,10 +29285,10 @@ _08055E2C:
pop {r0}
bx r0
.pool
- thumb_func_end atkE6_castform_transform
+ thumb_func_end atkE6_castform_change_animation
- thumb_func_start atkE7_castform_switch
-atkE7_castform_switch: @ 8055E64
+ thumb_func_start atkE7_castform_data_change
+atkE7_castform_data_change: @ 8055E64
push {r4,lr}
ldr r1, =gBattlescriptCurrInstr
ldr r0, [r1]
@@ -29313,7 +29313,7 @@ _08055E8E:
pop {r0}
bx r0
.pool
- thumb_func_end atkE7_castform_switch
+ thumb_func_end atkE7_castform_data_change
thumb_func_start atkE8_settypebasedhalvers
atkE8_settypebasedhalvers: @ 8055EA4
@@ -29397,8 +29397,8 @@ _08055F52:
.pool
thumb_func_end atkE8_settypebasedhalvers
- thumb_func_start atkE9_seteffectbyweather
-atkE9_seteffectbyweather: @ 8055F5C
+ thumb_func_start atkE9_setweatherballtype
+atkE9_setweatherballtype: @ 8055F5C
push {lr}
sub sp, 0x4
movs r0, 0
@@ -29484,7 +29484,7 @@ _08055FFC:
pop {r0}
bx r0
.pool
- thumb_func_end atkE9_seteffectbyweather
+ thumb_func_end atkE9_setweatherballtype
thumb_func_start atkEA_recycleitem
atkEA_recycleitem: @ 8056014
@@ -29511,7 +29511,7 @@ atkEA_recycleitem: @ 8056014
ldrh r0, [r0, 0x2E]
cmp r0, 0
bne _08056094
- ldr r1, =gUnknown_02024208
+ ldr r1, =gLastUsedItem
strh r5, [r1]
strh r0, [r6]
ldrb r0, [r7]
@@ -29576,7 +29576,7 @@ atkEB_settypetoterrain: @ 80560BC
movs r0, 0x21
adds r0, r3
mov r12, r0
- ldr r5, =gUnknown_0831C483
+ ldr r5, =sTerrainToType
ldr r4, =gUnknown_02022FF0
ldrb r0, [r4]
adds r0, r5
@@ -29642,8 +29642,8 @@ _0805615E:
.pool
thumb_func_end atkEB_settypetoterrain
- thumb_func_start atkEC_802D2A0
-atkEC_802D2A0: @ 805616C
+ thumb_func_start atkEC_pursuit_sth
+atkEC_pursuit_sth: @ 805616C
push {r4-r6,lr}
ldr r5, =gBankAttacker
ldrb r0, [r5]
@@ -29720,10 +29720,10 @@ _08056226:
pop {r0}
bx r0
.pool
- thumb_func_end atkEC_802D2A0
+ thumb_func_end atkEC_pursuit_sth
- thumb_func_start atkED_802D364
-atkED_802D364: @ 8056230
+ thumb_func_start atkED_802B4B4
+atkED_802B4B4: @ 8056230
push {r4,lr}
ldr r1, =gUnknown_0202420E
ldr r3, =gBankAttacker
@@ -29757,10 +29757,10 @@ _0805626A:
pop {r0}
bx r0
.pool
- thumb_func_end atkED_802D364
+ thumb_func_end atkED_802B4B4
- thumb_func_start atkEE_removereflectlightscreen
-atkEE_removereflectlightscreen: @ 8056284
+ thumb_func_start atkEE_removelightscreenreflect
+atkEE_removelightscreenreflect: @ 8056284
push {r4,lr}
ldr r0, =gBankAttacker
ldrb r0, [r0]
@@ -29781,7 +29781,7 @@ atkEE_removereflectlightscreen: @ 8056284
cmp r1, 0
beq _080562E4
_080562AC:
- ldr r2, =gUnknown_0202428E
+ ldr r2, =gSideAffecting
adds r2, r3, r2
ldrh r1, [r2]
ldr r0, =0x0000fffe
@@ -29811,10 +29811,10 @@ _080562EA:
pop {r0}
bx r0
.pool
- thumb_func_end atkEE_removereflectlightscreen
+ thumb_func_end atkEE_removelightscreenreflect
- thumb_func_start sub_8056300
-sub_8056300: @ 8056300
+ thumb_func_start atkEF_pokeball_catch_calculation
+atkEF_pokeball_catch_calculation: @ 8056300
push {r4-r6,lr}
movs r4, 0
ldr r0, =gBattleExecBuffer
@@ -29862,7 +29862,7 @@ _0805635C:
b _08056694
.pool
_08056384:
- ldr r0, =gUnknown_02024208
+ ldr r0, =gLastUsedItem
ldrh r0, [r0]
cmp r0, 0x5
bne _080563B0
@@ -29894,7 +29894,7 @@ _080563B0:
adds r0, r3
ldrb r5, [r0, 0x8]
_080563C8:
- ldr r2, =gUnknown_02024208
+ ldr r2, =gLastUsedItem
ldrh r0, [r2]
cmp r0, 0x5
bhi _080563D2
@@ -29994,7 +29994,7 @@ _080564A4:
b _080564D2
.pool
_080564B0:
- ldr r0, =gUnknown_03005D10
+ ldr r0, =gBattleResults
ldrb r0, [r0, 0x13]
adds r0, 0xA
lsls r0, 24
@@ -30005,7 +30005,7 @@ _080564B0:
b _080564D2
.pool
_080564C8:
- ldr r1, =gUnknown_0831C48D
+ ldr r1, =sBallCatchBonuses
ldrh r0, [r2]
subs r0, 0x2
adds r0, r1
@@ -30050,13 +30050,13 @@ _0805650E:
bl __udivsi3
adds r6, r0, 0
_08056522:
- ldr r1, =gUnknown_02024208
+ ldr r1, =gLastUsedItem
ldrh r0, [r1]
cmp r0, 0x5
beq _08056564
cmp r0, 0x1
bne _08056550
- ldr r0, =gUnknown_03005D10
+ ldr r0, =gBattleResults
ldrb r1, [r0, 0x5]
movs r2, 0x2
orrs r1, r2
@@ -30064,7 +30064,7 @@ _08056522:
b _08056564
.pool
_08056550:
- ldr r0, =gUnknown_03005D10
+ ldr r0, =gBattleResults
ldrh r1, [r1]
adds r0, r1
adds r1, r0, 0
@@ -30096,7 +30096,7 @@ _08056564:
muls r0, r1
ldr r1, =gEnemyParty
adds r0, r1
- ldr r2, =gUnknown_02024208
+ ldr r2, =gLastUsedItem
movs r1, 0x26
bl SetMonData
bl calc_player_party_count
@@ -30137,7 +30137,7 @@ _080565FA:
cmp r0, r6
bcc _080565F4
_0805660A:
- ldr r5, =gUnknown_02024208
+ ldr r5, =gLastUsedItem
ldrh r0, [r5]
cmp r0, 0x1
bne _08056614
@@ -30196,10 +30196,10 @@ _08056696:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8056300
+ thumb_func_end atkEF_pokeball_catch_calculation
- thumb_func_start atkF0_catch_pokemon
-atkF0_catch_pokemon: @ 80566A8
+ thumb_func_start atkF0_copy_caught_poke
+atkF0_copy_caught_poke: @ 80566A8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -30313,7 +30313,7 @@ _08056792:
movs r1, 0xB
movs r2, 0
bl GetMonData
- ldr r5, =gUnknown_03005D10
+ ldr r5, =gBattleResults
strh r0, [r5, 0x28]
mov r1, r9
ldrb r0, [r1]
@@ -30363,10 +30363,10 @@ _08056792:
pop {r0}
bx r0
.pool
- thumb_func_end atkF0_catch_pokemon
+ thumb_func_end atkF0_copy_caught_poke
- thumb_func_start atkF1_802D95C
-atkF1_802D95C: @ 8056850
+ thumb_func_start atkF1_setpoke_as_caught
+atkF1_setpoke_as_caught: @ 8056850
push {r4,r5,lr}
ldr r4, =gEnemyParty
adds r0, r4, 0
@@ -30421,10 +30421,10 @@ _080568C2:
pop {r0}
bx r0
.pool
- thumb_func_end atkF1_802D95C
+ thumb_func_end atkF1_setpoke_as_caught
- thumb_func_start sub_80568CC
-sub_80568CC: @ 80568CC
+ thumb_func_start atkF2_display_dex_info
+atkF2_display_dex_info: @ 80568CC
push {r4,lr}
sub sp, 0x4
ldr r0, =gEnemyParty
@@ -30573,7 +30573,7 @@ _08056A2C:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80568CC
+ thumb_func_end atkF2_display_dex_info
thumb_func_start sub_8056A3C
sub_8056A3C: @ 8056A3C
@@ -30795,8 +30795,8 @@ sub_8056BAC: @ 8056BAC
.pool
thumb_func_end sub_8056BAC
- thumb_func_start atkF3_receive_new_pokemon_maybe
-atkF3_receive_new_pokemon_maybe: @ 8056BEC
+ thumb_func_start atkF3_nickname_caught_poke
+atkF3_nickname_caught_poke: @ 8056BEC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -31070,10 +31070,10 @@ _08056E62:
pop {r0}
bx r0
.pool
- thumb_func_end atkF3_receive_new_pokemon_maybe
+ thumb_func_end atkF3_nickname_caught_poke
- thumb_func_start sub_8056E78
-sub_8056E78: @ 8056E78
+ thumb_func_start atkF4_802BEF0
+atkF4_802BEF0: @ 8056E78
ldr r2, =gBattleMons
ldr r0, =gBankAttacker
ldrb r1, [r0]
@@ -31091,10 +31091,10 @@ sub_8056E78: @ 8056E78
str r0, [r1]
bx lr
.pool
- thumb_func_end sub_8056E78
+ thumb_func_end atkF4_802BEF0
- thumb_func_start atkF5_reset_attacker_bd_x4C
-atkF5_reset_attacker_bd_x4C: @ 8056EA8
+ thumb_func_start atkF5_removeattackerstatus1
+atkF5_removeattackerstatus1: @ 8056EA8
ldr r1, =gBattleMons
ldr r0, =gBankAttacker
ldrb r2, [r0]
@@ -31110,19 +31110,19 @@ atkF5_reset_attacker_bd_x4C: @ 8056EA8
str r0, [r1]
bx lr
.pool
- thumb_func_end atkF5_reset_attacker_bd_x4C
+ thumb_func_end atkF5_removeattackerstatus1
- thumb_func_start sub_8056ED0
-sub_8056ED0: @ 8056ED0
+ thumb_func_start atkF6_802BF48
+atkF6_802BF48: @ 8056ED0
ldr r1, =gFightStateTracker
movs r0, 0xC
strb r0, [r1]
bx lr
.pool
- thumb_func_end sub_8056ED0
+ thumb_func_end atkF6_802BF48
- thumb_func_start sub_8056EDC
-sub_8056EDC: @ 8056EDC
+ thumb_func_start atkF7_802BF54
+atkF7_802BF54: @ 8056EDC
ldr r1, =gFightStateTracker
movs r0, 0xC
strb r0, [r1]
@@ -31132,7 +31132,7 @@ sub_8056EDC: @ 8056EDC
strb r0, [r1]
bx lr
.pool
- thumb_func_end sub_8056EDC
+ thumb_func_end atkF7_802BF54
thumb_func_start sub_8056EF8
sub_8056EF8: @ 8056EF8
diff --git a/asm/battle_7.s b/asm/battle_7.s
index ef67d6bc0..9fc2c3875 100644
--- a/asm/battle_7.s
+++ b/asm/battle_7.s
@@ -85,7 +85,7 @@ sub_805D19C: @ 805D19C
mov r10, r2
movs r1, 0
movs r2, 0xFF
- bl sub_803FECC
+ bl CheckMoveLimitations
lsls r0, 24
lsrs r0, 24
mov r8, r0
@@ -194,7 +194,7 @@ _0805D27C:
lsls r0, r6, 24
lsrs r0, 24
bl BattleAI_SetupAIData
- bl sub_8130BA4
+ bl BattleAI_ChooseMoveOrAction
lsls r0, 24
lsrs r0, 24
mov r9, r0
@@ -2347,7 +2347,7 @@ _0805E4DE:
b _0805E77A
.pool
_0805E51C:
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _0805E558
@@ -2578,7 +2578,7 @@ _0805E70A:
adds r1, r2
ldr r2, =0x04000008
bl CpuSet
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0805E74A
@@ -2639,7 +2639,7 @@ sub_805E7DC: @ 805E7DC
lsls r1, 24
cmp r1, 0
bne _0805E898
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _0805E7F8
@@ -2651,7 +2651,7 @@ _0805E7F8:
lsls r0, 24
lsrs r4, r0, 24
_0805E802:
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _0805E814
@@ -2714,7 +2714,7 @@ _0805E860:
b _0805E8E6
.pool
_0805E898:
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0805E8E6
diff --git a/asm/battle_9.s b/asm/battle_9.s
index 00d893f21..3484ee157 100644
--- a/asm/battle_9.s
+++ b/asm/battle_9.s
@@ -2039,7 +2039,7 @@ _08063D02:
ldrb r1, [r0]
adds r0, r4, 0
ldr r2, [sp, 0x4]
- bl move_effectiveness_something
+ bl TypeCalc
movs r1, 0x2
ands r1, r0
cmp r1, 0
@@ -2074,7 +2074,7 @@ _08063D58:
beq _08063D60
b _08063BE4
_08063D60:
- ldr r0, =gUnknown_02024400
+ ldr r0, =gDynamicBasePower
movs r1, 0
strh r1, [r0]
ldr r0, =gBattleStruct
@@ -2167,11 +2167,11 @@ _08063DEE:
beq _08063E2A
ldrb r0, [r6]
ldr r1, [sp, 0x4]
- bl sub_8046E7C
+ bl AI_CalcDmg
ldrb r1, [r6]
adds r0, r4, 0
ldr r2, [sp, 0x4]
- bl move_effectiveness_something
+ bl TypeCalc
_08063E2A:
mov r2, r8
ldr r0, [r2]
diff --git a/asm/battle_anim.s b/asm/battle_anim.s
index 3fb24e627..639be6b7d 100644
--- a/asm/battle_anim.s
+++ b/asm/battle_anim.s
@@ -123,7 +123,7 @@ move_something: @ 80A3A48
lsls r2, 24
lsrs r2, 24
mov r9, r2
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A3AE8
@@ -846,7 +846,7 @@ _080A406E:
movs r2, 0x80
lsls r2, 1
bl m4aMPlayVolumeControl
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A409C
@@ -1021,7 +1021,7 @@ _080A41FA:
lsrs r0, 24
cmp r0, 0x1
bls _080A4226
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A4230
@@ -1073,7 +1073,7 @@ _080A4266:
lsrs r0, 24
cmp r0, 0x1
bls _080A4294
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A42A4
@@ -1130,7 +1130,7 @@ b_side_obj__get_some_boolean: @ 80A4310
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A4330
@@ -1146,7 +1146,7 @@ _080A4330:
lsls r0, 24
cmp r0, 0
beq _080A4384
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A4374
@@ -1203,7 +1203,7 @@ sub_80A438C: @ 80A438C
beq _080A43AA
b _080A455E
_080A43AA:
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1278,7 +1278,7 @@ _080A43F8:
negs r0, r0
adds r0, 0x20
strh r0, [r5]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A447A
@@ -1347,7 +1347,7 @@ _080A44B0:
ldr r2, =0x04000008
adds r0, r4, 0
bl CpuSet
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A4524
@@ -1374,7 +1374,7 @@ _080A452E:
movs r1, 0
movs r2, 0
bl sub_8118FBC
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A4558
@@ -1645,7 +1645,7 @@ sub_80A477C: @ 80A477C
bl sub_80A6B30
cmp r4, 0
beq _080A479C
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
@@ -1891,7 +1891,7 @@ sub_80A4980: @ 80A4980
lsrs r0, 24
cmp r0, 0x1
bls _080A49BC
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A49C4
@@ -1985,7 +1985,7 @@ _080A4A4A:
lsrs r0, 24
cmp r0, 0x1
bls _080A4A76
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A4A80
@@ -2018,7 +2018,7 @@ _080A4A8A:
lsrs r0, 24
cmp r0, 0x1
bls _080A4ABC
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A4AC0
@@ -2171,7 +2171,7 @@ sub_80A4BB0: @ 80A4BB0
lsrs r0, 24
cmp r0, 0x1
bls _080A4BEE
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A4BF8
@@ -2441,8 +2441,8 @@ ma13_goto: @ 80A4DCC
.pool
thumb_func_end ma13_goto
- thumb_func_start sub_80A4DF0
-sub_80A4DF0: @ 80A4DF0
+ thumb_func_start IsContest
+IsContest: @ 80A4DF0
push {lr}
ldr r0, =gMain
ldr r1, =0x00000439
@@ -2460,7 +2460,7 @@ _080A4E10:
_080A4E12:
pop {r1}
bx r1
- thumb_func_end sub_80A4DF0
+ thumb_func_end IsContest
thumb_func_start ma14_load_background
ma14_load_background: @ 80A4E18
@@ -2513,7 +2513,7 @@ sub_80A4E5C: @ 80A4E5C
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A4EA8
@@ -2670,7 +2670,7 @@ sub_80A4FC8: @ 80A4FC8
push {r4-r7,lr}
lsls r0, 16
lsrs r7, r0, 16
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A5050
@@ -2747,7 +2747,7 @@ _080A507E:
thumb_func_start dp01t_11_3_message_for_player_only
dp01t_11_3_message_for_player_only: @ 80A5090
push {lr}
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A50A2
@@ -2855,12 +2855,12 @@ ma18_load_background_probably: @ 80A5158
.pool
thumb_func_end ma18_load_background_probably
- thumb_func_start sub_80A5178
-sub_80A5178: @ 80A5178
+ thumb_func_start BattleAnimGetPanControl
+BattleAnimGetPanControl: @ 80A5178
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A51C0
@@ -2888,7 +2888,7 @@ sub_80A5178: @ 80A5178
b _080A5252
.pool
_080A51C0:
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A51E8
@@ -2975,14 +2975,14 @@ _080A526C:
pop {r4}
pop {r1}
bx r1
- thumb_func_end sub_80A5178
+ thumb_func_end BattleAnimGetPanControl
thumb_func_start sub_80A5278
sub_80A5278: @ 80A5278
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A52C0
@@ -3016,7 +3016,7 @@ _080A52C0:
lsls r0, 24
cmp r0, 0
bne _080A52D8
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A52DE
@@ -3110,7 +3110,7 @@ ma19_08073BC8: @ 80A5354
orrs r4, r0
movs r0, 0x2
ldrsb r0, [r1, r0]
- bl sub_80A5178
+ bl BattleAnimGetPanControl
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -3134,7 +3134,7 @@ ma1A_8073C00: @ 80A538C
str r0, [r4]
movs r0, 0x1
ldrsb r0, [r1, r0]
- bl sub_80A5178
+ bl BattleAnimGetPanControl
lsls r0, 24
asrs r0, 24
bl SE12PanpotControl
@@ -3172,14 +3172,14 @@ ma1B_8073C2C: @ 80A53B8
ldrb r7, [r1, 0x5]
movs r0, 0x2
ldrsb r0, [r1, r0]
- bl sub_80A5178
+ bl BattleAnimGetPanControl
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
lsls r4, 24
asrs r4, 24
adds r0, r4, 0
- bl sub_80A5178
+ bl BattleAnimGetPanControl
mov r8, r0
lsls r5, 24
asrs r5, 24
@@ -3487,7 +3487,7 @@ ma1C_8073ED0: @ 80A565C
mov r9, r2
movs r0, 0x2
ldrsb r0, [r1, r0]
- bl sub_80A5178
+ bl BattleAnimGetPanControl
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -3592,7 +3592,7 @@ ma1D_08073FB4: @ 80A5740
mov r8, r0
movs r0, 0x2
ldrsb r0, [r1, r0]
- bl sub_80A5178
+ bl BattleAnimGetPanControl
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -3822,7 +3822,7 @@ sub_80A5944: @ 80A5944
ldr r0, [r4]
adds r0, 0x1
str r0, [r4]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A5978
@@ -3870,7 +3870,7 @@ _080A59A2:
bl GetBankIdentity
lsls r0, 24
lsrs r4, r0, 24
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A59D2
@@ -3901,7 +3901,7 @@ sub_80A59DC: @ 80A59DC
ldr r1, [r0]
adds r1, 0x1
str r1, [r0]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A5A04
@@ -3949,7 +3949,7 @@ _080A5A4A:
bl GetBankIdentity
lsls r0, 24
lsrs r4, r0, 24
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A5A78
@@ -3978,7 +3978,7 @@ ma2B_make_side_invisible: @ 80A5A80
ldr r4, =gBattleAnimScriptPtr
ldr r0, [r4]
ldrb r0, [r0, 0x1]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
@@ -4009,7 +4009,7 @@ ma2C_make_side_visible: @ 80A5ABC
ldr r4, =gBattleAnimScriptPtr
ldr r0, [r4]
ldrb r0, [r0, 0x1]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
@@ -4043,7 +4043,7 @@ sub_80A5AFC: @ 80A5AFC
ldrb r7, [r0, 0x1]
adds r0, 0x2
str r0, [r1]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A5BA6
@@ -4078,7 +4078,7 @@ _080A5B54:
lsrs r4, r0, 24
movs r0, 0x1
_080A5B60:
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
@@ -4125,7 +4125,7 @@ sub_80A5BAC: @ 80A5BAC
ldrb r7, [r0, 0x1]
adds r0, 0x2
str r0, [r1]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A5C38
@@ -4160,7 +4160,7 @@ _080A5C04:
lsrs r4, r0, 24
movs r0, 0x1
_080A5C10:
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
diff --git a/asm/battle_anin_80A9C70.s b/asm/battle_anim_80A9C70.s
index 1455134ec..16366988e 100644
--- a/asm/battle_anin_80A9C70.s
+++ b/asm/battle_anim_80A9C70.s
@@ -348,7 +348,7 @@ sub_80A9EF4: @ 80A9EF4
ldr r1, =0xffdc0000
adds r0, r1
lsrs r4, r0, 16
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A9F32
diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s
index ba712ef89..6d6b82e0a 100644
--- a/asm/battle_anim_80FE840.s
+++ b/asm/battle_anim_80FE840.s
@@ -113,7 +113,7 @@ sub_80FE8E0: @ 80FE8E0
str r0, [r4, 0x1C]
ldr r1, =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -149,7 +149,7 @@ sub_80FE930: @ 80FE930
str r0, [r4, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -557,7 +557,7 @@ sub_80FECB8: @ 80FECB8
str r0, [r4, 0x1C]
ldr r1, =sub_80FECF0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_080FECE2:
pop {r4}
pop {r0}
@@ -585,7 +585,7 @@ sub_80FECF0: @ 80FECF0
str r0, [r4, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -717,7 +717,7 @@ sub_80FEE1C: @ 80FEE1C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080FEE36
@@ -1434,7 +1434,7 @@ sub_80FF3B0: @ 80FF3B0
ands r0, r1
strb r0, [r2]
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
movs r0, 0x80
lsls r0, 1
strh r0, [r4, 0x2E]
@@ -1452,7 +1452,7 @@ sub_80FF3EC: @ 80FF3EC
push {r4,lr}
adds r4, r0, 0
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
movs r1, 0x32
ldrsh r0, [r4, r1]
cmp r0, 0
@@ -1517,7 +1517,7 @@ sub_80FF458: @ 80FF458
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r1, r0, 24
ldr r0, =gSprites
@@ -1567,7 +1567,7 @@ _080FF498:
orrs r0, r1
strb r0, [r7, 0x5]
movs r0, 0x3
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r1, r0, 24
lsls r4, r1, 4
@@ -1618,7 +1618,7 @@ sub_80FF53C: @ 80FF53C
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
@@ -1698,7 +1698,7 @@ sub_80FF5CC: @ 80FF5CC
cmp r5, 0
bne _080FF674
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -1723,7 +1723,7 @@ sub_80FF5CC: @ 80FF5CC
orrs r0, r2
strb r0, [r1, 0x5]
movs r0, 0x3
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
@@ -1862,7 +1862,7 @@ _080FF704:
str r0, [r5, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_080FF756:
pop {r4-r6}
pop {r0}
@@ -2485,7 +2485,7 @@ _080FFC38:
adds r0, r6, 0
adds r0, 0xA
strh r0, [r5, 0x3C]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080FFC50
@@ -2640,7 +2640,7 @@ _080FFD56:
cmp r0, 0
bne _080FFD8A
movs r0, 0x3F
- bl sub_80A5178
+ bl BattleAnimGetPanControl
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -2658,7 +2658,7 @@ _080FFD8A:
str r0, [r4, 0x1C]
movs r0, 0x40
negs r0, r0
- bl sub_80A5178
+ bl BattleAnimGetPanControl
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -2679,7 +2679,7 @@ sub_80FFDBC: @ 80FFDBC
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080FFE50
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080FFDE4
@@ -2869,7 +2869,7 @@ _080FFF10:
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x30]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080FFF5E
@@ -3867,7 +3867,7 @@ _08100700:
adds r0, r7
strh r0, [r4, 0x22]
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
_0810071A:
adds r0, r6, 0
bl sub_80A8328
@@ -4155,7 +4155,7 @@ _08100918:
bl sub_80A74F4
lsls r0, 16
lsrs r4, r0, 16
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _0810097A
@@ -4266,7 +4266,7 @@ _08100A2C:
str r0, [r4, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -4330,7 +4330,7 @@ sub_8100A94: @ 8100A94
bl StartSpriteAffineAnim
ldr r1, =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A66DC
str r0, [r4, 0x1C]
pop {r4}
@@ -4621,7 +4621,7 @@ _08100CF2:
bne _08100D28
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
movs r0, 0x3
strh r0, [r4, 0x2E]
ldr r0, =sub_80A64B0
@@ -4857,7 +4857,7 @@ _08100EE8:
sub_8100EF0: @ 8100EF0
push {r4-r6,lr}
adds r5, r0, 0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _08100F06
@@ -4889,7 +4889,7 @@ _08100F06:
lsls r0, 24
cmp r0, 0
beq _08100F44
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _08100F6C
@@ -5408,7 +5408,7 @@ _08101320:
strh r0, [r4, 0x32]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A656C
str r0, [r4, 0x1C]
pop {r4,r5}
@@ -5509,7 +5509,7 @@ _08101414:
strh r0, [r5, 0x32]
ldr r1, =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A656C
str r0, [r5, 0x1C]
pop {r4-r6}
@@ -5707,7 +5707,7 @@ sub_81015AC: @ 81015AC
ldr r1, =sub_80A64B0
str r1, [r0, 0x1C]
ldr r1, =sub_81015D4
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.pool
@@ -5732,7 +5732,7 @@ _081015EA:
str r0, [r5, 0x1C]
ldr r1, =sub_81015D4
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
b _0810166A
.pool
_08101604:
@@ -5770,7 +5770,7 @@ _08101604:
str r0, [r5, 0x1C]
ldr r1, =sub_8101684
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
movs r1, 0x80
lsls r1, 1
adds r0, r1, 0
@@ -5778,7 +5778,7 @@ _08101604:
adds r0, r1
strh r0, [r5, 0x38]
movs r0, 0x3F
- bl sub_80A5178
+ bl BattleAnimGetPanControl
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -5810,7 +5810,7 @@ sub_8101684: @ 8101684
str r0, [r2, 0x1C]
ldr r1, =sub_81016B8
adds r0, r2, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
b _081016B0
.pool
_081016AC:
@@ -5837,7 +5837,7 @@ sub_81016B8: @ 81016B8
str r0, [r5, 0x1C]
ldr r1, =sub_8101774
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
b _08101760
.pool
_081016E0:
@@ -5904,7 +5904,7 @@ _08101718:
str r0, [r5, 0x1C]
ldr r1, =sub_8101820
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_08101760:
pop {r4-r7}
pop {r0}
@@ -5975,7 +5975,7 @@ _081017A4:
movs r2, 0x4
bl LoadPalette
movs r0, 0x3F
- bl sub_80A5178
+ bl BattleAnimGetPanControl
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -6220,7 +6220,7 @@ _081019B6:
strh r0, [r4, 0x34]
ldr r1, =sub_81019E8
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A6630
str r0, [r4, 0x1C]
pop {r4,r5}
@@ -6322,7 +6322,7 @@ _08101A92:
strh r0, [r4, 0x34]
ldr r1, =sub_8101B84
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A6630
str r0, [r4, 0x1C]
pop {r4,r5}
@@ -6949,7 +6949,7 @@ _08101F5E:
strh r0, [r5, 0x30]
ldr r1, =sub_810208C
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
str r0, [r5, 0x1C]
pop {r4-r6}
@@ -6979,7 +6979,7 @@ sub_8101FA8: @ 8101FA8
strh r0, [r4, 0x22]
ldr r1, =sub_8102044
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
pop {r4,r5}
@@ -7043,7 +7043,7 @@ sub_8102044: @ 8102044
strh r0, [r4, 0x32]
ldr r1, =sub_810207C
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A653C
str r0, [r4, 0x1C]
_0810206E:
@@ -7213,7 +7213,7 @@ sub_810217C: @ 810217C
strh r5, [r4, 0x34]
strh r5, [r4, 0x36]
subs r0, 0x42
- bl sub_80A5178
+ bl BattleAnimGetPanControl
lsls r0, 24
asrs r0, 24
strh r0, [r4, 0x38]
@@ -7334,7 +7334,7 @@ sub_8102268: @ 8102268
ldrh r5, [r5, 0x2]
adds r0, r5
strh r0, [r6, 0x22]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _081022AC
@@ -7482,7 +7482,7 @@ _08102390:
str r0, [r5, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_081023CC:
pop {r4,r5}
pop {r0}
@@ -7621,7 +7621,7 @@ _081024C2:
sub_81024E0: @ 81024E0
push {r4,lr}
adds r4, r0, 0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _081024F6
@@ -8088,7 +8088,7 @@ _08102862:
ldrh r1, [r5, 0x20]
strh r1, [r5, 0x3A]
strh r0, [r5, 0x3C]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _081028D4
@@ -8237,7 +8237,7 @@ sub_81029B4: @ 81029B4
ldr r1, =gTasks
adds r6, r0, r1
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x8]
@@ -8482,7 +8482,7 @@ sub_8102BCC: @ 8102BCC
push {r4,lr}
adds r4, r0, 0
ldr r1, =move_anim_8072740
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
pop {r4}
@@ -8648,7 +8648,7 @@ _08102D10:
strh r1, [r5, 0x32]
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x34]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _08102D34
@@ -9023,7 +9023,7 @@ _08102FDE:
str r0, [r5, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4-r6}
pop {r0}
bx r0
@@ -9223,7 +9223,7 @@ _08103182:
bl StartSpriteAnim
ldr r1, =sub_81031D0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
str r0, [r5, 0x1C]
pop {r4,r5}
@@ -9244,7 +9244,7 @@ sub_81031D0: @ 81031D0
bne _081031F8
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldrh r1, [r4, 0x30]
lsls r1, 24
lsrs r1, 24
@@ -9281,7 +9281,7 @@ _08103226:
strh r0, [r4, 0x2E]
ldr r1, =sub_8103250
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67BC
str r0, [r4, 0x1C]
pop {r4}
@@ -9306,7 +9306,7 @@ sub_8103250: @ 8103250
bl StartSpriteAffineAnim
ldr r1, =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67BC
str r0, [r4, 0x1C]
_08103276:
@@ -9363,7 +9363,7 @@ _081032CA:
strh r6, [r4, 0x36]
ldr r1, =sub_8103300
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67BC
str r0, [r4, 0x1C]
pop {r4-r6}
@@ -9519,7 +9519,7 @@ sub_81033F0: @ 81033F0
bl StartSpriteAnim
ldr r1, =sub_810342C
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
_0810341E:
@@ -9571,7 +9571,7 @@ sub_8103448: @ 8103448
strh r0, [r4, 0x36]
ldr r1, =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, =sub_80A6450
str r1, [r4, 0x1C]
adds r0, r4, 0
@@ -9794,7 +9794,7 @@ sub_8103620: @ 8103620
str r0, [r4, 0x1C]
ldr r1, =sub_8103658
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -9814,7 +9814,7 @@ sub_8103658: @ 8103658
ldr r1, =sub_80A6EEC
str r1, [r0, 0x1C]
ldr r1, =sub_8103680
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.pool
@@ -10056,7 +10056,7 @@ _08103860:
str r0, [r4, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -10073,7 +10073,7 @@ sub_810387C: @ 810387C
str r0, [r4, 0x1C]
ldr r1, =sub_81038A0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -10093,7 +10093,7 @@ sub_81038A0: @ 81038A0
ldr r1, =sub_80A6EEC
str r1, [r0, 0x1C]
ldr r1, =move_anim_8072740
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.pool
@@ -10106,7 +10106,7 @@ sub_81038C8: @ 81038C8
push {r7}
sub sp, 0x4
adds r5, r0, 0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _081038EC
@@ -10178,7 +10178,7 @@ _0810390E:
lsls r1, 24
adds r0, r1
lsrs r4, r0, 16
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _08103980
@@ -10203,7 +10203,7 @@ _08103980:
str r0, [r5, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
add sp, 0x4
pop {r3}
mov r8, r3
@@ -10604,7 +10604,7 @@ _08103C90:
strh r0, [r4, 0xA]
movs r0, 0x3F
negs r0, r0
- bl sub_80A5178
+ bl BattleAnimGetPanControl
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -10642,7 +10642,7 @@ sub_8103CF0: @ 8103CF0
mov r4, sp
adds r4, 0x2
strh r1, [r4]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
mov r10, r4
cmp r0, 0
@@ -11114,7 +11114,7 @@ _081040CC:
str r0, [r5, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
add sp, 0x4
pop {r4-r7}
pop {r0}
@@ -11223,7 +11223,7 @@ sub_81041C4: @ 81041C4
strb r0, [r2]
ldr r1, =sub_810421C
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -11235,7 +11235,7 @@ sub_810421C: @ 810421C
push {r4,lr}
adds r4, r0, 0
movs r0, 0x3F
- bl sub_80A5178
+ bl BattleAnimGetPanControl
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -11377,7 +11377,7 @@ _08104322:
str r0, [r4, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
@@ -11442,7 +11442,7 @@ _08104390:
str r0, [r5, 0x1C]
ldr r1, =sub_81043F8
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r3}
mov r8, r3
pop {r4-r7}
@@ -11678,7 +11678,7 @@ sub_81045B0: @ 81045B0
lsls r5, 24
lsrs r5, 24
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -11735,7 +11735,7 @@ sub_8104614: @ 8104614
cmp r1, r0
bne _08104664
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -11771,7 +11771,7 @@ sub_8104674: @ 8104674
ldr r0, =gTasks
adds r4, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
movs r5, 0
@@ -12129,7 +12129,7 @@ sub_8104938: @ 8104938
.pool
_08104964:
ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -12303,7 +12303,7 @@ sub_8104AB4: @ 8104AB4
ldr r0, =gTasks
adds r4, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -12393,7 +12393,7 @@ _08104B6A:
strh r1, [r4, 0x36]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A656C
str r0, [r4, 0x1C]
pop {r4,r5}
@@ -12456,7 +12456,7 @@ _08104BE4:
_08104C16:
ldr r1, =move_anim_8074EE0
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67BC
str r0, [r6, 0x1C]
pop {r4-r6}
@@ -12476,7 +12476,7 @@ sub_8104C38: @ 8104C38
ldr r0, =gTasks
adds r4, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -12528,7 +12528,7 @@ sub_8104CA4: @ 8104CA4
ldr r0, =gTasks
adds r4, r1, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
movs r2, 0
@@ -12986,7 +12986,7 @@ sub_810501C: @ 810501C
adds r0, 0x2
strh r0, [r4, 0x38]
movs r0, 0x3F
- bl sub_80A5178
+ bl BattleAnimGetPanControl
lsls r0, 24
asrs r0, 24
strh r0, [r4, 0x3A]
@@ -13381,7 +13381,7 @@ _0810536C:
lsls r0, 16
lsrs r0, 16
mov r9, r0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _081053E4
@@ -13450,7 +13450,7 @@ _081053FA:
adds r0, r1
lsls r0, 16
lsrs r6, r0, 16
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810544C
@@ -13873,7 +13873,7 @@ sub_810577C: @ 810577C
ldr r0, =gTasks
adds r4, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -13968,7 +13968,7 @@ _08105850:
_08105856:
strh r0, [r4, 0x24]
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -14154,7 +14154,7 @@ sub_810599C: @ 810599C
movs r0, 0x2
strh r0, [r4, 0x24]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -14718,7 +14718,7 @@ _08105E08:
str r0, [r5, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldrb r1, [r4, 0xA]
ldrb r2, [r4, 0xC]
adds r0, r5, 0
@@ -14777,7 +14777,7 @@ sub_8105EB0: @ 8105EB0
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
movs r6, 0xF0
cmp r0, 0
@@ -14939,7 +14939,7 @@ sub_8106020: @ 8106020
lsrs r0, 24
adds r6, r0, 0
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gTasks
@@ -14955,7 +14955,7 @@ sub_8106020: @ 8106020
cmp r0, 0x1
bne _0810607C
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -15004,7 +15004,7 @@ sub_81060B0: @ 81060B0
lsrs r0, 24
adds r6, r0, 0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gTasks
@@ -15020,7 +15020,7 @@ sub_81060B0: @ 81060B0
cmp r0, 0x1
bne _0810610C
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -15212,7 +15212,7 @@ sub_810624C: @ 810624C
ldr r1, =sub_80A64B0
str r1, [r0, 0x1C]
ldr r1, =sub_810627C
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.pool
@@ -15296,7 +15296,7 @@ sub_81062E8: @ 81062E8
movs r1, 0
movs r2, 0
bl lcd_bg_operations
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810632A
@@ -15482,7 +15482,7 @@ _08106496:
b _081064F0
.pool
_081064BC:
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _081064D0
@@ -15531,7 +15531,7 @@ sub_81064F8: @ 81064F8
movs r1, 0
movs r2, 0
bl lcd_bg_operations
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810653A
@@ -15553,7 +15553,7 @@ _0810653A:
bl SetGpuReg
mov r0, sp
bl sub_80A6B30
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _08106578
@@ -15740,7 +15740,7 @@ _081066DA:
adds r0, 0x1
strh r0, [r1, 0x20]
_081066FC:
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _08106710
@@ -16593,7 +16593,7 @@ sub_8106D90: @ 8106D90
lsrs r5, 24
ldr r0, =gBattleAnimArgs
ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -17042,7 +17042,7 @@ _08107118:
str r0, [r5, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -17396,7 +17396,7 @@ sub_8107408: @ 8107408
ldr r1, =sub_80A67D8
str r1, [r0, 0x1C]
ldr r1, =sub_8107430
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.pool
@@ -17410,7 +17410,7 @@ sub_8107430: @ 8107430
ldr r1, =sub_80A64B0
str r1, [r0, 0x1C]
ldr r1, =move_anim_8074EE0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.pool
@@ -17792,7 +17792,7 @@ sub_8107730: @ 8107730
bl sub_80A82E4
lsls r0, 24
lsrs r5, r0, 24
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810778A
@@ -17931,7 +17931,7 @@ _08107842:
str r0, [r6, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4-r7}
pop {r0}
bx r0
@@ -17958,7 +17958,7 @@ sub_8107894: @ 8107894
str r0, [r4, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -18061,7 +18061,7 @@ sub_8107954: @ 8107954
bl lcd_bg_operations
mov r0, sp
bl sub_80A6B30
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _081079E0
@@ -18152,7 +18152,7 @@ _08107A32:
lsls r0, 5
strh r0, [r7, 0xA]
strh r0, [r7, 0xC]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
@@ -18447,7 +18447,7 @@ sub_8107CC4: @ 8107CC4
b _08107D4A
.pool
_08107D08:
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _08107D1C
@@ -18963,7 +18963,7 @@ sub_81080E4: @ 81080E4
ldr r0, =gTasks
adds r4, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -19981,7 +19981,7 @@ sub_81088E4: @ 81088E4
movs r1, 0x1
_08108928:
strh r1, [r5, 0x16]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _0810893C
@@ -20700,7 +20700,7 @@ sub_8108EC8: @ 8108EC8
strh r0, [r4, 0x36]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, =sub_80A634C
str r1, [r4, 0x1C]
adds r0, r4, 0
@@ -20734,7 +20734,7 @@ sub_8108F08: @ 8108F08
str r0, [r4, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -21027,7 +21027,7 @@ sub_810916C: @ 810916C
ldr r1, =sub_80A6EEC
str r1, [r0, 0x1C]
ldr r1, =move_anim_8072740
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.pool
@@ -21276,7 +21276,7 @@ sub_8109364: @ 8109364
strh r0, [r4, 0x32]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A653C
str r0, [r4, 0x1C]
pop {r4}
@@ -21306,7 +21306,7 @@ sub_81093A4: @ 81093A4
str r0, [r4, 0x1C]
ldr r1, =sub_81093E4
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -21389,7 +21389,7 @@ sub_8109460: @ 8109460
ldr r0, =gTasks
adds r4, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
movs r5, 0
@@ -22475,7 +22475,7 @@ _08109CC8:
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x30]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _08109D64
@@ -22600,12 +22600,12 @@ _08109DE2:
adds r0, 0x1
strh r0, [r4, 0x22]
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x24]
movs r0, 0x3
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -23230,7 +23230,7 @@ _0810A2D8:
strh r0, [r5, 0x34]
ldr r1, =move_anim_8074EE0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A62EC
str r0, [r5, 0x1C]
pop {r4,r5}
@@ -23572,7 +23572,7 @@ _0810A5B6:
sub_810A5BC: @ 810A5BC
push {r4-r6,lr}
adds r6, r0, 0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810A5D8
@@ -23640,7 +23640,7 @@ _0810A64C:
ldr r0, =gAnimationBankAttacker
_0810A64E:
ldrb r6, [r0]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810A666
@@ -23814,7 +23814,7 @@ _0810A7B6:
str r0, [r4, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -24339,7 +24339,7 @@ sub_810AB78: @ 810AB78
bl obj_translate_based_on_private_1_2_3_4
ldr r1, =sub_810ACC0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
ldrh r0, [r5, 0x1A]
@@ -24460,7 +24460,7 @@ _0810ACF6:
strh r0, [r5, 0x22]
ldr r1, =move_anim_8074EE0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67BC
str r0, [r5, 0x1C]
pop {r4,r5}
@@ -24503,7 +24503,7 @@ _0810AD4E:
strh r0, [r5, 0x26]
ldr r1, =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
str r0, [r5, 0x1C]
pop {r4,r5}
@@ -24532,7 +24532,7 @@ sub_810AD98: @ 810AD98
lsrs r0, 24
strh r0, [r5, 0x22]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x3A]
@@ -24641,7 +24641,7 @@ _0810AE8E:
b _0810AFC0
_0810AE90:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
movs r6, 0
@@ -25228,12 +25228,12 @@ _0810B2DC:
movs r0, 0xC
strh r0, [r5, 0x1E]
subs r0, 0x4C
- bl sub_80A5178
+ bl BattleAnimGetPanControl
lsls r0, 24
asrs r0, 24
strh r0, [r5, 0x20]
movs r0, 0x3F
- bl sub_80A5178
+ bl BattleAnimGetPanControl
lsls r0, 24
asrs r0, 24
strh r0, [r5, 0x22]
@@ -25959,7 +25959,7 @@ sub_810B8AC: @ 810B8AC
strh r0, [r4, 0x36]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, =sub_80A634C
str r1, [r4, 0x1C]
adds r0, r4, 0
@@ -26017,7 +26017,7 @@ _0810B936:
strh r0, [r4, 0x2E]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A6EEC
str r0, [r4, 0x1C]
pop {r4}
@@ -26070,7 +26070,7 @@ _0810B9B6:
_0810B9C6:
ldr r1, =sub_810B9E8
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67BC
str r0, [r4, 0x1C]
pop {r4,r5}
@@ -26252,7 +26252,7 @@ _0810BB36:
bge _0810BB36
str r6, [r5, 0x1C]
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
add sp, 0x10
pop {r4-r7}
pop {r0}
@@ -26939,7 +26939,7 @@ sub_810C0A0: @ 810C0A0
movs r1, 0
movs r2, 0
bl lcd_bg_operations
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810C0E2
@@ -27141,7 +27141,7 @@ _0810C27A:
adds r0, 0x1
strh r0, [r1, 0x20]
_0810C29C:
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810C2B0
@@ -27221,7 +27221,7 @@ sub_810C324: @ 810C324
movs r1, 0
movs r2, 0
bl lcd_bg_operations
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810C366
@@ -27413,7 +27413,7 @@ _0810C4EA:
adds r0, 0x1
strh r0, [r1, 0x20]
_0810C50C:
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810C520
@@ -27505,7 +27505,7 @@ _0810C594:
cmp r0, 0
bne _0810C5F0
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, =gSprites
lsls r0, 24
lsrs r0, 24
@@ -27596,7 +27596,7 @@ _0810C684:
ldrh r1, [r5, 0x3C]
orrs r0, r1
strh r0, [r5, 0x3C]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _0810C6B8
@@ -27695,7 +27695,7 @@ _0810C736:
ldrh r0, [r4, 0x3C]
adds r0, 0x1
strh r0, [r4, 0x3C]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810C78C
@@ -27762,7 +27762,7 @@ _0810C7BC:
ldrh r1, [r4, 0x26]
adds r0, r1
strh r0, [r4, 0x26]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810C83A
@@ -27839,7 +27839,7 @@ _0810C85A:
strh r0, [r4, 0x34]
adds r0, 0x4
strh r0, [r4, 0x36]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810C8B4
@@ -28425,7 +28425,7 @@ sub_810CD1C: @ 810CD1C
str r0, [r4, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_0810CD3E:
pop {r4}
pop {r0}
@@ -28565,7 +28565,7 @@ unc_080B08A0: @ 810CE2C
str r0, [r4, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -28612,7 +28612,7 @@ _0810CE90:
sub_810CEB4: @ 810CEB4
push {r4,lr}
adds r4, r0, 0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _0810CED0
@@ -28660,7 +28660,7 @@ _0810CF0C:
str r0, [r5, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -28923,7 +28923,7 @@ _0810D142:
str r0, [r4, 0x1C]
ldr r1, =sub_810D164
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -28962,7 +28962,7 @@ sub_810D164: @ 810D164
str r0, [r5, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_0810D1A4:
pop {r4-r6}
pop {r0}
@@ -29082,7 +29082,7 @@ sub_810D278: @ 810D278
str r0, [r4, 0x1C]
ldr r1, =sub_810D2B0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -29107,7 +29107,7 @@ sub_810D2B0: @ 810D2B0
str r0, [r4, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -29163,7 +29163,7 @@ sub_810D308: @ 810D308
str r0, [r5, 0x1C]
ldr r1, =sub_810D360
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_0810D34C:
pop {r4,r5}
pop {r0}
@@ -29179,7 +29179,7 @@ sub_810D360: @ 810D360
ldr r1, =sub_80A64B0
str r1, [r0, 0x1C]
ldr r1, =move_anim_8072740
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.pool
@@ -29619,7 +29619,7 @@ sub_810D6A8: @ 810D6A8
bl obj_translate_based_on_private_1_2_3_4
ldr r1, =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A6F98
str r0, [r4, 0x1C]
_0810D704:
@@ -29842,7 +29842,7 @@ _0810D8BE:
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _0810D8F8
@@ -29895,7 +29895,7 @@ _0810D918:
bl obj_translate_based_on_private_1_2_3_4
ldr r1, =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A6F98
str r0, [r5, 0x1C]
pop {r4,r5}
@@ -30009,7 +30009,7 @@ _0810DA2C:
movs r1, 0
bl sub_80A6980
_0810DA34:
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _0810DA48
@@ -30032,7 +30032,7 @@ _0810DA5E:
str r0, [r4, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -30428,7 +30428,7 @@ _0810DD7C:
str r0, [r4, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -30721,7 +30721,7 @@ _0810DFC8:
str r0, [r6, 0x1C]
ldr r1, =sub_810E028
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4-r6}
pop {r0}
bx r0
@@ -30768,7 +30768,7 @@ sub_810E044: @ 810E044
negs r0, r0
strh r0, [r1, 0x6]
_0810E070:
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _0810E088
@@ -30843,7 +30843,7 @@ _0810E0FE:
str r0, [r5, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldrb r1, [r4, 0xA]
adds r0, r5, 0
bl SeekSpriteAnim
@@ -30867,7 +30867,7 @@ sub_810E13C: @ 810E13C
ldr r0, =sub_810E184
str r0, [r4, 0x1C]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, =gSprites
lsls r0, 24
lsrs r0, 24
@@ -31021,7 +31021,7 @@ _0810E274:
ble _0810E2BC
_0810E296:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, =gSprites
lsls r0, 24
lsrs r0, 24
@@ -31166,7 +31166,7 @@ _0810E354:
lsrs r1, 16
cmp r1, 0x7F
bhi _0810E44A
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810E3F0
@@ -31458,7 +31458,7 @@ _0810E5B4:
ands r0, r1
cmp r0, 0
beq _0810E672
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810E642
@@ -31590,7 +31590,7 @@ _0810E6A8:
ands r0, r1
cmp r0, 0
beq _0810E766
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810E736
@@ -31722,7 +31722,7 @@ _0810E79C:
ands r0, r1
cmp r0, 0
beq _0810E85A
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810E82A
@@ -31863,7 +31863,7 @@ _0810E8A4:
ands r0, r1
cmp r0, 0
beq _0810E962
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810E932
@@ -32289,7 +32289,7 @@ _0810EC46:
movs r1, 0x1
bl sub_80A69CC
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, =gSprites
lsls r0, 24
lsrs r0, 24
@@ -32379,7 +32379,7 @@ _0810ECE0:
cmp r0, r1
bge _0810ED1E
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, =gSprites
lsls r0, 24
lsrs r0, 24
@@ -32416,7 +32416,7 @@ sub_810ED28: @ 810ED28
ldr r0, =sub_810ED70
str r0, [r4, 0x1C]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, =gSprites
lsls r0, 24
lsrs r0, 24
@@ -32989,7 +32989,7 @@ sub_810F184: @ 810F184
cmp r0, 0
bne _0810F1BC
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, =gSprites
@@ -33005,7 +33005,7 @@ sub_810F184: @ 810F184
.pool
_0810F1BC:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, =gSprites
@@ -33034,7 +33034,7 @@ sub_810F1EC: @ 810F1EC
mov r7, r8
push {r7}
adds r5, r0, 0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
lsrs r0, 24
mov r8, r0
@@ -33365,7 +33365,7 @@ sub_810F46C: @ 810F46C
negs r1, r1
cmp r0, r1
bne _0810F512
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810F502
@@ -33436,7 +33436,7 @@ _0810F512:
sub_810F524: @ 810F524
push {r4-r6,lr}
adds r6, r0, 0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810F57C
@@ -33497,7 +33497,7 @@ sub_810F58C: @ 810F58C
bne _0810F5A6
movs r6, 0x1
_0810F5A6:
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810F5EE
@@ -33610,7 +33610,7 @@ _0810F692:
strh r0, [r5, 0x30]
ldr r1, =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
str r0, [r5, 0x1C]
pop {r4,r5}
@@ -33677,7 +33677,7 @@ _0810F6F6:
_0810F722:
ldr r1, =sub_810F740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
str r0, [r5, 0x1C]
pop {r4-r7}
@@ -33774,7 +33774,7 @@ sub_810F7D4: @ 810F7D4
ldr r0, =gTasks
adds r4, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -33824,7 +33824,7 @@ sub_810F83C: @ 810F83C
ldr r0, =gTasks
adds r4, r1, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
movs r1, 0
@@ -34294,7 +34294,7 @@ sub_810FBF0: @ 810FBF0
lsls r1, 3
ldr r0, =gTasks
adds r5, r1, r0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _0810FC94
@@ -34891,7 +34891,7 @@ _08110094:
bl CalcCenterToCornerVec
ldr r1, =gBattleAnimArgs
ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r7, 0x22]
@@ -35075,7 +35075,7 @@ _08110260:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _0811028E
@@ -35110,7 +35110,7 @@ _081102B8:
beq _08110360
movs r0, 0x40
negs r0, r0
- bl sub_80A5178
+ bl BattleAnimGetPanControl
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -35192,7 +35192,7 @@ _08110360:
sub_8110368: @ 8110368
push {r4-r6,lr}
adds r6, r0, 0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _08110394
@@ -35272,7 +35272,7 @@ _081103C4:
str r0, [r6, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4-r6}
pop {r0}
bx r0
@@ -35283,7 +35283,7 @@ _081103C4:
sub_8110438: @ 8110438
push {r4-r6,lr}
adds r6, r0, 0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _0811045C
@@ -35347,7 +35347,7 @@ _08110478:
str r0, [r6, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4-r6}
pop {r0}
bx r0
@@ -35358,7 +35358,7 @@ _08110478:
sub_81104E4: @ 81104E4
push {r4,r5,lr}
adds r5, r0, 0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _08110500
@@ -35644,7 +35644,7 @@ sub_8110720: @ 8110720
push {r4-r7,lr}
sub sp, 0x4
adds r7, r0, 0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _08110740
@@ -35672,7 +35672,7 @@ _08110740:
negs r0, r0
strh r0, [r1, 0x6]
_08110762:
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _081107B2
@@ -35766,7 +35766,7 @@ _081107B2:
str r0, [r7, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r7, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
add sp, 0x4
pop {r4-r7}
pop {r0}
@@ -35962,7 +35962,7 @@ _081109B2:
strh r0, [r5, 0x22]
ldr r1, =move_anim_8074EE0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67BC
str r0, [r5, 0x1C]
pop {r4,r5}
@@ -36014,7 +36014,7 @@ _08110A10:
strh r0, [r5, 0x38]
ldr r1, =sub_8110A70
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, =sub_80A6450
str r1, [r5, 0x1C]
adds r0, r5, 0
@@ -36044,7 +36044,7 @@ sub_8110A70: @ 8110A70
strh r0, [r4, 0x36]
ldr r1, =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, =sub_80A6450
str r1, [r4, 0x1C]
adds r0, r4, 0
@@ -36106,7 +36106,7 @@ _08110AEA:
str r0, [r5, 0x1C]
ldr r1, =move_anim_8074EE0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -36212,7 +36212,7 @@ sub_8110BCC: @ 8110BCC
movs r1, 0
movs r2, 0
bl lcd_bg_operations
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _08110C10
@@ -36433,7 +36433,7 @@ _08110DF0:
b _08110E3A
.pool
_08110DFC:
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _08110E10
@@ -36599,7 +36599,7 @@ sub_8110F30: @ 8110F30
str r0, [r4, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -36713,13 +36713,13 @@ _0811101E:
strh r4, [r6, 0x16]
movs r0, 0x40
negs r0, r0
- bl sub_80A5178
+ bl BattleAnimGetPanControl
adds r4, r0, 0
lsls r4, 24
asrs r4, 8
lsrs r4, 16
movs r0, 0x3F
- bl sub_80A5178
+ bl BattleAnimGetPanControl
lsls r0, 24
strh r4, [r6, 0x22]
asrs r0, 24
@@ -36732,7 +36732,7 @@ _0811101E:
strh r0, [r6, 0x24]
strh r5, [r6, 0xA]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x26]
@@ -37770,7 +37770,7 @@ sub_811188C: @ 811188C
movs r0, 0x52
bl SetGpuReg
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -37881,7 +37881,7 @@ sub_811196C: @ 811196C
.pool
_08111994:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r1, r0, 24
ldrh r0, [r4, 0x8]
@@ -38349,7 +38349,7 @@ _08111D12:
lsls r0, 2
adds r0, r4
ldr r1, =SpriteCallbackDummy
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
@@ -38626,7 +38626,7 @@ _08111F0C:
movs r0, 0x10
strh r0, [r5, 0xE]
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -38888,7 +38888,7 @@ _081121AE:
movs r0, 0x3
strb r0, [r1, 0x15]
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x24]
@@ -39179,7 +39179,7 @@ sub_81123C4: @ 81123C4
lsls r0, 16
lsrs r0, 16
str r0, [sp, 0x8]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _08112434
@@ -39600,7 +39600,7 @@ sub_8112758: @ 8112758
lsls r0, 24
cmp r0, 0
bne _081127A0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _081127B8
@@ -39956,7 +39956,7 @@ _08112A5E:
str r0, [r3, 0x1C]
ldr r1, =sub_8112ACC
adds r0, r3, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
b _08112AC4
.pool
_08112AC0:
@@ -40738,7 +40738,7 @@ _081130BE:
strb r0, [r2]
ldr r1, =move_anim_8074EE0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A66DC
str r0, [r5, 0x1C]
pop {r4,r5}
@@ -40818,7 +40818,7 @@ _0811318E:
str r0, [r5, 0x1C]
ldr r1, =move_anim_8074EE0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -40865,7 +40865,7 @@ _081131D2:
str r0, [r5, 0x1C]
ldr r1, =move_anim_8074EE0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -42121,7 +42121,7 @@ _08113C1E:
ldr r0, =0x04000016
str r0, [sp]
movs r7, 0x2
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _08113CB0
@@ -42142,7 +42142,7 @@ _08113C80:
ldr r0, =0x0400001a
str r0, [sp]
movs r7, 0x4
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _08113CB0
@@ -42393,7 +42393,7 @@ _08113EA8:
.4byte _08113FF0
.4byte _08114058
_08113EBC:
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -42979,7 +42979,7 @@ sub_8114374: @ 8114374
_0811438A:
lsls r0, r4, 24
lsrs r0, 24
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
@@ -43143,7 +43143,7 @@ sub_81144BC: @ 81144BC
str r0, [r4, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -43185,7 +43185,7 @@ sub_81144F8: @ 81144F8
movs r1, 0
movs r2, 0
bl lcd_bg_operations
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0811455C
@@ -43198,7 +43198,7 @@ _0811455C:
lsls r0, 24
cmp r0, 0
beq _081145D6
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _081145D6
@@ -43251,7 +43251,7 @@ _0811458C:
bl lcd_bg_operations
movs r6, 0x1
_081145D6:
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _08114614
@@ -43295,7 +43295,7 @@ _08114650:
lsrs r5, r0, 16
_0811465C:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -43421,7 +43421,7 @@ _08114776:
cmp r0, 0x2
bne _08114824
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
ldr r5, =gSprites
@@ -43496,7 +43496,7 @@ _08114824:
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _08114856
@@ -43562,7 +43562,7 @@ _081148C4:
.4byte _081148FC
_081148E4:
ldrb r0, [r2]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r2, r0, 24
b _08114902
@@ -43799,7 +43799,7 @@ _08114A9C:
str r0, [r6, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4-r6}
pop {r0}
bx r0
@@ -43861,7 +43861,7 @@ _08114B48:
str r0, [r6, 0x1C]
ldr r1, =move_anim_8074EE0
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r3}
mov r8, r3
pop {r4-r7}
@@ -44092,7 +44092,7 @@ _08114D28:
.4byte _08114E8C
_08114D3C:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
@@ -44272,7 +44272,7 @@ sub_8114EB4: @ 8114EB4
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, =gSprites
@@ -44361,7 +44361,7 @@ sub_8114F54: @ 8114F54
.pool
_08114F78:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
@@ -44438,7 +44438,7 @@ _08115004:
.4byte _081150D4
_08115018:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
@@ -44756,7 +44756,7 @@ _08115262:
strh r0, [r6, 0x4]
ldr r1, =move_anim_8072740
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldrh r0, [r4, 0x4]
strh r0, [r6, 0x2E]
ldr r0, =sub_80A64B0
@@ -44846,7 +44846,7 @@ _08115370:
.pool
_08115380:
ldrb r0, [r6]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1A]
@@ -45672,7 +45672,7 @@ sub_81159B4: @ 81159B4
strh r2, [r4, 0x38]
ldr r1, =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, =sub_80A634C
str r1, [r4, 0x1C]
adds r0, r4, 0
@@ -46564,13 +46564,13 @@ _081160F4:
ldr r1, =gSpriteCoordOffsetX
_081160F6:
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
b _0811610C
.pool
_08116104:
ldr r1, =gSpriteCoordOffsetY
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_0811610C:
movs r0, 0x3A
ldrsh r1, [r4, r0]
@@ -46909,7 +46909,7 @@ _081163B4:
str r0, [r5, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -46944,7 +46944,7 @@ _081163FC:
str r0, [r5, 0x1C]
ldr r1, =sub_810E2C8
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -46961,7 +46961,7 @@ sub_8116420: @ 8116420
lsls r0, 24
cmp r0, 0
beq _08116444
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _08116444
@@ -47033,7 +47033,7 @@ _0811649C:
strh r0, [r4, 0x26]
ldr r1, =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67BC
str r0, [r4, 0x1C]
pop {r4,r5}
@@ -47048,7 +47048,7 @@ sub_81164F0: @ 81164F0
adds r4, r0, 0
ldr r5, =gBattleAnimArgs
ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x2E]
@@ -47082,7 +47082,7 @@ sub_81164F0: @ 81164F0
bl StartSpriteAffineAnim
ldr r1, =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67BC
str r0, [r4, 0x1C]
pop {r4,r5}
@@ -47115,7 +47115,7 @@ _08116584:
strh r0, [r4, 0x2E]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A64B0
str r0, [r4, 0x1C]
pop {r4}
@@ -47844,7 +47844,7 @@ sub_8116B14: @ 8116B14
ldrh r1, [r4]
movs r0, 0xA
bl SetGpuReg
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _08116BA2
@@ -47863,7 +47863,7 @@ _08116BA2:
lsls r0, 24
cmp r0, 0
beq _08116C26
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _08116C26
@@ -47921,7 +47921,7 @@ _08116BD2:
bl SetGpuReg
movs r7, 0x1
_08116C26:
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _08116C64
@@ -47965,7 +47965,7 @@ _08116CA0:
lsrs r5, r0, 16
_08116CAC:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -48084,7 +48084,7 @@ sub_8116D64: @ 8116D64
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _08116DF6
@@ -48119,7 +48119,7 @@ _08116DF6:
movs r1, 0
bl SetGpuReg
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r4, =gSprites
movs r0, 0x8
ldrsh r1, [r5, r0]
@@ -48237,7 +48237,7 @@ _08116F26:
movs r1, 0x2
eors r0, r1
strb r0, [r2, 0x1]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _08116F56
@@ -48286,7 +48286,7 @@ _08116F5C:
movs r1, 0
movs r2, 0
bl lcd_bg_operations
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _08116FBA
@@ -48354,7 +48354,7 @@ _08116FEC:
ldr r0, [r4]
strb r5, [r0, 0x2]
_08117036:
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _08117078
@@ -48758,7 +48758,7 @@ _081173B6:
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _081173E6
@@ -49347,7 +49347,7 @@ sub_8117854: @ 8117854
movs r0, 0x2
adds r6, r7, 0
eors r6, r0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _081178B6
@@ -49404,7 +49404,7 @@ _081178BA:
movs r1, 0x20
orrs r0, r1
strb r0, [r2]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _08117930
@@ -49419,7 +49419,7 @@ _08117930:
ldrh r1, [r4]
movs r0, 0xA
bl SetGpuReg
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _08117964
@@ -49687,7 +49687,7 @@ _08117B34:
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _08117BB2
@@ -50037,7 +50037,7 @@ sub_8117E60: @ 8117E60
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
@@ -50150,7 +50150,7 @@ sub_8117F60: @ 8117F60
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _08117F78
diff --git a/asm/battle_anim_8170478.s b/asm/battle_anim_8170478.s
index 690138efb..1ba9d75ab 100644
--- a/asm/battle_anim_8170478.s
+++ b/asm/battle_anim_8170478.s
@@ -328,7 +328,7 @@ _08170708:
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _0817076C
@@ -996,7 +996,7 @@ sub_8170CFC: @ 8170CFC
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, =gUnknown_02024208
+ ldr r0, =gLastUsedItem
ldrh r0, [r0]
bl ball_number_to_ball_processing_index
lsls r0, 24
@@ -1016,7 +1016,7 @@ sub_8170D24: @ 8170D24
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, =gUnknown_02024208
+ ldr r0, =gLastUsedItem
ldrh r0, [r0]
bl ball_number_to_ball_processing_index
lsls r0, 24
@@ -1136,7 +1136,7 @@ sub_8170E04: @ 8170E04
lsls r0, 24
lsrs r0, 24
mov r10, r0
- ldr r0, =gUnknown_02024208
+ ldr r0, =gLastUsedItem
ldrh r0, [r0]
bl ball_number_to_ball_processing_index
adds r1, r0, 0
@@ -1276,7 +1276,7 @@ _08170F50:
movs r6, 0x17
movs r5, 0x5
_08170F54:
- ldr r0, =gUnknown_02024208
+ ldr r0, =gLastUsedItem
ldrh r0, [r0]
bl ball_number_to_ball_processing_index
adds r4, r0, 0
@@ -1530,7 +1530,7 @@ _08171188:
strh r0, [r4, 0x38]
ldr r0, =sub_81711E8
str r0, [r4, 0x1C]
- ldr r0, =gUnknown_02024208
+ ldr r0, =gLastUsedItem
ldrh r0, [r0]
bl ball_number_to_ball_processing_index
lsls r0, 24
@@ -2695,7 +2695,7 @@ sub_8171AE4: @ 8171AE4
bl StartSpriteAffineAnim
ldr r0, =sub_8171BAC
str r0, [r4, 0x1C]
- ldr r0, =gUnknown_02024208
+ ldr r0, =gLastUsedItem
ldrh r0, [r0]
bl ball_number_to_ball_processing_index
lsls r0, 24
diff --git a/asm/battle_anim_sound_tasks.s b/asm/battle_anim_sound_tasks.s
new file mode 100644
index 000000000..698230802
--- /dev/null
+++ b/asm/battle_anim_sound_tasks.s
@@ -0,0 +1,1006 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8158B30
+sub_8158B30: @ 8158B30
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gTasks
+ lsls r6, r0, 2
+ adds r6, r0
+ lsls r6, 3
+ adds r6, r1
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r6, 0x8]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r6, 0xA]
+ movs r0, 0x40
+ negs r0, r0
+ bl BattleAnimGetPanControl
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x3F
+ bl BattleAnimGetPanControl
+ adds r5, r0, 0
+ lsls r4, 24
+ asrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x2
+ bl sub_80A5314
+ strh r4, [r6, 0xC]
+ strh r5, [r6, 0xE]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r6, 0x10]
+ movs r0, 0xA
+ strh r0, [r6, 0x1C]
+ ldr r0, =sub_8158B98
+ str r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8158B30
+
+ thumb_func_start sub_8158B98
+sub_8158B98: @ 8158B98
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r5, [r4, 0xC]
+ ldrb r6, [r4, 0x10]
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6F
+ bne _08158BD0
+ movs r0, 0x5
+ strh r0, [r4, 0x1C]
+ strh r1, [r4, 0x1E]
+ ldr r0, =sub_8158C04
+ str r0, [r4]
+ b _08158BFE
+ .pool
+_08158BD0:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ bne _08158BEA
+ strh r1, [r4, 0x1C]
+ ldrh r0, [r4, 0x8]
+ lsls r1, r5, 24
+ asrs r1, 24
+ bl PlaySE12WithPanning
+_08158BEA:
+ lsls r1, r6, 24
+ asrs r1, 24
+ lsls r0, r5, 16
+ asrs r0, 16
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A52EC
+ strh r0, [r4, 0xC]
+_08158BFE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8158B98
+
+ thumb_func_start sub_8158C04
+sub_8158C04: @ 8158C04
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _08158C4C
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ movs r0, 0x3F
+ bl BattleAnimGetPanControl
+ adds r1, r0, 0
+ ldrh r0, [r4, 0xA]
+ lsls r1, 24
+ asrs r1, 24
+ bl PlaySE12WithPanning
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _08158C4C
+ adds r0, r5, 0
+ bl move_anim_related_task_del
+_08158C4C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8158C04
+
+ thumb_func_start mas_80DCF38
+mas_80DCF38: @ 8158C58
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r8, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0]
+ str r1, [sp]
+ ldrb r5, [r0, 0x4]
+ ldrb r6, [r0, 0x6]
+ ldrb r3, [r0, 0x8]
+ mov r10, r3
+ ldrb r7, [r0, 0xA]
+ ldrb r1, [r0, 0xC]
+ mov r9, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ bl BattleAnimGetPanControl
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ adds r0, r5, 0
+ bl BattleAnimGetPanControl
+ adds r5, r0, 0
+ lsls r4, 24
+ asrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ lsls r6, 24
+ asrs r6, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_80A5314
+ ldr r2, =gTasks
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ mov r6, sp
+ ldrh r6, [r6]
+ strh r6, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ strh r5, [r1, 0xC]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r1, 0xE]
+ mov r0, r10
+ strh r0, [r1, 0x10]
+ strh r7, [r1, 0x12]
+ mov r3, r9
+ strh r3, [r1, 0x14]
+ strh r2, [r1, 0x1C]
+ strh r4, [r1, 0x1E]
+ strh r3, [r1, 0x20]
+ ldr r2, =sub_8158D08
+ str r2, [r1]
+ mov r0, r8
+ bl _call_via_r2
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end mas_80DCF38
+
+ thumb_func_start sub_8158D08
+sub_8158D08: @ 8158D08
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x20]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _08158D50
+ movs r0, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x8]
+ movs r1, 0x1E
+ ldrsb r1, [r4, r1]
+ bl PlaySE12WithPanning
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08158D50
+ adds r0, r5, 0
+ bl move_anim_related_task_del
+ b _08158D82
+ .pool
+_08158D50:
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _08158D82
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r0, [r4, 0xE]
+ ldrh r1, [r4, 0x1E]
+ adds r0, r1
+ strh r0, [r4, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r4, r2]
+ bl sub_80A52EC
+ strh r0, [r4, 0x1E]
+_08158D82:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8158D08
+
+ thumb_func_start sub_8158D8C
+sub_8158D8C: @ 8158D8C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ movs r0, 0x40
+ negs r0, r0
+ bl BattleAnimGetPanControl
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _08158DD0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08158DC8
+ ldr r0, =gUnknown_02039F34
+ ldr r0, [r0]
+ ldr r0, [r0, 0x18]
+ ldrh r4, [r0]
+ b _08158E76
+ .pool
+_08158DC8:
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _08158E76
+_08158DD0:
+ ldr r0, =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _08158DEC
+ ldr r0, =gAnimationBankAttacker
+ ldrb r4, [r0]
+ b _08158E12
+ .pool
+_08158DEC:
+ cmp r1, 0x1
+ bne _08158DFC
+ ldr r0, =gAnimationBankTarget
+ ldrb r4, [r0]
+ b _08158E12
+ .pool
+_08158DFC:
+ cmp r1, 0x2
+ bne _08158E08
+ ldr r0, =gAnimationBankAttacker
+ b _08158E0A
+ .pool
+_08158E08:
+ ldr r0, =gAnimationBankTarget
+_08158E0A:
+ ldrb r1, [r0]
+ movs r0, 0x2
+ adds r4, r0, 0
+ eors r4, r1
+_08158E12:
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _08158E1E
+ cmp r0, 0x3
+ bne _08158E38
+_08158E1E:
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ bne _08158E38
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _08158E8C
+ .pool
+_08158E38:
+ adds r0, r4, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08158E5C
+ ldr r1, =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gEnemyParty
+ b _08158E6A
+ .pool
+_08158E5C:
+ ldr r1, =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+_08158E6A:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+_08158E76:
+ cmp r4, 0
+ beq _08158E86
+ lsls r1, r6, 24
+ asrs r1, 24
+ adds r0, r4, 0
+ movs r2, 0x3
+ bl PlayCry3
+_08158E86:
+ adds r0, r5, 0
+ bl move_anim_task_del
+_08158E8C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8158D8C
+
+ thumb_func_start sub_8158E9C
+sub_8158E9C: @ 8158E9C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ movs r0, 0x40
+ negs r0, r0
+ bl BattleAnimGetPanControl
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _08158EE0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08158ED8
+ ldr r0, =gUnknown_02039F34
+ ldr r0, [r0]
+ ldr r0, [r0, 0x18]
+ ldrh r4, [r0]
+ b _08158F86
+ .pool
+_08158ED8:
+ adds r0, r6, 0
+ bl move_anim_task_del
+ b _08158F86
+_08158EE0:
+ ldr r0, =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _08158EFC
+ ldr r0, =gAnimationBankAttacker
+ ldrb r4, [r0]
+ b _08158F22
+ .pool
+_08158EFC:
+ cmp r1, 0x1
+ bne _08158F0C
+ ldr r0, =gAnimationBankTarget
+ ldrb r4, [r0]
+ b _08158F22
+ .pool
+_08158F0C:
+ cmp r1, 0x2
+ bne _08158F18
+ ldr r0, =gAnimationBankAttacker
+ b _08158F1A
+ .pool
+_08158F18:
+ ldr r0, =gAnimationBankTarget
+_08158F1A:
+ ldrb r1, [r0]
+ movs r0, 0x2
+ adds r4, r0, 0
+ eors r4, r1
+_08158F22:
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _08158F2E
+ cmp r0, 0x3
+ bne _08158F48
+_08158F2E:
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ bne _08158F48
+ adds r0, r6, 0
+ bl move_anim_task_del
+ b _08158FEE
+ .pool
+_08158F48:
+ adds r0, r4, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08158F6C
+ ldr r1, =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gEnemyParty
+ b _08158F7A
+ .pool
+_08158F6C:
+ ldr r1, =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+_08158F7A:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+_08158F86:
+ ldr r1, =gTasks
+ lsls r2, r6, 2
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r3, =gBattleAnimArgs
+ ldrh r1, [r3, 0x2]
+ strh r1, [r0, 0x8]
+ strh r4, [r0, 0xA]
+ lsls r1, r5, 24
+ asrs r1, 24
+ strh r1, [r0, 0xC]
+ adds r5, r2, 0
+ cmp r4, 0
+ beq _08158FE8
+ movs r2, 0x2
+ ldrsh r0, [r3, r2]
+ cmp r0, 0xFF
+ bne _08158FC8
+ adds r0, r4, 0
+ movs r2, 0x9
+ bl PlayCry3
+ b _08158FD0
+ .pool
+_08158FC8:
+ adds r0, r4, 0
+ movs r2, 0x7
+ bl PlayCry3
+_08158FD0:
+ ldr r0, =gTasks
+ adds r1, r5, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_8158FF4
+ str r0, [r1]
+ b _08158FEE
+ .pool
+_08158FE8:
+ adds r0, r6, 0
+ bl move_anim_task_del
+_08158FEE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8158E9C
+
+ thumb_func_start sub_8158FF4
+sub_8158FF4: @ 8158FF4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r9, r4
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r6, [r1, 0xA]
+ mov r8, r6
+ ldrb r5, [r1, 0xC]
+ adds r7, r5, 0
+ ldrh r2, [r1, 0x1A]
+ movs r3, 0x1A
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x1
+ bgt _08159028
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x1A]
+ b _0815906A
+ .pool
+_08159028:
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0xFF
+ bne _0815904E
+ bl IsCryPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815906A
+ lsls r1, r5, 24
+ asrs r1, 24
+ adds r0, r6, 0
+ movs r2, 0xA
+ bl PlayCry3
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _0815906A
+_0815904E:
+ bl IsCryPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815906A
+ lsls r1, r7, 24
+ asrs r1, 24
+ mov r0, r8
+ movs r2, 0x8
+ bl PlayCry3
+ mov r0, r9
+ bl move_anim_task_del
+_0815906A:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8158FF4
+
+ thumb_func_start sub_8159078
+sub_8159078: @ 8159078
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0x1A]
+ movs r3, 0x1A
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x1
+ bgt _081590A0
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x1A]
+ b _081590B0
+ .pool
+_081590A0:
+ bl IsCryPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _081590B0
+ adds r0, r4, 0
+ bl move_anim_task_del
+_081590B0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159078
+
+ thumb_func_start sub_81590B8
+sub_81590B8: @ 81590B8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =gBattleAnimArgs
+ ldrh r1, [r1]
+ strh r1, [r0, 0x1C]
+ movs r0, 0x40
+ negs r0, r0
+ bl BattleAnimGetPanControl
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _081590F8
+ ldr r0, =gUnknown_02039F34
+ ldr r0, [r0]
+ ldr r0, [r0, 0x18]
+ b _08159102
+ .pool
+_081590F8:
+ ldr r1, =gUnknown_02038438
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+_08159102:
+ ldrh r2, [r0]
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ strh r2, [r1, 0xA]
+ lsls r0, r5, 24
+ asrs r0, 24
+ strh r0, [r1, 0xC]
+ cmp r2, 0
+ beq _08159130
+ ldr r0, =sub_815913C
+ str r0, [r1]
+ b _08159136
+ .pool
+_08159130:
+ adds r0, r4, 0
+ bl move_anim_task_del
+_08159136:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81590B8
+
+ thumb_func_start sub_815913C
+sub_815913C: @ 815913C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r6, [r0, 0xA]
+ mov r8, r6
+ ldrb r3, [r0, 0xC]
+ adds r5, r3, 0
+ movs r7, 0x1A
+ ldrsh r2, [r0, r7]
+ mov r12, r1
+ cmp r2, 0x5
+ bhi _081591DC
+ lsls r0, r2, 2
+ ldr r1, =_08159174
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08159174:
+ .4byte _081591C2
+ .4byte _081591A8
+ .4byte _0815918C
+ .4byte _081591A8
+ .4byte _081591A8
+ .4byte _081591B8
+_0815918C:
+ lsls r1, r5, 24
+ asrs r1, 24
+ mov r0, r8
+ movs r2, 0x4
+ bl PlayCry6
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ b _081591B0
+ .pool
+_081591A8:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r12
+_081591B0:
+ ldrh r1, [r0, 0x1A]
+ adds r1, 0x1
+ strh r1, [r0, 0x1A]
+ b _08159204
+_081591B8:
+ bl IsCryPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08159204
+_081591C2:
+ bl StopCryAndClearCrySongs
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1A]
+ adds r0, 0x1
+ strh r0, [r1, 0x1A]
+ b _08159204
+ .pool
+_081591DC:
+ movs r1, 0x1C
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _081591F2
+ lsls r1, r3, 24
+ asrs r1, 24
+ adds r0, r6, 0
+ movs r2, 0x6
+ bl PlayCry6
+ b _081591FE
+_081591F2:
+ lsls r1, r5, 24
+ asrs r1, 24
+ mov r0, r8
+ movs r2, 0x6
+ bl PlayCry3
+_081591FE:
+ adds r0, r4, 0
+ bl move_anim_task_del
+_08159204:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815913C
+
+ thumb_func_start sub_8159210
+sub_8159210: @ 8159210
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gBattleAnimArgs
+ ldrh r5, [r0]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ bl BattleAnimGetPanControl
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ bl PlaySE1WithPanning
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8159210
+
+ thumb_func_start sub_8159244
+sub_8159244: @ 8159244
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gBattleAnimArgs
+ ldrh r5, [r0]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ bl BattleAnimGetPanControl
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ bl PlaySE2WithPanning
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8159244
+
+ thumb_func_start sub_8159278
+sub_8159278: @ 8159278
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ mov r8, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, =gBattleAnimArgs
+ ldrb r5, [r0, 0x2]
+ ldrb r6, [r0, 0x4]
+ ldrh r1, [r0, 0x6]
+ mov r9, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ bl BattleAnimGetPanControl
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ adds r0, r5, 0
+ bl BattleAnimGetPanControl
+ adds r5, r0, 0
+ lsls r4, 24
+ asrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ lsls r6, 24
+ asrs r6, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_80A5314
+ ldr r2, =gTasks
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r4, [r1, 0xA]
+ strh r5, [r1, 0xC]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r1, 0xE]
+ mov r0, r9
+ strh r0, [r1, 0x12]
+ strh r2, [r1, 0x1C]
+ strh r4, [r1, 0x1E]
+ ldr r2, =sub_8159308
+ str r2, [r1]
+ mov r0, r8
+ bl _call_via_r2
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8159278
+
+ thumb_func_start sub_8159308
+sub_8159308: @ 8159308
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r2, [r4, 0xE]
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x12
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _08159342
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ adds r0, r2, r1
+ strh r0, [r4, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r4, r2]
+ bl sub_80A52EC
+ strh r0, [r4, 0x1E]
+_08159342:
+ ldr r1, =gUnknown_02038440
+ ldrh r0, [r4, 0x1E]
+ strb r0, [r1]
+ movs r3, 0x1E
+ ldrsh r1, [r4, r3]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _0815935A
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0815935A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8159308
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_controller_linkopponent.s b/asm/battle_controller_linkopponent.s
index bfeafd0f4..fc795d476 100644
--- a/asm/battle_controller_linkopponent.s
+++ b/asm/battle_controller_linkopponent.s
@@ -18,14 +18,14 @@ SetBankFuncToLinkOpponentBufferRunCommand: @ 8064394
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
- ldr r1, =sub_80643B0
+ ldr r1, =LinkOpponentBufferRunCommand
str r1, [r0]
bx lr
.pool
thumb_func_end SetBankFuncToLinkOpponentBufferRunCommand
- thumb_func_start sub_80643B0
-sub_80643B0: @ 80643B0
+ thumb_func_start LinkOpponentBufferRunCommand
+LinkOpponentBufferRunCommand: @ 80643B0
push {lr}
ldr r2, =gBattleExecBuffer
ldr r1, =gBitTable
@@ -44,7 +44,7 @@ sub_80643B0: @ 80643B0
ldrb r0, [r1]
cmp r0, 0x38
bhi _080643F8
- ldr r0, =gUnknown_0831C7B4
+ ldr r0, =gLinkOpponentBufferCommands
ldrb r1, [r1]
lsls r1, 2
adds r1, r0
@@ -53,11 +53,11 @@ sub_80643B0: @ 80643B0
b _080643FC
.pool
_080643F8:
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
_080643FC:
pop {r0}
bx r0
- thumb_func_end sub_80643B0
+ thumb_func_end LinkOpponentBufferRunCommand
thumb_func_start sub_8064400
sub_8064400: @ 8064400
@@ -77,7 +77,7 @@ sub_8064400: @ 8064400
ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _08064424
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
_08064424:
pop {r0}
bx r0
@@ -102,7 +102,7 @@ sub_8064438: @ 8064438
ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _0806445C
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
_0806445C:
pop {r0}
bx r0
@@ -147,7 +147,7 @@ sub_8064470: @ 8064470
lsls r0, 2
adds r0, r5
bl DestroySprite
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
_080644C2:
pop {r4-r6}
pop {r0}
@@ -183,7 +183,7 @@ sub_80644D8: @ 80644D8
adds r0, r2
movs r1, 0
strb r1, [r0, 0x9]
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
_08064510:
pop {r4}
pop {r0}
@@ -949,7 +949,7 @@ _08064B7C:
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
_08064BB6:
pop {r4-r7}
pop {r0}
@@ -989,7 +989,7 @@ sub_8064BC0: @ 8064BC0
b _08064C0C
.pool
_08064C08:
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
_08064C0C:
pop {r4-r6}
pop {r0}
@@ -1018,7 +1018,7 @@ sub_8064C14: @ 8064C14
adds r0, r3, r0
ldrb r0, [r0]
bl sub_8072984
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
_08064C42:
pop {r0}
bx r0
@@ -1066,7 +1066,7 @@ sub_8064C58: @ 8064C58
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
_08064CB2:
pop {r4-r6}
pop {r0}
@@ -1082,7 +1082,7 @@ sub_8064CCC: @ 8064CCC
lsls r0, 16
cmp r0, 0
bne _08064CDE
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
_08064CDE:
pop {r0}
bx r0
@@ -1116,7 +1116,7 @@ sub_8064CE4: @ 8064CE4
strb r0, [r2]
ldr r0, =gDoingBattleAnim
strb r3, [r0]
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
b _08064D5A
.pool
_08064D30:
@@ -1239,7 +1239,7 @@ _08064E1A:
movs r2, 0x80
lsls r2, 1
bl m4aMPlayVolumeControl
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
_08064E2A:
pop {r4}
pop {r0}
@@ -1444,7 +1444,7 @@ sub_8065008: @ 8065008
ands r0, r1
cmp r0, 0
bne _0806502A
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
_0806502A:
pop {r0}
bx r0
@@ -1468,15 +1468,15 @@ sub_8065038: @ 8065038
ands r0, r1
cmp r0, 0
bne _0806505A
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
_0806505A:
pop {r0}
bx r0
.pool
thumb_func_end sub_8065038
- thumb_func_start sub_8065068
-sub_8065068: @ 8065068
+ thumb_func_start LinkOpponentBufferExecCompleted
+LinkOpponentBufferExecCompleted: @ 8065068
push {r4,lr}
sub sp, 0x4
ldr r1, =gBattleBankFunc
@@ -1484,7 +1484,7 @@ sub_8065068: @ 8065068
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
- ldr r1, =sub_80643B0
+ ldr r1, =LinkOpponentBufferRunCommand
str r1, [r0]
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
@@ -1523,7 +1523,7 @@ _080650CE:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8065068
+ thumb_func_end LinkOpponentBufferExecCompleted
thumb_func_start dp01t_00_2_getattr
dp01t_00_2_getattr: @ 80650E0
@@ -1573,7 +1573,7 @@ _0806513A:
movs r0, 0x1
mov r2, sp
bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
add sp, 0x100
pop {r4-r6}
pop {r0}
@@ -2461,7 +2461,7 @@ _080658EA:
thumb_func_start sub_8065900
sub_8065900: @ 8065900
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8065900
@@ -2503,7 +2503,7 @@ _0806594E:
cmp r5, 0x5
bls _08065940
_0806595A:
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r4,r5}
pop {r0}
bx r0
@@ -3542,7 +3542,7 @@ _080662BA:
cmp r3, r0
bcc _080662BA
_080662DC:
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r4-r7}
pop {r0}
bx r0
@@ -3948,7 +3948,7 @@ _0806666C:
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
_080666A8:
pop {r4-r6}
pop {r0}
@@ -4057,11 +4057,11 @@ _08066770:
ldrb r0, [r5]
cmp r0, 0x1
bne _08066794
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
b _08066796
.pool
_08066794:
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
_08066796:
ldrh r0, [r0]
bl sub_8162AA0
@@ -4143,7 +4143,7 @@ _08066838:
b _0806693A
_08066840:
movs r7, 0xB0
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
movs r0, 0xC0
lsls r0, 4
@@ -4389,11 +4389,11 @@ sub_8066A58: @ 8066A58
ldrb r0, [r0]
cmp r0, 0x1
bne _08066A74
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
b _08066A76
.pool
_08066A74:
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
_08066A76:
ldrh r0, [r0]
bl sub_8162AA0
@@ -4503,7 +4503,7 @@ _08066A76:
adds r0, r1
ldr r1, =sub_8064438
str r1, [r0]
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r3}
mov r8, r3
pop {r4-r6}
@@ -4573,7 +4573,7 @@ sub_8066B94: @ 8066B94
lsls r0, 2
adds r0, r5
ldr r1, =SpriteCallbackDummy
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
lsls r0, 2
@@ -4666,7 +4666,7 @@ _08066CD0:
thumb_func_start sub_8066CEC
sub_8066CEC: @ 8066CEC
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8066CEC
@@ -4674,7 +4674,7 @@ sub_8066CEC: @ 8066CEC
thumb_func_start sub_8066CF8
sub_8066CF8: @ 8066CF8
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8066CF8
@@ -4682,7 +4682,7 @@ sub_8066CF8: @ 8066CF8
thumb_func_start sub_8066D04
sub_8066D04: @ 8066D04
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8066D04
@@ -4690,7 +4690,7 @@ sub_8066D04: @ 8066D04
thumb_func_start sub_8066D10
sub_8066D10: @ 8066D10
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8066D10
@@ -4812,7 +4812,7 @@ _08066D32:
lsrs r3, r0, 24
cmp r3, 0
beq _08066E30
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
b _08066E58
.pool
_08066E30:
@@ -5017,7 +5017,7 @@ _08066FA8:
lsls r0, 2
adds r0, r2
strb r4, [r0, 0x4]
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
_08066FE4:
pop {r3-r5}
mov r8, r3
@@ -5042,7 +5042,7 @@ sub_8066FF4: @ 8066FF4
ldr r0, =gUnknown_02023066
adds r4, r0
ldrh r0, [r4]
- bl battle_pick_message
+ bl BufferStringBattle
ldr r0, =gUnknown_02022E2C
movs r1, 0
bl battle_show_message_maybe
@@ -5063,7 +5063,7 @@ sub_8066FF4: @ 8066FF4
thumb_func_start sub_806704C
sub_806704C: @ 806704C
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_806704C
@@ -5071,7 +5071,7 @@ sub_806704C: @ 806704C
thumb_func_start sub_8067058
sub_8067058: @ 8067058
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8067058
@@ -5079,7 +5079,7 @@ sub_8067058: @ 8067058
thumb_func_start sub_8067064
sub_8067064: @ 8067064
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8067064
@@ -5087,7 +5087,7 @@ sub_8067064: @ 8067064
thumb_func_start sub_8067070
sub_8067070: @ 8067070
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8067070
@@ -5095,7 +5095,7 @@ sub_8067070: @ 8067070
thumb_func_start sub_806707C
sub_806707C: @ 806707C
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_806707C
@@ -5103,7 +5103,7 @@ sub_806707C: @ 806707C
thumb_func_start sub_8067088
sub_8067088: @ 8067088
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8067088
@@ -5111,7 +5111,7 @@ sub_8067088: @ 8067088
thumb_func_start sub_8067094
sub_8067094: @ 8067094
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8067094
@@ -5215,7 +5215,7 @@ _0806715A:
thumb_func_start sub_8067190
sub_8067190: @ 8067190
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8067190
@@ -5319,7 +5319,7 @@ _08067264:
thumb_func_start sub_806727C
sub_806727C: @ 806727C
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_806727C
@@ -5327,7 +5327,7 @@ sub_806727C: @ 806727C
thumb_func_start sub_8067288
sub_8067288: @ 8067288
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8067288
@@ -5335,7 +5335,7 @@ sub_8067288: @ 8067288
thumb_func_start sub_8067294
sub_8067294: @ 8067294
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8067294
@@ -5343,7 +5343,7 @@ sub_8067294: @ 8067294
thumb_func_start sub_80672A0
sub_80672A0: @ 80672A0
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80672A0
@@ -5351,7 +5351,7 @@ sub_80672A0: @ 80672A0
thumb_func_start sub_80672AC
sub_80672AC: @ 80672AC
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80672AC
@@ -5359,7 +5359,7 @@ sub_80672AC: @ 80672AC
thumb_func_start sub_80672B8
sub_80672B8: @ 80672B8
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80672B8
@@ -5367,7 +5367,7 @@ sub_80672B8: @ 80672B8
thumb_func_start sub_80672C4
sub_80672C4: @ 80672C4
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80672C4
@@ -5375,7 +5375,7 @@ sub_80672C4: @ 80672C4
thumb_func_start sub_80672D0
sub_80672D0: @ 80672D0
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80672D0
@@ -5383,7 +5383,7 @@ sub_80672D0: @ 80672D0
thumb_func_start sub_80672DC
sub_80672DC: @ 80672DC
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80672DC
@@ -5397,7 +5397,7 @@ sub_80672E8: @ 80672E8
negs r0, r0
ands r0, r1
strb r0, [r2]
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
.pool
@@ -5422,7 +5422,7 @@ sub_8067304: @ 8067304
ands r0, r2
orrs r0, r1
strb r0, [r3]
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
.pool
@@ -5436,7 +5436,7 @@ sub_806733C: @ 806733C
movs r0, 0x7F
ands r0, r1
strb r0, [r2]
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
.pool
@@ -5457,7 +5457,7 @@ sub_8067354: @ 8067354
ands r0, r2
orrs r0, r1
strb r0, [r3]
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
.pool
@@ -5481,7 +5481,7 @@ sub_806737C: @ 806737C
lsls r0, 29
cmp r0, 0
bge _080673B0
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
b _080673DA
.pool
_080673B0:
@@ -5515,7 +5515,7 @@ _080673DA:
thumb_func_start sub_80673EC
sub_80673EC: @ 80673EC
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80673EC
@@ -5546,7 +5546,7 @@ _0806740C:
lsls r1, r3, 24
asrs r1, 24
bl PlaySE12WithPanning
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r4}
pop {r0}
bx r0
@@ -5590,7 +5590,7 @@ _08067478:
orrs r0, r1
bl PlayFanfare
_0806748C:
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r4,r5}
pop {r0}
bx r0
@@ -5616,7 +5616,7 @@ sub_8067498: @ 8067498
movs r1, 0x19
movs r2, 0x5
bl PlayCry3
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
.pool
@@ -5638,7 +5638,7 @@ sub_80674D4: @ 80674D4
movs r1, 0x1
orrs r0, r1
strh r0, [r2]
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
.pool
@@ -5705,7 +5705,7 @@ sub_8067508: @ 8067508
lsls r0, 2
adds r0, r4
ldr r1, =sub_80676FC
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =c3_08038DC4
movs r1, 0x5
bl CreateTask
@@ -5889,7 +5889,7 @@ sub_8067718: @ 8067718
lsls r0, 24
cmp r0, 0
bne _08067748
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
b _08067812
.pool
_08067748:
@@ -6025,7 +6025,7 @@ sub_806782C: @ 806782C
adds r0, r2
movs r1, 0
strb r1, [r0, 0x5]
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
_08067864:
pop {r4}
pop {r0}
@@ -6061,7 +6061,7 @@ sub_8067874: @ 8067874
ldr r1, =sub_8073C30
str r1, [r0]
_080678A6:
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
.pool
@@ -6070,7 +6070,7 @@ _080678A6:
thumb_func_start sub_80678C4
sub_80678C4: @ 80678C4
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80678C4
@@ -6111,7 +6111,7 @@ sub_80678D0: @ 80678D0
ldrb r0, [r4]
bl sub_805E408
_08067916:
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r4}
pop {r0}
bx r0
@@ -6150,7 +6150,7 @@ sub_8067930: @ 8067930
lsls r0, 24
cmp r0, 0
beq _08067980
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
b _0806798C
.pool
_08067980:
@@ -6180,7 +6180,7 @@ sub_80679A4: @ 80679A4
ldr r1, =gUnknown_02023066
adds r0, r1
bl sub_81851A8
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
.pool
@@ -6189,7 +6189,7 @@ sub_80679A4: @ 80679A4
thumb_func_start sub_80679C4
sub_80679C4: @ 80679C4
push {lr}
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80679C4
@@ -6244,7 +6244,7 @@ _08067A08:
bl FadeOutMapMusic
movs r0, 0x3
bl BeginFastPaletteFade
- bl sub_8065068
+ bl LinkOpponentBufferExecCompleted
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
lsls r0, 2
diff --git a/asm/battle_controller_linkpartner.s b/asm/battle_controller_linkpartner.s
index 09dd9077b..5916c47f4 100644
--- a/asm/battle_controller_linkpartner.s
+++ b/asm/battle_controller_linkpartner.s
@@ -3854,7 +3854,7 @@ sub_814D0F0: @ 814D0F0
lsls r0, 2
adds r0, r5
ldr r1, =SpriteCallbackDummy
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
lsls r0, 2
@@ -4351,7 +4351,7 @@ sub_814D590: @ 814D590
ldr r0, =gUnknown_02023066
adds r4, r0
ldrh r0, [r4]
- bl battle_pick_message
+ bl BufferStringBattle
ldr r0, =gUnknown_02022E2C
movs r1, 0
bl battle_show_message_maybe
@@ -5022,7 +5022,7 @@ sub_814DAA8: @ 814DAA8
lsls r0, 2
adds r0, r4
ldr r1, =sub_805CC00
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s
index ed5bb8ab1..c49bbe830 100644
--- a/asm/battle_controller_opponent.s
+++ b/asm/battle_controller_opponent.s
@@ -4205,7 +4205,7 @@ sub_8061690: @ 8061690
b _0806175A
.pool
_080616B0:
- ldr r3, =gUnknown_02038BCA
+ ldr r3, =gTrainerBattleOpponent_A
ldrh r1, [r3]
ldr r0, =0x000003fe
cmp r1, r0
@@ -4233,7 +4233,7 @@ _080616C8:
b _0806175A
.pool
_080616F0:
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
ldrh r0, [r0]
bl sub_81D5588
b _0806175A
@@ -4260,7 +4260,7 @@ _08061708:
b _0806175A
.pool
_08061734:
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
ldrh r0, [r0]
bl sub_8162AA0
b _0806175A
@@ -4291,7 +4291,7 @@ _08061760:
cmp r0, 0x1
beq _08061788
ldr r2, =gTrainers
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
ldrh r1, [r0]
b _0806178C
.pool
@@ -4452,7 +4452,7 @@ sub_80618D8: @ 80618D8
b _080619A2
.pool
_080618F8:
- ldr r3, =gUnknown_02038BCA
+ ldr r3, =gTrainerBattleOpponent_A
ldrh r1, [r3]
ldr r0, =0x000003fe
cmp r1, r0
@@ -4480,7 +4480,7 @@ _08061910:
b _080619A2
.pool
_08061938:
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
ldrh r0, [r0]
bl sub_81D5588
b _080619A2
@@ -4507,7 +4507,7 @@ _08061950:
b _080619A2
.pool
_0806197C:
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
ldrh r0, [r0]
bl sub_8162AA0
b _080619A2
@@ -4538,7 +4538,7 @@ _080619A8:
cmp r0, 0x1
beq _080619D0
ldr r2, =gTrainers
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
ldrh r1, [r0]
b _080619D4
.pool
@@ -4725,7 +4725,7 @@ sub_8061AF0: @ 8061AF0
lsls r0, 2
adds r0, r5
ldr r1, =SpriteCallbackDummy
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
lsls r0, 2
@@ -5182,7 +5182,7 @@ sub_8061F34: @ 8061F34
ldr r0, =gUnknown_02023066
adds r4, r0
ldrh r0, [r4]
- bl battle_pick_message
+ bl BufferStringBattle
ldr r0, =gUnknown_02022E2C
movs r1, 0
bl battle_show_message_maybe
@@ -5261,7 +5261,7 @@ _08061FE4:
beq _080620C4
movs r0, 0xF
bl BattleAI_SetupAIData
- bl sub_8130BA4
+ bl BattleAI_ChooseMoveOrAction
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x5
@@ -6155,7 +6155,7 @@ sub_80626FC: @ 80626FC
lsls r0, 2
adds r0, r4
ldr r1, =sub_806280C
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_8062828
movs r1, 0x5
bl CreateTask
diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s
index 821a7bbb2..0e387692d 100644
--- a/asm/battle_controller_player.s
+++ b/asm/battle_controller_player.s
@@ -991,7 +991,7 @@ _08057D24:
cmp r0, 0
bne _08057D5A
movs r0, 0
- bl sub_8069DEC
+ bl CountAliveMonsInBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -3399,7 +3399,7 @@ _080591FE:
mov r2, sp
bl SetMonData
adds r0, r6, 0
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
ldr r2, [sp]
add r0, sp, 0x4
ldrh r0, [r0]
@@ -3673,7 +3673,7 @@ _08059430:
mov r2, sp
bl SetMonData
adds r0, r5, 0
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
ldr r2, [sp]
add r0, sp, 0x4
ldrh r0, [r0]
@@ -7865,7 +7865,7 @@ sub_805B9F8: @ 805B9F8
lsls r0, 2
adds r0, r4
ldr r1, =SpriteCallbackDummy
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
@@ -8455,7 +8455,7 @@ sub_805BF80: @ 805BF80
ldr r0, =gUnknown_02023066
adds r4, r0
ldrh r0, [r4]
- bl battle_pick_message
+ bl BufferStringBattle
ldr r0, =gUnknown_02022E2C
movs r1, 0
bl battle_show_message_maybe
@@ -9743,7 +9743,7 @@ dp01t_2F_1_pokemon_enter: @ 805CA80
lsls r0, 2
adds r0, r5
ldr r1, =sub_805CC00
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldrb r0, [r7]
adds r0, r6
ldrb r1, [r0]
diff --git a/asm/battle_controller_player_partner.s b/asm/battle_controller_player_partner.s
index 75a911521..ef8ffd8fb 100644
--- a/asm/battle_controller_player_partner.s
+++ b/asm/battle_controller_player_partner.s
@@ -631,7 +631,7 @@ _081BB2E2:
mov r2, sp
bl SetMonData
adds r0, r6, 0
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
ldr r2, [sp]
add r0, sp, 0x4
ldrh r0, [r0]
@@ -905,7 +905,7 @@ _081BB514:
mov r2, sp
bl SetMonData
adds r0, r5, 0
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
ldr r2, [sp]
add r0, sp, 0x4
ldrh r0, [r0]
@@ -4478,7 +4478,7 @@ sub_81BD5C8: @ 81BD5C8
lsls r0, 2
adds r0, r5
ldr r1, =SpriteCallbackDummy
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
lsls r0, 2
@@ -4963,7 +4963,7 @@ sub_81BDA4C: @ 81BDA4C
ldr r1, =gUnknown_02023066
adds r0, r1
ldrh r0, [r0]
- bl battle_pick_message
+ bl BufferStringBattle
ldr r0, =gUnknown_02022E2C
movs r1, 0
bl battle_show_message_maybe
@@ -5014,7 +5014,7 @@ sub_81BDAC8: @ 81BDAC8
adds r4, r0
movs r0, 0xF
bl BattleAI_SetupAIData
- bl sub_8130BA4
+ bl BattleAI_ChooseMoveOrAction
lsls r0, 24
lsrs r5, r0, 24
ldr r2, =gBattleMoves
@@ -5809,7 +5809,7 @@ sub_81BE10C: @ 81BE10C
lsls r0, 2
adds r0, r4
ldr r1, =sub_805CC00
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldrb r0, [r5]
adds r0, r6
ldrb r1, [r0]
diff --git a/asm/battle_controller_recorded_opponent.s b/asm/battle_controller_recorded_opponent.s
index 4e2290b72..c8fc24c00 100644
--- a/asm/battle_controller_recorded_opponent.s
+++ b/asm/battle_controller_recorded_opponent.s
@@ -4038,11 +4038,11 @@ _081888B4:
ldrb r0, [r4]
cmp r0, 0x1
bne _081888D8
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
b _081888DA
.pool
_081888D8:
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
_081888DA:
ldrh r0, [r0]
bl sub_8162AA0
@@ -4057,7 +4057,7 @@ _081888EC:
b _08188924
_081888F6:
movs r7, 0xB0
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
movs r0, 0xC0
lsls r0, 4
@@ -4262,7 +4262,7 @@ sub_8188A4C: @ 8188A4C
lsls r0, 2
adds r0, r5
ldr r1, =SpriteCallbackDummy
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
lsls r0, 2
@@ -4719,7 +4719,7 @@ sub_8188E90: @ 8188E90
ldr r1, =gUnknown_02023066
adds r0, r1
ldrh r0, [r0]
- bl battle_pick_message
+ bl BufferStringBattle
ldr r0, =gUnknown_02022E2C
movs r1, 0
bl battle_show_message_maybe
@@ -5444,7 +5444,7 @@ sub_8189438: @ 8189438
lsls r0, 2
adds r0, r4
ldr r1, =sub_818962C
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =c3_0803D564
movs r1, 0x5
bl CreateTask
diff --git a/asm/battle_controller_recorded_player.s b/asm/battle_controller_recorded_player.s
index 118ebbda4..ff0bf98c6 100644
--- a/asm/battle_controller_recorded_player.s
+++ b/asm/battle_controller_recorded_player.s
@@ -4334,7 +4334,7 @@ sub_818BFB8: @ 818BFB8
lsls r0, 2
adds r0, r5
ldr r1, =SpriteCallbackDummy
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
lsls r0, 2
@@ -4819,7 +4819,7 @@ sub_818C43C: @ 818C43C
ldr r1, =gUnknown_02023066
adds r0, r1
ldrh r0, [r0]
- bl battle_pick_message
+ bl BufferStringBattle
ldr r0, =gUnknown_02022E2C
movs r1, 0
bl battle_show_message_maybe
@@ -5603,7 +5603,7 @@ sub_818CA64: @ 818CA64
lsls r0, 2
adds r0, r4
ldr r1, =sub_805CC00
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
diff --git a/asm/battle_controller_safari.s b/asm/battle_controller_safari.s
new file mode 100644
index 000000000..cf916434d
--- /dev/null
+++ b/asm/battle_controller_safari.s
@@ -0,0 +1,1412 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+
+ thumb_func_start nullsub_114
+nullsub_114: @ 8159368
+ bx lr
+ thumb_func_end nullsub_114
+
+ thumb_func_start SetBankFuncToSafariBufferRunCommand
+SetBankFuncToSafariBufferRunCommand: @ 815936C
+ ldr r1, =gBattleBankFunc
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =SafariBufferRunCommand
+ str r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end SetBankFuncToSafariBufferRunCommand
+
+ thumb_func_start SafariBufferRunCommand
+SafariBufferRunCommand: @ 8159388
+ push {lr}
+ ldr r2, =gBattleExecBuffer
+ ldr r1, =gBitTable
+ ldr r0, =gActiveBank
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _081593D4
+ ldr r0, =gBattleBufferA
+ lsls r1, r3, 9
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x38
+ bhi _081593D0
+ ldr r0, =gSafariBufferCommands
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+ b _081593D4
+ .pool
+_081593D0:
+ bl SafariBufferExecCompleted
+_081593D4:
+ pop {r0}
+ bx r0
+ thumb_func_end SafariBufferRunCommand
+
+ thumb_func_start bx_battle_menu_t6_2
+bx_battle_menu_t6_2: @ 81593D8
+ push {r4,r5,lr}
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08159446
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, =gUnknown_020244AC
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08159424
+ cmp r0, 0x1
+ bgt _08159414
+ cmp r0, 0
+ beq _0815941E
+ b _08159440
+ .pool
+_08159414:
+ cmp r0, 0x2
+ beq _0815942A
+ cmp r0, 0x3
+ beq _08159436
+ b _08159440
+_0815941E:
+ movs r0, 0x1
+ movs r1, 0x5
+ b _0815942E
+_08159424:
+ movs r0, 0x1
+ movs r1, 0x6
+ b _0815942E
+_0815942A:
+ movs r0, 0x1
+ movs r1, 0x7
+_0815942E:
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ b _08159440
+_08159436:
+ movs r0, 0x1
+ movs r1, 0x8
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+_08159440:
+ bl SafariBufferExecCompleted
+ b _0815954E
+_08159446:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08159484
+ ldr r5, =gUnknown_020244AC
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0815954E
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8059CF8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x1
+ b _081594F2
+ .pool
+_08159484:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081594C0
+ ldr r5, =gUnknown_020244AC
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0815954E
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8059CF8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x1
+ b _081594F2
+ .pool
+_081594C0:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0815950C
+ ldr r5, =gUnknown_020244AC
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0815954E
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8059CF8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x2
+_081594F2:
+ eors r0, r2
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8059CB4
+ b _0815954E
+ .pool
+_0815950C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0815954E
+ ldr r5, =gUnknown_020244AC
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0815954E
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8059CF8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x2
+ eors r0, r2
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8059CB4
+_0815954E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bx_battle_menu_t6_2
+
+ thumb_func_start sub_815955C
+sub_815955C: @ 815955C
+ push {lr}
+ ldr r2, =gSprites
+ ldr r1, =gBankSpriteIds
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08159580
+ bl SafariBufferExecCompleted
+_08159580:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815955C
+
+ thumb_func_start bx_t6_button_a
+bx_t6_button_a: @ 8159594
+ push {lr}
+ movs r0, 0
+ bl IsTextPrinterActive
+ lsls r0, 16
+ cmp r0, 0
+ bne _081595A6
+ bl SafariBufferExecCompleted
+_081595A6:
+ pop {r0}
+ bx r0
+ thumb_func_end bx_t6_button_a
+
+ thumb_func_start sub_81595AC
+sub_81595AC: @ 81595AC
+ push {lr}
+ ldr r2, =gSprites
+ ldr r1, =gUnknown_03005D70
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, =SpriteCallbackDummy
+ cmp r1, r0
+ bne _081595D0
+ bl SafariBufferExecCompleted
+_081595D0:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81595AC
+
+ thumb_func_start sub_81595E4
+sub_81595E4: @ 81595E4
+ push {lr}
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0815960E
+ ldr r2, =gMain
+ ldr r0, =0x00000439
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, =gUnknown_03005D00
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, [r2, 0x8]
+ bl SetMainCallback2
+_0815960E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81595E4
+
+ thumb_func_start bx_wait_t6
+bx_wait_t6: @ 8159624
+ push {lr}
+ ldr r0, =gDoingBattleAnim
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0815964A
+ ldr r0, =gUnknown_020244D0
+ ldr r2, [r0]
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0815964E
+_0815964A:
+ bl SafariBufferExecCompleted
+_0815964E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bx_wait_t6
+
+ thumb_func_start sub_8159660
+sub_8159660: @ 8159660
+ push {lr}
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08159684
+ ldr r1, =gBattleBankFunc
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8159698
+ str r1, [r0]
+ bl FreeAllWindowBuffers
+ bl sub_81358F4
+_08159684:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8159660
+
+ thumb_func_start sub_8159698
+sub_8159698: @ 8159698
+ push {lr}
+ ldr r0, =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, =sub_8038420
+ cmp r1, r0
+ bne _081596BE
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081596BE
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r1, [r0]
+ movs r0, 0x1
+ bl dp01_build_cmdbuf_x23_aa_0
+ bl SafariBufferExecCompleted
+_081596BE:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8159698
+
+ thumb_func_start sub_81596D4
+sub_81596D4: @ 81596D4
+ push {lr}
+ ldr r0, =gUnknown_020244D0
+ ldr r2, [r0]
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _081596F6
+ bl SafariBufferExecCompleted
+_081596F6:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81596D4
+
+ thumb_func_start SafariBufferExecCompleted
+SafariBufferExecCompleted: @ 8159704
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, =gBattleBankFunc
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =SafariBufferRunCommand
+ str r1, [r0]
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08159758
+ bl link_get_multiplayer_id
+ mov r1, sp
+ strb r0, [r1]
+ movs r0, 0x2
+ movs r1, 0x4
+ mov r2, sp
+ bl PrepareBufferDataTransferLink
+ ldr r1, =gBattleBufferA
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r0, r1
+ movs r1, 0x38
+ strb r1, [r0]
+ b _0815976A
+ .pool
+_08159758:
+ ldr r2, =gBattleExecBuffer
+ ldr r1, =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+_0815976A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end SafariBufferExecCompleted
+
+ thumb_func_start bx_80364D0
+bx_80364D0: @ 815977C
+ push {lr}
+ ldr r0, =gUnknown_020244D0
+ ldr r2, [r0]
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0815979E
+ bl SafariBufferExecCompleted
+_0815979E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bx_80364D0
+
+ thumb_func_start sub_81597AC
+sub_81597AC: @ 81597AC
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81597AC
+
+ thumb_func_start sub_81597B8
+sub_81597B8: @ 81597B8
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81597B8
+
+ thumb_func_start sub_81597C4
+sub_81597C4: @ 81597C4
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81597C4
+
+ thumb_func_start sub_81597D0
+sub_81597D0: @ 81597D0
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81597D0
+
+ thumb_func_start sub_81597DC
+sub_81597DC: @ 81597DC
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81597DC
+
+ thumb_func_start sub_81597E8
+sub_81597E8: @ 81597E8
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81597E8
+
+ thumb_func_start sub_81597F4
+sub_81597F4: @ 81597F4
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81597F4
+
+ thumb_func_start sub_8159800
+sub_8159800: @ 8159800
+ push {r4-r6,lr}
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x8]
+ ldr r5, =gActiveBank
+ ldrb r1, [r5]
+ bl sub_805DF84
+ ldr r0, [r4]
+ ldrb r6, [r0, 0x8]
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl template_build_for_pokemon_or_trainer
+ ldr r0, =gUnknown_0202499C
+ ldr r2, =gUnknown_08305D2C
+ ldr r1, [r4]
+ ldrb r1, [r1, 0x8]
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1]
+ movs r2, 0x8
+ subs r2, r1
+ lsls r2, 18
+ movs r1, 0xA0
+ lsls r1, 15
+ adds r2, r1
+ asrs r2, 16
+ movs r1, 0x50
+ movs r3, 0x1E
+ bl CreateSprite
+ ldr r6, =gBankSpriteIds
+ ldrb r1, [r5]
+ adds r1, r6
+ strb r0, [r1]
+ ldr r4, =gSprites
+ ldrb r3, [r5]
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xF0
+ strh r1, [r0, 0x24]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, =0x0000fffe
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, =sub_805D7AC
+ str r1, [r0]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_815955C
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8159800
+
+ thumb_func_start sub_81598E0
+sub_81598E0: @ 81598E0
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81598E0
+
+ thumb_func_start sub_81598EC
+sub_81598EC: @ 81598EC
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81598EC
+
+ thumb_func_start sub_81598F8
+sub_81598F8: @ 81598F8
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81598F8
+
+ thumb_func_start sub_8159904
+sub_8159904: @ 8159904
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159904
+
+ thumb_func_start sub_8159910
+sub_8159910: @ 8159910
+ push {r4,r5,lr}
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r1, [r0, 0x8]
+ movs r0, 0x4
+ strb r0, [r1, 0x8]
+ ldr r1, =gDoingBattleAnim
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r5, =gActiveBank
+ ldrb r4, [r5]
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r3, 0x4
+ bl move_anim_start_t4
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =bx_wait_t6
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8159910
+
+ thumb_func_start sub_8159964
+sub_8159964: @ 8159964
+ push {r4,r5,lr}
+ ldr r1, =gBattleBufferA
+ ldr r5, =gActiveBank
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r0, [r0, 0x8]
+ strb r1, [r0, 0x8]
+ ldr r1, =gDoingBattleAnim
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrb r4, [r5]
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r3, 0x4
+ bl move_anim_start_t4
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =bx_wait_t6
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8159964
+
+ thumb_func_start sub_81599C4
+sub_81599C4: @ 81599C4
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81599C4
+
+ thumb_func_start sub_81599D0
+sub_81599D0: @ 81599D0
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81599D0
+
+ thumb_func_start dp01t_10_6_message
+dp01t_10_6_message: @ 81599DC
+ push {r4,lr}
+ ldr r0, =gUnknown_02022E14
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gUnknown_02022E16
+ strh r1, [r0]
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ lsls r0, 9
+ ldr r1, =gUnknown_02023066
+ adds r0, r1
+ ldrh r0, [r0]
+ bl BufferStringBattle
+ ldr r0, =gUnknown_02022E2C
+ movs r1, 0
+ bl battle_show_message_maybe
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =bx_t6_button_a
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp01t_10_6_message
+
+ thumb_func_start dp01t_11_6_message_for_player_only
+dp01t_11_6_message_for_player_only: @ 8159A30
+ push {lr}
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08159A4C
+ bl dp01t_10_6_message
+ b _08159A50
+ .pool
+_08159A4C:
+ bl SafariBufferExecCompleted
+_08159A50:
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_11_6_message_for_player_only
+
+ thumb_func_start sub_8159A54
+sub_8159A54: @ 8159A54
+ push {lr}
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08159A7A
+ ldr r0, =gUnknown_02022E14
+ strh r1, [r0]
+ ldr r1, =gUnknown_02022E16
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r1, =gBattleBankFunc
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =bx_battle_menu_t6_2
+ str r1, [r0]
+_08159A7A:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8159A54
+
+ thumb_func_start sub_8159A94
+sub_8159A94: @ 8159A94
+ push {r4,lr}
+ ldr r1, =gBattleBankFunc
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8159A54
+ str r1, [r0]
+ ldr r0, =gUnknown_085CCA54
+ movs r1, 0x2
+ bl battle_show_message_maybe
+ movs r4, 0
+_08159AAE:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8059CF8
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08159AAE
+ ldr r1, =gUnknown_020244AC
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8059CB4
+ ldr r0, =gUnknown_085CCA04
+ bl get_battle_strings_
+ ldr r0, =gUnknown_02022E2C
+ movs r1, 0x1
+ bl battle_show_message_maybe
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8159A94
+
+ thumb_func_start sub_8159AFC
+sub_8159AFC: @ 8159AFC
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159AFC
+
+ thumb_func_start sub_8159B08
+sub_8159B08: @ 8159B08
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159B08
+
+ thumb_func_start sub_8159B14
+sub_8159B14: @ 8159B14
+ 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 r1, =gBattleBankFunc
+ ldr r2, =gActiveBank
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8159660
+ str r1, [r0]
+ ldr r1, =gUnknown_020244B8
+ ldrb r0, [r2]
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8159B14
+
+ thumb_func_start sub_8159B54
+sub_8159B54: @ 8159B54
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159B54
+
+ thumb_func_start sub_8159B60
+sub_8159B60: @ 8159B60
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159B60
+
+ thumb_func_start sub_8159B6C
+sub_8159B6C: @ 8159B6C
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159B6C
+
+ thumb_func_start sub_8159B78
+sub_8159B78: @ 8159B78
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159B78
+
+ thumb_func_start sub_8159B84
+sub_8159B84: @ 8159B84
+ push {lr}
+ ldr r0, =gUnknown_03005D70
+ ldr r1, =gActiveBank
+ ldrb r1, [r1]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, =gPlayerParty
+ adds r1, r2
+ movs r2, 0xB
+ bl healthbar_draw_field_maybe
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8159B84
+
+ thumb_func_start sub_8159BC0
+sub_8159BC0: @ 8159BC0
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159BC0
+
+ thumb_func_start sub_8159BCC
+sub_8159BCC: @ 8159BCC
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159BCC
+
+ thumb_func_start sub_8159BD8
+sub_8159BD8: @ 8159BD8
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159BD8
+
+ thumb_func_start sub_8159BE4
+sub_8159BE4: @ 8159BE4
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159BE4
+
+ thumb_func_start sub_8159BF0
+sub_8159BF0: @ 8159BF0
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159BF0
+
+ thumb_func_start sub_8159BFC
+sub_8159BFC: @ 8159BFC
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159BFC
+
+ thumb_func_start sub_8159C08
+sub_8159C08: @ 8159C08
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159C08
+
+ thumb_func_start sub_8159C14
+sub_8159C14: @ 8159C14
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159C14
+
+ thumb_func_start sub_8159C20
+sub_8159C20: @ 8159C20
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159C20
+
+ thumb_func_start sub_8159C2C
+sub_8159C2C: @ 8159C2C
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159C2C
+
+ thumb_func_start sub_8159C38
+sub_8159C38: @ 8159C38
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159C38
+
+ thumb_func_start sub_8159C44
+sub_8159C44: @ 8159C44
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159C44
+
+ thumb_func_start sub_8159C50
+sub_8159C50: @ 8159C50
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159C50
+
+ thumb_func_start sub_8159C5C
+sub_8159C5C: @ 8159C5C
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159C5C
+
+ thumb_func_start sub_8159C68
+sub_8159C68: @ 8159C68
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159C68
+
+ thumb_func_start sub_8159C74
+sub_8159C74: @ 8159C74
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159C74
+
+ thumb_func_start sub_8159C80
+sub_8159C80: @ 8159C80
+ push {r4,lr}
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ movs r3, 0x3F
+ cmp r0, 0
+ bne _08159C94
+ movs r3, 0xC0
+_08159C94:
+ ldr r2, =gBattleBufferA
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ lsls r1, r3, 24
+ asrs r1, 24
+ bl PlaySE12WithPanning
+ bl SafariBufferExecCompleted
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8159C80
+
+ thumb_func_start dp01t_34_6_move_anim_start_t3
+dp01t_34_6_move_anim_start_t3: @ 8159CC4
+ push {r4,r5,lr}
+ ldr r4, =gBattleBufferA
+ ldr r5, =gActiveBank
+ ldrb r0, [r5]
+ lsls r3, r0, 9
+ adds r0, r4, 0x3
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08159D00
+ bl sub_805EA60
+ ldrb r1, [r5]
+ lsls r1, 9
+ adds r0, r4, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, r4, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl PlayBGM
+ b _08159D14
+ .pool
+_08159D00:
+ adds r0, r4, 0x1
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ adds r1, r4, 0x2
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl PlayFanfare
+_08159D14:
+ bl SafariBufferExecCompleted
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_34_6_move_anim_start_t3
+
+ thumb_func_start sub_8159D20
+sub_8159D20: @ 8159D20
+ push {lr}
+ ldr r1, =gBattlePartyID
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x19
+ bl PlayCry1
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8159D20
+
+ thumb_func_start dp01t_2E_6_battle_intro
+dp01t_2E_6_battle_intro: @ 8159D5C
+ push {lr}
+ ldr r1, =gBattleBufferA
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl battle_intro_launch
+ ldr r2, =gUnknown_020243FC
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp01t_2E_6_battle_intro
+
+ thumb_func_start sub_8159D90
+sub_8159D90: @ 8159D90
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_03005D70
+ ldr r4, =gActiveBank
+ ldrb r1, [r4]
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, =gPlayerParty
+ adds r1, r2
+ movs r2, 0xA
+ bl healthbar_draw_field_maybe
+ ldrb r0, [r4]
+ bl sub_8076918
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_80729D0
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_81595AC
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8159D90
+
+ thumb_func_start sub_8159DEC
+sub_8159DEC: @ 8159DEC
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159DEC
+
+ thumb_func_start sub_8159DF8
+sub_8159DF8: @ 8159DF8
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159DF8
+
+ thumb_func_start sub_8159E04
+sub_8159E04: @ 8159E04
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159E04
+
+ thumb_func_start sub_8159E10
+sub_8159E10: @ 8159E10
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159E10
+
+ thumb_func_start sub_8159E1C
+sub_8159E1C: @ 8159E1C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r5, =gBattleBufferA
+ ldr r6, =gActiveBank
+ ldrb r2, [r6]
+ lsls r1, r2, 9
+ adds r0, r5, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r0, r5, 0x2
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r5, 0x3
+ adds r1, r5
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r4, r0
+ str r4, [sp]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ bl move_anim_start_t3
+ lsls r0, 24
+ cmp r0, 0
+ beq _08159E5C
+ bl SafariBufferExecCompleted
+ b _08159E68
+ .pool
+_08159E5C:
+ ldr r0, =gBattleBankFunc
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, =sub_81596D4
+ str r0, [r1]
+_08159E68:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8159E1C
+
+ thumb_func_start sub_8159E78
+sub_8159E78: @ 8159E78
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159E78
+
+ thumb_func_start sub_8159E84
+sub_8159E84: @ 8159E84
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159E84
+
+ thumb_func_start sub_8159E90
+sub_8159E90: @ 8159E90
+ push {r4,lr}
+ ldr r2, =gBattleOutcome
+ ldr r1, =gBattleBufferA
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ movs r0, 0x5
+ bl FadeOutMapMusic
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ bl SafariBufferExecCompleted
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x6
+ ands r0, r1
+ cmp r0, 0x2
+ bne _08159ECC
+ ldr r0, =gBattleBankFunc
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, =sub_81595E4
+ str r0, [r1]
+_08159ECC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8159E90
+
+ thumb_func_start nullsub_115
+nullsub_115: @ 8159EEC
+ bx lr
+ thumb_func_end nullsub_115
+
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_controller_wally.s b/asm/battle_controller_wally.s
index 895b0711c..e91f7d858 100644
--- a/asm/battle_controller_wally.s
+++ b/asm/battle_controller_wally.s
@@ -3603,7 +3603,7 @@ sub_816A3B8: @ 816A3B8
ldr r1, =gUnknown_02023066
adds r0, r1
ldrh r0, [r0]
- bl battle_pick_message
+ bl BufferStringBattle
ldr r0, =gUnknown_02022E2C
movs r1, 0
bl battle_show_message_maybe
@@ -4296,7 +4296,7 @@ sub_816A90C: @ 816A90C
lsls r0, 2
adds r0, r5
ldr r1, =sub_805CC00
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldrb r0, [r7]
adds r0, r6
ldrb r1, [r0]
diff --git a/asm/battle_message.s b/asm/battle_message.s
index 6bd3f6835..ef8849b82 100644
--- a/asm/battle_message.s
+++ b/asm/battle_message.s
@@ -5,8 +5,8 @@
.text
- thumb_func_start battle_pick_message
-battle_pick_message: @ 814E0C4
+ thumb_func_start BufferStringBattle
+BufferStringBattle: @ 814E0C4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -15,7 +15,7 @@ battle_pick_message: @ 814E0C4
lsls r0, 16
lsrs r6, r0, 16
movs r7, 0
- ldr r4, =gUnknown_0203ABA8
+ ldr r4, =gStringInfo
ldr r0, =gActiveBank
mov r8, r0
ldrb r1, [r0]
@@ -23,7 +23,7 @@ battle_pick_message: @ 814E0C4
ldr r0, =gUnknown_02023068
adds r1, r0
str r1, [r4]
- ldr r2, =gUnknown_02024208
+ ldr r2, =gLastUsedItem
ldrh r0, [r1, 0x4]
strh r0, [r2]
ldr r2, =gLastUsedAbility
@@ -55,7 +55,7 @@ battle_pick_message: @ 814E0C4
mov r9, r5
ldr r1, =gBattleTextBuff1
mov r10, r1
- ldr r3, =gUnknown_0203ABA4
+ ldr r3, =gAbilitiesPerBank
_0814E126:
adds r0, r2, r3
ldr r1, [r4]
@@ -69,9 +69,9 @@ _0814E126:
movs r2, 0
ldr r0, =gBattleTextBuff1
mov r8, r0
- ldr r3, =gUnknown_0203ABA8
+ ldr r3, =gStringInfo
ldr r5, =gBattleTextBuff2
- ldr r4, =gUnknown_02022F78
+ ldr r4, =gBattleTextBuff3
_0814E144:
mov r0, r8
adds r1, r2, r0
@@ -145,7 +145,7 @@ _0814E200:
b _0814E6D8
.pool
_0814E214:
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
movs r0, 0xC0
lsls r0, 4
@@ -302,7 +302,7 @@ _0814E368:
ands r1, r0
cmp r1, 0
beq _0814E380
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
movs r0, 0xC0
lsls r0, 4
@@ -353,7 +353,7 @@ _0814E3E0:
b _0814E6D8
.pool
_0814E3EC:
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 4
@@ -444,7 +444,7 @@ _0814E4AC:
b _0814E6D8
.pool
_0814E4BC:
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
movs r0, 0xC0
lsls r0, 4
@@ -475,7 +475,7 @@ _0814E4F2:
_0814E4F8:
mov r0, r10
bl sub_814F8F8
- ldr r0, =gUnknown_0203ABA8
+ ldr r0, =gStringInfo
ldr r2, [r0]
ldrh r1, [r2]
movs r0, 0xB1
@@ -609,7 +609,7 @@ _0814E630:
b _0814E6D8
.pool
_0814E638:
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
movs r0, 0xC0
lsls r0, 4
@@ -697,7 +697,7 @@ _0814E6DE:
pop {r0}
bx r0
.pool
- thumb_func_end battle_pick_message
+ thumb_func_end BufferStringBattle
thumb_func_start get_battle_strings_
get_battle_strings_: @ 814E6F0
@@ -895,7 +895,7 @@ _0814E8CE:
b _0814E8EE
.pool
_0814E8E4:
- ldr r1, =gUnknown_02022F78
+ ldr r1, =gBattleTextBuff3
ldrb r0, [r1]
cmp r0, 0xFD
bne _0814E904
@@ -1544,7 +1544,7 @@ _0814EF32:
b _0814F5BE
.pool
_0814EF44:
- ldr r0, =gUnknown_0203ABA8
+ ldr r0, =gStringInfo
ldr r2, [r0]
ldrh r1, [r2]
movs r0, 0xB1
@@ -1555,7 +1555,7 @@ _0814EF44:
b _0814EF8A
.pool
_0814EF5C:
- ldr r0, =gUnknown_0203ABA8
+ ldr r0, =gStringInfo
ldr r2, [r0]
ldrh r1, [r2, 0x2]
movs r0, 0xB1
@@ -1589,7 +1589,7 @@ _0814EF98:
ands r0, r1
cmp r0, 0
beq _0814F06E
- ldr r2, =gUnknown_02024208
+ ldr r2, =gLastUsedItem
ldrh r0, [r2]
cmp r0, 0xAF
bne _0814F064
@@ -1667,7 +1667,7 @@ _0814F064:
bl CopyItemName
b _0814F5BE
_0814F06E:
- ldr r0, =gUnknown_02024208
+ ldr r0, =gLastUsedItem
ldrh r0, [r0]
mov r1, sp
bl CopyItemName
@@ -1678,23 +1678,23 @@ _0814F080:
b _0814F0C0
.pool
_0814F088:
- ldr r1, =gUnknown_0203ABA4
+ ldr r1, =gAbilitiesPerBank
ldr r0, =gBankAttacker
b _0814F0BC
.pool
_0814F098:
- ldr r1, =gUnknown_0203ABA4
+ ldr r1, =gAbilitiesPerBank
ldr r0, =gBankTarget
b _0814F0BC
.pool
_0814F0A8:
- ldr r1, =gUnknown_0203ABA4
+ ldr r1, =gAbilitiesPerBank
ldr r0, =gBattleScripting
ldrb r0, [r0, 0x17]
b _0814F0BE
.pool
_0814F0B8:
- ldr r1, =gUnknown_0203ABA4
+ ldr r1, =gAbilitiesPerBank
ldr r0, =gUnknown_0202420E
_0814F0BC:
ldrb r0, [r0]
@@ -1720,7 +1720,7 @@ _0814F0D8:
b _0814F59C
.pool
_0814F0F0:
- ldr r3, =gUnknown_02038BCA
+ ldr r3, =gTrainerBattleOpponent_A
ldrh r2, [r3]
movs r0, 0xC0
lsls r0, 4
@@ -1808,7 +1808,7 @@ _0814F178:
b _0814F5BE
.pool
_0814F1AC:
- ldr r3, =gUnknown_02038BCA
+ ldr r3, =gTrainerBattleOpponent_A
ldrh r2, [r3]
movs r0, 0xC0
lsls r0, 4
@@ -1944,7 +1944,7 @@ _0814F2C0:
ands r0, r1
cmp r0, 0
beq _0814F2E0
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
movs r0, 0x2
b _0814F55A
@@ -1955,7 +1955,7 @@ _0814F2E0:
ands r1, r0
cmp r1, 0
beq _0814F2F8
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
movs r0, 0x4
b _0814F584
@@ -1971,7 +1971,7 @@ _0814F300:
ands r0, r1
cmp r0, 0
beq _0814F31C
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
b _0814F556
.pool
_0814F31C:
@@ -1982,7 +1982,7 @@ _0814F31C:
bne _0814F328
b _0814F5C0
_0814F328:
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
b _0814F580
.pool
_0814F330:
@@ -2120,7 +2120,7 @@ _0814F468:
ands r0, r1
cmp r0, 0
beq _0814F484
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
b _0814F596
.pool
_0814F484:
@@ -2129,14 +2129,14 @@ _0814F484:
ands r1, r0
cmp r1, 0
beq _0814F49C
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
ldrh r0, [r0]
bl sub_81D5530
b _0814F59C
.pool
_0814F49C:
ldr r2, =gTrainers
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
ldrh r1, [r0]
lsls r0, r1, 2
adds r0, r1
@@ -2153,7 +2153,7 @@ _0814F4B8:
ands r0, r1
cmp r0, 0
beq _0814F4D4
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
b _0814F5B6
.pool
_0814F4D4:
@@ -2162,14 +2162,14 @@ _0814F4D4:
ands r1, r0
cmp r1, 0
beq _0814F4F0
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
ldrh r1, [r0]
mov r0, sp
bl sub_81D5554
b _0814F5BE
.pool
_0814F4F0:
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
ldrh r1, [r0]
lsls r0, r1, 2
adds r0, r1
@@ -2185,7 +2185,7 @@ _0814F508:
ands r0, r1
cmp r0, 0
beq _0814F528
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
ldrh r1, [r0]
movs r0, 0x2
b _0814F55A
@@ -2196,7 +2196,7 @@ _0814F528:
ands r1, r0
cmp r1, 0
beq _0814F540
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
ldrh r1, [r0]
movs r0, 0x4
b _0814F584
@@ -2212,7 +2212,7 @@ _0814F548:
ands r0, r1
cmp r0, 0
beq _0814F574
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
_0814F556:
ldrh r1, [r0]
movs r0, 0x1
@@ -2227,7 +2227,7 @@ _0814F574:
ands r1, r0
cmp r1, 0
beq _0814F5C0
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
_0814F580:
ldrh r1, [r0]
movs r0, 0x3
@@ -2659,7 +2659,7 @@ sub_814F8F8: @ 814F8F8
push {r4,r5,lr}
adds r4, r0, 0
movs r2, 0
- ldr r5, =gUnknown_0203ABA8
+ ldr r5, =gStringInfo
ldr r3, =gUnknown_085CD336
_0814F902:
cmp r2, 0x4
@@ -2710,7 +2710,7 @@ _0814F95A:
cmp r0, 0xFF
bne _0814F958
ldr r1, =gUnknown_085CD336
- ldr r5, =gUnknown_0203ABA8
+ ldr r5, =gStringInfo
movs r0, 0
lsls r0, 1
adds r2, r0, r1
diff --git a/asm/battle_records.s b/asm/battle_records.s
index f7be16379..b0ba57ef4 100644
--- a/asm/battle_records.s
+++ b/asm/battle_records.s
@@ -507,7 +507,7 @@ sub_813C2F4: @ 813C2F4
str r1, [sp, 0x8]
movs r1, 0x1
adds r2, r4, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r4}
pop {r0}
@@ -544,7 +544,7 @@ sub_813C384: @ 813C384
str r7, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
mov r1, r8
ldrb r0, [r1]
ldr r5, =gUnknown_085B3D8C
@@ -554,7 +554,7 @@ sub_813C384: @ 813C384
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x50
- bl Print
+ bl PrintTextOnWindow
mov r1, r8
ldrb r0, [r1]
str r4, [sp]
@@ -563,7 +563,7 @@ sub_813C384: @ 813C384
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x80
- bl Print
+ bl PrintTextOnWindow
mov r1, r8
ldrb r0, [r1]
str r4, [sp]
@@ -572,7 +572,7 @@ sub_813C384: @ 813C384
movs r1, 0x1
adds r2, r5, 0
movs r3, 0xB0
- bl Print
+ bl PrintTextOnWindow
b _0813C4A8
.pool
_0813C40C:
@@ -601,7 +601,7 @@ _0813C40C:
movs r1, 0x1
ldr r2, =gStringVar1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldrh r1, [r6, 0xA]
ldr r0, =gStringVar1
movs r2, 0x1
@@ -615,7 +615,7 @@ _0813C40C:
movs r1, 0x1
ldr r2, =gStringVar1
movs r3, 0x50
- bl Print
+ bl PrintTextOnWindow
ldrh r1, [r6, 0xC]
ldr r0, =gStringVar1
movs r2, 0x1
@@ -629,7 +629,7 @@ _0813C40C:
movs r1, 0x1
ldr r2, =gStringVar1
movs r3, 0x80
- bl Print
+ bl PrintTextOnWindow
ldrh r1, [r6, 0xE]
ldr r0, =gStringVar1
movs r2, 0x1
@@ -643,7 +643,7 @@ _0813C40C:
movs r1, 0x1
ldr r2, =gStringVar1
movs r3, 0xB0
- bl Print
+ bl PrintTextOnWindow
_0813C4A8:
add sp, 0xC
pop {r3}
@@ -689,7 +689,7 @@ sub_813C4BC: @ 813C4BC
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r2, r5, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, =gSaveBlock1Ptr
mov r8, r0
ldr r0, [r0]
@@ -708,7 +708,7 @@ sub_813C4BC: @ 813C4BC
movs r1, 0x1
adds r2, r5, 0
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
mov r7, r8
movs r6, 0xE0
lsls r6, 19
diff --git a/asm/battle_setup.s b/asm/battle_setup.s
index 1093fa1cb..36f706a0f 100644
--- a/asm/battle_setup.s
+++ b/asm/battle_setup.s
@@ -35,7 +35,7 @@ _080B0614:
strh r0, [r4]
b _080B0652
_080B062E:
- bl sub_8145F20
+ bl IsBattleTransitionDone
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -282,7 +282,7 @@ sub_80B086C: @ 80B086C
movs r1, 0xC4
lsls r1, 1
movs r2, 0x5
- bl sub_8067FF8
+ bl CreateMaleMon
bl script_env_2_enable
ldr r1, =gMain
ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
@@ -1082,7 +1082,7 @@ _080B0F2E:
thumb_func_start reads_trainer_data_byte1_byte0x18
reads_trainer_data_byte1_byte0x18: @ 80B0F34
push {r4-r6,lr}
- ldr r4, =gUnknown_02038BCA
+ ldr r4, =gTrainerBattleOpponent_A
ldrh r1, [r4]
movs r0, 0x80
lsls r0, 3
@@ -1375,7 +1375,7 @@ sub_80B11A8: @ 80B11A8
push {lr}
bl UpdatePaletteFade
bl RunTasks
- bl sub_8145F20
+ bl IsBattleTransitionDone
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1481,7 +1481,7 @@ TrainerBattleLoadArg8: @ 80B1274
thumb_func_start trainerflag_opponent
trainerflag_opponent: @ 80B1278
- ldr r1, =gUnknown_02038BCA
+ ldr r1, =gTrainerBattleOpponent_A
movs r2, 0xA0
lsls r2, 3
adds r0, r2, 0
@@ -1495,7 +1495,7 @@ trainerflag_opponent: @ 80B1278
thumb_func_start sub_80B1290
sub_80B1290: @ 80B1290
- ldr r1, =gUnknown_02038BCC
+ ldr r1, =gTrainerBattleOpponent_B
movs r2, 0xA0
lsls r2, 3
adds r0, r2, 0
@@ -1540,10 +1540,10 @@ _080B12E2:
thumb_func_start ResetTrainerOpponentIds
ResetTrainerOpponentIds: @ 80B12E8
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
movs r1, 0
strh r1, [r0]
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
strh r1, [r0]
bx lr
.pool
@@ -1765,7 +1765,7 @@ _080B14EC:
adds r1, r5, 0
bl TrainerBattleLoadArgs
bl battle_80801F0
- ldr r4, =gUnknown_02038BCA
+ ldr r4, =gTrainerBattleOpponent_A
ldrh r0, [r4]
bl sub_80B2234
strh r0, [r4]
@@ -1777,7 +1777,7 @@ _080B1514:
adds r1, r5, 0
bl TrainerBattleLoadArgs
bl battle_80801F0
- ldr r4, =gUnknown_02038BCA
+ ldr r4, =gTrainerBattleOpponent_A
ldrh r0, [r4]
bl sub_80B2234
strh r0, [r4]
@@ -1796,7 +1796,7 @@ _080B153C:
ldr r0, =gScriptLastTalked
ldrb r0, [r0]
bl sub_81A9AA8
- ldr r1, =gUnknown_02038BCA
+ ldr r1, =gTrainerBattleOpponent_A
b _080B157E
.pool
_080B156C:
@@ -1807,7 +1807,7 @@ _080B156C:
ldrb r0, [r0]
bl sub_81A9AA8
_080B157C:
- ldr r1, =gUnknown_02038BCC
+ ldr r1, =gTrainerBattleOpponent_B
_080B157E:
strh r0, [r1]
b _080B161C
@@ -1836,7 +1836,7 @@ _080B15A8:
ldr r0, =gScriptLastTalked
ldrb r0, [r0]
bl battle_init
- ldr r1, =gUnknown_02038BCA
+ ldr r1, =gTrainerBattleOpponent_A
b _080B157E
.pool
_080B15D8:
@@ -1894,7 +1894,7 @@ SingleTrainerWantsBattle: @ 80B162C
adds r0, r1, 0
bl TrainerBattleConfigure
ldr r0, =gUnknown_08271354
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
bl script_env_2_enable
pop {r4}
pop {r0}
@@ -1932,7 +1932,7 @@ TwoTrainersWantBattle: @ 80B1670
TwoTrainersWantBattleExecuteScript: @ 80B16A4
push {lr}
ldr r0, =gUnknown_08271354
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
bl script_env_2_enable
pop {r0}
bx r0
@@ -2027,7 +2027,7 @@ _080B1752:
thumb_func_start rom_npc_set_flag_for_script_id
rom_npc_set_flag_for_script_id: @ 80B1760
push {lr}
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
ldrh r0, [r0]
cmp r0, 0
beq _080B1776
@@ -2134,18 +2134,18 @@ _080B1800:
bl sub_816306C
ldr r4, =gUnknown_020247A8
adds r0, r4, 0
- bl zero_pokemon_struct
+ bl ZeroMonData
adds r0, r4, 0
adds r0, 0x64
- bl zero_pokemon_struct
+ bl ZeroMonData
movs r1, 0x96
lsls r1, 1
adds r0, r4, r1
- bl zero_pokemon_struct
+ bl ZeroMonData
movs r1, 0xC8
lsls r1, 1
adds r0, r4, r1
- bl zero_pokemon_struct
+ bl ZeroMonData
b _080B187A
.pool
_080B1864:
@@ -2153,10 +2153,10 @@ _080B1864:
bl sub_8163048
ldr r4, =gUnknown_020247A8
adds r0, r4, 0
- bl zero_pokemon_struct
+ bl ZeroMonData
adds r4, 0x64
adds r0, r4, 0
- bl zero_pokemon_struct
+ bl ZeroMonData
_080B187A:
bl sub_81A9B04
b _080B18B8
@@ -2222,7 +2222,7 @@ _080B190C:
thumb_func_start sub_80B1918
sub_80B1918: @ 80B1918
push {lr}
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 3
@@ -2273,7 +2273,7 @@ _080B198A:
thumb_func_start sub_80B1994
sub_80B1994: @ 80B1994
push {lr}
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 3
@@ -2481,11 +2481,11 @@ SetUpTrainerEncounterMusic: @ 80B1B70
ldrb r0, [r0]
cmp r0, 0
bne _080B1B88
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
b _080B1B8A
.pool
_080B1B88:
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
_080B1B8A:
ldrh r1, [r0]
ldr r0, =gUnknown_02038BC8
@@ -2620,7 +2620,7 @@ _080B1C96:
thumb_func_start sub_80B1CA4
sub_80B1CA4: @ 80B1CA4
push {r4,lr}
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 3
@@ -3202,7 +3202,7 @@ sub_80B20BC: @ 80B20BC
lsls r0, 24
cmp r0, 0
beq _080B20E2
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r0, [r0]
bl sub_80B208C
adds r1, r0, 0
@@ -3423,7 +3423,7 @@ sub_80B2250: @ 80B2250
sub_80B226C: @ 80B226C
push {r4,r5,lr}
ldr r5, =gUnknown_085500A4
- ldr r4, =gUnknown_02038BCA
+ ldr r4, =gTrainerBattleOpponent_A
ldrh r1, [r4]
adds r0, r5, 0
bl sub_80B1F38
@@ -3449,7 +3449,7 @@ _080B229A:
sub_80B22A0: @ 80B22A0
push {lr}
ldr r0, =gUnknown_085500A4
- ldr r1, =gUnknown_02038BCA
+ ldr r1, =gTrainerBattleOpponent_A
ldrh r1, [r1]
bl sub_80B1F74
lsls r0, 24
@@ -3463,7 +3463,7 @@ sub_80B22A0: @ 80B22A0
sub_80B22BC: @ 80B22BC
push {lr}
ldr r0, =gUnknown_085500A4
- ldr r1, =gUnknown_02038BCA
+ ldr r1, =gTrainerBattleOpponent_A
ldrh r1, [r1]
bl sub_80B205C
bl rom_npc_set_flag_for_script_id
diff --git a/asm/battle_transition.s b/asm/battle_transition.s
index b6b0e3bf5..9709fb54f 100644
--- a/asm/battle_transition.s
+++ b/asm/battle_transition.s
@@ -4,6 +4,58 @@
.syntax unified
.text
+
+ thumb_func_start CB2_TestBattleTransition
+CB2_TestBattleTransition: @ 8145E84
+ push {r4,lr}
+ ldr r4, =sTestingTransitionState
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08145E98
+ cmp r0, 0x1
+ beq _08145EAC
+ b _08145EC0
+ .pool
+_08145E98:
+ ldr r0, =sTestingTransitionId
+ ldrb r0, [r0]
+ bl LaunchBattleTransitionTask
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _08145EC0
+ .pool
+_08145EAC:
+ bl IsBattleTransitionDone
+ lsls r0, 24
+ cmp r0, 0
+ beq _08145EC0
+ movs r0, 0
+ strb r0, [r4]
+ ldr r0, =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+_08145EC0:
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end CB2_TestBattleTransition
+
+ thumb_func_start TestBattleTransition
+TestBattleTransition: @ 8145EDC
+ push {lr}
+ ldr r1, =sTestingTransitionId
+ strb r0, [r1]
+ ldr r0, =CB2_TestBattleTransition
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end TestBattleTransition
thumb_func_start sub_8145EF4
sub_8145EF4: @ 8145EF4
@@ -13,7 +65,7 @@ sub_8145EF4: @ 8145EF4
ldr r2, =gMain
ldr r1, =sub_8085E50
str r1, [r2, 0x4]
- bl sub_8145F6C
+ bl LaunchBattleTransitionTask
pop {r0}
bx r0
.pool
@@ -24,15 +76,15 @@ sub_8145F10: @ 8145F10
push {lr}
lsls r0, 24
lsrs r0, 24
- bl sub_8145F6C
+ bl LaunchBattleTransitionTask
pop {r0}
bx r0
thumb_func_end sub_8145F10
- thumb_func_start sub_8145F20
-sub_8145F20: @ 8145F20
+ thumb_func_start IsBattleTransitionDone
+IsBattleTransitionDone: @ 8145F20
push {r4,lr}
- ldr r0, =sub_8145FA8
+ ldr r0, =Task_BattleTransitionMain
bl FindTaskIdByFunc
lsls r0, 24
lsrs r2, r0, 24
@@ -51,7 +103,7 @@ sub_8145F20: @ 8145F20
_08145F4C:
adds r0, r2, 0
bl DestroyTask
- ldr r4, =gUnknown_0203ABA0
+ ldr r4, =sTransitionStructPtr
ldr r0, [r4]
bl Free
movs r0, 0
@@ -62,15 +114,15 @@ _08145F60:
pop {r1}
bx r1
.pool
- thumb_func_end sub_8145F20
+ thumb_func_end IsBattleTransitionDone
- thumb_func_start sub_8145F6C
-sub_8145F6C: @ 8145F6C
+ thumb_func_start LaunchBattleTransitionTask
+LaunchBattleTransitionTask: @ 8145F6C
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, =sub_8145FA8
+ ldr r0, =Task_BattleTransitionMain
movs r1, 0x2
bl CreateTask
lsls r0, 24
@@ -81,7 +133,7 @@ sub_8145F6C: @ 8145F6C
lsls r1, 3
adds r1, r2
strh r4, [r1, 0xA]
- ldr r4, =gUnknown_0203ABA0
+ ldr r4, =sTransitionStructPtr
movs r0, 0x3C
bl AllocZeroed
str r0, [r4]
@@ -89,10 +141,10 @@ sub_8145F6C: @ 8145F6C
pop {r0}
bx r0
.pool
- thumb_func_end sub_8145F6C
+ thumb_func_end LaunchBattleTransitionTask
- thumb_func_start sub_8145FA8
-sub_8145FA8: @ 8145FA8
+ thumb_func_start Task_BattleTransitionMain
+Task_BattleTransitionMain: @ 8145FA8
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
@@ -117,7 +169,7 @@ _08145FBA:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8145FA8
+ thumb_func_end Task_BattleTransitionMain
thumb_func_start sub_8145FE0
sub_8145FE0: @ 8145FE0
@@ -445,7 +497,7 @@ sub_814623C: @ 814623C
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, =gUnknown_020393A8
- ldr r1, =gUnknown_0203ABA0
+ ldr r1, =sTransitionStructPtr
ldr r1, [r1]
movs r2, 0x14
ldrsh r1, [r1, r2]
@@ -476,7 +528,7 @@ sub_814623C: @ 814623C
sub_81462A8: @ 81462A8
push {r4,r5,lr}
sub sp, 0x8
- ldr r4, =gUnknown_0203ABA0
+ ldr r4, =sTransitionStructPtr
ldr r2, [r4]
ldrb r1, [r2]
movs r1, 0
@@ -530,7 +582,7 @@ _081462FA:
sub_8146320: @ 8146320
push {lr}
bl sub_8149F2C
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, 0
@@ -615,7 +667,7 @@ sub_81463BC: @ 81463BC
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldr r0, =gUnknown_020393A8
movs r2, 0x16
@@ -643,7 +695,7 @@ sub_81463BC: @ 81463BC
thumb_func_start sub_8146420
sub_8146420: @ 8146420
push {r4-r7,lr}
- ldr r1, =gUnknown_0203ABA0
+ ldr r1, =sTransitionStructPtr
ldr r2, [r1]
ldrb r1, [r2]
movs r1, 0
@@ -669,7 +721,7 @@ _08146448:
ldr r1, =gUnknown_02038C28
lsls r2, r5, 1
adds r2, r1
- ldr r6, =gUnknown_0203ABA0
+ ldr r6, =sTransitionStructPtr
ldr r1, [r6]
ldrh r1, [r1, 0x16]
adds r0, r1
@@ -712,7 +764,7 @@ _0814648E:
sub_81464B0: @ 81464B0
push {lr}
bl sub_8149F2C
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, 0
@@ -964,7 +1016,7 @@ sub_814669C: @ 814669C
movs r0, 0x80
lsls r0, 7
strh r0, [r4, 0x12]
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r2, [r0]
movs r0, 0x3F
strh r0, [r2, 0x2]
@@ -1583,7 +1635,7 @@ sub_8146BF8: @ 8146BF8
push {r4,r5,lr}
sub sp, 0x8
adds r3, r0, 0
- ldr r2, =gUnknown_0203ABA0
+ ldr r2, =sTransitionStructPtr
ldr r1, [r2]
ldrb r0, [r1]
movs r0, 0
@@ -1657,7 +1709,7 @@ sub_8146C8C: @ 8146C8C
push {r4,r5,lr}
sub sp, 0x8
adds r3, r0, 0
- ldr r2, =gUnknown_0203ABA0
+ ldr r2, =sTransitionStructPtr
ldr r1, [r2]
ldrb r0, [r1]
movs r0, 0
@@ -1731,7 +1783,7 @@ sub_8146D20: @ 8146D20
push {r4-r7,lr}
sub sp, 0x8
adds r4, r0, 0
- ldr r7, =gUnknown_0203ABA0
+ ldr r7, =sTransitionStructPtr
ldr r0, [r7]
ldrb r1, [r0]
movs r6, 0
@@ -1847,7 +1899,7 @@ _08146DEE:
sub_8146DF8: @ 8146DF8
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r0, [r0]
ldrb r1, [r0]
movs r3, 0
@@ -1918,7 +1970,7 @@ _08146E90:
ldr r0, =sub_8146F68
bl SetVBlankCallback
_08146EA4:
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldrb r0, [r1]
adds r0, 0x1
@@ -1946,7 +1998,7 @@ sub_8146EC0: @ 8146EC0
strh r0, [r1, 0xA]
ldrh r0, [r1, 0xA]
bl sub_8149F2C
- ldr r2, =gUnknown_0203ABA0
+ ldr r2, =sTransitionStructPtr
ldr r0, [r2]
ldrb r0, [r0]
cmp r0, 0
@@ -2347,7 +2399,7 @@ sub_814723C: @ 814723C
adds r4, r0, 0
bl sub_8149F08
bl dp12_8087EA4
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
movs r0, 0
strh r0, [r1, 0x2]
@@ -2371,7 +2423,7 @@ _08147262:
bls _08147262
ldr r0, =sub_8147688
bl SetVBlankCallback
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
movs r0, 0x78
strh r0, [r1, 0x2C]
@@ -2390,7 +2442,7 @@ sub_81472A4: @ 81472A4
push {r4-r7,lr}
sub sp, 0xC
adds r6, r0, 0
- ldr r2, =gUnknown_0203ABA0
+ ldr r2, =sTransitionStructPtr
ldr r1, [r2]
ldrb r0, [r1]
movs r0, 0
@@ -2411,7 +2463,7 @@ sub_81472A4: @ 81472A4
bl sub_814A1AC
ldr r5, =gUnknown_02038C28
_081472D4:
- ldr r4, =gUnknown_0203ABA0
+ ldr r4, =sTransitionStructPtr
ldr r0, [r4]
movs r7, 0x2A
ldrsh r3, [r0, r7]
@@ -2469,7 +2521,7 @@ sub_8147334: @ 8147334
add r1, sp, 0xC
movs r0, 0
strb r0, [r1]
- ldr r4, =gUnknown_0203ABA0
+ ldr r4, =sTransitionStructPtr
ldr r1, [r4]
ldrb r0, [r1]
movs r0, 0
@@ -2548,7 +2600,7 @@ _081473DE:
cmp r0, r2
bge _08147406
adds r3, r4, 0
- ldr r5, =gUnknown_0203ABA0
+ ldr r5, =sTransitionStructPtr
_081473EA:
ldr r2, [r5]
ldrh r0, [r2, 0x2A]
@@ -2587,7 +2639,7 @@ sub_8147428: @ 8147428
push {r4-r6,lr}
sub sp, 0xC
adds r6, r0, 0
- ldr r2, =gUnknown_0203ABA0
+ ldr r2, =sTransitionStructPtr
ldr r1, [r2]
ldrb r0, [r1]
movs r0, 0
@@ -2607,7 +2659,7 @@ sub_8147428: @ 8147428
bl sub_814A1AC
ldr r5, =gUnknown_02038C28
_08147456:
- ldr r4, =gUnknown_0203ABA0
+ ldr r4, =sTransitionStructPtr
ldr r0, [r4]
movs r1, 0x2A
ldrsh r3, [r0, r1]
@@ -2663,7 +2715,7 @@ sub_81474B0: @ 81474B0
add r1, sp, 0xC
movs r0, 0
strb r0, [r1]
- ldr r4, =gUnknown_0203ABA0
+ ldr r4, =sTransitionStructPtr
ldr r1, [r4]
ldrb r0, [r1]
movs r0, 0
@@ -2683,7 +2735,7 @@ sub_81474B0: @ 81474B0
bl sub_814A1AC
ldr r7, =gUnknown_02038C28
mov r10, r7
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
mov r8, r0
add r6, sp, 0xC
_081474F4:
@@ -2745,7 +2797,7 @@ _0814755E:
ble _08147588
ldr r6, =gUnknown_02038C28
adds r3, r1, 0
- ldr r5, =gUnknown_0203ABA0
+ ldr r5, =sTransitionStructPtr
_0814756C:
ldr r2, [r5]
ldrh r0, [r2, 0x2A]
@@ -2762,7 +2814,7 @@ _0814756C:
cmp r1, r0
bgt _0814756C
_08147588:
- ldr r7, =gUnknown_0203ABA0
+ ldr r7, =sTransitionStructPtr
ldr r0, [r7]
ldrb r1, [r0]
adds r1, 0x1
@@ -2785,7 +2837,7 @@ sub_81475B0: @ 81475B0
push {r4-r7,lr}
sub sp, 0xC
adds r7, r0, 0
- ldr r1, =gUnknown_0203ABA0
+ ldr r1, =sTransitionStructPtr
ldr r0, [r1]
ldrb r2, [r0]
movs r2, 0
@@ -2805,7 +2857,7 @@ sub_81475B0: @ 81475B0
ldr r6, =gUnknown_02038C28
_081475DC:
movs r2, 0x78
- ldr r5, =gUnknown_0203ABA0
+ ldr r5, =sTransitionStructPtr
ldr r3, [r5]
ldrh r4, [r3, 0x28]
movs r1, 0x28
@@ -2896,7 +2948,7 @@ sub_8147688: @ 8147688
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xA]
bl sub_8149F2C
- ldr r3, =gUnknown_0203ABA0
+ ldr r3, =sTransitionStructPtr
ldr r0, [r3]
ldrb r0, [r0]
cmp r0, 0
@@ -2976,7 +3028,7 @@ sub_8147750: @ 8147750
bl dp12_8087EA4
movs r2, 0
ldr r4, =gUnknown_020393A8
- ldr r3, =gUnknown_0203ABA0
+ ldr r3, =sTransitionStructPtr
_08147762:
lsls r1, r2, 1
adds r1, r4
@@ -3011,7 +3063,7 @@ sub_81477A8: @ 81477A8
push {r7}
sub sp, 0x4
adds r6, r0, 0
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldrb r0, [r1]
movs r0, 0
@@ -3046,7 +3098,7 @@ _081477E8:
ldr r1, =gUnknown_02038C28
lsls r2, r5, 1
adds r2, r1
- ldr r1, =gUnknown_0203ABA0
+ ldr r1, =sTransitionStructPtr
ldr r1, [r1]
ldrh r1, [r1, 0x16]
adds r0, r1
@@ -3095,7 +3147,7 @@ _08147838:
lsrs r0, 24
bl DestroyTask
_0814785A:
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldrb r0, [r1]
adds r0, 0x1
@@ -3115,7 +3167,7 @@ _0814785A:
sub_8147888: @ 8147888
push {lr}
bl sub_8149F2C
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, 0
@@ -3191,7 +3243,7 @@ sub_8147924: @ 8147924
adds r4, r0, 0
bl sub_8149F08
bl dp12_8087EA4
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
movs r2, 0
movs r0, 0x3F
@@ -3231,7 +3283,7 @@ sub_814797C: @ 814797C
mov r7, r8
push {r7}
adds r4, r0, 0
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldrb r0, [r1]
movs r0, 0
@@ -3292,7 +3344,7 @@ _081479D8:
adds r0, 0x1
strh r0, [r4, 0x8]
_081479F6:
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldrb r0, [r1]
adds r0, 0x1
@@ -3346,7 +3398,7 @@ sub_8147A58: @ 8147A58
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xA]
bl sub_8149F2C
- ldr r3, =gUnknown_0203ABA0
+ ldr r3, =sTransitionStructPtr
ldr r0, [r3]
ldrb r0, [r0]
cmp r0, 0
@@ -3517,7 +3569,7 @@ sub_8147BBC: @ 8147BBC
strh r0, [r4, 0xC]
movs r0, 0xEF
strh r0, [r4, 0xE]
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
movs r0, 0x3F
strh r0, [r1, 0x2]
@@ -3638,7 +3690,7 @@ _08147C7E:
sub_8147CE4: @ 8147CE4
push {r4-r7,lr}
adds r4, r0, 0
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldrb r0, [r1]
movs r0, 0
@@ -3741,7 +3793,7 @@ _08147D9A:
adds r0, 0x1
strh r0, [r4, 0x8]
_08147DA6:
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldrh r0, [r1, 0x18]
subs r0, 0x8
@@ -3764,7 +3816,7 @@ _08147DA6:
sub_8147DD0: @ 8147DD0
push {r4,r5,lr}
adds r4, r0, 0
- ldr r2, =gUnknown_0203ABA0
+ ldr r2, =sTransitionStructPtr
ldr r1, [r2]
ldrb r0, [r1]
movs r0, 0
@@ -3823,7 +3875,7 @@ _08147DE4:
sub_8147E4C: @ 8147E4C
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldrh r0, [r1, 0x18]
subs r0, 0x8
@@ -3857,7 +3909,7 @@ sub_8147E88: @ 8147E88
mov r7, r8
push {r7}
adds r6, r0, 0
- ldr r7, =gUnknown_0203ABA0
+ ldr r7, =sTransitionStructPtr
ldr r1, [r7]
ldrh r0, [r1, 0x18]
subs r0, 0x8
@@ -3934,7 +3986,7 @@ _08147F1C:
sub_8147F40: @ 8147F40
push {r4-r7,lr}
adds r4, r0, 0
- ldr r2, =gUnknown_0203ABA0
+ ldr r2, =sTransitionStructPtr
ldr r1, [r2]
ldrb r0, [r1]
movs r0, 0
@@ -4041,7 +4093,7 @@ _08147FEA:
sub_8148008: @ 8148008
push {r4-r6,lr}
adds r4, r0, 0
- ldr r5, =gUnknown_0203ABA0
+ ldr r5, =sTransitionStructPtr
ldr r0, [r5]
ldrb r1, [r0]
movs r6, 0
@@ -4069,7 +4121,7 @@ sub_8148008: @ 8148008
sub_8148040: @ 8148040
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, =gUnknown_0203ABA0
+ ldr r5, =sTransitionStructPtr
ldr r1, [r5]
ldrb r0, [r1]
movs r0, 0
@@ -4144,7 +4196,7 @@ sub_81480CC: @ 81480CC
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xA]
bl sub_8149F2C
- ldr r3, =gUnknown_0203ABA0
+ ldr r3, =sTransitionStructPtr
ldr r0, [r3]
ldrb r0, [r0]
cmp r0, 0
@@ -4200,7 +4252,7 @@ sub_8148160: @ 8148160
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xA]
bl sub_8149F2C
- ldr r2, =gUnknown_0203ABA0
+ ldr r2, =sTransitionStructPtr
ldr r0, [r2]
ldrb r0, [r0]
cmp r0, 0
@@ -4241,14 +4293,14 @@ sub_81481E0: @ 81481E0
cmp r0, 0x4F
bhi _08148200
ldr r1, =0x04000010
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r0, [r0]
ldrh r0, [r0, 0x18]
b _08148208
.pool
_08148200:
ldr r1, =0x04000010
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r0, [r0]
ldrh r0, [r0, 0x1A]
_08148208:
@@ -4653,7 +4705,7 @@ sub_8148508: @ 8148508
strh r0, [r5, 0xC]
movs r0, 0x1
strh r0, [r5, 0xE]
- ldr r2, =gUnknown_0203ABA0
+ ldr r2, =sTransitionStructPtr
ldr r1, [r2]
movs r0, 0x3F
strh r0, [r1, 0x2]
@@ -4706,7 +4758,7 @@ sub_8148590: @ 8148590
mov r7, r8
push {r7}
adds r3, r0, 0
- ldr r2, =gUnknown_0203ABA0
+ ldr r2, =sTransitionStructPtr
ldr r1, [r2]
ldrb r0, [r1]
movs r0, 0
@@ -4847,7 +4899,7 @@ sub_814869C: @ 814869C
ldrh r0, [r4, 0xA]
bl sub_8149F2C
ldr r2, =0x04000048
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldrh r0, [r1, 0x2]
strh r0, [r2]
@@ -4948,7 +5000,7 @@ sub_8148798: @ 8148798
adds r6, r0, 0
bl sub_8149F08
bl dp12_8087EA4
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
movs r2, 0
movs r0, 0x3F
@@ -4969,7 +5021,7 @@ _081487CC:
lsls r2, r4, 1
mov r7, r12
adds r1, r2, r7
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r3, [r0]
ldrh r0, [r3, 0x14]
strh r0, [r1]
@@ -5052,7 +5104,7 @@ sub_8148864: @ 8148864
adds r0, r4, 0
movs r2, 0x4
bl memcpy
- ldr r2, =gUnknown_0203ABA0
+ ldr r2, =sTransitionStructPtr
ldr r1, [r2]
ldrb r0, [r1]
movs r0, 0
@@ -5147,7 +5199,7 @@ _08148940:
adds r2, r0, r1
ldr r1, =gUnknown_02038D68
adds r3, r0, r1
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldrh r0, [r4]
ldrh r1, [r1, 0x14]
@@ -5251,7 +5303,7 @@ _08148A18:
adds r2, r0, r1
ldr r1, =gUnknown_02038D68
adds r3, r0, r1
- ldr r1, =gUnknown_0203ABA0
+ ldr r1, =sTransitionStructPtr
ldr r0, [r1]
ldrh r1, [r0, 0x14]
ldrh r0, [r4]
@@ -5322,7 +5374,7 @@ _08148A98:
adds r0, 0x1
strh r0, [r3, 0x8]
_08148AA6:
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldrb r0, [r1]
adds r0, 0x1
@@ -5463,7 +5515,7 @@ sub_8148BC4: @ 8148BC4
adds r5, r0, 0
bl sub_8149F08
bl dp12_8087EA4
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
movs r0, 0
strh r0, [r1, 0x2]
@@ -5530,7 +5582,7 @@ sub_8148C28: @ 8148C28
b _08148CDE
.pool
_08148C6C:
- ldr r5, =gUnknown_0203ABA0
+ ldr r5, =sTransitionStructPtr
ldr r1, [r5]
ldrb r0, [r1]
movs r0, 0
@@ -5595,7 +5647,7 @@ _08148CDE:
sub_8148CE8: @ 8148CE8
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, =gUnknown_0203ABA0
+ ldr r6, =sTransitionStructPtr
ldr r0, [r6]
ldrb r1, [r0]
movs r5, 0
@@ -5660,7 +5712,7 @@ _08148D4C:
sub_8148D6C: @ 8148D6C
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldrb r0, [r1]
movs r0, 0
@@ -5754,7 +5806,7 @@ _08148E28:
adds r0, 0x1
strh r0, [r4, 0x14]
_08148E3C:
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldrb r0, [r1]
adds r0, 0x1
@@ -6342,7 +6394,7 @@ sub_81492B4: @ 81492B4
movs r2, 0x80
lsls r2, 5
bl CpuSet
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
movs r0, 0
strh r0, [r1, 0x20]
@@ -6491,7 +6543,7 @@ sub_8149410: @ 8149410
ands r0, r1
cmp r0, 0
bne _0814942E
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
movs r0, 0x1
strh r0, [r1, 0x20]
@@ -6557,7 +6609,7 @@ _0814949A:
asrs r0, 16
cmp r0, 0x27
ble _081494F0
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
movs r0, 0
strh r0, [r1, 0x2]
@@ -6614,7 +6666,7 @@ sub_8149508: @ 8149508
strh r0, [r1, 0xA]
ldrh r0, [r1, 0xA]
bl sub_8149F2C
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r0, [r0]
movs r1, 0x20
ldrsh r0, [r0, r1]
@@ -6677,7 +6729,7 @@ sub_81495B0: @ 81495B0
adds r5, r0, 0
bl sub_8149F08
bl dp12_8087EA4
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
movs r2, 0
movs r0, 0xBF
@@ -6782,7 +6834,7 @@ _0814963C:
sub_814969C: @ 814969C
push {r4,lr}
adds r4, r0, 0
- ldr r2, =gUnknown_0203ABA0
+ ldr r2, =sTransitionStructPtr
ldr r1, [r2]
ldrb r0, [r1]
movs r0, 0
@@ -6812,7 +6864,7 @@ _081496C6:
sub_81496D8: @ 81496D8
push {r4-r6,lr}
adds r6, r0, 0
- ldr r4, =gUnknown_0203ABA0
+ ldr r4, =sTransitionStructPtr
ldr r0, [r4]
ldrb r1, [r0]
movs r5, 0
@@ -6854,7 +6906,7 @@ sub_81496D8: @ 81496D8
thumb_func_start sub_8149740
sub_8149740: @ 8149740
push {lr}
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldrh r0, [r1, 0x12]
adds r0, 0x1
@@ -6891,7 +6943,7 @@ sub_8149774: @ 8149774
ldrh r0, [r4, 0xA]
bl sub_8149F2C
ldr r2, =0x04000050
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldrh r0, [r1, 0xE]
strh r0, [r2]
@@ -6936,7 +6988,7 @@ sub_8149804: @ 8149804
push {lr}
bl sub_8149F2C
ldr r1, =0x04000054
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r2, [r0]
ldrh r0, [r2, 0x12]
strh r0, [r1]
@@ -6992,7 +7044,7 @@ sub_8149864: @ 8149864
ldrsh r0, [r3, r1]
cmp r0, 0
beq _0814994C
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldrb r0, [r1]
movs r0, 0x1
@@ -7065,7 +7117,7 @@ _08149902:
ldrsh r0, [r3, r2]
cmp r0, 0
beq _08149914
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldrb r0, [r1]
movs r0, 0x1
@@ -7077,7 +7129,7 @@ _08149914:
beq _0814994C
movs r2, 0x3A
ldrsh r0, [r3, r2]
- ldr r2, =gUnknown_0203ABA0
+ ldr r2, =sTransitionStructPtr
cmp r0, 0
beq _0814993E
ldr r0, [r2]
@@ -7271,7 +7323,7 @@ sub_8149AA4: @ 8149AA4
adds r5, r0, 0
bl sub_8149F08
bl dp12_8087EA4
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
movs r2, 0
movs r0, 0x3F
@@ -7317,7 +7369,7 @@ sub_8149B08: @ 8149B08
push {r6}
sub sp, 0xC
mov r8, r0
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r0, [r0]
adds r0, 0x24
ldr r6, =gUnknown_085C8DD0
@@ -7378,7 +7430,7 @@ sub_8149B84: @ 8149B84
mov r6, r8
push {r6,r7}
adds r6, r0, 0
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldrb r0, [r1]
movs r0, 0
@@ -7389,7 +7441,7 @@ sub_8149B84: @ 8149B84
mov r9, r0
_08149BA0:
ldr r1, =gUnknown_02038C28
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r2, [r0]
movs r3, 0x2A
ldrsh r0, [r2, r3]
@@ -7431,7 +7483,7 @@ _08149BEA:
bgt _08149BF4
lsrs r5, r1, 16
_08149BF4:
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r4, [r0]
movs r0, 0x2A
ldrsh r2, [r4, r0]
@@ -7469,7 +7521,7 @@ _08149C1C:
cmp r0, 0xF
ble _08149BA0
_08149C40:
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldrb r0, [r1]
adds r0, 0x1
@@ -7568,7 +7620,7 @@ sub_8149CE8: @ 8149CE8
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xA]
bl sub_8149F2C
- ldr r3, =gUnknown_0203ABA0
+ ldr r3, =sTransitionStructPtr
ldr r0, [r3]
ldrb r0, [r0]
cmp r0, 0
@@ -7824,7 +7876,7 @@ _08149EFE:
thumb_func_start sub_8149F08
sub_8149F08: @ 8149F08
push {r4,lr}
- ldr r4, =gUnknown_0203ABA0
+ ldr r4, =sTransitionStructPtr
ldr r0, [r4]
movs r1, 0
movs r2, 0x3C
@@ -8538,7 +8590,7 @@ sub_814A42C: @ 814A42C
movs r0, 0xA0
lsls r0, 4
strh r0, [r4, 0x16]
- ldr r6, =gUnknown_0203ABA0
+ ldr r6, =sTransitionStructPtr
ldr r2, [r6]
ldr r3, =0x00003f41
strh r3, [r2, 0xE]
@@ -8609,7 +8661,7 @@ sub_814A500: @ 814A500
movs r2, 0
ldr r6, =sub_814A684
ldr r4, =gUnknown_020393A8
- ldr r3, =gUnknown_0203ABA0
+ ldr r3, =sTransitionStructPtr
_0814A50C:
lsls r1, r2, 1
adds r1, r4
@@ -8644,7 +8696,7 @@ sub_814A550: @ 814A550
push {r7}
sub sp, 0x4
adds r4, r0, 0
- ldr r1, =gUnknown_0203ABA0
+ ldr r1, =sTransitionStructPtr
ldr r0, [r1]
ldrb r2, [r0]
movs r3, 0
@@ -8721,7 +8773,7 @@ _0814A5E4:
ldr r1, =gUnknown_02038C28
lsls r2, r5, 1
adds r2, r1
- ldr r1, =gUnknown_0203ABA0
+ ldr r1, =sTransitionStructPtr
ldr r1, [r1]
ldrh r1, [r1, 0x16]
adds r0, r1
@@ -8772,7 +8824,7 @@ _0814A654:
ldrh r0, [r4, 0x16]
subs r0, 0x11
strh r0, [r4, 0x16]
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldrb r0, [r1]
adds r0, 0x1
@@ -8793,7 +8845,7 @@ sub_814A684: @ 814A684
push {lr}
bl sub_8149F2C
ldr r2, =0x04000050
- ldr r0, =gUnknown_0203ABA0
+ ldr r0, =sTransitionStructPtr
ldr r1, [r0]
ldrh r0, [r1, 0xE]
strh r0, [r2]
diff --git a/asm/berry_blender.s b/asm/berry_blender.s
index c63b72647..5bf10bd5d 100644
--- a/asm/berry_blender.s
+++ b/asm/berry_blender.s
@@ -8365,7 +8365,7 @@ ShowBerryBlenderRecordWindow: @ 8083E24
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r2, r6, 0
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r5]
ldr r2, =gUnknown_085EE473
movs r1, 0x29
@@ -8374,7 +8374,7 @@ ShowBerryBlenderRecordWindow: @ 8083E24
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x4
- bl Print
+ bl PrintTextOnWindow
movs r6, 0
movs r7, 0xA4
lsls r7, 22
@@ -8425,7 +8425,7 @@ _08083E8A:
str r1, [sp, 0x8]
movs r1, 0x1
add r2, sp, 0xC
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x80
lsls r0, 21
adds r7, r0
diff --git a/asm/berry_tag_screen.s b/asm/berry_tag_screen.s
index b03c56ed4..4d5022189 100644
--- a/asm/berry_tag_screen.s
+++ b/asm/berry_tag_screen.s
@@ -612,7 +612,7 @@ sub_8178174: @ 8178174
movs r0, 0x1
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldrh r0, [r4, 0x8]
cmp r0, 0
beq _08178230
@@ -662,7 +662,7 @@ _081781C8:
movs r1, 0x1
adds r2, r4, 0
movs r3, 0x28
- bl Print
+ bl PrintTextOnWindow
b _08178242
.pool
_08178230:
@@ -673,7 +673,7 @@ _08178230:
movs r0, 0x1
movs r1, 0x1
movs r3, 0x28
- bl Print
+ bl PrintTextOnWindow
_08178242:
add sp, 0xC
pop {r4-r7}
@@ -704,7 +704,7 @@ itemid_copy_name: @ 8178250
movs r0, 0x1
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r6, 0x7]
cmp r0, 0
beq _081782B0
@@ -720,7 +720,7 @@ itemid_copy_name: @ 8178250
movs r0, 0x1
movs r1, 0x1
movs r3, 0x28
- bl Print
+ bl PrintTextOnWindow
b _081782C2
.pool
_081782B0:
@@ -731,7 +731,7 @@ _081782B0:
movs r0, 0x1
movs r1, 0x1
movs r3, 0x28
- bl Print
+ bl PrintTextOnWindow
_081782C2:
add sp, 0xC
pop {r4-r6}
@@ -760,7 +760,7 @@ sub_81782D0: @ 81782D0
movs r0, 0x2
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r0}
bx r0
@@ -787,7 +787,7 @@ sub_8178304: @ 8178304
movs r0, 0x2
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r0}
bx r0
diff --git a/asm/cable_club.s b/asm/cable_club.s
index 73288455f..3d2501765 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -74,7 +74,7 @@ sub_80B23B0: @ 80B23B0
adds r0, r4, 0
movs r1, 0x1
adds r2, r5, 0
- bl Print
+ bl PrintTextOnWindow
adds r0, r4, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -1867,7 +1867,7 @@ _080B3378:
ldrh r0, [r0]
bl sub_80B3260
bl overworld_free_bg_tilemaps
- ldr r1, =gUnknown_02038BCA
+ ldr r1, =gTrainerBattleOpponent_A
movs r2, 0x80
lsls r2, 4
adds r0, r2, 0
@@ -2040,7 +2040,7 @@ _080B3504:
ldrh r0, [r0]
bl sub_80B3260
bl overworld_free_bg_tilemaps
- ldr r1, =gUnknown_02038BCA
+ ldr r1, =gTrainerBattleOpponent_A
movs r3, 0x80
lsls r3, 4
adds r0, r3, 0
diff --git a/asm/calculate_base_damage.s b/asm/calculate_base_damage.s
deleted file mode 100644
index 5aabfc4c3..000000000
--- a/asm/calculate_base_damage.s
+++ /dev/null
@@ -1,1045 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_806957C
-sub_806957C: @ 806957C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x30
- adds r6, r0, 0
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r0, [sp, 0x50]
- ldr r1, [sp, 0x54]
- ldr r2, [sp, 0x58]
- ldr r4, [sp, 0x5C]
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0xC]
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x10]
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x14]
- movs r5, 0
- cmp r3, 0
- bne _080695D4
- ldr r2, =gBattleMovePower
- ldr r1, =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 _080695D8
- .pool
-_080695D4:
- ldr r0, =gBattleMovePower
- strh r3, [r0]
-_080695D8:
- cmp r7, 0
- bne _080695F8
- ldr r1, =gBattleMoves
- ldr r7, [sp, 0x8]
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- mov r10, r0
- b _08069602
- .pool
-_080695F8:
- movs r0, 0x3F
- mov r10, r0
- mov r1, r10
- ands r1, r7
- mov r10, r1
-_08069602:
- ldrh r7, [r6, 0x2]
- ldr r2, [sp, 0x4]
- ldrh r2, [r2, 0x4]
- str r2, [sp, 0x18]
- ldrh r3, [r6, 0x8]
- mov r8, r3
- ldr r0, [sp, 0x4]
- ldrh r0, [r0, 0xA]
- str r0, [sp, 0x1C]
- ldrh r0, [r6, 0x2E]
- cmp r0, 0xAF
- bne _08069634
- ldr r1, =gEnigmaBerries
- ldr r2, [sp, 0x10]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x7]
- mov r9, r3
- ldrb r0, [r0, 0x1A]
- b _0806964A
- .pool
-_08069634:
- ldrh r0, [r6, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldrh r0, [r6, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r0, 24
-_0806964A:
- str r0, [sp, 0x24]
- ldr r1, [sp, 0x4]
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0806967E
- ldr r1, =gEnigmaBerries
- ldr r2, [sp, 0x14]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x7]
- str r0, [sp, 0x20]
- b _08069694
- .pool
-_0806966C:
- ldr r0, [sp, 0x24]
- adds r0, 0x64
- muls r0, r7
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
- b _0806977C
-_0806967E:
- ldr r3, [sp, 0x4]
- ldrh r0, [r3, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x20]
- ldr r1, [sp, 0x4]
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffectParam
-_08069694:
- adds r0, r6, 0
- adds r0, 0x20
- ldrb r1, [r0]
- str r0, [sp, 0x28]
- cmp r1, 0x25
- beq _080696A4
- cmp r1, 0x4A
- bne _080696A8
-_080696A4:
- lsls r0, r7, 17
- lsrs r7, r0, 16
-_080696A8:
- ldr r0, =0x00000867
- ldr r1, [sp, 0x10]
- bl sub_8069ED8
- lsls r0, 24
- cmp r0, 0
- beq _080696C4
- movs r0, 0x6E
- muls r0, r7
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
-_080696C4:
- ldr r0, =0x0000086b
- ldr r1, [sp, 0x14]
- bl sub_8069ED8
- lsls r0, 24
- cmp r0, 0
- beq _080696E4
- movs r0, 0x6E
- ldr r2, [sp, 0x18]
- muls r0, r2
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
-_080696E4:
- ldr r4, =0x0000086d
- adds r0, r4, 0
- ldr r1, [sp, 0x10]
- bl sub_8069ED8
- lsls r0, 24
- cmp r0, 0
- beq _08069708
- movs r0, 0x6E
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_08069708:
- adds r0, r4, 0
- ldr r1, [sp, 0x14]
- bl sub_8069ED8
- lsls r0, 24
- cmp r0, 0
- beq _08069728
- movs r0, 0x6E
- ldr r1, [sp, 0x1C]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x1C]
-_08069728:
- movs r2, 0
- ldr r4, =gHoldEffectToType
- ldr r3, [sp, 0x4]
- adds r3, 0x20
- str r3, [sp, 0x2C]
- adds r3, r4, 0
-_08069734:
- lsls r1, r2, 1
- ldrb r0, [r3]
- cmp r9, r0
- bne _08069774
- adds r0, r4, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r10, r0
- bne _08069774
- mov r1, r10
- cmp r1, 0x8
- bls _0806966C
- ldr r0, [sp, 0x24]
- 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 _0806977C
- .pool
-_08069774:
- adds r3, 0x2
- adds r2, 0x1
- cmp r2, 0x10
- bls _08069734
-_0806977C:
- mov r3, r9
- cmp r3, 0x1D
- bne _08069790
- movs r0, 0x96
- muls r0, r7
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
-_08069790:
- mov r0, r9
- cmp r0, 0x22
- bne _080697C6
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, =0x003f0100
- ands r0, r1
- cmp r0, 0
- bne _080697C6
- ldr r1, =0xfffffe69
- adds r0, r1, 0
- ldrh r2, [r6]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080697C6
- 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
-_080697C6:
- ldr r0, [sp, 0x20]
- cmp r0, 0x22
- bne _080697FC
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, =0x003f0100
- ands r0, r1
- cmp r0, 0
- bne _080697FC
- ldr r1, =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 _080697FC
- movs r0, 0x96
- ldr r3, [sp, 0x1C]
- muls r0, r3
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x1C]
-_080697FC:
- mov r0, r9
- cmp r0, 0x23
- bne _08069812
- ldrh r1, [r6]
- ldr r0, =0x00000175
- cmp r1, r0
- bne _08069812
- mov r1, r8
- lsls r0, r1, 17
- lsrs r0, 16
- mov r8, r0
-_08069812:
- ldr r2, [sp, 0x20]
- cmp r2, 0x24
- bne _0806982A
- ldr r3, [sp, 0x4]
- ldrh r1, [r3]
- ldr r0, =0x00000175
- cmp r1, r0
- bne _0806982A
- ldr r1, [sp, 0x1C]
- lsls r0, r1, 17
- lsrs r0, 16
- str r0, [sp, 0x1C]
-_0806982A:
- mov r2, r9
- cmp r2, 0x2D
- bne _0806983E
- ldrh r0, [r6]
- cmp r0, 0x19
- bne _0806983E
- mov r3, r8
- lsls r0, r3, 17
- lsrs r0, 16
- mov r8, r0
-_0806983E:
- ldr r0, [sp, 0x20]
- cmp r0, 0x40
- bne _08069854
- ldr r1, [sp, 0x4]
- ldrh r0, [r1]
- cmp r0, 0x84
- bne _08069854
- ldr r2, [sp, 0x18]
- lsls r0, r2, 17
- lsrs r0, 16
- str r0, [sp, 0x18]
-_08069854:
- mov r3, r9
- cmp r3, 0x41
- bne _0806986A
- ldrh r0, [r6]
- subs r0, 0x68
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0806986A
- lsls r0, r7, 17
- lsrs r7, r0, 16
-_0806986A:
- ldr r1, [sp, 0x2C]
- ldrb r0, [r1]
- cmp r0, 0x2F
- bne _08069882
- mov r2, r10
- cmp r2, 0xA
- beq _0806987C
- cmp r2, 0xF
- bne _08069882
-_0806987C:
- mov r3, r8
- lsrs r3, 1
- mov r8, r3
-_08069882:
- ldr r0, [sp, 0x28]
- ldrb r4, [r0]
- cmp r4, 0x37
- bne _08069898
- movs r0, 0x96
- muls r0, r7
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
-_08069898:
- cmp r4, 0x39
- bne _080698C6
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x3A
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _080698C6
- 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
-_080698C6:
- ldr r2, [sp, 0x28]
- ldrb r0, [r2]
- cmp r0, 0x3A
- bne _080698F8
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x39
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _080698F8
- 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
-_080698F8:
- ldr r1, [sp, 0x28]
- ldrb r0, [r1]
- cmp r0, 0x3E
- bne _08069914
- ldr r0, [r6, 0x4C]
- cmp r0, 0
- beq _08069914
- movs r0, 0x96
- muls r0, r7
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
-_08069914:
- ldr r2, [sp, 0x2C]
- ldrb r0, [r2]
- cmp r0, 0x3F
- bne _08069936
- ldr r3, [sp, 0x4]
- ldr r0, [r3, 0x4C]
- cmp r0, 0
- beq _08069936
- movs r0, 0x96
- ldr r1, [sp, 0x18]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
-_08069936:
- mov r2, r10
- cmp r2, 0xD
- bne _0806995A
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0
- movs r3, 0xFD
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _0806995A
- ldr r1, =gBattleMovePower
- ldrh r0, [r1]
- lsrs r0, 1
- strh r0, [r1]
-_0806995A:
- mov r3, r10
- cmp r3, 0xA
- bne _0806997E
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0
- movs r3, 0xFE
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _0806997E
- ldr r1, =gBattleMovePower
- ldrh r0, [r1]
- lsrs r0, 1
- strh r0, [r1]
-_0806997E:
- mov r0, r10
- cmp r0, 0xC
- bne _080699AE
- ldr r1, [sp, 0x28]
- ldrb r0, [r1]
- cmp r0, 0x41
- bne _080699AE
- ldrh r0, [r6, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r6, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _080699AE
- ldr r4, =gBattleMovePower
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_080699AE:
- mov r2, r10
- cmp r2, 0xA
- bne _080699DE
- ldr r3, [sp, 0x28]
- ldrb r0, [r3]
- cmp r0, 0x42
- bne _080699DE
- ldrh r0, [r6, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r6, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _080699DE
- ldr r4, =gBattleMovePower
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_080699DE:
- mov r0, r10
- cmp r0, 0xB
- bne _08069A0E
- ldr r1, [sp, 0x28]
- ldrb r0, [r1]
- cmp r0, 0x43
- bne _08069A0E
- ldrh r0, [r6, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r6, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _08069A0E
- ldr r4, =gBattleMovePower
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_08069A0E:
- mov r2, r10
- cmp r2, 0x6
- bne _08069A3E
- ldr r3, [sp, 0x28]
- ldrb r0, [r3]
- cmp r0, 0x44
- bne _08069A3E
- ldrh r0, [r6, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r6, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _08069A3E
- ldr r4, =gBattleMovePower
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_08069A3E:
- ldr r2, =gBattleMoves
- ldr r0, =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _08069A58
- ldr r0, [sp, 0x18]
- lsrs r0, 1
- str r0, [sp, 0x18]
-_08069A58:
- mov r1, r10
- cmp r1, 0x8
- bls _08069A60
- b _08069BC2
-_08069A60:
- ldr r0, =gCritMultiplier
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x2
- bne _08069AA0
- movs r0, 0x19
- ldrsb r0, [r6, r0]
- cmp r0, 0x6
- ble _08069A9C
- ldr r2, =gUnknown_08329D2E
- b _08069AA6
- .pool
-_08069A9C:
- adds r5, r7, 0
- b _08069ABE
-_08069AA0:
- ldr r2, =gUnknown_08329D2E
- movs r0, 0x19
- ldrsb r0, [r6, r0]
-_08069AA6:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- adds r5, r7, 0
- muls r5, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl __divsi3
- adds r5, r0, 0
-_08069ABE:
- ldr r0, =gBattleMovePower
- ldrh r0, [r0]
- muls r5, r0
- adds r0, r6, 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 _08069AFC
- ldr r2, [sp, 0x4]
- movs r0, 0x1A
- ldrsb r0, [r2, r0]
- cmp r0, 0x5
- bgt _08069AF8
- ldr r2, =gUnknown_08329D2E
- ldr r3, [sp, 0x4]
- movs r0, 0x1A
- ldrsb r0, [r3, r0]
- b _08069B04
- .pool
-_08069AF8:
- ldr r3, [sp, 0x18]
- b _08069B1E
-_08069AFC:
- ldr r2, =gUnknown_08329D2E
- ldr r1, [sp, 0x4]
- movs r0, 0x1A
- ldrsb r0, [r1, r0]
-_08069B04:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- ldr r7, [sp, 0x18]
- adds r3, r7, 0
- muls r3, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- bl __divsi3
- adds r3, r0, 0
-_08069B1E:
- adds r0, r5, 0
- adds r1, r3, 0
- bl __divsi3
- adds r5, r0, 0
- movs r1, 0x32
- bl __divsi3
- adds r5, r0, 0
- ldr r0, [r6, 0x4C]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08069B48
- ldr r1, [sp, 0x28]
- ldrb r0, [r1]
- cmp r0, 0x3E
- beq _08069B48
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_08069B48:
- movs r0, 0x1
- ldr r2, [sp, 0xC]
- ands r0, r2
- cmp r0, 0
- beq _08069B8A
- ldrb r1, [r4]
- cmp r1, 0x1
- bne _08069B8A
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- beq _08069B84
- movs r0, 0x2
- bl sub_8069DEC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08069B84
- adds r0, r5, 0
- movs r1, 0x3
- bl __divsi3
- lsls r5, r0, 1
- b _08069B8A
- .pool
-_08069B84:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_08069B8A:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08069BBC
- ldr r0, =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 _08069BBC
- movs r0, 0x2
- bl sub_8069DEC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08069BBC
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_08069BBC:
- cmp r5, 0
- bne _08069BC2
- movs r5, 0x1
-_08069BC2:
- mov r7, r10
- cmp r7, 0x9
- bne _08069BCA
- movs r5, 0
-_08069BCA:
- mov r0, r10
- cmp r0, 0x9
- bhi _08069BD2
- b _08069DD4
-_08069BD2:
- ldr r0, =gCritMultiplier
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x2
- bne _08069BFC
- movs r0, 0x1C
- ldrsb r0, [r6, r0]
- cmp r0, 0x6
- ble _08069BF8
- ldr r2, =gUnknown_08329D2E
- b _08069C02
- .pool
-_08069BF8:
- mov r5, r8
- b _08069C1A
-_08069BFC:
- ldr r2, =gUnknown_08329D2E
- movs r0, 0x1C
- ldrsb r0, [r6, r0]
-_08069C02:
- 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
-_08069C1A:
- ldr r0, =gBattleMovePower
- ldrh r0, [r0]
- muls r5, r0
- adds r0, r6, 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 _08069C54
- ldr r1, [sp, 0x4]
- movs r0, 0x1D
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _08069C50
- ldr r2, =gUnknown_08329D2E
- b _08069C5C
- .pool
-_08069C50:
- ldr r3, [sp, 0x1C]
- b _08069C76
-_08069C54:
- ldr r2, =gUnknown_08329D2E
- ldr r7, [sp, 0x4]
- movs r0, 0x1D
- ldrsb r0, [r7, r0]
-_08069C5C:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- ldr r6, [sp, 0x1C]
- 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
-_08069C76:
- 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 r7, [sp, 0xC]
- ands r0, r7
- cmp r0, 0
- beq _08069CCA
- ldrb r1, [r4]
- cmp r1, 0x1
- bne _08069CCA
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- beq _08069CC4
- movs r0, 0x2
- bl sub_8069DEC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08069CC4
- adds r0, r5, 0
- movs r1, 0x3
- bl __divsi3
- lsls r5, r0, 1
- b _08069CCA
- .pool
-_08069CC4:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_08069CCA:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08069CFC
- ldr r0, =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 _08069CFC
- movs r0, 0x2
- bl sub_8069DEC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08069CFC
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_08069CFC:
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08069DAC
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _08069DAC
- ldr r2, =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x1
- ands r0, r1
- adds r4, r2, 0
- cmp r0, 0
- beq _08069D64
- mov r3, r10
- cmp r3, 0xA
- beq _08069D50
- cmp r3, 0xB
- beq _08069D58
- b _08069D64
- .pool
-_08069D50:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
- b _08069D64
-_08069D58:
- lsls r0, r5, 4
- subs r0, r5
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
-_08069D64:
- ldrh r1, [r4]
- movs r0, 0x9F
- ands r0, r1
- cmp r0, 0
- beq _08069D7C
- ldr r0, =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0x4C
- bne _08069D7C
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_08069D7C:
- ldrh r1, [r4]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08069DAC
- mov r6, r10
- cmp r6, 0xA
- beq _08069D98
- cmp r6, 0xB
- beq _08069DA6
- b _08069DAC
- .pool
-_08069D98:
- lsls r0, r5, 4
- subs r0, r5
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
- b _08069DAC
-_08069DA6:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_08069DAC:
- ldr r0, =gBattleResources
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- ldr r7, [sp, 0x10]
- lsls r1, r7, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08069DD4
- mov r0, r10
- cmp r0, 0xA
- bne _08069DD4
- lsls r0, r5, 4
- subs r0, r5
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
-_08069DD4:
- adds r0, r5, 0x2
- add sp, 0x30
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_806957C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/clear_save_data_screen.s b/asm/clear_save_data_screen.s
index 9eff4a775..27c32feb5 100644
--- a/asm/clear_save_data_screen.s
+++ b/asm/clear_save_data_screen.s
@@ -41,7 +41,7 @@ sub_817ACE4: @ 817ACE4
str r0, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, =gUnknown_085F06D8
movs r1, 0x2
movs r2, 0xE
@@ -95,7 +95,7 @@ _0817AD68:
movs r0, 0
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
diff --git a/asm/coins.s b/asm/coins.s
index 88e515b47..afb84c61f 100644
--- a/asm/coins.s
+++ b/asm/coins.s
@@ -35,7 +35,7 @@ PrintCoinsString: @ 8145B54
str r1, [sp, 0x8]
movs r1, 0x1
adds r2, r4, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r4}
pop {r0}
diff --git a/asm/contest_painting.s b/asm/contest_painting.s
index 156e46050..d8dec9f2a 100644
--- a/asm/contest_painting.s
+++ b/asm/contest_painting.s
@@ -438,7 +438,7 @@ _081301A6:
str r1, [sp, 0x8]
movs r1, 0x1
adds r2, r4, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x1
bl CopyBgTilemapBufferToVram
_081301D4:
diff --git a/asm/daycare.s b/asm/daycare.s
index 66066c51c..0f67d0200 100644
--- a/asm/daycare.s
+++ b/asm/daycare.s
@@ -29,7 +29,7 @@ pokemon_get_nick_: @ 806FA4C
adds r4, r1, 0
movs r1, 0x2
mov r2, sp
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
adds r0, r4, 0
mov r1, sp
bl StringCopy10
@@ -50,7 +50,7 @@ _0806FA74:
muls r0, r4
adds r0, r6, r0
movs r1, 0xB
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
beq _0806FA8A
adds r0, r5, 0x1
@@ -90,7 +90,7 @@ _0806FAB6:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
beq _0806FAE4
adds r0, r7, 0x1
@@ -98,7 +98,7 @@ _0806FAB6:
lsrs r7, r0, 24
adds r0, r4, 0
movs r1, 0xC
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
adds r1, r0, 0
cmp r1, 0
bne _0806FAE4
@@ -138,7 +138,7 @@ _0806FB0E:
muls r0, r4
adds r0, r5, r0
movs r1, 0xB
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
bne _0806FB24
lsls r0, r4, 24
@@ -232,7 +232,7 @@ _0806FBBC:
movs r0, 0
str r0, [r1]
adds r0, r6, 0
- bl zero_pokemon_struct
+ bl ZeroMonData
bl party_compaction
bl calc_player_party_count
pop {r4-r6}
@@ -290,12 +290,12 @@ sub_806FC48: @ 806FC48
adds r4, 0x8C
adds r0, r4, 0
movs r1, 0xB
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
beq _0806FC9E
adds r0, r5, 0
movs r1, 0xB
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
adds r6, r0, 0
cmp r6, 0
bne _0806FC9E
@@ -304,7 +304,7 @@ sub_806FC48: @ 806FC48
movs r2, 0x50
bl memcpy
adds r0, r4, 0
- bl zero_pokemon_boxed_data
+ bl ZeroBoxMonData
adds r4, 0x50
adds r0, r5, 0
adds r0, 0x50
@@ -350,7 +350,7 @@ _0806FCC4:
ldr r0, =gUnknown_020244E2
ldrh r1, [r0]
adds r0, r4, 0
- bl sub_8069424
+ bl DeleteFirstMoveAndGiveMoveToMon
_0806FCD4:
adds r0, r4, 0
adds r1, r6, 0
@@ -363,7 +363,7 @@ _0806FCD4:
ble _0806FCAC
_0806FCE8:
adds r0, r4, 0
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
pop {r4-r7}
pop {r0}
bx r0
@@ -379,7 +379,7 @@ sub_806FCF8: @ 806FCF8
bl pokemon_get_nick_
adds r0, r5, 0
movs r1, 0xB
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
lsls r0, 16
lsrs r7, r0, 16
adds r0, r5, 0
@@ -427,7 +427,7 @@ _0806FD46:
bl sub_806FF80
_0806FD74:
adds r0, r5, 0
- bl zero_pokemon_boxed_data
+ bl ZeroBoxMonData
adds r1, r5, 0
adds r1, 0x88
movs r0, 0
@@ -492,15 +492,15 @@ sub_806FDEC: @ 806FDEC
bl memcpy
adds r0, r4, 0
movs r1, 0x19
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
adds r0, r5
str r0, [sp, 0x50]
add r2, sp, 0x50
mov r0, sp
movs r1, 0x19
- bl SetMonData_encrypted
+ bl SetBoxMonData
mov r0, sp
- bl sub_80690C0
+ bl GetLevelFromBoxMonExp
lsls r0, 24
lsrs r0, 24
add sp, 0x54
@@ -513,7 +513,7 @@ sub_806FDEC: @ 806FDEC
sub_806FE28: @ 806FE28
push {r4,r5,lr}
adds r5, r0, 0
- bl sub_80690C0
+ bl GetLevelFromBoxMonExp
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -647,7 +647,7 @@ sub_806FF30: @ 806FF30
ldr r0, [r6]
adds r0, r1
movs r1, 0xB
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
bne _0806FF60
movs r0, 0
@@ -703,7 +703,7 @@ _0806FF9E:
sub_806FFB0: @ 806FFB0
push {r4,lr}
adds r4, r0, 0
- bl zero_pokemon_boxed_data
+ bl ZeroBoxMonData
adds r1, r4, 0
adds r1, 0x88
movs r0, 0
@@ -846,7 +846,7 @@ _080700AE:
muls r0, r4
adds r0, r6, r0
movs r1, 0xB
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
lsls r1, r4, 2
add r1, sp
str r0, [r1]
@@ -872,7 +872,7 @@ _080700E2:
muls r0, r7
adds r0, r6, r0
movs r1, 0xC
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0xC3
bne _080700FE
bl Random
@@ -931,7 +931,7 @@ _08070160:
adds r0, r5, r0
movs r1, 0
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
bl GetNatureFromPersonality
lsls r0, 24
lsrs r7, r0, 24
@@ -1145,7 +1145,7 @@ _08070304:
muls r0, r1
add r0, r8
movs r1, 0x27
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
add r2, sp, 0x10
strb r0, [r2]
mov r0, r9
@@ -1160,7 +1160,7 @@ _08070322:
muls r0, r1
add r0, r8
movs r1, 0x28
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
strb r0, [r4]
mov r0, r9
movs r1, 0x28
@@ -1173,7 +1173,7 @@ _0807033C:
muls r0, r1
add r0, r8
movs r1, 0x29
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
strb r0, [r4]
mov r0, r9
movs r1, 0x29
@@ -1186,7 +1186,7 @@ _08070356:
muls r0, r1
add r0, r8
movs r1, 0x2A
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
strb r0, [r4]
mov r0, r9
movs r1, 0x2A
@@ -1199,7 +1199,7 @@ _08070370:
muls r0, r1
add r0, r8
movs r1, 0x2B
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
strb r0, [r4]
mov r0, r9
movs r1, 0x2B
@@ -1215,7 +1215,7 @@ _08070390:
muls r0, r1
add r0, r8
movs r1, 0x2C
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
strb r0, [r4]
mov r0, r9
movs r1, 0x2C
@@ -1392,14 +1392,14 @@ _080704F2:
adds r5, 0xD
mov r0, r10
adds r1, r5, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
lsls r4, r6, 1
mov r2, r8
adds r1, r4, r2
strh r0, [r1]
mov r0, r9
adds r1, r5, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
ldr r1, =gUnknown_02024A4C
adds r4, r1
strh r0, [r4]
@@ -1439,7 +1439,7 @@ _08070546:
adds r1, r0, 0
adds r0, r7, 0
str r2, [sp, 0x8]
- bl pokemon_moveset_pad_
+ bl GiveMoveToBoxMon_
lsls r0, 16
lsrs r0, 16
ldr r2, [sp, 0x8]
@@ -1447,7 +1447,7 @@ _08070546:
bne _08070596
ldrh r1, [r4]
adds r0, r7, 0
- bl sub_8069424
+ bl DeleteFirstMoveAndGiveMoveToMon
b _08070596
.pool
_0807058C:
@@ -1500,14 +1500,14 @@ _080705C2:
beq _080705FE
ldrh r1, [r4]
adds r0, r7, 0
- bl pokemon_moveset_pad_
+ bl GiveMoveToBoxMon_
lsls r0, 16
lsrs r0, 16
cmp r0, r6
bne _080705FE
ldrh r1, [r4]
adds r0, r7, 0
- bl sub_8069424
+ bl DeleteFirstMoveAndGiveMoveToMon
_080705FE:
adds r0, r5, 0x1
lsls r0, 16
@@ -1601,7 +1601,7 @@ _0807068A:
adds r1, r0, 0
adds r0, r7, 0
str r2, [sp, 0x8]
- bl pokemon_moveset_pad_
+ bl GiveMoveToBoxMon_
lsls r0, 16
lsrs r0, 16
ldr r2, [sp, 0x8]
@@ -1609,7 +1609,7 @@ _0807068A:
bne _080706E4
ldrh r1, [r4]
adds r0, r7, 0
- bl sub_8069424
+ bl DeleteFirstMoveAndGiveMoveToMon
b _080706E4
.pool
_080706D8:
@@ -1689,13 +1689,13 @@ incense_effects: @ 8070744
_0807075C:
adds r0, r5, 0
movs r1, 0xC
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
lsls r0, 16
lsrs r6, r0, 16
adds r0, r5, 0
adds r0, 0x8C
movs r1, 0xC
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
lsls r0, 16
lsrs r2, r0, 16
ldrh r0, [r4]
@@ -1732,12 +1732,12 @@ sub_80707A4: @ 80707A4
adds r4, r1, 0
adds r0, r4, 0
movs r1, 0xC
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
adds r5, r0, 0
adds r4, 0x8C
adds r0, r4, 0
movs r1, 0xC
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r5, 0xCA
beq _080707C6
cmp r0, 0xCA
@@ -1747,14 +1747,14 @@ _080707C6:
lsls r4, 1
adds r0, r6, 0
adds r1, r4, 0
- bl pokemon_moveset_pad_
+ bl GiveMoveToBoxMon_
lsls r0, 16
ldr r1, =0xffff0000
cmp r0, r1
bne _080707E2
adds r0, r6, 0
adds r1, r4, 0
- bl sub_8069424
+ bl DeleteFirstMoveAndGiveMoveToMon
_080707E2:
pop {r4-r6}
pop {r0}
@@ -1779,7 +1779,7 @@ _080707FE:
adds r5, r7, r0
adds r0, r5, 0
movs r1, 0xB
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
lsls r1, r4, 1
add r1, sp
strh r0, [r1]
@@ -1960,7 +1960,7 @@ sub_8070954: @ 8070954
adds r1, r5, 0
movs r2, 0x5
movs r3, 0x20
- bl create_pokemon_set_level
+ bl CreateMon
movs r0, 0x12
add r0, sp
mov r8, r0
@@ -2050,7 +2050,7 @@ sub_8070A0C: @ 8070A0C
adds r1, r5, 0
movs r2, 0x5
movs r3, 0x20
- bl create_pokemon_set_level
+ bl CreateMon
movs r0, 0x12
add r0, sp
mov r9, r0
@@ -2122,7 +2122,7 @@ _08070ACE:
muls r4, r0
adds r0, r6, r4
movs r1, 0x5
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
beq _08070AEE
adds r1, r6, 0
@@ -2275,7 +2275,7 @@ sub_8070C04: @ 8070C04
sub sp, 0xC
adds r4, r0, 0
movs r1, 0xB
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
beq _08070C2E
ldr r1, =gStringVar1
@@ -2284,7 +2284,7 @@ sub_8070C04: @ 8070C04
adds r0, r4, 0
movs r1, 0x7
mov r2, sp
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
ldr r0, =gStringVar3
mov r1, sp
bl StringCopy
@@ -2292,7 +2292,7 @@ _08070C2E:
adds r4, 0x8C
adds r0, r4, 0
movs r1, 0xB
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
beq _08070C44
ldr r1, =gStringVar2
@@ -2324,7 +2324,7 @@ sub_8070C58: @ 8070C58
muls r0, r5
adds r0, r4
movs r1, 0xB
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
lsls r0, 16
lsrs r0, 16
pop {r4,r5}
@@ -2468,20 +2468,20 @@ _08070D7E:
adds r4, r0, r4
adds r0, r4, 0
movs r1, 0xB
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
strh r0, [r5]
adds r0, r4, 0
movs r1, 0x1
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
ldr r1, [sp, 0x2C]
stm r1!, {r0}
str r1, [sp, 0x2C]
adds r0, r4, 0
movs r1, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
adds r1, r0, 0
ldrh r0, [r5]
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
lsls r0, 24
lsrs r0, 24
ldr r2, [sp, 0x28]
diff --git a/asm/decoration.s b/asm/decoration.s
index 9d228be38..d0a521537 100644
--- a/asm/decoration.s
+++ b/asm/decoration.s
@@ -13,7 +13,7 @@ sub_8126968: @ 8126968
cmp r0, 0x7
bhi _0812697E
ldr r2, =gUnknown_0203A14C
- ldr r1, =gUnknown_0203BC40
+ ldr r1, =gDecorationInventories
lsls r0, 3
adds r0, r1
ldr r0, [r0]
@@ -461,7 +461,7 @@ sub_8126D6C: @ 8126D6C
cmp r0, 0
bne _08126D98
ldr r0, =gUnknown_0823B4E8
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
adds r0, r4, 0
bl DestroyTask
b _08126D9E
@@ -669,7 +669,7 @@ _08126F2C:
adds r0, r5, 0
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
add sp, 0xC
@@ -742,7 +742,7 @@ _08126FA2:
movs r1, 0x1
adds r2, r4, 0
adds r3, r7, 0
- bl Print
+ bl PrintTextOnWindow
mov r0, r8
bl sub_8161AD0
adds r1, r0, 0
@@ -756,7 +756,7 @@ _08126FA2:
movs r0, 0xBA
strb r0, [r6]
adds r6, 0x1
- ldr r1, =gUnknown_0203BC40
+ ldr r1, =gDecorationInventories
mov r2, r8
lsls r0, r2, 3
adds r0, r1
@@ -780,7 +780,7 @@ _08126FA2:
movs r1, 0x1
adds r2, r4, 0
adds r3, r7, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0x18
pop {r3-r5}
mov r8, r3
@@ -883,7 +883,7 @@ sub_81270E8: @ 81270E8
ldrb r0, [r4]
bl sub_8161A38
ldr r2, =gUnknown_0203A14C
- ldr r1, =gUnknown_0203BC40
+ ldr r1, =gDecorationInventories
ldrb r0, [r4]
lsls r0, 3
adds r0, r1
@@ -1614,7 +1614,7 @@ sub_8127744: @ 8127744
b _08127782
.pool
_08127770:
- ldr r1, =gUnknown_085A5C08
+ ldr r1, =gDecorations
ldr r0, =gUnknown_0203A14C
ldr r0, [r0]
adds r0, r4
@@ -1632,7 +1632,7 @@ _08127782:
adds r0, r5, 0
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r4,r5}
pop {r0}
@@ -1740,7 +1740,7 @@ _08127842:
mov r3, r8
ldrb r0, [r3]
lsls r0, 3
- ldr r1, =gUnknown_0203BC40
+ ldr r1, =gDecorationInventories
adds r0, r1
ldrb r0, [r0, 0x4]
cmp r2, r0
@@ -1807,7 +1807,7 @@ _081278E2:
bls _08127842
movs r5, 0
movs r6, 0
- ldr r3, =gUnknown_0203BC40
+ ldr r3, =gDecorationInventories
mov r8, r3
_081278F4:
ldr r0, =gSaveBlock1Ptr
@@ -2193,7 +2193,7 @@ _08127BF0:
ldr r0, =gUnknown_085A5C24
adds r0, r4, r0
str r0, [sp, 0x1C]
- ldr r0, =gUnknown_085A5C08
+ ldr r0, =gDecorations
adds r0, r4, r0
str r0, [sp, 0x24]
ldr r3, [sp, 0x8]
@@ -2267,7 +2267,7 @@ _08127C8E:
movs r6, 0
_08127C90:
ldr r3, [sp, 0x18]
- ldr r4, =gUnknown_085A5C08
+ ldr r4, =gDecorations
adds r0, r3, r4
ldrb r0, [r0]
ldr r4, [sp, 0x20]
@@ -2360,7 +2360,7 @@ sub_8127D38: @ 8127D38
lsrs r4, r1, 16
lsls r2, 16
lsrs r2, 16
- ldr r1, =gUnknown_085A5C08
+ ldr r1, =gDecorations
lsls r0, r2, 5
adds r0, r1
ldrb r0, [r0, 0x12]
@@ -2954,7 +2954,7 @@ sub_812826C: @ 812826C
push {lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r2, =gUnknown_085A5C08
+ ldr r2, =gDecorations
ldr r0, =gUnknown_0203A172
ldrb r1, [r0]
ldr r0, =gUnknown_0203A14C
@@ -3826,7 +3826,7 @@ sub_8128950: @ 8128950
adds r0, r1
ldrb r1, [r0]
lsls r1, 5
- ldr r0, =gUnknown_085A5C08
+ ldr r0, =gDecorations
adds r1, r0
adds r0, r5, 0
bl sub_812853C
@@ -3888,7 +3888,7 @@ sub_81289F0: @ 81289F0
bl sub_8197434
adds r0, r4, 0
bl sub_8128AAC
- ldr r2, =gUnknown_085A5C08
+ ldr r2, =gDecorations
ldr r0, =gUnknown_0203A172
ldrb r1, [r0]
ldr r0, =gUnknown_0203A14C
@@ -3926,7 +3926,7 @@ _08128A44:
subs r0, 0x7
strh r0, [r2]
ldr r0, =gUnknown_08275D1F
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
_08128A64:
ldr r2, =gSprites
ldr r0, =gUnknown_0203AA38
@@ -4194,7 +4194,7 @@ _08128C96:
b _08128CAC
_08128C9C:
ldr r0, =gUnknown_08275D0C
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
b _08128CAC
.pool
_08128CA8:
@@ -5071,7 +5071,7 @@ gpu_pal_decompress_alloc_tag_and_upload: @ 8129334
lsrs r4, 24
bl sub_8129048
lsls r4, 5
- ldr r0, =gUnknown_085A5C08
+ ldr r0, =gDecorations
adds r4, r0
str r4, [r5]
ldrb r0, [r4, 0x11]
@@ -5253,7 +5253,7 @@ AddDecorationIconObjectFromFieldObject: @ 81294C0
adds r0, r6, 0
bl sub_8129048
lsls r4, 5
- ldr r0, =gUnknown_085A5C08
+ ldr r0, =gDecorations
adds r4, r0
str r4, [r6]
ldrb r0, [r4, 0x11]
@@ -5539,7 +5539,7 @@ _08129738:
b _08129796
.pool
_08129744:
- ldr r3, =gUnknown_085A5C08
+ ldr r3, =gDecorations
ldr r2, =gUnknown_0203A17C
ldr r1, =gUnknown_0203AA44
ldrh r0, [r4]
@@ -5646,7 +5646,7 @@ _08129808:
adds r0, r1
ldrb r0, [r0]
lsls r0, 5
- ldr r7, =gUnknown_085A5C08
+ ldr r7, =gDecorations
adds r0, r7
ldrb r2, [r0, 0x11]
ldr r7, =gUnknown_0203A17C
@@ -5787,7 +5787,7 @@ _08129928:
bne _08129994
bl DrawWholeMapView
ldr r0, =gUnknown_08275D2E
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
movs r0, 0
movs r1, 0x1
bl sub_8197434
@@ -6271,7 +6271,7 @@ sub_8129D8C: @ 8129D8C
push {lr}
adds r2, r1, 0
lsls r0, 24
- ldr r1, =gUnknown_085A5C08
+ ldr r1, =gDecorations
lsrs r0, 19
adds r0, r1
ldrb r1, [r0, 0x12]
@@ -6568,7 +6568,7 @@ _08129FD2:
ldrb r0, [r1]
cmp r0, 0
beq _0812A024
- ldr r0, =gUnknown_085A5C08
+ ldr r0, =gDecorations
ldrb r2, [r1]
lsls r1, r2, 5
adds r1, r0
@@ -6651,7 +6651,7 @@ _0812A072:
ands r2, r0
cmp r1, 0
beq _0812A0BA
- ldr r0, =gUnknown_085A5C08
+ ldr r0, =gDecorations
lsls r1, 5
adds r1, r0
ldrb r0, [r1, 0x11]
@@ -6952,7 +6952,7 @@ _0812A2F6:
b _0812A30C
_0812A2FC:
ldr r0, =gUnknown_08275D0C
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
b _0812A30C
.pool
_0812A308:
diff --git a/asm/decoration_inventory.s b/asm/decoration_inventory.s
new file mode 100644
index 000000000..52d490c20
--- /dev/null
+++ b/asm/decoration_inventory.s
@@ -0,0 +1,459 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+
+ thumb_func_start SetDecorationInventoriesPointers
+SetDecorationInventoriesPointers: @ 81617F4
+ push {r4,lr}
+ ldr r0, =gDecorationInventories
+ mov r12, r0
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldr r2, =0x00002734
+ adds r0, r1, r2
+ mov r4, r12
+ str r0, [r4]
+ movs r3, 0xA
+ strb r3, [r4, 0x4]
+ adds r2, 0xA
+ adds r0, r1, r2
+ str r0, [r4, 0x8]
+ strb r3, [r4, 0xC]
+ ldr r4, =0x00002748
+ adds r0, r1, r4
+ mov r2, r12
+ str r0, [r2, 0x10]
+ strb r3, [r2, 0x14]
+ adds r4, 0xA
+ adds r0, r1, r4
+ str r0, [r2, 0x18]
+ movs r2, 0x1E
+ mov r0, r12
+ strb r2, [r0, 0x1C]
+ adds r4, 0x1E
+ adds r0, r1, r4
+ mov r4, r12
+ str r0, [r4, 0x20]
+ mov r0, r12
+ adds r0, 0x24
+ strb r2, [r0]
+ ldr r2, =0x0000278e
+ adds r0, r1, r2
+ str r0, [r4, 0x28]
+ mov r0, r12
+ adds r0, 0x2C
+ strb r3, [r0]
+ ldr r4, =0x00002798
+ adds r0, r1, r4
+ mov r2, r12
+ str r0, [r2, 0x30]
+ adds r2, 0x34
+ movs r0, 0x28
+ strb r0, [r2]
+ adds r4, 0x28
+ adds r1, r4
+ mov r0, r12
+ str r1, [r0, 0x38]
+ adds r0, 0x3C
+ strb r3, [r0]
+ bl sub_8126968
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end SetDecorationInventoriesPointers
+
+ thumb_func_start ClearDecorationInventory
+ClearDecorationInventory: @ 8161880
+ push {r4,r5,lr}
+ lsls r0, 24
+ movs r3, 0
+ ldr r1, =gDecorationInventories
+ lsrs r2, r0, 21
+ adds r0, r2, r1
+ ldrb r0, [r0, 0x4]
+ cmp r3, r0
+ bcs _081618AA
+ adds r5, r1, 0
+ movs r4, 0
+_08161896:
+ adds r0, r2, r5
+ ldr r1, [r0]
+ adds r1, r3
+ strb r4, [r1]
+ adds r1, r3, 0x1
+ lsls r1, 24
+ lsrs r3, r1, 24
+ ldrb r0, [r0, 0x4]
+ cmp r3, r0
+ bcc _08161896
+_081618AA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ClearDecorationInventory
+
+ thumb_func_start ClearDecorationInventories
+ClearDecorationInventories: @ 81618B4
+ push {r4,lr}
+ movs r4, 0
+_081618B8:
+ adds r0, r4, 0
+ bl ClearDecorationInventory
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _081618B8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end ClearDecorationInventories
+
+ thumb_func_start sub_81618D0
+sub_81618D0: @ 81618D0
+ push {r4,lr}
+ lsls r0, 24
+ movs r2, 0
+ ldr r1, =gDecorationInventories
+ lsrs r0, 21
+ adds r0, r1
+ movs r1, 0x4
+ ldrsb r1, [r0, r1]
+ cmp r2, r1
+ bge _0816190C
+ adds r4, r0, 0
+ adds r3, r1, 0
+_081618E8:
+ lsls r0, r2, 24
+ asrs r1, r0, 24
+ ldr r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08161900
+ adds r0, r1, 0
+ b _08161910
+ .pool
+_08161900:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, r3
+ blt _081618E8
+_0816190C:
+ movs r0, 0x1
+ negs r0, r0
+_08161910:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81618D0
+
+ thumb_func_start sub_8161918
+sub_8161918: @ 8161918
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, =gDecorations
+ lsls r0, r3, 5
+ adds r0, r1
+ ldrb r0, [r0, 0x13]
+ movs r2, 0
+ ldr r1, =gDecorationInventories
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x4]
+ cmp r2, r1
+ bcs _08161956
+ ldr r4, [r0]
+_08161936:
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, r3
+ bne _0816194C
+ movs r0, 0x1
+ b _08161958
+ .pool
+_0816194C:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r1
+ bcc _08161936
+_08161956:
+ movs r0, 0
+_08161958:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8161918
+
+ thumb_func_start DecorationAdd
+DecorationAdd: @ 8161960
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081619A0
+ ldr r1, =gDecorations
+ lsls r0, r4, 5
+ adds r0, r1
+ ldrb r5, [r0, 0x13]
+ adds r0, r5, 0
+ bl sub_81618D0
+ lsls r0, 24
+ asrs r2, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ beq _081619A0
+ ldr r0, =gDecorationInventories
+ lsls r1, r5, 3
+ adds r1, r0
+ ldr r0, [r1]
+ adds r0, r2
+ strb r4, [r0]
+ movs r0, 0x1
+ b _081619A2
+ .pool
+_081619A0:
+ movs r0, 0
+_081619A2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end DecorationAdd
+
+ thumb_func_start DecorationCheckSpace
+DecorationCheckSpace: @ 81619A8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _081619D4
+ ldr r1, =gDecorations
+ lsls r0, 5
+ adds r0, r1
+ ldrb r0, [r0, 0x13]
+ bl sub_81618D0
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _081619D4
+ movs r0, 0x1
+ b _081619D6
+ .pool
+_081619D4:
+ movs r0, 0
+_081619D6:
+ pop {r1}
+ bx r1
+ thumb_func_end DecorationCheckSpace
+
+ thumb_func_start DecorationRemove
+DecorationRemove: @ 81619DC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ cmp r5, 0
+ bne _081619F8
+ b _08161A26
+_081619EA:
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r6, 0
+ bl sub_8161A38
+ movs r0, 0x1
+ b _08161A28
+_081619F8:
+ ldr r2, =gDecorationInventories
+ ldr r1, =gDecorations
+ lsls r0, r5, 5
+ adds r0, r1
+ ldrb r4, [r0, 0x13]
+ lsls r0, r4, 3
+ adds r0, r2
+ ldrb r1, [r0, 0x4]
+ cmp r3, r1
+ bcs _08161A26
+ adds r6, r4, 0
+ adds r4, r0, 0
+ adds r2, r1, 0
+_08161A12:
+ ldr r0, [r4]
+ adds r1, r0, r3
+ ldrb r0, [r1]
+ cmp r0, r5
+ beq _081619EA
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r2
+ bcc _08161A12
+_08161A26:
+ movs r0, 0
+_08161A28:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end DecorationRemove
+
+ thumb_func_start sub_8161A38
+sub_8161A38: @ 8161A38
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ movs r6, 0
+ ldr r2, =gDecorationInventories
+ lsrs r0, 21
+ adds r1, r0, r2
+ ldrb r3, [r1, 0x4]
+ cmp r6, r3
+ bcs _08161ABC
+ adds r7, r0, 0
+ mov r10, r1
+ mov r0, r10
+ str r0, [sp]
+_08161A5C:
+ adds r1, r6, 0x1
+ lsls r0, r1, 24
+ lsrs r3, r0, 24
+ adds r2, r7, 0
+ mov r12, r1
+ mov r1, r10
+ ldrb r1, [r1, 0x4]
+ cmp r3, r1
+ bcs _08161AAE
+ ldr r0, =gDecorationInventories
+ mov r9, r0
+ adds r1, r0, 0
+ mov r8, r1
+_08161A76:
+ mov r0, r9
+ adds r5, r2, r0
+ ldr r1, [r5]
+ adds r0, r1, r3
+ ldrb r4, [r0]
+ adds r2, r4, 0
+ cmp r2, 0
+ beq _08161A9C
+ adds r0, r1, r6
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _08161A92
+ cmp r1, r2
+ bls _08161A9C
+_08161A92:
+ ldrb r1, [r0]
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, r3
+ strb r1, [r0]
+_08161A9C:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r2, r7, 0
+ mov r1, r8
+ adds r0, r2, r1
+ ldrb r0, [r0, 0x4]
+ cmp r3, r0
+ bcc _08161A76
+_08161AAE:
+ mov r3, r12
+ lsls r0, r3, 24
+ lsrs r6, r0, 24
+ ldr r0, [sp]
+ ldrb r0, [r0, 0x4]
+ cmp r6, r0
+ bcc _08161A5C
+_08161ABC:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8161A38
+
+ thumb_func_start sub_8161AD0
+sub_8161AD0: @ 8161AD0
+ push {r4,r5,lr}
+ lsls r0, 24
+ movs r4, 0
+ movs r3, 0
+ ldr r2, =gDecorationInventories
+ lsrs r1, r0, 21
+ adds r0, r1, r2
+ ldrb r0, [r0, 0x4]
+ cmp r4, r0
+ bcs _08161B04
+ adds r5, r2, 0
+_08161AE6:
+ adds r2, r1, r5
+ ldr r0, [r2]
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08161AF8
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08161AF8:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r2, [r2, 0x4]
+ cmp r3, r2
+ bcc _08161AE6
+_08161B04:
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8161AD0
+
+ thumb_func_start sub_8161B10
+sub_8161B10: @ 8161B10
+ push {r4,r5,lr}
+ movs r5, 0
+ movs r4, 0
+_08161B16:
+ adds r0, r4, 0
+ bl sub_8161AD0
+ adds r0, r5, r0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _08161B16
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8161B10
+
+ .align 2, 0 @ Don't pad with nop.
+ \ No newline at end of file
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
index 7d5e0df40..d123b23f2 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -5910,7 +5910,7 @@ sub_811D028: @ 811D028
str r4, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r4-r6}
pop {r0}
diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s
index d1d26b62a..db900298e 100644
--- a/asm/egg_hatch.s
+++ b/asm/egg_hatch.s
@@ -104,7 +104,7 @@ _080713AE:
ldr r1, [sp, 0x3C]
movs r2, 0x5
movs r3, 0x20
- bl create_pokemon_set_level
+ bl CreateMon
movs r4, 0
_0807141E:
adds r1, r4, 0
@@ -248,7 +248,7 @@ sub_80714B8: @ 80714B8
adds r0, r5, 0
bl sub_806E924
adds r0, r5, 0
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
add sp, 0x14
pop {r4,r5}
pop {r0}
diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s
index 45ca5f0aa..84bacd78b 100644
--- a/asm/evolution_scene.s
+++ b/asm/evolution_scene.s
@@ -1130,7 +1130,7 @@ _0813E4A0:
ldrb r0, [r4]
muls r0, r6
adds r0, r5
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
bl calc_player_party_count
ldr r0, =gEvolutionTable
mov r4, r8
@@ -1643,7 +1643,7 @@ _0813E99E:
movs r1, 0xB
bl SetMonData
mov r0, r9
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
ldrh r1, [r4, 0xA]
ldrh r2, [r4, 0xC]
mov r0, r9
@@ -2827,7 +2827,7 @@ _0813F4F2:
movs r1, 0xB
bl SetMonData
mov r0, r9
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
ldrh r1, [r4, 0xA]
ldrh r2, [r4, 0xC]
mov r0, r9
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s
index 8b52e3b76..5791d9fcf 100644
--- a/asm/field_control_avatar.s
+++ b/asm/field_control_avatar.s
@@ -456,7 +456,7 @@ _0809C214:
bl PlaySE
_0809C244:
adds r0, r4, 0
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
movs r0, 0x1
_0809C24C:
pop {r4}
@@ -1175,7 +1175,7 @@ sub_809C868: @ 809C868
cmp r0, 0x2
bne _0809C894
ldr r0, =gUnknown_08290B0F
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
movs r0, 0x1
b _0809C896
.pool
@@ -1204,7 +1204,7 @@ sub_809C89C: @ 809C89C
cmp r0, 0x1
bne _0809C8D4
ldr r0, =gUnknown_08290B5A
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
movs r0, 0x1
b _0809C8D6
.pool
@@ -1278,7 +1278,7 @@ mapheader_trigger_activate_at__run_now: @ 809C938
bl mapheader_trigger_activate_at
cmp r0, 0
beq _0809C964
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
movs r0, 0x1
b _0809C966
.pool
@@ -1312,7 +1312,7 @@ _0809C988:
beq _0809C9A4
ldr r0, =gUnknown_08252BE8
_0809C996:
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
movs r0, 0x1
b _0809C9EA
.pool
@@ -1386,7 +1386,7 @@ _0809CA04:
cmp r0, 0x1
bne _0809CA48
ldr r0, =gUnknown_082736BC
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
b _0809CB28
.pool
_0809CA48:
@@ -1397,7 +1397,7 @@ _0809CA48:
movs r0, 0xD
bl IncrementGameStat
ldr r0, =gUnknown_08291FC0
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
b _0809CB28
.pool
_0809CA64:
@@ -1407,7 +1407,7 @@ _0809CA64:
cmp r0, 0x1
bne _0809CA7C
ldr r0, =gUnknown_08273D1F
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
b _0809CB28
.pool
_0809CA7C:
@@ -1417,7 +1417,7 @@ _0809CA7C:
cmp r0, 0x1
bne _0809CA94
ldr r0, =gUnknown_08238EAF
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
b _0809CB28
.pool
_0809CA94:
@@ -1425,7 +1425,7 @@ _0809CA94:
cmp r0, 0x1
bne _0809CAA8
ldr r0, =gUnknown_081DF7BA
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
b _0809CB28
.pool
_0809CAA8:
@@ -1433,7 +1433,7 @@ _0809CAA8:
cmp r0, 0x1
bne _0809CABC
ldr r0, =gUnknown_081F49EC
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
b _0809CB28
.pool
_0809CABC:
@@ -1441,7 +1441,7 @@ _0809CABC:
cmp r0, 0x1
bne _0809CAD0
ldr r0, =gUnknown_081FA4D6
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
b _0809CB28
.pool
_0809CAD0:
@@ -1449,7 +1449,7 @@ _0809CAD0:
cmp r0, 0x1
bne _0809CAE4
ldr r0, =gUnknown_0821307B
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
b _0809CB28
.pool
_0809CAE4:
@@ -1457,7 +1457,7 @@ _0809CAE4:
cmp r0, 0x1
bne _0809CAF8
ldr r0, =gUnknown_08224175
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
b _0809CB28
.pool
_0809CAF8:
@@ -1471,7 +1471,7 @@ _0809CAF8:
cmp r0, 0x1
bne _0809CB1C
ldr r0, =gUnknown_0823C050
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
b _0809CB28
.pool
_0809CB1C:
@@ -1765,7 +1765,7 @@ _0809CD50:
cmp r0, 0x1
bne _0809CD6C
ldr r0, =gUnknown_082A8350
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
movs r0, 0x1
b _0809CD8C
.pool
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
index e88eaa650..f706c43bf 100644
--- a/asm/field_player_avatar.s
+++ b/asm/field_player_avatar.s
@@ -4294,7 +4294,7 @@ _0808CA94:
movs r0, 0
movs r1, 0x1
add r2, sp, 0xC
- bl Print
+ bl PrintTextOnWindow
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
@@ -4405,7 +4405,7 @@ fish6: @ 808CB6C
movs r0, 0
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
diff --git a/asm/field_region_map.s b/asm/field_region_map.s
index dc3cd7034..fc0a38de6 100644
--- a/asm/field_region_map.s
+++ b/asm/field_region_map.s
@@ -172,7 +172,7 @@ _08170300:
str r4, [sp, 0x8]
movs r1, 0x1
adds r2, r5, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0
@@ -303,7 +303,7 @@ sub_8170428: @ 8170428
str r0, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
b _08170470
diff --git a/asm/fldeff_80F9BCC.s b/asm/fldeff_80F9BCC.s
index ac1cd5a82..8758d3d94 100644
--- a/asm/fldeff_80F9BCC.s
+++ b/asm/fldeff_80F9BCC.s
@@ -590,7 +590,7 @@ sub_80FA004: @ 80FA004
cmp r0, 0x1
bne _080FA070
bl sub_80F9F5C
- ldr r1, =gUnknown_03005DB0
+ ldr r1, =gFieldCallback
ldr r0, =hm_add_c3_launch_phase_2
str r0, [r1]
ldr r1, =gUnknown_0203CEEC
@@ -605,7 +605,7 @@ _080FA070:
cmp r0, 0x1
bne _080FA0A0
bl sub_80F9F5C
- ldr r1, =gUnknown_03005DB0
+ ldr r1, =gFieldCallback
ldr r0, =hm_add_c3_launch_phase_2
str r0, [r1]
ldr r1, =gUnknown_0203CEEC
@@ -624,7 +624,7 @@ _080FA0AE:
b _080FA0C4
_080FA0B2:
bl sub_80F9F5C
- ldr r1, =gUnknown_03005DB0
+ ldr r1, =gFieldCallback
ldr r0, =hm_add_c3_launch_phase_2
str r0, [r1]
ldr r1, =gUnknown_0203CEEC
@@ -648,7 +648,7 @@ sub_80FA0DC: @ 80FA0DC
lsrs r0, 24
str r0, [r1]
ldr r0, =gUnknown_08275A86
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
pop {r0}
bx r0
.pool
@@ -783,7 +783,7 @@ sub_80FA1E8: @ 80FA1E8
lsrs r0, 24
str r0, [r1]
ldr r0, =gUnknown_08275ADF
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
pop {r0}
bx r0
.pool
@@ -956,7 +956,7 @@ sub_80FA34C: @ 80FA34C
lsrs r0, 24
str r0, [r1]
ldr r0, =gUnknown_08275B38
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
pop {r0}
bx r0
.pool
diff --git a/asm/fldeff_strength.s b/asm/fldeff_strength.s
index e96a9c066..67e4126b9 100644
--- a/asm/fldeff_strength.s
+++ b/asm/fldeff_strength.s
@@ -22,7 +22,7 @@ _08145DD8:
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
- ldr r1, =gUnknown_03005DB0
+ ldr r1, =gFieldCallback
ldr r0, =hm_add_c3_launch_phase_2
str r0, [r1]
ldr r1, =gUnknown_0203CEEC
@@ -45,7 +45,7 @@ sub_8145E0C: @ 8145E0C
lsrs r0, 24
str r0, [r1]
ldr r0, =gUnknown_082908FD
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
pop {r0}
bx r0
.pool
diff --git a/asm/fldeff_sweetscent.s b/asm/fldeff_sweetscent.s
new file mode 100644
index 000000000..d4036acd2
--- /dev/null
+++ b/asm/fldeff_sweetscent.s
@@ -0,0 +1,220 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start SetUpFieldMove_SweetScent
+SetUpFieldMove_SweetScent: @ 8159EF0
+ ldr r1, =gFieldCallback
+ ldr r0, =hm_add_c3_launch_phase_2
+ str r0, [r1]
+ ldr r1, =gUnknown_0203CEEC
+ ldr r0, =hm2_sweet_scent
+ str r0, [r1]
+ movs r0, 0x1
+ bx lr
+ .pool
+ thumb_func_end SetUpFieldMove_SweetScent
+
+ thumb_func_start hm2_sweet_scent
+hm2_sweet_scent: @ 8159F10
+ push {lr}
+ movs r0, 0x33
+ bl FieldEffectStart
+ bl brm_get_pokemon_selection
+ ldr r1, =gUnknown_02038C08
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end hm2_sweet_scent
+
+ thumb_func_start FldEff_SweetScent
+FldEff_SweetScent: @ 8159F2C
+ push {lr}
+ bl sub_80AC3D0
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, =sub_8159F5C
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end FldEff_SweetScent
+
+ thumb_func_start sub_8159F5C
+sub_8159F5C: @ 8159F5C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r0, 0xEC
+ bl PlaySE
+ ldr r5, =gPlttBufferUnfaded
+ ldr r1, =gPaletteDecompressionBuffer
+ movs r4, 0x80
+ lsls r4, 1
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl CpuFastSet
+ ldr r0, =gPlttBufferFaded
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CpuFastSet
+ bl GetPlayerAvatarObjectId
+ ldr r2, =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x5]
+ lsrs r1, 4
+ adds r1, 0x10
+ movs r0, 0x1
+ lsls r0, r1
+ mvns r0, r0
+ movs r1, 0x1F
+ str r1, [sp]
+ movs r1, 0x4
+ movs r2, 0
+ movs r3, 0x8
+ bl BeginNormalPaletteFade
+ ldr r0, =sub_8159FEC
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ movs r0, 0x33
+ bl FieldEffectActiveListRemove
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8159F5C
+
+ thumb_func_start sub_8159FEC
+sub_8159FEC: @ 8159FEC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ bne _0815A088
+ bl sub_81BE72C
+ movs r0, 0x40
+ movs r1, 0x8
+ movs r2, 0x1F
+ bl BlendPalettes
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r4, r1, r0
+ ldrh r1, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x40
+ bne _0815A084
+ strh r6, [r4, 0x8]
+ bl SweetScentWildEncounter
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0815A044
+ adds r0, r5, 0
+ bl DestroyTask
+ b _0815A088
+ .pool
+_0815A044:
+ ldr r0, =sub_815A090
+ str r0, [r4]
+ bl GetPlayerAvatarObjectId
+ ldr r2, =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x5]
+ lsrs r1, 4
+ adds r1, 0x10
+ movs r0, 0x1
+ lsls r0, r1
+ mvns r0, r0
+ movs r1, 0x1F
+ str r1, [sp]
+ movs r1, 0x4
+ movs r2, 0x8
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ bl sub_81BE6B8
+ b _0815A088
+ .pool
+_0815A084:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x8]
+_0815A088:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8159FEC
+
+ thumb_func_start sub_815A090
+sub_815A090: @ 815A090
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0815A0BE
+ ldr r0, =gPaletteDecompressionBuffer
+ ldr r1, =gPlttBufferUnfaded
+ movs r2, 0x80
+ lsls r2, 1
+ bl CpuFastSet
+ bl sub_80AC3E4
+ ldr r0, =gUnknown_08290CAE
+ bl ScriptContext1_SetupScript
+ adds r0, r4, 0
+ bl DestroyTask
+_0815A0BE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815A090
+
+ .align 2, 0 @ Don't pad with nop.
+ \ No newline at end of file
diff --git a/asm/fldeff_teleport.s b/asm/fldeff_teleport.s
index bbca5095f..21160d5b4 100644
--- a/asm/fldeff_teleport.s
+++ b/asm/fldeff_teleport.s
@@ -19,7 +19,7 @@ SetUpFieldMove_Teleport: @ 817C8BC
b _0817C8E6
.pool
_0817C8D8:
- ldr r1, =gUnknown_03005DB0
+ ldr r1, =gFieldCallback
ldr r0, =hm_add_c3_launch_phase_2
str r0, [r1]
ldr r1, =gUnknown_0203CEEC
diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s
index 1f7a56418..4d54a1ca7 100644
--- a/asm/hall_of_fame.s
+++ b/asm/hall_of_fame.s
@@ -2572,7 +2572,7 @@ _08174B8C:
lsls r0, r1, 23
lsrs r0, 23
ldr r1, [r7, 0x4]
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
lsls r0, 24
lsrs r0, 24
cmp r0, 0
diff --git a/asm/intro.s b/asm/intro.s
index 26ed312d6..efd52e7fd 100644
--- a/asm/intro.s
+++ b/asm/intro.s
@@ -307,7 +307,7 @@ c2_copyright_1: @ 816CEAC
bl sub_815355C
lsls r0, 16
lsrs r0, 16
- bl InitSaveBlockPointersWithRandomOffset
+ bl SetSaveBlocksPointers
bl sub_808447C
bl ResetSaveCounters
movs r0, 0
diff --git a/asm/item_use.s b/asm/item_use.s
index 4f9e9e65a..4b86fc7db 100644
--- a/asm/item_use.s
+++ b/asm/item_use.s
@@ -1667,7 +1667,7 @@ sub_80FDD74: @ 80FDD74
bl RemoveBagItem
bl script_env_2_enable
ldr r0, =gUnknown_08274482
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
adds r0, r4, 0
bl DestroyTask
pop {r4}
@@ -1729,7 +1729,7 @@ sub_80FDE08: @ 80FDE08
lsrs r4, 24
bl script_env_2_enable
ldr r0, =gUnknown_082744C0
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
adds r0, r4, 0
bl DestroyTask
pop {r4}
@@ -1788,7 +1788,7 @@ sub_80FDE7C: @ 80FDE7C
lsrs r4, 24
bl script_env_2_enable
ldr r0, =gUnknown_08242CFC
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
adds r0, r4, 0
bl DestroyTask
pop {r4}
diff --git a/asm/link.s b/asm/link.s
index 39cf6ba5e..2c66dae74 100644
--- a/asm/link.s
+++ b/asm/link.s
@@ -33391,7 +33391,7 @@ _0801AAE4:
adds r5, r4, r0
_0801AB0A:
adds r0, r4, 0
- bl zero_pokemon_struct
+ bl ZeroMonData
adds r4, 0x64
cmp r4, r5
ble _0801AB0A
@@ -33412,7 +33412,7 @@ _0801AB1E:
movs r0, 0x32
bl IncrementGameStat
bl calc_player_party_count
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
movs r2, 0xC0
lsls r2, 4
adds r1, r2, 0
@@ -43761,7 +43761,7 @@ sub_801FDDC: @ 801FDDC
str r4, [sp, 0x4]
str r6, [sp, 0x8]
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r5]
ldrb r0, [r0, 0x18]
ldr r2, =gUnknown_085EAE66
@@ -43771,7 +43771,7 @@ sub_801FDDC: @ 801FDDC
str r6, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r5]
ldrb r0, [r0, 0x18]
movs r1, 0x1
@@ -52672,8 +52672,8 @@ SetBerryPowder: @ 802467C
.pool
thumb_func_end SetBerryPowder
- thumb_func_start sub_8024690
-sub_8024690: @ 8024690
+ thumb_func_start ApplyNewEncyprtionKeyToBerryPowder
+ApplyNewEncyprtionKeyToBerryPowder: @ 8024690
push {lr}
adds r1, r0, 0
ldr r0, =gSaveBlock2Ptr
@@ -52681,11 +52681,11 @@ sub_8024690: @ 8024690
movs r2, 0xFA
lsls r2, 1
adds r0, r2
- bl apply_u32_xor_crypto
+ bl ApplyNewEncyprtionKeyToWord
pop {r0}
bx r0
.pool
- thumb_func_end sub_8024690
+ thumb_func_end ApplyNewEncyprtionKeyToBerryPowder
thumb_func_start sub_80246AC
sub_80246AC: @ 80246AC
@@ -52875,7 +52875,7 @@ sub_80247D4: @ 80247D4
movs r1, 0x1
mov r2, r9
mov r3, r8
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r3,r4}
mov r8, r3
@@ -52917,7 +52917,7 @@ sub_802482C: @ 802482C
adds r0, r6, 0
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
str r4, [sp]
adds r0, r6, 0
mov r1, r8
@@ -59432,7 +59432,7 @@ sub_8027BEC: @ 8027BEC
adds r0, r7, 0
movs r1, 0x1
adds r2, r4, 0
- bl Print
+ bl PrintTextOnWindow
movs r6, 0
ldr r2, =gStringVar1
mov r8, r2
@@ -59474,7 +59474,7 @@ _08027C76:
adds r0, r7, 0
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldr r2, [sp, 0x18]
lsls r3, r2, 3
subs r3, r5
@@ -59491,7 +59491,7 @@ _08027C76:
adds r0, r7, 0
movs r1, 0x1
mov r2, r8
- bl Print
+ bl PrintTextOnWindow
adds r6, 0x1
cmp r6, 0x2
ble _08027C76
@@ -62870,7 +62870,7 @@ _08029774:
str r3, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
bl link_get_multiplayer_id
lsls r0, 24
lsrs r0, 24
@@ -62926,7 +62926,7 @@ _080297CC:
str r1, [sp, 0x8]
movs r1, 0x1
add r2, sp, 0xC
- bl Print
+ bl PrintTextOnWindow
ldr r2, =gUnknown_02022CF8
ldr r0, [r2]
add r0, r10
@@ -62941,7 +62941,7 @@ _080297CC:
movs r1, 0x1
ldr r2, =gUnknown_085EDE5D
lsrs r3, 24
- bl Print
+ bl PrintTextOnWindow
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
@@ -63080,7 +63080,7 @@ _0802996C:
movs r5, 0
str r5, [sp, 0x8]
mov r2, r8
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r4]
add r0, r9
ldrb r0, [r0]
@@ -63091,7 +63091,7 @@ _0802996C:
str r5, [sp, 0x8]
movs r1, 0x1
movs r3, 0x44
- bl Print
+ bl PrintTextOnWindow
mov r9, r5
ldr r0, [sp, 0xC]
cmp r9, r0
@@ -63219,7 +63219,7 @@ _08029AE0:
str r1, [sp, 0x8]
movs r1, 0x1
ldr r2, =gStringVar4
- bl Print
+ bl PrintTextOnWindow
_08029B10:
adds r0, r7, 0x1
lsls r0, 24
@@ -63347,7 +63347,7 @@ _08029BFC:
str r1, [sp, 0x8]
movs r1, 0x1
adds r2, r6, 0
- bl Print
+ bl PrintTextOnWindow
b _08029F88
.pool
_08029C60:
@@ -63513,7 +63513,7 @@ _08029DA0:
str r6, [sp, 0x8]
movs r1, 0x1
adds r2, r5, 0
- bl Print
+ bl PrintTextOnWindow
bl sub_81AFBF0
bl sub_802762C
lsls r0, 16
@@ -63539,7 +63539,7 @@ _08029DA0:
movs r1, 0x1
adds r2, r7, 0
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
bl sub_80279C8
lsls r0, 24
lsrs r4, r0, 24
@@ -63585,7 +63585,7 @@ _08029EA8:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
_08029EC8:
ldr r4, =gUnknown_02022CF8
ldr r0, [r4]
@@ -63819,7 +63819,7 @@ _0802A0CC:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r7]
add r0, r10
ldrb r0, [r0]
@@ -63831,7 +63831,7 @@ _0802A0CC:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r7]
add r0, r10
ldrb r0, [r0]
@@ -63844,7 +63844,7 @@ _0802A0CC:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r7]
add r0, r10
ldrb r0, [r0]
@@ -63856,7 +63856,7 @@ _0802A0CC:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r7]
add r0, r8
ldrb r0, [r0]
@@ -63923,7 +63923,7 @@ _0802A1DC:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r7]
add r0, r8
ldrb r0, [r0]
@@ -63936,7 +63936,7 @@ _0802A1DC:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r7]
add r0, r8
ldrb r0, [r0]
@@ -63953,7 +63953,7 @@ _0802A1DC:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r7]
add r0, r8
ldrb r0, [r0]
@@ -64243,7 +64243,7 @@ _0802A4AC:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r5]
adds r0, r4
ldrb r0, [r0]
@@ -64403,7 +64403,7 @@ _0802A610:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r6]
adds r0, r4
ldrb r0, [r0]
@@ -70279,7 +70279,7 @@ _0802D46A:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r5]
ldrb r0, [r0, 0x12]
movs r1, 0x2
@@ -70363,7 +70363,7 @@ _0802D516:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r5]
ldrb r0, [r0, 0x12]
movs r1, 0x2
@@ -70481,7 +70481,7 @@ _0802D606:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r5]
ldrb r0, [r0, 0x12]
movs r1, 0x2
@@ -70561,7 +70561,7 @@ _0802D6AA:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r5]
ldrb r0, [r0, 0x12]
movs r1, 0x2
@@ -70760,7 +70760,7 @@ sub_802D7E8: @ 802D7E8
str r1, [sp, 0x4]
str r3, [sp, 0x8]
movs r1, 0x1
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r5]
ldrb r0, [r0, 0x12]
movs r1, 0x2
@@ -70814,7 +70814,7 @@ sub_802D884: @ 802D884
str r5, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r4]
ldrb r0, [r0, 0x12]
movs r1, 0x2
@@ -70867,7 +70867,7 @@ sub_802D8FC: @ 802D8FC
str r5, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r4]
ldrb r0, [r0, 0x12]
movs r1, 0x2
@@ -72425,7 +72425,7 @@ sub_802E500: @ 802E500
adds r0, r4, 0
movs r1, 0x1
adds r2, r5, 0
- bl Print
+ bl PrintTextOnWindow
movs r6, 0
adds r7, r4, 0
movs r0, 0xFF
@@ -72453,7 +72453,7 @@ _0802E58A:
adds r0, r7, 0
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, [sp, 0x20]
ldm r0!, {r1}
str r0, [sp, 0x20]
@@ -72480,7 +72480,7 @@ _0802E58A:
adds r0, r7, 0
movs r1, 0x1
adds r2, r5, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x80
lsls r0, 21
add r8, r0
diff --git a/asm/load_save.s b/asm/load_save.s
index 344e05147..08170b446 100644
--- a/asm/load_save.s
+++ b/asm/load_save.s
@@ -5,97 +5,9 @@
.text
- thumb_func_start CheckForFlashMemory
-@ void CheckForFlashMemory()
-CheckForFlashMemory: @ 8076B68
- push {lr}
- bl IdentifyFlash
- lsls r0, 16
- cmp r0, 0
- bne _08076B84
- ldr r1, =gFlashMemoryPresent
- movs r0, 0x1
- str r0, [r1]
- bl StartFlashMemoryTimer
- b _08076B8A
- .pool
-_08076B84:
- ldr r1, =gFlashMemoryPresent
- movs r0, 0
- str r0, [r1]
-_08076B8A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end CheckForFlashMemory
-
- thumb_func_start ClearSav2
-ClearSav2: @ 8076B94
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r1, =gUnknown_02024A54
- ldr r2, =0x010007d6
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .pool
- thumb_func_end ClearSav2
-
- thumb_func_start ClearSav1
-ClearSav1: @ 8076BB8
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r1, =gUnknown_02025A00
- ldr r2, =0x01001f04
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .pool
- thumb_func_end ClearSav1
-
- thumb_func_start InitSaveBlockPointersWithRandomOffset
-@ void InitSaveBlockPointersWithRandomOffset(u8 offset)
-InitSaveBlockPointersWithRandomOffset: @ 8076BDC
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r5, =gSaveBlock1Ptr
- bl Random
- adds r4, r0
- movs r0, 0x7C
- ands r4, r0
- ldr r1, =gSaveBlock2Ptr
- ldr r0, =gUnknown_02024A54
- adds r0, r4, r0
- str r0, [r1]
- ldr r0, =gUnknown_02025A00
- adds r0, r4, r0
- str r0, [r5]
- ldr r1, =gUnknown_03005D94
- ldr r0, =gUnknown_02029808
- adds r4, r0
- str r4, [r1]
- bl SetBagItemsPointers
- bl sub_81617F4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end InitSaveBlockPointersWithRandomOffset
- thumb_func_start saveblock_randomize_and_relocate
-saveblock_randomize_and_relocate: @ 8076C2C
+ thumb_func_start MoveSaveBlocks_ResetHeap
+MoveSaveBlocks_ResetHeap: @ 8076C2C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -126,7 +38,7 @@ saveblock_randomize_and_relocate: @ 8076C2C
ldr r0, =0x02000f2c
adds r2, r7, 0
bl memcpy
- ldr r0, =gUnknown_03005D94
+ ldr r0, =gPokemonStoragePtr
mov r8, r0
ldr r1, [r0]
ldr r0, =0x000083d0
@@ -141,7 +53,7 @@ saveblock_randomize_and_relocate: @ 8076C2C
adds r1, r0
ldrb r0, [r4, 0xD]
adds r0, r1
- bl InitSaveBlockPointersWithRandomOffset
+ bl SetSaveBlocksPointers
ldr r1, =gSaveBlock2Ptr
ldr r0, [r1]
adds r1, r4, 0
@@ -173,7 +85,7 @@ saveblock_randomize_and_relocate: @ 8076C2C
lsrs r0, 16
adds r4, r0
adds r0, r4, 0
- bl saveblock_apply_crypto
+ bl ApplyNewEncyprtionKeyToAllEncryptedData
ldr r1, =gSaveBlock2Ptr
ldr r0, [r1]
adds r0, 0xAC
@@ -187,7 +99,7 @@ saveblock_randomize_and_relocate: @ 8076C2C
pop {r0}
bx r0
.pool
- thumb_func_end saveblock_randomize_and_relocate
+ thumb_func_end MoveSaveBlocks_ResetHeap
thumb_func_start sav2_x1_query_bit1
sav2_x1_query_bit1: @ 8076D24
@@ -713,8 +625,8 @@ ApplyNewEncyprtionKeyToHword: @ 8077100
.pool
thumb_func_end ApplyNewEncyprtionKeyToHword
- thumb_func_start apply_u32_xor_crypto
-apply_u32_xor_crypto: @ 8077118
+ thumb_func_start ApplyNewEncyprtionKeyToWord
+ApplyNewEncyprtionKeyToWord: @ 8077118
ldr r2, =gSaveBlock2Ptr
ldr r3, [r2]
adds r3, 0xAC
@@ -725,24 +637,24 @@ apply_u32_xor_crypto: @ 8077118
str r2, [r0]
bx lr
.pool
- thumb_func_end apply_u32_xor_crypto
+ thumb_func_end ApplyNewEncyprtionKeyToWord
- thumb_func_start saveblock_apply_crypto
-saveblock_apply_crypto: @ 8077130
+ thumb_func_start ApplyNewEncyprtionKeyToAllEncryptedData
+ApplyNewEncyprtionKeyToAllEncryptedData: @ 8077130
push {r4,r5,lr}
adds r4, r0, 0
- bl sub_8084864
+ bl ApplyNewEncyprtionKeyToGameStats
adds r0, r4, 0
bl ApplyNewEncyprtionKeyToBagItems_
adds r0, r4, 0
- bl sub_8024690
+ bl ApplyNewEncyprtionKeyToBerryPowder
ldr r5, =gSaveBlock1Ptr
ldr r0, [r5]
movs r1, 0x92
lsls r1, 3
adds r0, r1
adds r1, r4, 0
- bl apply_u32_xor_crypto
+ bl ApplyNewEncyprtionKeyToWord
ldr r0, [r5]
ldr r1, =0x00000494
adds r0, r1
@@ -752,6 +664,6 @@ saveblock_apply_crypto: @ 8077130
pop {r0}
bx r0
.pool
- thumb_func_end saveblock_apply_crypto
+ thumb_func_end ApplyNewEncyprtionKeyToAllEncryptedData
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/lottery_corner.s b/asm/lottery_corner.s
index fff59640f..c80e780c8 100644
--- a/asm/lottery_corner.s
+++ b/asm/lottery_corner.s
@@ -133,7 +133,7 @@ _0817764E:
bls _081775FC
_08177658:
movs r7, 0
- ldr r1, =gUnknown_03005D94
+ ldr r1, =gPokemonStoragePtr
mov r9, r1
_0817765E:
movs r6, 0
@@ -156,7 +156,7 @@ _0817766A:
lsls r4, r1, 4
adds r0, r4
movs r1, 0xB
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
beq _081776D2
mov r1, r9
@@ -164,7 +164,7 @@ _0817766A:
adds r0, r5
adds r0, r4
movs r1, 0x2D
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
bne _081776D2
mov r2, r9
@@ -172,7 +172,7 @@ _0817766A:
adds r0, r5
adds r0, r4
movs r1, 0x1
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
adds r1, r0, 0
ldr r0, =gScriptResult
ldrh r0, [r0]
@@ -233,7 +233,7 @@ _0817773C:
ldr r1, =gSpecialVar_0x8006
movs r0, 0x1
strh r0, [r1]
- ldr r2, =gUnknown_03005D94
+ ldr r2, =gPokemonStoragePtr
ldr r1, [sp]
lsls r0, r1, 2
adds r0, r1
@@ -250,7 +250,7 @@ _0817773C:
adds r0, r1
ldr r2, =gStringVar1
movs r1, 0x2
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
_08177768:
ldr r0, =gStringVar1
bl StringGetEnd10
diff --git a/asm/main_menu.s b/asm/main_menu.s
index 24923524b..0fa716115 100644
--- a/asm/main_menu.s
+++ b/asm/main_menu.s
@@ -4509,7 +4509,7 @@ CreateMainMenuErrorWindow: @ 8031E18
movs r1, 0x1
adds r2, r4, 0
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x7
bl PutWindowTilemap
movs r0, 0x7
diff --git a/asm/mauville_old_man.s b/asm/mauville_old_man.s
index e0b987f26..a1a9342dd 100644
--- a/asm/mauville_old_man.s
+++ b/asm/mauville_old_man.s
@@ -810,7 +810,7 @@ sub_8120708: @ 8120708
movs r1, 0x1
adds r2, r5, 0
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, =gUnknown_03002F84
strb r4, [r0]
movs r0, 0
@@ -2292,7 +2292,7 @@ _08121272:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x80
lsls r0, 21
adds r5, r0
@@ -2321,7 +2321,7 @@ _081212AA:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldrb r4, [r5]
bl sub_8120ED8
adds r1, r0, 0
diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s
index f01fc8569..acc3065ea 100644
--- a/asm/menu_helpers.s
+++ b/asm/menu_helpers.s
@@ -587,8 +587,8 @@ _08122208:
bx r1
thumb_func_end sub_81221EC
- thumb_func_start atk2D_jumpifarraynotequal
-atk2D_jumpifarraynotequal: @ 812220C
+ thumb_func_start sub_812220C
+sub_812220C: @ 812220C
push {r4-r6,lr}
adds r6, r2, 0
ldr r2, [sp, 0x10]
@@ -633,7 +633,7 @@ _08122254:
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end atk2D_jumpifarraynotequal
+ thumb_func_end sub_812220C
thumb_func_start sub_812225C
sub_812225C: @ 812225C
diff --git a/asm/money.s b/asm/money.s
index 41f2b2532..5ca263583 100644
--- a/asm/money.s
+++ b/asm/money.s
@@ -207,7 +207,7 @@ _080E5264:
adds r0, r7, 0
movs r1, 0x1
mov r3, r8
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r3}
mov r8, r3
diff --git a/asm/naming_screen.s b/asm/naming_screen.s
index b385fc444..cb90deb7f 100644
--- a/asm/naming_screen.s
+++ b/asm/naming_screen.s
@@ -3276,7 +3276,7 @@ sub_80E4894: @ 80E4894
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r5]
adds r0, r4
ldrb r0, [r0]
@@ -3328,7 +3328,7 @@ sub_80E48E8: @ 80E48E8
movs r1, 0x1
add r2, sp, 0xC
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r5]
adds r0, r4
ldrb r0, [r0]
@@ -3865,7 +3865,7 @@ _080E4D76:
str r1, [sp, 0x8]
movs r1, 0x1
add r2, sp, 0xC
- bl Print
+ bl PrintTextOnWindow
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
diff --git a/asm/option_menu.s b/asm/option_menu.s
index cc6acc5ac..214e23094 100644
--- a/asm/option_menu.s
+++ b/asm/option_menu.s
@@ -833,7 +833,7 @@ _080BABAE:
movs r1, 0x1
add r2, sp, 0xC
adds r3, r6, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0x1C
pop {r4-r6}
pop {r0}
@@ -1470,7 +1470,7 @@ sub_80BB0D0: @ 80BB0D0
str r0, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -1505,7 +1505,7 @@ _080BB114:
movs r0, 0x1
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
diff --git a/asm/player_pc.s b/asm/player_pc.s
index dc76f8138..a2711cb03 100644
--- a/asm/player_pc.s
+++ b/asm/player_pc.s
@@ -380,12 +380,12 @@ sub_816B148: @ 816B148
cmp r0, 0
bne _0816B174
ldr r0, =gUnknown_081F863F
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
b _0816B184
.pool
_0816B174:
ldr r0, =gUnknown_081F958F
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
b _0816B184
.pool
_0816B180:
@@ -472,7 +472,7 @@ sub_816B21C: @ 816B21C
movs r1, 0x1
adds r2, r4, 0
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r4}
pop {r0}
@@ -966,7 +966,7 @@ sub_816B5F8: @ 816B5F8
adds r0, r4, 0
movs r1, 0x1
adds r2, r6, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
ldr r4, =gUnknown_0203BCB8
@@ -1968,7 +1968,7 @@ _0816BE8E:
adds r0, r6, 0
movs r1, 0x7
adds r2, r4, 0
- bl Print
+ bl PrintTextOnWindow
_0816BED4:
add sp, 0xC
pop {r4-r6}
@@ -2019,7 +2019,7 @@ _0816BF32:
movs r1, 0x1
adds r2, r4, 0
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r4,r5}
pop {r0}
@@ -2252,7 +2252,7 @@ sub_816C110: @ 816C110
movs r1, 0x8
str r1, [sp]
movs r1, 0x32
- bl atk2D_jumpifarraynotequal
+ bl sub_812220C
add sp, 0x4
pop {r0}
bx r0
@@ -2317,7 +2317,7 @@ _0816C186:
str r1, [sp, 0x8]
movs r1, 0x1
adds r2, r5, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r4]
ldr r1, =0x00000662
adds r0, r1
@@ -2448,7 +2448,7 @@ sub_816C2C0: @ 816C2C0
movs r1, 0x1
adds r2, r4, 0
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r4-r6}
pop {r0}
@@ -2909,7 +2909,7 @@ sub_816C6BC: @ 816C6BC
adds r0, r6, 0
movs r1, 0x1
adds r2, r4, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r4-r6}
pop {r0}
diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s
index 7cb1f37c9..b599b365c 100644
--- a/asm/pokedex_area_screen.s
+++ b/asm/pokedex_area_screen.s
@@ -304,7 +304,7 @@ _0813CCB8:
adds r0, 0x10
adds r1, r2, 0
adds r1, 0x11
- bl sub_8161F64
+ bl GetRoamerLocation
ldr r1, [r5]
ldrb r0, [r1, 0x10]
ldrb r1, [r1, 0x11]
diff --git a/asm/pokemon_1.s b/asm/pokemon_1.s
index e10ed54c5..003150afe 100644
--- a/asm/pokemon_1.s
+++ b/asm/pokemon_1.s
@@ -5,9 +5,9 @@
.text
- thumb_func_start zero_pokemon_boxed_data
-@ void zero_pokemon_boxed_data(pokemon *mon)
-zero_pokemon_boxed_data: @ 8067A74
+ thumb_func_start ZeroBoxMonData
+@ void ZeroBoxMonData(pokemon *mon)
+ZeroBoxMonData: @ 8067A74
push {lr}
adds r2, r0, 0
movs r1, 0
@@ -20,15 +20,15 @@ _08067A7C:
bls _08067A7C
pop {r0}
bx r0
- thumb_func_end zero_pokemon_boxed_data
+ thumb_func_end ZeroBoxMonData
- thumb_func_start zero_pokemon_struct
-@ void zero_pokemon_struct(pokemon *mon)
-zero_pokemon_struct: @ 8067A8C
+ thumb_func_start ZeroMonData
+@ void ZeroMonData(pokemon *mon)
+ZeroMonData: @ 8067A8C
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
- bl zero_pokemon_boxed_data
+ bl ZeroBoxMonData
movs r0, 0
str r0, [sp]
adds r0, r4, 0
@@ -77,7 +77,7 @@ zero_pokemon_struct: @ 8067A8C
pop {r4}
pop {r0}
bx r0
- thumb_func_end zero_pokemon_struct
+ thumb_func_end ZeroMonData
thumb_func_start ZeroPlayerPartyMons
@ void ZeroPlayerPartyMons()
@@ -89,7 +89,7 @@ ZeroPlayerPartyMons: @ 8067B0C
adds r5, r4, r0
_08067B16:
adds r0, r4, 0
- bl zero_pokemon_struct
+ bl ZeroMonData
adds r4, 0x64
cmp r4, r5
ble _08067B16
@@ -108,7 +108,7 @@ ZeroEnemyPartyMons: @ 8067B2C
adds r5, r4, r0
_08067B36:
adds r0, r4, 0
- bl zero_pokemon_struct
+ bl ZeroMonData
adds r4, 0x64
cmp r4, r5
ble _08067B36
@@ -118,9 +118,9 @@ _08067B36:
.pool
thumb_func_end ZeroEnemyPartyMons
- thumb_func_start create_pokemon_set_level
-@ void create_pokemon_set_level(pokemon *mon, s16 species_num, u8 level, u8 forced_iv, char pokemon_id_is_nonrandom, int pokemon_id, u8 trainer_id_mode, int trainer_id)
-create_pokemon_set_level: @ 8067B4C
+ thumb_func_start CreateMon
+@ void CreateMon(pokemon *mon, s16 species_num, u8 level, u8 forced_iv, char pokemon_id_is_nonrandom, int pokemon_id, u8 trainer_id_mode, int trainer_id)
+CreateMon: @ 8067B4C
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -142,7 +142,7 @@ create_pokemon_set_level: @ 8067B4C
lsrs r5, 24
mov r0, r8
str r3, [sp, 0x18]
- bl zero_pokemon_struct
+ bl ZeroMonData
str r4, [sp]
str r7, [sp, 0x4]
str r5, [sp, 0x8]
@@ -153,7 +153,7 @@ create_pokemon_set_level: @ 8067B4C
add r2, sp, 0x10
ldrb r2, [r2]
ldr r3, [sp, 0x18]
- bl create_pokemon
+ bl CreateBoxMon
mov r0, r8
movs r1, 0x38
add r2, sp, 0x10
@@ -165,18 +165,18 @@ create_pokemon_set_level: @ 8067B4C
movs r1, 0x40
bl SetMonData
mov r0, r8
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
add sp, 0x1C
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end create_pokemon_set_level
+ thumb_func_end CreateMon
- thumb_func_start create_pokemon
-@ void create_pokemon(pokemon *mon, s16 species_num, u8 level, u8 forced_iv, char pokemon_id_is_nonrandom, int pokemon_id, u8 trainer_id_mode, int trainer_id)
-create_pokemon: @ 8067BBC
+ thumb_func_start CreateBoxMon
+@ void CreateBoxMon(pokemon *mon, s16 species_num, u8 level, u8 forced_iv, char pokemon_id_is_nonrandom, int pokemon_id, u8 trainer_id_mode, int trainer_id)
+CreateBoxMon: @ 8067BBC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -200,7 +200,7 @@ create_pokemon: @ 8067BBC
lsrs r0, 24
mov r10, r0
adds r0, r7, 0
- bl zero_pokemon_boxed_data
+ bl ZeroBoxMonData
cmp r4, 0
beq _08067BF8
ldr r0, [sp, 0x44]
@@ -219,7 +219,7 @@ _08067C0C:
add r2, sp, 0x14
adds r0, r7, 0
movs r1, 0
- bl SetMonData_encrypted
+ bl SetBoxMonData
add r0, sp, 0x18
mov r9, r0
add r5, sp, 0xC
@@ -280,37 +280,37 @@ _08067C8A:
adds r0, r7, 0
movs r1, 0x1
mov r2, r9
- bl SetMonData_encrypted
+ bl SetBoxMonData
adds r0, r7, 0
- bl pokemon_calc_checksum
+ bl CalculateBoxMonChecksum
strh r0, [r5]
adds r0, r7, 0
movs r1, 0x9
adds r2, r5, 0
- bl SetMonData_encrypted
+ bl SetBoxMonData
adds r0, r7, 0
- bl pokemon_encrypt
+ bl EncryptBoxMon
mov r0, sp
ldrh r1, [r0, 0xE]
bl GetSpeciesName
adds r0, r7, 0
movs r1, 0x2
mov r2, sp
- bl SetMonData_encrypted
+ bl SetBoxMonData
ldr r2, =gGameLanguage
adds r0, r7, 0
movs r1, 0x3
- bl SetMonData_encrypted
+ bl SetBoxMonData
ldr r5, =gSaveBlock2Ptr
ldr r2, [r5]
adds r0, r7, 0
movs r1, 0x7
- bl SetMonData_encrypted
+ bl SetBoxMonData
adds r0, r7, 0
movs r1, 0xB
mov r2, sp
adds r2, 0xE
- bl SetMonData_encrypted
+ bl SetBoxMonData
ldr r4, =gBaseStats
mov r2, sp
ldrh r1, [r2, 0xE]
@@ -331,7 +331,7 @@ _08067C8A:
adds r2, r0
adds r0, r7, 0
movs r1, 0x19
- bl SetMonData_encrypted
+ bl SetBoxMonData
mov r1, sp
ldrh r0, [r1, 0xE]
lsls r2, r0, 3
@@ -341,7 +341,7 @@ _08067C8A:
adds r2, r4
adds r0, r7, 0
movs r1, 0x20
- bl SetMonData_encrypted
+ bl SetBoxMonData
bl sav1_map_get_name
lsls r0, 24
lsrs r0, 24
@@ -349,26 +349,26 @@ _08067C8A:
adds r0, r7, 0
movs r1, 0x23
mov r2, r9
- bl SetMonData_encrypted
+ bl SetBoxMonData
adds r0, r7, 0
movs r1, 0x24
add r2, sp, 0x10
- bl SetMonData_encrypted
+ bl SetBoxMonData
ldr r2, =gGameVersion
adds r0, r7, 0
movs r1, 0x25
- bl SetMonData_encrypted
+ bl SetBoxMonData
movs r0, 0x4
str r0, [sp, 0x18]
adds r0, r7, 0
movs r1, 0x26
mov r2, r9
- bl SetMonData_encrypted
+ bl SetBoxMonData
ldr r2, [r5]
adds r2, 0x8
adds r0, r7, 0
movs r1, 0x31
- bl SetMonData_encrypted
+ bl SetBoxMonData
mov r2, sp
ldrb r0, [r2, 0x11]
cmp r0, 0x1F
@@ -376,32 +376,32 @@ _08067C8A:
adds r0, r7, 0
movs r1, 0x27
adds r2, 0x11
- bl SetMonData_encrypted
+ bl SetBoxMonData
adds r0, r7, 0
movs r1, 0x28
mov r2, sp
adds r2, 0x11
- bl SetMonData_encrypted
+ bl SetBoxMonData
adds r0, r7, 0
movs r1, 0x29
mov r2, sp
adds r2, 0x11
- bl SetMonData_encrypted
+ bl SetBoxMonData
adds r0, r7, 0
movs r1, 0x2A
mov r2, sp
adds r2, 0x11
- bl SetMonData_encrypted
+ bl SetBoxMonData
adds r0, r7, 0
movs r1, 0x2B
mov r2, sp
adds r2, 0x11
- bl SetMonData_encrypted
+ bl SetBoxMonData
adds r0, r7, 0
movs r1, 0x2C
mov r2, sp
adds r2, 0x11
- bl SetMonData_encrypted
+ bl SetBoxMonData
b _08067E50
.pool
_08067DC8:
@@ -417,7 +417,7 @@ _08067DC8:
adds r0, r7, 0
movs r1, 0x27
adds r2, r4, 0
- bl SetMonData_encrypted
+ bl SetBoxMonData
ldr r0, [sp, 0x18]
movs r6, 0xF8
lsls r6, 2
@@ -427,7 +427,7 @@ _08067DC8:
adds r0, r7, 0
movs r1, 0x28
adds r2, r4, 0
- bl SetMonData_encrypted
+ bl SetBoxMonData
ldr r0, [sp, 0x18]
movs r5, 0xF8
lsls r5, 7
@@ -437,7 +437,7 @@ _08067DC8:
adds r0, r7, 0
movs r1, 0x29
adds r2, r4, 0
- bl SetMonData_encrypted
+ bl SetBoxMonData
bl Random
lsls r0, 16
lsrs r0, 16
@@ -448,7 +448,7 @@ _08067DC8:
adds r0, r7, 0
movs r1, 0x2A
adds r2, r4, 0
- bl SetMonData_encrypted
+ bl SetBoxMonData
ldr r0, [sp, 0x18]
ands r0, r6
lsrs r0, 5
@@ -456,7 +456,7 @@ _08067DC8:
adds r0, r7, 0
movs r1, 0x2B
adds r2, r4, 0
- bl SetMonData_encrypted
+ bl SetBoxMonData
ldr r0, [sp, 0x18]
ands r0, r5
lsrs r0, 10
@@ -464,7 +464,7 @@ _08067DC8:
adds r0, r7, 0
movs r1, 0x2C
adds r2, r4, 0
- bl SetMonData_encrypted
+ bl SetBoxMonData
_08067E50:
ldr r2, =gBaseStats
mov r3, sp
@@ -483,10 +483,10 @@ _08067E50:
adds r0, r7, 0
movs r1, 0x2E
mov r2, r9
- bl SetMonData_encrypted
+ bl SetBoxMonData
_08067E76:
adds r0, r7, 0
- bl sub_8069270
+ bl GiveBoxMonInitialMoveset
add sp, 0x20
pop {r3-r5}
mov r8, r3
@@ -496,10 +496,10 @@ _08067E76:
pop {r0}
bx r0
.pool
- thumb_func_end create_pokemon
+ thumb_func_end CreateBoxMon
- thumb_func_start pokemon_make_with_nature
-pokemon_make_with_nature: @ 8067E90
+ thumb_func_start CreateMonWithNature
+CreateMonWithNature: @ 8067E90
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -540,7 +540,7 @@ _08067EB0:
mov r1, r8
adds r2, r7, 0
adds r3, r6, 0
- bl create_pokemon_set_level
+ bl CreateMon
add sp, 0x10
pop {r3,r4}
mov r8, r3
@@ -548,10 +548,10 @@ _08067EB0:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end pokemon_make_with_nature
+ thumb_func_end CreateMonWithNature
- thumb_func_start sub_8067EF8
-sub_8067EF8: @ 8067EF8
+ thumb_func_start CreateMonWithGenderNatureLetter
+CreateMonWithGenderNatureLetter: @ 8067EF8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -621,7 +621,7 @@ _08067F38:
bne _08067F38
adds r0, r7, 0
adds r1, r4, 0
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
lsls r0, 24
lsrs r0, 24
cmp r8, r0
@@ -647,7 +647,7 @@ _08067F9E:
bne _08067F9E
adds r0, r7, 0
adds r1, r4, 0
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
lsls r0, 24
lsrs r0, 24
cmp r8, r0
@@ -663,7 +663,7 @@ _08067FCE:
adds r1, r7, 0
ldr r2, [sp, 0x14]
mov r3, r10
- bl create_pokemon_set_level
+ bl CreateMon
add sp, 0x18
pop {r3-r5}
mov r8, r3
@@ -672,10 +672,10 @@ _08067FCE:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_8067EF8
+ thumb_func_end CreateMonWithGenderNatureLetter
- thumb_func_start sub_8067FF8
-sub_8067FF8: @ 8067FF8
+ thumb_func_start CreateMaleMon
+CreateMaleMon: @ 8067FF8
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -702,7 +702,7 @@ _0806800A:
orrs r4, r0
adds r0, r6, 0
adds r1, r4, 0
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
lsls r0, 24
cmp r0, 0
bne _0806800A
@@ -715,17 +715,17 @@ _0806800A:
adds r1, r6, 0
adds r2, r7, 0
movs r3, 0x20
- bl create_pokemon_set_level
+ bl CreateMon
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_8067FF8
+ thumb_func_end CreateMaleMon
- thumb_func_start sub_8068060
-sub_8068060: @ 8068060
+ thumb_func_start CreateMonWithIVsPersonality
+CreateMonWithIVsPersonality: @ 8068060
push {r4,lr}
sub sp, 0x14
adds r4, r0, 0
@@ -743,21 +743,21 @@ sub_8068060: @ 8068060
str r0, [sp, 0xC]
adds r0, r4, 0
movs r3, 0
- bl create_pokemon_set_level
+ bl CreateMon
adds r0, r4, 0
movs r1, 0x42
add r2, sp, 0x10
bl SetMonData
adds r0, r4, 0
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
add sp, 0x14
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_8068060
+ thumb_func_end CreateMonWithIVsPersonality
- thumb_func_start sub_80680A0
-sub_80680A0: @ 80680A0
+ thumb_func_start CreateMonWithIVsOTID
+CreateMonWithIVsOTID: @ 80680A0
push {r4,r5,lr}
sub sp, 0x10
adds r5, r0, 0
@@ -775,7 +775,7 @@ sub_80680A0: @ 80680A0
str r3, [sp, 0xC]
adds r0, r5, 0
movs r3, 0
- bl create_pokemon_set_level
+ bl CreateMon
adds r0, r5, 0
movs r1, 0x27
adds r2, r4, 0
@@ -802,15 +802,15 @@ sub_80680A0: @ 80680A0
adds r2, r4, 0
bl SetMonData
adds r0, r5, 0
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end sub_80680A0
+ thumb_func_end CreateMonWithIVsOTID
- thumb_func_start pokemon_make_ev_something
-pokemon_make_ev_something: @ 8068114
+ thumb_func_start CreateMonWithEVSpread
+CreateMonWithEVSpread: @ 8068114
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -832,7 +832,7 @@ pokemon_make_ev_something: @ 8068114
str r6, [sp, 0x8]
str r6, [sp, 0xC]
adds r0, r7, 0
- bl create_pokemon_set_level
+ bl CreateMon
mov r4, r8
movs r1, 0x1
movs r5, 0x5
@@ -872,14 +872,14 @@ _08068180:
cmp r5, 0x5
ble _0806816C
adds r0, r7, 0
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
add sp, 0x14
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end pokemon_make_ev_something
+ thumb_func_end CreateMonWithEVSpread
thumb_func_start sub_806819C
sub_806819C: @ 806819C
@@ -901,7 +901,7 @@ sub_806819C: @ 806819C
str r0, [sp, 0xC]
adds r0, r7, 0
movs r3, 0
- bl create_pokemon_set_level
+ bl CreateMon
movs r5, 0
add r0, sp, 0x30
mov r9, r0
@@ -1059,7 +1059,7 @@ _08068236:
adds r0, r7, 0
bl sub_806E924
adds r0, r7, 0
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
add sp, 0x34
pop {r3,r4}
mov r8, r3
@@ -1114,7 +1114,7 @@ _0806837C:
adds r0, r7, 0
adds r2, r3, 0
movs r3, 0
- bl create_pokemon_set_level
+ bl CreateMon
movs r5, 0
movs r0, 0xD
adds r0, r6
@@ -1286,7 +1286,7 @@ _08068430:
adds r0, r7, 0
bl sub_806E924
adds r0, r7, 0
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
add sp, 0x58
pop {r3-r5}
mov r8, r3
@@ -1358,7 +1358,7 @@ sub_8068528: @ 8068528
str r0, [sp, 0xC]
adds r0, r7, 0
movs r3, 0x1F
- bl create_pokemon_set_level
+ bl CreateMon
mov r1, r9
adds r2, r5, r1
adds r2, 0xE
@@ -1416,7 +1416,7 @@ _080685E0:
movs r1, 0x7
bl SetMonData
adds r0, r7, 0
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
add sp, 0x14
pop {r3,r4}
mov r8, r3
@@ -1477,7 +1477,7 @@ _08068664:
ldr r1, [sp, 0x14]
mov r2, r10
mov r3, r9
- bl create_pokemon_set_level
+ bl CreateMon
mov r5, r8
movs r1, 0x1
movs r4, 0x5
@@ -1517,7 +1517,7 @@ _080686DA:
cmp r4, 0x5
ble _080686C6
adds r0, r7, 0
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
add sp, 0x18
pop {r3-r5}
mov r8, r3
@@ -1748,7 +1748,7 @@ sub_80688A8: @ 80688A8
str r5, [sp, 0x8]
str r7, [sp, 0xC]
mov r0, r8
- bl create_pokemon_set_level
+ bl CreateMon
mov r0, r8
movs r1, 0x50
add r2, sp, 0x10
@@ -2172,9 +2172,9 @@ _08068C60:
.pool
thumb_func_end DoScriptedWildBattle
- thumb_func_start pokemon_calc_checksum
-@ int pokemon_calc_checksum(pokemon *mon)
-pokemon_calc_checksum: @ 8068C78
+ thumb_func_start CalculateBoxMonChecksum
+@ int CalculateBoxMonChecksum(pokemon *mon)
+CalculateBoxMonChecksum: @ 8068C78
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -2248,10 +2248,10 @@ _08068CEE:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end pokemon_calc_checksum
+ thumb_func_end CalculateBoxMonChecksum
- thumb_func_start pokemon_calc_effective_stats
-pokemon_calc_effective_stats: @ 8068D0C
+ thumb_func_start CalculateMonStats
+CalculateMonStats: @ 8068D0C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -2598,7 +2598,7 @@ _08068FF4:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end pokemon_calc_effective_stats
+ thumb_func_end CalculateMonStats
thumb_func_start sub_8069004
sub_8069004: @ 8069004
@@ -2631,7 +2631,7 @@ sub_8069004: @ 8069004
mov r2, sp
bl SetMonData
adds r0, r4, 0
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
add sp, 0x4
pop {r4}
pop {r0}
@@ -2692,20 +2692,20 @@ _080690AA:
.pool
thumb_func_end level_by_exp
- thumb_func_start sub_80690C0
-sub_80690C0: @ 80690C0
+ thumb_func_start GetLevelFromBoxMonExp
+GetLevelFromBoxMonExp: @ 80690C0
push {r4-r6,lr}
adds r5, r0, 0
movs r1, 0xB
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
movs r1, 0x19
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
adds r3, r0, 0
movs r2, 0x1
ldr r6, =gExperienceTables
@@ -2744,22 +2744,22 @@ _08069116:
pop {r1}
bx r1
.pool
- thumb_func_end sub_80690C0
+ thumb_func_end GetLevelFromBoxMonExp
- thumb_func_start pokemon_moveset_pad_
-pokemon_moveset_pad_: @ 806912C
+ thumb_func_start GiveMoveToBoxMon_
+GiveMoveToBoxMon_: @ 806912C
push {lr}
lsls r1, 16
lsrs r1, 16
- bl pokemon_moveset_pad
+ bl GiveMoveToBoxMon
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
- thumb_func_end pokemon_moveset_pad_
+ thumb_func_end GiveMoveToBoxMon_
- thumb_func_start pokemon_moveset_pad
-pokemon_moveset_pad: @ 8069140
+ thumb_func_start GiveMoveToBoxMon
+GiveMoveToBoxMon: @ 8069140
push {r4-r7,lr}
sub sp, 0x4
adds r7, r0, 0
@@ -2773,7 +2773,7 @@ _0806914E:
adds r0, r7, 0
adds r1, r4, 0
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
lsls r0, 16
lsrs r0, 16
cmp r0, 0
@@ -2781,7 +2781,7 @@ _0806914E:
adds r0, r7, 0
adds r1, r4, 0
mov r2, sp
- bl SetMonData_encrypted
+ bl SetBoxMonData
adds r1, r5, 0
adds r1, 0x11
ldrh r0, [r6]
@@ -2791,7 +2791,7 @@ _0806914E:
ldr r0, =gBattleMoves + 0x4 @ PP offset
adds r2, r0
adds r0, r7, 0
- bl SetMonData_encrypted
+ bl SetBoxMonData
ldrh r0, [r6]
b _080691A4
.pool
@@ -2813,7 +2813,7 @@ _080691A4:
pop {r1}
bx r1
.pool
- thumb_func_end pokemon_moveset_pad
+ thumb_func_end GiveMoveToBoxMon
thumb_func_start sub_80691B0
sub_80691B0: @ 80691B0
@@ -2914,16 +2914,16 @@ sub_8069234: @ 8069234
.pool
thumb_func_end sub_8069234
- thumb_func_start sub_8069264
-sub_8069264: @ 8069264
+ thumb_func_start GiveMonInitialMoveset
+GiveMonInitialMoveset: @ 8069264
push {lr}
- bl sub_8069270
+ bl GiveBoxMonInitialMoveset
pop {r0}
bx r0
- thumb_func_end sub_8069264
+ thumb_func_end GiveMonInitialMoveset
- thumb_func_start sub_8069270
-sub_8069270: @ 8069270
+ thumb_func_start GiveBoxMonInitialMoveset
+GiveBoxMonInitialMoveset: @ 8069270
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -2933,12 +2933,12 @@ sub_8069270: @ 8069270
mov r8, r0
movs r1, 0xB
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
mov r0, r8
- bl sub_80690C0
+ bl GetLevelFromBoxMonExp
lsls r0, 24
lsrs r0, 24
mov r10, r0
@@ -2974,7 +2974,7 @@ _080692AE:
mov r0, r8
adds r1, r4, 0
str r3, [sp]
- bl pokemon_moveset_pad
+ bl GiveMoveToBoxMon
lsls r0, 16
mov r1, r9
lsrs r5, r1, 16
@@ -2983,7 +2983,7 @@ _080692AE:
bne _080692F0
mov r0, r8
adds r1, r4, 0
- bl sub_80694D0
+ bl DeleteFirstMoveAndGiveMoveToBoxMon
ldr r3, [sp]
_080692F0:
adds r3, 0x2
@@ -3002,7 +3002,7 @@ _080692FC:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8069270
+ thumb_func_end GiveBoxMonInitialMoveset
thumb_func_start sub_8069318
sub_8069318: @ 8069318
@@ -3115,7 +3115,7 @@ _080693D8:
strb r0, [r6]
ldrh r1, [r2]
mov r0, r8
- bl pokemon_moveset_pad_
+ bl GiveMoveToBoxMon_
lsls r0, 16
lsrs r0, 16
str r0, [sp]
@@ -3133,8 +3133,8 @@ _08069404:
.pool
thumb_func_end sub_8069318
- thumb_func_start sub_8069424
-sub_8069424: @ 8069424
+ thumb_func_start DeleteFirstMoveAndGiveMoveToMon
+DeleteFirstMoveAndGiveMoveToMon: @ 8069424
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -3216,10 +3216,10 @@ _08069494:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8069424
+ thumb_func_end DeleteFirstMoveAndGiveMoveToMon
- thumb_func_start sub_80694D0
-sub_80694D0: @ 80694D0
+ thumb_func_start DeleteFirstMoveAndGiveMoveToBoxMon
+DeleteFirstMoveAndGiveMoveToBoxMon: @ 80694D0
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -3239,13 +3239,13 @@ _080694EC:
adds r1, 0xE
adds r0, r6, 0
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
strh r0, [r5]
adds r1, r4, 0
adds r1, 0x12
adds r0, r6, 0
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
adds r1, r7, r4
strb r0, [r1]
adds r5, 0x2
@@ -3255,7 +3255,7 @@ _080694EC:
adds r0, r6, 0
movs r1, 0x15
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
mov r1, r9
strb r0, [r1]
ldrb r0, [r1]
@@ -3279,12 +3279,12 @@ _08069540:
adds r1, 0xD
adds r0, r6, 0
adds r2, r5, 0
- bl SetMonData_encrypted
+ bl SetBoxMonData
adds r1, r4, 0
adds r1, 0x11
adds r2, r7, r4
adds r0, r6, 0
- bl SetMonData_encrypted
+ bl SetBoxMonData
adds r5, 0x2
adds r4, 0x1
cmp r4, 0x3
@@ -3292,7 +3292,7 @@ _08069540:
adds r0, r6, 0
movs r1, 0x15
mov r2, r9
- bl SetMonData_encrypted
+ bl SetBoxMonData
add sp, 0x10
pop {r3,r4}
mov r8, r3
@@ -3301,6 +3301,6 @@ _08069540:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80694D0
+ thumb_func_end DeleteFirstMoveAndGiveMoveToBoxMon
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_2.s b/asm/pokemon_2.s
index 2346d0916..96da3e639 100644
--- a/asm/pokemon_2.s
+++ b/asm/pokemon_2.s
@@ -5,8 +5,8 @@
.text
- thumb_func_start sub_8069DEC
-sub_8069DEC: @ 8069DEC
+ thumb_func_start CountAliveMonsInBattle
+CountAliveMonsInBattle: @ 8069DEC
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
@@ -115,10 +115,10 @@ _08069EC2:
pop {r1}
bx r1
.pool
- thumb_func_end sub_8069DEC
+ thumb_func_end CountAliveMonsInBattle
- thumb_func_start sub_8069ED8
-sub_8069ED8: @ 8069ED8
+ thumb_func_start ShouldGetStatBadgeBoost
+ShouldGetStatBadgeBoost: @ 8069ED8
push {r4,r5,lr}
lsls r0, 16
lsrs r5, r0, 16
@@ -140,7 +140,7 @@ sub_8069ED8: @ 8069ED8
ands r0, r1
cmp r0, 0
beq _08069F10
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 3
@@ -162,7 +162,7 @@ _08069F2E:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_8069ED8
+ thumb_func_end ShouldGetStatBadgeBoost
thumb_func_start sub_8069F34
sub_8069F34: @ 8069F34
@@ -186,7 +186,7 @@ sub_8069F34: @ 8069F34
.pool
_08069F5C:
movs r0, 0
- bl sub_8069DEC
+ bl CountAliveMonsInBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -244,13 +244,13 @@ pokemon_roll_gender: @ 8069FC4
adds r4, r0, 0
movs r1, 0xB
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
lsls r0, 16
lsrs r5, r0, 16
adds r0, r4, 0
movs r1, 0
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
adds r2, r0, 0
ldr r1, =gBaseStats
lsls r0, r5, 3
@@ -288,8 +288,8 @@ _0806A01A:
bx r1
thumb_func_end pokemon_roll_gender
- thumb_func_start pokemon_species_get_gender_info
-pokemon_species_get_gender_info: @ 806A020
+ thumb_func_start GetGenderFromSpeciesAndPersonality
+GetGenderFromSpeciesAndPersonality: @ 806A020
push {lr}
adds r3, r1, 0
lsls r0, 16
@@ -326,7 +326,7 @@ _0806A060:
_0806A062:
pop {r1}
bx r1
- thumb_func_end pokemon_species_get_gender_info
+ thumb_func_end GetGenderFromSpeciesAndPersonality
thumb_func_start sub_806A068
sub_806A068: @ 806A068
@@ -544,9 +544,9 @@ _0806A20A:
.pool
thumb_func_end sub_806A1C0
- thumb_func_start pokemon_encrypt
-@ void pokemon_encrypt(pokemon *mon)
-pokemon_encrypt: @ 806A228
+ thumb_func_start EncryptBoxMon
+@ void EncryptBoxMon(pokemon *mon)
+EncryptBoxMon: @ 806A228
push {r4,lr}
adds r3, r0, 0
movs r4, 0
@@ -566,7 +566,7 @@ _0806A232:
pop {r4}
pop {r0}
bx r0
- thumb_func_end pokemon_encrypt
+ thumb_func_end EncryptBoxMon
thumb_func_start pokemon_decrypt
@ void pokemon_decrypt(pokemon *mon)
@@ -1132,16 +1132,16 @@ _0806A65E:
_0806A666:
adds r0, r4, 0
adds r1, r3, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
_0806A66E:
pop {r4}
pop {r1}
bx r1
thumb_func_end GetMonData
- thumb_func_start pokemon_getattr_encrypted
-@ int pokemon_getattr_encrypted(pokemon *mon, enum pokemon_data_request req, void *data)
-pokemon_getattr_encrypted: @ 806A674
+ thumb_func_start GetBoxMonData
+@ int GetBoxMonData(pokemon *mon, enum pokemon_data_request req, void *data)
+GetBoxMonData: @ 806A674
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -1181,7 +1181,7 @@ pokemon_getattr_encrypted: @ 806A674
mov r0, r8
bl pokemon_decrypt
mov r0, r8
- bl pokemon_calc_checksum
+ bl CalculateBoxMonChecksum
lsls r0, 16
lsrs r0, 16
mov r1, r8
@@ -1925,7 +1925,7 @@ _0806AC8C:
cmp r6, 0xA
ble _0806AC98
mov r0, r8
- bl pokemon_encrypt
+ bl EncryptBoxMon
_0806AC98:
adds r0, r4, 0
add sp, 0x4
@@ -1936,7 +1936,7 @@ _0806AC98:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end pokemon_getattr_encrypted
+ thumb_func_end GetBoxMonData
thumb_func_start SetMonData
@ int SetMonData(pokemon *mon, enum pokemon_data_request req, void *data)
@@ -2056,15 +2056,15 @@ _0806AD86:
b _0806AD96
_0806AD90:
adds r0, r3, 0
- bl SetMonData_encrypted
+ bl SetBoxMonData
_0806AD96:
pop {r0}
bx r0
thumb_func_end SetMonData
- thumb_func_start SetMonData_encrypted
-@ int SetMonData_encrypted(pokemon *mon, enum pokemon_data_request req, void *data)
-SetMonData_encrypted: @ 806AD9C
+ thumb_func_start SetBoxMonData
+@ int SetBoxMonData(pokemon *mon, enum pokemon_data_request req, void *data)
+SetBoxMonData: @ 806AD9C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -2103,7 +2103,7 @@ SetMonData_encrypted: @ 806AD9C
adds r0, r7, 0
bl pokemon_decrypt
adds r0, r7, 0
- bl pokemon_calc_checksum
+ bl CalculateBoxMonChecksum
lsls r0, 16
lsrs r0, 16
ldrh r1, [r7, 0x1C]
@@ -2120,7 +2120,7 @@ SetMonData_encrypted: @ 806AD9C
orrs r0, r1
strb r0, [r5, 0x7]
adds r0, r7, 0
- bl pokemon_encrypt
+ bl EncryptBoxMon
b _0806B3EC
_0806AE1C:
mov r0, r10
@@ -2850,10 +2850,10 @@ _0806B3D8:
cmp r0, 0xA
ble _0806B3EC
adds r0, r7, 0
- bl pokemon_calc_checksum
+ bl CalculateBoxMonChecksum
strh r0, [r7, 0x1C]
adds r0, r7, 0
- bl pokemon_encrypt
+ bl EncryptBoxMon
_0806B3EC:
pop {r3-r5}
mov r8, r3
@@ -2863,7 +2863,7 @@ _0806B3EC:
pop {r0}
bx r0
.pool
- thumb_func_end SetMonData_encrypted
+ thumb_func_end SetBoxMonData
thumb_func_start memcpy_pokemon
@ void *memcpy_pokemon(void *dest, void *src, unsigned int size)
@@ -2959,7 +2959,7 @@ _0806B4B2:
adds r4, r0, 0
movs r1, 0xB
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
bne _0806B514
mov r0, r8
@@ -3311,7 +3311,7 @@ _0806B730:
str r0, [sp, 0xC]
adds r0, r5, 0
movs r3, 0xF
- bl create_pokemon_set_level
+ bl CreateMon
ldr r1, =gBattleResources
ldr r0, [r1]
adds r1, r7, 0
diff --git a/asm/pokemon_3.s b/asm/pokemon_3.s
index ca77a64a4..6465575f9 100644
--- a/asm/pokemon_3.s
+++ b/asm/pokemon_3.s
@@ -571,7 +571,7 @@ _0806C168:
mov r2, sp
bl SetMonData
mov r0, r8
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
movs r0, 0
str r0, [sp, 0x20]
_0806C1CA:
@@ -927,7 +927,7 @@ _0806C4B4:
mov r0, r8
bl SetMonData
mov r0, r8
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
ldr r0, [sp, 0x28]
adds r0, 0x1
lsls r0, 24
@@ -1004,7 +1004,7 @@ _0806C574:
lsls r0, 24
cmp r0, 0
bne _0806C5B2
- ldr r1, =gUnknown_03005D10
+ ldr r1, =gBattleResults
ldrb r0, [r1, 0x4]
cmp r0, 0xFE
bhi _0806C5B2
@@ -1140,7 +1140,7 @@ _0806C65E:
lsls r0, 24
cmp r0, 0
bne _0806C6EC
- ldr r1, =gUnknown_03005D10
+ ldr r1, =gBattleResults
ldrb r0, [r1, 0x3]
cmp r0, 0xFE
bhi _0806C6AE
@@ -1615,7 +1615,7 @@ _0806CA9A:
mov r0, r8
bl SetMonData
mov r0, r8
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
movs r3, 0
str r3, [sp, 0x20]
b _0806CD30
@@ -3614,7 +3614,7 @@ _0806D9F0:
cmp r0, 0
beq _0806DAC2
ldr r2, =gTrainers
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
lsls r0, r1, 2
adds r0, r1
@@ -4993,7 +4993,7 @@ _0806E470:
ands r0, r1
cmp r0, 0
beq _0806E494
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r0, [r0]
bl sub_8162BD8
lsls r0, 24
@@ -5010,7 +5010,7 @@ _0806E494:
b _0806E4B2
_0806E4A2:
ldr r2, =gTrainers
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
lsls r0, r1, 2
adds r0, r1
@@ -5121,7 +5121,7 @@ _0806E5F2:
b _0806E646
.pool
_0806E604:
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
lsls r0, r1, 2
adds r0, r1
@@ -5553,20 +5553,20 @@ _0806E938:
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
beq _0806E984
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
movs r1, 0x15
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -5580,7 +5580,7 @@ _0806E938:
adds r1, 0x11
adds r0, r5, 0
mov r2, sp
- bl SetMonData_encrypted
+ bl SetBoxMonData
_0806E984:
adds r6, 0x1
cmp r6, 0x3
diff --git a/asm/front_pic_anim.s b/asm/pokemon_animation.s
index 1b0119424..1b0119424 100644
--- a/asm/front_pic_anim.s
+++ b/asm/pokemon_animation.s
diff --git a/asm/record_mixing.s b/asm/record_mixing.s
index 9efd38fe0..19a3dda3c 100644
--- a/asm/record_mixing.s
+++ b/asm/record_mixing.s
@@ -470,7 +470,7 @@ sub_80E70F4: @ 80E70F4
movs r1, 0x1
adds r2, r4, 0
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
diff --git a/asm/rom_8184DA4.s b/asm/recorded_battle.s
index f22214f93..9f76ff3df 100644
--- a/asm/rom_8184DA4.s
+++ b/asm/recorded_battle.s
@@ -873,12 +873,12 @@ _081854DC:
adds r0, r7, r3
str r2, [r0]
_081854E2:
- ldr r4, =gUnknown_02038BCA
+ ldr r4, =gTrainerBattleOpponent_A
ldrh r1, [r4]
ldr r5, =0x000004f4
adds r0, r7, r5
strh r1, [r0]
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
ldrh r1, [r0]
ldr r2, =0x000004f6
adds r0, r7, r2
@@ -944,7 +944,7 @@ _081854E2:
str r0, [r1]
ldr r4, =0xfffffed4
adds r1, r4, 0
- ldr r5, =gUnknown_02038BCA
+ ldr r5, =gTrainerBattleOpponent_A
ldrh r5, [r5]
adds r0, r1, r5
lsls r0, 16
@@ -957,7 +957,7 @@ _08185580:
ldr r0, =0x00000504
adds r3, r7, r0
mov r10, r9
- ldr r1, =gUnknown_02038BCA
+ ldr r1, =gTrainerBattleOpponent_A
mov r12, r1
adds r2, r4, 0
mov r8, r2
@@ -981,7 +981,7 @@ _08185592:
ble _08185592
mov r0, r9
ldr r2, [r0]
- ldr r1, =gUnknown_02038BCA
+ ldr r1, =gTrainerBattleOpponent_A
ldrh r0, [r1]
ldr r3, =0xfffffed4
adds r0, r3
@@ -1002,7 +1002,7 @@ _08185592:
ldr r2, =0x0000050e
adds r4, r7, r2
mov r10, r9
- ldr r5, =gUnknown_02038BCA
+ ldr r5, =gTrainerBattleOpponent_A
mov r8, r5
adds r5, r3, 0
_081855E6:
@@ -1032,7 +1032,7 @@ _08185664:
ldr r1, =0x0000050e
adds r4, r7, r1
mov r10, r9
- ldr r2, =gUnknown_02038BCA
+ ldr r2, =gTrainerBattleOpponent_A
mov r8, r2
adds r5, r3, 0
_08185672:
@@ -1057,7 +1057,7 @@ _08185672:
_08185696:
mov r1, r9
ldr r2, [r1]
- ldr r3, =gUnknown_02038BCA
+ ldr r3, =gTrainerBattleOpponent_A
ldrh r0, [r3]
ldr r4, =0xfffffed4
adds r0, r4
@@ -1070,7 +1070,7 @@ _08185696:
b _08185856
.pool
_081856C4:
- ldr r3, =gUnknown_02038BCC
+ ldr r3, =gTrainerBattleOpponent_B
ldrh r3, [r3]
adds r0, r1, r3
lsls r0, 16
@@ -1083,7 +1083,7 @@ _081856D4:
ldr r4, =0x00000504
adds r3, r7, r4
mov r10, r9
- ldr r5, =gUnknown_02038BCC
+ ldr r5, =gTrainerBattleOpponent_B
mov r12, r5
ldr r0, =0xfffffed4
mov r8, r0
@@ -1107,7 +1107,7 @@ _081856E6:
ble _081856E6
mov r0, r9
ldr r2, [r0]
- ldr r1, =gUnknown_02038BCC
+ ldr r1, =gTrainerBattleOpponent_B
ldrh r0, [r1]
ldr r3, =0xfffffed4
adds r0, r3
@@ -1128,7 +1128,7 @@ _081856E6:
ldr r2, =0x0000050e
adds r4, r7, r2
mov r10, r9
- ldr r5, =gUnknown_02038BCC
+ ldr r5, =gTrainerBattleOpponent_B
mov r8, r5
adds r5, r3, 0
_0818573A:
@@ -1158,7 +1158,7 @@ _08185784:
ldr r1, =0x0000050e
adds r4, r7, r1
mov r10, r9
- ldr r2, =gUnknown_02038BCC
+ ldr r2, =gTrainerBattleOpponent_B
mov r8, r2
adds r5, r3, 0
_08185792:
@@ -1183,7 +1183,7 @@ _08185792:
_081857B6:
mov r1, r9
ldr r2, [r1]
- ldr r3, =gUnknown_02038BCC
+ ldr r3, =gTrainerBattleOpponent_B
ldrh r0, [r3]
ldr r4, =0xfffffed4
adds r0, r4
@@ -1259,7 +1259,7 @@ _08185856:
adds r0, r7, r2
strb r1, [r0]
_0818585C:
- ldr r3, =gUnknown_02038BCA
+ ldr r3, =gTrainerBattleOpponent_A
ldrh r0, [r3]
ldr r1, =0x0000018f
cmp r0, r1
@@ -1284,7 +1284,7 @@ _0818585C:
ldr r0, =0x0000050e
adds r4, r7, r0
mov r10, r9
- ldr r1, =gUnknown_02038BCA
+ ldr r1, =gTrainerBattleOpponent_A
mov r8, r1
adds r5, r3, 0
_08185894:
@@ -1310,14 +1310,14 @@ _08185894:
ble _08185894
mov r3, r9
ldr r2, [r3]
- ldr r4, =gUnknown_02038BCA
+ ldr r4, =gTrainerBattleOpponent_A
ldrh r1, [r4]
ldr r5, =0xfffffe70
adds r1, r5
b _081859AC
.pool
_08185900:
- ldr r3, =gUnknown_02038BCC
+ ldr r3, =gTrainerBattleOpponent_B
ldrh r0, [r3]
cmp r0, r1
bls _0818597C
@@ -1341,7 +1341,7 @@ _08185900:
ldr r0, =0x0000050e
adds r4, r7, r0
mov r10, r9
- ldr r1, =gUnknown_02038BCC
+ ldr r1, =gTrainerBattleOpponent_B
mov r8, r1
adds r5, r3, 0
_08185936:
@@ -1367,7 +1367,7 @@ _08185936:
ble _08185936
mov r3, r9
ldr r2, [r3]
- ldr r4, =gUnknown_02038BCC
+ ldr r4, =gTrainerBattleOpponent_B
ldrh r1, [r4]
ldr r5, =0xfffffe70
adds r1, r5
@@ -1542,9 +1542,9 @@ sub_8185AB0: @ 8185AB0
ldr r0, =gBattleTypeFlags
movs r1, 0
str r1, [r0]
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
strh r1, [r0]
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
strh r1, [r0]
ldr r0, =gUnknown_02038BCE
strh r1, [r0]
@@ -1715,12 +1715,12 @@ _08185C2A:
lsls r1, 17
orrs r0, r1
str r0, [r2]
- ldr r1, =gUnknown_02038BCA
+ ldr r1, =gTrainerBattleOpponent_A
ldr r2, =0x000004f4
adds r0, r7, r2
ldrh r0, [r0]
strh r0, [r1]
- ldr r1, =gUnknown_02038BCC
+ ldr r1, =gTrainerBattleOpponent_B
adds r3, 0xE
adds r0, r7, r3
ldrh r0, [r0]
@@ -2638,13 +2638,13 @@ _081863FC:
.pool
thumb_func_end sub_818603C
- thumb_func_start sub_8186438
-sub_8186438: @ 8186438
+ thumb_func_start GetAiScriptsInRecordedBattle
+GetAiScriptsInRecordedBattle: @ 8186438
ldr r0, =gUnknown_0203C7BC
ldr r0, [r0]
bx lr
.pool
- thumb_func_end sub_8186438
+ thumb_func_end GetAiScriptsInRecordedBattle
thumb_func_start sub_8186444
sub_8186444: @ 8186444
diff --git a/asm/region_map.s b/asm/region_map.s
index 716981813..79364610a 100644
--- a/asm/region_map.s
+++ b/asm/region_map.s
@@ -3461,7 +3461,7 @@ _0812480C:
movs r0, 0x2
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
b _0812489C
@@ -3607,7 +3607,7 @@ _08124926:
movs r0, 0x1
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, [r5]
ldrb r0, [r0, 0xB]
ldr r1, [r4]
@@ -3628,7 +3628,7 @@ _08124926:
movs r0, 0x1
movs r1, 0x1
adds r2, r4, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
ldr r0, =gUnknown_03001180
@@ -3674,7 +3674,7 @@ _081249FC:
movs r0, 0
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
ldr r0, =gUnknown_03001180
diff --git a/asm/reset_rtc_screen.s b/asm/reset_rtc_screen.s
index ccef727ff..076ddbf0b 100644
--- a/asm/reset_rtc_screen.s
+++ b/asm/reset_rtc_screen.s
@@ -460,7 +460,7 @@ sub_809EBC4: @ 809EBC4
mov r0, r10
movs r1, 0x1
ldr r3, [sp, 0xC]
- bl Print
+ bl PrintTextOnWindow
add sp, 0x10
pop {r3-r5}
mov r8, r3
@@ -523,7 +523,7 @@ sub_809ECB4: @ 809ECB4
adds r0, r4, 0
movs r1, 0x1
movs r3, 0x7E
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
add sp, 0xC
@@ -976,7 +976,7 @@ sub_809F0C0: @ 809F0C0
movs r1, 0x1
adds r2, r4, 0
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
add sp, 0xC
@@ -1020,7 +1020,7 @@ _0809F11C:
movs r0, 0
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldr r1, =gLocalTime
ldrh r3, [r1]
ldrb r0, [r1, 0x2]
@@ -1041,7 +1041,7 @@ _0809F11C:
movs r0, 0
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
adds r0, r1, 0
diff --git a/asm/roamer.s b/asm/roamer.s
new file mode 100644
index 000000000..f6b48f10f
--- /dev/null
+++ b/asm/roamer.s
@@ -0,0 +1,502 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+
+ thumb_func_start ClearRoamerData
+ClearRoamerData: @ 8161B34
+ push {r4,r5,lr}
+ ldr r5, =gSaveBlock1Ptr
+ ldr r0, [r5]
+ ldr r4, =0x000031dc
+ adds r0, r4
+ movs r1, 0
+ movs r2, 0x1C
+ bl memset
+ ldr r0, [r5]
+ adds r0, r4
+ ldr r1, =0x00000197
+ strh r1, [r0, 0x8]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ClearRoamerData
+
+ thumb_func_start ClearRoamerLocationData
+ClearRoamerLocationData: @ 8161B60
+ push {r4-r6,lr}
+ movs r2, 0
+ ldr r6, =sRoamerLocation
+ ldr r4, =sLocationHistory
+ movs r3, 0
+ adds r5, r4, 0x1
+_08161B6C:
+ lsls r1, r2, 1
+ adds r0, r1, r4
+ strb r3, [r0]
+ adds r1, r5
+ strb r3, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _08161B6C
+ movs r0, 0
+ strb r0, [r6]
+ strb r0, [r6, 0x1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ClearRoamerLocationData
+
+ thumb_func_start CreateInitialRoamerMon
+CreateInitialRoamerMon: @ 8161B94
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ lsls r0, 16
+ cmp r0, 0
+ bne _08161BBC
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldr r2, =0x000031dc
+ adds r1, r2
+ ldr r2, =0x00000197
+ b _08161BC8
+ .pool
+_08161BBC:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldr r2, =0x000031dc
+ adds r1, r2
+ movs r2, 0xCC
+ lsls r2, 1
+_08161BC8:
+ strh r2, [r1, 0x8]
+ adds r7, r0, 0
+ ldr r6, =gEnemyParty
+ ldr r0, [r7]
+ ldr r5, =0x000031dc
+ adds r0, r5
+ ldrh r1, [r0, 0x8]
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r6, 0
+ movs r2, 0x28
+ movs r3, 0x20
+ bl CreateMon
+ ldr r0, [r7]
+ adds r0, r5
+ movs r1, 0x28
+ strb r1, [r0, 0xC]
+ ldr r0, [r7]
+ adds r0, r5
+ strb r4, [r0, 0xD]
+ ldr r0, [r7]
+ adds r0, r5
+ movs r1, 0x1
+ strb r1, [r0, 0x13]
+ adds r0, r6, 0
+ movs r1, 0x42
+ bl GetMonData
+ ldr r1, [r7]
+ adds r1, r5
+ str r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0
+ bl GetMonData
+ ldr r1, [r7]
+ adds r1, r5
+ str r0, [r1, 0x4]
+ adds r0, r6, 0
+ movs r1, 0x3A
+ bl GetMonData
+ ldr r1, [r7]
+ adds r1, r5
+ movs r2, 0
+ mov r8, r2
+ strh r0, [r1, 0xA]
+ adds r0, r6, 0
+ movs r1, 0x16
+ bl GetMonData
+ ldr r1, [r7]
+ adds r1, r5
+ strb r0, [r1, 0xE]
+ adds r0, r6, 0
+ movs r1, 0x17
+ bl GetMonData
+ ldr r1, [r7]
+ adds r1, r5
+ strb r0, [r1, 0xF]
+ adds r0, r6, 0
+ movs r1, 0x18
+ bl GetMonData
+ ldr r1, [r7]
+ adds r1, r5
+ strb r0, [r1, 0x10]
+ adds r0, r6, 0
+ movs r1, 0x21
+ bl GetMonData
+ ldr r1, [r7]
+ adds r1, r5
+ strb r0, [r1, 0x11]
+ adds r0, r6, 0
+ movs r1, 0x2F
+ bl GetMonData
+ ldr r1, [r7]
+ adds r1, r5
+ strb r0, [r1, 0x12]
+ ldr r4, =sRoamerLocation
+ mov r0, r8
+ strb r0, [r4]
+ bl Random
+ ldr r5, =sRoamerLocations
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x14
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ adds r1, r5
+ ldrb r0, [r1]
+ strb r0, [r4, 0x1]
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end CreateInitialRoamerMon
+
+ thumb_func_start InitRoamer
+InitRoamer: @ 8161CBC
+ push {lr}
+ bl ClearRoamerData
+ bl ClearRoamerLocationData
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ bl CreateInitialRoamerMon
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end InitRoamer
+
+ thumb_func_start UpdateLocationHistoryForRoamer
+UpdateLocationHistoryForRoamer: @ 8161CD8
+ ldr r0, =sLocationHistory
+ ldrb r1, [r0, 0x2]
+ strb r1, [r0, 0x4]
+ ldrb r1, [r0, 0x3]
+ strb r1, [r0, 0x5]
+ ldrb r1, [r0]
+ strb r1, [r0, 0x2]
+ ldrb r1, [r0, 0x1]
+ strb r1, [r0, 0x3]
+ ldr r1, =gSaveBlock1Ptr
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x4]
+ strb r1, [r0]
+ ldrb r1, [r2, 0x5]
+ strb r1, [r0, 0x1]
+ bx lr
+ .pool
+ thumb_func_end UpdateLocationHistoryForRoamer
+
+ thumb_func_start RoamerMoveToOtherLocationSet
+RoamerMoveToOtherLocationSet: @ 8161D00
+ push {r4,r5,lr}
+ movs r1, 0
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x000031dc
+ adds r0, r2
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0
+ beq _08161D3E
+ ldr r0, =sRoamerLocation
+ strb r1, [r0]
+ ldr r5, =sRoamerLocations
+ adds r4, r0, 0
+_08161D1A:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x14
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ adds r1, r5
+ ldrb r1, [r1]
+ ldrb r0, [r4, 0x1]
+ cmp r0, r1
+ beq _08161D1A
+ strb r1, [r4, 0x1]
+_08161D3E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end RoamerMoveToOtherLocationSet
+
+ thumb_func_start RoamerMove
+RoamerMove: @ 8161D54
+ push {r4-r7,lr}
+ movs r4, 0
+ bl Random
+ lsls r0, 16
+ movs r1, 0xF0
+ lsls r1, 12
+ ands r1, r0
+ cmp r1, 0
+ bne _08161D6E
+ bl RoamerMoveToOtherLocationSet
+ b _08161DE2
+_08161D6E:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x000031dc
+ adds r0, r1
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0
+ beq _08161DE2
+ ldr r7, =sRoamerLocation
+ ldr r3, =sRoamerLocations
+_08161D80:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r2, r0, 1
+ adds r1, r2, r3
+ ldrb r0, [r7, 0x1]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08161DD8
+ ldr r6, =sRoamerLocations
+ adds r5, r2, 0x1
+ ldr r4, =sLocationHistory
+_08161D96:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r0, r5
+ adds r0, r6
+ ldrb r1, [r0]
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ bne _08161DBA
+ ldrb r0, [r4, 0x5]
+ cmp r0, r1
+ beq _08161D96
+_08161DBA:
+ cmp r1, 0xFF
+ beq _08161D96
+ strb r1, [r7, 0x1]
+ b _08161DE2
+ .pool
+_08161DD8:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x13
+ bls _08161D80
+_08161DE2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end RoamerMove
+
+ thumb_func_start IsRoamerAt
+IsRoamerAt: @ 8161DE8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r3, =0x000031dc
+ adds r0, r3
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0
+ beq _08161E20
+ ldr r0, =sRoamerLocation
+ ldrb r3, [r0]
+ cmp r2, r3
+ bne _08161E20
+ ldrb r0, [r0, 0x1]
+ cmp r1, r0
+ bne _08161E20
+ movs r0, 0x1
+ b _08161E22
+ .pool
+_08161E20:
+ movs r0, 0
+_08161E22:
+ pop {r1}
+ bx r1
+ thumb_func_end IsRoamerAt
+
+ thumb_func_start CreateRoamerMonInstance
+CreateRoamerMonInstance: @ 8161E28
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, =gEnemyParty
+ bl ZeroEnemyPartyMons
+ ldr r4, =gSaveBlock1Ptr
+ ldr r0, [r4]
+ ldr r1, =0x000031dc
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ ldrb r2, [r0, 0xC]
+ ldr r3, [r0]
+ ldr r0, [r0, 0x4]
+ str r0, [sp]
+ adds r0, r5, 0
+ bl CreateMonWithIVsPersonality
+ ldr r2, [r4]
+ ldr r0, =0x000031e9
+ adds r2, r0
+ adds r0, r5, 0
+ movs r1, 0x37
+ bl SetMonData
+ ldr r2, [r4]
+ ldr r1, =0x000031e6
+ adds r2, r1
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl SetMonData
+ ldr r2, [r4]
+ ldr r0, =0x000031ea
+ adds r2, r0
+ adds r0, r5, 0
+ movs r1, 0x16
+ bl SetMonData
+ ldr r2, [r4]
+ ldr r1, =0x000031eb
+ adds r2, r1
+ adds r0, r5, 0
+ movs r1, 0x17
+ bl SetMonData
+ ldr r2, [r4]
+ ldr r0, =0x000031ec
+ adds r2, r0
+ adds r0, r5, 0
+ movs r1, 0x18
+ bl SetMonData
+ ldr r2, [r4]
+ ldr r1, =0x000031ed
+ adds r2, r1
+ adds r0, r5, 0
+ movs r1, 0x21
+ bl SetMonData
+ ldr r2, [r4]
+ ldr r0, =0x000031ee
+ adds r2, r0
+ adds r0, r5, 0
+ movs r1, 0x2F
+ bl SetMonData
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end CreateRoamerMonInstance
+
+ thumb_func_start TryStartRoamerEncounter
+TryStartRoamerEncounter: @ 8161EDC
+ push {lr}
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x4]
+ ldrb r1, [r1, 0x5]
+ bl IsRoamerAt
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08161F10
+ bl Random
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ cmp r1, 0
+ bne _08161F10
+ bl CreateRoamerMonInstance
+ movs r0, 0x1
+ b _08161F12
+ .pool
+_08161F10:
+ movs r0, 0
+_08161F12:
+ pop {r1}
+ bx r1
+ thumb_func_end TryStartRoamerEncounter
+
+ thumb_func_start UpdateRoamerHPStatus
+UpdateRoamerHPStatus: @ 8161F18
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x39
+ bl GetMonData
+ ldr r5, =gSaveBlock1Ptr
+ ldr r1, [r5]
+ ldr r4, =0x000031dc
+ adds r1, r4
+ strh r0, [r1, 0xA]
+ adds r0, r6, 0
+ movs r1, 0x37
+ bl GetMonData
+ ldr r1, [r5]
+ adds r1, r4
+ strb r0, [r1, 0xD]
+ bl RoamerMoveToOtherLocationSet
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end UpdateRoamerHPStatus
+
+ thumb_func_start SetRoamerInactive
+SetRoamerInactive: @ 8161F4C
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x000031dc
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0, 0x13]
+ bx lr
+ .pool
+ thumb_func_end SetRoamerInactive
+
+ thumb_func_start GetRoamerLocation
+GetRoamerLocation: @ 8161F64
+ ldr r3, =sRoamerLocation
+ ldrb r2, [r3]
+ strb r2, [r0]
+ ldrb r0, [r3, 0x1]
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end GetRoamerLocation
+
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom3.s b/asm/rom3.s
index 88c5a015b..bce623188 100644
--- a/asm/rom3.s
+++ b/asm/rom3.s
@@ -96,7 +96,7 @@ _080326B8:
adds r0, r4, 0
movs r2, 0x2
movs r3, 0x20
- bl create_pokemon_set_level
+ bl CreateMon
str r5, [sp, 0x10]
adds r0, r4, 0
movs r1, 0xC
@@ -294,7 +294,7 @@ _080328F0:
cmp r1, 0
beq _08032918
ldr r1, =gBattleBankFunc
- ldr r0, =sub_815936C
+ ldr r0, =SetBankFuncToSafariBufferRunCommand
b _08032934
.pool
_08032918:
@@ -2600,7 +2600,7 @@ dp01_build_cmdbuf_x10_TODO: @ 8033BE4
ldrh r0, [r0]
mov r1, r12
strh r0, [r1, 0x2]
- ldr r0, =gUnknown_02024208
+ ldr r0, =gLastUsedItem
ldrh r0, [r0]
strh r0, [r1, 0x4]
ldr r0, =gLastUsedAbility
@@ -2633,7 +2633,7 @@ dp01_build_cmdbuf_x10_TODO: @ 8033BE4
strb r0, [r7, 0xB]
movs r3, 0
mov r9, r2
- ldr r0, =gUnknown_02022F78
+ ldr r0, =gBattleTextBuff3
mov r8, r0
adds r2, 0x10
ldr r0, =gBattleMons
@@ -2715,7 +2715,7 @@ dp01_build_cmdbuf_x11_TODO: @ 8033CFC
ldrh r0, [r0]
mov r1, r12
strh r0, [r1, 0x2]
- ldr r0, =gUnknown_02024208
+ ldr r0, =gLastUsedItem
ldrh r0, [r0]
strh r0, [r1, 0x4]
ldr r0, =gLastUsedAbility
@@ -2731,7 +2731,7 @@ dp01_build_cmdbuf_x11_TODO: @ 8033CFC
strb r0, [r1, 0x8]
movs r3, 0
mov r9, r2
- ldr r7, =gUnknown_02022F78
+ ldr r7, =gBattleTextBuff3
mov r8, r7
mov r4, r9
adds r4, 0x10
diff --git a/asm/rom4.s b/asm/rom4.s
index 2f047b639..877576275 100644
--- a/asm/rom4.s
+++ b/asm/rom4.s
@@ -131,8 +131,8 @@ sub_8084788: @ 8084788
bl FlagReset
bl sub_8085B2C
bl wild_pokemon_reroll
- bl mapnumbers_history_shift_sav1_0_2_4_out
- bl sub_8161D00
+ bl UpdateLocationHistoryForRoamer
+ bl RoamerMoveToOtherLocationSet
pop {r0}
bx r0
.pool
@@ -238,8 +238,8 @@ _08084854:
.pool
thumb_func_end sav12_xor_set
- thumb_func_start sub_8084864
-sub_8084864: @ 8084864
+ thumb_func_start ApplyNewEncyprtionKeyToGameStats
+ApplyNewEncyprtionKeyToGameStats: @ 8084864
push {r4-r6,lr}
adds r5, r0, 0
movs r4, 0
@@ -251,7 +251,7 @@ _0808486C:
ldr r0, [r6]
adds r0, r1
adds r1, r5, 0
- bl apply_u32_xor_crypto
+ bl ApplyNewEncyprtionKeyToWord
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
@@ -261,7 +261,7 @@ _0808486C:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8084864
+ thumb_func_end ApplyNewEncyprtionKeyToGameStats
thumb_func_start CopyFieldObjectTemplatesToSav1
@ void CopyFieldObjectTemplatesToSav1()
@@ -1402,8 +1402,8 @@ _08085116:
cmp r4, 0xC
ble _08085116
bl sub_80A0A2C
- bl mapnumbers_history_shift_sav1_0_2_4_out
- bl sub_8161D54
+ bl UpdateLocationHistoryForRoamer
+ bl RoamerMove
bl sub_80AEE20
bl wild_encounter_reset_coro_args
bl mapheader_run_script_with_tag_x5
@@ -1493,8 +1493,8 @@ _08085200:
bl update_sav1_flash_used_on_map
bl sav1_reset_battle_music_maybe
bl mapheader_run_script_with_tag_x3
- bl mapnumbers_history_shift_sav1_0_2_4_out
- bl sub_8161D00
+ bl UpdateLocationHistoryForRoamer
+ bl RoamerMoveToOtherLocationSet
ldrh r1, [r4, 0x12]
ldr r0, =0x00000169
cmp r1, r0
@@ -3122,7 +3122,7 @@ sub_8085E94: @ 8085E94
thumb_func_start map_post_load_hook_exec
map_post_load_hook_exec: @ 8085EA0
push {r4,lr}
- ldr r4, =gUnknown_03005DB0
+ ldr r4, =gFieldCallback
ldr r0, [r4]
cmp r0, 0
beq _08085ECC
@@ -3177,7 +3177,7 @@ CB2_NewGame: @ 8085EF8
ldr r1, =gUnknown_03005DAC
ldr r0, =sub_80FB4E0
str r0, [r1]
- ldr r1, =gUnknown_03005DB0
+ ldr r1, =gFieldCallback
movs r0, 0
str r0, [r1]
ldr r0, =gUnknown_030026F8
@@ -3420,7 +3420,7 @@ _08086178:
sub_8086194: @ 8086194
push {lr}
bl sub_808631C
- ldr r1, =gUnknown_03005DB0
+ ldr r1, =gFieldCallback
ldr r0, =sub_80AF6A4
str r0, [r1]
bl c2_exit_to_overworld_2_switch
@@ -3713,7 +3713,7 @@ _0808644C:
bl overworld_bg_setup
bl script_env_1_init
bl script_env_2_disable
- bl saveblock_randomize_and_relocate_
+ bl MoveSaveBlocks_ResetHeap_
bl sub_80867D8
b _08086506
_08086462:
@@ -3838,7 +3838,7 @@ _08086570:
bl mli0_load_map
b _08086622
_0808657C:
- bl saveblock_randomize_and_relocate_
+ bl MoveSaveBlocks_ResetHeap_
bl sub_80867D8
b _08086622
_08086586:
@@ -3941,7 +3941,7 @@ _0808664C:
beq _0808668A
b _0808668E
_08086656:
- bl saveblock_randomize_and_relocate_
+ bl MoveSaveBlocks_ResetHeap_
bl sub_80867D8
movs r0, 0
bl sub_8086988
@@ -4006,7 +4006,7 @@ _080866B4:
.4byte _0808679A
_080866EC:
bl sub_808631C
- bl saveblock_randomize_and_relocate_
+ bl MoveSaveBlocks_ResetHeap_
bl sub_80867D8
b _08086792
_080866FA:
@@ -4106,14 +4106,14 @@ _080867B4:
bx r0
thumb_func_end do_load_map_stuff_loop
- thumb_func_start saveblock_randomize_and_relocate_
-saveblock_randomize_and_relocate_: @ 80867C8
+ thumb_func_start MoveSaveBlocks_ResetHeap_
+MoveSaveBlocks_ResetHeap_: @ 80867C8
push {lr}
bl sub_81BE6AC
- bl saveblock_randomize_and_relocate
+ bl MoveSaveBlocks_ResetHeap
pop {r0}
bx r0
- thumb_func_end saveblock_randomize_and_relocate_
+ thumb_func_end MoveSaveBlocks_ResetHeap_
thumb_func_start sub_80867D8
sub_80867D8: @ 80867D8
@@ -5336,7 +5336,7 @@ _080871D4:
cmp r0, 0x1
bne _080871EA
ldr r0, =gUnknown_08277513
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
ldr r0, =sub_80871C0
bl c1_link_related_func_set
_080871EA:
@@ -5774,7 +5774,7 @@ sub_8087530: @ 8087530
movs r0, 0x5
bl PlaySE
adds r0, r4, 0
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
bl script_env_2_enable
pop {r4}
pop {r0}
@@ -5787,7 +5787,7 @@ sub_808754C: @ 808754C
movs r0, 0x6
bl PlaySE
ldr r0, =gUnknown_082774EF
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
bl script_env_2_enable
pop {r0}
bx r0
@@ -5801,7 +5801,7 @@ sub_8087568: @ 8087568
movs r0, 0x5
bl PlaySE
adds r0, r4, 0
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
bl script_env_2_enable
pop {r4}
pop {r0}
@@ -5812,7 +5812,7 @@ sub_8087568: @ 8087568
sub_8087584: @ 8087584
push {lr}
ldr r0, =gUnknown_08277509
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
bl script_env_2_enable
pop {r0}
bx r0
diff --git a/asm/rom6.s b/asm/rom6.s
index 9ded5bf72..e7bbf649b 100644
--- a/asm/rom6.s
+++ b/asm/rom6.s
@@ -267,7 +267,7 @@ sub_8135654: @ 8135654
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
- ldr r1, =gUnknown_03005DB0
+ ldr r1, =gFieldCallback
ldr r0, =hm_add_c3_launch_phase_2
str r0, [r1]
ldr r1, =gUnknown_0203CEEC
@@ -284,7 +284,7 @@ _0813568C:
movs r0, 0
b _081356AC
_0813569E:
- ldr r1, =gUnknown_03005DB0
+ ldr r1, =gFieldCallback
ldr r0, =hm_add_c3_launch_phase_2
str r0, [r1]
ldr r1, =gUnknown_0203CEEC
@@ -308,7 +308,7 @@ sub_81356C4: @ 81356C4
lsrs r0, 24
str r0, [r1]
ldr r0, =gUnknown_082907F0
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
pop {r0}
bx r0
.pool
@@ -360,7 +360,7 @@ sub_813572C: @ 813572C
movs r0, 0
b _0813574C
_0813573E:
- ldr r1, =gUnknown_03005DB0
+ ldr r1, =gFieldCallback
ldr r0, =hm_add_c3_launch_phase_2
str r0, [r1]
ldr r1, =gUnknown_0203CEEC
@@ -3338,7 +3338,7 @@ sub_81370FC: @ 81370FC
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
- ldr r1, =gUnknown_03005DB0
+ ldr r1, =gFieldCallback
ldr r0, =hm_add_c3_launch_phase_2
str r0, [r1]
ldr r1, =gUnknown_0203CEEC
@@ -3355,7 +3355,7 @@ _08137134:
lsls r0, 24
cmp r0, 0
bne _08137170
- ldr r1, =gUnknown_03005DB0
+ ldr r1, =gFieldCallback
ldr r0, =hm_add_c3_launch_phase_2
str r0, [r1]
ldr r1, =gUnknown_0203CEEC
@@ -3408,7 +3408,7 @@ sub_81371B4: @ 81371B4
ldr r0, =0x00000888
bl FlagSet
ldr r0, =gUnknown_082926F8
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
pop {r0}
bx r0
.pool
@@ -7630,7 +7630,7 @@ sub_813946C: @ 813946C
adds r0, r5, 0
movs r2, 0x7
movs r3, 0x20
- bl create_pokemon_set_level
+ bl CreateMon
movs r1, 0x1
add r0, sp, 0x10
strh r1, [r0]
@@ -8236,8 +8236,8 @@ _08139944:
bx r1
thumb_func_end sub_813990C
- thumb_func_start in_multi_battle_room_with_var_condition
-in_multi_battle_room_with_var_condition: @ 813994C
+ thumb_func_start InMultiBattleRoom
+InMultiBattleRoom: @ 813994C
push {lr}
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
@@ -8259,7 +8259,7 @@ _08139978:
_0813997A:
pop {r1}
bx r1
- thumb_func_end in_multi_battle_room_with_var_condition
+ thumb_func_end InMultiBattleRoom
thumb_func_start sub_8139980
sub_8139980: @ 8139980
@@ -8530,7 +8530,7 @@ sub_8139B60: @ 8139B60
str r1, [sp, 0x8]
movs r1, 0x1
adds r2, r4, 0
- bl Print
+ bl PrintTextOnWindow
ldr r6, =gUnknown_085B2BB4
ldr r4, =gSpecialVar_0x8005
ldrh r0, [r4]
@@ -8555,7 +8555,7 @@ sub_8139B60: @ 8139B60
mov r1, r8
str r1, [sp, 0x8]
movs r1, 0x1
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r5]
bl PutWindowTilemap
ldrb r0, [r5]
@@ -10149,7 +10149,7 @@ sub_813A8FC: @ 813A8FC
str r1, [sp, 0x8]
movs r1, 0x1
add r2, sp, 0xC
- bl Print
+ bl PrintTextOnWindow
add sp, 0x2C
pop {r0}
bx r0
@@ -10644,7 +10644,7 @@ sub_813AD34: @ 813AD34
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
b _0813ADAC
.pool
_0813AD90:
@@ -10660,7 +10660,7 @@ _0813AD90:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
_0813ADAC:
add sp, 0xC
pop {r4-r7}
@@ -10764,7 +10764,7 @@ _0813AE1E:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldrh r0, [r6, 0x22]
lsls r0, 24
lsrs r0, 24
@@ -11229,7 +11229,7 @@ _0813B27E:
bl get_pokemon_by_box_and_pos
movs r1, 0xB
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
bne _0813B2C0
bl get_unknown_box_id
diff --git a/asm/rom_8034C54.s b/asm/rom_8034C54.s
index c83e3aab7..d89cecbff 100644
--- a/asm/rom_8034C54.s
+++ b/asm/rom_8034C54.s
@@ -1493,7 +1493,7 @@ _0803584C:
cmp r1, 0
beq _080358C4
ldr r2, =gTrainers
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
lsls r0, r1, 2
adds r0, r1
@@ -2603,7 +2603,7 @@ _080362F8:
cmp r1, 0
beq _08036350
ldr r2, =gTrainers
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
lsls r0, r1, 2
adds r0, r1
@@ -2740,7 +2740,7 @@ _0803645C:
cmp r1, 0
beq _0803648C
ldr r2, =gTrainers
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
lsls r0, r1, 2
adds r0, r1
@@ -2850,7 +2850,7 @@ _08036568:
cmp r1, 0
beq _08036598
ldr r2, =gTrainers
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
lsls r0, r1, 2
adds r0, r1
@@ -2961,7 +2961,7 @@ _08036674:
cmp r1, 0
beq _080366AC
ldr r2, =gTrainers
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
lsls r0, r1, 2
adds r0, r1
@@ -3065,7 +3065,7 @@ _08036758:
thumb_func_start sub_8036760
sub_8036760: @ 8036760
push {lr}
- bl saveblock_randomize_and_relocate
+ bl MoveSaveBlocks_ResetHeap
bl sub_8056F28
bl dp11_init
bl init_uns_table_pokemon_copy
@@ -3287,7 +3287,7 @@ _080369AE:
cmp r0, 0
bne _080369E8
ldr r4, =gEnemyParty
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
adds r0, r4, 0
movs r2, 0x1
@@ -3301,7 +3301,7 @@ _080369AE:
movs r1, 0x96
lsls r1, 1
adds r0, r4, r1
- ldr r1, =gUnknown_02038BCC
+ ldr r1, =gTrainerBattleOpponent_B
ldrh r1, [r1]
movs r2, 0
bl LoadTrainerParty
@@ -4132,7 +4132,7 @@ _08037098:
strb r0, [r1]
bl sub_8036A5C
bl sub_8036B44
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
movs r0, 0xC0
lsls r0, 4
@@ -4591,12 +4591,12 @@ _08037530:
strh r0, [r1]
adds r0, r6, 0
adds r0, 0x40
- ldr r4, =gUnknown_02038BCA
+ ldr r4, =gTrainerBattleOpponent_A
ldrh r1, [r4]
bl sub_8162E20
adds r0, r6, 0
adds r0, 0x5C
- ldr r5, =gUnknown_02038BCC
+ ldr r5, =gTrainerBattleOpponent_B
ldrh r1, [r5]
bl sub_8162E20
ldrh r1, [r4]
@@ -6194,7 +6194,7 @@ _080383BC:
ands r0, r2
cmp r0, 0
beq _080383F8
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
movs r4, 0x80
lsls r4, 4
adds r1, r4, 0
@@ -6633,7 +6633,7 @@ _08038750:
movs r3, 0
str r3, [sp, 0xC]
adds r3, r6, 0
- bl create_pokemon_set_level
+ bl CreateMon
b _080389AC
.pool
_08038794:
@@ -6702,7 +6702,7 @@ _080387D6:
str r0, [sp, 0xC]
adds r0, r5, 0
adds r3, r6, 0
- bl create_pokemon_set_level
+ bl CreateMon
movs r6, 0
mov r0, r8
adds r0, 0x6
@@ -6794,7 +6794,7 @@ _08038896:
str r0, [sp, 0xC]
adds r0, r4, 0
adds r3, r6, 0
- bl create_pokemon_set_level
+ bl CreateMon
adds r5, 0x6
adds r0, r4, 0
movs r1, 0xC
@@ -6868,7 +6868,7 @@ _0803892A:
str r0, [sp, 0xC]
adds r0, r4, 0
adds r3, r6, 0
- bl create_pokemon_set_level
+ bl CreateMon
adds r5, 0x6
adds r0, r4, 0
movs r1, 0xC
@@ -9409,7 +9409,7 @@ sub_8039F40: @ 8039F40
mov r9, r1
ldr r0, =gUnknown_02024250
mov r8, r0
- ldr r1, =gUnknown_02024248
+ ldr r1, =gLastUsedMovesByBanks
mov r12, r1
ldr r5, =gDisableStructs
movs r4, 0
@@ -9467,7 +9467,7 @@ _08039F78:
ble _08039F70
movs r5, 0
ldr r3, =gSideTimers
- ldr r4, =gUnknown_0202428E
+ ldr r4, =gSideAffecting
movs r2, 0x1
_08039FD8:
strh r5, [r4]
@@ -9692,7 +9692,7 @@ _0803A1BA:
bl Random
ldr r1, =gUnknown_02024330
strh r0, [r1]
- ldr r1, =gUnknown_03005D10
+ ldr r1, =gBattleResults
movs r2, 0
movs r3, 0
_0803A1E4:
@@ -9703,7 +9703,7 @@ _0803A1E4:
bls _0803A1E4
ldr r0, =gEnemyParty
bl sub_806EBA4
- ldr r3, =gUnknown_03005D10
+ ldr r3, =gBattleResults
movs r1, 0x1
ands r1, r0
lsls r1, 6
@@ -10107,7 +10107,7 @@ _0803A540:
strb r0, [r1, 0x18]
ldrb r0, [r7]
lsls r0, 1
- ldr r1, =gUnknown_02024248
+ ldr r1, =gLastUsedMovesByBanks
adds r0, r1
movs r2, 0
strh r4, [r0]
@@ -10297,10 +10297,10 @@ _0803A6B4:
movs r1, 0xFF
strb r1, [r0]
ldrb r0, [r3]
- bl sub_81310F0
+ bl ClearBankMoveHistory
mov r7, r9
ldrb r0, [r7]
- bl sub_8131130
+ bl ClearBankAbilityHistory
add sp, 0x20
pop {r3-r5}
mov r8, r3
@@ -10617,7 +10617,7 @@ _0803A852:
strb r1, [r0, 0x16]
ldrb r0, [r3]
lsls r0, 1
- ldr r3, =gUnknown_02024248
+ ldr r3, =gLastUsedMovesByBanks
adds r0, r3
movs r3, 0
strh r2, [r0]
@@ -10830,9 +10830,9 @@ _0803AB6C:
adds r1, 0x22
strb r0, [r1]
ldrb r0, [r6]
- bl sub_81310F0
+ bl ClearBankMoveHistory
ldrb r0, [r6]
- bl sub_8131130
+ bl ClearBankAbilityHistory
add sp, 0x4
pop {r3-r5}
mov r8, r3
@@ -11183,7 +11183,7 @@ _0803AE96:
movs r1, 0xB
movs r2, 0
bl GetMonData
- ldr r1, =gUnknown_03005D10
+ ldr r1, =gBattleResults
strh r0, [r1, 0x20]
_0803AEC0:
ldr r0, =gBattleTypeFlags
@@ -12544,7 +12544,7 @@ _0803BA40:
b _0803BB78
.pool
_0803BA98:
- ldr r1, =gUnknown_03005D10
+ ldr r1, =gBattleResults
ldrb r0, [r1, 0x13]
ldr r2, =gBattleStruct
mov r8, r2
@@ -14183,7 +14183,7 @@ _0803C99C:
bne _0803C9BA
b _0803CC1C
_0803C9BA:
- ldr r0, =gUnknown_02024208
+ ldr r0, =gLastUsedItem
strh r3, [r0]
ldr r0, =gBattleCommunication
ldrb r1, [r5]
@@ -14889,7 +14889,7 @@ _0803CFDC:
adds r4, r0, r1
ldrh r0, [r4, 0x6]
muls r3, r0
- ldr r2, =gUnknown_08329D2E
+ ldr r2, =gStatStageRatios
movs r1, 0x1B
ldrsb r1, [r4, r1]
lsls r1, 1
@@ -14993,7 +14993,7 @@ _0803D0B8:
ldrh r0, [r4, 0x6]
adds r3, r0, 0
muls r3, r7
- ldr r2, =gUnknown_08329D2E
+ ldr r2, =gStatStageRatios
movs r1, 0x1B
ldrsb r1, [r4, r1]
lsls r1, 1
@@ -15816,7 +15816,7 @@ _0803D7AE:
movs r3, 0
ldrb r0, [r0]
strb r0, [r1]
- ldr r0, =gUnknown_02024400
+ ldr r0, =gDynamicBasePower
movs r2, 0
strh r3, [r0]
ldr r0, =gBattleStruct
@@ -15951,7 +15951,7 @@ _0803D920:
ldr r1, =gBattlescriptCurrInstr
ldr r0, =gUnknown_082DAA87
str r0, [r1]
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
ldr r0, =0x000003fe
cmp r1, r0
@@ -15973,7 +15973,7 @@ _0803D968:
ldr r0, =gUnknown_082DA92D
str r0, [r1]
ldr r2, =gTrainers
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
lsls r0, r1, 2
adds r0, r1
@@ -16308,7 +16308,7 @@ _0803DD10:
lsls r0, 24
cmp r0, 0
bne _0803DDA0
- ldr r4, =gUnknown_03005D10
+ ldr r4, =gBattleResults
ldrh r0, [r4, 0x6]
cmp r0, 0
bne _0803DD74
@@ -16374,7 +16374,7 @@ _0803DDB6:
ands r0, r1
cmp r0, 0
bne _0803DDD2
- ldr r0, =gUnknown_03005D10
+ ldr r0, =gBattleResults
ldrb r1, [r0, 0x5]
movs r0, 0x40
ands r0, r1
@@ -16590,7 +16590,7 @@ _0803DF9E:
cmp r4, 0
beq _0803DFDE
ldr r0, =gEnemyParty
- bl sub_8161F18
+ bl UpdateRoamerHPStatus
ldrb r1, [r5]
movs r0, 0x1
ands r0, r1
@@ -16599,7 +16599,7 @@ _0803DF9E:
cmp r1, 0x7
bne _0803DFDE
_0803DFDA:
- bl sub_8161F4C
+ bl SetRoamerInactive
_0803DFDE:
movs r0, 0x5A
bl m4aSongNumStop
@@ -16960,14 +16960,14 @@ _0803E33C:
lsls r0, 24
cmp r0, 0
bne _0803E37C
- ldr r0, =gUnknown_03005D10
+ ldr r0, =gBattleResults
ldr r1, =gCurrentMove
ldrh r1, [r1]
strh r1, [r0, 0x22]
b _0803E384
.pool
_0803E37C:
- ldr r0, =gUnknown_03005D10
+ ldr r0, =gBattleResults
ldr r1, =gCurrentMove
ldrh r1, [r1]
strh r1, [r0, 0x24]
@@ -17548,7 +17548,7 @@ bs2_8016374: @ 803E868
ldr r1, =gFightStateTracker
movs r0, 0xA
strb r0, [r1]
- ldr r1, =gUnknown_03005D10
+ ldr r1, =gBattleResults
ldrb r0, [r1, 0x2]
cmp r0, 0xFE
bhi _0803E8CE
@@ -17584,7 +17584,7 @@ sub_803E90C: @ 803E90C
strh r1, [r0]
ldrb r0, [r4]
bl sub_8045868
- ldr r5, =gUnknown_02024208
+ ldr r5, =gLastUsedItem
ldr r2, =gBattleBufferB
ldrb r1, [r4]
lsls r1, 9
@@ -17914,7 +17914,7 @@ _0803EC5E:
strb r5, [r0]
cmp r1, 0x25
bne _0803EC9C
- ldr r2, =gUnknown_02024208
+ ldr r2, =gLastUsedItem
ldr r1, =gBattleMons
movs r0, 0x58
muls r0, r5
@@ -18305,11 +18305,11 @@ bs5_8016AC0: @ 803EFF0
strh r1, [r0]
ldr r0, =gUnknown_02022E16
strh r1, [r0]
- ldr r1, =gUnknown_0203A04C
+ ldr r1, =gNumSafariBalls
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
- ldr r1, =gUnknown_02024208
+ ldr r1, =gLastUsedItem
movs r0, 0x5
strh r0, [r1]
ldr r1, =gBattlescriptCurrInstr
@@ -18347,14 +18347,14 @@ sub_803F050: @ 803F050
ldrb r0, [r0]
subs r0, 0x1
strb r0, [r6, 0x5]
- ldr r1, =gUnknown_02024208
+ ldr r1, =gLastUsedItem
ldrb r0, [r3]
lsls r0, 9
adds r2, 0x2
adds r0, r2
ldrb r0, [r0]
strh r0, [r1]
- ldr r1, =gUnknown_03005D10
+ ldr r1, =gBattleResults
ldrb r0, [r1, 0x1F]
cmp r0, 0xFE
bhi _0803F096
@@ -18657,7 +18657,7 @@ bsC_8016D70: @ 803F300
strh r4, [r0]
ldr r0, [r6]
strb r1, [r0, 0x13]
- ldr r0, =gUnknown_02024400
+ ldr r0, =gDynamicBasePower
strh r4, [r0]
strb r1, [r5, 0x14]
ldr r0, =gBattleCommunication
diff --git a/asm/rom_8072304.s b/asm/rom_8072304.s
index 16d2acf99..fe77580b9 100644
--- a/asm/rom_8072304.s
+++ b/asm/rom_8072304.s
@@ -4422,7 +4422,7 @@ sub_80747D8: @ 80747D8
ldr r1, =gUnknown_085CCB3C
add r0, sp, 0x4
bl StringCopy
- ldr r1, =gUnknown_0203A04C
+ ldr r1, =gNumSafariBalls
ldrb r1, [r1]
movs r2, 0
movs r3, 0x2
diff --git a/asm/rom_80A5C6C.s b/asm/rom_80A5C6C.s
index aa31ce7f9..22e91ecdc 100644
--- a/asm/rom_80A5C6C.s
+++ b/asm/rom_80A5C6C.s
@@ -12,7 +12,7 @@ sub_80A5C6C: @ 80A5C6C
lsrs r5, r0, 24
lsls r1, 24
lsrs r4, r1, 24
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A5C8A
@@ -70,7 +70,7 @@ _080A5CD8:
b _080A5DB0
.pool
_080A5D00:
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A5D28
@@ -168,7 +168,7 @@ sub_80A5DB8: @ 80A5DB8
lsls r0, 24
cmp r0, 0
beq _080A5DDA
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A5DDA
@@ -176,7 +176,7 @@ sub_80A5DB8: @ 80A5DB8
_080A5DDA:
cmp r5, 0xC9
bne _080A5E90
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A5E04
@@ -399,7 +399,7 @@ sub_80A5FA0: @ 80A5FA0
lsrs r0, 24
cmp r0, 0x1
bne _080A5FFE
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A5FFE
@@ -449,7 +449,7 @@ sub_80A600C: @ 80A600C
lsls r0, 24
cmp r0, 0
beq _080A6030
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A603E
@@ -527,7 +527,7 @@ sub_80A60AC: @ 80A60AC
lsrs r1, 24
cmp r1, 0x1
bhi _080A6126
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A60E8
@@ -645,7 +645,7 @@ sub_80A6190: @ 80A6190
bl sub_80A5C6C
lsls r0, 24
lsrs r6, r0, 24
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A6238
@@ -716,8 +716,8 @@ _080A6238:
bx r1
thumb_func_end sub_80A6190
- thumb_func_start obj_id_for_side_relative_to_move
-obj_id_for_side_relative_to_move: @ 80A6240
+ thumb_func_start GetAnimBankSpriteId
+GetAnimBankSpriteId: @ 80A6240
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
@@ -785,15 +785,15 @@ _080A62CA:
pop {r1}
bx r1
.pool
- thumb_func_end obj_id_for_side_relative_to_move
+ thumb_func_end GetAnimBankSpriteId
- thumb_func_start oamt_set_x3A_32
-oamt_set_x3A_32: @ 80A62D4
+ thumb_func_start StoreSpriteCallbackInData6
+StoreSpriteCallbackInData6: @ 80A62D4
strh r1, [r0, 0x3A]
lsrs r1, 16
strh r1, [r0, 0x3C]
bx lr
- thumb_func_end oamt_set_x3A_32
+ thumb_func_end StoreSpriteCallbackInData6
thumb_func_start sub_80A62DC
sub_80A62DC: @ 80A62DC
@@ -1868,7 +1868,7 @@ sub_80A6A90: @ 80A6A90
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A6ABC
@@ -1942,7 +1942,7 @@ battle_type_is_double: @ 80A6B20
sub_80A6B30: @ 80A6B30
push {r4,lr}
adds r4, r0, 0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
@@ -1988,7 +1988,7 @@ sub_80A6B90: @ 80A6B90
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
@@ -2046,7 +2046,7 @@ sub_80A6BFC: @ 80A6BFC
ldr r0, =gUnknown_02023060
ldr r0, [r0]
str r0, [r4, 0x4]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
@@ -2222,7 +2222,7 @@ sub_80A6D60: @ 80A6D60
adds r5, r2, 0
ldrb r0, [r4, 0x9]
bl sub_80A6D10
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -2244,7 +2244,7 @@ _080A6D86:
thumb_func_start sub_80A6D94
sub_80A6D94: @ 80A6D94
push {lr}
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A6DA4
@@ -2263,7 +2263,7 @@ sub_80A6DAC: @ 80A6DAC
lsls r0, 24
cmp r0, 0
beq _080A6DBE
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A6DD4
@@ -2883,13 +2883,13 @@ _080A71F0:
thumb_func_start sub_80A7238
sub_80A7238: @ 80A7238
push {r4,lr}
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A7268
ldr r4, =gSprites
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
@@ -2929,7 +2929,7 @@ sub_80A7270: @ 80A7270
ldrh r0, [r4, 0x2E]
lsls r0, 24
lsrs r7, r0, 24
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A72A6
@@ -2968,7 +2968,7 @@ _080A72B4:
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A7312
@@ -3357,7 +3357,7 @@ sub_80A75AC: @ 80A75AC
movs r4, 0
cmp r0, 0
beq _080A7602
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A75F6
@@ -3432,7 +3432,7 @@ _080A7674:
ldr r0, [sp]
cmp r0, 0
beq _080A769A
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A7694
@@ -3449,7 +3449,7 @@ _080A769A:
ldr r0, [sp, 0x4]
cmp r0, 0
beq _080A76B0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A76B0
@@ -3483,7 +3483,7 @@ sub_80A76C4: @ 80A76C4
lsrs r3, 24
mov r8, r3
movs r4, 0
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A76F2
@@ -3703,7 +3703,7 @@ _080A785C:
str r0, [r5, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4-r7}
pop {r0}
bx r0
@@ -3846,7 +3846,7 @@ _080A798E:
str r0, [r5, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4-r7}
pop {r0}
bx r0
@@ -3858,7 +3858,7 @@ duplicate_obj_of_side_rel2move_in_transparent_mode: @ 80A79E8
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0xFF
@@ -4084,7 +4084,7 @@ sub_80A7B98: @ 80A7B98
lsrs r4, r0, 24
ldr r0, =gBattleAnimArgs
ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0xFF
@@ -4550,7 +4550,7 @@ _080A7F38:
beq _080A7F42
b _080A8034
_080A7F42:
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A7F78
@@ -5014,7 +5014,7 @@ sub_80A82E4: @ 80A82E4
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A8300
@@ -5056,7 +5056,7 @@ sub_80A8328: @ 80A8328
bl GetBankIdentity
lsls r0, 24
lsrs r4, r0, 24
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A8344
@@ -5088,7 +5088,7 @@ GetBankIdentity_permutated: @ 80A8364
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A838A
@@ -5363,7 +5363,7 @@ _080A85B2:
bl CreateSprite
lsls r0, 24
lsrs r4, r0, 24
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A85EE
@@ -5412,7 +5412,7 @@ sub_80A861C: @ 80A861C
lsls r1, 24
lsrs r1, 24
mov r9, r1
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A86C4
@@ -5811,7 +5811,7 @@ _080A8946:
lsls r0, 24
cmp r0, 0
beq _080A8998
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A8998
@@ -5985,7 +5985,7 @@ _080A8AB6:
strh r0, [r4, 0x38]
ldr r1, =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A66DC
str r0, [r4, 0x1C]
pop {r4}
@@ -6040,7 +6040,7 @@ _080A8B26:
bl StartSpriteAnim
ldr r1, =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A66DC
str r0, [r4, 0x1C]
pop {r4}
@@ -6083,7 +6083,7 @@ _080A8B9C:
str r0, [r4, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -6101,7 +6101,7 @@ sub_80A8BC4: @ 80A8BC4
ldr r0, =gTasks
adds r5, r1, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
movs r6, 0
@@ -6516,7 +6516,7 @@ _080A8F32:
str r0, [r4, 0x1C]
ldr r1, =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
diff --git a/asm/rom_80C6FA0.s b/asm/rom_80C6FA0.s
index 440b576d2..db3ca5ac9 100644
--- a/asm/rom_80C6FA0.s
+++ b/asm/rom_80C6FA0.s
@@ -922,7 +922,7 @@ _080C76E2:
lsls r0, 4
add r0, r8
movs r1, 0xB
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
bne _080C770C
asrs r0, r6, 16
@@ -963,12 +963,12 @@ _080C772C:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
beq _080C7750
adds r0, r4, 0
movs r1, 0x2D
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
beq _080C7710
_080C7750:
@@ -6108,7 +6108,7 @@ sub_80CA4FC: @ 80CA4FC
movs r0, 0
movs r1, 0x1
movs r3, 0x6
- bl Print
+ bl PrintTextOnWindow
ldr r2, [r6]
ldr r1, =0x00000d1d
adds r2, r1
@@ -6119,7 +6119,7 @@ sub_80CA4FC: @ 80CA4FC
movs r0, 0
movs r1, 0x2
movs r3, 0x6
- bl Print
+ bl PrintTextOnWindow
ldr r2, [r6]
ldr r0, =0x00000d41
adds r2, r0
@@ -6130,7 +6130,7 @@ sub_80CA4FC: @ 80CA4FC
movs r0, 0
movs r1, 0x2
movs r3, 0xA
- bl Print
+ bl PrintTextOnWindow
ldr r2, [r6]
ldr r1, =0x00000d65
adds r2, r1
@@ -6141,7 +6141,7 @@ sub_80CA4FC: @ 80CA4FC
movs r0, 0
movs r1, 0
movs r3, 0x6
- bl Print
+ bl PrintTextOnWindow
b _080CA5E8
.pool
_080CA588:
@@ -6155,7 +6155,7 @@ _080CA588:
movs r0, 0
movs r1, 0
movs r3, 0x6
- bl Print
+ bl PrintTextOnWindow
ldr r2, [r6]
ldr r1, =0x00000cf9
adds r2, r1
@@ -6166,7 +6166,7 @@ _080CA588:
movs r0, 0
movs r1, 0x1
movs r3, 0x6
- bl Print
+ bl PrintTextOnWindow
ldr r2, [r6]
ldr r0, =0x00000d1d
adds r2, r0
@@ -6177,7 +6177,7 @@ _080CA588:
movs r0, 0
movs r1, 0x2
movs r3, 0x6
- bl Print
+ bl PrintTextOnWindow
ldr r2, [r6]
ldr r1, =0x00000d41
adds r2, r1
@@ -6188,7 +6188,7 @@ _080CA588:
movs r0, 0
movs r1, 0x2
movs r3, 0xA
- bl Print
+ bl PrintTextOnWindow
_080CA5E8:
movs r0, 0
movs r1, 0x2
@@ -7058,7 +7058,7 @@ _080CAD30:
movs r0, 0x1
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x1
movs r1, 0x2
movs r2, 0xE
@@ -13310,7 +13310,7 @@ sub_80CE0E8: @ 80CE0E8
muls r0, r1
ldr r1, =gPlayerParty
adds r0, r1
- bl zero_pokemon_struct
+ bl ZeroMonData
b _080CE10C
.pool
_080CE108:
@@ -14255,7 +14255,7 @@ _080CE97E:
adds r0, r5, 0
muls r0, r6
adds r0, r4
- bl zero_pokemon_struct
+ bl ZeroMonData
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
@@ -14683,7 +14683,7 @@ _080CED1E:
adds r7, r4, 0
adds r0, r7, 0
movs r1, 0x41
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
mov r2, r8
ldr r1, [r2]
ldr r3, =0x00000ce4
@@ -14696,11 +14696,11 @@ _080CED1E:
_080CED3A:
adds r0, r7, 0
movs r1, 0x1
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
mov r9, r0
adds r0, r7, 0
movs r1, 0x4
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
lsls r0, 24
lsrs r0, 24
mov r10, r0
@@ -14716,7 +14716,7 @@ _080CED3A:
_080CED6C:
adds r0, r7, 0
movs r1, 0x2D
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
mov r3, r8
ldr r1, [r3]
ldr r2, =0x00000ced
@@ -14729,26 +14729,26 @@ _080CED7E:
adds r2, r4
adds r0, r7, 0
movs r1, 0x2
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
ldr r0, [r5]
adds r0, r4
bl StringGetEnd10
adds r0, r7, 0
- bl sub_80690C0
+ bl GetLevelFromBoxMonExp
ldr r1, [r5]
ldr r3, =0x00000cec
adds r1, r3
strb r0, [r1]
adds r0, r7, 0
movs r1, 0x8
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
ldr r1, [r5]
ldr r2, =0x00000ceb
adds r1, r2
strb r0, [r1]
adds r0, r7, 0
movs r1, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
adds r2, r0, 0
ldr r1, [r5]
movs r6, 0xCE
@@ -14768,13 +14768,13 @@ _080CED7E:
ldrh r0, [r4]
adds r1, r6
ldr r1, [r1]
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
lsls r0, 24
lsrs r0, 24
mov r9, r0
adds r0, r7, 0
movs r1, 0xC
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
ldr r1, [r5]
ldr r2, =0x00000ce6
adds r1, r2
@@ -18257,7 +18257,7 @@ _080D0A62:
ldr r0, [r2]
adds r0, r1
movs r1, 0x5
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
beq _080D0A80
adds r0, r5, 0
@@ -18343,7 +18343,7 @@ _080D0B04:
ldr r0, [r1]
adds r0, r4
movs r1, 0x5
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
beq _080D0B2C
mov r0, r8
@@ -18475,7 +18475,7 @@ _080D0C04:
ldr r0, [r2]
adds r0, r1
movs r1, 0x5
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
beq _080D0C30
adds r0, r5, 0
@@ -20562,7 +20562,7 @@ nullsub_98: @ 80D1D08
thumb_func_start get_preferred_box
@ char get_preferred_box()
get_preferred_box: @ 80D1D0C
- ldr r0, =gUnknown_03005D94
+ ldr r0, =gPokemonStoragePtr
ldr r0, [r0]
ldrb r0, [r0]
bx lr
@@ -20576,7 +20576,7 @@ sub_80D1D18: @ 80D1D18
lsrs r1, r0, 24
cmp r1, 0xD
bhi _080D1D28
- ldr r0, =gUnknown_03005D94
+ ldr r0, =gPokemonStoragePtr
ldr r0, [r0]
strb r1, [r0]
_080D1D28:
@@ -20597,7 +20597,7 @@ get_pokemon_data_from_any_box: @ 80D1D30
bhi _080D1D6C
cmp r4, 0x1D
bhi _080D1D6C
- ldr r2, =gUnknown_03005D94
+ ldr r2, =gPokemonStoragePtr
lsls r0, r3, 2
adds r0, r3
lsls r1, r0, 4
@@ -20611,7 +20611,7 @@ get_pokemon_data_from_any_box: @ 80D1D30
lsls r1, 4
adds r0, r1
adds r1, r5, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
b _080D1D6E
.pool
_080D1D6C:
@@ -20635,7 +20635,7 @@ set_pokemon_data_from_any_box: @ 80D1D74
bhi _080D1DAC
cmp r4, 0x1D
bhi _080D1DAC
- ldr r2, =gUnknown_03005D94
+ ldr r2, =gPokemonStoragePtr
lsls r0, r3, 2
adds r0, r3
lsls r1, r0, 4
@@ -20650,7 +20650,7 @@ set_pokemon_data_from_any_box: @ 80D1D74
adds r0, r1
adds r1, r5, 0
adds r2, r6, 0
- bl SetMonData_encrypted
+ bl SetBoxMonData
_080D1DAC:
pop {r4-r6}
pop {r0}
@@ -20665,7 +20665,7 @@ get_pokemon_data_from_selected_box: @ 80D1DB8
adds r2, r1, 0
lsls r3, 24
lsrs r3, 24
- ldr r0, =gUnknown_03005D94
+ ldr r0, =gPokemonStoragePtr
ldr r0, [r0]
ldrb r0, [r0]
adds r1, r3, 0
@@ -20683,7 +20683,7 @@ set_pokemon_data_from_selected_box: @ 80D1DD8
adds r3, r2, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, =gUnknown_03005D94
+ ldr r0, =gPokemonStoragePtr
ldr r0, [r0]
ldrb r0, [r0]
adds r1, r4, 0
@@ -20707,7 +20707,7 @@ sub_80D1DFC: @ 80D1DFC
bhi _080D1E38
cmp r4, 0x1D
bhi _080D1E38
- ldr r2, =gUnknown_03005D94
+ ldr r2, =gPokemonStoragePtr
lsls r0, r3, 2
adds r0, r3
lsls r1, r0, 4
@@ -20722,7 +20722,7 @@ sub_80D1DFC: @ 80D1DFC
adds r0, r1
movs r1, 0x2
adds r2, r5, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
b _080D1E3C
.pool
_080D1E38:
@@ -20745,7 +20745,7 @@ sub_80D1E44: @ 80D1E44
bhi _080D1E84
cmp r2, 0x1D
bhi _080D1E84
- ldr r6, =gUnknown_03005D94
+ ldr r6, =gPokemonStoragePtr
lsls r1, r0, 2
adds r1, r0
lsls r0, r1, 4
@@ -20759,13 +20759,13 @@ sub_80D1E44: @ 80D1E44
lsls r4, r1, 4
adds r0, r4
movs r1, 0x5
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
beq _080D1E84
ldr r0, [r6]
adds r0, r5
adds r0, r4
- bl sub_80690C0
+ bl GetLevelFromBoxMonExp
_080D1E84:
movs r0, 0
pop {r4-r6}
@@ -20786,7 +20786,7 @@ sub_80D1E90: @ 80D1E90
bhi _080D1EC6
cmp r4, 0x1D
bhi _080D1EC6
- ldr r2, =gUnknown_03005D94
+ ldr r2, =gPokemonStoragePtr
lsls r0, r3, 2
adds r0, r3
lsls r1, r0, 4
@@ -20801,7 +20801,7 @@ sub_80D1E90: @ 80D1E90
adds r0, r1
movs r1, 0x2
adds r2, r5, 0
- bl SetMonData_encrypted
+ bl SetBoxMonData
_080D1EC6:
pop {r4,r5}
pop {r0}
@@ -20822,7 +20822,7 @@ sub_80D1ED0: @ 80D1ED0
bhi _080D1F10
cmp r4, 0x1D
bhi _080D1F10
- ldr r2, =gUnknown_03005D94
+ ldr r2, =gPokemonStoragePtr
lsls r0, r3, 2
adds r0, r3
lsls r1, r0, 4
@@ -20837,7 +20837,7 @@ sub_80D1ED0: @ 80D1ED0
adds r0, r1
adds r1, r5, 0
adds r2, r6, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
b _080D1F12
.pool
_080D1F10:
@@ -20860,7 +20860,7 @@ sub_80D1F18: @ 80D1F18
bhi _080D1F4E
cmp r1, 0x1D
bhi _080D1F4E
- ldr r0, =gUnknown_03005D94
+ ldr r0, =gPokemonStoragePtr
ldr r0, [r0]
lsls r3, r1, 2
adds r3, r1
@@ -20895,7 +20895,7 @@ sub_80D1F58: @ 80D1F58
bhi _080D1F8E
cmp r2, 0x1D
bhi _080D1F8E
- ldr r0, =gUnknown_03005D94
+ ldr r0, =gPokemonStoragePtr
ldr r1, [r0]
lsls r3, r2, 2
adds r3, r2
@@ -20950,7 +20950,7 @@ sub_80D1F98: @ 80D1F98
bhi _080D2004
cmp r6, 0x1D
bhi _080D2004
- ldr r2, =gUnknown_03005D94
+ ldr r2, =gPokemonStoragePtr
lsls r0, r7, 2
adds r0, r7
lsls r1, r0, 4
@@ -20972,7 +20972,7 @@ sub_80D1F98: @ 80D1F98
mov r1, r9
mov r2, r8
adds r3, r4, 0
- bl create_pokemon
+ bl CreateBoxMon
_080D2004:
add sp, 0x14
pop {r3,r4}
@@ -20995,7 +20995,7 @@ sub_80D2018: @ 80D2018
bhi _080D2048
cmp r4, 0x1D
bhi _080D2048
- ldr r2, =gUnknown_03005D94
+ ldr r2, =gPokemonStoragePtr
lsls r0, r3, 2
adds r0, r3
lsls r1, r0, 4
@@ -21008,7 +21008,7 @@ sub_80D2018: @ 80D2018
adds r1, r4
lsls r1, 4
adds r0, r1
- bl zero_pokemon_boxed_data
+ bl ZeroBoxMonData
_080D2048:
pop {r4}
pop {r0}
@@ -21028,7 +21028,7 @@ sub_80D2054: @ 80D2054
bhi _080D2088
cmp r4, 0x1D
bhi _080D2088
- ldr r2, =gUnknown_03005D94
+ ldr r2, =gPokemonStoragePtr
lsls r0, r3, 2
adds r0, r3
lsls r1, r0, 4
@@ -21062,7 +21062,7 @@ get_pokemon_by_box_and_pos: @ 80D2094
bhi _080D20C8
cmp r4, 0x1D
bhi _080D20C8
- ldr r2, =gUnknown_03005D94
+ ldr r2, =gPokemonStoragePtr
lsls r0, r3, 2
adds r0, r3
lsls r1, r0, 4
@@ -21095,7 +21095,7 @@ sav3_get_box_name: @ 80D20D0
movs r0, 0
b _080D20EC
_080D20DE:
- ldr r0, =gUnknown_03005D94
+ ldr r0, =gPokemonStoragePtr
lsls r1, r2, 3
adds r1, r2
ldr r2, =0x00008344
@@ -21118,7 +21118,7 @@ sub_80D20F8: @ 80D20F8
movs r0, 0
b _080D2112
_080D2106:
- ldr r0, =gUnknown_03005D94
+ ldr r0, =gPokemonStoragePtr
ldr r0, [r0]
ldr r2, =0x000083c2
adds r0, r2
@@ -21141,7 +21141,7 @@ sub_80D2120: @ 80D2120
bhi _080D213E
cmp r1, 0x10
bhi _080D213E
- ldr r0, =gUnknown_03005D94
+ ldr r0, =gPokemonStoragePtr
ldr r0, [r0]
ldr r3, =0x000083c2
adds r0, r3
@@ -21195,7 +21195,7 @@ _080D218A:
lsls r0, 4
add r0, r8
movs r1, 0xB
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
bne _080D21B4
asrs r0, r6, 16
@@ -21236,12 +21236,12 @@ _080D21D4:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
beq _080D21F8
adds r0, r4, 0
movs r1, 0x2D
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
beq _080D21B8
_080D21F8:
@@ -21271,7 +21271,7 @@ sub_80D2218: @ 80D2218
push {r7}
sub sp, 0x4
movs r2, 0
- ldr r0, =gUnknown_03005D94
+ ldr r0, =gPokemonStoragePtr
mov r8, r0
movs r7, 0x4
_080D2228:
@@ -21285,7 +21285,7 @@ _080D222E:
adds r0, r4
movs r1, 0x5
str r2, [sp]
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
ldr r2, [sp]
cmp r0, 0
bne _080D224C
@@ -21321,7 +21321,7 @@ sub_80D2270: @ 80D2270
bhi _080D22C8
cmp r2, 0x1D
bhi _080D22C8
- ldr r6, =gUnknown_03005D94
+ ldr r6, =gPokemonStoragePtr
lsls r1, r0, 2
adds r1, r0
lsls r0, r1, 4
@@ -21335,21 +21335,21 @@ sub_80D2270: @ 80D2270
lsls r4, r1, 4
adds r0, r4
movs r1, 0x5
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
beq _080D22C8
ldr r0, [r6]
adds r0, r5
adds r0, r4
movs r1, 0x6
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
bne _080D22C8
ldr r0, [r6]
adds r0, r5
adds r0, r4
movs r1, 0x4
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
bne _080D22C8
movs r0, 0x1
@@ -21371,7 +21371,7 @@ sub_80D22D0: @ 80D22D0
push {r6,r7}
movs r7, 0
movs r0, 0
- ldr r1, =gUnknown_03005D94
+ ldr r1, =gPokemonStoragePtr
mov r9, r1
_080D22E0:
lsls r1, r0, 2
@@ -21390,7 +21390,7 @@ _080D22F4:
adds r0, r4
adds r0, r5
movs r1, 0x5
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
beq _080D231A
mov r2, r9
@@ -21398,7 +21398,7 @@ _080D22F4:
adds r0, r4
adds r0, r5
movs r1, 0x6
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
bne _080D231A
adds r7, 0x1
@@ -21428,7 +21428,7 @@ sub_80D233C: @ 80D233C
push {r6,r7}
movs r7, 0
movs r0, 0
- ldr r1, =gUnknown_03005D94
+ ldr r1, =gPokemonStoragePtr
mov r9, r1
_080D234C:
lsls r1, r0, 2
@@ -21447,7 +21447,7 @@ _080D2360:
adds r0, r4
adds r0, r5
movs r1, 0x5
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
bne _080D2384
mov r2, r9
@@ -21455,7 +21455,7 @@ _080D2360:
adds r0, r4
adds r0, r5
movs r1, 0x6
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
beq _080D2386
_080D2384:
@@ -21490,7 +21490,7 @@ sub_80D23A8: @ 80D23A8
strh r0, [r1, 0x2]
movs r0, 0
mov r8, r0
- ldr r7, =gUnknown_03005D94
+ ldr r7, =gPokemonStoragePtr
movs r5, 0x4
_080D23C0:
movs r6, 0
@@ -21500,14 +21500,14 @@ _080D23C4:
adds r0, r5
adds r0, r4
movs r1, 0x5
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
beq _080D2404
ldr r0, [r7]
adds r0, r5
adds r0, r4
movs r1, 0x6
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
bne _080D2404
ldr r0, [r7]
@@ -21515,7 +21515,7 @@ _080D23C4:
adds r0, r4
movs r1, 0x51
mov r2, sp
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
cmp r0, 0
beq _080D2404
movs r0, 0x1
@@ -24078,7 +24078,7 @@ sub_80D3718: @ 80D3718
lsrs r0, 24
cmp r0, 0x1
bne _080D3754
- ldr r1, =gUnknown_03005DB0
+ ldr r1, =gFieldCallback
ldr r0, =hm_add_c3_launch_phase_2
str r0, [r1]
ldr r1, =gUnknown_0203CEEC
@@ -24380,7 +24380,7 @@ _080D395A:
cmp r0, 0x1
bne _080D39F8
_080D39BC:
- ldr r1, =gUnknown_03005DB0
+ ldr r1, =gFieldCallback
ldr r0, =hm_add_c3_launch_phase_2
str r0, [r1]
ldr r1, =gUnknown_0203CEEC
@@ -24418,7 +24418,7 @@ _080D3A18:
cmp r2, 0x1
bne _080D3A2A
_080D3A1E:
- ldr r1, =gUnknown_03005DB0
+ ldr r1, =gFieldCallback
ldr r0, =hm_add_c3_launch_phase_2
str r0, [r1]
ldr r1, =gUnknown_0203CEEC
@@ -24485,7 +24485,7 @@ sub_80D3A9C: @ 80D3A9C
lsrs r0, 24
str r0, [r1]
ldr r0, =gUnknown_08290705
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
pop {r0}
bx r0
.pool
@@ -25383,7 +25383,7 @@ _080D41D4:
cmp r0, 0x1
bne _080D422A
ldr r0, =gUnknown_08267EDB
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
_080D422A:
pop {r4-r6}
pop {r0}
@@ -25781,13 +25781,13 @@ _080D4500:
bls _080D4500
mov r0, r8
movs r1, 0xB
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
mov r0, r8
movs r1, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
adds r1, r0, 0
adds r0, r4, 0
bl sub_80D45C8
@@ -26425,7 +26425,7 @@ _080D4A18:
movs r1, 0x7
add r2, sp, 0xC
adds r3, r4, 0
- bl Print
+ bl PrintTextOnWindow
bl GetMapNamePopUpWindowId
lsls r0, 24
lsrs r0, 24
@@ -27321,7 +27321,7 @@ sub_80D51AC: @ 80D51AC
lsrs r5, r0, 24
ldr r4, =gBattleAnimArgs
ldrb r0, [r4]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
@@ -27474,7 +27474,7 @@ sub_80D52D0: @ 80D52D0
bgt _080D52FC
lsls r0, 24
lsrs r0, 24
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0xFF
@@ -27688,7 +27688,7 @@ sub_80D5484: @ 80D5484
lsrs r5, r0, 24
ldr r4, =gBattleAnimArgs
ldrb r0, [r4]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0xFF
@@ -27912,7 +27912,7 @@ sub_80D5644: @ 80D5644
lsrs r4, 24
ldr r5, =gBattleAnimArgs
ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, =gSprites
@@ -28032,7 +28032,7 @@ sub_80D5738: @ 80D5738
movs r6, 0x1
ldr r4, =gBattleAnimArgs
ldrb r0, [r4]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r7, r0, 24
movs r1, 0x8
@@ -28209,7 +28209,7 @@ _080D5894:
strh r2, [r4, 0x36]
ldr r1, =sub_80D58D4
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A6630
str r0, [r4, 0x1C]
pop {r4}
@@ -28229,7 +28229,7 @@ sub_80D58D4: @ 80D58D4
ldr r1, =sub_80A6630
str r1, [r0, 0x1C]
ldr r1, =move_anim_8072740
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.pool
@@ -28247,7 +28247,7 @@ sub_80D58F8: @ 80D58F8
strb r0, [r2]
ldr r5, =gBattleAnimArgs
ldrb r0, [r5, 0x4]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
ldrh r2, [r5]
@@ -28260,7 +28260,7 @@ sub_80D58F8: @ 80D58F8
strh r2, [r4, 0x36]
ldr r1, =sub_80D5944
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A6630
str r0, [r4, 0x1C]
pop {r4,r5}
@@ -28280,7 +28280,7 @@ sub_80D5944: @ 80D5944
ldr r1, =sub_80A6630
str r1, [r0, 0x1C]
ldr r1, =move_anim_8072740
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.pool
@@ -28503,7 +28503,7 @@ _080D5ADC:
strb r0, [r2]
ldr r1, =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, =sub_80A6680
str r0, [r5, 0x1C]
pop {r4-r6}
@@ -28592,13 +28592,13 @@ _080D5B9C:
bne _080D5C04
ldr r1, =move_anim_8072740
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
b _080D5C0C
.pool
_080D5C04:
ldr r1, =sub_80D5C20
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_080D5C0C:
ldr r0, =sub_80A6680
str r0, [r6, 0x1C]
@@ -28661,7 +28661,7 @@ sub_80D5C50: @ 80D5C50
strh r0, [r5, 0xA]
_080D5C82:
ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r1, =gTasks
lsls r4, r6, 2
adds r4, r6
@@ -28817,7 +28817,7 @@ sub_80D5DB0: @ 80D5DB0
cmp r0, 0
blt _080D5E10
ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r2, r0, 24
b _080D5E18
@@ -28944,7 +28944,7 @@ sub_80D5EB8: @ 80D5EB8
_080D5ED4:
ldr r4, =gBattleAnimArgs
ldrb r0, [r4, 0x8]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, =gTasks
@@ -29145,7 +29145,7 @@ sub_80D6064: @ 80D6064
lsrs r4, 24
ldr r6, =gBattleAnimArgs
ldrb r0, [r6, 0x6]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
@@ -29248,7 +29248,7 @@ sub_80D6134: @ 80D6134
lsrs r7, r0, 24
ldr r4, =gBattleAnimArgs
ldrb r0, [r4, 0x4]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
mov r8, r0
@@ -29290,7 +29290,7 @@ _080D6184:
strh r0, [r5, 0x12]
ldrh r0, [r6, 0x6]
strh r0, [r5, 0x14]
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
mov r8, r4
cmp r0, 0
@@ -29329,7 +29329,7 @@ _080D61DC:
ldrsh r0, [r4, r3]
cmp r0, 0
beq _080D6208
- bl sub_80A4DF0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080D6208
@@ -29366,7 +29366,7 @@ sub_80D622C: @ 80D622C
lsrs r5, r0, 24
ldr r4, =gBattleAnimArgs
ldrb r0, [r4, 0x4]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
mov r8, r0
@@ -29599,7 +29599,7 @@ _080D63EE:
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x1E]
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x16]
diff --git a/asm/rom_8145E84.s b/asm/rom_8145E84.s
deleted file mode 100644
index ebc7ec266..000000000
--- a/asm/rom_8145E84.s
+++ /dev/null
@@ -1,60 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8145E84
-sub_8145E84: @ 8145E84
- push {r4,lr}
- ldr r4, =gUnknown_0300120B
- ldrb r0, [r4]
- cmp r0, 0
- beq _08145E98
- cmp r0, 0x1
- beq _08145EAC
- b _08145EC0
- .pool
-_08145E98:
- ldr r0, =gUnknown_0300120A
- ldrb r0, [r0]
- bl sub_8145F6C
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08145EC0
- .pool
-_08145EAC:
- bl sub_8145F20
- lsls r0, 24
- cmp r0, 0
- beq _08145EC0
- movs r0, 0
- strb r0, [r4]
- ldr r0, =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
-_08145EC0:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8145E84
-
- thumb_func_start sub_8145EDC
-sub_8145EDC: @ 8145EDC
- push {lr}
- ldr r1, =gUnknown_0300120A
- strb r0, [r1]
- ldr r0, =sub_8145E84
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8145EDC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_8158B30.s b/asm/rom_8158B30.s
deleted file mode 100644
index 05c81dcfc..000000000
--- a/asm/rom_8158B30.s
+++ /dev/null
@@ -1,29569 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8158B30
-sub_8158B30: @ 8158B30
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gTasks
- lsls r6, r0, 2
- adds r6, r0
- lsls r6, 3
- adds r6, r1
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r6, 0x8]
- ldrh r0, [r1, 0x2]
- strh r0, [r6, 0xA]
- movs r0, 0x40
- negs r0, r0
- bl sub_80A5178
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x3F
- bl sub_80A5178
- adds r5, r0, 0
- lsls r4, 24
- asrs r4, 24
- lsls r5, 24
- asrs r5, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_80A5314
- strh r4, [r6, 0xC]
- strh r5, [r6, 0xE]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r6, 0x10]
- movs r0, 0xA
- strh r0, [r6, 0x1C]
- ldr r0, =sub_8158B98
- str r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8158B30
-
- thumb_func_start sub_8158B98
-sub_8158B98: @ 8158B98
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r5, [r4, 0xC]
- ldrb r6, [r4, 0x10]
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6F
- bne _08158BD0
- movs r0, 0x5
- strh r0, [r4, 0x1C]
- strh r1, [r4, 0x1E]
- ldr r0, =sub_8158C04
- str r0, [r4]
- b _08158BFE
- .pool
-_08158BD0:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _08158BEA
- strh r1, [r4, 0x1C]
- ldrh r0, [r4, 0x8]
- lsls r1, r5, 24
- asrs r1, 24
- bl PlaySE12WithPanning
-_08158BEA:
- lsls r1, r6, 24
- asrs r1, 24
- lsls r0, r5, 16
- asrs r0, 16
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- bl sub_80A52EC
- strh r0, [r4, 0xC]
-_08158BFE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8158B98
-
- thumb_func_start sub_8158C04
-sub_8158C04: @ 8158C04
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _08158C4C
- movs r0, 0
- strh r0, [r4, 0x1C]
- movs r0, 0x3F
- bl sub_80A5178
- adds r1, r0, 0
- ldrh r0, [r4, 0xA]
- lsls r1, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _08158C4C
- adds r0, r5, 0
- bl move_anim_related_task_del
-_08158C4C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8158C04
-
- thumb_func_start mas_80DCF38
-mas_80DCF38: @ 8158C58
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0]
- str r1, [sp]
- ldrb r5, [r0, 0x4]
- ldrb r6, [r0, 0x6]
- ldrb r3, [r0, 0x8]
- mov r10, r3
- ldrb r7, [r0, 0xA]
- ldrb r1, [r0, 0xC]
- mov r9, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- bl sub_80A5178
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- asrs r5, 24
- adds r0, r5, 0
- bl sub_80A5178
- adds r5, r0, 0
- lsls r4, 24
- asrs r4, 24
- lsls r5, 24
- asrs r5, 24
- lsls r6, 24
- asrs r6, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_80A5314
- ldr r2, =gTasks
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- mov r6, sp
- ldrh r6, [r6]
- strh r6, [r1, 0x8]
- strh r4, [r1, 0xA]
- strh r5, [r1, 0xC]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0xE]
- mov r0, r10
- strh r0, [r1, 0x10]
- strh r7, [r1, 0x12]
- mov r3, r9
- strh r3, [r1, 0x14]
- strh r2, [r1, 0x1C]
- strh r4, [r1, 0x1E]
- strh r3, [r1, 0x20]
- ldr r2, =sub_8158D08
- str r2, [r1]
- mov r0, r8
- bl _call_via_r2
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end mas_80DCF38
-
- thumb_func_start sub_8158D08
-sub_8158D08: @ 8158D08
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x20]
- adds r1, r0, 0x1
- strh r1, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _08158D50
- movs r0, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x8]
- movs r1, 0x1E
- ldrsb r1, [r4, r1]
- bl PlaySE12WithPanning
- ldrh r0, [r4, 0x10]
- subs r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bne _08158D50
- adds r0, r5, 0
- bl move_anim_related_task_del
- b _08158D82
- .pool
-_08158D50:
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _08158D82
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r0, [r4, 0xE]
- ldrh r1, [r4, 0x1E]
- adds r0, r1
- strh r0, [r4, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- bl sub_80A52EC
- strh r0, [r4, 0x1E]
-_08158D82:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8158D08
-
- thumb_func_start sub_8158D8C
-sub_8158D8C: @ 8158D8C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- movs r0, 0x40
- negs r0, r0
- bl sub_80A5178
- lsls r0, 24
- lsrs r6, r0, 24
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- beq _08158DD0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08158DC8
- ldr r0, =gUnknown_02039F34
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- ldrh r4, [r0]
- b _08158E76
- .pool
-_08158DC8:
- adds r0, r5, 0
- bl move_anim_task_del
- b _08158E76
-_08158DD0:
- ldr r0, =gBattleAnimArgs
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r2, r0, 0
- cmp r1, 0
- bne _08158DEC
- ldr r0, =gAnimationBankAttacker
- ldrb r4, [r0]
- b _08158E12
- .pool
-_08158DEC:
- cmp r1, 0x1
- bne _08158DFC
- ldr r0, =gAnimationBankTarget
- ldrb r4, [r0]
- b _08158E12
- .pool
-_08158DFC:
- cmp r1, 0x2
- bne _08158E08
- ldr r0, =gAnimationBankAttacker
- b _08158E0A
- .pool
-_08158E08:
- ldr r0, =gAnimationBankTarget
-_08158E0A:
- ldrb r1, [r0]
- movs r0, 0x2
- adds r4, r0, 0
- eors r4, r1
-_08158E12:
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _08158E1E
- cmp r0, 0x3
- bne _08158E38
-_08158E1E:
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- bne _08158E38
- adds r0, r5, 0
- bl move_anim_task_del
- b _08158E8C
- .pool
-_08158E38:
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _08158E5C
- ldr r1, =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gEnemyParty
- b _08158E6A
- .pool
-_08158E5C:
- ldr r1, =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
-_08158E6A:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
-_08158E76:
- cmp r4, 0
- beq _08158E86
- lsls r1, r6, 24
- asrs r1, 24
- adds r0, r4, 0
- movs r2, 0x3
- bl PlayCry3
-_08158E86:
- adds r0, r5, 0
- bl move_anim_task_del
-_08158E8C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8158D8C
-
- thumb_func_start sub_8158E9C
-sub_8158E9C: @ 8158E9C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- movs r0, 0x40
- negs r0, r0
- bl sub_80A5178
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- beq _08158EE0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08158ED8
- ldr r0, =gUnknown_02039F34
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- ldrh r4, [r0]
- b _08158F86
- .pool
-_08158ED8:
- adds r0, r6, 0
- bl move_anim_task_del
- b _08158F86
-_08158EE0:
- ldr r0, =gBattleAnimArgs
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r2, r0, 0
- cmp r1, 0
- bne _08158EFC
- ldr r0, =gAnimationBankAttacker
- ldrb r4, [r0]
- b _08158F22
- .pool
-_08158EFC:
- cmp r1, 0x1
- bne _08158F0C
- ldr r0, =gAnimationBankTarget
- ldrb r4, [r0]
- b _08158F22
- .pool
-_08158F0C:
- cmp r1, 0x2
- bne _08158F18
- ldr r0, =gAnimationBankAttacker
- b _08158F1A
- .pool
-_08158F18:
- ldr r0, =gAnimationBankTarget
-_08158F1A:
- ldrb r1, [r0]
- movs r0, 0x2
- adds r4, r0, 0
- eors r4, r1
-_08158F22:
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _08158F2E
- cmp r0, 0x3
- bne _08158F48
-_08158F2E:
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- bne _08158F48
- adds r0, r6, 0
- bl move_anim_task_del
- b _08158FEE
- .pool
-_08158F48:
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _08158F6C
- ldr r1, =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gEnemyParty
- b _08158F7A
- .pool
-_08158F6C:
- ldr r1, =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
-_08158F7A:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
-_08158F86:
- ldr r1, =gTasks
- lsls r2, r6, 2
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r3, =gBattleAnimArgs
- ldrh r1, [r3, 0x2]
- strh r1, [r0, 0x8]
- strh r4, [r0, 0xA]
- lsls r1, r5, 24
- asrs r1, 24
- strh r1, [r0, 0xC]
- adds r5, r2, 0
- cmp r4, 0
- beq _08158FE8
- movs r2, 0x2
- ldrsh r0, [r3, r2]
- cmp r0, 0xFF
- bne _08158FC8
- adds r0, r4, 0
- movs r2, 0x9
- bl PlayCry3
- b _08158FD0
- .pool
-_08158FC8:
- adds r0, r4, 0
- movs r2, 0x7
- bl PlayCry3
-_08158FD0:
- ldr r0, =gTasks
- adds r1, r5, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_8158FF4
- str r0, [r1]
- b _08158FEE
- .pool
-_08158FE8:
- adds r0, r6, 0
- bl move_anim_task_del
-_08158FEE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8158E9C
-
- thumb_func_start sub_8158FF4
-sub_8158FF4: @ 8158FF4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r4, r0, 24
- mov r9, r4
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- ldrh r6, [r1, 0xA]
- mov r8, r6
- ldrb r5, [r1, 0xC]
- adds r7, r5, 0
- ldrh r2, [r1, 0x1A]
- movs r3, 0x1A
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- bgt _08159028
- adds r0, r2, 0x1
- strh r0, [r1, 0x1A]
- b _0815906A
- .pool
-_08159028:
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0xFF
- bne _0815904E
- bl IsCryPlaying
- lsls r0, 24
- cmp r0, 0
- bne _0815906A
- lsls r1, r5, 24
- asrs r1, 24
- adds r0, r6, 0
- movs r2, 0xA
- bl PlayCry3
- adds r0, r4, 0
- bl move_anim_task_del
- b _0815906A
-_0815904E:
- bl IsCryPlaying
- lsls r0, 24
- cmp r0, 0
- bne _0815906A
- lsls r1, r7, 24
- asrs r1, 24
- mov r0, r8
- movs r2, 0x8
- bl PlayCry3
- mov r0, r9
- bl move_anim_task_del
-_0815906A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8158FF4
-
- thumb_func_start sub_8159078
-sub_8159078: @ 8159078
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0x1A]
- movs r3, 0x1A
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- bgt _081590A0
- adds r0, r2, 0x1
- strh r0, [r1, 0x1A]
- b _081590B0
- .pool
-_081590A0:
- bl IsCryPlaying
- lsls r0, 24
- cmp r0, 0
- bne _081590B0
- adds r0, r4, 0
- bl move_anim_task_del
-_081590B0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8159078
-
- thumb_func_start sub_81590B8
-sub_81590B8: @ 81590B8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =gBattleAnimArgs
- ldrh r1, [r1]
- strh r1, [r0, 0x1C]
- movs r0, 0x40
- negs r0, r0
- bl sub_80A5178
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- beq _081590F8
- ldr r0, =gUnknown_02039F34
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- b _08159102
- .pool
-_081590F8:
- ldr r1, =gUnknown_02038438
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
-_08159102:
- ldrh r2, [r0]
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- strh r2, [r1, 0xA]
- lsls r0, r5, 24
- asrs r0, 24
- strh r0, [r1, 0xC]
- cmp r2, 0
- beq _08159130
- ldr r0, =sub_815913C
- str r0, [r1]
- b _08159136
- .pool
-_08159130:
- adds r0, r4, 0
- bl move_anim_task_del
-_08159136:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81590B8
-
- thumb_func_start sub_815913C
-sub_815913C: @ 815913C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r6, [r0, 0xA]
- mov r8, r6
- ldrb r3, [r0, 0xC]
- adds r5, r3, 0
- movs r7, 0x1A
- ldrsh r2, [r0, r7]
- mov r12, r1
- cmp r2, 0x5
- bhi _081591DC
- lsls r0, r2, 2
- ldr r1, =_08159174
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08159174:
- .4byte _081591C2
- .4byte _081591A8
- .4byte _0815918C
- .4byte _081591A8
- .4byte _081591A8
- .4byte _081591B8
-_0815918C:
- lsls r1, r5, 24
- asrs r1, 24
- mov r0, r8
- movs r2, 0x4
- bl PlayCry6
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- b _081591B0
- .pool
-_081591A8:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r12
-_081591B0:
- ldrh r1, [r0, 0x1A]
- adds r1, 0x1
- strh r1, [r0, 0x1A]
- b _08159204
-_081591B8:
- bl IsCryPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08159204
-_081591C2:
- bl StopCryAndClearCrySongs
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1A]
- adds r0, 0x1
- strh r0, [r1, 0x1A]
- b _08159204
- .pool
-_081591DC:
- movs r1, 0x1C
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _081591F2
- lsls r1, r3, 24
- asrs r1, 24
- adds r0, r6, 0
- movs r2, 0x6
- bl PlayCry6
- b _081591FE
-_081591F2:
- lsls r1, r5, 24
- asrs r1, 24
- mov r0, r8
- movs r2, 0x6
- bl PlayCry3
-_081591FE:
- adds r0, r4, 0
- bl move_anim_task_del
-_08159204:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_815913C
-
- thumb_func_start sub_8159210
-sub_8159210: @ 8159210
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gBattleAnimArgs
- ldrh r5, [r0]
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- bl sub_80A5178
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- adds r0, r5, 0
- bl PlaySE1WithPanning
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8159210
-
- thumb_func_start sub_8159244
-sub_8159244: @ 8159244
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gBattleAnimArgs
- ldrh r5, [r0]
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- bl sub_80A5178
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- adds r0, r5, 0
- bl PlaySE2WithPanning
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8159244
-
- thumb_func_start sub_8159278
-sub_8159278: @ 8159278
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, =gBattleAnimArgs
- ldrb r5, [r0, 0x2]
- ldrb r6, [r0, 0x4]
- ldrh r1, [r0, 0x6]
- mov r9, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- bl sub_80A5178
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- asrs r5, 24
- adds r0, r5, 0
- bl sub_80A5178
- adds r5, r0, 0
- lsls r4, 24
- asrs r4, 24
- lsls r5, 24
- asrs r5, 24
- lsls r6, 24
- asrs r6, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_80A5314
- ldr r2, =gTasks
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r4, [r1, 0xA]
- strh r5, [r1, 0xC]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0xE]
- mov r0, r9
- strh r0, [r1, 0x12]
- strh r2, [r1, 0x1C]
- strh r4, [r1, 0x1E]
- ldr r2, =sub_8159308
- str r2, [r1]
- mov r0, r8
- bl _call_via_r2
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8159278
-
- thumb_func_start sub_8159308
-sub_8159308: @ 8159308
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r2, [r4, 0xE]
- ldrh r0, [r4, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x12
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _08159342
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- adds r0, r2, r1
- strh r0, [r4, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- bl sub_80A52EC
- strh r0, [r4, 0x1E]
-_08159342:
- ldr r1, =gUnknown_02038440
- ldrh r0, [r4, 0x1E]
- strb r0, [r1]
- movs r3, 0x1E
- ldrsh r1, [r4, r3]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _0815935A
- adds r0, r5, 0
- bl move_anim_task_del
-_0815935A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8159308
-
- thumb_func_start nullsub_114
-nullsub_114: @ 8159368
- bx lr
- thumb_func_end nullsub_114
-
- thumb_func_start sub_815936C
-sub_815936C: @ 815936C
- ldr r1, =gBattleBankFunc
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, =bx_exec_buffer_A_ch0_tbl6
- str r1, [r0]
- bx lr
- .pool
- thumb_func_end sub_815936C
-
- thumb_func_start bx_exec_buffer_A_ch0_tbl6
-bx_exec_buffer_A_ch0_tbl6: @ 8159388
- push {lr}
- ldr r2, =gBattleExecBuffer
- ldr r1, =gBitTable
- ldr r0, =gActiveBank
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _081593D4
- ldr r0, =gBattleBufferA
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _081593D0
- ldr r0, =gUnknown_085CDF20
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _081593D4
- .pool
-_081593D0:
- bl dp01_tbl6_exec_completed
-_081593D4:
- pop {r0}
- bx r0
- thumb_func_end bx_exec_buffer_A_ch0_tbl6
-
- thumb_func_start bx_battle_menu_t6_2
-bx_battle_menu_t6_2: @ 81593D8
- push {r4,r5,lr}
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08159446
- movs r0, 0x5
- bl PlaySE
- ldr r1, =gUnknown_020244AC
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08159424
- cmp r0, 0x1
- bgt _08159414
- cmp r0, 0
- beq _0815941E
- b _08159440
- .pool
-_08159414:
- cmp r0, 0x2
- beq _0815942A
- cmp r0, 0x3
- beq _08159436
- b _08159440
-_0815941E:
- movs r0, 0x1
- movs r1, 0x5
- b _0815942E
-_08159424:
- movs r0, 0x1
- movs r1, 0x6
- b _0815942E
-_0815942A:
- movs r0, 0x1
- movs r1, 0x7
-_0815942E:
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- b _08159440
-_08159436:
- movs r0, 0x1
- movs r1, 0x8
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
-_08159440:
- bl dp01_tbl6_exec_completed
- b _0815954E
-_08159446:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08159484
- ldr r5, =gUnknown_020244AC
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0815954E
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8059CF8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _081594F2
- .pool
-_08159484:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081594C0
- ldr r5, =gUnknown_020244AC
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0815954E
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8059CF8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _081594F2
- .pool
-_081594C0:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0815950C
- ldr r5, =gUnknown_020244AC
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0815954E
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8059CF8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x2
-_081594F2:
- eors r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8059CB4
- b _0815954E
- .pool
-_0815950C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0815954E
- ldr r5, =gUnknown_020244AC
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0815954E
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8059CF8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x2
- eors r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8059CB4
-_0815954E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bx_battle_menu_t6_2
-
- thumb_func_start sub_815955C
-sub_815955C: @ 815955C
- push {lr}
- ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, =SpriteCallbackDummy
- cmp r1, r0
- bne _08159580
- bl dp01_tbl6_exec_completed
-_08159580:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815955C
-
- thumb_func_start bx_t6_button_a
-bx_t6_button_a: @ 8159594
- push {lr}
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _081595A6
- bl dp01_tbl6_exec_completed
-_081595A6:
- pop {r0}
- bx r0
- thumb_func_end bx_t6_button_a
-
- thumb_func_start sub_81595AC
-sub_81595AC: @ 81595AC
- push {lr}
- ldr r2, =gSprites
- ldr r1, =gUnknown_03005D70
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, =SpriteCallbackDummy
- cmp r1, r0
- bne _081595D0
- bl dp01_tbl6_exec_completed
-_081595D0:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81595AC
-
- thumb_func_start sub_81595E4
-sub_81595E4: @ 81595E4
- push {lr}
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0815960E
- ldr r2, =gMain
- ldr r0, =0x00000439
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, =gUnknown_03005D00
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_0815960E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81595E4
-
- thumb_func_start bx_wait_t6
-bx_wait_t6: @ 8159624
- push {lr}
- ldr r0, =gDoingBattleAnim
- ldrb r0, [r0]
- cmp r0, 0
- beq _0815964A
- ldr r0, =gUnknown_020244D0
- ldr r2, [r0]
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0815964E
-_0815964A:
- bl dp01_tbl6_exec_completed
-_0815964E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end bx_wait_t6
-
- thumb_func_start sub_8159660
-sub_8159660: @ 8159660
- push {lr}
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08159684
- ldr r1, =gBattleBankFunc
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8159698
- str r1, [r0]
- bl FreeAllWindowBuffers
- bl sub_81358F4
-_08159684:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8159660
-
- thumb_func_start sub_8159698
-sub_8159698: @ 8159698
- push {lr}
- ldr r0, =gMain
- ldr r1, [r0, 0x4]
- ldr r0, =sub_8038420
- cmp r1, r0
- bne _081596BE
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081596BE
- ldr r0, =gUnknown_0203CE7C
- ldrh r1, [r0]
- movs r0, 0x1
- bl dp01_build_cmdbuf_x23_aa_0
- bl dp01_tbl6_exec_completed
-_081596BE:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8159698
-
- thumb_func_start sub_81596D4
-sub_81596D4: @ 81596D4
- push {lr}
- ldr r0, =gUnknown_020244D0
- ldr r2, [r0]
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _081596F6
- bl dp01_tbl6_exec_completed
-_081596F6:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81596D4
-
- thumb_func_start dp01_tbl6_exec_completed
-dp01_tbl6_exec_completed: @ 8159704
- push {r4,lr}
- sub sp, 0x4
- ldr r1, =gBattleBankFunc
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =bx_exec_buffer_A_ch0_tbl6
- str r1, [r0]
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08159758
- bl link_get_multiplayer_id
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl PrepareBufferDataTransferLink
- ldr r1, =gBattleBufferA
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _0815976A
- .pool
-_08159758:
- ldr r2, =gBattleExecBuffer
- ldr r1, =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_0815976A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01_tbl6_exec_completed
-
- thumb_func_start bx_80364D0
-bx_80364D0: @ 815977C
- push {lr}
- ldr r0, =gUnknown_020244D0
- ldr r2, [r0]
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0815979E
- bl dp01_tbl6_exec_completed
-_0815979E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end bx_80364D0
-
- thumb_func_start sub_81597AC
-sub_81597AC: @ 81597AC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81597AC
-
- thumb_func_start sub_81597B8
-sub_81597B8: @ 81597B8
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81597B8
-
- thumb_func_start sub_81597C4
-sub_81597C4: @ 81597C4
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81597C4
-
- thumb_func_start sub_81597D0
-sub_81597D0: @ 81597D0
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81597D0
-
- thumb_func_start sub_81597DC
-sub_81597DC: @ 81597DC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81597DC
-
- thumb_func_start sub_81597E8
-sub_81597E8: @ 81597E8
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81597E8
-
- thumb_func_start sub_81597F4
-sub_81597F4: @ 81597F4
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81597F4
-
- thumb_func_start sub_8159800
-sub_8159800: @ 8159800
- push {r4-r6,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldrb r0, [r0, 0x8]
- ldr r5, =gActiveBank
- ldrb r1, [r5]
- bl sub_805DF84
- ldr r0, [r4]
- ldrb r6, [r0, 0x8]
- ldrb r0, [r5]
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl template_build_for_pokemon_or_trainer
- ldr r0, =gUnknown_0202499C
- ldr r2, =gUnknown_08305D2C
- ldr r1, [r4]
- ldrb r1, [r1, 0x8]
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r2, r1
- asrs r2, 16
- movs r1, 0x50
- movs r3, 0x1E
- bl CreateSprite
- ldr r6, =gBankSpriteIds
- ldrb r1, [r5]
- adds r1, r6
- strb r0, [r1]
- ldr r4, =gSprites
- ldrb r3, [r5]
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xF0
- strh r1, [r0, 0x24]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =0x0000fffe
- strh r1, [r0, 0x2E]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, =sub_805D7AC
- str r1, [r0]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_815955C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8159800
-
- thumb_func_start sub_81598E0
-sub_81598E0: @ 81598E0
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81598E0
-
- thumb_func_start sub_81598EC
-sub_81598EC: @ 81598EC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81598EC
-
- thumb_func_start sub_81598F8
-sub_81598F8: @ 81598F8
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81598F8
-
- thumb_func_start sub_8159904
-sub_8159904: @ 8159904
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159904
-
- thumb_func_start sub_8159910
-sub_8159910: @ 8159910
- push {r4,r5,lr}
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r1, [r0, 0x8]
- movs r0, 0x4
- strb r0, [r1, 0x8]
- ldr r1, =gDoingBattleAnim
- movs r0, 0x1
- strb r0, [r1]
- ldr r5, =gActiveBank
- ldrb r4, [r5]
- movs r0, 0x1
- bl GetBankByPlayerAI
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x4
- bl move_anim_start_t4
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =bx_wait_t6
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8159910
-
- thumb_func_start sub_8159964
-sub_8159964: @ 8159964
- push {r4,r5,lr}
- ldr r1, =gBattleBufferA
- ldr r5, =gActiveBank
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r1, [r0]
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- strb r1, [r0, 0x8]
- ldr r1, =gDoingBattleAnim
- movs r0, 0x1
- strb r0, [r1]
- ldrb r4, [r5]
- movs r0, 0x1
- bl GetBankByPlayerAI
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x4
- bl move_anim_start_t4
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =bx_wait_t6
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8159964
-
- thumb_func_start sub_81599C4
-sub_81599C4: @ 81599C4
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81599C4
-
- thumb_func_start sub_81599D0
-sub_81599D0: @ 81599D0
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81599D0
-
- thumb_func_start dp01t_10_6_message
-dp01t_10_6_message: @ 81599DC
- push {r4,lr}
- ldr r0, =gUnknown_02022E14
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gUnknown_02022E16
- strh r1, [r0]
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- lsls r0, 9
- ldr r1, =gUnknown_02023066
- adds r0, r1
- ldrh r0, [r0]
- bl battle_pick_message
- ldr r0, =gUnknown_02022E2C
- movs r1, 0
- bl battle_show_message_maybe
- ldr r1, =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =bx_t6_button_a
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01t_10_6_message
-
- thumb_func_start dp01t_11_6_message_for_player_only
-dp01t_11_6_message_for_player_only: @ 8159A30
- push {lr}
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08159A4C
- bl dp01t_10_6_message
- b _08159A50
- .pool
-_08159A4C:
- bl dp01_tbl6_exec_completed
-_08159A50:
- pop {r0}
- bx r0
- thumb_func_end dp01t_11_6_message_for_player_only
-
- thumb_func_start sub_8159A54
-sub_8159A54: @ 8159A54
- push {lr}
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08159A7A
- ldr r0, =gUnknown_02022E14
- strh r1, [r0]
- ldr r1, =gUnknown_02022E16
- movs r0, 0xA0
- strh r0, [r1]
- ldr r1, =gBattleBankFunc
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, =bx_battle_menu_t6_2
- str r1, [r0]
-_08159A7A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8159A54
-
- thumb_func_start sub_8159A94
-sub_8159A94: @ 8159A94
- push {r4,lr}
- ldr r1, =gBattleBankFunc
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8159A54
- str r1, [r0]
- ldr r0, =gUnknown_085CCA54
- movs r1, 0x2
- bl battle_show_message_maybe
- movs r4, 0
-_08159AAE:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8059CF8
- adds r4, 0x1
- cmp r4, 0x3
- ble _08159AAE
- ldr r1, =gUnknown_020244AC
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8059CB4
- ldr r0, =gUnknown_085CCA04
- bl get_battle_strings_
- ldr r0, =gUnknown_02022E2C
- movs r1, 0x1
- bl battle_show_message_maybe
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8159A94
-
- thumb_func_start sub_8159AFC
-sub_8159AFC: @ 8159AFC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159AFC
-
- thumb_func_start sub_8159B08
-sub_8159B08: @ 8159B08
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159B08
-
- thumb_func_start sub_8159B14
-sub_8159B14: @ 8159B14
- 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 r1, =gBattleBankFunc
- ldr r2, =gActiveBank
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8159660
- str r1, [r0]
- ldr r1, =gUnknown_020244B8
- ldrb r0, [r2]
- strb r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8159B14
-
- thumb_func_start sub_8159B54
-sub_8159B54: @ 8159B54
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159B54
-
- thumb_func_start sub_8159B60
-sub_8159B60: @ 8159B60
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159B60
-
- thumb_func_start sub_8159B6C
-sub_8159B6C: @ 8159B6C
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159B6C
-
- thumb_func_start sub_8159B78
-sub_8159B78: @ 8159B78
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159B78
-
- thumb_func_start sub_8159B84
-sub_8159B84: @ 8159B84
- push {lr}
- ldr r0, =gUnknown_03005D70
- ldr r1, =gActiveBank
- ldrb r1, [r1]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, =gPlayerParty
- adds r1, r2
- movs r2, 0xB
- bl healthbar_draw_field_maybe
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8159B84
-
- thumb_func_start sub_8159BC0
-sub_8159BC0: @ 8159BC0
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159BC0
-
- thumb_func_start sub_8159BCC
-sub_8159BCC: @ 8159BCC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159BCC
-
- thumb_func_start sub_8159BD8
-sub_8159BD8: @ 8159BD8
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159BD8
-
- thumb_func_start sub_8159BE4
-sub_8159BE4: @ 8159BE4
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159BE4
-
- thumb_func_start sub_8159BF0
-sub_8159BF0: @ 8159BF0
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159BF0
-
- thumb_func_start sub_8159BFC
-sub_8159BFC: @ 8159BFC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159BFC
-
- thumb_func_start sub_8159C08
-sub_8159C08: @ 8159C08
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159C08
-
- thumb_func_start sub_8159C14
-sub_8159C14: @ 8159C14
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159C14
-
- thumb_func_start sub_8159C20
-sub_8159C20: @ 8159C20
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159C20
-
- thumb_func_start sub_8159C2C
-sub_8159C2C: @ 8159C2C
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159C2C
-
- thumb_func_start sub_8159C38
-sub_8159C38: @ 8159C38
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159C38
-
- thumb_func_start sub_8159C44
-sub_8159C44: @ 8159C44
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159C44
-
- thumb_func_start sub_8159C50
-sub_8159C50: @ 8159C50
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159C50
-
- thumb_func_start sub_8159C5C
-sub_8159C5C: @ 8159C5C
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159C5C
-
- thumb_func_start sub_8159C68
-sub_8159C68: @ 8159C68
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159C68
-
- thumb_func_start sub_8159C74
-sub_8159C74: @ 8159C74
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159C74
-
- thumb_func_start sub_8159C80
-sub_8159C80: @ 8159C80
- push {r4,lr}
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _08159C94
- movs r3, 0xC0
-_08159C94:
- ldr r2, =gBattleBufferA
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- lsls r1, r3, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- bl dp01_tbl6_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8159C80
-
- thumb_func_start dp01t_34_6_move_anim_start_t3
-dp01t_34_6_move_anim_start_t3: @ 8159CC4
- push {r4,r5,lr}
- ldr r4, =gBattleBufferA
- ldr r5, =gActiveBank
- ldrb r0, [r5]
- lsls r3, r0, 9
- adds r0, r4, 0x3
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0
- beq _08159D00
- bl sub_805EA60
- ldrb r1, [r5]
- lsls r1, 9
- adds r0, r4, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, r4, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayBGM
- b _08159D14
- .pool
-_08159D00:
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
-_08159D14:
- bl dp01_tbl6_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end dp01t_34_6_move_anim_start_t3
-
- thumb_func_start sub_8159D20
-sub_8159D20: @ 8159D20
- push {lr}
- ldr r1, =gBattlePartyID
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- bl PlayCry1
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8159D20
-
- thumb_func_start dp01t_2E_6_battle_intro
-dp01t_2E_6_battle_intro: @ 8159D5C
- push {lr}
- ldr r1, =gBattleBufferA
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl battle_intro_launch
- ldr r2, =gUnknown_020243FC
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01t_2E_6_battle_intro
-
- thumb_func_start sub_8159D90
-sub_8159D90: @ 8159D90
- push {r4,r5,lr}
- ldr r5, =gUnknown_03005D70
- ldr r4, =gActiveBank
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, =gPlayerParty
- adds r1, r2
- movs r2, 0xA
- bl healthbar_draw_field_maybe
- ldrb r0, [r4]
- bl sub_8076918
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_80729D0
- ldr r1, =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_81595AC
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8159D90
-
- thumb_func_start sub_8159DEC
-sub_8159DEC: @ 8159DEC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159DEC
-
- thumb_func_start sub_8159DF8
-sub_8159DF8: @ 8159DF8
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159DF8
-
- thumb_func_start sub_8159E04
-sub_8159E04: @ 8159E04
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159E04
-
- thumb_func_start sub_8159E10
-sub_8159E10: @ 8159E10
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159E10
-
- thumb_func_start sub_8159E1C
-sub_8159E1C: @ 8159E1C
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r5, =gBattleBufferA
- ldr r6, =gActiveBank
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _08159E5C
- bl dp01_tbl6_exec_completed
- b _08159E68
- .pool
-_08159E5C:
- ldr r0, =gBattleBankFunc
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, =sub_81596D4
- str r0, [r1]
-_08159E68:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8159E1C
-
- thumb_func_start sub_8159E78
-sub_8159E78: @ 8159E78
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159E78
-
- thumb_func_start sub_8159E84
-sub_8159E84: @ 8159E84
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8159E84
-
- thumb_func_start sub_8159E90
-sub_8159E90: @ 8159E90
- push {r4,lr}
- ldr r2, =gBattleOutcome
- ldr r1, =gBattleBufferA
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl dp01_tbl6_exec_completed
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x6
- ands r0, r1
- cmp r0, 0x2
- bne _08159ECC
- ldr r0, =gBattleBankFunc
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, =sub_81595E4
- str r0, [r1]
-_08159ECC:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8159E90
-
- thumb_func_start nullsub_115
-nullsub_115: @ 8159EEC
- bx lr
- thumb_func_end nullsub_115
-
- thumb_func_start sub_8159EF0
-sub_8159EF0: @ 8159EF0
- ldr r1, =gUnknown_03005DB0
- ldr r0, =hm_add_c3_launch_phase_2
- str r0, [r1]
- ldr r1, =gUnknown_0203CEEC
- ldr r0, =hm2_sweet_scent
- str r0, [r1]
- movs r0, 0x1
- bx lr
- .pool
- thumb_func_end sub_8159EF0
-
- thumb_func_start hm2_sweet_scent
-hm2_sweet_scent: @ 8159F10
- push {lr}
- movs r0, 0x33
- bl FieldEffectStart
- bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end hm2_sweet_scent
-
- thumb_func_start sub_8159F2C
-sub_8159F2C: @ 8159F2C
- push {lr}
- bl sub_80AC3D0
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, =sub_8159F5C
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8159F2C
-
- thumb_func_start sub_8159F5C
-sub_8159F5C: @ 8159F5C
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0xEC
- bl PlaySE
- ldr r5, =gPlttBufferUnfaded
- ldr r1, =sPaletteDecompressionBuffer
- movs r4, 0x80
- lsls r4, 1
- adds r0, r5, 0
- adds r2, r4, 0
- bl CpuFastSet
- ldr r0, =gPlttBufferFaded
- adds r1, r5, 0
- adds r2, r4, 0
- bl CpuFastSet
- bl GetPlayerAvatarObjectId
- ldr r2, =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- mvns r0, r0
- movs r1, 0x1F
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x8
- bl BeginNormalPaletteFade
- ldr r0, =sub_8159FEC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- movs r0, 0x33
- bl FieldEffectActiveListRemove
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8159F5C
-
- thumb_func_start sub_8159FEC
-sub_8159FEC: @ 8159FEC
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _0815A088
- bl sub_81BE72C
- movs r0, 0x40
- movs r1, 0x8
- movs r2, 0x1F
- bl BlendPalettes
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r4, r1, r0
- ldrh r1, [r4, 0x8]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0x40
- bne _0815A084
- strh r6, [r4, 0x8]
- bl sub_80B5578
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815A044
- adds r0, r5, 0
- bl DestroyTask
- b _0815A088
- .pool
-_0815A044:
- ldr r0, =sub_815A090
- str r0, [r4]
- bl GetPlayerAvatarObjectId
- ldr r2, =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- mvns r0, r0
- movs r1, 0x1F
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0x8
- movs r3, 0
- bl BeginNormalPaletteFade
- bl sub_81BE6B8
- b _0815A088
- .pool
-_0815A084:
- adds r0, r1, 0x1
- strh r0, [r4, 0x8]
-_0815A088:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8159FEC
-
- thumb_func_start sub_815A090
-sub_815A090: @ 815A090
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0815A0BE
- ldr r0, =sPaletteDecompressionBuffer
- ldr r1, =gPlttBufferUnfaded
- movs r2, 0x80
- lsls r2, 1
- bl CpuFastSet
- bl sub_80AC3E4
- ldr r0, =gUnknown_08290CAE
- bl script_env_1_execute_new_script
- adds r0, r4, 0
- bl DestroyTask
-_0815A0BE:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A090
-
- thumb_func_start sub_815A0D4
-sub_815A0D4: @ 815A0D4
- push {lr}
- adds r2, r0, 0
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r3, [r2, 0x20]
- adds r0, r3
- strh r0, [r2, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r3, [r2, 0x22]
- adds r0, r3
- strh r0, [r2, 0x22]
- movs r3, 0x6
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _0815A0FC
- ldrh r0, [r1, 0x4]
- b _0815A100
- .pool
-_0815A0FC:
- ldrh r0, [r1, 0x4]
- negs r0, r0
-_0815A100:
- strh r0, [r2, 0x2E]
- ldrh r0, [r1, 0x8]
- strh r0, [r2, 0x30]
- ldr r0, =sub_815A114
- str r0, [r2, 0x1C]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A0D4
-
- thumb_func_start sub_815A114
-sub_815A114: @ 815A114
- push {lr}
- adds r3, r0, 0
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0
- ble _0815A154
- ldrh r1, [r3, 0x32]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r3, 0x24]
- ldrh r0, [r3, 0x2E]
- adds r1, r0
- strh r1, [r3, 0x32]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- b _0815A15A
-_0815A154:
- adds r0, r3, 0
- bl move_anim_8072740
-_0815A15A:
- pop {r0}
- bx r0
- thumb_func_end sub_815A114
-
- thumb_func_start sub_815A160
-sub_815A160: @ 815A160
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, =gAnimationBankTarget
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_80A5C6C
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 8
- movs r0, 0x80
- lsls r0, 12
- adds r4, r0
- asrs r4, 16
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_80A5C6C
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 8
- movs r0, 0x80
- lsls r0, 12
- adds r1, r0
- asrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- bl sub_807521C
- adds r0, r5, 0
- bl move_anim_task_del
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A160
-
- thumb_func_start sub_815A1B0
-sub_815A1B0: @ 815A1B0
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x5A
- strh r0, [r4, 0x2E]
- ldr r0, =sub_80A64B0
- str r0, [r4, 0x1C]
- movs r0, 0x7
- strh r0, [r4, 0x30]
- ldr r1, =sub_815A1F4
- adds r0, r4, 0
- bl oamt_set_x3A_32
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldrh r0, [r4, 0x30]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A1B0
-
- thumb_func_start sub_815A1F4
-sub_815A1F4: @ 815A1F4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _0815A228
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_815A234
- str r0, [r4, 0x1C]
-_0815A228:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A1F4
-
- thumb_func_start sub_815A234
-sub_815A234: @ 815A234
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl move_anim_8072740
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_815A234
-
- thumb_func_start sub_815A254
-sub_815A254: @ 815A254
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r4, =gAnimationBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A6980
- ldrh r0, [r5, 0x20]
- subs r0, r7
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r5, 0x22]
- subs r1, r6
- lsls r1, 16
- asrs r1, 16
- bl sub_80A74F4
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 23
- adds r0, r1
- lsrs r4, r0, 16
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- beq _0815A2B2
- movs r1, 0x80
- lsls r1, 7
- adds r0, r4, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_0815A2B2:
- movs r3, 0x80
- lsls r3, 1
- str r4, [sp]
- adds r0, r5, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_80A73E0
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x2E]
- strh r7, [r5, 0x32]
- strh r6, [r5, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r5, 0x1C]
- ldr r1, =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A254
-
- thumb_func_start sub_815A2F0
-sub_815A2F0: @ 815A2F0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x4
- strh r0, [r4, 0x2E]
- ldr r0, =sub_815A31C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A2F0
-
- thumb_func_start sub_815A31C
-sub_815A31C: @ 815A31C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0815A342
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- b _0815A346
-_0815A342:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
-_0815A346:
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- beq _0815A354
- cmp r0, 0x4
- bne _0815A35C
-_0815A354:
- ldrh r0, [r4, 0x30]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x30]
-_0815A35C:
- ldrh r0, [r4, 0x32]
- adds r1, r0, 0x1
- strh r1, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x46
- ble _0815A3A0
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r0, 0
- strh r0, [r4, 0x32]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_815A3AC
- str r0, [r4, 0x1C]
-_0815A3A0:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A31C
-
- thumb_func_start sub_815A3AC
-sub_815A3AC: @ 815A3AC
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x32]
- adds r1, r0, 0x1
- strh r1, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _0815A3E8
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- adds r0, r3, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0815A3E8
- ldr r0, =sub_815A3F0
- str r0, [r3, 0x1C]
-_0815A3E8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A3AC
-
- thumb_func_start sub_815A3F0
-sub_815A3F0: @ 815A3F0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bhi _0815A448
- lsls r0, 2
- ldr r1, =_0815A40C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815A40C:
- .4byte _0815A428
- .4byte _0815A428
- .4byte _0815A432
- .4byte _0815A432
- .4byte _0815A440
- .4byte _0815A440
- .4byte _0815A448
-_0815A428:
- movs r1, 0
- movs r0, 0x1
- strh r0, [r4, 0x24]
- strh r1, [r4, 0x26]
- b _0815A450
-_0815A432:
- ldr r0, =0x0000ffff
- strh r0, [r4, 0x24]
- movs r0, 0
- b _0815A44E
- .pool
-_0815A440:
- movs r0, 0
- strh r0, [r4, 0x24]
- movs r0, 0x1
- b _0815A44E
-_0815A448:
- movs r0, 0
- strh r0, [r4, 0x24]
- ldr r0, =0x0000ffff
-_0815A44E:
- strh r0, [r4, 0x26]
-_0815A450:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _0815A462
- strh r2, [r4, 0x34]
-_0815A462:
- ldrh r0, [r4, 0x36]
- adds r1, r0, 0x1
- strh r1, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _0815A48C
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x30]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldrh r1, [r4, 0x2E]
- movs r0, 0x52
- bl SetGpuReg
- ldr r0, =sub_815A49C
- str r0, [r4, 0x1C]
-_0815A48C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A3F0
-
- thumb_func_start sub_815A49C
-sub_815A49C: @ 815A49C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldrh r0, [r4, 0x30]
- adds r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815A4CC
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
-_0815A4CC:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815A4E0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0815A4E0:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _0815A4FE
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl move_anim_8072740
-_0815A4FE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_815A49C
-
- thumb_func_start sub_815A504
-sub_815A504: @ 815A504
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, =sub_815A52C
- str r0, [r1]
- ldr r1, =gAnimVisualTaskCount
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_815A504
-
- thumb_func_start sub_815A52C
-sub_815A52C: @ 815A52C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80A6D94
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, =gTasks
- lsls r5, r4, 2
- adds r1, r5, r4
- lsls r1, 3
- adds r1, r7
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0815A59C
- ldr r0, =gPlttBufferFaded
- lsls r2, r6, 4
- adds r1, r2, 0
- adds r1, 0xB
- lsls r1, 1
- adds r1, r0
- ldrh r3, [r1]
- mov r8, r3
- movs r3, 0xA
- mov r9, r7
- adds r7, r5, 0
- mov r12, r0
- adds r5, r2, 0
- lsls r0, r6, 5
- add r0, r12
- adds r2, r0, 0
- adds r2, 0x14
-_0815A57A:
- ldrh r0, [r2]
- strh r0, [r1]
- subs r2, 0x2
- subs r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bgt _0815A57A
- adds r0, r5, 0x1
- lsls r0, 1
- add r0, r12
- movs r1, 0
- mov r2, r8
- strh r2, [r0]
- adds r0, r7, r4
- lsls r0, 3
- add r0, r9
- strh r1, [r0, 0x12]
-_0815A59C:
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _0815A5AC
- adds r0, r4, 0
- bl DestroyTask
-_0815A5AC:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A52C
-
- thumb_func_start c3_80DE6F0
-c3_80DE6F0: @ 815A5C8
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, =sub_815A5F0
- str r0, [r1]
- ldr r1, =gAnimVisualTaskCount
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end c3_80DE6F0
-
- thumb_func_start sub_815A5F0
-sub_815A5F0: @ 815A5F0
- 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
- bl sub_80A6D94
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r5, =gTasks
- mov r0, r8
- lsls r3, r0, 2
- adds r1, r3, r0
- lsls r1, 3
- adds r1, r5
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0815A692
- ldr r0, =gPlttBufferFaded
- lsls r2, r7, 4
- adds r1, r2, 0
- adds r1, 0xB
- lsls r1, 1
- adds r1, r0
- ldrh r6, [r1]
- movs r4, 0xA
- mov r10, r3
- mov r9, r0
- adds r5, r2, 0
- ldr r2, =gPlttBufferUnfaded
- mov r12, r2
- lsls r0, r7, 5
- add r0, r9
- adds r3, r0, 0
- adds r3, 0x14
-_0815A644:
- ldrh r0, [r3]
- strh r0, [r1]
- subs r3, 0x2
- subs r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bgt _0815A644
- adds r0, r5, 0x1
- lsls r0, 1
- add r0, r9
- strh r6, [r0]
- adds r1, r5, 0
- adds r1, 0xB
- lsls r1, 1
- add r1, r12
- ldrh r6, [r1]
- movs r4, 0xA
- lsls r0, r7, 5
- add r0, r12
- adds r2, r0, 0
- adds r2, 0x14
-_0815A66E:
- ldrh r0, [r2]
- strh r0, [r1]
- subs r2, 0x2
- subs r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bgt _0815A66E
- adds r0, r5, 0x1
- lsls r0, 1
- add r0, r12
- movs r1, 0
- strh r6, [r0]
- mov r0, r10
- add r0, r8
- lsls r0, 3
- ldr r2, =gTasks
- adds r0, r2
- strh r1, [r0, 0x12]
-_0815A692:
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _0815A6A2
- mov r0, r8
- bl DestroyTask
-_0815A6A2:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A5F0
-
- thumb_func_start sub_815A6C4
-sub_815A6C4: @ 815A6C4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r0, =gAnimationBankTarget
- ldrb r0, [r0]
- mov r5, sp
- adds r5, 0x2
- movs r1, 0
- mov r2, sp
- adds r3, r5, 0
- bl sub_80A8924
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _0815A6F8
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_0815A6F8:
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x2E]
- mov r2, sp
- ldrh r0, [r1, 0x4]
- ldrh r2, [r2]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0x6]
- ldrh r5, [r5]
- adds r0, r5
- strh r0, [r4, 0x36]
- ldr r0, =0x0000ffce
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80A68D4
- ldr r0, =sub_815A73C
- str r0, [r4, 0x1C]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A6C4
-
- thumb_func_start sub_815A73C
-sub_815A73C: @ 815A73C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80A6900
- lsls r0, 24
- cmp r0, 0
- beq _0815A75E
- movs r1, 0
- movs r0, 0x1E
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- ldr r0, =sub_80A64B0
- str r0, [r4, 0x1C]
- ldr r1, =sub_815A76C
- adds r0, r4, 0
- bl oamt_set_x3A_32
-_0815A75E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A73C
-
- thumb_func_start sub_815A76C
-sub_815A76C: @ 815A76C
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x30]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0815A798
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
-_0815A798:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bne _0815A7AC
- adds r0, r3, 0
- bl move_anim_8072740
-_0815A7AC:
- pop {r0}
- bx r0
- thumb_func_end sub_815A76C
-
- thumb_func_start sub_815A7B0
-sub_815A7B0: @ 815A7B0
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_80A6838
- ldr r5, =gBattleAnimArgs
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_80A6864
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, =sub_80A67D8
- str r0, [r4, 0x1C]
- ldr r1, =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A7B0
-
- thumb_func_start sub_815A7EC
-sub_815A7EC: @ 815A7EC
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815A84C
- adds r0, r4, 0
- bl sub_80A6838
- ldr r5, =gBattleAnimArgs
- movs r2, 0
- ldrsh r1, [r5, r2]
- adds r0, r4, 0
- bl sub_80A6864
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- bne _0815A840
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0815A830
- ldrh r0, [r5, 0x4]
- b _0815A846
- .pool
-_0815A830:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- negs r0, r0
- strh r0, [r4, 0x30]
- movs r2, 0x6
- ldrsh r0, [r5, r2]
- negs r0, r0
- b _0815A84A
-_0815A840:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- negs r0, r0
-_0815A846:
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x6]
-_0815A84A:
- strh r0, [r4, 0x32]
-_0815A84C:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- movs r3, 0xFF
- ldrh r1, [r4, 0x30]
- ldrh r2, [r4, 0x34]
- adds r1, r2
- strh r1, [r4, 0x34]
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r1, r2
- strh r1, [r4, 0x36]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- strh r1, [r4, 0x24]
- ands r0, r3
- movs r1, 0x5
- bl Sin
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xF0
- bls _0815A8A4
- adds r0, r4, 0
- bl move_anim_8072740
-_0815A8A4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815A7EC
-
- thumb_func_start sub_815A8AC
-sub_815A8AC: @ 815A8AC
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0815A8C2
- adds r0, r2, 0
- bl move_anim_8072740
-_0815A8C2:
- pop {r0}
- bx r0
- thumb_func_end sub_815A8AC
-
- thumb_func_start sub_815A8C8
-sub_815A8C8: @ 815A8C8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gAnimationBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815A8EC
- ldr r1, =gBattleAnimArgs
- movs r0, 0
- b _0815A8F0
- .pool
-_0815A8EC:
- ldr r1, =gBattleAnimArgs
- movs r0, 0x1
-_0815A8F0:
- strh r0, [r1, 0xE]
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A8C8
-
- thumb_func_start sub_815A904
-sub_815A904: @ 815A904
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gMoveDmgMoveAnim
- ldr r0, [r0]
- cmp r0, 0
- ble _0815A920
- ldr r1, =gBattleAnimArgs
- movs r0, 0
- b _0815A924
- .pool
-_0815A920:
- ldr r1, =gBattleAnimArgs
- movs r0, 0x1
-_0815A924:
- strh r0, [r1, 0xE]
- adds r0, r2, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A904
-
- thumb_func_start sub_815A934
-sub_815A934: @ 815A934
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r1, =0x00001f3f
- movs r0, 0x4A
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 8
- movs r0, 0
- bl SetGpuRegBits
- ldr r0, =gUnknown_02022E24
- movs r1, 0
- strh r1, [r0]
- ldr r4, =gUnknown_02022E26
- strh r1, [r4]
- movs r0, 0x40
- movs r1, 0
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x44
- bl SetGpuReg
- adds r0, r5, 0
- movs r1, 0
- bl sub_80A6980
- ldrb r1, [r5, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r5, 0x1]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_815A9A0
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A934
-
- thumb_func_start sub_815A9A0
-sub_815A9A0: @ 815A9A0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bhi _0815AA60
- lsls r0, 2
- ldr r1, =_0815A9BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815A9BC:
- .4byte _0815A9D4
- .4byte _0815A9F2
- .4byte _0815AA12
- .4byte _0815A9F2
- .4byte _0815AA32
- .4byte _0815AA42
-_0815A9D4:
- 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
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0815AA60
- b _0815AA3A
-_0815A9F2:
- ldrh r0, [r4, 0x30]
- adds r0, 0x75
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _0815AA60
- movs r0, 0
- strh r0, [r4, 0x32]
- b _0815AA3A
-_0815AA12:
- ldrh r0, [r4, 0x30]
- subs r0, 0x75
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x29
- bne _0815AA60
- movs r0, 0
- strh r0, [r4, 0x32]
- b _0815AA3A
-_0815AA32:
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
-_0815AA3A:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0815AA60
-_0815AA42:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0815AA60
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_815AA6C
- str r0, [r4, 0x1C]
-_0815AA60:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A9A0
-
- thumb_func_start sub_815AA6C
-sub_815AA6C: @ 815AA6C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, =0x00003f3f
- movs r0, 0x4A
- bl SetGpuReg
- movs r0, 0
- bl GetGpuReg
- adds r1, r0, 0
- movs r2, 0x80
- lsls r2, 8
- adds r0, r2, 0
- eors r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl move_anim_8072740
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815AA6C
-
- thumb_func_start sub_815AAA4
-sub_815AAA4: @ 815AAA4
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, =gBattleAnimArgs
- movs r1, 0x6
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0815AAD0
- ldr r4, =gAnimationBankAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
-_0815AAD0:
- ldrh r0, [r6]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- movs r3, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r6, 0x2]
- ldrh r4, [r5, 0x22]
- adds r0, r4
- strh r0, [r5, 0x22]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r4, =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0815AB2C
- ldrb r1, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r5, 0x3]
- ldr r0, =0x0000fff4
- strh r0, [r5, 0x24]
- movs r0, 0x2
- b _0815AB32
- .pool
-_0815AB2C:
- movs r0, 0xC
- strh r0, [r5, 0x24]
- ldr r0, =0x0000fffe
-_0815AB32:
- strh r0, [r5, 0x30]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x2E]
- movs r2, 0x34
- ldrsh r0, [r5, r2]
- cmp r0, 0xFF
- beq _0815AB46
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x34]
-_0815AB46:
- ldr r0, =sub_815AB5C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815AAA4
-
- thumb_func_start sub_815AB5C
-sub_815AB5C: @ 815AB5C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815AB9A
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _0815ABBA
- adds r0, r2, 0x1
- strh r0, [r4, 0x32]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815ABBA
- movs r0, 0x40
- negs r0, r0
- bl sub_80A5178
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xDE
- bl PlaySE1WithPanning
- b _0815ABBA
-_0815AB9A:
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x30]
- subs r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _0815ABAC
- negs r0, r0
-_0815ABAC:
- cmp r0, 0xC
- bne _0815ABBA
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- subs r0, r2, 0x1
- strh r0, [r4, 0x32]
-_0815ABBA:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815ABC8
- adds r0, r4, 0
- bl move_anim_8072740
-_0815ABC8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_815AB5C
-
- thumb_func_start sub_815ABD0
-sub_815ABD0: @ 815ABD0
- push {lr}
- ldrb r2, [r0, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x1]
- movs r1, 0xFF
- strh r1, [r0, 0x34]
- bl sub_815AAA4
- pop {r0}
- bx r0
- thumb_func_end sub_815ABD0
-
- thumb_func_start sub_815ABEC
-sub_815ABEC: @ 815ABEC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- beq _0815AC40
- ldr r1, =0x00001f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r1, =gUnknown_02022E28
- ldr r2, =0x000098f0
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, =gUnknown_02022E2A
- movs r0, 0xA0
- strh r0, [r1]
- ldr r0, =gUnknown_02022E24
- ldrh r1, [r0]
- movs r0, 0x42
- bl SetGpuReg
- ldr r0, =gUnknown_02022E26
- ldrh r1, [r0]
- movs r0, 0x46
- bl SetGpuReg
- b _0815AC70
- .pool
-_0815AC40:
- ldr r1, =0x00001f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r1, =gUnknown_02022E28
- movs r0, 0xF0
- strh r0, [r1]
- ldr r4, =gUnknown_02022E2A
- ldr r1, =0x000078a0
- adds r0, r1, 0
- strh r0, [r4]
- movs r0, 0x42
- movs r1, 0xF0
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x46
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 7
- movs r0, 0
- bl SetGpuRegBits
-_0815AC70:
- adds r0, r5, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815ABEC
-
- thumb_func_start sub_815AC8C
-sub_815AC8C: @ 815AC8C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r0, =gUnknown_02022E28
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gUnknown_02022E2A
- strh r1, [r0]
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- bne _0815ACB8
- movs r1, 0x80
- lsls r1, 7
- movs r0, 0
- bl ClearGpuRegBits
-_0815ACB8:
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815AC8C
-
- thumb_func_start sub_815ACD0
-sub_815ACD0: @ 815ACD0
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0815ACEC
- ldr r4, =gAnimationBankAttacker
- b _0815ACEE
- .pool
-_0815ACEC:
- ldr r4, =gAnimationBankTarget
-_0815ACEE:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x2]
- adds r0, r6
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r2, =gBattleAnimArgs
- ldrh r0, [r2, 0x4]
- strh r0, [r5, 0x26]
- movs r3, 0
- lsls r0, 16
- asrs r0, 16
- ldrh r4, [r2, 0x6]
- movs r6, 0x6
- ldrsh r1, [r2, r6]
- cmp r0, r1
- ble _0815AD26
- movs r3, 0x1
-_0815AD26:
- strh r3, [r5, 0x2E]
- movs r0, 0
- strh r0, [r5, 0x30]
- ldrh r0, [r2, 0x8]
- strh r0, [r5, 0x32]
- ldrh r0, [r2, 0xA]
- strh r0, [r5, 0x34]
- strh r4, [r5, 0x36]
- ldr r0, =sub_815AD4C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815ACD0
-
- thumb_func_start sub_815AD4C
-sub_815AD4C: @ 815AD4C
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x30]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r2, 0x30]
- ldr r1, =gSineTable
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x34]
- ldrh r3, [r2, 0x26]
- adds r1, r0, r3
- strh r1, [r2, 0x26]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _0815AD98
- lsls r0, r1, 16
- asrs r0, 16
- movs r3, 0x36
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bge _0815ADAA
- adds r0, r2, 0
- bl move_anim_8072740
- b _0815ADAA
- .pool
-_0815AD98:
- lsls r0, r1, 16
- asrs r0, 16
- movs r3, 0x36
- ldrsh r1, [r2, r3]
- cmp r0, r1
- ble _0815ADAA
- adds r0, r2, 0
- bl move_anim_8072740
-_0815ADAA:
- pop {r0}
- bx r0
- thumb_func_end sub_815AD4C
-
- thumb_func_start sub_815ADB0
-sub_815ADB0: @ 815ADB0
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r5, r1, r0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0815ADDC
- ldr r4, =gAnimationBankAttacker
- b _0815ADDE
- .pool
-_0815ADDC:
- ldr r4, =gAnimationBankTarget
-_0815ADDE:
- ldrb r0, [r4]
- bl sub_80A6190
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r6, 0
- adds r1, r0, 0
- adds r1, 0x24
- movs r2, 0
- strh r1, [r5, 0x8]
- strh r1, [r5, 0xA]
- subs r0, 0x21
- strh r0, [r5, 0xC]
- cmp r0, 0
- bge _0815AE08
- strh r2, [r5, 0xC]
-_0815AE08:
- ldrh r0, [r5, 0x8]
- strh r0, [r5, 0xE]
- movs r0, 0x8
- strh r0, [r5, 0x10]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x12]
- strh r2, [r5, 0x14]
- strh r2, [r5, 0x16]
- cmp r7, 0x1
- bne _0815AE30
- ldr r0, =gUnknown_02022E18
- b _0815AE32
- .pool
-_0815AE30:
- ldr r0, =gUnknown_02022E1C
-_0815AE32:
- ldrh r2, [r0]
- strh r2, [r5, 0x18]
- adds r3, r2, 0
- adds r3, 0xF0
- strh r3, [r5, 0x1A]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x1C]
- movs r4, 0x4
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bne _0815AE54
- strh r3, [r5, 0x1E]
- ldrh r3, [r5, 0x18]
- b _0815AE58
- .pool
-_0815AE54:
- strh r2, [r5, 0x1E]
- ldrh r3, [r5, 0x1A]
-_0815AE58:
- movs r0, 0
- strh r0, [r5, 0x26]
- ldrh r1, [r5, 0xC]
- lsls r2, r1, 16
- asrs r1, r2, 16
- movs r6, 0xE
- ldrsh r0, [r5, r6]
- cmp r1, r0
- bgt _0815AE8E
- ldr r4, =gUnknown_02038C28
- movs r0, 0xF0
- lsls r0, 3
- adds r0, r4
- mov r12, r0
-_0815AE74:
- asrs r2, 16
- lsls r1, r2, 1
- adds r0, r1, r4
- strh r3, [r0]
- add r1, r12
- strh r3, [r1]
- adds r2, 0x1
- lsls r2, 16
- asrs r1, r2, 16
- movs r6, 0xE
- ldrsh r0, [r5, r6]
- cmp r1, r0
- ble _0815AE74
-_0815AE8E:
- cmp r7, 0x1
- bne _0815AEA0
- ldr r0, =0x04000014
- b _0815AEA2
- .pool
-_0815AEA0:
- ldr r0, =0x04000018
-_0815AEA2:
- str r0, [sp]
- ldr r0, =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80BA038
- ldr r0, =sub_815AED8
- str r0, [r5]
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815ADB0
-
- thumb_func_start sub_815AED8
-sub_815AED8: @ 815AED8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- ldrh r0, [r4, 0x8]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r4, 0xC]
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bge _0815AF00
- strh r2, [r4, 0x8]
-_0815AF00:
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0815AF2C
- ldrh r0, [r4, 0xA]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r4, 0xC]
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bge _0815AF30
- strh r2, [r4, 0xA]
- movs r0, 0x1
- strh r0, [r4, 0x26]
- b _0815AF30
- .pool
-_0815AF2C:
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
-_0815AF30:
- ldrh r0, [r4, 0x14]
- adds r0, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815AF5C
- movs r0, 0
- strh r0, [r4, 0x14]
- movs r1, 0
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0815AF4E
- movs r1, 0x1
-_0815AF4E:
- strh r1, [r4, 0x16]
- cmp r1, 0
- beq _0815AF58
- ldrh r0, [r4, 0x18]
- b _0815AF5A
-_0815AF58:
- ldrh r0, [r4, 0x1A]
-_0815AF5A:
- strh r0, [r4, 0x20]
-_0815AF5C:
- ldrh r1, [r4, 0x8]
- lsls r3, r1, 16
- asrs r1, r3, 16
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bge _0815AF90
- ldr r5, =gUnknown_02038C28
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_0815AF72:
- asrs r3, 16
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r4, 0x20]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r4, 0x20]
- strh r0, [r1]
- adds r3, 0x1
- lsls r3, 16
- asrs r1, r3, 16
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _0815AF72
-_0815AF90:
- ldrh r1, [r4, 0xA]
- lsls r3, r1, 16
- asrs r1, r3, 16
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bgt _0815AFC4
- ldr r5, =gUnknown_02038C28
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_0815AFA6:
- asrs r3, 16
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r4, 0x1E]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r4, 0x1E]
- strh r0, [r1]
- adds r3, 0x1
- lsls r3, 16
- asrs r1, r3, 16
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r1, r0
- ble _0815AFA6
-_0815AFC4:
- movs r3, 0x26
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0815AFE0
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0815AFDA
- ldr r1, =gUnknown_02039B28
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_0815AFDA:
- adds r0, r7, 0
- bl move_anim_task_del
-_0815AFE0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815AED8
-
- thumb_func_start sub_815AFF0
-sub_815AFF0: @ 815AFF0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- movs r5, 0
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xA]
- ldr r6, =gAnimationBankAttacker
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xC]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xE]
- movs r0, 0x20
- strh r0, [r4, 0x10]
- ldr r0, =0x0000ffec
- strh r0, [r4, 0x12]
- strh r5, [r4, 0x14]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, =sub_815B054
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815AFF0
-
- thumb_func_start sub_815B054
-sub_815B054: @ 815B054
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r6, r0, r1
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0x5
- bls _0815B074
- b _0815B22E
-_0815B074:
- lsls r0, 2
- ldr r1, =_0815B088
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815B088:
- .4byte _0815B0A0
- .4byte _0815B160
- .4byte _0815B18E
- .4byte _0815B1A2
- .4byte _0815B1B8
- .4byte _0815B220
-_0815B0A0:
- movs r0, 0xC
- ldrsh r2, [r6, r0]
- ldrh r1, [r6, 0xA]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0815B0B6
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- subs r0, r2, r0
- b _0815B0BC
-_0815B0B6:
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- adds r0, r2, r0
-_0815B0BC:
- lsls r0, 16
- lsrs r1, r0, 16
- ldrh r2, [r6, 0x12]
- ldrh r0, [r6, 0xE]
- adds r2, r0
- ldr r0, =gUnknown_08593114
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- ldrb r4, [r6, 0xA]
- movs r3, 0x6
- subs r3, r4
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x40
- negs r0, r0
- bl sub_80A5178
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xBA
- bl PlaySE12WithPanning
- cmp r4, 0x40
- beq _0815B120
- ldr r5, =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r3, r1, r5
- ldrh r0, [r6, 0xA]
- movs r2, 0x1
- ands r2, r0
- adds r3, 0x3F
- ldrb r4, [r3]
- movs r0, 0x2
- negs r0, r0
- ands r0, r4
- orrs r0, r2
- strb r0, [r3]
- adds r5, 0x1C
- adds r1, r5
- ldr r0, =SpriteCallbackDummy
- str r0, [r1]
-_0815B120:
- ldrh r1, [r6, 0xA]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0815B138
- ldrh r0, [r6, 0x10]
- subs r0, 0x6
- strh r0, [r6, 0x10]
- ldrh r0, [r6, 0x12]
- subs r0, 0x6
- strh r0, [r6, 0x12]
-_0815B138:
- ldrh r1, [r6, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_085CE2A0
- adds r0, r6, 0
- bl sub_80A7CFC
- ldrh r0, [r6, 0xA]
- adds r0, 0x1
- strh r0, [r6, 0xA]
- strh r4, [r6, 0x8]
- b _0815B22E
- .pool
-_0815B160:
- adds r0, r6, 0
- bl sub_80A7D34
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0815B22E
- movs r2, 0xA
- ldrsh r1, [r6, r2]
- cmp r1, 0x6
- bne _0815B180
- movs r0, 0x8
- strh r0, [r6, 0x14]
- movs r0, 0x3
- strh r0, [r6, 0x8]
- b _0815B22E
-_0815B180:
- cmp r1, 0x2
- bgt _0815B186
- movs r0, 0xA
-_0815B186:
- strh r0, [r6, 0x14]
- movs r0, 0x2
- strh r0, [r6, 0x8]
- b _0815B22E
-_0815B18E:
- ldrh r0, [r6, 0x14]
- movs r2, 0x14
- ldrsh r1, [r6, r2]
- cmp r1, 0
- beq _0815B19E
- subs r0, 0x1
- strh r0, [r6, 0x14]
- b _0815B22E
-_0815B19E:
- strh r1, [r6, 0x8]
- b _0815B22E
-_0815B1A2:
- ldrh r1, [r6, 0x14]
- movs r2, 0x14
- ldrsh r0, [r6, r2]
- cmp r0, 0
- beq _0815B1B2
- subs r0, r1, 0x1
- strh r0, [r6, 0x14]
- b _0815B22E
-_0815B1B2:
- movs r0, 0x4
- strh r0, [r6, 0x8]
- b _0815B22E
-_0815B1B8:
- movs r5, 0
- movs r7, 0
- ldr r3, =gSprites
- movs r0, 0x1C
- adds r0, r3
- mov r8, r0
-_0815B1C4:
- lsls r0, r5, 4
- adds r0, r5
- lsls r4, r0, 2
- adds r0, r3, 0
- adds r0, 0x14
- adds r0, r4, r0
- ldr r1, [r0]
- ldr r0, =gUnknown_08593114
- cmp r1, r0
- bne _0815B200
- adds r0, r4, r3
- strh r2, [r0, 0x2E]
- movs r1, 0x6
- strh r1, [r0, 0x30]
- movs r1, 0x2
- str r2, [sp]
- str r3, [sp, 0x4]
- bl StartSpriteAnim
- mov r0, r8
- adds r1, r4, r0
- ldr r0, =sub_815B23C
- str r0, [r1]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r2, [sp]
- ldr r3, [sp, 0x4]
- cmp r7, 0x6
- beq _0815B20A
-_0815B200:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3F
- bls _0815B1C4
-_0815B20A:
- strh r7, [r6, 0x14]
- movs r0, 0x5
- strh r0, [r6, 0x8]
- b _0815B22E
- .pool
-_0815B220:
- movs r1, 0x14
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0815B22E
- adds r0, r2, 0
- bl move_anim_task_del
-_0815B22E:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_815B054
-
- thumb_func_start sub_815B23C
-sub_815B23C: @ 815B23C
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0815B270
- ldr r3, =gTasks
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_0815B270:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815B23C
-
- thumb_func_start sub_815B27C
-sub_815B27C: @ 815B27C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0815B290
- adds r0, r5, 0
- movs r1, 0
- bl sub_80A69CC
-_0815B290:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x27
- bgt _0815B2C2
- ldrh r0, [r5, 0x2E]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0815B2B4
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- b _0815B2C0
-_0815B2B4:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
-_0815B2C0:
- strb r0, [r2]
-_0815B2C2:
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x1E
- ble _0815B2D8
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0815B2D8:
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x3D
- bne _0815B324
- ldr r1, =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldrh r0, [r5, 0x24]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- 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, 0x24]
- strh r1, [r5, 0x26]
- movs r0, 0x14
- strh r0, [r5, 0x2E]
- ldr r4, =gAnimationBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r5, 0x1C]
-_0815B324:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815B27C
-
- thumb_func_start sub_815B338
-sub_815B338: @ 815B338
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =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 _0815B35C
- cmp r0, 0x1
- beq _0815B37C
- b _0815B38E
- .pool
-_0815B35C:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_085CE350
- adds r0, r4, 0
- bl sub_80A7CFC
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815B38E
- .pool
-_0815B37C:
- adds r0, r4, 0
- bl sub_80A7D34
- lsls r0, 24
- cmp r0, 0
- bne _0815B38E
- adds r0, r5, 0
- bl move_anim_task_del
-_0815B38E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815B338
-
- thumb_func_start sub_815B394
-sub_815B394: @ 815B394
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _0815B3F4
- cmp r0, 0x1
- bgt _0815B3B4
- cmp r0, 0
- beq _0815B3BE
- b _0815B496
-_0815B3B4:
- cmp r0, 0x2
- beq _0815B424
- cmp r0, 0x3
- beq _0815B478
- b _0815B496
-_0815B3BE:
- ldr r4, =gAnimationBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- adds r0, r6, 0
- movs r1, 0
- bl sub_80A7270
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r5, 0x30]
- strh r0, [r5, 0x32]
- b _0815B46C
- .pool
-_0815B3F4:
- ldrh r0, [r5, 0x30]
- adds r0, 0x60
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- subs r0, 0x1A
- strh r0, [r5, 0x32]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- movs r0, 0x32
- ldrsh r2, [r5, r0]
- adds r0, r6, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0815B424
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_0815B424:
- ldrh r0, [r5, 0x30]
- adds r0, 0x60
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x30
- strh r0, [r5, 0x32]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- movs r0, 0x32
- ldrsh r2, [r5, r0]
- adds r0, r6, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _0815B496
- movs r0, 0
- strh r0, [r5, 0x34]
- ldr r1, =gSprites
- lsls r0, r6, 4
- adds r0, r6
- 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 sub_80A7344
-_0815B46C:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _0815B496
- .pool
-_0815B478:
- ldrh r0, [r5, 0x26]
- subs r0, 0x6
- strh r0, [r5, 0x26]
- movs r1, 0x22
- ldrsh r0, [r5, r1]
- movs r2, 0x26
- ldrsh r1, [r5, r2]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _0815B496
- adds r0, r5, 0
- bl move_anim_8072740
-_0815B496:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_815B394
-
- thumb_func_start sub_815B49C
-sub_815B49C: @ 815B49C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _0815B4BC
- ldr r0, =0x0000fff0
- b _0815B4C0
- .pool
-_0815B4BC:
- movs r0, 0x80
- lsls r0, 1
-_0815B4C0:
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0x22]
- ldr r0, =sub_815B4D4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815B49C
-
- thumb_func_start sub_815B4D4
-sub_815B4D4: @ 815B4D4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x48
- strh r0, [r4, 0x2E]
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _0815B4F8
- ldrh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 20
- b _0815B500
- .pool
-_0815B4F8:
- ldrh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 20
- negs r0, r0
-_0815B500:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x10
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r5, r0, r1
- strh r5, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _0815B54C
- ldr r0, =gUnknown_085CE3A0
- ldrh r1, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r4, 0x22]
- adds r2, r5
- lsls r2, 16
- asrs r2, 16
- adds r3, r4, 0
- adds r3, 0x43
- ldrb r3, [r3]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl CreateSpriteAndAnimate
-_0815B54C:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- adds r0, 0x20
- movs r1, 0x98
- lsls r1, 1
- cmp r0, r1
- bls _0815B566
- adds r0, r4, 0
- bl move_anim_8072740
-_0815B566:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815B4D4
-
- thumb_func_start sub_815B570
-sub_815B570: @ 815B570
- push {r4,lr}
- adds r4, r0, 0
- bl Random2
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0815B58A
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x4
- b _0815B592
-_0815B58A:
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x5
-_0815B592:
- ldr r3, =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- bl Random2
- movs r1, 0x7
- ands r0, r1
- adds r1, r0, 0
- cmp r1, 0x3
- ble _0815B5B4
- negs r0, r1
- lsls r0, 24
- lsrs r0, 24
-_0815B5B4:
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, =sub_815B5D0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815B570
-
- thumb_func_start sub_815B5D0
-sub_815B5D0: @ 815B5D0
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- bgt _0815B612
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0815B646
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- movs r0, 0
- b _0815B644
-_0815B612:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x2
- bne _0815B628
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0815B628:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x3
- bne _0815B640
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =0x0000ffff
- strh r0, [r3, 0x30]
-_0815B640:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
-_0815B644:
- strh r0, [r3, 0x30]
-_0815B646:
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0x3C
- ble _0815B654
- adds r0, r3, 0
- bl DestroySprite
-_0815B654:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815B5D0
-
- thumb_func_start sub_815B65C
-sub_815B65C: @ 815B65C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815B69C
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_085CE3B8
- adds r0, r4, 0
- bl sub_80A7CFC
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815B6AE
- .pool
-_0815B69C:
- adds r0, r4, 0
- bl sub_80A7D34
- lsls r0, 24
- cmp r0, 0
- bne _0815B6AE
- adds r0, r5, 0
- bl move_anim_task_del
-_0815B6AE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815B65C
-
- thumb_func_start sub_815B6B4
-sub_815B6B4: @ 815B6B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815B6F4
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_085CE3E0
- adds r0, r4, 0
- bl sub_80A7CFC
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815B706
- .pool
-_0815B6F4:
- adds r0, r4, 0
- bl sub_80A7D34
- lsls r0, 24
- cmp r0, 0
- bne _0815B706
- adds r0, r5, 0
- bl move_anim_task_del
-_0815B706:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815B6B4
-
- thumb_func_start sub_815B70C
-sub_815B70C: @ 815B70C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0815B71E
- cmp r0, 0x1
- beq _0815B748
- b _0815B770
-_0815B71E:
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A69CC
- movs r0, 0x90
- lsls r0, 4
- strh r0, [r4, 0x30]
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0815B770
- .pool
-_0815B748:
- ldrh r2, [r4, 0x30]
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x26]
- subs r0, r1
- strh r0, [r4, 0x26]
- subs r2, 0x60
- strh r2, [r4, 0x30]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- cmp r0, r1
- ble _0815B770
- adds r0, r4, 0
- bl move_anim_8072740
-_0815B770:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_815B70C
-
- thumb_func_start sub_815B778
-sub_815B778: @ 815B778
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815B7B8
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_085CE430
- adds r0, r4, 0
- bl sub_80A7CFC
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815B7CA
- .pool
-_0815B7B8:
- adds r0, r4, 0
- bl sub_80A7D34
- lsls r0, 24
- cmp r0, 0
- bne _0815B7CA
- adds r0, r5, 0
- bl move_anim_task_del
-_0815B7CA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815B778
-
- thumb_func_start sub_815B7D0
-sub_815B7D0: @ 815B7D0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r3, r1, 0
- cmp r0, 0x4
- bls _0815B7F6
- b _0815BAFC
-_0815B7F6:
- lsls r0, 2
- ldr r1, =_0815B808
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815B808:
- .4byte _0815B81C
- .4byte _0815B86C
- .4byte _0815B8A8
- .4byte _0815BA44
- .4byte _0815BA82
-_0815B81C:
- movs r0, 0x4C
- movs r1, 0
- bl SetGpuReg
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815B844
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0x1
- bl lcd_bg_operations
- b _0815B84E
- .pool
-_0815B844:
- movs r0, 0x2
- movs r1, 0x2
- movs r2, 0x1
- bl lcd_bg_operations
-_0815B84E:
- ldr r0, =gTasks
- mov r6, r8
- lsls r1, r6, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r1, 0x1C]
- b _0815BA26
- .pool
-_0815B86C:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r3
- ldrh r0, [r4, 0xC]
- adds r1, r0, 0x1
- strh r1, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bgt _0815B886
- b _0815BAFC
-_0815B886:
- movs r0, 0
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- ldrh r5, [r4, 0xA]
- lsls r1, r5, 4
- orrs r1, r5
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x4C
- bl SetGpuReg
- cmp r5, 0xF
- beq _0815B8A6
- b _0815BAFC
-_0815B8A6:
- b _0815BA7A
-_0815B8A8:
- ldr r5, =gAnimationBankAttacker
- ldrb r0, [r5]
- ldr r1, =gAnimationBankTarget
- ldrb r1, [r1]
- mov r2, r8
- lsls r4, r2, 2
- adds r2, r4, r2
- lsls r2, 3
- adds r2, r3
- ldrb r2, [r2, 0x1C]
- bl sub_805E448
- ldrb r1, [r5]
- mov r0, sp
- bl sub_80A6BFC
- bl sub_80A4DF0
- lsls r0, 24
- mov r9, r4
- cmp r0, 0
- beq _0815B8E0
- movs r1, 0
- b _0815B8EA
- .pool
-_0815B8E0:
- ldrb r0, [r5]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r1, r0, 24
-_0815B8EA:
- ldr r0, =gUnknown_020244D4
- ldr r2, [r0]
- lsls r0, r1, 2
- adds r2, 0x4
- adds r2, r0
- ldr r1, =gUnknown_020244E4
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 11
- ldr r0, [r2]
- adds r0, r1
- ldr r1, [sp]
- ldr r2, =0x04000200
- bl CpuSet
- ldr r1, [sp]
- movs r2, 0x80
- lsls r2, 4
- mov r0, sp
- ldrh r3, [r0, 0xA]
- movs r0, 0x1
- bl LoadBgTiles
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- beq _0815BA1C
- ldr r5, =gUnknown_02039F34
- ldr r0, [r5]
- ldr r0, [r0, 0x18]
- ldrh r0, [r0]
- bl sub_80DB2A8
- adds r4, r0, 0
- ldr r0, [r5]
- ldr r0, [r0, 0x18]
- ldrh r0, [r0, 0x2]
- bl sub_80DB2A8
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _0815B99C
- ldr r6, [sp, 0x4]
- movs r5, 0
- movs r0, 0x7
- mov r12, r0
- movs r7, 0
-_0815B950:
- movs r4, 0
- adds r3, r7, r6
- mov r1, r12
- lsls r0, r1, 1
- adds r2, r0, r6
-_0815B95A:
- 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 _0815B95A
- movs r2, 0x20
- add r12, r2
- adds r7, 0x40
- adds r5, 0x1
- cmp r5, 0x7
- ble _0815B950
- movs r5, 0
- movs r0, 0x80
- lsls r0, 3
- adds r3, r0, 0
-_0815B980:
- adds r2, r5, 0x1
- lsls r0, r5, 6
- adds r1, r0, r6
- movs r4, 0x7
-_0815B988:
- ldrh r0, [r1]
- eors r0, r3
- strh r0, [r1]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _0815B988
- adds r5, r2, 0
- cmp r5, 0x7
- ble _0815B980
-_0815B99C:
- ldr r0, =gUnknown_02039F34
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- ldrh r0, [r0, 0x2]
- bl sub_80DB2A8
- lsls r0, 24
- cmp r0, 0
- beq _0815B9EC
- ldr r3, =gSprites
- ldr r4, =gBankSpriteIds
- ldr r2, =gAnimationBankAttacker
- ldrb r0, [r2]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x10
- adds r0, r1
- ldr r1, =gUnknown_082FF6C0
- b _0815BA06
- .pool
-_0815B9EC:
- ldr r3, =gSprites
- ldr r4, =gBankSpriteIds
- ldr r2, =gAnimationBankAttacker
- ldrb r0, [r2]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x10
- adds r0, r1
- ldr r1, =gUnknown_082FF694
-_0815BA06:
- str r1, [r0]
- ldrb r0, [r2]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- bl StartSpriteAffineAnim
-_0815BA1C:
- ldr r0, =gTasks
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
-_0815BA26:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0815BAFC
- .pool
-_0815BA44:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r3
- ldrh r0, [r4, 0xC]
- adds r1, r0, 0x1
- strh r1, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815BAFC
- movs r0, 0
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- ldrh r5, [r4, 0xA]
- lsls r1, r5, 4
- orrs r1, r5
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x4C
- bl SetGpuReg
- cmp r5, 0
- bne _0815BAFC
-_0815BA7A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815BAFC
-_0815BA82:
- movs r0, 0x4C
- movs r1, 0
- bl SetGpuReg
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815BAAC
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- bl lcd_bg_operations
- b _0815BAB6
- .pool
-_0815BAAC:
- movs r0, 0x2
- movs r1, 0x2
- movs r2, 0
- bl lcd_bg_operations
-_0815BAB6:
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- bne _0815BAF6
- ldr r4, =gAnimationBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815BAF6
- ldr r0, =gTasks
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r6, 0x1C
- ldrsh r0, [r1, r6]
- cmp r0, 0
- bne _0815BAF6
- ldrb r0, [r4]
- ldr r1, =gUnknown_020244D0
- ldr r1, [r1]
- ldr r2, [r1]
- lsls r1, r0, 2
- adds r1, r2
- ldrh r1, [r1, 0x2]
- bl sub_805EE54
-_0815BAF6:
- mov r0, r8
- bl move_anim_task_del
-_0815BAFC:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815B7D0
-
- thumb_func_start c3_80DFBE4
-c3_80DFBE4: @ 815BB18
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, =gBattleAnimArgs
- ldr r3, =gSprites
- ldr r2, =gBankSpriteIds
- ldr r1, =gAnimationBankAttacker
- ldrb r1, [r1]
- adds r1, r2
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- adds r1, 0x3E
- ldrb r1, [r1]
- lsls r1, 29
- lsrs r1, 31
- strh r1, [r4, 0xE]
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end c3_80DFBE4
-
- thumb_func_start sub_815BB58
-sub_815BB58: @ 815BB58
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- ldr r1, =gAnimationBankTarget
- ldrb r1, [r1]
- movs r2, 0x1
- bl sub_805E448
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815BB58
-
- thumb_func_start sub_815BB84
-sub_815BB84: @ 815BB84
- push {r4,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _0815BBA2
- b _0815BDF2
-_0815BBA2:
- lsls r0, 2
- ldr r1, =_0815BBB4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815BBB4:
- .4byte _0815BBC8
- .4byte _0815BCB8
- .4byte _0815BD08
- .4byte _0815BD72
- .4byte _0815BDA6
-_0815BBC8:
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl lcd_bg_operations
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl lcd_bg_operations
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- bne _0815BC02
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl lcd_bg_operations
-_0815BC02:
- mov r0, sp
- bl sub_80A6B30
- ldr r1, =gUnknown_08C2A6EC
- mov r0, sp
- movs r2, 0
- bl sub_80A6D60
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- beq _0815BC34
- ldr r1, =gUnknown_02022E18
- ldr r3, =0x0000ffc8
- b _0815BC5C
- .pool
-_0815BC34:
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _0815BC58
- ldr r1, =gUnknown_02022E18
- ldr r2, =0x0000ff79
- adds r0, r2, 0
- b _0815BC5E
- .pool
-_0815BC58:
- ldr r1, =gUnknown_02022E18
- ldr r3, =0x0000fff6
-_0815BC5C:
- adds r0, r3, 0
-_0815BC5E:
- strh r0, [r1]
- ldr r1, =gUnknown_02022E1A
- movs r0, 0
- strh r0, [r1]
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, =gUnknown_08C2A634
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80A6CC0
- ldr r0, =gUnknown_08C2A6D4
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =gUnknown_02022E18
- ldrh r0, [r0]
- strh r0, [r1, 0x1C]
- ldr r0, =gUnknown_02022E1A
- ldrh r0, [r0]
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- b _0815BD8E
- .pool
-_0815BCB8:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x10]
- adds r1, r0, 0x1
- strh r1, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bgt _0815BCCE
- b _0815BDF2
-_0815BCCE:
- movs r0, 0
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _0815BCE4
- movs r0, 0xC
- strh r0, [r4, 0xA]
-_0815BCE4:
- ldrh r0, [r4, 0xA]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0xC
- bne _0815BDF2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815BDF2
-_0815BD08:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bge _0815BD20
- movs r0, 0
- strh r0, [r4, 0xA]
-_0815BD20:
- ldrh r0, [r4, 0xA]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0815BDF2
- ldr r2, =gUnknown_02022E18
- ldr r1, =gUnknown_085CE460
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r4, 0x1C]
- adds r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0815BD6C
- strh r0, [r4, 0x8]
- b _0815BDF2
- .pool
-_0815BD6C:
- movs r0, 0x3
- strh r0, [r4, 0x8]
- b _0815BDF2
-_0815BD72:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0xE]
- adds r0, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0815BDF2
- movs r0, 0
- strh r0, [r1, 0xE]
- movs r0, 0x1
-_0815BD8E:
- strh r0, [r1, 0x8]
- movs r0, 0x40
- negs r0, r0
- bl sub_80A5178
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xE4
- bl PlaySE12WithPanning
- b _0815BDF2
-_0815BDA6:
- mov r0, sp
- bl sub_80A6B30
- mov r0, sp
- ldrb r0, [r0, 0x9]
- bl sub_80A6C68
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- bne _0815BDC8
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl lcd_bg_operations
-_0815BDC8:
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl lcd_bg_operations
- ldr r0, =gUnknown_02022E18
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gUnknown_02022E1A
- strh r1, [r0]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl move_anim_task_del
-_0815BDF2:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815BB84
-
- thumb_func_start sub_815BE04
-sub_815BE04: @ 815BE04
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r0, 0
- bl Random2
- lsls r0, 16
- movs r1, 0xFC
- lsls r1, 14
- ands r1, r0
- lsrs r5, r1, 16
- adds r1, r5, 0
- cmp r1, 0x1F
- ble _0815BE2E
- movs r0, 0x20
- subs r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
-_0815BE2E:
- ldr r4, =gAnimationBankAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- adds r0, r5
- strh r0, [r7, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r7, 0x22]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r7, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r7, 0x32]
- ldr r4, =gUnknown_085CE48C
- movs r0, 0x20
- ldrsh r1, [r7, r0]
- movs r0, 0x22
- ldrsh r2, [r7, r0]
- adds r5, r7, 0
- adds r5, 0x43
- ldrb r3, [r5]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- bl CreateSprite
- mov r9, r0
- mov r1, r9
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r0, 0x20
- ldrsh r1, [r7, r0]
- movs r0, 0x22
- ldrsh r2, [r7, r0]
- ldrb r3, [r5]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- bl CreateSprite
- mov r8, r0
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r0, r9
- lsls r2, r0, 4
- add r2, r9
- lsls r2, 2
- ldr r1, =gSprites
- mov r10, r1
- adds r5, r2, r1
- adds r0, r5, 0
- movs r1, 0x1
- str r2, [sp]
- bl StartSpriteAnim
- mov r0, r8
- lsls r6, r0, 4
- add r6, r8
- lsls r6, 2
- mov r1, r10
- adds r4, r6, r1
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x32]
- ldrh r0, [r1]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x32]
- ldr r0, =0x0000ffff
- strh r0, [r5, 0x3C]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r4, 0x3C]
- adds r5, 0x3E
- ldrb r0, [r5]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5]
- adds r4, 0x3E
- ldrb r0, [r4]
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x1C
- add r10, r0
- ldr r2, [sp]
- add r2, r10
- ldr r0, =sub_815C050
- str r0, [r2]
- add r6, r10
- str r0, [r6]
- mov r1, r9
- strh r1, [r7, 0x3A]
- mov r0, r8
- strh r0, [r7, 0x3C]
- ldr r0, =sub_815BF44
- str r0, [r7, 0x1C]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815BE04
-
- thumb_func_start sub_815BF44
-sub_815BF44: @ 815BF44
- push {lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x32]
- ldrh r0, [r3, 0x34]
- adds r2, r0
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r3, 0x26]
- subs r1, r0
- strh r1, [r3, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r3, 0x34]
- movs r2, 0x36
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _0815BF92
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x8
- negs r1, r1
- cmp r0, r1
- bge _0815BF92
- ldr r2, =gSprites
- movs r0, 0x3A
- ldrsh r1, [r3, 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]
- ldrh r0, [r3, 0x36]
- adds r0, 0x1
- strh r0, [r3, 0x36]
-_0815BF92:
- movs r1, 0x36
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- bne _0815BFC6
- movs r2, 0x26
- ldrsh r1, [r3, r2]
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _0815BFC6
- ldr r2, =gSprites
- movs r0, 0x3C
- ldrsh r1, [r3, 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]
- ldrh r0, [r3, 0x36]
- adds r0, 0x1
- strh r0, [r3, 0x36]
-_0815BFC6:
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0815BFE8
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_815BFF4
- str r0, [r3, 0x1C]
-_0815BFE8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815BF44
-
- thumb_func_start sub_815BFF4
-sub_815BFF4: @ 815BFF4
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, =gSprites
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r3, r0, 2
- adds r6, r5, 0
- adds r6, 0x1C
- adds r0, r3, r6
- ldr r2, [r0]
- ldr r0, =SpriteCallbackDummy
- cmp r2, r0
- bne _0815C040
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldr r0, [r1]
- cmp r0, r2
- bne _0815C040
- adds r0, r3, r5
- bl DestroySprite
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- adds r0, r4, 0
- bl move_anim_8072740
-_0815C040:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815BFF4
-
- thumb_func_start sub_815C050
-sub_815C050: @ 815C050
- push {lr}
- adds r3, r0, 0
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0815C09C
- ldrh r2, [r3, 0x32]
- ldrh r1, [r3, 0x34]
- adds r2, r1
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r3, 0x26]
- subs r0, r1
- strh r0, [r3, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r3, 0x34]
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0815C09C
- mov r1, r12
- ldrb r0, [r1]
- movs r1, 0x4
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldr r0, =SpriteCallbackDummy
- str r0, [r3, 0x1C]
-_0815C09C:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815C050
-
- thumb_func_start sub_815C0A4
-sub_815C0A4: @ 815C0A4
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x5
- bls _0815C0C2
- b _0815C396
-_0815C0C2:
- lsls r0, 2
- ldr r1, =_0815C0D4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815C0D4:
- .4byte _0815C0EC
- .4byte _0815C224
- .4byte _0815C2AC
- .4byte _0815C2E2
- .4byte _0815C310
- .4byte _0815C34A
-_0815C0EC:
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, =0x00000d03
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl lcd_bg_operations
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl lcd_bg_operations
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- bne _0815C124
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl lcd_bg_operations
-_0815C124:
- mov r0, sp
- bl sub_80A6B30
- ldr r1, =gUnknown_08C2A6EC
- mov r0, sp
- movs r2, 0
- bl sub_80A6D60
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- beq _0815C15C
- ldr r1, =gUnknown_02022E18
- ldr r3, =0x0000ffc8
- adds r0, r3, 0
- b _0815C1CA
- .pool
-_0815C15C:
- ldr r0, =gAnimationBankTarget
- ldrb r0, [r0]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r4, r0, 24
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815C1B4
- cmp r4, 0x1
- bne _0815C180
- ldr r1, =gUnknown_02022E18
- ldr r2, =0x0000ff65
- adds r0, r2, 0
- strh r0, [r1]
-_0815C180:
- cmp r4, 0x3
- bne _0815C18C
- ldr r1, =gUnknown_02022E18
- ldr r3, =0x0000ff8d
- adds r0, r3, 0
- strh r0, [r1]
-_0815C18C:
- cmp r4, 0
- bne _0815C196
- ldr r1, =gUnknown_02022E18
- movs r0, 0xE
- strh r0, [r1]
-_0815C196:
- cmp r4, 0x2
- bne _0815C1CC
- ldr r1, =gUnknown_02022E18
- ldr r2, =0x0000ffec
- b _0815C1C8
- .pool
-_0815C1B4:
- cmp r4, 0x1
- bne _0815C1C0
- ldr r1, =gUnknown_02022E18
- ldr r3, =0x0000ff79
- adds r0, r3, 0
- strh r0, [r1]
-_0815C1C0:
- cmp r4, 0
- bne _0815C1CC
- ldr r1, =gUnknown_02022E18
- ldr r2, =0x0000fff6
-_0815C1C8:
- adds r0, r2, 0
-_0815C1CA:
- strh r0, [r1]
-_0815C1CC:
- ldr r1, =gUnknown_02022E1A
- movs r0, 0
- strh r0, [r1]
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, =gUnknown_08C2A634
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80A6CC0
- ldr r0, =gUnknown_08C2A6D4
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, =gUnknown_02022E18
- ldrh r0, [r0]
- strh r0, [r1, 0x1C]
- ldr r0, =gUnknown_02022E1A
- ldrh r0, [r0]
- strh r0, [r1, 0x1E]
- b _0815C2A4
- .pool
-_0815C224:
- ldr r1, =gTasks
- lsls r4, r6, 2
- adds r0, r4, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r0, 0
- strh r0, [r5, 0xE]
- ldr r0, =gAnimationBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815C268
- ldr r2, =gUnknown_02022E18
- ldr r1, =gUnknown_085CE4A4
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r5, [r5, 0x1C]
- adds r0, r5
- b _0815C27A
- .pool
-_0815C268:
- ldr r2, =gUnknown_02022E18
- ldr r1, =gUnknown_085CE4A4
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldrh r0, [r5, 0x1C]
- subs r0, r1
-_0815C27A:
- strh r0, [r2]
- ldr r0, =gTasks
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- adds r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0815C2A4
- strh r0, [r1, 0x8]
- b _0815C396
- .pool
-_0815C2A4:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0815C396
-_0815C2AC:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _0815C2C6
- movs r0, 0x5
- strh r0, [r4, 0xA]
-_0815C2C6:
- ldrh r1, [r4, 0xA]
- lsls r1, 8
- movs r0, 0x3
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bne _0815C396
- b _0815C302
-_0815C2E2:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r1, [r4, 0xE]
- adds r1, 0x1
- strh r1, [r4, 0xE]
- lsls r1, 16
- asrs r1, 16
- ldr r2, =gUnknown_085CE4A8
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- adds r0, r2
- ldrb r0, [r0]
- cmp r1, r0
- ble _0815C396
-_0815C302:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815C396
- .pool
-_0815C310:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- ble _0815C32A
- movs r0, 0xD
- strh r0, [r4, 0xA]
-_0815C32A:
- ldrh r1, [r4, 0xA]
- lsls r1, 8
- movs r0, 0x3
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0xD
- bne _0815C396
- movs r0, 0x1
- strh r0, [r4, 0x8]
- b _0815C396
-_0815C34A:
- mov r0, sp
- bl sub_80A6B30
- mov r0, sp
- ldrb r0, [r0, 0x9]
- bl sub_80A6C68
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- bne _0815C36C
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl lcd_bg_operations
-_0815C36C:
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl lcd_bg_operations
- ldr r0, =gUnknown_02022E18
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gUnknown_02022E1A
- strh r1, [r0]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r6, 0
- bl move_anim_task_del
-_0815C396:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815C0A4
-
- thumb_func_start sub_815C3A8
-sub_815C3A8: @ 815C3A8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815C3E8
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_085CE4B0
- adds r0, r4, 0
- bl sub_80A7CFC
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815C3FA
- .pool
-_0815C3E8:
- adds r0, r4, 0
- bl sub_80A7D34
- lsls r0, 24
- cmp r0, 0
- bne _0815C3FA
- adds r0, r5, 0
- bl move_anim_task_del
-_0815C3FA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815C3A8
-
- thumb_func_start sub_815C400
-sub_815C400: @ 815C400
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _0815C41E
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A69CC
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0815C472
-_0815C41E:
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- cmp r1, 0x14
- ble _0815C472
- ldrh r0, [r4, 0x30]
- adds r0, 0xA0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- adds r0, 0x80
- strh r0, [r4, 0x32]
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _0815C450
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- b _0815C456
- .pool
-_0815C450:
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
-_0815C456:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- ble _0815C472
- adds r0, r4, 0
- bl move_anim_8072740
-_0815C472:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_815C400
-
- thumb_func_start sub_815C478
-sub_815C478: @ 815C478
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- ldr r5, =gBattleAnimArgs
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0815C4A4
- adds r0, r2, 0
- bl move_anim_task_del
- b _0815C538
- .pool
-_0815C4A4:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bge _0815C4B0
- movs r0, 0
- strh r0, [r5, 0x4]
-_0815C4B0:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0x2
- ble _0815C4BC
- movs r0, 0x2
- strh r0, [r5, 0x4]
-_0815C4BC:
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- movs r0, 0x4
- ldrsh r1, [r5, r0]
- lsls r1, 1
- movs r0, 0x8
- subs r0, r1
- strh r0, [r4, 0xE]
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- lsls r0, 7
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r4, 0x10]
- ldrh r0, [r5, 0x4]
- adds r0, 0x2
- strh r0, [r4, 0x12]
- ldrh r0, [r5, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x14]
- ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0815C508
- ldr r0, =gAnimationBankAttacker
- b _0815C50A
- .pool
-_0815C508:
- ldr r0, =gAnimationBankTarget
-_0815C50A:
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815C528
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x12]
-_0815C528:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_80A7270
- ldr r0, =sub_815C548
- str r0, [r4]
-_0815C538:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815C478
-
- thumb_func_start sub_815C548
-sub_815C548: @ 815C548
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r6, [r4, r0]
- cmp r6, 0x1
- beq _0815C5D0
- cmp r6, 0x1
- bgt _0815C570
- cmp r6, 0
- beq _0815C57C
- b _0815C6A8
- .pool
-_0815C570:
- cmp r6, 0x2
- beq _0815C628
- cmp r6, 0x3
- bne _0815C57A
- b _0815C698
-_0815C57A:
- b _0815C6A8
-_0815C57C:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- ldrh r0, [r4, 0xC]
- ldrh r1, [r4, 0x10]
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xC]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A73A0
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _0815C6A8
- strh r6, [r4, 0xA]
- b _0815C690
- .pool
-_0815C5D0:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- ldrh r2, [r4, 0x12]
- subs r1, r2
- strh r1, [r0, 0x24]
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0xC]
- adds r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xC]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A73A0
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- lsls r1, 16
- asrs r1, 16
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- lsls r0, 1
- cmp r1, r0
- blt _0815C6A8
- movs r0, 0
- strh r0, [r4, 0xA]
- b _0815C690
- .pool
-_0815C628:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- movs r5, 0
- strh r1, [r0, 0x24]
- ldrh r0, [r4, 0xC]
- ldrh r1, [r4, 0x10]
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xC]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A73A0
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _0815C6A8
- ldrh r1, [r4, 0x14]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0815C690
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- strh r5, [r4, 0xA]
- strh r5, [r4, 0x8]
- b _0815C6A8
- .pool
-_0815C690:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815C6A8
-_0815C698:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A7344
- adds r0, r5, 0
- bl move_anim_task_del
-_0815C6A8:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_815C548
-
- thumb_func_start sub_815C6B0
-sub_815C6B0: @ 815C6B0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0815C6D4
- strh r0, [r4, 0x20]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- b _0815C6DE
- .pool
-_0815C6D4:
- movs r0, 0xF0
- strh r0, [r4, 0x20]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- subs r0, 0x1E
-_0815C6DE:
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldrb r1, [r1, 0x2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, =sub_815C700
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815C6B0
-
- thumb_func_start sub_815C700
-sub_815C700: @ 815C700
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x3
- strh r0, [r4, 0x2E]
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0815C744
- ldrh r1, [r4, 0x20]
- adds r1, 0x5
- strh r1, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0xF0
- ble _0815C732
- adds r0, r4, 0
- bl move_anim_8072740
-_0815C732:
- ldrh r1, [r4, 0x2E]
- movs r0, 0xFF
- ands r0, r1
- movs r1, 0x10
- bl Sin
- b _0815C768
- .pool
-_0815C744:
- ldrh r1, [r4, 0x20]
- subs r1, 0x5
- strh r1, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
- lsls r1, 16
- cmp r1, 0
- bge _0815C75C
- adds r0, r4, 0
- bl move_anim_8072740
-_0815C75C:
- ldrh r1, [r4, 0x2E]
- movs r0, 0xFF
- ands r0, r1
- movs r1, 0x10
- bl Cos
-_0815C768:
- strh r0, [r4, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_815C700
-
- thumb_func_start sub_815C770
-sub_815C770: @ 815C770
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r0, 0x20
- strh r0, [r4, 0x20]
- movs r0, 0x40
- strh r0, [r4, 0x22]
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r4, 0x24]
- ldr r0, =gBattleAnimArgs
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- movs r1, 0
- bl sub_80A7270
- ldr r0, =sub_815C7C4
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815C770
-
- thumb_func_start sub_815C7C4
-sub_815C7C4: @ 815C7C4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r7, r0, r1
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- mov r8, r0
- cmp r0, 0x1
- beq _0815C860
- cmp r0, 0x1
- bgt _0815C7F4
- cmp r0, 0
- beq _0815C7FC
- b _0815C8DA
- .pool
-_0815C7F4:
- mov r2, r8
- cmp r2, 0x2
- beq _0815C8C8
- b _0815C8DA
-_0815C7FC:
- movs r3, 0x80
- lsls r3, 2
- adds r0, r3, 0
- ldrh r1, [r7, 0xC]
- adds r2, r0, r1
- strh r2, [r7, 0xC]
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r3, [r7, 0x24]
- mov r8, r3
- movs r3, 0x24
- ldrsh r1, [r7, r3]
- cmp r0, r1
- blt _0815C8DA
- mov r0, r8
- subs r5, r0, r2
- lsls r5, 16
- asrs r5, 16
- adds r6, r1, 0
- lsls r6, 1
- adds r0, r5, 0
- adds r1, r6, 0
- bl __divsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r6, 0
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- asrs r4, 16
- movs r1, 0x1
- ands r4, r1
- cmp r4, 0
- bne _0815C854
- lsls r0, 16
- asrs r0, 16
- mov r2, r8
- subs r0, r2, r0
- b _0815C8B2
-_0815C854:
- lsls r0, 16
- asrs r0, 16
- mov r3, r8
- subs r0, r3
- strh r0, [r7, 0xC]
- b _0815C8DA
-_0815C860:
- ldr r1, =0xfffffe00
- adds r0, r1, 0
- ldrh r2, [r7, 0xC]
- adds r1, r0, r2
- strh r1, [r7, 0xC]
- movs r3, 0xC
- ldrsh r0, [r7, r3]
- movs r2, 0x24
- ldrsh r6, [r7, r2]
- cmn r0, r6
- bgt _0815C8DA
- ldrh r3, [r7, 0x24]
- mov r9, r3
- mov r0, r9
- subs r4, r0, r1
- lsls r4, 16
- asrs r4, 16
- lsls r6, 1
- adds r0, r4, 0
- adds r1, r6, 0
- bl __divsi3
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- adds r1, r6, 0
- bl __modsi3
- lsls r0, 16
- lsrs r2, r0, 16
- mov r1, r8
- ands r1, r5
- lsls r0, r1, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _0815C8BC
- lsls r0, r2, 16
- asrs r0, 16
- mov r2, r9
- subs r0, r2
-_0815C8B2:
- strh r0, [r7, 0xC]
- strh r1, [r7, 0x8]
- b _0815C8DA
- .pool
-_0815C8BC:
- lsls r0, r2, 16
- asrs r0, 16
- mov r3, r9
- subs r0, r3, r0
- strh r0, [r7, 0xC]
- b _0815C8DA
-_0815C8C8:
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A7344
- adds r0, r4, 0
- bl move_anim_task_del
- b _0815C950
-_0815C8DA:
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r7, 0xC]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A73A0
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- movs r2, 0xC
- ldrsh r0, [r7, r2]
- cmp r0, 0
- bge _0815C90E
- adds r0, 0x3F
-_0815C90E:
- asrs r0, 6
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrh r0, [r7, 0xA]
- adds r0, 0x1
- strh r0, [r7, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _0815C950
- ldrh r1, [r7, 0x20]
- movs r3, 0x20
- ldrsh r0, [r7, r3]
- cmp r0, 0
- beq _0815C94C
- subs r0, r1, 0x1
- strh r0, [r7, 0x20]
- ldrh r0, [r7, 0x24]
- ldrh r1, [r7, 0x22]
- subs r0, r1
- strh r0, [r7, 0x24]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _0815C950
- movs r0, 0x10
- strh r0, [r7, 0x24]
- b _0815C950
- .pool
-_0815C94C:
- movs r0, 0x2
- strh r0, [r7, 0x8]
-_0815C950:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_815C7C4
-
- thumb_func_start sub_815C95C
-sub_815C95C: @ 815C95C
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0815C9BC
- ldr r6, =gBattleAnimArgs
- movs r2, 0x4
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _0815C990
- ldr r4, =gAnimationBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
-_0815C990:
- ldrh r0, [r6]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrh r1, [r6, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r1, r2
- strh r0, [r5, 0x22]
- movs r0, 0x80
- strh r0, [r5, 0x30]
- movs r0, 0xC0
- lsls r0, 2
- strh r0, [r5, 0x32]
- strh r1, [r5, 0x34]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _0815CA1A
- .pool
-_0815C9BC:
- ldrh r1, [r5, 0x30]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r2, [r5, 0x26]
- adds r0, r2
- strh r0, [r5, 0x26]
- movs r2, 0x36
- ldrsh r0, [r5, r2]
- adds r4, r1, 0
- cmp r0, 0
- bne _0815C9FA
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- movs r2, 0x34
- ldrsh r0, [r5, r2]
- cmn r1, r0
- ble _0815C9FA
- movs r0, 0x1
- strh r0, [r5, 0x36]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- negs r0, r0
- movs r1, 0x3
- bl __divsi3
- lsls r0, 1
- strh r0, [r5, 0x32]
-_0815C9FA:
- adds r0, r4, 0
- adds r0, 0xC0
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x80
- strh r0, [r5, 0x32]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0815CA1A
- adds r0, r5, 0
- bl move_anim_8072740
-_0815CA1A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_815C95C
-
- thumb_func_start sub_815CA20
-sub_815CA20: @ 815CA20
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _0815CB2C
- ldr r0, =gBattleAnimArgs
- movs r3, 0
- ldrsh r1, [r0, r3]
- mov r8, r0
- cmp r1, 0
- bne _0815CA5C
- ldr r0, =gAnimationBankAttacker
- b _0815CA5E
- .pool
-_0815CA5C:
- ldr r0, =gAnimationBankTarget
-_0815CA5E:
- ldrb r0, [r0]
- strh r0, [r2, 0x1E]
- mov r1, r8
- ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r4, r7, 2
- adds r0, r4, r7
- lsls r0, 3
- adds r6, r0, r1
- strh r5, [r6, 0x1C]
- adds r0, r5, 0
- movs r1, 0
- bl sub_80A7270
- mov r2, r8
- movs r3, 0x2
- ldrsh r0, [r2, r3]
- cmp r0, 0x1
- beq _0815CAC0
- cmp r0, 0x1
- bgt _0815CAA0
- cmp r0, 0
- beq _0815CAA8
- lsls r2, r5, 4
- b _0815CB08
- .pool
-_0815CAA0:
- cmp r0, 0x2
- beq _0815CACA
- lsls r2, r5, 4
- b _0815CB08
-_0815CAA8:
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r5, 0
- movs r1, 0xE0
- movs r3, 0
- bl obj_id_set_rotscale
- adds r0, r5, 0
- bl sub_80A7E6C
- lsls r2, r5, 4
- b _0815CB08
-_0815CAC0:
- movs r2, 0x98
- lsls r2, 1
- movs r3, 0xF0
- lsls r3, 4
- b _0815CAD2
-_0815CACA:
- movs r2, 0x98
- lsls r2, 1
- movs r3, 0xF1
- lsls r3, 8
-_0815CAD2:
- adds r0, r5, 0
- movs r1, 0xD0
- bl obj_id_set_rotscale
- adds r0, r5, 0
- bl sub_80A7E6C
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- bne _0815CAF8
- ldrb r0, [r6, 0x1E]
- bl GetBankSide
- lsls r0, 24
- lsls r2, r5, 4
- cmp r0, 0
- bne _0815CB08
-_0815CAF8:
- ldr r0, =gSprites
- lsls r2, r5, 4
- adds r1, r2, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x10
- strh r0, [r1, 0x26]
-_0815CB08:
- ldr r1, =gSprites
- adds r0, r2, r5
- lsls r0, 2
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x24]
- ldr r0, =gTasks
- adds r1, r4, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0815CB78
- .pool
-_0815CB2C:
- ldrb r5, [r2, 0x1C]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r2, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0815CB50
- strh r4, [r2, 0xC]
- ldr r0, =gSprites
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x24]
- negs r0, r0
- strh r0, [r1, 0x24]
-_0815CB50:
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- bne _0815CB78
- adds r0, r5, 0
- bl sub_80A7344
- ldr r1, =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- strh r4, [r0, 0x24]
- strh r4, [r0, 0x26]
- adds r0, r7, 0
- bl move_anim_task_del
-_0815CB78:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815CA20
-
- thumb_func_start sub_815CB88
-sub_815CB88: @ 815CB88
- push {r4,r5,lr}
- adds r4, r0, 0
- bl Random2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xC
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, r0
- ldr r3, =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- bl Random2
- ldr r5, =0x000001ff
- ands r5, r0
- bl Random2
- movs r1, 0xFF
- ands r1, r0
- movs r0, 0x1
- ands r0, r5
- cmp r0, 0
- beq _0815CBE0
- movs r2, 0xBC
- lsls r2, 3
- adds r0, r5, r2
- b _0815CBE8
- .pool
-_0815CBE0:
- movs r3, 0xBC
- lsls r3, 3
- adds r0, r3, 0
- subs r0, r5
-_0815CBE8:
- strh r0, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0815CBFA
- movs r2, 0x90
- lsls r2, 3
- adds r0, r1, r2
- b _0815CC02
-_0815CBFA:
- movs r3, 0x90
- lsls r3, 3
- adds r0, r3, 0
- subs r0, r1
-_0815CC02:
- strh r0, [r4, 0x30]
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r4, 0x32]
- lsls r0, 16
- cmp r0, 0
- bne _0815CC1C
- ldr r0, =0x0000fff8
- b _0815CC1E
- .pool
-_0815CC1C:
- movs r0, 0xF8
-_0815CC1E:
- strh r0, [r4, 0x20]
- movs r0, 0x68
- strh r0, [r4, 0x22]
- ldr r0, =sub_815CC34
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815CB88
-
- thumb_func_start sub_815CC34
-sub_815CC34: @ 815CC34
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815CC4C
- ldrh r3, [r4, 0x2E]
- lsls r0, r3, 16
- asrs r0, 24
- ldrh r1, [r4, 0x24]
- adds r0, r1
- b _0815CC56
-_0815CC4C:
- ldrh r3, [r4, 0x2E]
- lsls r1, r3, 16
- asrs r1, 24
- ldrh r0, [r4, 0x24]
- subs r0, r1
-_0815CC56:
- strh r0, [r4, 0x24]
- ldrh r2, [r4, 0x30]
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x26]
- subs r0, r1
- strh r0, [r4, 0x26]
- adds r0, r3, 0
- subs r0, 0x16
- strh r0, [r4, 0x2E]
- adds r1, r2, 0
- subs r1, 0x30
- strh r1, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _0815CC7A
- movs r0, 0
- strh r0, [r4, 0x2E]
-_0815CC7A:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _0815CC8E
- adds r0, r4, 0
- bl move_anim_8072740
-_0815CC8E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_815CC34
-
- thumb_func_start sub_815CC94
-sub_815CC94: @ 815CC94
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r1, =0x00001f3f
- movs r0, 0x4A
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 8
- movs r0, 0
- bl SetGpuRegBits
- ldr r0, =gUnknown_02022E24
- movs r1, 0
- strh r1, [r0]
- ldr r4, =gUnknown_02022E26
- strh r1, [r4]
- movs r0, 0x40
- movs r1, 0
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x44
- bl SetGpuReg
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- movs r1, 0
- bl sub_80A6980
- ldrb r1, [r5, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r5, 0x1]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_815CD0C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815CC94
-
- thumb_func_start sub_815CD0C
-sub_815CD0C: @ 815CD0C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0815CD4A
- cmp r0, 0x1
- bgt _0815CD22
- cmp r0, 0
- beq _0815CD2C
- b _0815CDAA
-_0815CD22:
- cmp r0, 0x2
- beq _0815CD60
- cmp r0, 0x3
- beq _0815CD82
- b _0815CDAA
-_0815CD2C:
- 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
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0815CDAA
- b _0815CD7A
-_0815CD4A:
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _0815CDAA
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- b _0815CD7A
-_0815CD60:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0815CDAA
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0815CD7A:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- b _0815CDAA
-_0815CD82:
- ldr r1, =0x00003f3f
- movs r0, 0x4A
- bl SetGpuReg
- movs r0, 0
- bl GetGpuReg
- adds r1, r0, 0
- movs r2, 0x80
- lsls r2, 8
- adds r0, r2, 0
- eors r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl move_anim_8072740
-_0815CDAA:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815CD0C
-
- thumb_func_start sub_815CDB4
-sub_815CDB4: @ 815CDB4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gAnimationBankAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldr r1, =sub_815CDFC
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815CDB4
-
- thumb_func_start sub_815CDFC
-sub_815CDFC: @ 815CDFC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- bl Sin
- strh r0, [r4, 0x24]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- ldrh r1, [r4, 0x34]
- lsls r1, 16
- asrs r1, 24
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x9
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- lsls r1, r0, 16
- cmp r0, 0x3F
- bls _0815CE36
- asrs r0, r1, 16
- cmp r0, 0xC3
- ble _0815CE48
-_0815CE36:
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl sub_80A82E4
- subs r0, 0x1
- b _0815CE52
- .pool
-_0815CE48:
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl sub_80A82E4
- adds r0, 0x1
-_0815CE52:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r3, 0x38
- ldrsh r2, [r4, r3]
- cmp r2, 0
- bne _0815CE98
- movs r1, 0x80
- lsls r1, 3
- adds r0, r1, 0
- ldrh r3, [r4, 0x32]
- adds r0, r3
- strh r0, [r4, 0x32]
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ldrh r3, [r4, 0x34]
- adds r0, r3
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _0815CEC8
- strh r2, [r4, 0x36]
- movs r0, 0x1
- strh r0, [r4, 0x38]
- b _0815CEC8
- .pool
-_0815CE98:
- cmp r2, 0x1
- bne _0815CEC8
- ldr r1, =0xfffffc00
- adds r0, r1, 0
- ldrh r2, [r4, 0x32]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldr r3, =0xffffff00
- adds r0, r3, 0
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _0815CEC8
- adds r0, r4, 0
- bl move_anim_8072740
-_0815CEC8:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815CDFC
-
- thumb_func_start sub_815CED8
-sub_815CED8: @ 815CED8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- beq _0815CF18
- movs r0, 0x1
- str r0, [sp, 0x1C]
- ldr r0, =gUnknown_02039F34
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- ldr r1, [r0, 0x10]
- mov r9, r1
- ldr r2, [r0, 0xC]
- mov r8, r2
- ldrh r6, [r0, 0x2]
- movs r3, 0x14
- b _0815D058
- .pool
-_0815CF18:
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _0815CFC4
- movs r0, 0
- str r0, [sp, 0x1C]
- ldr r6, =gBattlePartyID
- ldr r4, =gAnimationBankTarget
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r7, =gPlayerParty
- adds r0, r7
- movs r1, 0
- bl GetMonData
- mov r9, r0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r7
- movs r1, 0x1
- bl GetMonData
- mov r8, r0
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldrb r2, [r4]
- ldr r1, [r0]
- lsls r0, r2, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _0815CFBC
- adds r0, r2, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0815CF9C
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r7
- b _0815CFAA
- .pool
-_0815CF9C:
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
-_0815CFAA:
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- b _0815CFBE
- .pool
-_0815CFBC:
- ldrh r6, [r1, 0x2]
-_0815CFBE:
- movs r1, 0x14
- mov r10, r1
- b _0815D05A
-_0815CFC4:
- movs r2, 0x1
- str r2, [sp, 0x1C]
- ldr r6, =gBattlePartyID
- ldr r4, =gAnimationBankTarget
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r7, =gEnemyParty
- adds r0, r7
- movs r1, 0
- bl GetMonData
- mov r9, r0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r7
- movs r1, 0x1
- bl GetMonData
- mov r8, r0
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldrb r2, [r4]
- ldr r1, [r0]
- lsls r0, r2, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _0815D054
- adds r0, r2, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0815D03C
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- b _0815D048
- .pool
-_0815D03C:
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r7
-_0815D048:
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- b _0815D056
-_0815D054:
- ldrh r6, [r1, 0x2]
-_0815D056:
- ldr r3, =0x0000ffec
-_0815D058:
- mov r10, r3
-_0815D05A:
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl sub_80A8328
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r5, =gAnimationBankAttacker
- ldrb r0, [r5]
- movs r1, 0
- bl sub_80A5C6C
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_80A5C6C
- lsls r0, 24
- mov r2, r10
- lsls r1, r2, 16
- asrs r1, 16
- adds r4, r1
- lsls r4, 16
- asrs r4, 16
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0x5
- str r0, [sp, 0x4]
- mov r3, r9
- str r3, [sp, 0x8]
- mov r0, r8
- str r0, [sp, 0xC]
- ldr r0, =gAnimationBankTarget
- ldrb r0, [r0]
- str r0, [sp, 0x10]
- movs r0, 0x1
- str r0, [sp, 0x14]
- adds r0, r6, 0
- ldr r1, [sp, 0x1C]
- movs r2, 0
- adds r3, r4, 0
- bl sub_80A8394
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, =gSprites
- lsls r5, r6, 4
- adds r5, r6
- lsls r5, 2
- adds r5, r0
- movs r0, 0x3
- ands r7, r0
- lsls r7, 2
- mov r8, r7
- ldrb r0, [r5, 0x5]
- movs r4, 0xD
- negs r4, r4
- adds r1, r4, 0
- ands r1, r0
- mov r2, r8
- orrs r1, r2
- strb r1, [r5, 0x5]
- ldrb r2, [r5, 0x1]
- adds r0, r4, 0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r5, 0x1]
- ldr r0, =0x00007fff
- lsrs r1, 4
- lsls r1, 4
- movs r3, 0x80
- lsls r3, 1
- adds r2, r3, 0
- orrs r1, r2
- movs r2, 0x20
- bl FillPalette
- ldrb r0, [r5, 0x5]
- ands r4, r0
- mov r0, r8
- orrs r4, r0
- strb r4, [r5, 0x5]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldr r0, =gTasks
- ldr r1, [sp, 0x18]
- lsls r4, r1, 2
- adds r4, r1
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0xA]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- strh r6, [r4, 0x8]
- ldr r0, =sub_815D160
- str r0, [r4]
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815CED8
-
- thumb_func_start sub_815D160
-sub_815D160: @ 815D160
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815D1AE
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0xA
- bne _0815D1AE
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x1C]
- strh r0, [r4, 0x1E]
- ldr r0, =sub_815D1BC
- str r0, [r4]
-_0815D1AE:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815D160
-
- thumb_func_start sub_815D1BC
-sub_815D1BC: @ 815D1BC
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- ldrb r2, [r5, 0x8]
- ldrh r0, [r5, 0x1C]
- subs r0, 0x10
- movs r4, 0
- strh r0, [r5, 0x1C]
- ldrh r0, [r5, 0x1E]
- adds r0, 0x80
- strh r0, [r5, 0x1E]
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r6, r0, r1
- ldrb r2, [r6, 0x1]
- lsls r1, r2, 30
- lsrs r1, 30
- movs r0, 0x2
- orrs r1, r0
- subs r0, 0x6
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x1]
- movs r0, 0x1C
- ldrsh r2, [r5, r0]
- movs r0, 0x1E
- ldrsh r3, [r5, r0]
- str r4, [sp]
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_80A73E0
- ldrh r0, [r5, 0x20]
- adds r0, 0x1
- strh r0, [r5, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _0815D22A
- adds r0, r6, 0
- bl sub_80A749C
- adds r0, r6, 0
- bl sub_80A8610
- ldr r0, =sub_80A6814
- str r0, [r5]
-_0815D22A:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815D1BC
-
- thumb_func_start sub_815D240
-sub_815D240: @ 815D240
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r4, r1, r0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0815D26C
- ldr r0, =gAnimationBankAttacker
- b _0815D26E
- .pool
-_0815D26C:
- ldr r0, =gAnimationBankTarget
-_0815D26E:
- ldrb r5, [r0]
- movs r6, 0
- strh r6, [r4, 0x8]
- strh r6, [r4, 0xA]
- strh r6, [r4, 0xC]
- movs r0, 0x10
- strh r0, [r4, 0xE]
- strh r6, [r4, 0x10]
- strh r5, [r4, 0x12]
- movs r0, 0x20
- strh r0, [r4, 0x14]
- strh r6, [r4, 0x16]
- movs r0, 0x18
- strh r0, [r4, 0x18]
- adds r0, r5, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815D2A0
- movs r1, 0x18
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x18]
-_0815D2A0:
- adds r0, r5, 0
- bl sub_80A6190
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x22
- strh r0, [r4, 0x22]
- cmp r0, 0
- bge _0815D2B4
- strh r6, [r4, 0x22]
-_0815D2B4:
- ldrh r0, [r4, 0x22]
- adds r0, 0x42
- strh r0, [r4, 0x24]
- ldr r0, =gBattleAnimArgs
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- adds r0, r5, 0
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815D304
- ldr r0, =0x04000014
- str r0, [sp]
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- ldr r0, =gUnknown_02022E18
- ldrh r5, [r0]
- ldr r0, =gUnknown_02022E1A
- b _0815D316
- .pool
-_0815D304:
- ldr r0, =0x04000018
- str r0, [sp]
- ldr r1, =0x00003f44
- movs r0, 0x50
- bl SetGpuReg
- ldr r0, =gUnknown_02022E1C
- ldrh r5, [r0]
- ldr r0, =gUnknown_02022E1E
-_0815D316:
- ldrh r3, [r0]
- movs r7, 0
- movs r2, 0
- ldr r6, =gUnknown_02038C28
- movs r0, 0xF0
- lsls r0, 3
- adds r0, r6
- mov r12, r0
-_0815D326:
- lsls r2, 16
- asrs r2, 16
- lsls r1, r2, 1
- adds r0, r1, r6
- strh r5, [r0]
- add r1, r12
- strh r5, [r1]
- adds r0, r2, 0x1
- lsls r0, 1
- adds r1, r0, r6
- strh r3, [r1]
- add r0, r12
- strh r3, [r0]
- lsls r0, r7, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- adds r2, 0x2
- lsls r2, 16
- lsrs r2, 16
- lsrs r7, r0, 16
- asrs r0, 16
- cmp r0, 0x9F
- ble _0815D326
- ldr r0, =0xa6600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80BA038
- ldr r0, =sub_815D398
- str r0, [r4]
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815D240
-
- thumb_func_start sub_815D398
-sub_815D398: @ 815D398
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r6, r0, r1
- ldrb r0, [r6, 0x12]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815D3D8
- ldr r0, =gUnknown_02022E18
- ldrh r0, [r0]
- str r0, [sp, 0x4]
- ldr r0, =gUnknown_02022E1A
- b _0815D3E0
- .pool
-_0815D3D8:
- ldr r0, =gUnknown_02022E1C
- ldrh r0, [r0]
- str r0, [sp, 0x4]
- ldr r0, =gUnknown_02022E1E
-_0815D3E0:
- ldrh r0, [r0]
- str r0, [sp, 0x8]
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _0815D3EE
- b _0815D5CC
-_0815D3EE:
- cmp r0, 0x1
- bgt _0815D400
- cmp r0, 0
- beq _0815D40E
- b _0815D63C
- .pool
-_0815D400:
- cmp r0, 0x2
- bne _0815D406
- b _0815D5EC
-_0815D406:
- cmp r0, 0x3
- bne _0815D40C
- b _0815D636
-_0815D40C:
- b _0815D63C
-_0815D40E:
- movs r2, 0x24
- ldrsh r0, [r6, r2]
- lsls r0, 17
- lsrs r5, r0, 16
- movs r3, 0
- str r3, [sp]
- mov r9, r3
- movs r4, 0
- ldrh r0, [r6, 0xA]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r6, 0xA]
- ldrh r7, [r6, 0xA]
- mov r8, r7
- movs r0, 0x14
- ldrsh r1, [r6, r0]
- movs r0, 0xFC
- lsls r0, 3
- bl __divsi3
- strh r0, [r6, 0x1A]
- movs r1, 0x16
- ldrsh r0, [r6, r1]
- lsls r0, 1
- movs r2, 0x1A
- ldrsh r1, [r6, r2]
- bl __divsi3
- negs r0, r0
- strh r0, [r6, 0x1C]
- ldrh r0, [r6, 0x16]
- strh r0, [r6, 0x1E]
- lsls r0, 16
- asrs r0, 21
- lsls r0, 16
- lsrs r7, r0, 16
- strh r7, [r6, 0x20]
- ldrh r2, [r6, 0x24]
- lsls r3, r2, 16
- mov r12, r3
- asrs r1, r3, 16
- movs r3, 0x22
- ldrsh r0, [r6, r3]
- cmp r1, r0
- ble _0815D52E
- ldr r0, =gUnknown_02039B28
- mov r10, r0
- ldr r1, [sp, 0x4]
- lsls r0, r1, 16
- asrs r0, 16
- str r0, [sp, 0x10]
- ldr r2, [sp, 0x8]
- lsls r0, r2, 16
- asrs r0, 16
- str r0, [sp, 0xC]
-_0815D47E:
- lsls r5, 16
- asrs r5, 16
- adds r2, r5, 0x1
- lsls r2, 1
- mov r3, r10
- ldrb r1, [r3, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- ldr r0, =gUnknown_02038C28
- adds r2, r0
- lsls r4, 16
- asrs r4, 16
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- subs r0, r4, r0
- ldr r3, [sp, 0xC]
- adds r0, r3, r0
- strh r0, [r2]
- lsls r3, r5, 1
- mov r0, r10
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r3, r0
- ldr r1, =gUnknown_02038C28
- adds r3, r1
- lsls r1, r7, 16
- asrs r1, 16
- ldr r2, [sp, 0x10]
- adds r1, r2, r1
- mov r7, r8
- lsls r2, r7, 16
- asrs r2, 16
- lsls r0, r2, 1
- ldr r7, =gSineTable
- adds r0, r7
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- adds r1, r0
- strh r1, [r3]
- adds r2, 0xA
- mov r8, r2
- movs r0, 0xFF
- mov r1, r8
- ands r1, r0
- mov r8, r1
- ldrh r0, [r6, 0x1C]
- ldrh r2, [r6, 0x1E]
- adds r0, r2
- strh r0, [r6, 0x1E]
- lsls r0, 16
- asrs r0, 21
- lsls r0, 16
- lsrs r7, r0, 16
- strh r7, [r6, 0x20]
- adds r4, 0x1
- lsls r4, 16
- lsrs r4, 16
- subs r5, 0x2
- lsls r5, 16
- lsrs r5, 16
- ldr r3, [sp]
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r1, [r6, 0x14]
- adds r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- str r2, [sp]
- asrs r0, 21
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r0, =0xffff0000
- add r0, r12
- lsrs r2, r0, 16
- lsls r3, r2, 16
- mov r12, r3
- asrs r1, r3, 16
- movs r3, 0x22
- ldrsh r0, [r6, r3]
- cmp r1, r0
- bgt _0815D47E
-_0815D52E:
- lsls r1, r2, 17
- cmp r1, 0
- blt _0815D55A
- ldr r4, =gUnknown_02038C28
- ldr r7, [sp, 0x4]
- lsls r0, r7, 16
- asrs r0, 16
- adds r3, r0, 0
- adds r3, 0xF0
- movs r0, 0xF0
- lsls r0, 3
- adds r5, r4, r0
-_0815D546:
- asrs r2, r1, 16
- lsls r1, r2, 1
- adds r0, r1, r4
- strh r3, [r0]
- adds r1, r5
- strh r3, [r1]
- subs r2, 0x2
- lsls r1, r2, 16
- cmp r1, 0
- bge _0815D546
-_0815D55A:
- ldrh r0, [r6, 0x14]
- adds r0, 0x1
- strh r0, [r6, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _0815D5C2
- movs r0, 0x40
- strh r0, [r6, 0x14]
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0815D594
- ldrh r0, [r6, 0xE]
- subs r0, 0x1
- strh r0, [r6, 0xE]
- b _0815D59A
- .pool
-_0815D594:
- ldrh r0, [r6, 0x10]
- adds r0, 0x1
- strh r0, [r6, 0x10]
-_0815D59A:
- ldrh r1, [r6, 0x10]
- lsls r1, 8
- ldrh r0, [r6, 0xE]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0xE
- ldrsh r1, [r6, r2]
- cmp r1, 0
- bne _0815D63C
- movs r3, 0x10
- ldrsh r0, [r6, r3]
- cmp r0, 0x10
- bne _0815D63C
- strh r1, [r6, 0xC]
- strh r1, [r6, 0xE]
- b _0815D62E
-_0815D5C2:
- ldrh r0, [r6, 0x18]
- ldrh r7, [r6, 0x16]
- adds r0, r7
- strh r0, [r6, 0x16]
- b _0815D63C
-_0815D5CC:
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _0815D63C
- ldr r1, =gUnknown_02039B28
- movs r0, 0x3
- strb r0, [r1, 0x15]
- movs r0, 0
- strh r0, [r6, 0xC]
- b _0815D62E
- .pool
-_0815D5EC:
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0815D602
- ldrh r0, [r6, 0xE]
- adds r0, 0x1
- strh r0, [r6, 0xE]
- b _0815D608
-_0815D602:
- ldrh r0, [r6, 0x10]
- subs r0, 0x1
- strh r0, [r6, 0x10]
-_0815D608:
- ldrh r1, [r6, 0x10]
- lsls r1, 8
- ldrh r0, [r6, 0xE]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0xE
- ldrsh r0, [r6, r1]
- cmp r0, 0x10
- bne _0815D63C
- movs r2, 0x10
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _0815D63C
- strh r0, [r6, 0xC]
- strh r0, [r6, 0xE]
-_0815D62E:
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _0815D63C
-_0815D636:
- adds r0, r4, 0
- bl move_anim_task_del
-_0815D63C:
- 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_815D398
-
- thumb_func_start sub_815D64C
-sub_815D64C: @ 815D64C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, =gBattleAnimArgs
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x26]
- ldr r2, =gUnknown_085CE5F0
- adds r0, r4, 0
- bl sub_80A7CFC
- ldr r0, =sub_815D694
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815D64C
-
- thumb_func_start sub_815D694
-sub_815D694: @ 815D694
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r2, =gTasks
- adds r3, r0, r2
- ldrh r0, [r3, 0x8]
- adds r1, r0, 0x1
- movs r5, 0
- strh r1, [r3, 0x8]
- subs r0, 0x14
- lsls r0, 16
- lsrs r0, 16
- adds r6, r2, 0
- cmp r0, 0x16
- bhi _0815D6F8
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815D708
- strh r5, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- movs r5, 0x1
- ands r0, r5
- cmp r0, 0
- bne _0815D6F8
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, =0x0000ffff
- strh r1, [r0, 0x24]
- b _0815D708
- .pool
-_0815D6F8:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
-_0815D708:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r6
- bl sub_80A7D34
- lsls r0, 24
- cmp r0, 0
- bne _0815D720
- adds r0, r4, 0
- bl move_anim_task_del
-_0815D720:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815D694
-
- thumb_func_start sub_815D72C
-sub_815D72C: @ 815D72C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r5, r2, 0
- adds r0, r3, 0
- ldr r4, [sp, 0x14]
- ldr r6, [sp, 0x18]
- lsls r1, 16
- lsrs r1, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r6, 16
- lsrs r6, 16
- mov r2, r8
- strh r1, [r2, 0x20]
- strh r5, [r2, 0x22]
- lsls r1, 16
- asrs r1, 16
- lsls r2, r1, 4
- mov r3, r8
- strh r2, [r3, 0x36]
- lsls r5, 16
- asrs r5, 16
- lsls r2, r5, 4
- strh r2, [r3, 0x38]
- lsls r0, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 4
- adds r1, r6, 0
- bl __divsi3
- mov r1, r8
- strh r0, [r1, 0x3A]
- lsls r4, 16
- asrs r4, 16
- subs r4, r5
- lsls r4, 4
- adds r0, r4, 0
- adds r1, r6, 0
- bl __divsi3
- mov r2, r8
- strh r0, [r2, 0x3C]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_815D72C
-
- thumb_func_start sub_815D794
-sub_815D794: @ 815D794
- ldrh r1, [r0, 0x3A]
- ldrh r2, [r0, 0x36]
- adds r1, r2
- strh r1, [r0, 0x36]
- ldrh r2, [r0, 0x3C]
- ldrh r3, [r0, 0x38]
- adds r2, r3
- strh r2, [r0, 0x38]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r0, 0x20]
- lsls r2, 16
- asrs r2, 20
- strh r2, [r0, 0x22]
- bx lr
- thumb_func_end sub_815D794
-
- thumb_func_start sub_815D7B4
-sub_815D7B4: @ 815D7B4
- push {r4-r6,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldrh r6, [r4, 0x20]
- ldrh r5, [r4, 0x22]
- bl sub_80A6838
- ldr r0, =gBattleAnimArgs
- ldrb r1, [r0]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x22
- ldrsh r2, [r4, r0]
- lsls r6, 16
- asrs r6, 16
- lsls r5, 16
- asrs r5, 16
- str r5, [sp]
- movs r0, 0x40
- str r0, [sp, 0x4]
- adds r0, r4, 0
- adds r3, r6, 0
- bl sub_815D72C
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, =sub_815D804
- str r0, [r4, 0x1C]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815D7B4
-
- thumb_func_start sub_815D804
-sub_815D804: @ 815D804
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r0, 0x2E
- ldrsh r4, [r5, r0]
- lsls r4, 3
- movs r0, 0xFF
- ands r4, r0
- adds r0, r5, 0
- bl sub_815D794
- adds r0, r4, 0
- movs r1, 0x8
- bl Sin
- strh r0, [r5, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x3A
- ble _0815D86A
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815D86A
- movs r0, 0
- strh r0, [r5, 0x30]
- ldrh r1, [r5, 0x32]
- adds r1, 0x1
- strh r1, [r5, 0x32]
- movs r0, 0x1
- ands r1, r0
- adds r3, r5, 0
- adds r3, 0x3E
- lsls r1, 2
- ldrb r2, [r3]
- subs r0, 0x6
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0x3
- ble _0815D86A
- adds r0, r5, 0
- bl move_anim_8074EE0
-_0815D86A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815D804
-
- thumb_func_start sub_815D870
-sub_815D870: @ 815D870
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, =gBattleAnimArgs
- ldrh r0, [r6, 0x6]
- strh r0, [r5, 0x2E]
- ldrb r1, [r6]
- adds r0, r5, 0
- bl StartSpriteAffineAnim
- ldr r0, =gAnimationBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _0815D896
- ldrh r0, [r6, 0x2]
- negs r0, r0
- strh r0, [r6, 0x2]
-_0815D896:
- ldr r4, =gAnimationBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x4]
- adds r0, r6
- strh r0, [r5, 0x22]
- ldr r0, =sub_810E2C8
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815D870
-
- thumb_func_start sub_815D8D8
-sub_815D8D8: @ 815D8D8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r7, 0
- ldr r2, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x8]
- subs r0, 0x1
- strh r0, [r3, 0x8]
- movs r1, 0x14
- ldrsh r0, [r3, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _0815D95A
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0815D95A
- movs r2, 0x1A
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _0815D92C
- ldrh r0, [r3, 0x10]
- strh r0, [r3, 0x1A]
- negs r0, r0
- strh r0, [r3, 0x10]
- b _0815D92E
- .pool
-_0815D92C:
- strh r7, [r3, 0x1A]
-_0815D92E:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- mov r2, r8
- adds r1, r0, r2
- movs r2, 0x1C
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0815D94A
- ldrh r0, [r1, 0x12]
- strh r0, [r1, 0x1C]
- negs r0, r0
- strh r0, [r1, 0x12]
- b _0815D94E
-_0815D94A:
- movs r0, 0
- strh r0, [r1, 0x1C]
-_0815D94E:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- add r0, r8
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0xA]
-_0815D95A:
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- ldrh r6, [r4, 0x16]
- ldrh r7, [r4, 0x18]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- mov r12, r2
- cmp r0, 0
- beq _0815D998
- ldr r3, =gSprites
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- lsrs r2, r6, 8
- ldrh r0, [r4, 0x1A]
- subs r0, r2
- strh r0, [r1, 0x24]
- adds r2, r3, 0
- b _0815D9AE
- .pool
-_0815D998:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- lsrs r1, r6, 8
- ldrh r4, [r4, 0x1A]
- adds r1, r4
- strh r1, [r0, 0x24]
-_0815D9AE:
- mov r1, r12
- adds r0, r1, r5
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0815D9E0
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsrs r2, r7, 8
- ldrh r0, [r4, 0x1C]
- subs r0, r2
- b _0815D9F2
- .pool
-_0815D9E0:
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsrs r0, r7, 8
- ldrh r4, [r4, 0x1C]
- adds r0, r4
-_0815D9F2:
- strh r0, [r1, 0x26]
- mov r2, r12
- adds r0, r2, r5
- lsls r0, 3
- add r0, r8
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bgt _0815DA12
- adds r0, r5, 0
- bl DestroyTask
- ldr r1, =gAnimVisualTaskCount
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_0815DA12:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815D8D8
-
- thumb_func_start sub_815DA20
-sub_815DA20: @ 815DA20
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r7, 0
- ldr r2, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x8]
- subs r0, 0x1
- strh r0, [r3, 0x8]
- movs r1, 0x14
- ldrsh r0, [r3, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _0815DAA6
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0815DAA6
- movs r2, 0x1A
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _0815DA78
- ldrh r0, [r3, 0x10]
- strh r0, [r3, 0x1A]
- negs r0, r0
- strh r0, [r3, 0x10]
- b _0815DA7A
- .pool
-_0815DA78:
- strh r7, [r3, 0x1A]
-_0815DA7A:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- mov r2, r8
- adds r1, r0, r2
- movs r2, 0x1C
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0815DA96
- ldrh r0, [r1, 0x12]
- strh r0, [r1, 0x1C]
- negs r0, r0
- strh r0, [r1, 0x12]
- b _0815DA9A
-_0815DA96:
- movs r0, 0
- strh r0, [r1, 0x1C]
-_0815DA9A:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- add r0, r8
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0xA]
-_0815DAA6:
- lsls r3, r6, 2
- adds r0, r3, r6
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- ldrh r2, [r4, 0xC]
- ldr r1, =0x00007fff
- adds r0, r1, 0
- ands r0, r2
- ldrh r2, [r4, 0x16]
- adds r0, r2
- lsls r5, r0, 16
- lsrs r0, r5, 16
- mov r9, r0
- ldrh r0, [r4, 0xE]
- ands r1, r0
- ldrh r2, [r4, 0x18]
- adds r1, r2
- lsls r1, 16
- lsrs r7, r1, 16
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- mov r12, r3
- cmp r0, 0
- beq _0815DB00
- ldr r3, =gSprites
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- lsrs r2, r5, 24
- ldrh r0, [r4, 0x1A]
- subs r0, r2
- strh r0, [r1, 0x24]
- adds r2, r3, 0
- b _0815DB16
- .pool
-_0815DB00:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- lsrs r1, r5, 24
- ldrh r4, [r4, 0x1A]
- adds r1, r4
- strh r1, [r0, 0x24]
-_0815DB16:
- mov r1, r12
- adds r0, r1, r6
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0815DB48
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsrs r2, r7, 8
- ldrh r0, [r4, 0x1C]
- subs r0, r2
- b _0815DB5A
- .pool
-_0815DB48:
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsrs r0, r7, 8
- ldrh r4, [r4, 0x1C]
- adds r0, r4
-_0815DB5A:
- strh r0, [r1, 0x26]
- mov r2, r12
- adds r0, r2, r6
- lsls r0, 3
- mov r1, r8
- adds r2, r0, r1
- mov r0, r9
- strh r0, [r2, 0x16]
- strh r7, [r2, 0x18]
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bgt _0815DB80
- movs r0, 0x1E
- strh r0, [r2, 0x8]
- movs r0, 0
- strh r0, [r2, 0x22]
- ldr r0, =sub_815D8D8
- str r0, [r2]
-_0815DB80:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815DA20
-
- thumb_func_start sub_815DB90
-sub_815DB90: @ 815DB90
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =gTasks
- mov r8, r0
- lsls r7, r6, 2
- adds r0, r7, r6
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- ldr r1, =gBankSpriteIds
- ldr r2, =gAnimationBankAttacker
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x26]
- ldr r5, =gBattleAnimArgs
- ldrh r0, [r5]
- strh r0, [r4, 0x24]
- ldrh r0, [r5]
- strh r0, [r4, 0x8]
- ldrh r0, [r5, 0xC]
- strh r0, [r4, 0x22]
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _0815DBD4
- ldrh r0, [r4, 0x14]
- ldr r3, =0xffff8000
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r4, 0x14]
-_0815DBD4:
- ldrb r0, [r2]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _0815DC04
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0xC]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0xE]
- mov r3, r8
- adds r4, r7, 0
- b _0815DC74
- .pool
-_0815DC04:
- movs r7, 0x2
- ldrsh r0, [r5, r7]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0815DC20
- ldrh r1, [r5, 0x2]
- ldr r0, =0x00007fff
- ands r0, r1
- b _0815DC28
- .pool
-_0815DC20:
- ldrh r0, [r5, 0x2]
- ldr r2, =0xffff8000
- adds r1, r2, 0
- orrs r0, r1
-_0815DC28:
- strh r0, [r4, 0xC]
- ldr r0, =gBattleAnimArgs
- movs r3, 0x4
- ldrsh r1, [r0, r3]
- movs r2, 0x80
- lsls r2, 8
- ands r1, r2
- adds r5, r0, 0
- cmp r1, 0
- beq _0815DC60
- ldr r3, =gTasks
- lsls r4, r6, 2
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r3
- ldrh r2, [r5, 0x4]
- ldr r0, =0x00007fff
- ands r0, r2
- b _0815DC72
- .pool
-_0815DC60:
- ldr r3, =gTasks
- lsls r4, r6, 2
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r3
- ldrh r2, [r5, 0x4]
- ldr r7, =0xffff8000
- adds r0, r7, 0
- orrs r0, r2
-_0815DC72:
- strh r0, [r1, 0xE]
-_0815DC74:
- adds r0, r4, r6
- lsls r0, 3
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x18]
- strh r1, [r0, 0x16]
- ldrh r1, [r5, 0x8]
- strh r1, [r0, 0x10]
- ldrh r1, [r5, 0xA]
- strh r1, [r0, 0x12]
- ldr r1, =sub_815DA20
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815DB90
-
- thumb_func_start sub_815DCA4
-sub_815DCA4: @ 815DCA4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- ldr r4, =gBattleAnimArgs
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815DCC4
- adds r0, r2, 0
- bl move_anim_task_del
-_0815DCC4:
- movs r0, 0
- strh r0, [r5, 0x8]
- strh r0, [r5, 0xA]
- strh r0, [r5, 0xC]
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0xE]
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815DCE8
- ldr r0, =gAnimationBankAttacker
- b _0815DCEA
- .pool
-_0815DCE8:
- ldr r0, =gAnimationBankTarget
-_0815DCEA:
- ldrb r4, [r0]
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x10]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- adds r0, r4, 0
- bl sub_80A82E4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- ldr r0, =gBattleAnimArgs
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r5, 0x26]
- ldr r2, =gUnknown_085CE74C
- adds r0, r5, 0
- bl sub_80A7CFC
- ldr r0, =sub_815DD48
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815DCA4
-
- thumb_func_start sub_815DD48
-sub_815DD48: @ 815DD48
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0815DD6C
- cmp r0, 0x1
- beq _0815DDCC
- b _0815DDDA
- .pool
-_0815DD6C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _0815DD82
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_815DDE0
-_0815DD82:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x12
- bne _0815DD92
- adds r0, r5, 0
- movs r1, 0
- bl sub_815DDE0
-_0815DD92:
- adds r0, r4, 0
- bl sub_80A7D34
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0815DDDA
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _0815DDB4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815DDDA
-_0815DDB4:
- strh r1, [r4, 0xA]
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_085CE74C
- adds r0, r4, 0
- bl sub_80A7CFC
- b _0815DDDA
- .pool
-_0815DDCC:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815DDDA
- adds r0, r5, 0
- bl move_anim_task_del
-_0815DDDA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815DD48
-
- thumb_func_start sub_815DDE0
-sub_815DDE0: @ 815DDE0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r2, =gTasks
- adds r4, r0, r2
- cmp r1, 0
- bne _0815DE08
- movs r1, 0x12
- movs r3, 0xEC
- b _0815DE0C
- .pool
-_0815DE08:
- movs r1, 0x1E
- movs r3, 0x14
-_0815DE0C:
- mov r2, sp
- ldrh r0, [r4, 0x10]
- subs r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0x10]
- subs r0, r1
- subs r0, 0x4
- strh r0, [r2, 0x2]
- ldrh r0, [r4, 0x10]
- adds r0, r1
- strh r0, [r2, 0x4]
- ldrh r0, [r4, 0x10]
- adds r0, r1
- adds r0, 0x4
- strh r0, [r2, 0x6]
- add r2, sp, 0x8
- lsls r1, r3, 24
- asrs r1, 24
- ldrh r0, [r4, 0x12]
- adds r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0x12]
- adds r0, r1
- adds r0, 0x6
- strh r0, [r2, 0x2]
- movs r5, 0
- mov r8, r2
- ldr r7, =gSprites
-_0815DE44:
- lsls r0, r5, 1
- add r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- ands r0, r5
- lsls r0, 1
- add r0, r8
- movs r3, 0
- ldrsh r2, [r0, r3]
- ldrb r3, [r4, 0x14]
- subs r3, 0x5
- lsls r3, 24
- lsrs r3, 24
- ldr r0, =gUnknown_085CE76C
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0815DE98
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r7
- movs r0, 0
- strh r0, [r1, 0x2E]
- movs r0, 0x2
- cmp r5, 0x1
- bhi _0815DE86
- movs r2, 0x2
- negs r2, r2
- adds r0, r2, 0
-_0815DE86:
- strh r0, [r1, 0x30]
- ldr r0, =0x0000ffff
- strh r0, [r1, 0x32]
- strh r6, [r1, 0x34]
- movs r0, 0x2
- strh r0, [r1, 0x36]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_0815DE98:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _0815DE44
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815DDE0
-
- thumb_func_start sub_815DEBC
-sub_815DEBC: @ 815DEBC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x32]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _0815DF02
- ldr r3, =gTasks
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x34
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_0815DF02:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815DEBC
-
- thumb_func_start sub_815DF0C
-sub_815DF0C: @ 815DF0C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0xA]
- ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- adds r0, r1
- strh r0, [r4, 0xC]
- ldr r0, =sub_815DF64
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815DF0C
-
- thumb_func_start sub_815DF64
-sub_815DF64: @ 815DF64
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0815DFB4
- ldrh r0, [r4, 0xC]
- ldr r2, =gUnknown_085CE784
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r1, 1
- adds r1, r2
- ldrh r3, [r1]
- movs r1, 0x10
- movs r2, 0x8
- bl BlendPalette
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x17
- ble _0815DFA4
- movs r0, 0
- strh r0, [r4, 0x8]
-_0815DFA4:
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- b _0815DFC6
- .pool
-_0815DFB4:
- ldrh r0, [r4, 0xC]
- movs r1, 0x10
- movs r2, 0
- movs r3, 0
- bl BlendPalette
- adds r0, r5, 0
- bl move_anim_task_del
-_0815DFC6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815DF64
-
- thumb_func_start sub_815DFCC
-sub_815DFCC: @ 815DFCC
- push {lr}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0xD0
- lsls r2, 1
- ldr r1, =gAnimationBankAttacker
- ldrb r3, [r1]
- ldr r1, =gBattleAnimArgs
- ldrb r1, [r1]
- str r1, [sp]
- movs r1, 0xA
- str r1, [sp, 0x4]
- movs r1, 0x2
- str r1, [sp, 0x8]
- movs r1, 0x1E
- str r1, [sp, 0xC]
- ldr r1, =gUnknown_08C2DC68
- str r1, [sp, 0x10]
- ldr r1, =gUnknown_08C2DDC4
- str r1, [sp, 0x14]
- ldr r1, =gUnknown_08C2DDA4
- str r1, [sp, 0x18]
- movs r1, 0
- bl sub_8117854
- add sp, 0x1C
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815DFCC
-
- thumb_func_start sub_815E01C
-sub_815E01C: @ 815E01C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, =gAnimationBankAttacker
- ldrb r0, [r6]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815E038
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_0815E038:
- ldrb r0, [r6]
- movs r1, 0
- bl sub_80A5C6C
- lsls r0, 24
- ldr r4, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r5, 0x22]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815E080
- movs r0, 0xA0
- lsls r0, 2
- strh r0, [r5, 0x2E]
- ldr r0, =0x0000fd80
- strh r0, [r5, 0x30]
- b _0815E0A8
- .pool
-_0815E080:
- cmp r0, 0x1
- bne _0815E09A
- adds r2, r5, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0xA0
- lsls r0, 2
- strh r0, [r5, 0x2E]
- strh r0, [r5, 0x30]
- b _0815E0A8
-_0815E09A:
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0xA0
- lsls r0, 2
- strh r0, [r5, 0x2E]
-_0815E0A8:
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _0815E0C8
- ldrh r0, [r5, 0x2E]
- negs r0, r0
- strh r0, [r5, 0x2E]
- adds r2, r5, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_0815E0C8:
- ldr r0, =sub_815E0DC
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815E01C
-
- thumb_func_start sub_815E0DC
-sub_815E0DC: @ 815E0DC
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x3A]
- adds r0, r1
- strh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x30]
- ldrh r3, [r2, 0x3C]
- adds r1, r3
- strh r1, [r2, 0x3C]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x24]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r2, 0x26]
- ldrh r0, [r2, 0x38]
- adds r0, 0x1
- strh r0, [r2, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xE
- bne _0815E110
- adds r0, r2, 0
- bl move_anim_8072740
-_0815E110:
- pop {r0}
- bx r0
- thumb_func_end sub_815E0DC
-
- thumb_func_start sub_815E114
-sub_815E114: @ 815E114
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r6, r1, r0
- bl sub_80A4DF0
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0815E144
- movs r0, 0x8
- strh r0, [r6, 0x12]
- movs r0, 0x3
- strh r0, [r6, 0x14]
- movs r0, 0x1
- strh r0, [r6, 0x16]
- b _0815E14E
- .pool
-_0815E144:
- movs r0, 0xC
- strh r0, [r6, 0x12]
- movs r0, 0x3
- strh r0, [r6, 0x14]
- strh r1, [r6, 0x16]
-_0815E14E:
- ldr r5, =gAnimationBankAttacker
- ldrb r0, [r5]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0815E188
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_80A5C6C
- adds r4, r0, 0
- ldrb r0, [r5]
- movs r1, 0
- bl sub_80A861C
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0815E17C
- adds r0, 0x3
-_0815E17C:
- asrs r0, 2
- adds r0, r4, r0
- b _0815E1AC
- .pool
-_0815E188:
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_80A5C6C
- adds r4, r0, 0
- ldrb r0, [r5]
- movs r1, 0
- bl sub_80A861C
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0815E1A8
- adds r0, 0x3
-_0815E1A8:
- asrs r0, 2
- subs r0, r4, r0
-_0815E1AC:
- strh r0, [r6, 0x1E]
- ldr r5, =gAnimationBankAttacker
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_80A5C6C
- adds r4, r0, 0
- ldrb r0, [r5]
- movs r1, 0
- bl sub_80A861C
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0815E1D0
- adds r0, 0x3
-_0815E1D0:
- asrs r0, 2
- subs r0, r4, r0
- strh r0, [r6, 0x20]
- ldr r4, =gAnimationBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x22]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x24]
- ldr r0, =sub_815E20C
- str r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815E114
-
- thumb_func_start sub_815E20C
-sub_815E20C: @ 815E20C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- cmp r1, 0
- beq _0815E238
- cmp r1, 0x1
- bne _0815E230
- b _0815E330
-_0815E230:
- b _0815E33E
- .pool
-_0815E238:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _0815E33E
- strh r1, [r5, 0xA]
- movs r1, 0x1E
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r3, 0x22
- ldrsh r2, [r5, r3]
- movs r4, 0x24
- ldrsh r3, [r5, r4]
- ldrb r4, [r5, 0x12]
- str r4, [sp]
- ldrb r4, [r5, 0xC]
- str r4, [sp, 0x4]
- add r4, sp, 0x10
- str r4, [sp, 0x8]
- adds r4, 0x2
- str r4, [sp, 0xC]
- bl sub_815E34C
- movs r6, 0
- mov r8, r4
- ldr r4, =gSprites
-_0815E272:
- add r0, sp, 0x10
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r3, r8
- movs r0, 0
- ldrsh r2, [r3, r0]
- ldr r0, =gUnknown_085CE7EC
- movs r3, 0x23
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _0815E306
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0815E2C6
- cmp r6, 0
- bne _0815E2B4
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r5, 0x14]
- negs r0, r0
- strh r0, [r1, 0x26]
- strh r0, [r1, 0x24]
- b _0815E2EE
- .pool
-_0815E2B4:
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r5, 0x14]
- strh r0, [r1, 0x26]
- ldrh r0, [r5, 0x14]
- strh r0, [r1, 0x24]
- b _0815E2EE
-_0815E2C6:
- cmp r6, 0
- bne _0815E2DC
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r5, 0x14]
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrh r0, [r5, 0x14]
- b _0815E2EC
-_0815E2DC:
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r5, 0x14]
- strh r0, [r1, 0x24]
- ldrh r0, [r5, 0x14]
- negs r0, r0
-_0815E2EC:
- strh r0, [r1, 0x26]
-_0815E2EE:
- ldr r1, =gSprites
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x2E]
- strh r7, [r0, 0x30]
- movs r1, 0xA
- strh r1, [r0, 0x32]
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
-_0815E306:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x1
- bls _0815E272
- ldrh r2, [r5, 0xC]
- movs r3, 0xC
- ldrsh r1, [r5, r3]
- movs r4, 0x12
- ldrsh r0, [r5, r4]
- cmp r1, r0
- bne _0815E324
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_0815E324:
- adds r0, r2, 0x1
- strh r0, [r5, 0xC]
- b _0815E33E
- .pool
-_0815E330:
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0815E33E
- adds r0, r7, 0
- bl move_anim_task_del
-_0815E33E:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_815E20C
-
- thumb_func_start sub_815E34C
-sub_815E34C: @ 815E34C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r4, [sp, 0x28]
- ldr r5, [sp, 0x2C]
- ldr r6, [sp, 0x30]
- mov r9, r6
- ldr r6, [sp, 0x34]
- mov r10, r6
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- lsls r2, 16
- lsrs r2, 16
- adds r7, r2, 0
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0x4]
- lsls r4, 24
- lsrs r6, r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r8, r5
- cmp r5, 0
- bne _0815E394
- mov r2, r9
- strh r0, [r2]
- mov r6, r10
- strh r1, [r6]
- b _0815E3F2
-_0815E394:
- cmp r5, r6
- bcc _0815E3A2
- mov r0, r9
- strh r2, [r0]
- mov r1, r10
- strh r3, [r1]
- b _0815E3F2
-_0815E3A2:
- subs r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- mov r2, r12
- lsls r1, r2, 16
- asrs r1, 16
- lsls r5, r1, 8
- lsls r0, r7, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 8
- adds r1, r6, 0
- bl __divsi3
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r5, r0
- ldr r2, [sp]
- lsls r1, r2, 16
- asrs r1, 16
- lsls r4, r1, 8
- ldr r2, [sp, 0x4]
- lsls r0, r2, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 8
- adds r1, r6, 0
- bl __divsi3
- mov r6, r8
- muls r6, r0
- adds r0, r6, 0
- adds r4, r0
- asrs r5, 8
- mov r0, r9
- strh r5, [r0]
- asrs r4, 8
- mov r1, r10
- strh r4, [r1]
-_0815E3F2:
- 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_815E34C
-
- thumb_func_start sub_815E404
-sub_815E404: @ 815E404
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x24
- ble _0815E43A
- ldr r3, =gTasks
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_0815E43A:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815E404
-
- thumb_func_start sub_815E444
-sub_815E444: @ 815E444
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x2E]
- ldr r1, =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, =sub_80A70C0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815E444
-
- thumb_func_start sub_815E47C
-sub_815E47C: @ 815E47C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- ldr r1, =gTasks
- adds r7, r0, r1
- ldr r0, =gAnimationBankAttacker
- mov r10, r0
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x1E]
- mov r1, r10
- ldrb r0, [r1]
- movs r1, 0x3
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x20]
- ldr r0, =gAnimationBankTarget
- mov r8, r0
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x22]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x3
- bl sub_80A5C6C
- adds r4, r0, 0
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0
- bl sub_80A861C
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0815E4EE
- adds r0, 0x3
-_0815E4EE:
- asrs r0, 2
- adds r0, r4, r0
- strh r0, [r7, 0x24]
- ldr r4, =gUnknown_085CE84C
- movs r0, 0x1E
- ldrsh r5, [r7, r0]
- movs r1, 0x20
- ldrsh r6, [r7, r1]
- mov r1, r8
- ldrb r0, [r1]
- bl sub_80A82E4
- adds r3, r0, 0
- subs r3, 0x5
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x26]
- cmp r0, 0x40
- beq _0815E5B8
- ldr r4, =gSprites
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x10
- strh r1, [r0, 0x2E]
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r7, 0x22]
- strh r1, [r0, 0x32]
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r7, 0x24]
- strh r1, [r0, 0x36]
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =0x0000ffe0
- strh r1, [r0, 0x38]
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl sub_80A68D4
- mov r1, r10
- ldrb r0, [r1]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815E596
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_0815E596:
- ldr r0, =sub_815E5CC
- str r0, [r7]
- b _0815E5BE
- .pool
-_0815E5B8:
- mov r0, r9
- bl move_anim_task_del
-_0815E5BE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_815E47C
-
- thumb_func_start sub_815E5CC
-sub_815E5CC: @ 815E5CC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _0815E634
- cmp r1, 0x1
- bgt _0815E5F4
- cmp r1, 0
- beq _0815E5FE
- b _0815E6D2
- .pool
-_0815E5F4:
- cmp r1, 0x2
- beq _0815E658
- cmp r1, 0x3
- beq _0815E6CC
- b _0815E6D2
-_0815E5FE:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815E6D2
- strh r1, [r4, 0xA]
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl sub_80A6900
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _0815E6D2
- b _0815E6BE
- .pool
-_0815E634:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl sub_80A6900
- lsls r0, 24
- cmp r0, 0
- beq _0815E6D2
- movs r0, 0
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- b _0815E6BE
- .pool
-_0815E658:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815E6D2
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r2, [r4, 0xC]
- adds r2, 0x1
- strh r2, [r4, 0xC]
- ldr r5, =gSprites
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r0, 0x1
- ands r2, r0
- adds r1, 0x3E
- lsls r2, 2
- ldrb r3, [r1]
- subs r0, 0x6
- ands r0, r3
- orrs r0, r2
- strb r0, [r1]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _0815E6D2
- movs r0, 0x26
- ldrsh r1, [r4, 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 r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
-_0815E6BE:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815E6D2
- .pool
-_0815E6CC:
- adds r0, r2, 0
- bl move_anim_task_del
-_0815E6D2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815E5CC
-
- thumb_func_start sub_815E6D8
-sub_815E6D8: @ 815E6D8
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r6, r0, 0
- cmp r1, 0
- bne _0815E6F4
- ldr r0, =gAnimationBankAttacker
- b _0815E6F6
- .pool
-_0815E6F4:
- ldr r0, =gAnimationBankTarget
-_0815E6F6:
- ldrb r5, [r0]
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r3, =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r1, r6, 0
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x3A]
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- movs r1, 0x1
- cmp r0, 0
- bne _0815E724
- movs r3, 0x1
- negs r3, r3
- adds r1, r3, 0
-_0815E724:
- strh r1, [r4, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0815E768
- ldrb r2, [r4, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x8
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x47
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_80A861C
- subs r0, 0x8
- b _0815E772
- .pool
-_0815E768:
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_80A861C
- adds r0, 0x8
-_0815E772:
- strh r0, [r4, 0x20]
- ldr r0, =sub_815E784
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815E6D8
-
- thumb_func_start sub_815E784
-sub_815E784: @ 815E784
- push {lr}
- adds r2, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- cmp r1, 0x1
- beq _0815E7CC
- cmp r1, 0x1
- bgt _0815E79A
- cmp r1, 0
- beq _0815E7A4
- b _0815E83C
-_0815E79A:
- cmp r1, 0x2
- beq _0815E7DC
- cmp r1, 0x3
- beq _0815E802
- b _0815E83C
-_0815E7A4:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815E83C
- strh r1, [r2, 0x30]
- ldrh r0, [r2, 0x3C]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bne _0815E83C
- b _0815E7FA
-_0815E7CC:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _0815E83C
- b _0815E7F6
-_0815E7DC:
- movs r0, 0x3C
- ldrsh r1, [r2, r0]
- lsls r1, 2
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _0815E83C
-_0815E7F6:
- movs r0, 0
- strh r0, [r2, 0x30]
-_0815E7FA:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- b _0815E83C
-_0815E802:
- movs r0, 0x3C
- ldrsh r1, [r2, r0]
- lsls r0, r1, 1
- adds r0, r1
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _0815E83C
- ldrh r0, [r2, 0x3A]
- subs r0, 0x1
- strh r0, [r2, 0x3A]
- lsls r0, 16
- cmp r0, 0
- beq _0815E836
- movs r0, 0
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- b _0815E83C
-_0815E836:
- adds r0, r2, 0
- bl move_anim_8072740
-_0815E83C:
- pop {r0}
- bx r0
- thumb_func_end sub_815E784
-
- thumb_func_start sub_815E840
-sub_815E840: @ 815E840
- push {r4,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, =gBattleAnimArgs
- movs r3, 0
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _0815E85C
- adds r0, r1, 0
- bl move_anim_task_del
- b _0815E884
- .pool
-_0815E85C:
- ldr r0, =gTasks
- lsls r4, r1, 2
- adds r4, r1
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r2, 0x2]
- strh r0, [r4, 0x8]
- ldrb r0, [r2]
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x26]
- ldr r2, =gUnknown_085CE87C
- adds r0, r4, 0
- bl sub_80A7CFC
- ldr r0, =sub_815E898
- str r0, [r4]
-_0815E884:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815E840
-
- thumb_func_start sub_815E898
-sub_815E898: @ 815E898
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815E8F2
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0815E8E0
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- b _0815E8F0
- .pool
-_0815E8E0:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, =0x0000fffe
-_0815E8F0:
- strh r1, [r0, 0x24]
-_0815E8F2:
- adds r0, r4, 0
- bl sub_80A7D34
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0815E94E
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
- ldrh r0, [r4, 0x8]
- subs r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- cmp r0, 0
- beq _0815E948
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_085CE87C
- bl sub_80A7CFC
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- b _0815E94E
- .pool
-_0815E948:
- adds r0, r6, 0
- bl move_anim_task_del
-_0815E94E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_815E898
-
- thumb_func_start sub_815E954
-sub_815E954: @ 815E954
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0815E970
- ldr r4, =gAnimationBankAttacker
- b _0815E972
- .pool
-_0815E970:
- ldr r4, =gAnimationBankTarget
-_0815E972:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_80A861C
- strh r0, [r5, 0x22]
- movs r1, 0x22
- ldrsh r0, [r5, r1]
- cmp r0, 0x7
- bgt _0815E996
- movs r0, 0x8
- strh r0, [r5, 0x22]
-_0815E996:
- movs r2, 0
- strh r2, [r5, 0x2E]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x30]
- strh r2, [r5, 0x32]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x34]
- ldr r0, =sub_815E9BC
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815E954
-
- thumb_func_start sub_815E9BC
-sub_815E9BC: @ 815E9BC
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x30
- ldrsh r1, [r3, r2]
- cmp r0, r1
- blt _0815EA10
- movs r0, 0
- strh r0, [r3, 0x2E]
- ldrh r1, [r3, 0x32]
- adds r1, 0x1
- movs r0, 0x1
- ands r1, r0
- strh r1, [r3, 0x32]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- lsls r1, 2
- ldrb r2, [r0]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _0815EA10
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _0815EA10
- adds r0, r3, 0
- bl move_anim_8072740
-_0815EA10:
- pop {r0}
- bx r0
- thumb_func_end sub_815E9BC
-
- thumb_func_start sub_815EA14
-sub_815EA14: @ 815EA14
- push {lr}
- adds r3, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0815EA44
- ldrb r2, [r3, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x8
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x47
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x3]
- movs r0, 0x64
- strh r0, [r3, 0x20]
- movs r0, 0x1
- b _0815EA4A
- .pool
-_0815EA44:
- movs r0, 0x8C
- strh r0, [r3, 0x20]
- ldr r0, =0x0000ffff
-_0815EA4A:
- strh r0, [r3, 0x3C]
- movs r0, 0x38
- strh r0, [r3, 0x22]
- ldr r0, =sub_815EA60
- str r0, [r3, 0x1C]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815EA14
-
- thumb_func_start sub_815EA60
-sub_815EA60: @ 815EA60
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bls _0815EA6E
- b _0815EC40
-_0815EA6E:
- lsls r0, 2
- ldr r1, =_0815EA7C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815EA7C:
- .4byte _0815EAA0
- .4byte _0815EAD2
- .4byte _0815EAE4
- .4byte _0815EB24
- .4byte _0815EB36
- .4byte _0815EB74
- .4byte _0815EBD8
- .4byte _0815EBF8
- .4byte _0815EC1E
-_0815EAA0:
- movs r3, 0x3C
- ldrsh r0, [r4, r3]
- lsls r0, 1
- ldrh r1, [r4, 0x22]
- subs r1, r0
- strh r1, [r4, 0x22]
- ldrh r2, [r4, 0x30]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _0815EAC2
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- ldrh r0, [r4, 0x20]
- subs r0, r1
- strh r0, [r4, 0x20]
-_0815EAC2:
- adds r0, r2, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- beq _0815EAD0
- b _0815EC40
-_0815EAD0:
- b _0815EC12
-_0815EAD2:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _0815EAE2
- b _0815EC40
-_0815EAE2:
- b _0815EC12
-_0815EAE4:
- ldrh r2, [r4, 0x30]
- adds r2, 0x1
- strh r2, [r4, 0x30]
- movs r3, 0x3C
- ldrsh r1, [r4, r3]
- lsls r0, r1, 1
- adds r0, r1
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r3, =gSineTable
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- ldrh r1, [r4, 0x3C]
- muls r0, r1
- strh r0, [r4, 0x24]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0xC
- beq _0815EB1C
- b _0815EC40
-_0815EB1C:
- b _0815EC12
- .pool
-_0815EB24:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- beq _0815EB34
- b _0815EC40
-_0815EB34:
- b _0815EC12
-_0815EB36:
- ldrh r2, [r4, 0x30]
- adds r2, 0x1
- strh r2, [r4, 0x30]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- ldrh r0, [r4, 0x22]
- subs r0, r1
- strh r0, [r4, 0x22]
- ldr r3, =gSineTable
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- ldrh r1, [r4, 0x3C]
- muls r0, r1
- strh r0, [r4, 0x24]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0xC
- bne _0815EC40
- b _0815EC16
- .pool
-_0815EB74:
- ldrh r2, [r4, 0x30]
- adds r2, 0x1
- strh r2, [r4, 0x30]
- movs r3, 0x3C
- ldrsh r1, [r4, r3]
- lsls r0, r1, 1
- adds r0, r1
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r3, =gSineTable
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- ldrh r1, [r4, 0x3C]
- muls r0, r1
- strh r0, [r4, 0x24]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0xF
- bne _0815EBC0
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r3, =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
-_0815EBC0:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x12
- bne _0815EC40
- b _0815EC12
- .pool
-_0815EBD8:
- movs r3, 0x3C
- ldrsh r0, [r4, r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- ldrh r0, [r4, 0x20]
- adds r1, r0
- strh r1, [r4, 0x20]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _0815EC40
- b _0815EC12
-_0815EBF8:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r0, 1
- ldrh r3, [r4, 0x20]
- adds r0, r3
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _0815EC40
-_0815EC12:
- movs r0, 0
- strh r0, [r4, 0x30]
-_0815EC16:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0815EC40
-_0815EC1E:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- ldrh r0, [r4, 0x20]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0815EC40
- adds r0, r4, 0
- bl move_anim_8072740
-_0815EC40:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_815EA60
-
- thumb_func_start sub_815EC48
-sub_815EC48: @ 815EC48
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r6, r1, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x26]
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- bne _0815ECD0
- bl battle_type_is_double
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x1
- bne _0815ECB4
- ldr r5, =gAnimationBankAttacker
- ldrb r0, [r5]
- movs r1, 0
- bl sub_80A5C6C
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r1, [r5]
- movs r0, 0x2
- eors r0, r1
- movs r1, 0
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- ble _0815ECAC
- strh r7, [r6, 0x24]
- b _0815ECD4
- .pool
-_0815ECAC:
- ldr r0, =0x0000ffff
- b _0815ECD2
- .pool
-_0815ECB4:
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0815ECD0
- ldr r0, =0x0000ffff
- b _0815ECD2
- .pool
-_0815ECD0:
- movs r0, 0x1
-_0815ECD2:
- strh r0, [r6, 0x24]
-_0815ECD4:
- ldr r0, =sub_815ECE4
- str r0, [r6]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815EC48
-
- thumb_func_start sub_815ECE4
-sub_815ECE4: @ 815ECE4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r3, r0, r1
- movs r1, 0x8
- ldrsh r0, [r3, r1]
- cmp r0, 0x8
- bls _0815ECFE
- b _0815EE78
-_0815ECFE:
- lsls r0, 2
- ldr r1, =_0815ED10
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815ED10:
- .4byte _0815ED34
- .4byte _0815ED46
- .4byte _0815ED78
- .4byte _0815EDA8
- .4byte _0815EDCE
- .4byte _0815EDF8
- .4byte _0815EE08
- .4byte _0815EE28
- .4byte _0815EE60
-_0815ED34:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- beq _0815ED44
- b _0815EE78
-_0815ED44:
- b _0815EE50
-_0815ED46:
- ldr r2, =gSprites
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- lsls r2, r0, 1
- adds r2, r0
- ldrh r0, [r1, 0x24]
- subs r0, r2
- strh r0, [r1, 0x24]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- beq _0815ED72
- b _0815EE78
-_0815ED72:
- b _0815EE50
- .pool
-_0815ED78:
- ldr r2, =gSprites
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x24
- ldrsh r2, [r3, r0]
- lsls r0, r2, 1
- adds r0, r2
- ldrh r2, [r1, 0x24]
- adds r0, r2
- strh r0, [r1, 0x24]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _0815EE78
- b _0815EE50
- .pool
-_0815EDA8:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0815EE78
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r1, [r3, 0xC]
- movs r2, 0xC
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _0815EE54
- adds r0, r1, 0x1
- strh r0, [r3, 0xC]
- movs r0, 0x1
- strh r0, [r3, 0x8]
- b _0815EE78
-_0815EDCE:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x24]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0815EE78
- b _0815EE50
- .pool
-_0815EDF8:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _0815EE78
- b _0815EE50
-_0815EE08:
- ldr r2, =gSprites
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x24
- ldrsh r2, [r3, r0]
- lsls r2, 2
- ldrh r0, [r1, 0x24]
- subs r0, r2
- b _0815EE40
- .pool
-_0815EE28:
- ldr r2, =gSprites
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- lsls r0, 2
- ldrh r2, [r1, 0x24]
- adds r0, r2
-_0815EE40:
- strh r0, [r1, 0x24]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0815EE78
-_0815EE50:
- movs r0, 0
- strh r0, [r3, 0xA]
-_0815EE54:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _0815EE78
- .pool
-_0815EE60:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x24]
- adds r0, r4, 0
- bl move_anim_task_del
-_0815EE78:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815ECE4
-
- thumb_func_start sub_815EE84
-sub_815EE84: @ 815EE84
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0815EEA8
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r0, =gAnimationBankAttacker
- b _0815EEAA
- .pool
-_0815EEA8:
- ldr r0, =gAnimationBankTarget
-_0815EEAA:
- ldrb r0, [r0]
- strh r0, [r4, 0x3C]
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815EECE
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r4, 0x3]
-_0815EECE:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A8328
- movs r2, 0x3
- ands r2, r0
- lsls r2, 2
- ldrb r3, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- adds r0, r1, 0
- ands r0, r3
- orrs r0, r2
- strb r0, [r4, 0x5]
- ldrb r0, [r4, 0x1]
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4, 0x1]
- ldr r0, =sub_815EF08
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815EE84
-
- thumb_func_start sub_815EF08
-sub_815EF08: @ 815EF08
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _0815EF16
- b _0815F106
-_0815EF16:
- lsls r0, 2
- ldr r1, =_0815EF24
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815EF24:
- .4byte _0815EF38
- .4byte _0815F038
- .4byte _0815F0A0
- .4byte _0815F0B4
- .4byte _0815F100
-_0815EF38:
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0x5
- bhi _0815EF68
- lsls r0, 2
- ldr r1, =_0815EF50
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815EF50:
- .4byte _0815EF6C
- .4byte _0815EF88
- .4byte _0815EFAA
- .4byte _0815EFC6
- .4byte _0815EF6C
- .4byte _0815EFEC
-_0815EF68:
- movs r0, 0
- strh r0, [r4, 0x3A]
-_0815EF6C:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x5
- bl sub_80A861C
- subs r0, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- b _0815EFE0
-_0815EF88:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x5
- bl sub_80A861C
- subs r0, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_80A861C
- adds r0, 0x4
- b _0815EFE6
-_0815EFAA:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x4
- bl sub_80A861C
- adds r0, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- b _0815EFE0
-_0815EFC6:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x4
- bl sub_80A861C
- adds r0, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
-_0815EFE0:
- bl sub_80A861C
- subs r0, 0x4
-_0815EFE6:
- lsls r0, 16
- lsrs r1, r0, 16
- b _0815F00C
-_0815EFEC:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r1, r0, 24
-_0815F00C:
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0x4
- bne _0815F018
- movs r0, 0x18
- b _0815F022
-_0815F018:
- cmp r0, 0x5
- bne _0815F020
- movs r0, 0x6
- b _0815F022
-_0815F020:
- movs r0, 0xC
-_0815F022:
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- strh r1, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- b _0815F0F8
-_0815F038:
- adds r0, r4, 0
- bl sub_80A6F3C
- lsls r0, 24
- cmp r0, 0
- beq _0815F106
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- beq _0815F070
- cmp r0, 0x5
- beq _0815F090
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _0815F088
-_0815F070:
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x38]
-_0815F088:
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- b _0815F106
-_0815F090:
- movs r0, 0
- strh r0, [r4, 0x2E]
- movs r1, 0x10
- strh r1, [r4, 0x30]
- strh r0, [r4, 0x32]
- movs r0, 0x3
- strh r0, [r4, 0x38]
- b _0815F106
-_0815F0A0:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0815F106
- movs r0, 0
- strh r0, [r4, 0x38]
- b _0815F106
-_0815F0B4:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0815F0C6
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- strh r0, [r4, 0x30]
- b _0815F0CC
-_0815F0C6:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
-_0815F0CC:
- ldrh r1, [r4, 0x32]
- lsls r1, 8
- ldrh r0, [r4, 0x30]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- bne _0815F106
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0815F0F8:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _0815F106
-_0815F100:
- adds r0, r4, 0
- bl move_anim_8072740
-_0815F106:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815EF08
-
- thumb_func_start sub_815F10C
-sub_815F10C: @ 815F10C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- subs r0, r1
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- muls r0, r1
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- adds r5, r0, 0
- strh r5, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- subs r0, r1
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- muls r0, r1
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- adds r3, r0, 0
- strh r3, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0815F16A
- ldr r0, =gUnknown_085CE3A0
- ldrh r1, [r4, 0x20]
- adds r1, r5
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r4, 0x22]
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x5
- bl CreateSprite
-_0815F16A:
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _0815F17C
- adds r0, r4, 0
- bl move_anim_8072740
-_0815F17C:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815F10C
-
- thumb_func_start sub_815F18C
-sub_815F18C: @ 815F18C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gAnimationBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_80A5C6C
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_80A5C6C
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _0815F1B8
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- beq _0815F1D0
-_0815F1B8:
- ldr r2, =gBattleAnimArgs
- ldrh r1, [r5, 0x20]
- ldrh r0, [r2]
- subs r0, r1, r0
- strh r0, [r5, 0x2E]
- ldrh r0, [r2, 0x4]
- subs r1, r0
- b _0815F1DE
- .pool
-_0815F1D0:
- ldr r2, =gBattleAnimArgs
- ldrh r1, [r5, 0x20]
- ldrh r0, [r2]
- adds r0, r1, r0
- strh r0, [r5, 0x2E]
- ldrh r0, [r2, 0x4]
- adds r1, r0
-_0815F1DE:
- strh r1, [r5, 0x32]
- adds r3, r2, 0
- ldrh r1, [r5, 0x22]
- ldrh r2, [r3, 0x2]
- adds r2, r1, r2
- strh r2, [r5, 0x30]
- ldrh r0, [r3, 0x6]
- adds r1, r0
- strh r1, [r5, 0x34]
- ldrh r0, [r3, 0x8]
- strh r0, [r5, 0x36]
- ldrh r0, [r5, 0x2E]
- strh r0, [r5, 0x20]
- strh r2, [r5, 0x22]
- ldr r0, =sub_815F10C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815F18C
-
- thumb_func_start sub_815F20C
-sub_815F20C: @ 815F20C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r5, r0, 24
- adds r2, r5, 0
- ldr r0, =gTasks
- mov r9, r0
- lsls r7, r6, 2
- adds r0, r7, r6
- lsls r0, 3
- mov r8, r0
- mov r4, r8
- add r4, r9
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815F254
- adds r0, r5, 0
- movs r1, 0
- bl sub_80A7270
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- b _0815F2A0
- .pool
-_0815F254:
- cmp r0, 0x1
- bne _0815F2AC
- ldrh r0, [r4, 0xA]
- adds r0, 0x60
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- subs r0, 0xD
- strh r0, [r4, 0xC]
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- movs r0, 0xC
- ldrsh r2, [r4, r0]
- adds r0, r5, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _0815F310
- movs r0, 0
- strh r0, [r4, 0xE]
- adds r0, r5, 0
- bl sub_80A7344
- ldr r1, =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]
-_0815F2A0:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815F310
- .pool
-_0815F2AC:
- ldr r4, =gAnimationBankAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl refresh_graphics_maybe
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- beq _0815F2EE
- ldr r3, =gSprites
- ldr r2, =gBankSpriteIds
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x10
- adds r0, r1
- ldr r1, =gUnknown_082FF6C0
- str r1, [r0]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- bl StartSpriteAffineAnim
-_0815F2EE:
- mov r4, r9
- adds r3, r7, 0
- ldr r5, =sub_815F330
- movs r1, 0xF
- mov r2, r8
- adds r0, r4, r2
- adds r0, 0x26
- movs r2, 0
-_0815F2FE:
- strh r2, [r0]
- subs r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _0815F2FE
- adds r0, r3, r6
- lsls r0, 3
- adds r0, r4
- str r5, [r0]
-_0815F310:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815F20C
-
- thumb_func_start sub_815F330
-sub_815F330: @ 815F330
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _0815F394
- cmp r5, 0x1
- bgt _0815F360
- cmp r5, 0
- beq _0815F36A
- b _0815F482
- .pool
-_0815F360:
- cmp r5, 0x2
- beq _0815F400
- cmp r5, 0x3
- beq _0815F43C
- b _0815F482
-_0815F36A:
- ldr r0, =gSprites
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldr r0, =0x0000ff38
- strh r0, [r1, 0x26]
- movs r0, 0xC8
- strh r0, [r1, 0x24]
- adds r1, 0x3E
- ldrb r2, [r1]
- subs r0, 0xCD
- ands r0, r2
- strb r0, [r1]
- strh r5, [r4, 0x1C]
- b _0815F42E
- .pool
-_0815F394:
- ldrh r1, [r4, 0x1C]
- adds r1, 0x70
- movs r5, 0
- strh r1, [r4, 0x1C]
- ldr r2, =gSprites
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- adds r2, r0, r2
- lsls r1, 16
- asrs r1, 24
- ldrh r3, [r2, 0x26]
- adds r1, r3
- strh r1, [r2, 0x26]
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- blt _0815F3C4
- strh r5, [r2, 0x24]
-_0815F3C4:
- movs r1, 0x26
- ldrsh r0, [r2, r1]
- cmp r0, 0
- ble _0815F3CE
- strh r5, [r2, 0x26]
-_0815F3CE:
- movs r3, 0x26
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _0815F482
- movs r0, 0x40
- negs r0, r0
- bl sub_80A5178
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7D
- bl PlaySE12WithPanning
- ldr r1, =0xfffff800
- adds r0, r1, 0
- ldrh r2, [r4, 0x1C]
- adds r0, r2
- strh r0, [r4, 0x1C]
- b _0815F42E
- .pool
-_0815F400:
- ldrh r0, [r4, 0x1C]
- subs r0, 0x70
- strh r0, [r4, 0x1C]
- lsls r0, 16
- cmp r0, 0
- bge _0815F410
- movs r0, 0
- strh r0, [r4, 0x1C]
-_0815F410:
- ldr r0, =gSprites
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r4, 0x1C]
- lsls r2, 16
- asrs r2, 24
- ldrh r0, [r1, 0x26]
- subs r0, r2
- strh r0, [r1, 0x26]
- movs r3, 0x1C
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _0815F482
-_0815F42E:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815F482
- .pool
-_0815F43C:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x70
- strh r0, [r4, 0x1C]
- ldr r2, =gSprites
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r2
- lsls r0, 16
- asrs r0, 24
- ldrh r2, [r1, 0x26]
- adds r0, r2
- strh r0, [r1, 0x26]
- lsls r0, 16
- cmp r0, 0
- ble _0815F460
- movs r0, 0
- strh r0, [r1, 0x26]
-_0815F460:
- movs r3, 0x26
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _0815F482
- movs r0, 0x40
- negs r0, r0
- bl sub_80A5178
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7D
- bl PlaySE12WithPanning
- adds r0, r6, 0
- bl move_anim_task_del
-_0815F482:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815F330
-
- thumb_func_start sub_815F48C
-sub_815F48C: @ 815F48C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gAnimationBankTarget
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0815F4B8
- ldrb r0, [r4]
- bl sub_80A82E4
- subs r0, 0x2
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldr r4, =0x0000ff70
- b _0815F4C8
- .pool
-_0815F4B8:
- ldrb r0, [r4]
- bl sub_80A82E4
- adds r0, 0x2
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldr r4, =0x0000ffa0
-_0815F4C8:
- ldr r0, =gAnimationBankTarget
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- strh r4, [r5, 0x26]
- ldr r0, =sub_815F4F0
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815F48C
-
- thumb_func_start sub_815F4F0
-sub_815F4F0: @ 815F4F0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _0815F4FE
- b _0815F61A
-_0815F4FE:
- lsls r0, 2
- ldr r1, =_0815F50C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815F50C:
- .4byte _0815F520
- .4byte _0815F544
- .4byte _0815F584
- .4byte _0815F5B4
- .4byte _0815F5E0
-_0815F520:
- ldrh r0, [r4, 0x26]
- adds r0, 0xA
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- blt _0815F61A
- movs r0, 0x3F
- bl sub_80A5178
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xCD
- bl PlaySE12WithPanning
- movs r0, 0
- strh r0, [r4, 0x26]
- b _0815F5D8
-_0815F544:
- ldrh r1, [r4, 0x30]
- adds r1, 0x4
- movs r5, 0
- strh r1, [r4, 0x30]
- ldr r2, =gSineTable
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- negs r0, r0
- strh r0, [r4, 0x26]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _0815F61A
- movs r0, 0x3F
- bl sub_80A5178
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xCD
- bl PlaySE12WithPanning
- strh r5, [r4, 0x30]
- strh r5, [r4, 0x26]
- b _0815F5D8
- .pool
-_0815F584:
- ldrh r1, [r4, 0x30]
- adds r1, 0x6
- movs r3, 0
- strh r1, [r4, 0x30]
- ldr r2, =gSineTable
- movs r5, 0x30
- ldrsh r0, [r4, r5]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 20
- negs r0, r0
- strh r0, [r4, 0x26]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _0815F61A
- strh r3, [r4, 0x30]
- strh r3, [r4, 0x26]
- b _0815F5D8
- .pool
-_0815F5B4:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _0815F61A
- movs r0, 0x3F
- bl sub_80A5178
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xC0
- bl PlaySE12WithPanning
- movs r0, 0
- strh r0, [r4, 0x30]
-_0815F5D8:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0815F61A
-_0815F5E0:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _0815F61A
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- adds r1, 0x1
- strh r1, [r4, 0x32]
- movs r0, 0x1
- ands r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- lsls r1, 2
- ldrb r2, [r3]
- subs r0, 0x6
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bne _0815F61A
- adds r0, r4, 0
- bl move_anim_8072740
-_0815F61A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815F4F0
-
- thumb_func_start sub_815F620
-sub_815F620: @ 815F620
- 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
- bl sub_80A4DF0
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- bne _0815F66E
- movs r0, 0x1
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- lsrs r1, r0, 16
- mov r10, r1
- asrs r6, r0, 16
- cmp r6, 0
- blt _0815F66E
- movs r0, 0x1
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- lsrs r1, r0, 16
- mov r9, r1
- asrs r1, r0, 16
- cmp r1, 0
- bge _0815F67C
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl obj_delete_but_dont_free_vram
-_0815F66E:
- mov r0, r8
- bl move_anim_task_del
- b _0815F780
- .pool
-_0815F67C:
- ldr r4, =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r5, r0, r4
- ldrh r0, [r5, 0x24]
- adds r0, 0x18
- strh r0, [r5, 0x24]
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r6, r0, r4
- ldrh r0, [r6, 0x24]
- subs r0, 0x18
- strh r0, [r6, 0x24]
- strh r7, [r5, 0x2E]
- strh r7, [r6, 0x2E]
- strh r7, [r5, 0x30]
- strh r7, [r6, 0x30]
- strh r7, [r5, 0x32]
- strh r7, [r6, 0x32]
- movs r0, 0x10
- strh r0, [r5, 0x34]
- ldr r0, =0x0000fff0
- strh r0, [r6, 0x34]
- strh r7, [r5, 0x36]
- movs r0, 0x80
- strh r0, [r6, 0x36]
- movs r0, 0x18
- strh r0, [r5, 0x38]
- strh r0, [r6, 0x38]
- mov r0, r8
- strh r0, [r5, 0x3A]
- strh r0, [r6, 0x3A]
- strh r7, [r5, 0x3C]
- strh r7, [r6, 0x3C]
- ldr r2, =gTasks
- mov r1, r8
- lsls r3, r1, 2
- adds r0, r3, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0, 0x8]
- ldr r0, =gUnknown_020244D0
- ldr r1, [r0]
- ldr r0, =gAnimationBankTarget
- ldrb r0, [r0]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- adds r7, r4, 0
- mov r12, r3
- cmp r0, 0
- bne _0815F720
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r2, r6, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- b _0815F736
- .pool
-_0815F720:
- adds r1, r5, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- adds r1, r6, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- orrs r0, r2
- strb r0, [r1]
-_0815F736:
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r4, r2, r7
- ldrb r1, [r4, 0x1]
- movs r3, 0xD
- negs r3, r3
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r4, 0x1]
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r4, r1, r7
- ldrb r0, [r4, 0x1]
- ands r3, r0
- strb r3, [r4, 0x1]
- adds r3, r7, 0
- adds r3, 0x1C
- adds r2, r3
- ldr r0, =sub_815F7C4
- str r0, [r2]
- adds r1, r3
- str r0, [r1]
- mov r0, r12
- add r0, r8
- lsls r0, 3
- ldr r1, =gTasks
- adds r0, r1
- ldr r1, =sub_815F79C
- str r1, [r0]
-_0815F780:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815F620
-
- thumb_func_start sub_815F79C
-sub_815F79C: @ 815F79C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0815F7BA
- adds r0, r2, 0
- bl move_anim_task_del
-_0815F7BA:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815F79C
-
- thumb_func_start sub_815F7C4
-sub_815F7C4: @ 815F7C4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815F80E
- movs r0, 0
- strh r0, [r4, 0x30]
- ldr r0, =gUnknown_020244D0
- ldr r1, [r0]
- ldr r0, =gAnimationBankTarget
- ldrb r0, [r0]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0815F80E
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r1, r2, 29
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_0815F80E:
- ldrh r0, [r4, 0x34]
- ldrh r1, [r4, 0x36]
- adds r0, r1
- movs r5, 0
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x36]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0815F840
- cmp r0, 0x1
- beq _0815F858
- b _0815F896
- .pool
-_0815F840:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- bne _0815F896
- strh r5, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0815F896
-_0815F858:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- cmp r0, 0
- ble _0815F896
- strh r5, [r4, 0x32]
- ldrh r0, [r4, 0x38]
- subs r0, 0x2
- strh r0, [r4, 0x38]
- lsls r0, 16
- cmp r0, 0
- bge _0815F896
- ldr r3, =gTasks
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl obj_delete_but_dont_free_vram
-_0815F896:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815F7C4
-
- thumb_func_start sub_815F8A0
-sub_815F8A0: @ 815F8A0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, =gBattleAnimArgs
- movs r2, 0
- strh r2, [r3, 0xE]
- ldr r1, =gHappinessMoveAnim
- ldrb r0, [r1]
- ldrb r1, [r1]
- adds r0, r1, 0
- subs r0, 0x3D
- lsls r0, 24
- lsrs r0, 24
- adds r2, r1, 0
- cmp r0, 0x1E
- bhi _0815F8C4
- movs r0, 0x1
- strh r0, [r3, 0xE]
-_0815F8C4:
- adds r0, r2, 0
- subs r0, 0x5C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6C
- bhi _0815F8D4
- movs r0, 0x2
- strh r0, [r3, 0xE]
-_0815F8D4:
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0xC8
- bls _0815F8E0
- movs r0, 0x3
- strh r0, [r3, 0xE]
-_0815F8E0:
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815F8A0
-
- thumb_func_start sub_815F8F4
-sub_815F8F4: @ 815F8F4
- 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
- mov r8, r0
- ldr r1, =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- bls _0815F91A
- b _0815FE68
-_0815F91A:
- lsls r0, 2
- ldr r1, =_0815F92C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815F92C:
- .4byte _0815F940
- .4byte _0815F9F4
- .4byte _0815FBE8
- .4byte _0815FD08
- .4byte _0815FD8C
-_0815F940:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, =gTasks
- mov r2, r8
- lsls r4, r2, 2
- adds r0, r4, r2
- lsls r0, 3
- adds r6, r0, r1
- movs r3, 0x80
- lsls r3, 4
- adds r0, r3, 0
- ldrh r1, [r6, 0xA]
- adds r0, r1
- strh r0, [r6, 0xA]
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- mov r9, r4
- cmp r0, 0
- bne _0815F998
- ldr r2, =gSprites
- lsls r3, r7, 4
- adds r1, r3, r7
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 24
- ldrh r4, [r1, 0x24]
- adds r0, r4
- strh r0, [r1, 0x24]
- b _0815F9B2
- .pool
-_0815F998:
- ldr r3, =gSprites
- lsls r4, r7, 4
- adds r2, r4, r7
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r6, 0xA]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- adds r2, r3, 0
- adds r3, r4, 0
-_0815F9B2:
- ldr r1, =gTasks
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r4, r0, r1
- ldrb r0, [r4, 0xA]
- strh r0, [r4, 0xA]
- adds r1, r3, r7
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x24]
- ldrh r1, [r1, 0x20]
- adds r0, r1
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 14
- adds r0, r1
- movs r1, 0x98
- lsls r1, 17
- cmp r0, r1
- bhi _0815F9DE
- b _0815FE68
-_0815F9DE:
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815FE68
- .pool
-_0815F9F4:
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- beq _0815FA28
- ldr r0, =gUnknown_02039F34
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- ldr r2, [r0, 0x8]
- mov r10, r2
- ldr r3, [r0, 0xC]
- mov r9, r3
- ldrh r6, [r0]
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl sub_80A82E4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r7, 0
- b _0815FB4E
- .pool
-_0815FA28:
- ldr r4, =gAnimationBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0815FAC8
- ldr r7, =gBattlePartyID
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, =gPlayerParty
- adds r0, r5
- movs r1, 0
- bl GetMonData
- mov r10, r0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0x1
- bl GetMonData
- mov r9, r0
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldrb r2, [r4]
- ldr r1, [r0]
- lsls r0, r2, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _0815FA9C
- lsls r0, r2, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- b _0815FA9E
- .pool
-_0815FA9C:
- ldrh r6, [r1, 0x2]
-_0815FA9E:
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- ldr r2, =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- movs r7, 0
- movs r5, 0x88
- lsls r5, 1
- b _0815FB50
- .pool
-_0815FAC8:
- ldr r7, =gBattlePartyID
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, =gEnemyParty
- adds r0, r5
- movs r1, 0
- bl GetMonData
- mov r10, r0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0x1
- bl GetMonData
- mov r9, r0
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldrb r2, [r4]
- ldr r1, [r0]
- lsls r0, r2, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _0815FB2C
- lsls r0, r2, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- b _0815FB2E
- .pool
-_0815FB2C:
- ldrh r6, [r1, 0x2]
-_0815FB2E:
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- ldr r2, =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- movs r7, 0x1
-_0815FB4E:
- ldr r5, =0x0000ffe0
-_0815FB50:
- ldr r0, =gAnimationBankTarget
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r5, 16
- asrs r3, 16
- str r0, [sp]
- str r4, [sp, 0x4]
- mov r4, r10
- str r4, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- ldr r4, =gAnimationBankAttacker
- ldrb r0, [r4]
- str r0, [sp, 0x10]
- movs r0, 0
- str r0, [sp, 0x14]
- adds r0, r6, 0
- adds r1, r7, 0
- movs r2, 0
- bl sub_80A8394
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gUnknown_020244D0
- ldr r1, [r0]
- ldrb r0, [r4]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- beq _0815FBBA
- ldr r1, =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- orrs r0, r1
- ldr r3, =0x00007fff
- movs r1, 0x10
- movs r2, 0x6
- bl BlendPalette
-_0815FBBA:
- ldr r0, =gTasks
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- strh r5, [r1, 0x26]
- b _0815FD7E
- .pool
-_0815FBE8:
- ldr r1, =gTasks
- mov r0, r8
- lsls r4, r0, 2
- adds r0, r4, r0
- lsls r0, 3
- adds r6, r0, r1
- ldrh r0, [r6, 0x26]
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x80
- lsls r1, 4
- adds r0, r1, 0
- ldrh r2, [r6, 0xA]
- adds r0, r2
- strh r0, [r6, 0xA]
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- mov r9, r4
- cmp r0, 0
- bne _0815FC40
- ldr r3, =gSprites
- lsls r4, r5, 4
- adds r2, r4, r5
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r6, 0xA]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- adds r2, r3, 0
- adds r3, r4, 0
- b _0815FC56
- .pool
-_0815FC40:
- ldr r2, =gSprites
- lsls r3, r5, 4
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 24
- ldrh r4, [r1, 0x24]
- adds r0, r4
- strh r0, [r1, 0x24]
-_0815FC56:
- ldr r1, =gTasks
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r6, r0, r1
- ldrb r0, [r6, 0xA]
- strh r0, [r6, 0xA]
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x24]
- ldrh r1, [r1, 0x20]
- adds r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- movs r1, 0x24
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0815FCD6
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0815FCB4
- lsls r4, r5, 16
- asrs r4, 16
- ldr r0, =gAnimationBankTarget
- ldrb r0, [r0]
- movs r1, 0
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bge _0815FCD6
- b _0815FCCA
- .pool
-_0815FCB4:
- lsls r4, r5, 16
- asrs r4, 16
- ldr r0, =gAnimationBankTarget
- ldrb r0, [r0]
- movs r1, 0
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- ble _0815FCD6
-_0815FCCA:
- ldrh r0, [r6, 0x24]
- adds r0, 0x1
- strh r0, [r6, 0x24]
- ldr r1, =gBattleAnimArgs
- ldr r0, =0x0000ffff
- strh r0, [r1, 0xE]
-_0815FCD6:
- lsls r0, r5, 16
- movs r2, 0x80
- lsls r2, 14
- adds r0, r2
- movs r1, 0x98
- lsls r1, 17
- cmp r0, r1
- bhi _0815FCE8
- b _0815FE68
-_0815FCE8:
- ldr r0, =gTasks
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0xA]
- b _0815FD7E
- .pool
-_0815FD08:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, =gTasks
- mov r3, r8
- lsls r4, r3, 2
- adds r0, r4, r3
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x26]
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r5, =gSprites
- adds r0, r5
- bl sub_80A8610
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- mov r9, r4
- cmp r0, 0
- bne _0815FD60
- lsls r1, r7, 4
- adds r1, r7
- lsls r1, 2
- adds r1, r5
- ldrh r0, [r1, 0x20]
- negs r0, r0
- subs r0, 0x20
- strh r0, [r1, 0x24]
- b _0815FD74
- .pool
-_0815FD60:
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r0, r5
- ldrh r2, [r0, 0x20]
- movs r4, 0x88
- lsls r4, 1
- adds r1, r4, 0
- subs r1, r2
- strh r1, [r0, 0x24]
-_0815FD74:
- ldr r0, =gTasks
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
-_0815FD7E:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0815FE68
- .pool
-_0815FD8C:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, =gTasks
- mov r0, r8
- lsls r4, r0, 2
- adds r0, r4, r0
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0x80
- lsls r1, 4
- adds r0, r1, 0
- ldrh r3, [r2, 0xA]
- adds r0, r3
- strh r0, [r2, 0xA]
- ldr r0, =gAnimationBankAttacker
- mov r10, r0
- ldrb r0, [r0]
- str r2, [sp, 0x18]
- bl GetBankSide
- lsls r0, 24
- mov r9, r4
- ldr r2, [sp, 0x18]
- cmp r0, 0
- bne _0815FE0C
- ldr r1, =gSprites
- lsls r5, r7, 4
- adds r0, r5, r7
- lsls r0, 2
- adds r6, r0, r1
- ldrh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r6, 0x24]
- adds r0, r1
- strh r0, [r6, 0x24]
- movs r2, 0x24
- ldrsh r4, [r6, r2]
- movs r3, 0x20
- ldrsh r0, [r6, r3]
- adds r4, r0
- mov r1, r10
- ldrb r0, [r1]
- movs r1, 0
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- adds r3, r5, 0
- cmp r4, r0
- blt _0815FE44
- movs r2, 0
- strh r2, [r6, 0x24]
- b _0815FE44
- .pool
-_0815FE0C:
- ldr r1, =gSprites
- lsls r5, r7, 4
- adds r0, r5, r7
- lsls r0, 2
- adds r6, r0, r1
- ldrh r1, [r2, 0xA]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r6, 0x24]
- subs r0, r1
- strh r0, [r6, 0x24]
- movs r3, 0x24
- ldrsh r4, [r6, r3]
- movs r1, 0x20
- ldrsh r0, [r6, r1]
- adds r4, r0
- mov r2, r10
- ldrb r0, [r2]
- movs r1, 0
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- adds r3, r5, 0
- cmp r4, r0
- bgt _0815FE44
- movs r4, 0
- strh r4, [r6, 0x24]
-_0815FE44:
- ldr r1, =gTasks
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xA]
- strh r1, [r0, 0xA]
- ldr r1, =gSprites
- adds r0, r3, r7
- lsls r0, 2
- adds r0, r1
- movs r1, 0x24
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0815FE68
- mov r0, r8
- bl move_anim_task_del
-_0815FE68:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815F8F4
-
- thumb_func_start sub_815FE80
-sub_815FE80: @ 815FE80
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0815FE92
- cmp r0, 0x1
- beq _0815FF3A
- b _0815FFBC
-_0815FE92:
- ldr r0, =gBattleAnimArgs
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0815FF2C
- movs r0, 0x3F
- bl sub_80A5178
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7A
- bl PlaySE12WithPanning
- ldr r0, =gAnimationBankTarget
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- strh r0, [r4, 0x22]
- ldr r0, =0x0000ffe0
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815FFBC
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- bne _0815FFBC
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- ldr r2, =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- b _0815FFBC
- .pool
-_0815FF2C:
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0815FFBC
-_0815FF3A:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x30]
- adds r0, r2, 0x5
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7F
- ble _0815FF6E
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- adds r0, r2, 0
- subs r0, 0x7A
- strh r0, [r4, 0x30]
-_0815FF6E:
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0815FF9C
- ldrh r2, [r4, 0x32]
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x24]
- subs r0, r1
- strh r0, [r4, 0x24]
- adds r1, r2, 0
- b _0815FFA8
- .pool
-_0815FF9C:
- ldrh r1, [r4, 0x32]
- lsls r0, r1, 16
- asrs r0, 24
- ldrh r2, [r4, 0x24]
- adds r0, r2
- strh r0, [r4, 0x24]
-_0815FFA8:
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x2
- bne _0815FFBC
- adds r0, r4, 0
- bl move_anim_8072740
-_0815FFBC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_815FE80
-
- thumb_func_start sub_815FFC4
-sub_815FFC4: @ 815FFC4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x26
- ldrsh r0, [r0, r2]
- adds r3, r1, 0
- cmp r0, 0x4
- bls _0815FFE0
- b _08160132
-_0815FFE0:
- lsls r0, 2
- ldr r1, =_0815FFF4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815FFF4:
- .4byte _08160008
- .4byte _08160058
- .4byte _081600B4
- .4byte _081600CC
- .4byte _08160132
-_08160008:
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- movs r1, 0
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r0, =gAnimationBankTarget
- ldrb r0, [r0]
- movs r1, 0
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- movs r0, 0x6
- strh r0, [r1, 0x8]
- cmp r5, r2
- ble _0816003E
- negs r0, r0
- strh r0, [r1, 0x8]
-_0816003E:
- strh r5, [r1, 0xA]
- strh r2, [r1, 0xC]
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08160150
- .pool
-_08160058:
- ldr r1, =gBankSpriteIds
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r3
- ldrh r0, [r2, 0x8]
- ldrh r3, [r1, 0x24]
- adds r0, r3
- strh r0, [r1, 0x24]
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _081600A0
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x24
- ldrsh r1, [r1, r3]
- adds r0, r1
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- b _08160126
- .pool
-_081600A0:
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x24
- ldrsh r1, [r1, r3]
- adds r0, r1
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bgt _08160150
- b _0816012A
-_081600B4:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- negs r1, r1
- strh r1, [r0, 0x8]
- ldrh r1, [r0, 0x26]
- adds r1, 0x1
- strh r1, [r0, 0x26]
- b _08160150
-_081600CC:
- ldr r1, =gBankSpriteIds
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r3
- ldrh r0, [r2, 0x8]
- ldrh r3, [r1, 0x24]
- adds r0, r3
- strh r0, [r1, 0x24]
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bge _08160118
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x24
- ldrsh r1, [r1, r3]
- adds r0, r1
- movs r3, 0xA
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bgt _08160150
- b _0816012A
- .pool
-_08160118:
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x24
- ldrsh r1, [r1, r3]
- adds r0, r1
- movs r3, 0xA
- ldrsh r1, [r2, r3]
-_08160126:
- cmp r0, r1
- blt _08160150
-_0816012A:
- ldrh r0, [r2, 0x26]
- adds r0, 0x1
- strh r0, [r2, 0x26]
- b _08160150
-_08160132:
- ldr r1, =gBankSpriteIds
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x24]
- adds r0, r4, 0
- bl move_anim_task_del
-_08160150:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815FFC4
-
- thumb_func_start sub_8160164
-sub_8160164: @ 8160164
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r4, r1, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0xE]
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _08160198
- movs r1, 0x1
-_08160198:
- strh r1, [r4, 0x10]
- ldr r2, =gSprites
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x14]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x12]
- strh r5, [r4, 0x1A]
- strh r5, [r4, 0x1E]
- movs r0, 0x1
- strh r0, [r4, 0x1C]
- strh r5, [r4, 0x20]
- ldr r0, =sub_81601DC
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8160164
-
- thumb_func_start sub_81601DC
-sub_81601DC: @ 81601DC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08160284
- cmp r0, 0x1
- bgt _08160204
- cmp r0, 0
- beq _0816020A
- b _081602DA
- .pool
-_08160204:
- cmp r0, 0x2
- beq _081602D4
- b _081602DA
-_0816020A:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x8
- movs r2, 0xFF
- ands r0, r2
- strh r0, [r4, 0x1E]
- ldr r5, =gSprites
- movs r6, 0xE
- ldrsh r0, [r4, r6]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldr r3, =gSineTable
- movs r6, 0x1E
- ldrsh r0, [r4, r6]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x2
- ands r0, r2
- strh r0, [r4, 0x1A]
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- movs r6, 0x1A
- ldrsh r0, [r4, r6]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- ldrh r1, [r4, 0x10]
- muls r0, r1
- ldrh r1, [r4, 0x12]
- adds r0, r1
- strh r0, [r2, 0x20]
- movs r6, 0x1A
- ldrsh r0, [r4, r6]
- cmp r0, 0
- bne _081602DA
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r4, 0x12]
- strh r1, [r0, 0x20]
- b _081602C4
- .pool
-_08160284:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x1E]
- ldr r3, =gSprites
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldr r2, =gSineTable
- movs r5, 0x1E
- ldrsh r0, [r4, r5]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- strh r0, [r1, 0x24]
- movs r6, 0x1E
- ldrsh r2, [r4, r6]
- cmp r2, 0
- bne _081602DA
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- strh r2, [r1, 0x24]
-_081602C4:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _081602DA
- .pool
-_081602D4:
- adds r0, r2, 0
- bl move_anim_task_del
-_081602DA:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81601DC
-
- thumb_func_start sub_81602E0
-sub_81602E0: @ 81602E0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gAnimationBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- ldrh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x30]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08160326
- adds r0, r4, 0
- bl move_anim_8072740
-_08160326:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81602E0
-
- thumb_func_start sub_8160338
-sub_8160338: @ 8160338
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gAnimationBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0816037C
- ldr r2, =gBattleAnimArgs
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, =0x0000fff5
- strh r0, [r4, 0x2E]
- movs r0, 0xC0
- strh r0, [r4, 0x30]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _08160396
- .pool
-_0816037C:
- movs r0, 0xB
- strh r0, [r4, 0x2E]
- movs r0, 0xC0
- strh r0, [r4, 0x30]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_08160396:
- ldr r0, =sub_81602E0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8160338
-
- thumb_func_start sub_81603A8
-sub_81603A8: @ 81603A8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gAnimationBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_80A5C6C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_80A861C
- strh r0, [r5, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _081603D2
- movs r0, 0x10
- strh r0, [r5, 0x22]
-_081603D2:
- movs r0, 0
- strh r0, [r5, 0x3A]
- movs r1, 0x10
- strh r1, [r5, 0x3C]
- ldr r0, =sub_81603F4
- str r0, [r5, 0x1C]
- lsls r1, 8
- movs r0, 0x52
- bl SetGpuReg
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81603A8
-
- thumb_func_start sub_81603F4
-sub_81603F4: @ 81603F4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _0816046C
- cmp r1, 0x1
- bgt _0816040A
- cmp r1, 0
- beq _08160414
- b _081604E8
-_0816040A:
- cmp r1, 0x2
- beq _08160482
- cmp r1, 0x3
- beq _081604E2
- b _081604E8
-_08160414:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081604E8
- strh r1, [r4, 0x2E]
- ldrh r1, [r4, 0x30]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0816043E
- ldrh r2, [r4, 0x3A]
- movs r3, 0x3A
- ldrsh r0, [r4, r3]
- cmp r0, 0xF
- bgt _0816044C
- adds r0, r2, 0x1
- strh r0, [r4, 0x3A]
- b _0816044C
-_0816043E:
- ldrh r2, [r4, 0x3C]
- movs r3, 0x3C
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0816044C
- subs r0, r2, 0x1
- strh r0, [r4, 0x3C]
-_0816044C:
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x3C]
- lsls r1, 8
- ldrh r0, [r4, 0x3A]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081604E8
- b _081604DA
-_0816046C:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _081604E8
- strh r1, [r4, 0x2E]
- strh r1, [r4, 0x30]
- b _081604DA
-_08160482:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081604E8
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x30]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081604AE
- ldrh r2, [r4, 0x3A]
- movs r3, 0x3A
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _081604BC
- subs r0, r2, 0x1
- strh r0, [r4, 0x3A]
- b _081604BC
-_081604AE:
- ldrh r2, [r4, 0x3C]
- movs r3, 0x3C
- ldrsh r0, [r4, r3]
- cmp r0, 0xF
- bgt _081604BC
- adds r0, r2, 0x1
- strh r0, [r4, 0x3C]
-_081604BC:
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x3C]
- lsls r1, 8
- ldrh r0, [r4, 0x3A]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _081604E8
-_081604DA:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- b _081604E8
-_081604E2:
- adds r0, r4, 0
- bl move_anim_8074EE0
-_081604E8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81603F4
-
- thumb_func_start sub_81604F0
-sub_81604F0: @ 81604F0
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, =gBattleAnimArgs
- movs r0, 0
- strh r0, [r2, 0xE]
- ldr r0, =gWeatherMoveAnim
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08160514
- movs r0, 0x1
- b _08160536
- .pool
-_08160514:
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08160520
- movs r0, 0x2
- b _08160536
-_08160520:
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _0816052C
- movs r0, 0x3
- b _08160536
-_0816052C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08160538
- movs r0, 0x4
-_08160536:
- strh r0, [r2, 0xE]
-_08160538:
- adds r0, r3, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- thumb_func_end sub_81604F0
-
- thumb_func_start sub_8160544
-sub_8160544: @ 8160544
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, =gBattleAnimArgs
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x26]
- ldr r2, =gUnknown_085CE9C8
- adds r0, r4, 0
- bl sub_80A7CFC
- ldr r0, =sub_816058C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8160544
-
- thumb_func_start sub_816058C
-sub_816058C: @ 816058C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r2, =gTasks
- adds r3, r0, r2
- ldrh r0, [r3, 0x8]
- adds r1, r0, 0x1
- movs r5, 0
- strh r1, [r3, 0x8]
- subs r0, 0x10
- lsls r0, 16
- lsrs r0, 16
- adds r6, r2, 0
- cmp r0, 0x16
- bhi _081605F0
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _08160600
- strh r5, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- movs r5, 0x1
- ands r0, r5
- cmp r0, 0
- bne _081605F0
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, =0x0000ffff
- strh r1, [r0, 0x24]
- b _08160600
- .pool
-_081605F0:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
-_08160600:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r6
- bl sub_80A7D34
- lsls r0, 24
- cmp r0, 0
- bne _08160618
- adds r0, r4, 0
- bl move_anim_task_del
-_08160618:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_816058C
-
- thumb_func_start sub_8160624
-sub_8160624: @ 8160624
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8160624
-
- thumb_func_start sub_8160638
-sub_8160638: @ 8160638
- push {lr}
- sub sp, 0x4
- bl script_env_2_enable
- ldr r0, =sub_8160664
- movs r1, 0xA
- bl CreateTask
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8160638
-
- thumb_func_start sub_8160664
-sub_8160664: @ 8160664
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08160688
- ldr r0, =sub_81606A0
- bl SetMainCallback2
- ldr r1, =gUnknown_03005DAC
- ldr r0, =sub_80AF168
- str r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_08160688:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8160664
-
- thumb_func_start sub_81606A0
-sub_81606A0: @ 81606A0
- push {r4-r6,lr}
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- bl clear_scheduled_bg_copies_to_vram
- ldr r6, =gUnknown_0203BC34
- movs r0, 0x8C
- lsls r0, 1
- bl AllocZeroed
- str r0, [r6]
- ldr r1, =gSpecialVar_0x8004
- ldrh r1, [r1]
- adds r0, 0x44
- movs r5, 0
- strb r1, [r0]
- ldr r0, =sub_8160624
- bl SetVBlankCallback
- bl sub_81607EC
- movs r0, 0
- bl sub_81D2824
- ldr r4, =gUnknown_0203BC38
- movs r0, 0
- strh r5, [r4]
- strh r5, [r4, 0x2]
- strb r0, [r4, 0x4]
- bl sub_8161280
- ldr r0, =gUnknown_085CEBB0
- bl LoadSpriteSheet
- ldr r0, =gUnknown_085CEBB8
- bl LoadSpritePalette
- bl sub_81610B8
- ldr r0, =gUnknown_03006310
- ldrh r1, [r4]
- ldrh r2, [r4, 0x2]
- bl ListMenuInit
- ldr r1, [r6]
- movs r2, 0x89
- lsls r2, 1
- adds r1, r2
- strb r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- bl FillPalette
- ldr r0, =sub_816082C
- bl SetMainCallback2
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81606A0
-
- thumb_func_start sub_8160740
-sub_8160740: @ 8160740
- push {r4,r5,lr}
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- bl clear_scheduled_bg_copies_to_vram
- ldr r5, =gUnknown_0203BC34
- movs r0, 0x8C
- lsls r0, 1
- bl AllocZeroed
- str r0, [r5]
- movs r1, 0x1C
- strb r1, [r0]
- ldr r0, [r5]
- ldr r1, =gSpecialVar_0x8004
- ldrh r1, [r1]
- adds r0, 0x44
- strb r1, [r0]
- ldr r0, [r5]
- ldr r1, =gSpecialVar_0x8005
- ldrh r1, [r1]
- adds r0, 0x45
- strb r1, [r0]
- ldr r0, =sub_8160624
- bl SetVBlankCallback
- bl sub_81607EC
- ldr r4, =gUnknown_0203BC38
- ldrb r0, [r4, 0x4]
- bl sub_81D2824
- bl sub_8161280
- ldr r0, =gUnknown_085CEBB0
- bl LoadSpriteSheet
- ldr r0, =gUnknown_085CEBB8
- bl LoadSpritePalette
- bl sub_81610B8
- ldr r0, =gUnknown_03006310
- ldrh r1, [r4]
- ldrh r2, [r4, 0x2]
- bl ListMenuInit
- ldr r1, [r5]
- movs r2, 0x89
- lsls r2, 1
- adds r1, r2
- strb r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- bl FillPalette
- ldr r0, =sub_816082C
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8160740
-
- thumb_func_start sub_81607EC
-sub_81607EC: @ 81607EC
- push {lr}
- bl sub_8121DA0
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_085CEC28
- movs r0, 0
- movs r2, 0x2
- bl InitBgsFromTemplates
- bl sub_8121E10
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81607EC
-
- thumb_func_start sub_816082C
-sub_816082C: @ 816082C
- push {lr}
- bl sub_8160868
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl do_scheduled_bg_tilemap_copies_to_vram
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_816082C
-
- thumb_func_start sub_816084C
-sub_816084C: @ 816084C
- push {r4,lr}
- adds r1, r0, 0
- ldr r4, =gStringVar4
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- bl sub_81D2BF4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_816084C
-
- thumb_func_start sub_8160868
-sub_8160868: @ 8160868
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r1, =gUnknown_0203BC34
- ldr r0, [r1]
- ldrb r0, [r0]
- adds r7, r1, 0
- cmp r0, 0x21
- bls _0816087E
- b _08160E8A
-_0816087E:
- lsls r0, 2
- ldr r1, =_08160890
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08160890:
- .4byte _08160918
- .4byte _08160932
- .4byte _0816094C
- .4byte _08160954
- .4byte _0816095C
- .4byte _08160964
- .4byte _08160980
- .4byte _08160E8A
- .4byte _08160988
- .4byte _081609A8
- .4byte _08160E8A
- .4byte _08160E8A
- .4byte _08160A44
- .4byte _08160A64
- .4byte _08160CB8
- .4byte _08160CD8
- .4byte _08160AB8
- .4byte _08160AD0
- .4byte _08160AEC
- .4byte _08160C1C
- .4byte _08160C48
- .4byte _08160C98
- .4byte _08160CA6
- .4byte _08160E8A
- .4byte _08160B2C
- .4byte _08160B60
- .4byte _08160B80
- .4byte _08160BDC
- .4byte _08160CFC
- .4byte _08160D48
- .4byte _08160E0C
- .4byte _08160E38
- .4byte _08160E58
- .4byte _08160E70
-_08160918:
- ldr r1, [r7]
- ldrb r0, [r1]
- adds r0, 0x1
- movs r4, 0
- strb r0, [r1]
- movs r0, 0
- bl render_previous_quest_text
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- b _08160CAE
-_08160932:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08160940
- b _08160E8A
-_08160940:
- ldr r1, [r7]
- movs r0, 0x4
- b _08160E88
- .pool
-_0816094C:
- ldr r1, [r7]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08160E88
-_08160954:
- movs r0, 0
- bl render_previous_quest_text
- b _0816096A
-_0816095C:
- movs r0, 0
- bl sub_8160F50
- b _08160E8A
-_08160964:
- movs r0, 0
- bl sub_8161074
-_0816096A:
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl sub_81611AC
- b _08160E8A
- .pool
-_08160980:
- movs r0, 0x1
- bl sub_8160F50
- b _08160E8A
-_08160988:
- bl sub_81D2C3C
- lsls r0, 16
- cmp r0, 0
- beq _08160994
- b _08160E8A
-_08160994:
- bl sub_81D2C50
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08160E88
- .pool
-_081609A8:
- bl sub_8198C58
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _08160A0A
- ldr r5, =gUnknown_0203BC34
- ldr r0, [r5]
- adds r0, 0x44
- ldrb r1, [r0]
- movs r0, 0x64
- adds r4, r1, 0
- muls r4, r0
- ldr r0, =gPlayerParty
- adds r4, r0
- bl sub_8161054
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl pokemon_moveset_pad_
- lsls r0, 16
- ldr r1, =0xffff0000
- cmp r0, r1
- beq _08160A04
- ldr r0, =gUnknown_085EF8E4
- bl sub_816084C
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0x1
- strh r0, [r1]
- ldr r1, [r5]
- movs r0, 0x1F
- b _08160E88
- .pool
-_08160A04:
- ldr r1, [r5]
- movs r0, 0x10
- b _08160E88
-_08160A0A:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08160A18
- cmp r1, 0x1
- beq _08160A18
- b _08160E8A
-_08160A18:
- ldr r0, =gUnknown_0203BC38
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _08160A30
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- movs r0, 0x3
- b _08160E88
- .pool
-_08160A30:
- cmp r0, 0x1
- beq _08160A36
- b _08160E8A
-_08160A36:
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- movs r0, 0x5
- b _08160E88
- .pool
-_08160A44:
- bl sub_81D2C3C
- lsls r0, 16
- cmp r0, 0
- beq _08160A50
- b _08160E8A
-_08160A50:
- bl sub_81D2C50
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08160E88
- .pool
-_08160A64:
- bl sub_8198C58
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _08160A7C
- ldr r0, =gSpecialVar_0x8004
- strh r1, [r0]
- b _08160E82
- .pool
-_08160A7C:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08160A8A
- cmp r1, 0x1
- beq _08160A8A
- b _08160E8A
-_08160A8A:
- ldr r0, =gUnknown_0203BC38
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _08160AA4
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- movs r0, 0x3
- b _08160E88
- .pool
-_08160AA4:
- cmp r0, 0x1
- beq _08160AAA
- b _08160E8A
-_08160AAA:
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- movs r0, 0x5
- b _08160E88
- .pool
-_08160AB8:
- ldr r0, =gUnknown_085EF8F3
- bl sub_816084C
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08160E88
- .pool
-_08160AD0:
- bl sub_81D2C3C
- lsls r0, 16
- cmp r0, 0
- beq _08160ADC
- b _08160E8A
-_08160ADC:
- bl sub_81D2C50
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- movs r0, 0x12
- b _08160E88
- .pool
-_08160AEC:
- bl sub_8198C58
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _08160B10
- ldr r0, =gUnknown_085EFA10
- bl sub_816084C
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- movs r0, 0x13
- b _08160E88
- .pool
-_08160B10:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08160B1E
- cmp r1, 0x1
- beq _08160B1E
- b _08160E8A
-_08160B1E:
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- movs r0, 0x18
- b _08160E88
- .pool
-_08160B2C:
- ldr r4, =gStringVar2
- bl sub_8161054
- movs r1, 0xD
- muls r1, r0
- ldr r0, =gMoveNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- ldr r0, =gUnknown_085EF960
- bl sub_816084C
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08160E88
- .pool
-_08160B60:
- bl sub_81D2C3C
- lsls r0, 16
- cmp r0, 0
- beq _08160B6C
- b _08160E8A
-_08160B6C:
- bl sub_81D2C50
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08160E88
- .pool
-_08160B80:
- bl sub_8198C58
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _08160B98
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- movs r0, 0x1B
- b _08160E88
- .pool
-_08160B98:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08160BA6
- cmp r1, 0x1
- beq _08160BA6
- b _08160E8A
-_08160BA6:
- ldr r0, =gUnknown_0203BC38
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _08160BC4
- ldr r2, =gUnknown_0203BC34
- ldr r1, [r2]
- movs r0, 0x3
- strb r0, [r1]
- adds r7, r2, 0
- b _08160BD0
- .pool
-_08160BC4:
- ldr r7, =gUnknown_0203BC34
- cmp r0, 0x1
- bne _08160BD0
- ldr r1, [r7]
- movs r0, 0x5
- strb r0, [r1]
-_08160BD0:
- ldr r1, [r7]
- movs r0, 0x10
- b _08160E88
- .pool
-_08160BDC:
- bl sub_81D2C3C
- lsls r0, 16
- cmp r0, 0
- beq _08160BE8
- b _08160E8A
-_08160BE8:
- movs r0, 0x3
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r0, =gUnknown_0203BC38
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _08160C08
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- movs r0, 0x3
- b _08160E88
- .pool
-_08160C08:
- cmp r0, 0x1
- beq _08160C0E
- b _08160E8A
-_08160C0E:
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- movs r0, 0x5
- b _08160E88
- .pool
-_08160C1C:
- bl sub_81D2C3C
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08160C2A
- b _08160E8A
-_08160C2A:
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- movs r0, 0x14
- strb r0, [r1]
- subs r0, 0x15
- str r2, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _08160E8A
- .pool
-_08160C48:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08160C56
- b _08160E8A
-_08160C56:
- bl sub_8161054
- lsls r0, 16
- lsrs r0, 16
- ldr r4, =gPlayerParty
- ldr r1, =gUnknown_0203BC34
- ldr r1, [r1]
- adds r1, 0x44
- ldrb r1, [r1]
- ldr r2, =gPlayerPartyCount
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, =sub_8160740
- str r0, [sp]
- adds r0, r4, 0
- bl sub_81BFA38
- bl sub_8160EA0
- b _08160E8A
- .pool
-_08160C98:
- bl sub_81D2C3C
- lsls r0, 16
- cmp r0, 0
- beq _08160CA4
- b _08160E8A
-_08160CA4:
- b _08160E82
-_08160CA6:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
-_08160CAE:
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08160E8A
-_08160CB8:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08160E88
- .pool
-_08160CD8:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08160CE6
- b _08160E8A
-_08160CE6:
- bl sub_8160EA0
- ldr r0, =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- b _08160E8A
- .pool
-_08160CFC:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, =gUnknown_0203BC38
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _08160D30
- movs r0, 0x1
- bl render_previous_quest_text
- b _08160D3A
- .pool
-_08160D30:
- cmp r0, 0x1
- bne _08160D3A
- movs r0, 0x1
- bl sub_8161074
-_08160D3A:
- bl sub_8161234
- movs r0, 0x3
- movs r1, 0x2
- bl CopyWindowToVram
- b _08160E8A
-_08160D48:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08160D56
- b _08160E8A
-_08160D56:
- ldr r1, [r7]
- adds r2, r1, 0
- adds r2, 0x45
- ldrb r0, [r2]
- cmp r0, 0x4
- bne _08160D6C
- movs r0, 0x18
- b _08160E88
- .pool
-_08160D6C:
- adds r0, r1, 0
- adds r0, 0x44
- ldrb r0, [r0]
- movs r4, 0x64
- muls r0, r4
- ldr r5, =gPlayerParty
- adds r0, r5
- ldrb r1, [r2]
- adds r1, 0xD
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r2, =gStringVar3
- movs r1, 0xD
- mov r8, r1
- mov r1, r8
- muls r1, r0
- ldr r6, =gMoveNames
- adds r1, r6
- adds r0, r2, 0
- bl StringCopy
- ldr r1, [r7]
- adds r0, r1, 0
- adds r0, 0x44
- ldrb r0, [r0]
- muls r0, r4
- adds r0, r5
- adds r1, 0x45
- ldrb r1, [r1]
- bl sub_806B9A8
- ldr r0, [r7]
- adds r0, 0x44
- ldrb r0, [r0]
- muls r4, r0
- adds r4, r5
- bl sub_8161054
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [r7]
- adds r0, 0x45
- ldrb r2, [r0]
- adds r0, r4, 0
- bl sub_80691F4
- ldr r4, =gStringVar2
- bl sub_8161054
- mov r1, r8
- muls r1, r0
- adds r1, r6
- adds r0, r4, 0
- bl StringCopy
- ldr r0, =gUnknown_085EF979
- bl sub_816084C
- ldr r1, [r7]
- movs r0, 0x1E
- strb r0, [r1]
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0x1
- strh r0, [r1]
- b _08160E8A
- .pool
-_08160E0C:
- bl sub_81D2C3C
- lsls r0, 16
- cmp r0, 0
- bne _08160E8A
- ldr r0, =gUnknown_085EF9A6
- bl sub_816084C
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- movs r0, 0x1F
- strb r0, [r1]
- ldr r0, =0x0000016f
- bl PlayFanfare
- b _08160E8A
- .pool
-_08160E38:
- bl sub_81D2C3C
- lsls r0, 16
- cmp r0, 0
- bne _08160E8A
- ldr r0, =0x0000016f
- bl PlayFanfare
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- movs r0, 0x20
- b _08160E88
- .pool
-_08160E58:
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _08160E8A
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- movs r0, 0x21
- b _08160E88
- .pool
-_08160E70:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08160E8A
- movs r0, 0x5
- bl PlaySE
-_08160E82:
- ldr r0, =gUnknown_0203BC34
- ldr r1, [r0]
- movs r0, 0xE
-_08160E88:
- strb r0, [r1]
-_08160E8A:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8160868
-
- thumb_func_start sub_8160EA0
-sub_8160EA0: @ 8160EA0
- push {r4,lr}
- bl sub_8161234
- ldr r4, =gUnknown_0203BC34
- ldr r0, [r4]
- movs r1, 0x89
- lsls r1, 1
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, =gUnknown_0203BC38
- adds r2, r1, 0x2
- bl sub_81AE6C8
- bl FreeAllWindowBuffers
- ldr r0, [r4]
- bl Free
- movs r0, 0
- str r0, [r4]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8160EA0
-
- thumb_func_start render_previous_quest_text
-render_previous_quest_text: @ 8160EE0
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- movs r2, 0
- ldr r6, =gSprites
- ldr r4, =gUnknown_0203BC34
- movs r3, 0x4
-_08160EF0:
- ldr r0, [r4]
- adds r0, 0x1
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0xF
- ble _08160EF0
- cmp r5, 0
- bne _08160F38
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085EF8C2
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x3
- movs r1, 0x11
- bl FillWindowPixelBuffer
- movs r0, 0x1
- str r0, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0
- bl Print
-_08160F38:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end render_previous_quest_text
-
- thumb_func_start sub_8160F50
-sub_8160F50: @ 8160F50
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r6, =gUnknown_0203BC34
- ldr r0, [r6]
- movs r4, 0x89
- lsls r4, 1
- adds r0, r4
- ldrb r0, [r0]
- bl ListMenuHandleInput
- adds r5, r0, 0
- ldr r0, [r6]
- adds r0, r4
- ldrb r0, [r0]
- ldr r4, =gUnknown_0203BC38
- adds r2, r4, 0x2
- adds r1, r4, 0
- bl get_coro_args_x18_x1A
- movs r0, 0x2
- negs r0, r0
- cmp r5, r0
- beq _08160FE4
- adds r0, 0x1
- cmp r5, r0
- bne _08161010
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- bne _08160F9C
- bl GetLRKeysState
- lsls r0, 24
- cmp r0, 0
- beq _0816103E
-_08160F9C:
- movs r0, 0x5
- bl PlaySE
- cmp r7, 0
- bne _08160FC4
- movs r0, 0x1
- bl PutWindowTilemap
- ldr r0, [r6]
- movs r1, 0x5
- strb r1, [r0]
- movs r0, 0x1
- strb r0, [r4, 0x4]
- b _08160FD4
- .pool
-_08160FC4:
- movs r0, 0
- bl PutWindowTilemap
- ldr r0, [r6]
- movs r2, 0
- movs r1, 0x3
- strb r1, [r0]
- strb r2, [r4, 0x4]
-_08160FD4:
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- bl sub_8161054
- bl sub_816137C
- b _0816103E
-_08160FE4:
- movs r0, 0x5
- bl PlaySE
- bl sub_8161234
- ldr r1, [r6]
- movs r0, 0xC
- strb r0, [r1]
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085EF9E6
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- bl sub_81D2BF4
- b _0816103E
- .pool
-_08161010:
- movs r0, 0x5
- bl PlaySE
- bl sub_8161234
- ldr r1, [r6]
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, =gStringVar2
- movs r1, 0xD
- muls r1, r5
- ldr r2, =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085EF8DA
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- bl sub_81D2BF4
-_0816103E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8160F50
-
- thumb_func_start sub_8161054
-sub_8161054: @ 8161054
- ldr r0, =gUnknown_0203BC34
- ldr r2, [r0]
- ldr r1, =gUnknown_0203BC38
- ldrh r0, [r1, 0x2]
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 3
- adds r2, 0x4C
- adds r2, r0
- ldr r0, [r2]
- bx lr
- .pool
- thumb_func_end sub_8161054
-
- thumb_func_start sub_8161074
-sub_8161074: @ 8161074
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _081610A6
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085EF8C2
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x3
- movs r1, 0x11
- bl FillWindowPixelBuffer
- movs r0, 0x1
- str r0, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0
- bl Print
-_081610A6:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8161074
-
- thumb_func_start sub_81610B8
-sub_81610B8: @ 81610B8
- push {r4-r7,lr}
- ldr r2, =gUnknown_0203BC34
- ldr r0, [r2]
- movs r1, 0x8A
- lsls r1, 1
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, [r2]
- ldr r2, =0x00000113
- adds r1, r0, r2
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1]
- bl sub_81611AC
- movs r4, 0
- ldr r5, =gUnknown_085CEC10
-_081610DC:
- adds r2, r4, 0
- cmp r4, 0
- bge _081610E4
- adds r2, r4, 0x3
-_081610E4:
- asrs r2, 2
- lsls r1, r2, 2
- subs r1, r4, r1
- lsls r1, 19
- movs r0, 0xD0
- lsls r0, 15
- adds r1, r0
- asrs r1, 16
- lsls r2, 19
- movs r0, 0x90
- lsls r0, 14
- adds r2, r0
- asrs r2, 16
- adds r0, r5, 0
- movs r3, 0
- bl CreateSprite
- ldr r2, =gUnknown_0203BC34
- ldr r1, [r2]
- adds r1, 0x1
- adds r1, r4
- strb r0, [r1]
- adds r4, 0x1
- cmp r4, 0x7
- ble _081610DC
- movs r4, 0
- ldr r7, =gUnknown_085CEC10
- adds r6, r2, 0
-_0816111C:
- adds r2, r4, 0
- cmp r4, 0
- bge _08161124
- adds r2, r4, 0x3
-_08161124:
- asrs r2, 2
- lsls r1, r2, 2
- subs r1, r4, r1
- lsls r1, 19
- movs r0, 0xD0
- lsls r0, 15
- adds r1, r0
- asrs r1, 16
- lsls r2, 19
- movs r0, 0xD0
- lsls r0, 14
- adds r2, r0
- asrs r2, 16
- adds r0, r7, 0
- movs r3, 0
- bl CreateSprite
- ldr r1, [r6]
- adds r2, r4, 0
- adds r2, 0x8
- adds r1, 0x1
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x1
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, =gSprites
- adds r0, r5
- movs r1, 0x2
- bl StartSpriteAnim
- adds r4, 0x1
- cmp r4, 0x7
- ble _0816111C
- movs r4, 0
- ldr r3, =gUnknown_0203BC34
- movs r2, 0x4
-_08161176:
- ldr r0, [r3]
- adds r0, 0x1
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0xF
- ble _08161176
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81610B8
-
- thumb_func_start sub_81611AC
-sub_81611AC: @ 81611AC
- push {r4-r6,lr}
- ldr r4, =gUnknown_0203BC34
- ldr r1, [r4]
- movs r2, 0x8A
- lsls r2, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _081611D4
- ldr r0, =gUnknown_085CEBC0
- movs r3, 0x8B
- lsls r3, 1
- adds r1, r3
- bl AddScrollIndicatorArrowPair
- ldr r1, [r4]
- movs r5, 0x8A
- lsls r5, 1
- adds r1, r5
- strb r0, [r1]
-_081611D4:
- ldr r0, [r4]
- ldr r6, =0x00000113
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08161210
- ldr r0, =gUnknown_0203CE8C
- adds r2, r0, 0
- ldr r1, =gUnknown_085CEBD0
- ldm r1!, {r3,r5,r6}
- stm r2!, {r3,r5,r6}
- ldr r1, [r1]
- str r1, [r2]
- ldr r2, [r4]
- movs r3, 0x88
- lsls r3, 1
- adds r1, r2, r3
- ldrb r1, [r1]
- ldr r5, =0x00000111
- adds r2, r5
- ldrb r2, [r2]
- subs r1, r2
- strh r1, [r0, 0x8]
- ldr r1, =gUnknown_0203BC38
- bl AddScrollIndicatorArrowPair
- ldr r1, [r4]
- ldr r6, =0x00000113
- adds r1, r6
- strb r0, [r1]
-_08161210:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81611AC
-
- thumb_func_start sub_8161234
-sub_8161234: @ 8161234
- push {r4,lr}
- ldr r4, =gUnknown_0203BC34
- ldr r0, [r4]
- movs r2, 0x8A
- lsls r2, 1
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _08161256
- bl RemoveScrollIndicatorArrowPair
- ldr r0, [r4]
- movs r1, 0x8A
- lsls r1, 1
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
-_08161256:
- ldr r0, [r4]
- ldr r2, =0x00000113
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _08161270
- bl RemoveScrollIndicatorArrowPair
- ldr r0, [r4]
- ldr r2, =0x00000113
- adds r1, r0, r2
- movs r0, 0xFF
- strb r0, [r1]
-_08161270:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8161234
-
- thumb_func_start sub_8161280
-sub_8161280: @ 8161280
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- ldr r4, =gUnknown_0203BC34
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x44
- ldrb r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, =gPlayerParty
- adds r0, r2
- adds r1, 0x12
- bl sub_806E0B4
- ldr r1, [r4]
- movs r6, 0x88
- lsls r6, 1
- adds r1, r6
- strb r0, [r1]
- movs r5, 0
- ldr r0, [r4]
- adds r0, r6
- ldrb r0, [r0]
- cmp r5, r0
- bge _081612F6
- mov r8, r4
- movs r0, 0xD
- mov r12, r0
- ldr r2, =gMoveNames
- mov r9, r2
-_081612C2:
- mov r7, r8
- ldr r4, [r7]
- lsls r3, r5, 3
- adds r2, r4, 0
- adds r2, 0x48
- adds r2, r3
- lsls r0, r5, 1
- adds r1, r4, 0
- adds r1, 0x12
- adds r1, r0
- ldrh r0, [r1]
- mov r7, r12
- muls r7, r0
- adds r0, r7, 0
- add r0, r9
- str r0, [r2]
- adds r0, r4, 0
- adds r0, 0x4C
- adds r0, r3
- ldrh r1, [r1]
- str r1, [r0]
- adds r5, 0x1
- adds r0, r4, r6
- ldrb r0, [r0]
- cmp r5, r0
- blt _081612C2
-_081612F6:
- ldr r4, =gUnknown_0203BC34
- ldr r0, [r4]
- adds r0, 0x44
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- ldr r0, =gStringVar1
- mov r1, sp
- bl StringCopy10
- ldr r2, [r4]
- movs r5, 0x88
- lsls r5, 1
- adds r3, r2, r5
- ldrb r0, [r3]
- lsls r0, 3
- adds r1, r2, 0
- adds r1, 0x48
- adds r1, r0
- ldr r0, =gUnknown_085E8CF0
- str r0, [r1]
- ldrb r0, [r3]
- lsls r0, 3
- adds r2, 0x4C
- adds r2, r0
- movs r0, 0x2
- negs r0, r0
- str r0, [r2]
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x48
- adds r1, r5
- ldrb r1, [r1]
- bl sub_81D28C8
- ldr r1, [r4]
- ldr r2, =0x00000111
- adds r1, r2
- strb r0, [r1]
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8161280
-
- thumb_func_start sub_816137C
-sub_816137C: @ 816137C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- ldr r0, =gUnknown_0203BC38
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _08161394
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- bne _081613CC
-_08161394:
- movs r5, 0
- ldr r4, =gSprites
- ldr r3, =gUnknown_0203BC34
- movs r2, 0x4
-_0816139C:
- ldr r0, [r3]
- adds r0, 0x1
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xF
- bls _0816139C
- b _081614FE
- .pool
-_081613CC:
- ldr r1, =gContestEffects
- ldr r0, =gContestMoves
- lsls r4, 3
- adds r0, r4, r0
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x1]
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r6, r0, 24
- mov r8, r4
- cmp r6, 0xFF
- bne _081613EE
- movs r6, 0
-_081613EE:
- movs r5, 0
- ldr r7, =gUnknown_0203BC34
- ldr r4, =gSprites
-_081613F4:
- cmp r5, r6
- bcs _08161420
- ldr r0, [r7]
- adds r0, 0x1
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAnim
- b _08161436
- .pool
-_08161420:
- ldr r0, [r7]
- adds r0, 0x1
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0
- bl StartSpriteAnim
-_08161436:
- ldr r0, [r7]
- adds r0, 0x1
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r3, 0x5
- negs r3, r3
- adds r2, r3, 0
- ands r1, r2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x7
- bls _081613F4
- ldr r1, =gContestEffects
- ldr r0, =gContestMoves
- add r0, r8
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xFF
- bne _0816147C
- movs r6, 0
-_0816147C:
- movs r5, 0
- ldr r0, =gUnknown_0203BC34
- mov r8, r0
- ldr r7, =gSprites
-_08161484:
- cmp r5, r6
- bcs _081614B8
- mov r1, r8
- ldr r0, [r1]
- adds r4, r5, 0
- adds r4, 0x8
- adds r0, 0x1
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- movs r1, 0x3
- bl StartSpriteAnim
- b _081614D4
- .pool
-_081614B8:
- mov r3, r8
- ldr r0, [r3]
- adds r4, r5, 0
- adds r4, 0x8
- adds r0, 0x1
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- movs r1, 0x2
- bl StartSpriteAnim
-_081614D4:
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x1
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r3, 0x5
- negs r3, r3
- adds r2, r3, 0
- ands r1, r2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x7
- bls _08161484
-_081614FE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_816137C
-
- thumb_func_start hm_prepare_dive_probably
-hm_prepare_dive_probably: @ 8161508
- push {r4-r6,lr}
- bl brm_get_pokemon_selection
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0x64
- muls r0, r6
- ldr r4, =gPlayerParty
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- bl brm_get_pokemon_selection
- lsls r0, 24
- lsrs r0, 24
- muls r0, r6
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r4, r0
- bhi _08161558
- movs r0, 0
- b _0816155A
- .pool
-_08161558:
- movs r0, 0x1
-_0816155A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end hm_prepare_dive_probably
-
- thumb_func_start sub_8161560
-sub_8161560: @ 8161560
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0xA
- strb r1, [r0, 0xB]
- ldrb r1, [r0, 0x9]
- strb r1, [r0, 0xA]
- bl brm_get_pokemon_selection
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_81B0FCC
- movs r0, 0x5
- bl display_pokemon_menu_message
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B1370
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8161560
-
- thumb_func_start sub_81615A8
-sub_81615A8: @ 81615A8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- str r4, [sp, 0x4]
- ldr r1, =gUnknown_0203CEC8
- ldrb r7, [r1, 0x9]
- mov r8, r7
- ldrb r0, [r1, 0xA]
- adds r5, r0, 0
- cmp r5, 0x6
- bls _081615EC
- movs r0, 0
- strb r0, [r1, 0xB]
- bl display_pokemon_menu_message
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B1370
- str r1, [r0]
- b _08161658
- .pool
-_081615EC:
- movs r0, 0x64
- mov r10, r0
- mov r0, r10
- muls r0, r5
- ldr r1, =gPlayerParty
- mov r9, r1
- adds r6, r0, r1
- adds r0, r6, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _0816161A
- cmp r7, r5
- beq _0816161A
- adds r0, r6, 0
- movs r1, 0x3A
- bl GetMonData
- cmp r0, r4
- bne _08161628
-_0816161A:
- ldr r0, [sp, 0x4]
- bl sub_81617B8
- b _08161658
- .pool
-_08161628:
- movs r0, 0x1
- bl PlaySE
- mov r1, r10
- mov r0, r8
- muls r0, r1
- add r0, r9
- movs r1, 0x3A
- bl GetMonData
- movs r1, 0x5
- bl __udivsi3
- adds r3, r0, 0
- lsls r3, 16
- asrs r3, 16
- movs r2, 0x1
- negs r2, r2
- ldr r0, =sub_816166C
- str r0, [sp]
- ldr r0, [sp, 0x4]
- mov r1, r8
- bl sub_81B1F18
-_08161658:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81615A8
-
- thumb_func_start sub_816166C
-sub_816166C: @ 816166C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl PlaySE
- ldr r5, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r5, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- movs r1, 0x5
- bl __udivsi3
- adds r3, r0, 0
- lsls r3, 16
- asrs r3, 16
- ldrb r1, [r5, 0xA]
- ldr r0, =sub_81616C0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_81B1F18
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_816166C
-
- thumb_func_start sub_81616C0
-sub_81616C0: @ 81616C0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0xA
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gStringVar1
- bl GetMonNickname
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E9C17
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_8161724
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81616C0
-
- thumb_func_start sub_8161724
-sub_8161724: @ 8161724
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08161772
- ldr r4, =gUnknown_0203CEC8
- movs r0, 0
- strb r0, [r4, 0xB]
- ldrb r0, [r4, 0x9]
- movs r1, 0
- bl sub_81B0FCC
- ldrb r0, [r4, 0xA]
- strb r0, [r4, 0x9]
- ldrb r0, [r4, 0xA]
- movs r1, 0x1
- bl sub_81B0FCC
- movs r0, 0x6
- movs r1, 0
- bl sub_8198070
- movs r0, 0x6
- bl ClearWindowTilemap
- movs r0, 0
- bl display_pokemon_menu_message
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B1370
- str r1, [r0]
-_08161772:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8161724
-
- thumb_func_start sub_8161784
-sub_8161784: @ 8161784
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081617AA
- movs r0, 0x5
- bl display_pokemon_menu_message
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B1370
- str r0, [r1]
-_081617AA:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8161784
-
- thumb_func_start sub_81617B8
-sub_81617B8: @ 81617B8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_085E9712
- movs r1, 0
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_8161784
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81617B8
-
- thumb_func_start sub_81617F4
-sub_81617F4: @ 81617F4
- push {r4,lr}
- ldr r0, =gUnknown_0203BC40
- mov r12, r0
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r2, =0x00002734
- adds r0, r1, r2
- mov r4, r12
- str r0, [r4]
- movs r3, 0xA
- strb r3, [r4, 0x4]
- adds r2, 0xA
- adds r0, r1, r2
- str r0, [r4, 0x8]
- strb r3, [r4, 0xC]
- ldr r4, =0x00002748
- adds r0, r1, r4
- mov r2, r12
- str r0, [r2, 0x10]
- strb r3, [r2, 0x14]
- adds r4, 0xA
- adds r0, r1, r4
- str r0, [r2, 0x18]
- movs r2, 0x1E
- mov r0, r12
- strb r2, [r0, 0x1C]
- adds r4, 0x1E
- adds r0, r1, r4
- mov r4, r12
- str r0, [r4, 0x20]
- mov r0, r12
- adds r0, 0x24
- strb r2, [r0]
- ldr r2, =0x0000278e
- adds r0, r1, r2
- str r0, [r4, 0x28]
- mov r0, r12
- adds r0, 0x2C
- strb r3, [r0]
- ldr r4, =0x00002798
- adds r0, r1, r4
- mov r2, r12
- str r0, [r2, 0x30]
- adds r2, 0x34
- movs r0, 0x28
- strb r0, [r2]
- adds r4, 0x28
- adds r1, r4
- mov r0, r12
- str r1, [r0, 0x38]
- adds r0, 0x3C
- strb r3, [r0]
- bl sub_8126968
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81617F4
-
- thumb_func_start sub_8161880
-sub_8161880: @ 8161880
- push {r4,r5,lr}
- lsls r0, 24
- movs r3, 0
- ldr r1, =gUnknown_0203BC40
- lsrs r2, r0, 21
- adds r0, r2, r1
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcs _081618AA
- adds r5, r1, 0
- movs r4, 0
-_08161896:
- adds r0, r2, r5
- ldr r1, [r0]
- adds r1, r3
- strb r4, [r1]
- adds r1, r3, 0x1
- lsls r1, 24
- lsrs r3, r1, 24
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcc _08161896
-_081618AA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8161880
-
- thumb_func_start ClearDecorationInventories
-ClearDecorationInventories: @ 81618B4
- push {r4,lr}
- movs r4, 0
-_081618B8:
- adds r0, r4, 0
- bl sub_8161880
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _081618B8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ClearDecorationInventories
-
- thumb_func_start sub_81618D0
-sub_81618D0: @ 81618D0
- push {r4,lr}
- lsls r0, 24
- movs r2, 0
- ldr r1, =gUnknown_0203BC40
- lsrs r0, 21
- adds r0, r1
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- cmp r2, r1
- bge _0816190C
- adds r4, r0, 0
- adds r3, r1, 0
-_081618E8:
- lsls r0, r2, 24
- asrs r1, r0, 24
- ldr r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08161900
- adds r0, r1, 0
- b _08161910
- .pool
-_08161900:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, r3
- blt _081618E8
-_0816190C:
- movs r0, 0x1
- negs r0, r0
-_08161910:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81618D0
-
- thumb_func_start sub_8161918
-sub_8161918: @ 8161918
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, =gUnknown_085A5C08
- lsls r0, r3, 5
- adds r0, r1
- ldrb r0, [r0, 0x13]
- movs r2, 0
- ldr r1, =gUnknown_0203BC40
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x4]
- cmp r2, r1
- bcs _08161956
- ldr r4, [r0]
-_08161936:
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, r3
- bne _0816194C
- movs r0, 0x1
- b _08161958
- .pool
-_0816194C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r1
- bcc _08161936
-_08161956:
- movs r0, 0
-_08161958:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8161918
-
- thumb_func_start IsThereStorageSpaceForDecoration
-IsThereStorageSpaceForDecoration: @ 8161960
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r4, 0
- beq _081619A0
- ldr r1, =gUnknown_085A5C08
- lsls r0, r4, 5
- adds r0, r1
- ldrb r5, [r0, 0x13]
- adds r0, r5, 0
- bl sub_81618D0
- lsls r0, 24
- asrs r2, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _081619A0
- ldr r0, =gUnknown_0203BC40
- lsls r1, r5, 3
- adds r1, r0
- ldr r0, [r1]
- adds r0, r2
- strb r4, [r0]
- movs r0, 0x1
- b _081619A2
- .pool
-_081619A0:
- movs r0, 0
-_081619A2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end IsThereStorageSpaceForDecoration
-
- thumb_func_start sub_81619A8
-sub_81619A8: @ 81619A8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _081619D4
- ldr r1, =gUnknown_085A5C08
- lsls r0, 5
- adds r0, r1
- ldrb r0, [r0, 0x13]
- bl sub_81618D0
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _081619D4
- movs r0, 0x1
- b _081619D6
- .pool
-_081619D4:
- movs r0, 0
-_081619D6:
- pop {r1}
- bx r1
- thumb_func_end sub_81619A8
-
- thumb_func_start sub_81619DC
-sub_81619DC: @ 81619DC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- cmp r5, 0
- bne _081619F8
- b _08161A26
-_081619EA:
- movs r0, 0
- strb r0, [r1]
- adds r0, r6, 0
- bl sub_8161A38
- movs r0, 0x1
- b _08161A28
-_081619F8:
- ldr r2, =gUnknown_0203BC40
- ldr r1, =gUnknown_085A5C08
- lsls r0, r5, 5
- adds r0, r1
- ldrb r4, [r0, 0x13]
- lsls r0, r4, 3
- adds r0, r2
- ldrb r1, [r0, 0x4]
- cmp r3, r1
- bcs _08161A26
- adds r6, r4, 0
- adds r4, r0, 0
- adds r2, r1, 0
-_08161A12:
- ldr r0, [r4]
- adds r1, r0, r3
- ldrb r0, [r1]
- cmp r0, r5
- beq _081619EA
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r2
- bcc _08161A12
-_08161A26:
- movs r0, 0
-_08161A28:
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81619DC
-
- thumb_func_start sub_8161A38
-sub_8161A38: @ 8161A38
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- movs r6, 0
- ldr r2, =gUnknown_0203BC40
- lsrs r0, 21
- adds r1, r0, r2
- ldrb r3, [r1, 0x4]
- cmp r6, r3
- bcs _08161ABC
- adds r7, r0, 0
- mov r10, r1
- mov r0, r10
- str r0, [sp]
-_08161A5C:
- adds r1, r6, 0x1
- lsls r0, r1, 24
- lsrs r3, r0, 24
- adds r2, r7, 0
- mov r12, r1
- mov r1, r10
- ldrb r1, [r1, 0x4]
- cmp r3, r1
- bcs _08161AAE
- ldr r0, =gUnknown_0203BC40
- mov r9, r0
- adds r1, r0, 0
- mov r8, r1
-_08161A76:
- mov r0, r9
- adds r5, r2, r0
- ldr r1, [r5]
- adds r0, r1, r3
- ldrb r4, [r0]
- adds r2, r4, 0
- cmp r2, 0
- beq _08161A9C
- adds r0, r1, r6
- ldrb r1, [r0]
- cmp r1, 0
- beq _08161A92
- cmp r1, r2
- bls _08161A9C
-_08161A92:
- ldrb r1, [r0]
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, r3
- strb r1, [r0]
-_08161A9C:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r2, r7, 0
- mov r1, r8
- adds r0, r2, r1
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcc _08161A76
-_08161AAE:
- mov r3, r12
- lsls r0, r3, 24
- lsrs r6, r0, 24
- ldr r0, [sp]
- ldrb r0, [r0, 0x4]
- cmp r6, r0
- bcc _08161A5C
-_08161ABC:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8161A38
-
- thumb_func_start sub_8161AD0
-sub_8161AD0: @ 8161AD0
- push {r4,r5,lr}
- lsls r0, 24
- movs r4, 0
- movs r3, 0
- ldr r2, =gUnknown_0203BC40
- lsrs r1, r0, 21
- adds r0, r1, r2
- ldrb r0, [r0, 0x4]
- cmp r4, r0
- bcs _08161B04
- adds r5, r2, 0
-_08161AE6:
- adds r2, r1, r5
- ldr r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _08161AF8
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_08161AF8:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r2, [r2, 0x4]
- cmp r3, r2
- bcc _08161AE6
-_08161B04:
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8161AD0
-
- thumb_func_start sub_8161B10
-sub_8161B10: @ 8161B10
- push {r4,r5,lr}
- movs r5, 0
- movs r4, 0
-_08161B16:
- adds r0, r4, 0
- bl sub_8161AD0
- adds r0, r5, r0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08161B16
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8161B10
-
- thumb_func_start ClearRoamerData
-ClearRoamerData: @ 8161B34
- push {r4,r5,lr}
- ldr r5, =gSaveBlock1Ptr
- ldr r0, [r5]
- ldr r4, =0x000031dc
- adds r0, r4
- movs r1, 0
- movs r2, 0x1C
- bl memset
- ldr r0, [r5]
- adds r0, r4
- ldr r1, =0x00000197
- strh r1, [r0, 0x8]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ClearRoamerData
-
- thumb_func_start ClearRoamerLocationData
-ClearRoamerLocationData: @ 8161B60
- push {r4-r6,lr}
- movs r2, 0
- ldr r6, =gUnknown_0203BC86
- ldr r4, =gUnknown_0203BC80
- movs r3, 0
- adds r5, r4, 0x1
-_08161B6C:
- lsls r1, r2, 1
- adds r0, r1, r4
- strb r3, [r0]
- adds r1, r5
- strb r3, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _08161B6C
- movs r0, 0
- strb r0, [r6]
- strb r0, [r6, 0x1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ClearRoamerLocationData
-
- thumb_func_start sub_8161B94
-sub_8161B94: @ 8161B94
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- lsls r0, 16
- cmp r0, 0
- bne _08161BBC
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r2, =0x000031dc
- adds r1, r2
- ldr r2, =0x00000197
- b _08161BC8
- .pool
-_08161BBC:
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r2, =0x000031dc
- adds r1, r2
- movs r2, 0xCC
- lsls r2, 1
-_08161BC8:
- strh r2, [r1, 0x8]
- adds r7, r0, 0
- ldr r6, =gEnemyParty
- ldr r0, [r7]
- ldr r5, =0x000031dc
- adds r0, r5
- ldrh r1, [r0, 0x8]
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r6, 0
- movs r2, 0x28
- movs r3, 0x20
- bl create_pokemon_set_level
- ldr r0, [r7]
- adds r0, r5
- movs r1, 0x28
- strb r1, [r0, 0xC]
- ldr r0, [r7]
- adds r0, r5
- strb r4, [r0, 0xD]
- ldr r0, [r7]
- adds r0, r5
- movs r1, 0x1
- strb r1, [r0, 0x13]
- adds r0, r6, 0
- movs r1, 0x42
- bl GetMonData
- ldr r1, [r7]
- adds r1, r5
- str r0, [r1]
- adds r0, r6, 0
- movs r1, 0
- bl GetMonData
- ldr r1, [r7]
- adds r1, r5
- str r0, [r1, 0x4]
- adds r0, r6, 0
- movs r1, 0x3A
- bl GetMonData
- ldr r1, [r7]
- adds r1, r5
- movs r2, 0
- mov r8, r2
- strh r0, [r1, 0xA]
- adds r0, r6, 0
- movs r1, 0x16
- bl GetMonData
- ldr r1, [r7]
- adds r1, r5
- strb r0, [r1, 0xE]
- adds r0, r6, 0
- movs r1, 0x17
- bl GetMonData
- ldr r1, [r7]
- adds r1, r5
- strb r0, [r1, 0xF]
- adds r0, r6, 0
- movs r1, 0x18
- bl GetMonData
- ldr r1, [r7]
- adds r1, r5
- strb r0, [r1, 0x10]
- adds r0, r6, 0
- movs r1, 0x21
- bl GetMonData
- ldr r1, [r7]
- adds r1, r5
- strb r0, [r1, 0x11]
- adds r0, r6, 0
- movs r1, 0x2F
- bl GetMonData
- ldr r1, [r7]
- adds r1, r5
- strb r0, [r1, 0x12]
- ldr r4, =gUnknown_0203BC86
- mov r0, r8
- strb r0, [r4]
- bl Random
- ldr r5, =gUnknown_085CEC30
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x14
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- adds r1, r5
- ldrb r0, [r1]
- strb r0, [r4, 0x1]
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8161B94
-
- thumb_func_start sub_8161CBC
-sub_8161CBC: @ 8161CBC
- push {lr}
- bl ClearRoamerData
- bl ClearRoamerLocationData
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- bl sub_8161B94
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8161CBC
-
- thumb_func_start mapnumbers_history_shift_sav1_0_2_4_out
-mapnumbers_history_shift_sav1_0_2_4_out: @ 8161CD8
- ldr r0, =gUnknown_0203BC80
- ldrb r1, [r0, 0x2]
- strb r1, [r0, 0x4]
- ldrb r1, [r0, 0x3]
- strb r1, [r0, 0x5]
- ldrb r1, [r0]
- strb r1, [r0, 0x2]
- ldrb r1, [r0, 0x1]
- strb r1, [r0, 0x3]
- ldr r1, =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x4]
- strb r1, [r0]
- ldrb r1, [r2, 0x5]
- strb r1, [r0, 0x1]
- bx lr
- .pool
- thumb_func_end mapnumbers_history_shift_sav1_0_2_4_out
-
- thumb_func_start sub_8161D00
-sub_8161D00: @ 8161D00
- push {r4,r5,lr}
- movs r1, 0
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =0x000031dc
- adds r0, r2
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08161D3E
- ldr r0, =gUnknown_0203BC86
- strb r1, [r0]
- ldr r5, =gUnknown_085CEC30
- adds r4, r0, 0
-_08161D1A:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x14
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- adds r1, r5
- ldrb r1, [r1]
- ldrb r0, [r4, 0x1]
- cmp r0, r1
- beq _08161D1A
- strb r1, [r4, 0x1]
-_08161D3E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8161D00
-
- thumb_func_start sub_8161D54
-sub_8161D54: @ 8161D54
- push {r4-r7,lr}
- movs r4, 0
- bl Random
- lsls r0, 16
- movs r1, 0xF0
- lsls r1, 12
- ands r1, r0
- cmp r1, 0
- bne _08161D6E
- bl sub_8161D00
- b _08161DE2
-_08161D6E:
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x000031dc
- adds r0, r1
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08161DE2
- ldr r7, =gUnknown_0203BC86
- ldr r3, =gUnknown_085CEC30
-_08161D80:
- lsls r0, r4, 1
- adds r0, r4
- lsls r2, r0, 1
- adds r1, r2, r3
- ldrb r0, [r7, 0x1]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08161DD8
- ldr r6, =gUnknown_085CEC30
- adds r5, r2, 0x1
- ldr r4, =gUnknown_0203BC80
-_08161D96:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, r5
- adds r0, r6
- ldrb r1, [r0]
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- bne _08161DBA
- ldrb r0, [r4, 0x5]
- cmp r0, r1
- beq _08161D96
-_08161DBA:
- cmp r1, 0xFF
- beq _08161D96
- strb r1, [r7, 0x1]
- b _08161DE2
- .pool
-_08161DD8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _08161D80
-_08161DE2:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8161D54
-
- thumb_func_start sub_8161DE8
-sub_8161DE8: @ 8161DE8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r3, =0x000031dc
- adds r0, r3
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08161E20
- ldr r0, =gUnknown_0203BC86
- ldrb r3, [r0]
- cmp r2, r3
- bne _08161E20
- ldrb r0, [r0, 0x1]
- cmp r1, r0
- bne _08161E20
- movs r0, 0x1
- b _08161E22
- .pool
-_08161E20:
- movs r0, 0
-_08161E22:
- pop {r1}
- bx r1
- thumb_func_end sub_8161DE8
-
- thumb_func_start sub_8161E28
-sub_8161E28: @ 8161E28
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, =gEnemyParty
- bl ZeroEnemyPartyMons
- ldr r4, =gSaveBlock1Ptr
- ldr r0, [r4]
- ldr r1, =0x000031dc
- adds r0, r1
- ldrh r1, [r0, 0x8]
- ldrb r2, [r0, 0xC]
- ldr r3, [r0]
- ldr r0, [r0, 0x4]
- str r0, [sp]
- adds r0, r5, 0
- bl sub_8068060
- ldr r2, [r4]
- ldr r0, =0x000031e9
- adds r2, r0
- adds r0, r5, 0
- movs r1, 0x37
- bl SetMonData
- ldr r2, [r4]
- ldr r1, =0x000031e6
- adds r2, r1
- adds r0, r5, 0
- movs r1, 0x39
- bl SetMonData
- ldr r2, [r4]
- ldr r0, =0x000031ea
- adds r2, r0
- adds r0, r5, 0
- movs r1, 0x16
- bl SetMonData
- ldr r2, [r4]
- ldr r1, =0x000031eb
- adds r2, r1
- adds r0, r5, 0
- movs r1, 0x17
- bl SetMonData
- ldr r2, [r4]
- ldr r0, =0x000031ec
- adds r2, r0
- adds r0, r5, 0
- movs r1, 0x18
- bl SetMonData
- ldr r2, [r4]
- ldr r1, =0x000031ed
- adds r2, r1
- adds r0, r5, 0
- movs r1, 0x21
- bl SetMonData
- ldr r2, [r4]
- ldr r0, =0x000031ee
- adds r2, r0
- adds r0, r5, 0
- movs r1, 0x2F
- bl SetMonData
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8161E28
-
- thumb_func_start sub_8161EDC
-sub_8161EDC: @ 8161EDC
- push {lr}
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- ldrb r0, [r1, 0x4]
- ldrb r1, [r1, 0x5]
- bl sub_8161DE8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08161F10
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- cmp r1, 0
- bne _08161F10
- bl sub_8161E28
- movs r0, 0x1
- b _08161F12
- .pool
-_08161F10:
- movs r0, 0
-_08161F12:
- pop {r1}
- bx r1
- thumb_func_end sub_8161EDC
-
- thumb_func_start sub_8161F18
-sub_8161F18: @ 8161F18
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x39
- bl GetMonData
- ldr r5, =gSaveBlock1Ptr
- ldr r1, [r5]
- ldr r4, =0x000031dc
- adds r1, r4
- strh r0, [r1, 0xA]
- adds r0, r6, 0
- movs r1, 0x37
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strb r0, [r1, 0xD]
- bl sub_8161D00
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8161F18
-
- thumb_func_start sub_8161F4C
-sub_8161F4C: @ 8161F4C
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x000031dc
- adds r0, r1
- movs r1, 0
- strb r1, [r0, 0x13]
- bx lr
- .pool
- thumb_func_end sub_8161F4C
-
- thumb_func_start sub_8161F64
-sub_8161F64: @ 8161F64
- ldr r3, =gUnknown_0203BC86
- ldrb r2, [r3]
- strb r2, [r0]
- ldrb r0, [r3, 0x1]
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_8161F64
-
- thumb_func_start sub_8161F74
-sub_8161F74: @ 8161F74
- push {lr}
- ldr r1, =gUnknown_085DF96C
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8161F74
-
- thumb_func_start sub_8161F94
-sub_8161F94: @ 8161F94
- push {r4-r7,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r5, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, [r4]
- ldr r2, =0x00000ca8
- adds r0, r2
- movs r7, 0
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, [r4]
- adds r2, 0xA
- adds r0, r1, r2
- strh r7, [r0]
- ldr r0, =0x00000ca9
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r4]
- ldr r2, =0x00000ca9
- adds r1, r2
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- bl sub_81A3ACC
- ldr r4, [r4]
- ldr r0, =0x00000cdc
- adds r3, r4, r0
- ldr r2, =gUnknown_085DF9AC
- lsls r1, r5, 2
- lsls r0, r6, 3
- adds r1, r0
- adds r1, r2
- ldr r0, [r3]
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _0816200E
- lsls r0, r5, 1
- lsls r1, r6, 2
- adds r0, r1
- movs r2, 0xCE
- lsls r2, 4
- adds r1, r4, r2
- adds r1, r0
- strh r7, [r1]
-_0816200E:
- bl sub_8164ED8
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- movs r2, 0x5
- ldrsb r2, [r0, r2]
- movs r3, 0x1
- negs r3, r3
- movs r0, 0
- bl saved_warp2_set
- ldr r0, =gUnknown_02038BCA
- strh r7, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8161F94
-
- thumb_func_start sub_8162054
-sub_8162054: @ 8162054
- push {r4-r6,lr}
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- ldr r4, =0x00000ca9
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r6, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _08162094
- cmp r0, 0x1
- ble _081620E8
- cmp r0, 0x2
- beq _081620A8
- cmp r0, 0x3
- beq _081620D8
- b _081620E8
- .pool
-_08162094:
- adds r0, r6, 0
- lsls r1, 24
- lsrs r1, 24
- bl sub_8164FCC
- ldr r1, =gScriptResult
- strh r0, [r1]
- b _081620E8
- .pool
-_081620A8:
- ldr r4, =gScriptResult
- ldr r2, [r5]
- ldr r0, =0x00000cdc
- adds r2, r0
- ldr r3, =gUnknown_085DF9AC
- lsls r0, r6, 2
- lsls r1, 3
- adds r0, r1
- adds r0, r3
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- strh r0, [r4]
- b _081620E8
- .pool
-_081620D8:
- ldr r1, [r5]
- adds r0, r1, r4
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- ldr r2, =0x00000d07
- adds r1, r2
- strb r0, [r1]
-_081620E8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8162054
-
- thumb_func_start sub_81620F4
-sub_81620F4: @ 81620F4
- push {r4-r7,lr}
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- ldr r7, =0x00000ca9
- adds r0, r7
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r5, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _08162134
- cmp r0, 0x1
- ble _081621B4
- cmp r0, 0x2
- beq _08162150
- cmp r0, 0x3
- beq _081621A4
- b _081621B4
- .pool
-_08162134:
- ldr r2, [r6]
- lsls r0, r5, 1
- lsls r1, r4, 2
- adds r0, r1
- movs r1, 0xCE
- lsls r1, 4
- adds r2, r1
- adds r2, r0
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- strh r0, [r2]
- b _081621B4
- .pool
-_08162150:
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- beq _08162180
- ldr r2, [r6]
- ldr r0, =0x00000cdc
- adds r2, r0
- ldr r3, =gUnknown_085DF9AC
- lsls r1, r5, 2
- lsls r0, r4, 3
- adds r1, r0
- adds r1, r3
- ldr r0, [r2]
- ldr r1, [r1]
- orrs r0, r1
- str r0, [r2]
- b _081621B4
- .pool
-_08162180:
- ldr r2, [r6]
- ldr r1, =0x00000cdc
- adds r2, r1
- ldr r3, =gUnknown_085DF9CC
- lsls r1, r5, 2
- lsls r0, r4, 3
- adds r1, r0
- adds r1, r3
- ldr r0, [r2]
- ldr r1, [r1]
- ands r0, r1
- str r0, [r2]
- b _081621B4
- .pool
-_081621A4:
- ldr r1, [r6]
- adds r0, r1, r7
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- ldr r2, =0x00000d07
- adds r1, r2
- strb r0, [r1]
-_081621B4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81620F4
-
- thumb_func_start sub_81621C0
-sub_81621C0: @ 81621C0
- push {r4,r5,lr}
- ldr r0, =gUnknown_02038BCA
- ldrh r1, [r0]
- movs r0, 0xFA
- lsls r0, 1
- cmp r1, r0
- bne _081621DA
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000bec
- adds r0, r1
- bl sub_816534C
-_081621DA:
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- ldr r1, =0x00000d04
- adds r2, r0, r1
- ldrh r1, [r2]
- ldr r0, =0x0000270e
- cmp r1, r0
- bhi _081621EE
- adds r0, r1, 0x1
- strh r0, [r2]
-_081621EE:
- ldr r1, [r5]
- ldr r4, =0x00000cb2
- adds r1, r4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- bl sub_8163E90
- ldr r1, =gScriptResult
- ldr r0, [r5]
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81621C0
-
- thumb_func_start sub_816222C
-sub_816222C: @ 816222C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- movs r0, 0
- str r0, [sp, 0x24]
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- mov r10, r0
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x2C]
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- beq _08162266
- b _0816239C
-_08162266:
- mov r0, r10
- ldr r1, [sp, 0x2C]
- bl sub_8164FCC
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x28]
- movs r7, 0
- mov r2, sp
- str r2, [sp, 0x34]
-_0816227A:
- movs r3, 0xEC
- adds r0, r7, 0
- muls r0, r3
- movs r4, 0xE7
- lsls r4, 3
- adds r0, r4
- ldr r5, =gSaveBlock2Ptr
- ldr r1, [r5]
- movs r2, 0
- mov r8, r2
- mov r9, r2
- movs r5, 0
- adds r3, r7, 0x1
- str r3, [sp, 0x30]
- adds r1, r0
-_08162298:
- ldm r1!, {r0}
- mov r4, r8
- orrs r4, r0
- mov r8, r4
- add r9, r0
- adds r5, 0x1
- cmp r5, 0x39
- bls _08162298
- movs r6, 0
- movs r5, 0
- movs r0, 0xEC
- adds r2, r7, 0
- muls r2, r0
-_081622B2:
- ldr r3, =gSaveBlock2Ptr
- ldr r1, [r3]
- movs r0, 0x2C
- muls r0, r5
- adds r0, r2
- adds r1, r0
- ldr r4, =0x0000076c
- adds r0, r1, r4
- ldrh r0, [r0]
- cmp r0, 0
- beq _081622E4
- movs r0, 0xEF
- lsls r0, 3
- adds r4, r1, r0
- mov r0, r10
- str r2, [sp, 0x38]
- bl sub_8165C90
- ldrb r1, [r4]
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp, 0x38]
- cmp r1, r0
- bhi _081622E4
- adds r6, 0x1
-_081622E4:
- adds r5, 0x1
- cmp r5, 0x3
- ble _081622B2
- ldr r0, =gUnknown_085DF9F6
- ldr r1, [sp, 0x2C]
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r6, r0
- blt _0816233E
- ldr r3, =gSaveBlock2Ptr
- ldr r2, [r3]
- movs r4, 0xEC
- adds r3, r7, 0
- muls r3, r4
- adds r1, r2, r3
- ldr r5, =0x0000073a
- adds r0, r1, r5
- ldrh r0, [r0]
- ldr r4, [sp, 0x28]
- cmp r0, r4
- bne _0816233E
- subs r5, 0x2
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, r10
- bne _0816233E
- mov r0, r8
- cmp r0, 0
- beq _0816233E
- movs r1, 0x82
- lsls r1, 4
- adds r0, r2, r1
- adds r0, r3
- ldr r0, [r0]
- cmp r0, r9
- bne _0816233E
- movs r2, 0x96
- lsls r2, 1
- adds r0, r7, r2
- ldr r3, [sp, 0x34]
- stm r3!, {r0}
- str r3, [sp, 0x34]
- ldr r4, [sp, 0x24]
- adds r4, 0x1
- str r4, [sp, 0x24]
-_0816233E:
- ldr r7, [sp, 0x30]
- cmp r7, 0x4
- ble _0816227A
- ldr r5, [sp, 0x2C]
- cmp r5, 0
- bne _08162396
- bl sub_8165B20
- movs r7, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r4, =gUnknown_085DF9EC
- adds r2, r0, 0
- adds r2, 0xDC
- ldr r1, [sp, 0x24]
- lsls r0, r1, 2
- mov r5, sp
- adds r3, r0, r5
-_08162362:
- ldrb r0, [r2]
- lsls r1, r0, 25
- lsrs r0, r1, 30
- cmp r0, 0
- beq _0816238E
- ldrb r0, [r2, 0x1]
- adds r0, r4
- ldrb r0, [r0]
- ldr r5, [sp, 0x28]
- cmp r0, r5
- bne _0816238E
- lsrs r0, r1, 30
- subs r0, 0x1
- cmp r0, r10
- bne _0816238E
- movs r1, 0xC8
- lsls r1, 1
- adds r0, r7, r1
- stm r3!, {r0}
- ldr r5, [sp, 0x24]
- adds r5, 0x1
- str r5, [sp, 0x24]
-_0816238E:
- adds r2, 0x44
- adds r7, 0x1
- cmp r7, 0x3
- ble _08162362
-_08162396:
- ldr r0, [sp, 0x24]
- cmp r0, 0
- bne _081623C0
-_0816239C:
- movs r0, 0
- b _081623DA
- .pool
-_081623C0:
- ldr r4, =gUnknown_02038BCA
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp, 0x24]
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- strh r0, [r4]
- movs r0, 0x1
-_081623DA:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_816222C
-
- thumb_func_start sub_81623F0
-sub_81623F0: @ 81623F0
- push {r4-r7,lr}
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- cmp r0, 0x2
- bne _08162414
- bl sub_8165E18
- b _08162530
- .pool
-_08162414:
- ldr r0, =0x000040ce
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl sub_81A39C4
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r5, r0, 16
- bl sub_8165C40
- subs r4, 0x2
- cmp r4, 0x1
- bhi _08162488
- ldr r1, [r6]
- ldr r2, =0x00000cb2
- adds r0, r1, r2
- ldrh r3, [r0]
- ldr r2, =gUnknown_02038BCA
- lsls r0, r3, 2
- ldr r4, =0x00000cb4
- adds r1, r4
- adds r0, r1, r0
- ldrh r0, [r0]
- strh r0, [r2]
- ldr r4, =gUnknown_02038BCC
- lsls r0, r3, 1
- adds r0, 0x1
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r4]
- ldrh r0, [r2]
- movs r1, 0
- bl sub_8162614
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_8162614
- b _08162530
- .pool
-_08162488:
- bl sub_816222C
- lsls r0, 24
- cmp r0, 0
- beq _081624B4
- ldr r4, =gUnknown_02038BCA
- ldrh r0, [r4]
- movs r1, 0
- bl sub_8162614
- ldr r1, [r6]
- ldr r2, =0x00000cb2
- adds r0, r1, r2
- ldrh r0, [r0]
- lsls r0, 1
- adds r2, 0x2
- b _08162528
- .pool
-_081624B4:
- lsls r7, r5, 24
- adds r5, r6, 0
- ldr r6, =0x00000cb2
-_081624BA:
- ldr r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsrs r0, r7, 24
- bl sub_8162548
- lsls r0, 16
- lsrs r3, r0, 16
- movs r4, 0
- ldr r1, [r5]
- adds r0, r1, r6
- ldrh r0, [r0]
- cmp r4, r0
- bge _081624FC
- ldr r2, =0x00000cb4
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, r3
- beq _081624FC
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- subs r2, 0x2
- adds r0, r1, r2
- ldrh r2, [r0]
- ldr r0, =0x00000cb4
- adds r1, r0
-_081624EE:
- adds r1, 0x2
- adds r4, 0x1
- cmp r4, r2
- bge _081624FC
- ldrh r0, [r1]
- cmp r0, r3
- bne _081624EE
-_081624FC:
- ldr r0, [r5]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- bne _081624BA
- ldr r4, =gUnknown_02038BCA
- strh r3, [r4]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_8162614
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r2, =0x00000cb2
- adds r0, r1, r2
- ldrh r2, [r0]
- adds r0, r2, 0x1
- cmp r0, 0x6
- bgt _08162530
- lsls r0, r2, 1
- ldr r2, =0x00000cb4
-_08162528:
- adds r1, r2
- adds r1, r0
- ldrh r0, [r4]
- strh r0, [r1]
-_08162530:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81623F0
-
- thumb_func_start sub_8162548
-sub_8162548: @ 8162548
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r0, 0x7
- bhi _08162584
- cmp r1, 0x6
- bne _08162570
- ldr r2, =gUnknown_085DFA1A
- lsls r1, r0, 2
- adds r0, r2, 0x2
- adds r0, r1, r0
- adds r1, r2
- ldrh r0, [r0]
- ldrh r4, [r1]
- b _0816258A
- .pool
-_08162570:
- ldr r2, =gUnknown_085DF9FA
- lsls r1, r3, 2
- adds r0, r2, 0x2
- adds r0, r1, r0
- adds r1, r2
- ldrh r0, [r0]
- ldrh r4, [r1]
- b _0816258A
- .pool
-_08162584:
- ldr r1, =gUnknown_085DF9FA
- ldrh r0, [r1, 0x1E]
- ldrh r4, [r1, 0x1C]
-_0816258A:
- subs r0, r4
- adds r0, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- bl __umodsi3
- adds r4, r0
- lsls r4, 16
- lsrs r5, r4, 16
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8162548
-
- thumb_func_start sub_81625B4
-sub_81625B4: @ 81625B4
- push {r4,lr}
- adds r4, r2, 0
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r0, 0x7
- bhi _081625F4
- cmp r1, 0x6
- bne _081625D4
- ldr r1, =gUnknown_085DFA1A
- lsls r2, r0, 2
- b _081625D8
- .pool
-_081625D4:
- ldr r1, =gUnknown_085DF9FA
- lsls r2, 2
-_081625D8:
- adds r0, r1, 0x2
- adds r0, r2, r0
- adds r2, r1
- ldrh r0, [r0]
- ldrh r1, [r2]
- subs r0, r1
- adds r0, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- ldrh r0, [r2]
- b _08162604
- .pool
-_081625F4:
- ldr r0, =gUnknown_085DF9FA
- ldrh r1, [r0, 0x1E]
- ldrh r2, [r0, 0x1C]
- subs r1, r2
- adds r1, 0x1
- lsls r1, 16
- lsrs r1, 16
- ldrh r0, [r0, 0x1C]
-_08162604:
- strh r0, [r4]
- strb r1, [r3]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81625B4
-
- thumb_func_start sub_8162614
-sub_8162614: @ 8162614
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, r4, 0
- lsls r1, 24
- lsrs r5, r1, 24
- bl sub_8165C40
- movs r0, 0xFA
- lsls r0, 1
- cmp r4, r0
- bne _08162640
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000bed
- adds r0, r1
- b _081626BA
- .pool
-_08162640:
- ldr r0, =0x000003fe
- cmp r4, r0
- bne _08162650
- bl sub_81A4DD8
- b _08162788
- .pool
-_08162650:
- ldr r0, =0x0000012b
- cmp r4, r0
- bhi _0816266C
- ldr r0, =gUnknown_0203BC88
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r4
- adds r0, r1
- b _081626BA
- .pool
-_0816266C:
- ldr r0, =0x0000018f
- cmp r4, r0
- bhi _08162698
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0xfffffed4
- adds r2, r4, r1
- movs r1, 0xEC
- muls r1, r2
- adds r0, r1
- ldr r1, =0x00000739
- adds r0, r1
- b _081626BA
- .pool
-_08162698:
- ldr r3, =gUnknown_08610970
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0xfffffe70
- adds r2, r6, r0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, 0xDC
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x32
-_081626BA:
- ldrb r2, [r0]
- movs r1, 0
- ldr r3, =gUnknown_085DCEDC
- ldrb r0, [r3]
- cmp r0, r2
- beq _081626D4
-_081626C6:
- adds r1, 0x1
- cmp r1, 0x1D
- bhi _081626D4
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081626C6
-_081626D4:
- cmp r1, 0x1E
- beq _08162700
- ldr r0, =gUnknown_085DCF0E
- adds r0, r1, r0
- ldrb r1, [r0]
- cmp r5, 0x1
- beq _08162744
- cmp r5, 0x1
- ble _0816272E
- cmp r5, 0xF
- bne _0816272E
- b _08162750
- .pool
-_08162700:
- movs r1, 0
- ldr r3, =gUnknown_085DCEFA
- ldrb r0, [r3]
- cmp r0, r2
- beq _08162718
-_0816270A:
- adds r1, 0x1
- cmp r1, 0x13
- bhi _08162718
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _0816270A
-_08162718:
- cmp r1, 0x14
- beq _0816275C
- ldr r0, =gUnknown_085DCF2C
- adds r0, r1, r0
- ldrb r1, [r0]
- cmp r5, 0x1
- beq _08162744
- cmp r5, 0x1
- ble _0816272E
- cmp r5, 0xF
- beq _08162750
-_0816272E:
- ldr r0, =0x00004010
- bl VarSet
- b _08162788
- .pool
-_08162744:
- ldr r0, =0x00004011
- bl VarSet
- b _08162788
- .pool
-_08162750:
- ldr r0, =0x0000401e
- bl VarSet
- b _08162788
- .pool
-_0816275C:
- cmp r5, 0x1
- beq _08162770
- cmp r5, 0x1
- ble _08162768
- cmp r5, 0xF
- beq _08162780
-_08162768:
- ldr r0, =0x00004010
- b _08162772
- .pool
-_08162770:
- ldr r0, =0x00004011
-_08162772:
- movs r1, 0x7
- bl VarSet
- b _08162788
- .pool
-_08162780:
- ldr r0, =0x0000401e
- movs r1, 0x7
- bl VarSet
-_08162788:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8162614
-
- thumb_func_start sub_8162794
-sub_8162794: @ 8162794
- push {lr}
- movs r0, 0xFA
- lsls r0, 1
- movs r1, 0
- bl sub_8162614
- pop {r0}
- bx r0
- thumb_func_end sub_8162794
-
- thumb_func_start sub_81627A4
-sub_81627A4: @ 81627A4
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- bl sub_8165C40
- movs r0, 0xFA
- lsls r0, 1
- cmp r4, r0
- bne _081627CC
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000bed
- adds r0, r1
- b _08162836
- .pool
-_081627CC:
- ldr r0, =0x0000012b
- cmp r4, r0
- bhi _081627E8
- ldr r0, =gUnknown_0203BC88
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r4
- adds r0, r1
- b _08162836
- .pool
-_081627E8:
- ldr r0, =0x0000018f
- cmp r4, r0
- bhi _08162814
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0xfffffed4
- adds r2, r4, r1
- movs r1, 0xEC
- muls r1, r2
- adds r0, r1
- ldr r1, =0x00000739
- adds r0, r1
- b _08162836
- .pool
-_08162814:
- ldr r3, =gUnknown_08610970
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0xfffffe70
- adds r2, r5, r0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, 0xDC
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x32
-_08162836:
- ldrb r2, [r0]
- movs r1, 0
- ldr r3, =gUnknown_085DCEDC
- ldrb r0, [r3]
- cmp r0, r2
- beq _08162850
-_08162842:
- adds r1, 0x1
- cmp r1, 0x1D
- bhi _08162850
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _08162842
-_08162850:
- cmp r1, 0x1E
- beq _0816286C
- ldr r0, =gUnknown_085DCF0E
- b _08162892
- .pool
-_0816286C:
- movs r1, 0
- ldr r3, =gUnknown_085DCEFA
- ldrb r0, [r3]
- cmp r0, r2
- beq _08162884
-_08162876:
- adds r1, 0x1
- cmp r1, 0x13
- bhi _08162884
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _08162876
-_08162884:
- cmp r1, 0x14
- bne _08162890
- movs r0, 0x7
- b _08162896
- .pool
-_08162890:
- ldr r0, =gUnknown_085DCF2C
-_08162892:
- adds r0, r1, r0
- ldrb r0, [r0]
-_08162896:
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81627A4
-
- thumb_func_start sub_81628A0
-sub_81628A0: @ 81628A0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- movs r1, 0
- mov r8, r1
- mov r10, r0
- movs r5, 0
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- mov r4, r10
- ldrb r4, [r4, 0xC]
- str r4, [sp, 0x18]
- mov r9, r5
- movs r7, 0x4
- str r7, [sp, 0x1C]
- ldr r1, =0x00000744
- adds r1, r0
- mov r12, r1
-_081628CA:
- movs r6, 0
- movs r3, 0
- mov r2, r12
- ldrb r0, [r2]
- ldr r4, [sp, 0x18]
- cmp r0, r4
- bne _081628FA
- mov r4, r9
- mov r2, r10
- adds r2, 0xC
-_081628DE:
- adds r3, 0x1
- cmp r3, 0x3
- bgt _081628FA
- ldr r7, =gSaveBlock2Ptr
- ldr r0, [r7]
- adds r1, r3, r4
- ldr r7, =0x00000744
- adds r0, r7
- adds r0, r1
- adds r1, r2, r3
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _081628DE
-_081628FA:
- cmp r3, 0x4
- bne _08162944
- movs r6, 0
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r3, =0x0000073c
- adds r0, r3
- ldr r2, [sp, 0x1C]
- adds r0, r2
- ldrb r0, [r0]
- mov r4, r10
- ldrb r4, [r4, 0x8]
- cmp r0, r4
- bne _08162944
- adds r1, r0, 0
- mov r2, r9
- adds r2, 0x4
-_0816291C:
- cmp r1, 0xFF
- bne _08162930
- movs r6, 0x7
- b _08162944
- .pool
-_08162930:
- adds r6, 0x1
- cmp r6, 0x6
- bgt _08162944
- ldr r7, =gSaveBlock2Ptr
- ldr r0, [r7]
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, r1
- beq _0816291C
-_08162944:
- cmp r6, 0x7
- beq _0816295A
- movs r0, 0xEC
- add r9, r0
- ldr r1, [sp, 0x1C]
- adds r1, 0xEC
- str r1, [sp, 0x1C]
- add r12, r0
- adds r5, 0x1
- cmp r5, 0x4
- ble _081628CA
-_0816295A:
- cmp r5, 0x4
- bgt _08162974
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- movs r1, 0xEC
- muls r1, r5
- adds r0, r1
- movs r4, 0xE7
- lsls r4, 3
- adds r0, r4
- b _081629B2
- .pool
-_08162974:
- movs r5, 0
- ldr r7, =gSaveBlock2Ptr
- ldr r0, [r7]
- ldr r1, =0x0000073a
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _0816299E
- adds r3, r7, 0
- adds r2, r1, 0
- movs r1, 0
-_0816298A:
- adds r1, 0xEC
- adds r5, 0x1
- cmp r5, 0x4
- bgt _081629C4
- ldr r0, [r3]
- adds r0, r1
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, 0
- bne _0816298A
-_0816299E:
- cmp r5, 0x4
- bgt _081629C4
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- movs r1, 0xEC
- muls r1, r5
- adds r0, r1
- movs r2, 0xE7
- lsls r2, 3
- adds r0, r2
-_081629B2:
- mov r1, r10
- movs r2, 0xEC
- bl memcpy
- b _08162A8A
- .pool
-_081629C4:
- mov r2, sp
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r3, =0x0000073a
- adds r0, r3
- ldrh r0, [r0]
- movs r1, 0
- strh r0, [r2]
- add r0, sp, 0xC
- strh r1, [r0]
- movs r7, 0x1
- add r8, r7
- movs r5, 0x1
- add r0, sp, 0xC
- mov r9, r0
- mov r12, r3
-_081629E4:
- movs r3, 0
- adds r7, r5, 0x1
- cmp r3, r8
- bge _08162A2E
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- movs r2, 0xEC
- adds r1, r5, 0
- muls r1, r2
- adds r0, r1
- mov r1, r12
- adds r4, r0, r1
- mov r6, sp
-_081629FE:
- lsls r0, r3, 1
- add r0, sp
- ldrh r2, [r4]
- adds r1, r2, 0
- ldrh r0, [r0]
- cmp r1, r0
- bcs _08162A24
- movs r3, 0
- movs r4, 0x1
- mov r8, r4
- strh r2, [r6]
- mov r0, r9
- strh r5, [r0]
- b _08162A2E
- .pool
-_08162A24:
- cmp r1, r0
- bhi _08162A2E
- adds r3, 0x1
- cmp r3, r8
- blt _081629FE
-_08162A2E:
- cmp r3, r8
- bne _08162A54
- mov r1, r8
- lsls r2, r1, 1
- mov r4, sp
- adds r3, r4, r2
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- movs r4, 0xEC
- adds r1, r5, 0
- muls r1, r4
- adds r0, r1
- add r0, r12
- ldrh r0, [r0]
- strh r0, [r3]
- add r2, r9
- strh r5, [r2]
- movs r0, 0x1
- add r8, r0
-_08162A54:
- adds r5, r7, 0
- cmp r5, 0x4
- ble _081629E4
- bl Random
- lsls r0, 16
- lsrs r0, 16
- mov r1, r8
- bl __modsi3
- adds r5, r0, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r5, 1
- add r1, sp
- adds r1, 0xC
- ldrh r2, [r1]
- movs r1, 0xEC
- muls r1, r2
- adds r0, r1
- movs r1, 0xE7
- lsls r1, 3
- adds r0, r1
- mov r1, r10
- movs r2, 0xEC
- bl memcpy
-_08162A8A:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81628A0
-
- thumb_func_start sub_8162AA0
-sub_8162AA0: @ 8162AA0
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- bl sub_8165C40
- movs r0, 0xFA
- lsls r0, 1
- cmp r4, r0
- bne _08162AD0
- ldr r1, =gTrainerPicIndices
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000bed
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r1
- b _08162BC8
- .pool
-_08162AD0:
- ldr r0, =0x000003fe
- cmp r4, r0
- bne _08162AE4
- bl sub_81A4CB0
- lsls r0, 24
- lsrs r0, 24
- b _08162BCA
- .pool
-_08162AE4:
- ldr r0, =0x0000012b
- cmp r4, r0
- bhi _08162B08
- ldr r2, =gTrainerPicIndices
- ldr r0, =gUnknown_0203BC88
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r4
- adds r0, r1
- ldrb r0, [r0]
- adds r0, r2
- b _08162BC8
- .pool
-_08162B08:
- ldr r0, =0x0000018f
- cmp r4, r0
- bhi _08162B64
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08162B38
- ldr r4, =gTrainerPicIndices
- bl sub_818649C
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- b _08162BC8
- .pool
-_08162B38:
- ldr r3, =gTrainerPicIndices
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0xfffffed4
- adds r2, r4, r1
- movs r1, 0xEC
- muls r1, r2
- adds r0, r1
- ldr r2, =0x00000739
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r3
- b _08162BC8
- .pool
-_08162B64:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _08162BB0
- ldr r4, =gTrainerPicIndices
- ldr r3, =gUnknown_08610970
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0xfffffe70
- adds r2, r5, r0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, 0xDC
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x32
- ldrb r0, [r0]
- adds r0, r4
- b _08162BC8
- .pool
-_08162BB0:
- ldr r5, =gTrainerPicIndices
- ldr r4, =gUnknown_08610970
- bl sub_81864A8
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x58
- muls r0, r1
- adds r0, r4
- adds r0, 0x32
- ldrb r0, [r0]
- adds r0, r5
-_08162BC8:
- ldrb r0, [r0]
-_08162BCA:
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8162AA0
-
- thumb_func_start sub_8162BD8
-sub_8162BD8: @ 8162BD8
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- bl sub_8165C40
- movs r0, 0xFA
- lsls r0, 1
- cmp r4, r0
- bne _08162C08
- ldr r1, =gTrainerClassNameIndices
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000bed
- adds r0, r2
- ldrb r0, [r0]
- b _08162C26
- .pool
-_08162C08:
- ldr r0, =0x000003fe
- cmp r4, r0
- bne _08162C1C
- bl sub_81A4D00
- lsls r0, 24
- lsrs r0, 24
- b _08162D1E
- .pool
-_08162C1C:
- ldr r0, =0x00000c03
- cmp r4, r0
- bne _08162C38
- ldr r0, =gTrainers
- ldr r1, =0x00007da1
-_08162C26:
- adds r0, r1
- ldrb r0, [r0]
- b _08162D1E
- .pool
-_08162C38:
- ldr r0, =0x0000012b
- cmp r4, r0
- bhi _08162C60
- ldr r2, =gTrainerClassNameIndices
- ldr r0, =gUnknown_0203BC88
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r4
- adds r0, r1
- ldrb r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- b _08162D1E
- .pool
-_08162C60:
- ldr r0, =0x0000018f
- cmp r4, r0
- bhi _08162CBC
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08162C90
- ldr r4, =gTrainerClassNameIndices
- bl sub_818649C
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r0, [r0]
- b _08162D1E
- .pool
-_08162C90:
- ldr r3, =gTrainerClassNameIndices
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0xfffffed4
- adds r2, r4, r1
- movs r1, 0xEC
- muls r1, r2
- adds r0, r1
- ldr r2, =0x00000739
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r3
- ldrb r0, [r0]
- b _08162D1E
- .pool
-_08162CBC:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08162CF4
- ldr r5, =gTrainerClassNameIndices
- ldr r4, =gUnknown_08610970
- bl sub_81864A8
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x58
- muls r0, r1
- adds r0, r4
- adds r0, 0x32
- ldrb r0, [r0]
- adds r0, r5
- ldrb r0, [r0]
- b _08162D1E
- .pool
-_08162CF4:
- ldr r4, =gTrainerClassNameIndices
- ldr r3, =gUnknown_08610970
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0xfffffe70
- adds r2, r5, r0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, 0xDC
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x32
- ldrb r0, [r0]
- adds r0, r4
- ldrb r0, [r0]
-_08162D1E:
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8162BD8
-
- thumb_func_start sub_8162D34
-sub_8162D34: @ 8162D34
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- bl sub_8165C40
- movs r0, 0xFA
- lsls r0, 1
- cmp r4, r0
- bne _08162D5C
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000bed
- adds r0, r1
- b _08162E0A
- .pool
-_08162D5C:
- ldr r0, =0x0000012b
- cmp r4, r0
- bhi _08162D78
- ldr r0, =gUnknown_0203BC88
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r4
- adds r0, r1
- b _08162E0A
- .pool
-_08162D78:
- ldr r0, =0x0000018f
- cmp r4, r0
- bhi _08162DC0
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08162DA0
- bl sub_818649C
- lsls r0, 24
- lsrs r0, 24
- b _08162E0C
- .pool
-_08162DA0:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0xfffffed4
- adds r2, r4, r1
- movs r1, 0xEC
- muls r1, r2
- adds r0, r1
- ldr r1, =0x00000739
- adds r0, r1
- b _08162E0A
- .pool
-_08162DC0:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08162DE8
- ldr r4, =gUnknown_08610970
- bl sub_81864A8
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x58
- muls r0, r1
- adds r0, r4
- b _08162E08
- .pool
-_08162DE8:
- ldr r3, =gUnknown_08610970
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0xfffffe70
- adds r2, r5, r0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, 0xDC
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x58
- muls r0, r1
- adds r0, r3
-_08162E08:
- adds r0, 0x32
-_08162E0A:
- ldrb r0, [r0]
-_08162E0C:
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8162D34
-
- thumb_func_start sub_8162E20
-sub_8162E20: @ 8162E20
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- movs r4, 0
- bl sub_8165C40
- movs r0, 0xFA
- lsls r0, 1
- cmp r5, r0
- bne _08162E54
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r1, 0xBF
- lsls r1, 4
- adds r2, r0, r1
-_08162E40:
- adds r0, r6, r4
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x6
- ble _08162E40
- b _08162F5C
- .pool
-_08162E54:
- ldr r0, =0x000003fe
- cmp r5, r0
- bne _08162E68
- adds r0, r6, 0
- bl sub_81A4D50
- b _08162F62
- .pool
-_08162E68:
- ldr r0, =0x00000c03
- cmp r5, r0
- bne _08162E88
- ldr r2, =gTrainers + TRAINER_STEVEN * 0x28 + 0x4 @ Steven's name
-_08162E70:
- adds r0, r6, r4
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x6
- ble _08162E70
- b _08162F5C
- .pool
-_08162E88:
- ldr r0, =0x0000012b
- cmp r5, r0
- bhi _08162EB4
- ldr r0, =gUnknown_0203BC88
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r5
- adds r0, r1
- adds r2, r0, 0x4
-_08162E9A:
- adds r0, r6, r4
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x6
- ble _08162E9A
- b _08162F5C
- .pool
-_08162EB4:
- ldr r0, =0x0000018f
- cmp r5, r0
- bhi _08162F00
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08162ED8
- adds r0, r6, 0
- bl sub_8186468
- b _08162F62
- .pool
-_08162ED8:
- ldr r2, =gSaveBlock2Ptr
- movs r0, 0xEC
- adds r1, r5, 0
- muls r1, r0
- ldr r0, =0xfffef2a8
- adds r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r1, r0, 0x4
- adds r0, 0xE4
- ldrb r2, [r0]
- adds r0, r6, 0
- bl sub_81DB5E8
- b _08162F62
- .pool
-_08162F00:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08162F24
- bl sub_81864A8
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_81864C0
- lsls r0, 24
- lsrs r4, r0, 24
- b _08162F3E
- .pool
-_08162F24:
- ldr r1, =gSaveBlock2Ptr
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r2, =0xffff969c
- adds r0, r2
- ldr r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r5, r0, 27
- adds r1, 0x3F
- ldrb r4, [r1]
-_08162F3E:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81A1650
- adds r1, r0, 0
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_81DB5E8
- b _08162F62
- .pool
-_08162F5C:
- adds r1, r6, r4
- movs r0, 0xFF
- strb r0, [r1]
-_08162F62:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8162E20
-
- thumb_func_start sub_8162F68
-sub_8162F68: @ 8162F68
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- bl sub_8165C40
- movs r0, 0xFA
- lsls r0, 1
- cmp r4, r0
- bne _08162F90
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000bed
- adds r0, r1
- b _0816300E
- .pool
-_08162F90:
- ldr r0, =0x000003fe
- cmp r4, r0
- bne _08162FA4
- bl sub_81A4DB8
- lsls r0, 24
- lsrs r0, 24
- b _08163042
- .pool
-_08162FA4:
- ldr r0, =0x0000012b
- cmp r4, r0
- bhi _08162FC0
- ldr r0, =gUnknown_0203BC88
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r4
- adds r0, r1
- b _0816300E
- .pool
-_08162FC0:
- ldr r0, =0x0000018f
- cmp r4, r0
- bhi _08162FEC
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0xfffffed4
- adds r2, r4, r1
- movs r1, 0xEC
- muls r1, r2
- adds r0, r1
- ldr r1, =0x00000739
- adds r0, r1
- b _0816300E
- .pool
-_08162FEC:
- ldr r3, =gUnknown_08610970
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0xfffffe70
- adds r2, r5, r0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, 0xDC
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x32
-_0816300E:
- ldrb r2, [r0]
- movs r1, 0
- ldr r3, =gUnknown_085DCEFA
- ldrb r0, [r3]
- cmp r0, r2
- beq _08163028
-_0816301A:
- adds r1, 0x1
- cmp r1, 0x13
- bhi _08163028
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _0816301A
-_08163028:
- cmp r1, 0x14
- bne _08163040
- movs r0, 0
- b _08163042
- .pool
-_08163040:
- movs r0, 0x1
-_08163042:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8162F68
-
- thumb_func_start sub_8163048
-sub_8163048: @ 8163048
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ZeroEnemyPartyMons
- ldr r0, =gUnknown_02038BCA
- ldrh r0, [r0]
- movs r1, 0
- adds r2, r4, 0
- bl sub_81630C4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8163048
-
- thumb_func_start sub_816306C
-sub_816306C: @ 816306C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ZeroEnemyPartyMons
- ldr r0, =gUnknown_02038BCA
- ldrh r0, [r0]
- movs r1, 0
- adds r2, r4, 0
- bl sub_81630C4
- ldr r0, =gUnknown_02038BCC
- ldrh r0, [r0]
- movs r1, 0x3
- adds r2, r4, 0
- bl sub_81630C4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_816306C
-
- thumb_func_start sub_81630A0
-sub_81630A0: @ 81630A0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ZeroEnemyPartyMons
- ldr r0, =gUnknown_02038BCA
- ldrh r0, [r0]
- movs r1, 0
- adds r2, r4, 0
- bl sub_8165EA4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81630A0
-
- thumb_func_start sub_81630C4
-sub_81630C4: @ 81630C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x40
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x18]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x1C]
- add r4, sp, 0x14
- movs r0, 0xFF
- strb r0, [r4]
- bl sub_8165C40
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x20]
- ldr r0, =0x0000012b
- cmp r5, r0
- bhi _08163138
- adds r0, r5, 0
- bl sub_8165D08
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- ldr r0, =gUnknown_02038BCA
- ldrh r2, [r0]
- ldr r0, =gUnknown_0203BC88
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r2
- adds r0, r1
- ldr r0, [r0, 0x30]
- str r0, [sp, 0x2C]
- movs r0, 0
- str r0, [sp, 0x28]
- ldr r2, [sp, 0x2C]
- ldrh r1, [r2]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _08163124
- b _08163278
-_08163124:
- b _08163260
- .pool
-_08163138:
- movs r0, 0xFA
- lsls r0, 1
- cmp r5, r0
- bne _08163180
- ldr r7, [sp, 0x18]
- adds r0, r7, 0x3
- cmp r7, r0
- blt _0816314A
- b _08163426
-_0816314A:
- ldr r4, =gSaveBlock2Ptr
-_0816314C:
- movs r0, 0x64
- muls r0, r7
- ldr r1, =gEnemyParty
- adds r0, r1
- ldr r5, [sp, 0x18]
- subs r2, r7, r5
- movs r1, 0x2C
- muls r2, r1
- movs r6, 0xC2
- lsls r6, 4
- adds r2, r6
- ldr r1, [r4]
- adds r1, r2
- bl sub_806819C
- adds r7, 0x1
- adds r0, r5, 0
- adds r0, 0x3
- cmp r7, r0
- blt _0816314C
- b _08163426
- .pool
-_08163180:
- ldr r0, =0x000003fe
- cmp r5, r0
- bne _08163190
- bl sub_81A4E04
- b _08163426
- .pool
-_08163190:
- ldr r0, =0x0000018f
- cmp r5, r0
- bhi _08163218
- movs r6, 0
- ldr r7, [sp, 0x18]
- ldr r1, [sp, 0x1C]
- adds r0, r7, r1
- cmp r7, r0
- blt _081631A4
- b _08163426
-_081631A4:
- ldr r2, =0xfffffed4
- adds r1, r5, r2
- movs r0, 0xEC
- adds r2, r1, 0
- muls r2, r0
- mov r8, r2
- muls r0, r5
- ldr r5, =0xfffef2a8
- adds r4, r0, r5
-_081631B6:
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- movs r0, 0x2C
- adds r2, r6, 0
- muls r2, r0
- mov r1, r8
- adds r0, r2, r1
- adds r1, r3, r0
- ldr r5, =0x0000076c
- adds r0, r1, r5
- ldrh r0, [r0]
- cmp r0, 0
- beq _081631F0
- adds r5, 0xC
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r1, [sp, 0x20]
- cmp r0, r1
- bhi _081631F0
- movs r0, 0x64
- muls r0, r7
- ldr r1, =gEnemyParty
- adds r0, r1
- adds r1, r3, r4
- adds r2, 0x34
- adds r1, r2
- movs r2, 0
- bl sub_8068338
-_081631F0:
- adds r6, 0x1
- adds r7, 0x1
- ldr r2, [sp, 0x18]
- ldr r5, [sp, 0x1C]
- adds r0, r2, r5
- cmp r7, r0
- blt _081631B6
- b _08163426
- .pool
-_08163218:
- ldr r7, [sp, 0x18]
- adds r0, r7, 0x3
- cmp r7, r0
- blt _08163222
- b _08163426
-_08163222:
- ldr r6, =gSaveBlock2Ptr
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r1, =0xffff969c
- adds r5, r0, r1
- movs r4, 0
-_08163230:
- movs r0, 0x64
- muls r0, r7
- ldr r1, =gEnemyParty
- adds r0, r1
- ldr r1, [r6]
- adds r1, r5
- lsrs r2, r4, 24
- bl sub_8068528
- movs r2, 0x80
- lsls r2, 17
- adds r4, r2
- adds r7, 0x1
- ldr r0, [sp, 0x18]
- adds r0, 0x3
- cmp r7, r0
- blt _08163230
- b _08163426
- .pool
-_08163260:
- ldr r0, [sp, 0x28]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x28]
- lsls r0, 1
- ldr r5, [sp, 0x2C]
- adds r0, r5
- ldrh r1, [r0]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _08163260
-_08163278:
- movs r7, 0
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- str r4, [sp, 0x30]
- ldr r6, [sp, 0x1C]
- cmp r7, r6
- bne _08163296
- b _08163426
-_08163296:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp, 0x28]
- bl __modsi3
- lsls r0, 1
- ldr r1, [sp, 0x2C]
- adds r0, r1
- ldrh r4, [r0]
- ldr r2, [sp, 0x20]
- cmp r2, 0x32
- beq _081632B6
- cmp r2, 0x14
- bne _081632BE
-_081632B6:
- ldr r0, =0x00000351
- cmp r4, r0
- bls _081632BE
- b _0816341E
-_081632BE:
- movs r6, 0
- ldr r5, [sp, 0x18]
- adds r5, r7
- mov r8, r5
- b _081632D2
- .pool
-_081632D0:
- adds r6, 0x1
-_081632D2:
- cmp r6, r8
- bge _081632F6
- movs r1, 0x64
- adds r0, r6, 0
- muls r0, r1
- ldr r2, =gEnemyParty
- adds r0, r2
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- ldr r1, =gUnknown_0203BC8C
- ldr r2, [r1]
- lsls r1, r4, 4
- adds r1, r2
- ldrh r1, [r1]
- cmp r0, r1
- bne _081632D0
-_081632F6:
- cmp r6, r8
- beq _081632FC
- b _0816341E
-_081632FC:
- movs r6, 0
- cmp r6, r8
- bge _08163346
- ldr r5, =gBattleFrontierHeldItems
- mov r9, r5
- movs r3, 0
-_08163308:
- ldr r0, =gEnemyParty
- adds r5, r3, r0
- adds r0, r5, 0
- movs r1, 0xC
- movs r2, 0
- str r3, [sp, 0x38]
- bl GetMonData
- ldr r3, [sp, 0x38]
- cmp r0, 0
- beq _0816333E
- adds r0, r5, 0
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- ldr r1, =gUnknown_0203BC8C
- ldr r2, [r1]
- lsls r1, r4, 4
- adds r1, r2
- ldrb r1, [r1, 0xA]
- lsls r1, 1
- add r1, r9
- ldr r3, [sp, 0x38]
- ldrh r1, [r1]
- cmp r0, r1
- beq _08163346
-_0816333E:
- adds r3, 0x64
- adds r6, 0x1
- cmp r6, r8
- blt _08163308
-_08163346:
- cmp r6, r8
- bne _0816341E
- movs r6, 0
- cmp r6, r7
- bge _08163368
- add r0, sp, 0xC
- ldrh r0, [r0]
- cmp r0, r4
- beq _08163368
- add r1, sp, 0xC
-_0816335A:
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, r7
- bge _08163368
- ldrh r0, [r1]
- cmp r0, r4
- bne _0816335A
-_08163368:
- cmp r6, r7
- bne _0816341E
- lsls r0, r7, 1
- add r0, sp
- adds r0, 0xC
- strh r4, [r0]
- movs r1, 0x64
- mov r0, r8
- muls r0, r1
- ldr r2, =gEnemyParty
- adds r0, r2
- ldr r5, =gUnknown_0203BC8C
- ldr r2, [r5]
- lsls r4, 4
- adds r2, r4, r2
- ldrh r1, [r2]
- ldrb r3, [r2, 0xC]
- ldr r6, [sp, 0x24]
- str r6, [sp]
- ldrb r2, [r2, 0xB]
- str r2, [sp, 0x4]
- ldr r2, [sp, 0x30]
- str r2, [sp, 0x8]
- ldr r2, [sp, 0x20]
- bl sub_8068634
- movs r0, 0xFF
- mov r6, sp
- strb r0, [r6, 0x14]
- movs r6, 0
- adds r0, r7, 0x1
- str r0, [sp, 0x34]
- mov r9, r4
- movs r0, 0x64
- mov r3, r8
- muls r3, r0
- mov r1, r9
- str r1, [sp, 0x3C]
- ldr r2, =gEnemyParty
- mov r10, r2
-_081633B8:
- ldr r0, [r5]
- ldr r7, [sp, 0x3C]
- adds r0, r7, r0
- lsls r4, r6, 1
- adds r0, 0x2
- adds r0, r4
- ldrh r1, [r0]
- lsls r2, r6, 24
- lsrs r2, 24
- mov r7, r10
- adds r0, r3, r7
- str r3, [sp, 0x38]
- bl sub_80691F4
- ldr r0, [r5]
- ldr r1, [sp, 0x3C]
- adds r0, r1, r0
- adds r0, 0x2
- adds r0, r4
- ldrh r0, [r0]
- ldr r3, [sp, 0x38]
- cmp r0, 0xDA
- bne _081633EC
- movs r0, 0
- mov r2, sp
- strb r0, [r2, 0x14]
-_081633EC:
- adds r6, 0x1
- cmp r6, 0x3
- ble _081633B8
- movs r5, 0x64
- mov r4, r8
- muls r4, r5
- ldr r6, =gEnemyParty
- adds r4, r6
- adds r0, r4, 0
- movs r1, 0x20
- add r2, sp, 0x14
- bl SetMonData
- ldr r0, =gUnknown_0203BC8C
- ldr r0, [r0]
- add r0, r9
- ldrb r2, [r0, 0xA]
- lsls r2, 1
- ldr r0, =gBattleFrontierHeldItems
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- ldr r7, [sp, 0x34]
-_0816341E:
- ldr r0, [sp, 0x1C]
- cmp r7, r0
- beq _08163426
- b _08163296
-_08163426:
- add sp, 0x40
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81630C4
-
- thumb_func_start sub_8163444
-sub_8163444: @ 8163444
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x8]
- movs r1, 0xFF
- add r0, sp, 0x4
- strb r1, [r0]
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- movs r0, 0xDC
- adds r0, r2
- mov r10, r0
- ldrb r0, [r0, 0x1]
- movs r1, 0x9
- str r1, [sp, 0x10]
- cmp r0, 0x4
- bhi _08163474
- movs r0, 0x6
- str r0, [sp, 0x10]
-_08163474:
- ldr r1, =0x00000ca9
- adds r0, r2, r1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- movs r1, 0x32
- str r1, [sp, 0xC]
- cmp r0, 0
- beq _0816348A
- movs r0, 0x64
- str r0, [sp, 0xC]
-_0816348A:
- movs r7, 0
- adds r2, 0xE2
- str r2, [sp, 0x14]
- add r1, sp, 0x4
- mov r9, r1
-_08163494:
- ldr r2, [sp, 0x8]
- adds r6, r2, r7
- movs r0, 0x64
- muls r0, r6
- ldr r1, =gEnemyParty
- adds r0, r1
- lsls r5, r7, 1
- adds r4, r5, r7
- lsls r4, 2
- mov r2, r10
- adds r1, r2, r4
- ldrh r1, [r1, 0x4]
- movs r2, 0x8
- str r2, [sp]
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- bl pokemon_make_ev_something
- movs r0, 0xFF
- mov r1, r9
- strb r0, [r1]
- adds r2, r7, 0x1
- mov r8, r2
- movs r1, 0x3
-_081634C4:
- ldr r2, [sp, 0x14]
- adds r0, r2, r4
- ldrh r0, [r0]
- cmp r0, 0xDA
- bne _081634D4
- movs r2, 0
- mov r0, r9
- strb r2, [r0]
-_081634D4:
- adds r4, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _081634C4
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x20
- add r2, sp, 0x4
- bl SetMonData
- adds r2, r5, r7
- lsls r2, 2
- add r2, r10
- adds r2, 0xE
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- mov r7, r8
- cmp r7, 0x3
- bne _08163494
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8163444
-
- thumb_func_start sub_8163524
-sub_8163524: @ 8163524
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl sub_8165C40
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =gUnknown_0203BC88
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r4
- adds r0, r1
- ldr r5, [r0, 0x30]
- movs r4, 0
- ldrh r1, [r5]
- b _08163558
- .pool
-_0816354C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 1
- adds r0, r5
- ldrh r1, [r0]
-_08163558:
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _0816354C
-_0816355E:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 1
- adds r0, r5
- ldrh r1, [r0]
- cmp r6, 0x32
- beq _0816357A
- cmp r6, 0x14
- bne _08163580
-_0816357A:
- ldr r0, =0x00000351
- cmp r1, r0
- bhi _0816355E
-_08163580:
- adds r0, r1, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8163524
-
- thumb_func_start sub_8163590
-sub_8163590: @ 8163590
- push {lr}
- bl ZeroEnemyPartyMons
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- beq _081635C0
- ldr r0, =gUnknown_02038BCA
- ldrh r0, [r0]
- movs r1, 0
- bl sub_81635D4
- b _081635CA
- .pool
-_081635C0:
- ldr r0, =gUnknown_02038BCA
- ldrh r0, [r0]
- movs r1, 0
- bl sub_816379C
-_081635CA:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8163590
-
- thumb_func_start sub_81635D4
-sub_81635D4: @ 81635D4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 16
- lsrs r2, r0, 16
- adds r3, r2, 0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x10]
- ldr r0, =0x0000012b
- cmp r2, r0
- bhi _0816364A
- ldr r4, =gSaveBlock2Ptr
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 24
- ldr r4, [r4]
- lsrs r0, 22
- movs r2, 0xCE
- lsls r2, 4
- adds r1, r4, r2
- adds r1, r0
- ldrh r0, [r1]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, =0x00000cb2
- adds r4, r3
- ldrh r0, [r4]
- cmp r0, 0x5
- bhi _0816363C
- adds r0, r1, 0
- movs r1, 0
- bl sub_81A6CA8
- lsls r0, 24
- lsrs r0, 24
- b _081636A6
- .pool
-_0816363C:
- adds r0, r1, 0
- movs r1, 0x1
- bl sub_81A6CA8
- lsls r0, 24
- lsrs r0, 24
- b _081636A6
-_0816364A:
- movs r0, 0xFA
- lsls r0, 1
- cmp r2, r0
- bne _08163694
- ldr r7, [sp, 0x10]
- adds r0, r7, 0x3
- cmp r7, r0
- blt _0816365C
- b _08163776
-_0816365C:
- ldr r4, =gSaveBlock2Ptr
-_0816365E:
- movs r0, 0x64
- muls r0, r7
- ldr r1, =gEnemyParty
- adds r0, r1
- ldr r1, [sp, 0x10]
- subs r2, r7, r1
- movs r1, 0x2C
- muls r2, r1
- movs r3, 0xC2
- lsls r3, 4
- adds r2, r3
- ldr r1, [r4]
- adds r1, r2
- bl sub_806819C
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, [sp, 0x10]
- adds r0, 0x3
- cmp r7, r0
- blt _0816365E
- b _08163776
- .pool
-_08163694:
- ldr r0, =0x000003fe
- cmp r3, r0
- bne _081636A4
- bl sub_81A6CD0
- b _08163776
- .pool
-_081636A4:
- movs r0, 0x1F
-_081636A6:
- str r0, [sp, 0x18]
- bl sub_8165C40
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldrb r2, [r1, 0xA]
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- orrs r2, r0
- mov r8, r2
- movs r7, 0
-_081636CE:
- ldr r1, =gUnknown_03006298
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- mov r9, r0
- ldr r3, [sp, 0x10]
- adds r5, r3, r7
- movs r0, 0x64
- adds r6, r5, 0
- muls r6, r0
- ldr r1, =gEnemyParty
- adds r0, r6, r1
- ldr r3, =gUnknown_0203BC8C
- ldr r2, [r3]
- mov r1, r9
- lsls r4, r1, 4
- adds r2, r4, r2
- ldrh r1, [r2]
- ldrb r3, [r2, 0xC]
- mov r10, r3
- ldr r3, [sp, 0x18]
- str r3, [sp]
- ldrb r2, [r2, 0xB]
- str r2, [sp, 0x4]
- mov r2, r8
- str r2, [sp, 0x8]
- ldr r2, [sp, 0x14]
- mov r3, r10
- bl sub_8068634
- movs r1, 0
- add r0, sp, 0xC
- strb r1, [r0]
- movs r3, 0
- adds r7, 0x1
- mov r10, r7
- adds r7, r4, 0
-_08163718:
- ldr r0, =gUnknown_0203BC8C
- ldr r1, [r0]
- mov r2, r9
- lsls r0, r2, 4
- adds r0, r1
- lsls r1, r3, 1
- adds r0, 0x2
- adds r0, r1
- ldrh r1, [r0]
- ldr r2, =gEnemyParty
- adds r0, r6, r2
- adds r2, r3, 0
- str r3, [sp, 0x1C]
- bl sub_81A7024
- ldr r3, [sp, 0x1C]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _08163718
- movs r3, 0x64
- adds r4, r5, 0
- muls r4, r3
- ldr r0, =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x20
- add r2, sp, 0xC
- bl SetMonData
- ldr r1, =gUnknown_0203BC8C
- ldr r0, [r1]
- adds r0, r7, r0
- ldrb r2, [r0, 0xA]
- lsls r2, 1
- ldr r0, =gBattleFrontierHeldItems
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- mov r2, r10
- lsls r0, r2, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _081636CE
-_08163776:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81635D4
-
- thumb_func_start sub_816379C
-sub_816379C: @ 816379C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x10]
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldrb r0, [r1, 0xA]
- mov r9, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- mov r2, r9
- orrs r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- orrs r2, r0
- mov r9, r2
- movs r7, 0
- mov r8, r7
-_081637D0:
- ldr r1, =gUnknown_03006298
- mov r2, r8
- lsls r0, r2, 1
- adds r0, r1
- ldrh r4, [r0]
- ldr r5, [sp, 0x10]
- add r5, r8
- movs r7, 0x64
- adds r6, r5, 0
- muls r6, r7
- ldr r1, =gEnemyParty
- adds r0, r6, r1
- ldr r7, =gUnknown_0203BC8C
- ldr r2, [r7]
- lsls r4, 4
- adds r2, r4, r2
- ldrh r1, [r2]
- ldrb r3, [r2, 0xC]
- movs r7, 0
- str r7, [sp]
- ldrb r2, [r2, 0xB]
- str r2, [sp, 0x4]
- mov r2, r9
- str r2, [sp, 0x8]
- movs r2, 0x1E
- bl sub_8068634
- movs r1, 0
- add r0, sp, 0xC
- strb r1, [r0]
- mov r10, r5
- mov r0, r8
- adds r0, 0x1
- str r0, [sp, 0x14]
- mov r8, r4
- mov r5, r8
-_08163818:
- ldr r1, =gUnknown_0203BC8C
- ldr r0, [r1]
- adds r0, r5, r0
- lsls r4, r7, 1
- adds r0, 0x2
- adds r0, r4
- ldrh r1, [r0]
- ldr r2, =gEnemyParty
- adds r0, r6, r2
- adds r2, r7, 0
- bl sub_81A7024
- ldr r1, =gUnknown_0203BC8C
- ldr r0, [r1]
- adds r0, r5, r0
- adds r0, 0x2
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0xDA
- bne _08163846
- movs r1, 0
- add r0, sp, 0xC
- strb r1, [r0]
-_08163846:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x3
- bls _08163818
- movs r2, 0x64
- mov r4, r10
- muls r4, r2
- ldr r7, =gEnemyParty
- adds r4, r7
- adds r0, r4, 0
- movs r1, 0x20
- add r2, sp, 0xC
- bl SetMonData
- ldr r1, =gUnknown_0203BC8C
- ldr r0, [r1]
- add r0, r8
- ldrb r2, [r0, 0xA]
- lsls r2, 1
- ldr r0, =gBattleFrontierHeldItems
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- ldr r2, [sp, 0x14]
- lsls r0, r2, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x2
- bls _081637D0
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_816379C
-
- thumb_func_start ConvertBattleFrontierTrainerSpeechToString
-ConvertBattleFrontierTrainerSpeechToString: @ 81638AC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gStringVar4
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- movs r3, 0x2
- bl ConvertEasyChatWordsToString
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x1
- adds r1, r4, 0
- bl GetStringWidth
- cmp r0, 0xCC
- bls _0816390A
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertEasyChatWordsToString
- ldrb r0, [r4]
- movs r1, 0x1
- cmp r0, 0xFE
- beq _081638EE
- adds r2, r4, 0
-_081638E4:
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r1, 0x1
- cmp r0, 0xFE
- bne _081638E4
-_081638EE:
- ldr r2, =gStringVar4
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r3, r2, 0
- cmp r0, 0xFE
- beq _08163904
-_081638FA:
- adds r1, 0x1
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0xFE
- bne _081638FA
-_08163904:
- adds r1, r3
- movs r0, 0xFA
- strb r0, [r1]
-_0816390A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ConvertBattleFrontierTrainerSpeechToString
-
- thumb_func_start sub_8163914
-sub_8163914: @ 8163914
- push {lr}
- bl sub_8165C40
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- beq _08163930
- ldr r0, =gUnknown_02038BCC
- b _08163932
- .pool
-_08163930:
- ldr r0, =gUnknown_02038BCA
-_08163932:
- ldrh r3, [r0]
- movs r0, 0xFA
- lsls r0, 1
- cmp r3, r0
- bne _08163950
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000bfc
- b _08163986
- .pool
-_08163950:
- ldr r0, =0x0000012b
- cmp r3, r0
- bhi _08163974
- ldr r2, =gUnknown_0203BC88
- movs r0, 0x34
- adds r1, r3, 0
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0xC
- bl ConvertBattleFrontierTrainerSpeechToString
- b _081639A8
- .pool
-_08163974:
- ldr r0, =0x0000018f
- cmp r3, r0
- bhi _0816399C
- ldr r1, =gSaveBlock2Ptr
- movs r0, 0xEC
- muls r0, r3
- ldr r1, [r1]
- adds r0, r1
- ldr r1, =0xfffef2b8
-_08163986:
- adds r0, r1
- bl ConvertBattleFrontierTrainerSpeechToString
- b _081639A8
- .pool
-_0816399C:
- adds r0, r3, 0
- adds r0, 0x70
- lsls r0, 24
- lsrs r0, 24
- bl sub_819F99C
-_081639A8:
- pop {r0}
- bx r0
- thumb_func_end sub_8163914
-
- thumb_func_start sub_81639AC
-sub_81639AC: @ 81639AC
- push {r4-r6,lr}
- sub sp, 0x4
- bl sub_81864CC
- ldr r0, =gBattleScripting
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0xA
- bhi _08163A78
- lsls r0, 2
- ldr r1, =_081639D0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081639D0:
- .4byte _081639FC
- .4byte _08163A38
- .4byte _08163A74
- .4byte _081639FC
- .4byte _081639FC
- .4byte _081639FC
- .4byte _081639FC
- .4byte _081639FC
- .4byte _08163A78
- .4byte _081639FC
- .4byte _081639FC
-_081639FC:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000ebc
- adds r1, r0, r2
- ldr r2, [r1]
- ldr r0, =0x00fffffe
- cmp r2, r0
- bhi _08163A2C
- adds r0, r2, 0x1
- str r0, [r1]
- movs r1, 0x14
- bl __umodsi3
- cmp r0, 0
- bne _08163A78
- bl sub_81DA57C
- b _08163A78
- .pool
-_08163A2C:
- ldr r0, =0x00ffffff
- str r0, [r1]
- b _08163A78
- .pool
-_08163A38:
- movs r5, 0
- ldr r6, =gSaveBlock1Ptr
-_08163A3C:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- movs r0, 0x8E
- lsls r0, 2
- adds r1, r4, r0
- ldr r0, [r6]
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- ldr r0, =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r5, 0x1
- cmp r5, 0x5
- ble _08163A3C
- b _08163A78
- .pool
-_08163A74:
- bl sub_816537C
-_08163A78:
- ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81639AC
-
- thumb_func_start sub_8163A8C
-sub_8163A8C: @ 8163A8C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8145F20
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08163AB0
- ldr r0, =gMain
- ldr r1, =sub_81639AC
- str r1, [r0, 0x8]
- ldr r0, =sub_8036760
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08163AB0:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8163A8C
-
- thumb_func_start sub_8163AC4
-sub_8163AC4: @ 8163AC4
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, =gBattleScripting
- ldr r2, =gSpecialVar_0x8004
- ldrh r1, [r2]
- adds r0, 0x26
- strb r1, [r0]
- ldrh r0, [r2]
- cmp r0, 0xA
- bls _08163ADA
- b _08163E68
-_08163ADA:
- lsls r0, 2
- ldr r1, =_08163AF0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08163AF0:
- .4byte _08163B1C
- .4byte _08163BC0
- .4byte _08163C10
- .4byte _08163C70
- .4byte _08163CC4
- .4byte _08163D28
- .4byte _08163D74
- .4byte _08163DB4
- .4byte _08163E2C
- .4byte _08163DF4
- .4byte _08163DC8
-_08163B1C:
- ldr r5, =gBattleTypeFlags
- movs r0, 0x84
- lsls r0, 1
- str r0, [r5]
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- beq _08163B56
- cmp r4, 0x1
- bgt _08163B44
- cmp r4, 0
- beq _08163B4E
- b _08163BA6
- .pool
-_08163B44:
- cmp r4, 0x2
- beq _08163B64
- cmp r4, 0x3
- beq _08163B98
- b _08163BA6
-_08163B4E:
- movs r0, 0x3
- bl sub_8163048
- b _08163BA6
-_08163B56:
- movs r0, 0x4
- bl sub_8163048
- ldr r0, [r5]
- orrs r0, r4
- str r0, [r5]
- b _08163BA6
-_08163B64:
- movs r0, 0x2
- bl sub_816306C
- ldr r1, =gUnknown_02038BCE
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000cd6
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- ldrh r0, [r1]
- bl sub_8165404
- ldr r0, [r5]
- ldr r1, =0x00408041
- orrs r0, r1
- str r0, [r5]
- b _08163BA6
- .pool
-_08163B98:
- ldr r0, [r5]
- ldr r1, =0x00800043
- orrs r0, r1
- str r0, [r5]
- movs r0, 0x2
- bl sub_816306C
-_08163BA6:
- ldr r0, =sub_8163A8C
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl PlayNewMapMusic__default_for_battle
- movs r0, 0
- b _08163E10
- .pool
-_08163BC0:
- movs r5, 0
- ldr r6, =gSaveBlock1Ptr
-_08163BC4:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =gPlayerParty
- adds r0, r4, r0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- movs r0, 0x8E
- lsls r0, 2
- adds r4, r0
- ldr r0, [r6]
- adds r0, r4
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r5, 0x1
- cmp r5, 0x5
- ble _08163BC4
- ldr r0, =sub_8163A8C
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl PlayNewMapMusic__default_for_battle
- movs r0, 0xC
- b _08163E10
- .pool
-_08163C10:
- bl ZeroEnemyPartyMons
- movs r5, 0
- ldr r4, =gSaveBlock2Ptr
-_08163C18:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x2C
- adds r2, r5, 0
- muls r2, r1
- movs r1, 0xC2
- lsls r1, 4
- adds r2, r1
- ldr r1, [r4]
- adds r1, r2
- bl sub_806819C
- adds r5, 0x1
- cmp r5, 0x2
- ble _08163C18
- ldr r1, =gBattleTypeFlags
- ldr r0, =0x00000808
- str r0, [r1]
- ldr r1, =gUnknown_02038BCA
- movs r0, 0
- strh r0, [r1]
- ldr r0, =sub_8163A8C
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl PlayNewMapMusic__default_for_battle
- movs r0, 0xD
- b _08163E10
- .pool
-_08163C70:
- ldr r4, =gBattleTypeFlags
- ldr r0, =0x00010008
- str r0, [r4]
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1
- bne _08163C8A
- ldr r0, [r4]
- orrs r0, r1
- str r0, [r4]
-_08163C8A:
- ldr r0, =gUnknown_02038BCA
- ldrh r1, [r0]
- ldr r0, =0x000003fe
- cmp r1, r0
- bne _08163C9A
- movs r0, 0x2
- bl sub_8163048
-_08163C9A:
- ldr r0, =sub_8163A8C
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl sub_806E694
- movs r0, 0x3
- b _08163E10
- .pool
-_08163CC4:
- ldr r4, =gBattleTypeFlags
- ldr r0, =0x00020008
- str r0, [r4]
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1
- bne _08163CDE
- ldr r0, [r4]
- orrs r0, r1
- str r0, [r4]
-_08163CDE:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000ca9
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- beq _08163D0C
- movs r0, 0x3
- bl sub_8163048
- b _08163D12
- .pool
-_08163D0C:
- movs r0, 0x3
- bl sub_81630A0
-_08163D12:
- ldr r0, =sub_8163A8C
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl PlayNewMapMusic__default_for_battle
- movs r0, 0x4
- b _08163E10
- .pool
-_08163D28:
- ldr r1, =gBattleTypeFlags
- ldr r0, =0x00040008
- str r0, [r1]
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- beq _08163D58
- movs r0, 0x3
- bl sub_8163048
- b _08163D5E
- .pool
-_08163D58:
- movs r0, 0x3
- bl sub_81630A0
-_08163D5E:
- ldr r0, =sub_8163A8C
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl PlayNewMapMusic__default_for_battle
- movs r0, 0x5
- b _08163E10
- .pool
-_08163D74:
- ldr r4, =gBattleTypeFlags
- ldr r0, =0x00080008
- str r0, [r4]
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1
- bne _08163D8E
- ldr r0, [r4]
- orrs r0, r1
- str r0, [r4]
-_08163D8E:
- bl sub_8163590
- ldr r0, =sub_8163A8C
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl PlayNewMapMusic__default_for_battle
- movs r0, 0x6
- b _08163E10
- .pool
-_08163DB4:
- ldr r1, =gBattleTypeFlags
- movs r0, 0x84
- lsls r0, 1
- str r0, [r1]
- movs r0, 0x3
- bl sub_8163048
- b _08163E00
- .pool
-_08163DC8:
- ldr r1, =gBattleTypeFlags
- ldr r0, =0x00200008
- str r0, [r1]
- movs r0, 0x3
- bl sub_8163048
- ldr r0, =sub_8163A8C
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl PlayNewMapMusic__default_for_battle
- movs r0, 0xA
- b _08163E10
- .pool
-_08163DF4:
- ldr r1, =gBattleTypeFlags
- ldr r0, =0x00008109
- str r0, [r1]
- movs r0, 0x1
- bl sub_816306C
-_08163E00:
- ldr r0, =sub_8163A8C
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl PlayNewMapMusic__default_for_battle
- movs r0, 0x7
-_08163E10:
- bl sub_80B100C
- lsls r0, 24
- lsrs r0, 24
- bl sub_8145EF4
- b _08163E68
- .pool
-_08163E2C:
- ldr r1, =gBattleTypeFlags
- ldr r0, =0x00408049
- str r0, [r1]
- ldr r5, =0x00000c03
- adds r0, r5, 0
- bl sub_8165404
- ldr r4, =gUnknown_02038BFC
- movs r0, 0
- strb r0, [r4]
- ldr r0, =gUnknown_08224158
- bl TrainerBattleConfigure
- movs r0, 0x1
- strb r0, [r4]
- ldr r0, =gUnknown_08224167
- bl TrainerBattleConfigure
- ldr r0, =gUnknown_02038BCE
- strh r5, [r0]
- ldr r0, =sub_8163A8C
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl PlayNewMapMusic__default_for_battle
- movs r0, 0x12
- bl sub_8145EF4
-_08163E68:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8163AC4
-
- thumb_func_start sub_8163E90
-sub_8163E90: @ 8163E90
- push {r4-r6,lr}
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r5, [r0]
- lsls r5, 30
- lsrs r5, 30
- ldr r0, =0x000040ce
- bl VarGet
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8164FCC
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, [r6]
- lsls r5, 1
- lsls r4, 2
- adds r5, r4
- movs r1, 0xCE
- lsls r1, 4
- adds r0, r1
- adds r1, r0, r5
- ldrh r0, [r1]
- cmp r0, r2
- bcs _08163ED0
- strh r2, [r1]
-_08163ED0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8163E90
-
- thumb_func_start sub_8163EE4
-sub_8163EE4: @ 8163EE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x0000064c
- adds r5, r0, r1
- adds r0, r5, 0
- bl sub_8164FB8
- ldr r0, [r4]
- ldr r2, =0x00000ca9
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r6, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, [r4]
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _08163F40
- ldr r4, =gUnknown_085DCEFA
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x14
- b _08163F52
- .pool
-_08163F40:
- ldr r4, =gUnknown_085DCEDC
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x1E
-_08163F52:
- bl __umodsi3
- adds r0, r4
- ldrb r0, [r0]
- strb r6, [r5]
- strb r0, [r5, 0x1]
- adds r0, r5, 0
- adds r0, 0xC
- ldr r4, =gSaveBlock2Ptr
- ldr r1, [r4]
- adds r1, 0xA
- bl CopyUnalignedWord
- adds r0, r5, 0x4
- ldr r1, [r4]
- bl StringCopy7
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_8164FCC
- strh r0, [r5, 0x2]
- movs r4, 0
- movs r2, 0x10
- adds r2, r5
- mov r12, r2
- movs r7, 0x1C
- adds r7, r5
- mov r9, r7
- adds r6, r5, 0
- adds r6, 0x28
- movs r0, 0xE4
- adds r0, r5
- mov r8, r0
-_08163F96:
- lsls r2, r4, 1
- mov r1, r12
- adds r3, r1, r2
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r7, =0x00002bbc
- adds r0, r1, r7
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r3]
- mov r0, r9
- adds r3, r0, r2
- adds r7, 0xC
- adds r0, r1, r7
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r3]
- adds r3, r6, r2
- ldr r0, =0x00002bd4
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r4, 0x1
- cmp r4, 0x5
- ble _08163F96
- movs r4, 0
-_08163FCC:
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- lsls r1, r4, 1
- ldr r2, =0x00000caa
- adds r0, r2
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, 0
- beq _08163FF4
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gUnknown_02024488
- adds r0, r1
- movs r1, 0x2C
- muls r1, r4
- adds r1, 0x34
- adds r1, r5, r1
- bl sub_80686FC
-_08163FF4:
- adds r4, 0x1
- cmp r4, 0x3
- ble _08163FCC
- ldr r0, =gGameLanguage
- ldrb r0, [r0]
- mov r7, r8
- strb r0, [r7]
- ldr r0, [r6]
- ldr r1, =0x0000064c
- adds r0, r1
- bl sub_8164F70
- bl sub_8163E90
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8163EE4
-
- thumb_func_start sub_8164040
-sub_8164040: @ 8164040
- push {r4,r5,lr}
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r4, [r0]
- lsls r4, 30
- lsrs r4, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- ldr r5, [r5]
- lsls r4, 1
- lsrs r0, 14
- adds r4, r0
- movs r2, 0xCE
- lsls r2, 4
- adds r0, r5, r2
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- bne _0816408E
- cmp r1, 0x1
- bgt _0816408A
- ldr r1, =0x00000cb2
- adds r0, r5, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _0816408E
-_0816408A:
- bl sub_8163EE4
-_0816408E:
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =gSpecialVar_0x8005
- ldrh r1, [r1]
- ldr r2, =0x00000ca8
- adds r0, r2
- strb r1, [r0]
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0
- bl VarSet
- ldr r1, [r4]
- ldr r0, =0x00000ca9
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- bl sub_81A4C30
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164040
-
- thumb_func_start nullsub_61
-nullsub_61: @ 81640D8
- bx lr
- thumb_func_end nullsub_61
-
- thumb_func_start nullsub_116
-nullsub_116: @ 81640DC
- bx lr
- thumb_func_end nullsub_116
-
- thumb_func_start sub_81640E0
-sub_81640E0: @ 81640E0
- push {r4-r7,lr}
- sub sp, 0xC
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- ldr r4, =gPlayerParty
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- adds r4, 0x64
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- movs r6, 0
- movs r2, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0xfffffe70
- adds r5, r0
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r1, 0xE0
- adds r0, r1
- mov r3, sp
-_08164122:
- ldrh r1, [r0]
- cmp r1, r7
- beq _08164130
- cmp r1, r4
- beq _08164130
- stm r3!, {r2}
- adds r6, 0x1
-_08164130:
- adds r0, 0xC
- adds r2, 0x1
- cmp r2, 0x2
- ble _08164122
- bl Random
- ldr r4, =gUnknown_03006298
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- strh r0, [r4]
-_08164150:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- strh r0, [r4, 0x2]
- ldrh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- beq _08164150
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81640E0
-
- thumb_func_start sub_8164188
-sub_8164188: @ 8164188
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- str r0, [sp, 0xC]
- ldr r4, =gPlayerParty
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x10]
- adds r4, 0x64
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x14]
- movs r3, 0
- mov r8, r3
- movs r7, 0
- adds r2, r6, 0
- ldr r0, =0xfffffed4
- adds r5, r0
- ldr r6, =0x0000076c
- mov r10, sp
- movs r0, 0xEC
- adds r1, r5, 0
- muls r1, r0
- mov r9, r1
-_081641E6:
- ldr r1, [r2]
- movs r0, 0x2C
- muls r0, r7
- mov r3, r9
- adds r5, r0, r3
- adds r1, r5
- adds r0, r1, r6
- ldrh r0, [r0]
- ldr r3, [sp, 0x10]
- cmp r0, r3
- beq _0816423A
- ldr r3, [sp, 0x14]
- cmp r0, r3
- beq _0816423A
- movs r0, 0xEF
- lsls r0, 3
- adds r4, r1, r0
- ldr r1, [sp, 0xC]
- lsls r0, r1, 24
- lsrs r0, 24
- str r2, [sp, 0x18]
- bl sub_8165C90
- ldrb r1, [r4]
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp, 0x18]
- cmp r1, r0
- bhi _0816423A
- ldr r0, [r2]
- adds r0, r5
- adds r0, r6
- ldrh r0, [r0]
- cmp r0, 0
- beq _0816423A
- mov r3, r10
- adds r3, 0x4
- mov r10, r3
- subs r3, 0x4
- stm r3!, {r7}
- movs r0, 0x1
- add r8, r0
-_0816423A:
- adds r7, 0x1
- cmp r7, 0x3
- ble _081641E6
- bl Random
- ldr r4, =gUnknown_03006298
- lsls r0, 16
- lsrs r0, 16
- mov r1, r8
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- strh r0, [r4, 0x4]
-_08164258:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- mov r1, r8
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- strh r0, [r4, 0x6]
- ldrh r1, [r4, 0x4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- beq _08164258
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164188
-
- thumb_func_start sub_81642A0
-sub_81642A0: @ 81642A0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4C
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xC7
- lsls r1, 4
- adds r1, r0, r1
- str r1, [sp, 0x24]
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- ldr r2, =0x00000ca9
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- str r0, [sp, 0x14]
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- ldr r1, [r5]
- ldr r3, [sp, 0x14]
- lsls r2, r3, 1
- lsrs r0, 14
- adds r2, r0
- movs r4, 0xCE
- lsls r4, 4
- adds r1, r4
- adds r1, r2
- ldrh r0, [r1]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
- ldr r4, =gPlayerParty
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- str r0, [sp, 0x1C]
- adds r4, 0x64
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- str r0, [sp, 0x20]
- bl sub_8165C40
- movs r7, 0
- ldr r0, [sp, 0x18]
- lsls r0, 24
- mov r10, r0
-_08164318:
- lsls r6, r7, 1
-_0816431A:
- mov r1, r10
- lsrs r0, r1, 24
- movs r1, 0
- bl sub_8162548
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- movs r2, 0
- mov r9, r2
- cmp r9, r7
- bge _08164368
- ldr r0, [r5]
- ldr r3, =0x00000cb4
- adds r1, r0, r3
- ldrh r0, [r1]
- cmp r0, r8
- beq _08164368
- ldr r0, =gUnknown_0203BC88
- ldr r2, [r0]
- movs r4, 0x34
- mov r0, r8
- muls r0, r4
- adds r0, r2
- ldrb r3, [r0]
-_0816434C:
- ldrh r0, [r1]
- muls r0, r4
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, r3
- beq _08164368
- adds r1, 0x2
- movs r0, 0x1
- add r9, r0
- cmp r9, r7
- bge _08164368
- ldrh r0, [r1]
- cmp r0, r8
- bne _0816434C
-_08164368:
- cmp r9, r7
- bne _0816431A
- ldr r0, [r5]
- ldr r1, =0x00000cb4
- adds r0, r1
- adds r0, r6
- mov r2, r8
- strh r2, [r0]
- mov r7, r9
- adds r7, 0x1
- cmp r7, 0x5
- ble _08164318
- movs r3, 0x8
- mov r10, r3
- movs r4, 0
- mov r9, r4
- ldr r0, [sp, 0x24]
- str r0, [sp, 0x40]
-_0816438C:
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- mov r2, r9
- lsls r1, r2, 1
- ldr r3, =0x00000cb4
- adds r0, r3
- adds r0, r1
- ldrh r0, [r0]
- mov r8, r0
- bl sub_81627A4
- ldr r4, [sp, 0x40]
- strb r0, [r4, 0x19]
- movs r7, 0
-_081643A8:
- adds r0, r7, 0x1
- str r0, [sp, 0x30]
- mov r1, r10
- lsls r1, 1
- str r1, [sp, 0x38]
- mov r2, r10
- adds r2, 0x1
- str r2, [sp, 0x34]
- mov r0, r10
- subs r0, 0x1
- lsls r0, 1
- str r0, [sp, 0x28]
-_081643C0:
- mov r0, r8
- bl sub_8163524
- lsls r0, 16
- lsrs r6, r0, 16
- movs r0, 0x1
- ands r0, r7
- cmp r0, 0
- beq _081643F4
- ldr r3, =gSaveBlock2Ptr
- ldr r0, [r3]
- ldr r4, =0x00000cb4
- adds r0, r4
- ldr r1, [sp, 0x28]
- adds r0, r1
- ldrh r2, [r0]
- ldr r0, =gUnknown_0203BC8C
- ldr r0, [r0]
- lsls r2, 4
- adds r2, r0
- lsls r1, r6, 4
- adds r1, r0
- ldrb r0, [r2, 0xA]
- ldrb r1, [r1, 0xA]
- cmp r0, r1
- beq _081643C0
-_081643F4:
- movs r5, 0x8
- cmp r5, r10
- bge _08164430
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- ldr r1, =gUnknown_0203BC8C
- ldr r3, [r1]
- lsls r1, r6, 4
- adds r1, r3
- ldr r4, =0x00000cc4
- adds r2, r0, r4
- ldrh r0, [r1]
- mov r12, r0
-_0816440E:
- ldrh r0, [r2]
- lsls r0, 4
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r12
- beq _08164430
- ldrh r0, [r1]
- ldr r4, [sp, 0x1C]
- cmp r4, r0
- beq _08164430
- ldr r4, [sp, 0x20]
- cmp r4, r0
- beq _08164430
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, r10
- blt _0816440E
-_08164430:
- cmp r5, r10
- bne _081643C0
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r2, =0x00000cb4
- adds r0, r2
- ldr r3, [sp, 0x38]
- adds r0, r3
- strh r6, [r0]
- ldr r4, [sp, 0x34]
- mov r10, r4
- ldr r7, [sp, 0x30]
- cmp r7, 0x1
- ble _081643A8
- ldr r0, [sp, 0x40]
- adds r0, 0x18
- str r0, [sp, 0x40]
- movs r1, 0x1
- add r9, r1
- mov r2, r9
- cmp r2, 0x5
- ble _0816438C
- movs r3, 0
- mov r10, r3
- bl sub_8165B20
- movs r4, 0
- mov r9, r4
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r2, 0
- adds r6, r0, 0
- adds r6, 0xDC
- mov r8, sp
-_08164474:
- ldrb r0, [r6]
- lsls r4, r0, 25
- lsrs r0, r4, 30
- cmp r0, 0
- beq _081644E0
- ldr r1, =gUnknown_085DF9EC
- ldrb r0, [r6, 0x1]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x7
- str r2, [sp, 0x44]
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp, 0x44]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bgt _081644E0
- lsrs r0, r4, 30
- subs r0, 0x1
- ldr r3, [sp, 0x14]
- cmp r0, r3
- bne _081644E0
- movs r5, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xE0
- adds r1, r2, r0
- movs r7, 0x2
-_081644B0:
- ldrh r0, [r1]
- ldr r4, [sp, 0x1C]
- cmp r4, r0
- beq _081644C0
- ldr r3, [sp, 0x20]
- cmp r3, r0
- beq _081644C0
- adds r5, 0x1
-_081644C0:
- adds r1, 0xC
- subs r7, 0x1
- cmp r7, 0
- bge _081644B0
- cmp r5, 0x2
- ble _081644E0
- movs r0, 0xC8
- lsls r0, 1
- add r0, r9
- mov r4, r8
- adds r4, 0x4
- mov r8, r4
- subs r4, 0x4
- stm r4!, {r0}
- movs r0, 0x1
- add r10, r0
-_081644E0:
- adds r2, 0x44
- adds r6, 0x44
- movs r1, 0x1
- add r9, r1
- mov r3, r9
- cmp r3, 0x3
- ble _08164474
- mov r4, r10
- cmp r4, 0
- beq _08164532
- bl Random
- ldr r6, =gSaveBlock2Ptr
- ldr r4, [r6]
- lsls r0, 16
- lsrs r0, 16
- mov r1, r10
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- movs r5, 0xCC
- lsls r5, 4
- adds r4, r5
- strh r0, [r4]
- ldrh r0, [r4]
- bl sub_81627A4
- ldr r1, [sp, 0x24]
- adds r1, 0xA8
- strb r0, [r1, 0x1]
- movs r0, 0xD8
- lsls r0, 2
- bl FlagReset
- ldr r0, [r6]
- adds r0, r5
- ldrh r0, [r0]
- bl sub_81640E0
-_08164532:
- movs r0, 0
- mov r10, r0
- mov r9, r0
- mov r1, sp
- str r1, [sp, 0x3C]
-_0816453C:
- ldr r0, =gSaveBlock2Ptr
- movs r2, 0xEC
- mov r1, r9
- muls r1, r2
- movs r3, 0xE7
- lsls r3, 3
- adds r1, r3
- ldr r0, [r0]
- movs r2, 0
- movs r3, 0
- movs r7, 0
- mov r4, r9
- adds r4, 0x1
- str r4, [sp, 0x2C]
- adds r1, r0, r1
-_0816455A:
- ldm r1!, {r0}
- orrs r2, r0
- adds r3, r0
- adds r7, 0x1
- cmp r7, 0x39
- bls _0816455A
- ldr r0, =gSaveBlock2Ptr
- ldr r5, [r0]
- movs r1, 0xEC
- mov r6, r9
- muls r6, r1
- adds r4, r5, r6
- ldr r1, =0x0000073a
- adds r0, r4, r1
- ldrh r0, [r0]
- movs r1, 0x7
- str r2, [sp, 0x44]
- str r3, [sp, 0x48]
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- ldr r2, [sp, 0x44]
- ldr r3, [sp, 0x48]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bgt _08164656
- movs r1, 0xE7
- lsls r1, 3
- adds r0, r4, r1
- ldrb r0, [r0]
- ldr r4, [sp, 0x14]
- cmp r0, r4
- bne _08164656
- cmp r2, 0
- beq _08164656
- adds r1, 0xE8
- adds r0, r5, r1
- adds r0, r6
- ldr r0, [r0]
- cmp r0, r3
- bne _08164656
- movs r5, 0
- movs r7, 0
- ldr r2, =gSaveBlock2Ptr
- mov r8, r2
- ldr r3, =0x0000076c
-_081645B8:
- mov r4, r8
- ldr r2, [r4]
- movs r0, 0x2C
- adds r1, r7, 0
- muls r1, r0
- movs r4, 0xEC
- mov r0, r9
- muls r0, r4
- adds r6, r1, r0
- adds r2, r6
- adds r0, r2, r3
- ldrh r0, [r0]
- ldr r1, [sp, 0x1C]
- cmp r1, r0
- beq _0816463C
- ldr r4, [sp, 0x20]
- cmp r4, r0
- beq _0816463C
- movs r0, 0xEF
- lsls r0, 3
- adds r4, r2, r0
- ldr r1, [sp, 0x14]
- lsls r0, r1, 24
- lsrs r0, 24
- str r3, [sp, 0x48]
- bl sub_8165C90
- ldrb r1, [r4]
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [sp, 0x48]
- cmp r1, r0
- bhi _0816463C
- mov r2, r8
- ldr r0, [r2]
- adds r0, r6
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, 0
- b _08164638
- .pool
-_08164638:
- beq _0816463C
- adds r5, 0x1
-_0816463C:
- adds r7, 0x1
- cmp r7, 0x3
- ble _081645B8
- cmp r5, 0x1
- ble _08164656
- movs r0, 0x96
- lsls r0, 1
- add r0, r9
- ldr r3, [sp, 0x3C]
- stm r3!, {r0}
- str r3, [sp, 0x3C]
- movs r4, 0x1
- add r10, r4
-_08164656:
- ldr r0, [sp, 0x2C]
- mov r9, r0
- cmp r0, 0x4
- bgt _08164660
- b _0816453C
-_08164660:
- mov r1, r10
- cmp r1, 0
- beq _081646A0
- bl Random
- ldr r6, =gSaveBlock2Ptr
- ldr r4, [r6]
- lsls r0, 16
- lsrs r0, 16
- mov r1, r10
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- ldr r5, =0x00000cc2
- adds r4, r5
- strh r0, [r4]
- ldrh r0, [r4]
- bl sub_81627A4
- ldr r1, [sp, 0x24]
- adds r1, 0xC0
- strb r0, [r1, 0x1]
- ldr r0, =0x00000361
- bl FlagReset
- ldr r0, [r6]
- adds r0, r5
- ldrh r0, [r0]
- bl sub_8164188
-_081646A0:
- add sp, 0x4C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81642A0
-
- thumb_func_start sub_81646BC
-sub_81646BC: @ 81646BC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- movs r0, 0
- mov r9, r0
- mov r10, r0
- bl sub_8165C40
- movs r0, 0xFA
- lsls r0, 1
- cmp r5, r0
- beq _081647CE
- subs r0, 0xC9
- cmp r5, r0
- bhi _081646FC
- ldr r0, =gUnknown_0203BC8C
- ldr r1, [r0]
- lsls r0, r4, 4
- adds r0, r1
- ldrh r1, [r0, 0x2]
- mov r9, r1
- ldrh r0, [r0]
- mov r10, r0
- b _081647CE
- .pool
-_081646FC:
- ldr r0, =0x0000018f
- cmp r5, r0
- bhi _08164750
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r1, =gUnknown_03006298
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- adds r0, 0x1
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x2C
- muls r1, r0
- ldr r0, =0xfffffed4
- adds r2, r5, r0
- movs r0, 0xEC
- muls r0, r2
- adds r1, r0
- adds r3, r1
- movs r1, 0xEE
- lsls r1, 3
- adds r0, r3, r1
- ldrh r0, [r0]
- mov r9, r0
- ldr r2, =0x0000076c
- adds r3, r2
- ldrh r3, [r3]
- mov r10, r3
- b _081647CE
- .pool
-_08164750:
- ldr r4, =gSaveBlock2Ptr
- ldr r3, [r4]
- ldr r1, =gUnknown_03006298
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- subs r0, 0x1
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r2, =0xfffffe70
- adds r1, r5, r2
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r0, r2
- adds r3, r0
- adds r0, r3, 0
- adds r0, 0xE2
- ldrh r0, [r0]
- mov r9, r0
- adds r3, 0xE0
- ldrh r3, [r3]
- mov r10, r3
- movs r3, 0
- ldr r7, =gStringVar3
- mov r8, r7
- adds r0, r4, 0
- mov r12, r0
- adds r4, r2, 0
- movs r6, 0x8A
- lsls r6, 1
-_08164794:
- mov r1, r8
- adds r2, r3, r1
- mov r1, r12
- ldr r0, [r1]
- adds r1, r3, r4
- adds r0, r6
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- adds r3, 0x1
- cmp r3, 0x6
- ble _08164794
- adds r1, r3, r7
- movs r0, 0xFF
- strb r0, [r1]
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, =0xfffffe70
- adds r1, r5, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0
- ldr r1, =0x0000011b
- adds r0, r2, r1
- ldrb r1, [r0]
- adds r0, r7, 0
- bl ConvertInternationalString
-_081647CE:
- ldr r0, =gStringVar1
- movs r1, 0xD
- mov r2, r9
- muls r2, r1
- adds r1, r2, 0
- ldr r2, =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r0, =gStringVar2
- movs r1, 0xB
- mov r2, r10
- muls r2, r1
- adds r1, r2, 0
- ldr r2, =gSpeciesNames
- adds r1, r2
- bl StringCopy
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81646BC
-
- thumb_func_start sub_8164828
-sub_8164828: @ 8164828
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- bl sub_8165C40
- bl sub_81A39C4
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, =gScriptLastTalked
- ldrh r0, [r0]
- subs r5, r0, 0x2
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r5, 1
- ldr r2, =0x00000cb4
- adds r0, r2
- adds r0, r1
- ldrh r7, [r0]
- movs r3, 0
- str r3, [sp]
- ldr r4, =gUnknown_085DD500
- lsls r6, r7, 16
- b _08164884
- .pool
-_0816487C:
- adds r4, 0x8
- ldr r0, [sp]
- adds r0, 0x1
- str r0, [sp]
-_08164884:
- ldr r1, [sp]
- cmp r1, 0x31
- bhi _0816489A
- lsrs r0, r6, 16
- bl sub_8162D34
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- cmp r1, r0
- bne _0816487C
-_0816489A:
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x4
- bls _081648A4
- b _08164AC2
-_081648A4:
- lsls r0, 2
- ldr r1, =_081648B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081648B8:
- .4byte _081648CC
- .4byte _08164984
- .4byte _0816499C
- .4byte _081649BC
- .4byte _08164AC2
-_081648CC:
- movs r0, 0xFA
- lsls r0, 1
- cmp r7, r0
- bne _081648D6
- b _08164B54
-_081648D6:
- subs r0, 0xC9
- cmp r7, r0
- ble _081648E2
- ldr r0, =0x0000018f
- cmp r7, r0
- bgt _081648F4
-_081648E2:
- ldr r0, =gStringVar1
- adds r1, r7, 0
- bl sub_8162E20
- b _08164AC2
- .pool
-_081648F4:
- movs r3, 0
- lsls r2, r7, 16
- mov r10, r2
- ldr r6, =gStringVar1
- mov r9, r6
- ldr r4, =gSaveBlock2Ptr
- mov r8, r4
- ldr r5, =0xfffffe70
- adds r1, r7, r5
- lsls r0, r1, 4
- adds r0, r1
- lsls r4, r0, 2
- movs r5, 0x8A
- lsls r5, 1
-_08164910:
- mov r0, r9
- adds r2, r3, r0
- mov r1, r8
- ldr r0, [r1]
- adds r1, r3, r4
- adds r0, r5
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- adds r3, 0x1
- cmp r3, 0x6
- ble _08164910
- adds r1, r3, r6
- movs r0, 0xFF
- strb r0, [r1]
- ldr r2, =gSaveBlock2Ptr
- ldr r1, [r2]
- ldr r3, =0xfffffe70
- adds r0, r7, r3
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r1, r4
- ldr r5, =0x0000011b
- adds r0, r1, r5
- ldrb r1, [r0]
- adds r0, r6, 0
- bl ConvertInternationalString
- ldr r0, =gStringVar2
- ldr r2, =gSaveBlock2Ptr
- ldr r1, [r2]
- adds r1, r4
- adds r1, 0xDE
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, =gStringVar3
- mov r3, r10
- lsrs r1, r3, 16
- bl sub_8162E20
- b _08164AC2
- .pool
-_08164984:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r1, r0
- ldr r4, =0x00000cc4
- adds r1, r4
- b _081649A8
- .pool
-_0816499C:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r1, r0
- ldr r5, =0x00000cc6
- adds r1, r5
-_081649A8:
- adds r0, r7, 0
- ldrh r1, [r1]
- bl sub_81646BC
- b _08164AC2
- .pool
-_081649BC:
- ldr r0, =gUnknown_02038BCE
- strh r7, [r0]
- ldr r0, =0x0000012b
- cmp r7, r0
- bgt _08164A08
- ldr r0, =gSaveBlock2Ptr
- ldr r4, [r0]
- lsls r1, r5, 1
- adds r0, r1, 0
- adds r0, 0x8
- lsls r0, 1
- ldr r3, =0x00000cb4
- adds r2, r4, r3
- adds r0, r2, r0
- ldrh r3, [r0]
- ldr r5, =0x00000cd8
- adds r0, r4, r5
- strh r3, [r0]
- adds r1, 0x9
- lsls r1, 1
- adds r2, r1
- ldrh r0, [r2]
- ldr r1, =0x00000cda
- adds r4, r1
- strh r0, [r4]
- b _08164A46
- .pool
-_08164A08:
- ldr r0, =0x0000018f
- cmp r7, r0
- bgt _08164A30
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r3, =gUnknown_03006298
- ldrh r2, [r3, 0x4]
- ldr r4, =0x00000cd8
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r0, [r3, 0x6]
- b _08164A40
- .pool
-_08164A30:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r3, =gUnknown_03006298
- ldrh r2, [r3]
- ldr r4, =0x00000cd8
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r0, [r3, 0x2]
-_08164A40:
- ldr r5, =0x00000cda
- adds r1, r5
- strh r0, [r1]
-_08164A46:
- movs r5, 0
- mov r0, r8
- lsls r0, 24
- str r0, [sp, 0x4]
-_08164A4E:
- lsls r1, r5, 1
- mov r10, r1
- adds r2, r5, 0x1
- mov r9, r2
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r0, 1
- lsls r0, 24
- mov r8, r0
-_08164A60:
- ldr r3, [sp, 0x4]
- lsrs r0, r3, 24
- mov r4, r8
- lsrs r1, r4, 24
- bl sub_8162548
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, =gUnknown_02038BCE
- ldrh r0, [r0]
- cmp r0, r3
- beq _08164A60
- movs r2, 0
- cmp r2, r5
- bge _08164AA2
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r4, =0x00000cb4
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, r3
- beq _08164AA2
- adds r6, r1, 0
-_08164A8E:
- adds r2, 0x1
- cmp r2, r5
- bge _08164AA2
- ldr r0, [r6]
- lsls r1, r2, 1
- adds r0, r4
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r3
- bne _08164A8E
-_08164AA2:
- cmp r2, r5
- bne _08164A60
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- ldr r1, =0x00000cb4
- adds r0, r1
- add r0, r10
- strh r3, [r0]
- mov r5, r9
- cmp r5, 0xD
- ble _08164A4E
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- ldr r3, =0x00000cd6
- adds r0, r3
- strh r7, [r0]
-_08164AC2:
- movs r0, 0xFA
- lsls r0, 1
- cmp r7, r0
- beq _08164B54
- subs r0, 0xC9
- cmp r7, r0
- bgt _08164AF8
- ldr r0, =gUnknown_085DD500
- ldr r4, [sp]
- lsls r1, r4, 3
- b _08164B04
- .pool
-_08164AF8:
- ldr r0, =0x0000018f
- cmp r7, r0
- bgt _08164B28
- ldr r0, =gUnknown_085DD500
- ldr r5, [sp]
- lsls r1, r5, 3
-_08164B04:
- adds r0, 0x4
- adds r1, r0
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl box_related_two__2
- b _08164B54
- .pool
-_08164B28:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0xfffffe70
- adds r2, r7, r0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, 0xDC
- ldrb r0, [r1]
- lsls r0, 27
- ldr r1, =gUnknown_085DD690
- lsrs r0, 25
- adds r0, r1
- ldr r1, =gSpecialVar_0x8005
- ldrh r1, [r1]
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl box_related_two__2
-_08164B54:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164828
-
- thumb_func_start sub_8164B74
-sub_8164B74: @ 8164B74
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r7, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, [r4]
- ldr r2, =0x00000cb2
- adds r0, r2
- ldrh r6, [r0]
- bl link_get_multiplayer_id
- ldr r0, =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0x6
- bls _08164BAC
- b _08164DB6
-_08164BAC:
- lsls r0, 2
- ldr r1, =_08164BD0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08164BD0:
- .4byte _08164BEC
- .4byte _08164C3C
- .4byte _08164CE0
- .4byte _08164D14
- .4byte _08164D98
- .4byte _08164DA8
- .4byte _08164DB6
-_08164BEC:
- cmp r5, 0x3
- beq _08164BF2
- b _08164DB0
-_08164BF2:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r7, 1
- adds r0, r1
- ldr r3, =0x00000cec
- adds r0, r3
- ldrh r0, [r0]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- bl sub_800A520
- lsls r0, 24
- cmp r0, 0
- bne _08164C18
- b _08164DB6
-_08164C18:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- movs r2, 0x4
- bl link_0800A448
- ldr r1, =gScriptResult
- movs r0, 0x1
- b _08164DB4
- .pool
-_08164C3C:
- bl sub_800A550
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- beq _08164C4A
- b _08164DB6
-_08164C4A:
- bl sub_800A5B4
- ldr r1, =gUnknown_020223C4
- movs r0, 0x80
- lsls r0, 1
- adds r2, r1, r0
- ldrh r0, [r1]
- ldrh r3, [r2]
- cmp r0, r3
- bhi _08164C60
- ldrh r0, [r2]
-_08164C60:
- str r0, [sp]
- movs r4, 0
- ldr r0, =gSaveBlock2Ptr
- mov r9, r0
-_08164C68:
- adds r1, r4, 0x1
- mov r8, r1
- lsrs r0, r4, 31
- adds r0, r4, r0
- asrs r0, 1
- lsls r7, r0, 24
-_08164C74:
- ldr r0, [sp]
- lsls r0, 24
- lsrs r0, 24
- lsrs r1, r7, 24
- bl sub_8162548
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- cmp r2, r4
- bge _08164CB0
- mov r1, r9
- ldr r0, [r1]
- ldr r1, =0x00000cb4
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r3
- beq _08164CB0
- ldr r6, =gSaveBlock2Ptr
- adds r5, r1, 0
-_08164C9C:
- adds r2, 0x1
- cmp r2, r4
- bge _08164CB0
- ldr r0, [r6]
- lsls r1, r2, 1
- adds r0, r5
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r3
- bne _08164C9C
-_08164CB0:
- cmp r4, r2
- bne _08164C74
- mov r2, r9
- ldr r0, [r2]
- lsls r1, r4, 1
- ldr r2, =0x00000cb4
- adds r0, r2
- adds r0, r1
- strh r3, [r0]
- mov r4, r8
- cmp r4, 0xD
- ble _08164C68
- ldr r1, =gScriptResult
- movs r0, 0x2
- b _08164DB4
- .pool
-_08164CE0:
- bl sub_800A520
- lsls r0, 24
- cmp r0, 0
- beq _08164DB6
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- ldr r3, =0x00000cb4
- adds r1, r3
- movs r2, 0x28
- bl link_0800A448
- ldr r1, =gScriptResult
- movs r0, 0x3
- b _08164DB4
- .pool
-_08164D14:
- bl sub_800A550
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- bne _08164DB6
- bl sub_800A5B4
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r5, =0x00000cb4
- adds r0, r5
- ldr r1, =gUnknown_020223C4
- movs r2, 0x28
- bl memcpy
- ldr r2, =gUnknown_02038BCA
- ldr r1, [r4]
- lsls r0, r6, 2
- adds r1, r5
- adds r0, r1, r0
- ldrh r0, [r0]
- strh r0, [r2]
- ldr r4, =gUnknown_02038BCC
- lsls r0, r6, 1
- adds r0, 0x1
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r4]
- ldrh r0, [r2]
- movs r1, 0
- bl sub_8162614
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_8162614
- ldr r0, =gUnknown_03003124
- ldrb r0, [r0]
- cmp r0, 0
- beq _08164DB0
- ldr r0, =gLinkVSyncDisabled
- ldrb r0, [r0]
- cmp r0, 0
- bne _08164DB0
- ldr r1, =gScriptResult
- movs r0, 0x4
- b _08164DB4
- .pool
-_08164D98:
- bl sub_800AC34
- ldr r1, =gScriptResult
- movs r0, 0x5
- b _08164DB4
- .pool
-_08164DA8:
- ldr r0, =gUnknown_03003124
- ldrb r0, [r0]
- cmp r0, 0
- bne _08164DB6
-_08164DB0:
- ldr r1, =gScriptResult
- movs r0, 0x6
-_08164DB4:
- strh r0, [r1]
-_08164DB6:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164B74
-
- thumb_func_start sub_8164DCC
-sub_8164DCC: @ 8164DCC
- push {lr}
- ldr r0, =gLinkVSyncDisabled
- ldrb r0, [r0]
- cmp r0, 0
- beq _08164DDA
- bl sub_800AC34
-_08164DDA:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164DCC
-
- thumb_func_start sub_8164DE4
-sub_8164DE4: @ 8164DE4
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000cd6
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0xF
- bl sub_8162614
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164DE4
-
- thumb_func_start sub_8164E04
-sub_8164E04: @ 8164E04
- push {r4-r6,lr}
- sub sp, 0x20
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- bne _08164E9A
- ldr r5, =gUnknown_02038BCA
- ldrh r1, [r5]
- mov r0, sp
- bl sub_8162E20
- mov r0, sp
- bl StripExtCtrlCodes
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000bd8
- adds r0, r1
- mov r1, sp
- bl StringCopy
- ldr r0, [r4]
- ldr r2, =0x00000beb
- adds r0, r2
- ldrh r1, [r5]
- bl sub_8165B88
- ldr r6, =gBattlePartyID
- ldrh r0, [r6, 0x2]
- movs r5, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- ldr r1, [r4]
- ldr r2, =0x00000bd6
- adds r1, r2
- strh r0, [r1]
- ldrh r0, [r6]
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- ldr r1, [r4]
- ldr r2, =0x00000bd4
- adds r1, r2
- strh r0, [r1]
- movs r2, 0
- movs r5, 0xBE
- lsls r5, 4
- ldr r3, =gUnknown_020240B4
- adds r6, r4, 0
-_08164E7C:
- ldr r0, [r4]
- adds r0, r5
- adds r0, r2
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0xA
- ble _08164E7C
- ldr r0, [r6]
- ldr r1, =gBattleOutcome
- ldrb r1, [r1]
- ldr r2, =0x00000d06
- adds r0, r2
- strb r1, [r0]
-_08164E9A:
- add sp, 0x20
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164E04
-
- thumb_func_start sub_8164ED8
-sub_8164ED8: @ 8164ED8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r3, 0
- movs r2, 0
- ldr r4, =0x0000064c
- adds r1, r0, r4
-_08164EEA:
- ldm r1!, {r0}
- adds r3, r0
- adds r2, 0x1
- cmp r2, 0x39
- bls _08164EEA
- ldr r5, =gSaveBlock2Ptr
- ldr r1, [r5]
- ldr r2, =0x00000734
- adds r0, r1, r2
- ldr r0, [r0]
- cmp r0, r3
- beq _08164F0A
- ldr r3, =0x0000064c
- adds r0, r1, r3
- bl sub_8164FB8
-_08164F0A:
- movs r4, 0
- adds r7, r5, 0
- movs r6, 0xEC
- mov r8, r7
-_08164F12:
- adds r0, r4, 0
- muls r0, r6
- movs r1, 0xE7
- lsls r1, 3
- adds r0, r1
- ldr r1, [r7]
- movs r3, 0
- movs r2, 0
- adds r5, r4, 0x1
- adds r1, r0
-_08164F26:
- ldm r1!, {r0}
- adds r3, r0
- adds r2, 0x1
- cmp r2, 0x39
- bls _08164F26
- mov r0, r8
- ldr r2, [r0]
- adds r1, r4, 0
- muls r1, r6
- movs r4, 0x82
- lsls r4, 4
- adds r0, r2, r4
- adds r0, r1
- ldr r0, [r0]
- cmp r0, r3
- beq _08164F52
- movs r3, 0xE7
- lsls r3, 3
- adds r0, r1, r3
- adds r0, r2, r0
- bl sub_8164FB8
-_08164F52:
- adds r4, r5, 0
- cmp r4, 0x4
- ble _08164F12
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164ED8
-
- thumb_func_start sub_8164F70
-sub_8164F70: @ 8164F70
- push {r4,lr}
- adds r2, r0, 0
- adds r2, 0xE8
- movs r1, 0
- str r1, [r2]
- movs r3, 0
- adds r4, r0, 0
-_08164F7E:
- ldr r0, [r2]
- ldm r4!, {r1}
- adds r0, r1
- str r0, [r2]
- adds r3, 0x1
- cmp r3, 0x39
- bls _08164F7E
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8164F70
-
- thumb_func_start sub_8164F94
-sub_8164F94: @ 8164F94
- push {r4,lr}
- adds r2, r0, 0
- adds r2, 0xA0
- movs r1, 0
- str r1, [r2]
- movs r3, 0
- adds r4, r0, 0
-_08164FA2:
- ldr r0, [r2]
- ldm r4!, {r1}
- adds r0, r1
- str r0, [r2]
- adds r3, 0x1
- cmp r3, 0x27
- bls _08164FA2
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8164F94
-
- thumb_func_start sub_8164FB8
-sub_8164FB8: @ 8164FB8
- push {lr}
- movs r1, 0
- movs r2, 0
-_08164FBE:
- stm r0!, {r2}
- adds r1, 0x1
- cmp r1, 0x3A
- bls _08164FBE
- pop {r0}
- bx r0
- thumb_func_end sub_8164FB8
-
- thumb_func_start sub_8164FCC
-sub_8164FCC: @ 8164FCC
- push {lr}
- lsls r0, 24
- lsls r1, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r0, 23
- lsrs r1, 22
- adds r0, r1
- movs r1, 0xCE
- lsls r1, 4
- adds r2, r1
- adds r2, r0
- ldrh r0, [r2]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _08164FEE
- adds r0, r1, 0
-_08164FEE:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8164FCC
-
- thumb_func_start sub_8164FFC
-sub_8164FFC: @ 8164FFC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_085DFA42
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- cmp r4, 0x3
- bls _0816501C
- movs r0, 0x3
- b _08165022
- .pool
-_0816501C:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
-_08165022:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8164FFC
-
- thumb_func_start sub_816502C
-sub_816502C: @ 816502C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- adds r5, r0, 0
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- bl sub_8164FFC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r2, 0x44
- mov r10, r2
- cmp r5, 0
- beq _0816506A
- movs r0, 0x45
- mov r10, r0
-_0816506A:
- ldr r1, =gScriptResult
- mov r9, r1
- movs r0, 0
- strh r0, [r1]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8164FCC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x37
- bls _081650DC
- movs r6, 0
- cmp r6, r8
- bge _081650DC
- ldr r7, =gSaveBlock1Ptr
- mov r5, sp
-_0816508C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r6, 1
- ldr r2, =0x00000caa
- adds r0, r2
- adds r0, r1
- ldrh r1, [r0]
- subs r1, 0x1
- movs r0, 0
- strb r1, [r5]
- strb r0, [r5, 0x1]
- movs r0, 0x64
- muls r0, r1
- movs r1, 0x8E
- lsls r1, 2
- adds r4, r0, r1
- ldr r0, [r7]
- adds r0, r4
- mov r1, r10
- bl GetMonData
- cmp r0, 0
- bne _081650D4
- movs r0, 0x1
- mov r2, r9
- strh r0, [r2]
- ldr r0, [r7]
- adds r0, r4
- mov r1, r10
- bl SetMonData
- ldr r0, [r7]
- adds r0, r4
- bl sub_80EE5A4
- strb r0, [r5, 0x1]
-_081650D4:
- adds r5, 0x4
- adds r6, 0x1
- cmp r6, r8
- blt _0816508C
-_081650DC:
- ldr r0, =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- beq _08165132
- movs r0, 0x2A
- bl IncrementGameStat
- mov r0, r8
- cmp r0, 0x1
- ble _08165110
- mov r3, sp
- add r2, sp, 0x4
- mov r6, r8
- subs r6, 0x1
-_081650F8:
- ldrb r1, [r3, 0x1]
- ldrb r0, [r2, 0x1]
- cmp r0, r1
- bls _08165108
- ldr r1, [sp]
- ldr r0, [r2]
- str r0, [sp]
- str r1, [r2]
-_08165108:
- adds r2, 0x4
- subs r6, 0x1
- cmp r6, 0
- bne _081650F8
-_08165110:
- mov r0, sp
- ldrb r0, [r0, 0x1]
- cmp r0, 0x4
- bls _08165132
- ldr r2, =gSaveBlock1Ptr
- mov r0, sp
- ldrb r1, [r0]
- movs r0, 0x64
- muls r1, r0
- movs r0, 0x8E
- lsls r0, 2
- adds r1, r0
- ldr r0, [r2]
- adds r0, r1
- mov r1, r10
- bl sub_80EE4DC
-_08165132:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_816502C
-
- thumb_func_start sub_816515C
-sub_816515C: @ 816515C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r1, =gSaveBlock2Ptr
- ldr r2, [r1]
- ldr r0, =0x00000bec
- adds r7, r2, r0
- ldrb r0, [r2, 0x8]
- adds r5, r1, 0
- cmp r0, 0
- beq _08165194
- ldr r4, =gUnknown_085DCEFA
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x14
- b _081651A6
- .pool
-_08165194:
- ldr r4, =gUnknown_085DCEDC
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x1E
-_081651A6:
- bl __umodsi3
- adds r0, r4
- ldrb r0, [r0]
- strb r0, [r7, 0x1]
- adds r0, r7, 0
- adds r0, 0xC
- ldr r1, [r5]
- adds r1, 0xA
- bl CopyUnalignedWord
- adds r0, r7, 0x4
- ldr r1, [r5]
- bl StringCopy7
- movs r0, 0x1
- strh r0, [r7, 0x2]
- movs r6, 0x7
- movs r4, 0
- ldr r0, =gSaveBlock1Ptr
- mov r8, r0
- adds r5, r7, 0
- adds r5, 0x10
- ldr r1, =0x00002bbc
- mov r12, r1
- adds r3, r7, 0
- adds r3, 0x28
- adds r2, r7, 0
- adds r2, 0x1C
-_081651E0:
- lsls r0, r4, 1
- mov r9, r0
- mov r1, r8
- ldr r0, [r1]
- add r0, r12
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r5]
- strh r6, [r2]
- adds r0, r6, 0x6
- strh r0, [r3]
- adds r6, 0x1
- adds r5, 0x2
- adds r3, 0x2
- adds r2, 0x2
- adds r4, 0x1
- cmp r4, 0x5
- ble _081651E0
- movs r4, 0
-_08165206:
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x2C
- muls r1, r4
- adds r1, 0x34
- adds r1, r7, r1
- bl sub_80686FC
- adds r4, 0x1
- cmp r4, 0x2
- ble _08165206
- adds r0, r7, 0
- bl sub_8165328
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_816515C
-
- thumb_func_start sub_8165244
-sub_8165244: @ 8165244
- ldr r1, =gTrainerPicIndices
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000bed
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_8165244
-
- thumb_func_start sub_8165264
-sub_8165264: @ 8165264
- ldr r1, =gTrainerClassNameIndices
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000bed
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_8165264
-
- thumb_func_start sub_8165284
-sub_8165284: @ 8165284
- push {r4,lr}
- adds r3, r0, 0
- movs r2, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r1, 0xBF
- lsls r1, 4
- adds r4, r0, r1
-_08165294:
- adds r0, r3, r2
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x4
- ble _08165294
- adds r1, r3, r2
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8165284
-
- thumb_func_start sub_81652B4
-sub_81652B4: @ 81652B4
- push {r4-r6,lr}
- ldr r2, =gScriptResult
- movs r0, 0
- strh r0, [r2]
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r3, =0x00000bec
- adds r5, r0, r3
- movs r4, 0
- movs r3, 0
- adds r6, r1, 0
- adds r1, r5, 0
-_081652CC:
- ldm r1!, {r0}
- orrs r4, r0
- adds r3, 0x1
- cmp r3, 0x2D
- bls _081652CC
- cmp r4, 0
- bne _081652EC
- movs r0, 0x1
- strh r0, [r2]
- b _08165316
- .pool
-_081652EC:
- movs r4, 0
- movs r3, 0
- adds r2, r5, 0
-_081652F2:
- ldm r2!, {r0}
- adds r4, r0
- adds r3, 0x1
- cmp r3, 0x2D
- bls _081652F2
- ldr r1, [r6]
- ldr r2, =0x00000ca4
- adds r0, r1, r2
- ldr r0, [r0]
- cmp r0, r4
- beq _08165316
- ldr r3, =0x00000bec
- adds r0, r1, r3
- bl sub_816534C
- ldr r1, =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
-_08165316:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81652B4
-
- thumb_func_start sub_8165328
-sub_8165328: @ 8165328
- push {r4,lr}
- adds r2, r0, 0
- adds r2, 0xB8
- movs r1, 0
- str r1, [r2]
- movs r3, 0
- adds r4, r0, 0
-_08165336:
- ldr r0, [r2]
- ldm r4!, {r1}
- adds r0, r1
- str r0, [r2]
- adds r3, 0x1
- cmp r3, 0x2D
- bls _08165336
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8165328
-
- thumb_func_start sub_816534C
-sub_816534C: @ 816534C
- push {lr}
- movs r1, 0
- movs r2, 0
-_08165352:
- stm r0!, {r2}
- adds r1, 0x1
- cmp r1, 0x2E
- bls _08165352
- pop {r0}
- bx r0
- thumb_func_end sub_816534C
-
- thumb_func_start sub_8165360
-sub_8165360: @ 8165360
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000bfc
- adds r0, r1
- bl ConvertBattleFrontierTrainerSpeechToString
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8165360
-
- thumb_func_start sub_816537C
-sub_816537C: @ 816537C
- push {lr}
- ldr r0, =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08165398
- ldr r1, =gStringVar4
- movs r0, 0xFF
- strb r0, [r1]
- b _081653C0
- .pool
-_08165398:
- cmp r0, 0x1
- bne _081653B4
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000c14
- adds r0, r1
- bl ConvertBattleFrontierTrainerSpeechToString
- b _081653C0
- .pool
-_081653B4:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000c08
- adds r0, r1
- bl ConvertBattleFrontierTrainerSpeechToString
-_081653C0:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_816537C
-
- thumb_func_start sub_81653CC
-sub_81653CC: @ 81653CC
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca8
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _081653E0
- bl sub_80F01B8
-_081653E0:
- movs r0, 0x77
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081653F8
- bl sub_80F01B8
- movs r0, 0x77
- bl FlagReset
-_081653F8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81653CC
-
- thumb_func_start sub_8165404
-sub_8165404: @ 8165404
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x70
- lsls r0, 16
- lsrs r7, r0, 16
- bl sub_8165C40
- ldr r0, =0x00000c03
- cmp r7, r0
- beq _08165420
- b _0816554C
-_08165420:
- movs r0, 0
- mov r10, r0
- mov r1, sp
- adds r1, 0x44
- str r1, [sp, 0x64]
-_0816542A:
- mov r2, r10
- lsls r2, 2
- mov r9, r2
- mov r3, r10
- adds r3, 0x1
- str r3, [sp, 0x60]
- mov r0, r9
- add r0, r10
- lsls r0, 2
- ldr r6, =gUnknown_085DD6D0
- adds r5, r0, r6
-_08165440:
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- str r4, [sp, 0x44]
- ldr r0, =0x0000ef2a
- adds r1, r4, 0
- bl sub_806EBD0
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- bne _08165440
- ldr r0, [sp, 0x44]
- bl GetNatureFromPersonality
- ldrb r1, [r5, 0x4]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _08165440
- movs r0, 0x64
- mov r6, r10
- muls r6, r0
- ldr r1, =gUnknown_02024618
- mov r8, r1
- adds r0, r6, r1
- mov r5, r9
- add r5, r10
- lsls r5, 2
- ldr r2, =gUnknown_085DD6D0
- adds r3, r5, r2
- ldrh r1, [r3]
- ldrb r2, [r3, 0x3]
- ldrb r3, [r3, 0x2]
- mov r12, r3
- movs r4, 0x1
- str r4, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r4, =0x0000ef2a
- str r4, [sp, 0xC]
- mov r3, r12
- bl create_pokemon_set_level
- str r7, [sp, 0x44]
- movs r3, 0
- mov r4, r8
- ldr r0, =gUnknown_085DD6D5
- adds r5, r0
-_081654B0:
- adds r1, r3, 0
- adds r1, 0x1A
- adds r2, r5, r3
- adds r0, r6, r4
- bl SetMonData
- ldr r0, [sp, 0x44]
- adds r0, 0x1
- str r0, [sp, 0x44]
- adds r3, r0, 0
- cmp r3, 0x5
- ble _081654B0
- movs r0, 0
- str r0, [sp, 0x44]
- movs r1, 0
- movs r6, 0x64
- mov r4, r10
- muls r4, r6
- ldr r7, =gUnknown_085DD6DC
- ldr r6, =gUnknown_02024618
- mov r0, r9
- add r0, r10
- lsls r5, r0, 2
-_081654DE:
- lsls r0, r1, 1
- adds r0, r5
- adds r0, r7
- ldrh r1, [r0]
- ldr r0, [sp, 0x64]
- ldrb r2, [r0]
- adds r0, r4, r6
- bl sub_80691F4
- ldr r0, [sp, 0x44]
- adds r0, 0x1
- str r0, [sp, 0x44]
- adds r1, r0, 0
- cmp r1, 0x3
- ble _081654DE
- movs r1, 0x64
- mov r4, r10
- muls r4, r1
- ldr r0, =gUnknown_02024618
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x7
- ldr r2, =gTrainers + TRAINER_STEVEN * 0x28 + 0x4 @ Steven's name
- bl SetMonData
- movs r0, 0
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x31
- ldr r2, [sp, 0x64]
- bl SetMonData
- adds r0, r4, 0
- bl pokemon_calc_effective_stats
- ldr r2, [sp, 0x60]
- mov r10, r2
- cmp r2, 0x2
- bgt _0816552E
- b _0816542A
-_0816552E:
- b _0816585A
- .pool
-_0816554C:
- movs r0, 0xFA
- lsls r0, 1
- cmp r7, r0
- bne _08165564
- add r0, sp, 0x10
- ldr r1, =gGameLanguage
- ldrb r1, [r1]
- strb r1, [r0]
- b _0816585A
- .pool
-_08165564:
- ldr r0, =0x0000012b
- cmp r7, r0
- bls _0816556C
- b _081656E8
-_0816556C:
- bl sub_8165C40
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x50]
- adds r0, r7, 0
- bl sub_8165D08
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4C]
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- str r4, [sp, 0x58]
- movs r3, 0
- mov r10, r3
- mov r6, sp
- adds r6, 0x44
- str r6, [sp, 0x64]
- mov r0, sp
- adds r0, 0x48
- str r0, [sp, 0x5C]
-_081655A6:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- mov r0, r10
- adds r0, 0x12
- lsls r0, 1
- ldr r2, =0x00000cb4
- adds r1, r2
- adds r1, r0
- ldrh r1, [r1]
- str r1, [sp, 0x54]
- movs r6, 0x64
- mov r3, r10
- muls r3, r6
- mov r8, r3
- ldr r0, =gUnknown_02024618
- mov r9, r0
- mov r0, r8
- add r0, r9
- ldr r6, =gUnknown_0203BC8C
- ldr r4, [r6]
- lsls r5, r1, 4
- adds r4, r5, r4
- ldrh r1, [r4]
- ldr r3, [sp, 0x50]
- lsls r2, r3, 24
- ldrb r3, [r4, 0xC]
- mov r12, r3
- ldr r3, [sp, 0x4C]
- str r3, [sp]
- ldrb r4, [r4, 0xB]
- str r4, [sp, 0x4]
- ldr r3, [sp, 0x58]
- str r3, [sp, 0x8]
- lsrs r2, 24
- mov r3, r12
- bl sub_8068634
- movs r0, 0xFF
- str r0, [sp, 0x48]
- movs r0, 0
- str r0, [sp, 0x44]
- movs r2, 0
- mov r0, r10
- adds r0, 0x1
- str r0, [sp, 0x60]
- mov r4, r8
- mov r3, r9
-_08165604:
- ldr r0, [r6]
- adds r0, r5, r0
- lsls r1, r2, 1
- adds r0, 0x2
- adds r0, r1
- ldrh r1, [r0]
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, r3
- str r3, [sp, 0x68]
- bl sub_80691F4
- ldr r0, [r6]
- adds r0, r5, r0
- ldr r2, [sp, 0x44]
- lsls r1, r2, 1
- adds r0, 0x2
- adds r0, r1
- ldrh r0, [r0]
- ldr r3, [sp, 0x68]
- cmp r0, 0xDA
- bne _08165634
- movs r0, 0
- str r0, [sp, 0x48]
-_08165634:
- adds r0, r2, 0x1
- str r0, [sp, 0x44]
- adds r2, r0, 0
- cmp r2, 0x3
- ble _08165604
- movs r1, 0x64
- mov r4, r10
- muls r4, r1
- ldr r0, =gUnknown_02024618
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x20
- ldr r2, [sp, 0x5C]
- bl SetMonData
- ldr r0, =gUnknown_0203BC8C
- ldr r1, [r0]
- ldr r2, [sp, 0x54]
- lsls r0, r2, 4
- adds r0, r1
- ldrb r2, [r0, 0xA]
- lsls r2, 1
- ldr r0, =gBattleFrontierHeldItems
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- movs r0, 0
- str r0, [sp, 0x44]
- movs r2, 0
- ldr r0, =gUnknown_0203BC88
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r7
- adds r0, r1
- adds r3, r0, 0x4
-_0816567E:
- mov r1, sp
- adds r1, r2
- adds r1, 0x10
- adds r0, r3, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, [sp, 0x44]
- adds r0, 0x1
- str r0, [sp, 0x44]
- adds r2, r0, 0
- cmp r2, 0x7
- ble _0816567E
- movs r3, 0x64
- mov r4, r10
- muls r4, r3
- ldr r0, =gUnknown_02024618
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x7
- add r2, sp, 0x10
- bl SetMonData
- adds r0, r7, 0
- bl sub_8162F68
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x31
- ldr r2, [sp, 0x64]
- bl SetMonData
- ldr r6, [sp, 0x60]
- mov r10, r6
- cmp r6, 0x1
- bgt _081656CA
- b _081655A6
-_081656CA:
- b _0816585A
- .pool
-_081656E8:
- ldr r0, =0x0000018f
- cmp r7, r0
- bls _081656F0
- b _081657F0
-_081656F0:
- ldr r1, =0xfffffed4
- adds r0, r7, r1
- lsls r0, 16
- lsrs r7, r0, 16
- movs r2, 0
- mov r10, r2
- mov r3, sp
- adds r3, 0x44
- str r3, [sp, 0x64]
- add r5, sp, 0x18
- ldr r6, =0x000015fc
- mov r9, r6
- ldr r0, =0x0000ffff
- mov r8, r0
- movs r1, 0x24
- str r1, [sp, 0x6C]
-_08165710:
- ldr r1, =gSaveBlock2Ptr
- movs r0, 0xEC
- adds r4, r7, 0
- muls r4, r0
- movs r2, 0xE7
- lsls r2, 3
- adds r4, r2
- ldr r0, [r1]
- adds r4, r0, r4
- ldr r3, =0x00000cb4
- adds r0, r3
- ldr r6, [sp, 0x6C]
- adds r0, r6
- ldrh r1, [r0]
- movs r0, 0x2C
- muls r1, r0
- adds r1, r4, r1
- adds r0, r5, 0
- adds r1, 0x34
- ldm r1!, {r2,r3,r6}
- stm r0!, {r2,r3,r6}
- ldm r1!, {r2,r3,r6}
- stm r0!, {r2,r3,r6}
- ldm r1!, {r2,r3,r6}
- stm r0!, {r2,r3,r6}
- ldm r1!, {r2,r3}
- stm r0!, {r2,r3}
- adds r1, r4, 0x4
- add r0, sp, 0x10
- bl StringCopy
- adds r4, 0xE4
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _0816578C
- ldrh r0, [r5, 0x20]
- mov r6, r8
- ands r0, r6
- cmp r0, r9
- beq _0816579C
- mov r1, sp
- adds r1, 0x3D
- movs r0, 0xFF
- strb r0, [r1]
- add r0, sp, 0x38
- movs r1, 0x1
- bl ConvertInternationalString
- b _0816579C
- .pool
-_0816578C:
- ldrh r0, [r5, 0x20]
- mov r1, r8
- ands r0, r1
- cmp r0, r9
- bne _0816579C
- add r1, sp, 0x10
- movs r0, 0xFF
- strb r0, [r1, 0x5]
-_0816579C:
- movs r0, 0x64
- mov r4, r10
- muls r4, r0
- ldr r0, =gUnknown_02024618
- adds r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8068338
- adds r0, r4, 0
- movs r1, 0x7
- add r2, sp, 0x10
- bl SetMonData
- movs r2, 0x96
- lsls r2, 1
- adds r0, r7, r2
- lsls r0, 16
- lsrs r0, 16
- bl sub_8162F68
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x31
- ldr r2, [sp, 0x64]
- bl SetMonData
- ldr r3, [sp, 0x6C]
- adds r3, 0x2
- str r3, [sp, 0x6C]
- movs r6, 0x1
- add r10, r6
- mov r0, r10
- cmp r0, 0x1
- ble _08165710
- b _0816585A
- .pool
-_081657F0:
- ldr r1, =0xfffffe70
- adds r0, r7, r1
- lsls r0, 16
- lsrs r7, r0, 16
- movs r2, 0
- mov r10, r2
- mov r3, sp
- adds r3, 0x44
- str r3, [sp, 0x64]
- ldr r6, =gSaveBlock2Ptr
- mov r8, r6
- movs r5, 0x24
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r6, r0, 0
- adds r6, 0xDC
-_08165812:
- movs r0, 0x64
- mov r4, r10
- muls r4, r0
- ldr r0, =gUnknown_02024618
- adds r4, r0
- mov r1, r8
- ldr r0, [r1]
- adds r1, r0, r6
- ldr r2, =0x00000cb4
- adds r0, r2
- adds r0, r5
- ldrb r2, [r0]
- adds r0, r4, 0
- bl sub_8068528
- movs r3, 0xC8
- lsls r3, 1
- adds r0, r7, r3
- lsls r0, 16
- lsrs r0, 16
- bl sub_8162F68
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x31
- ldr r2, [sp, 0x64]
- bl SetMonData
- adds r5, 0x2
- movs r0, 0x1
- add r10, r0
- mov r1, r10
- cmp r1, 0x1
- ble _08165812
-_0816585A:
- add sp, 0x70
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8165404
-
- thumb_func_start sub_816587C
-sub_816587C: @ 816587C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r6, r0, 0
- adds r5, r1, 0
- movs r2, 0
- adds r1, r6, 0
- adds r3, r6, 0
- adds r3, 0x58
-_08165894:
- ldrh r0, [r1, 0x1C]
- cmp r0, 0
- beq _0816589C
- adds r2, 0x1
-_0816589C:
- adds r1, 0x2C
- cmp r1, r3
- ble _08165894
- cmp r2, 0x3
- beq _081658B4
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0xEC
- bl memset
- movs r0, 0
- b _081659BE
-_081658B4:
- ldrb r0, [r6]
- strb r0, [r5]
- ldrh r0, [r6, 0x2]
- strh r0, [r5, 0x2]
- movs r2, 0
- ldr r0, =gUnknown_085DCF40
- ldrb r1, [r0]
- ldrb r3, [r6, 0x1]
- mov r12, r0
- adds r4, r5, 0x4
- adds r7, r6, 0x4
- movs r0, 0xC
- adds r0, r5
- mov r9, r0
- movs r0, 0xC
- adds r0, r6
- mov r8, r0
- adds r0, r5, 0
- adds r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0x10
- adds r0, r6
- mov r10, r0
- adds r0, r5, 0
- adds r0, 0x1C
- str r0, [sp, 0x8]
- adds r0, 0xC
- str r0, [sp, 0xC]
- adds r0, 0x90
- str r0, [sp, 0x10]
- cmp r1, r3
- beq _08165904
- mov r1, r12
-_081658F6:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x51
- bgt _08165904
- ldrb r0, [r1]
- cmp r0, r3
- bne _081658F6
-_08165904:
- cmp r2, 0x52
- beq _08165918
- lsls r0, r2, 1
- mov r1, r12
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- b _0816591A
- .pool
-_08165918:
- movs r0, 0x2B
-_0816591A:
- strb r0, [r5, 0x1]
- movs r2, 0
- adds r3, r7, 0
-_08165920:
- adds r0, r4, r2
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x7
- ble _08165920
- movs r2, 0
- mov r4, r9
- mov r3, r8
-_08165934:
- adds r0, r4, r2
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x3
- ble _08165934
- mov r3, r10
- ldr r1, [sp, 0x4]
- movs r2, 0x5
-_08165948:
- ldrh r0, [r3]
- strh r0, [r1]
- adds r3, 0x2
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08165948
- ldr r3, =gUnknown_085DFA46
- ldr r1, [sp, 0x8]
- movs r2, 0x5
-_0816595C:
- ldrh r0, [r3]
- strh r0, [r1]
- adds r3, 0x2
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _0816595C
- ldr r3, =gUnknown_085DFA52
- ldr r1, [sp, 0xC]
- movs r2, 0x5
-_08165970:
- ldrh r0, [r3]
- strh r0, [r1]
- adds r3, 0x2
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08165970
- adds r2, r6, 0
- adds r3, r5, 0
- movs r4, 0x58
- adds r4, r2
- mov r8, r4
-_08165988:
- adds r1, r3, 0
- adds r1, 0x34
- adds r0, r2, 0
- adds r0, 0x1C
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldm r0!, {r6,r7}
- stm r1!, {r6,r7}
- adds r2, 0x2C
- adds r3, 0x2C
- cmp r2, r8
- ble _08165988
- movs r0, 0
- str r0, [sp]
- ldr r2, =0x0500000b
- mov r0, sp
- ldr r1, [sp, 0x10]
- bl CpuSet
- adds r0, r5, 0
- bl sub_8164F70
- movs r0, 0x1
-_081659BE:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_816587C
-
- thumb_func_start sub_81659DC
-sub_81659DC: @ 81659DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r1, 0
- movs r2, 0
- adds r1, r4, 0
- adds r3, r4, 0
- adds r3, 0x58
-_081659F4:
- ldrh r0, [r1, 0x34]
- cmp r0, 0
- beq _081659FC
- adds r2, 0x1
-_081659FC:
- adds r1, 0x2C
- cmp r1, r3
- ble _081659F4
- cmp r2, 0x3
- beq _08165A14
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0xA4
- bl memset
- movs r0, 0
- b _08165AD8
-_08165A14:
- ldrb r0, [r4]
- strb r0, [r6]
- ldrh r0, [r4, 0x2]
- strh r0, [r6, 0x2]
- movs r2, 0
- ldr r0, =gUnknown_085DCF40
- ldrb r1, [r0, 0x1]
- ldrb r3, [r4, 0x1]
- mov r12, r0
- adds r5, r6, 0x4
- adds r7, r4, 0x4
- movs r0, 0xC
- adds r0, r6
- mov r9, r0
- movs r0, 0xC
- adds r0, r4
- mov r8, r0
- adds r0, r6, 0
- adds r0, 0x10
- str r0, [sp]
- movs r0, 0x10
- adds r0, r4
- mov r10, r0
- cmp r1, r3
- beq _08165A58
- mov r1, r12
- adds r1, 0x1
-_08165A4A:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x51
- bgt _08165A58
- ldrb r0, [r1]
- cmp r0, r3
- bne _08165A4A
-_08165A58:
- cmp r2, 0x52
- beq _08165A68
- lsls r0, r2, 1
- add r0, r12
- ldrb r0, [r0]
- b _08165A6A
- .pool
-_08165A68:
- movs r0, 0x24
-_08165A6A:
- strb r0, [r6, 0x1]
- movs r2, 0
- adds r3, r7, 0
-_08165A70:
- adds r0, r5, r2
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x7
- ble _08165A70
- movs r2, 0
- mov r5, r9
- mov r3, r8
-_08165A84:
- adds r0, r5, r2
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x3
- ble _08165A84
- mov r3, r10
- ldr r1, [sp]
- movs r2, 0x5
-_08165A98:
- ldrh r0, [r3]
- strh r0, [r1]
- adds r3, 0x2
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08165A98
- adds r2, r4, 0
- adds r3, r6, 0
- movs r4, 0x58
- adds r4, r2
- mov r8, r4
-_08165AB0:
- adds r1, r3, 0
- adds r1, 0x1C
- adds r0, r2, 0
- adds r0, 0x34
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldm r0!, {r5,r7}
- stm r1!, {r5,r7}
- adds r2, 0x2C
- adds r3, 0x2C
- cmp r2, r8
- ble _08165AB0
- adds r0, r6, 0
- bl sub_8164F94
- movs r0, 0x1
-_08165AD8:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81659DC
-
- thumb_func_start sub_8165AE8
-sub_8165AE8: @ 8165AE8
- push {r4,lr}
- adds r2, r0, 0
- movs r0, 0
- str r0, [r2, 0x40]
- movs r3, 0
- adds r4, r2, 0
-_08165AF4:
- ldr r0, [r2, 0x40]
- ldm r4!, {r1}
- adds r0, r1
- str r0, [r2, 0x40]
- adds r3, 0x1
- cmp r3, 0xF
- bls _08165AF4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8165AE8
-
- thumb_func_start sub_8165B08
-sub_8165B08: @ 8165B08
- push {lr}
- movs r1, 0
- movs r3, 0
- adds r2, r0, 0
-_08165B10:
- stm r2!, {r3}
- adds r1, 0x1
- cmp r1, 0x10
- bls _08165B10
- bl sub_819FA5C
- pop {r0}
- bx r0
- thumb_func_end sub_8165B08
-
- thumb_func_start sub_8165B20
-sub_8165B20: @ 8165B20
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r5, 0
- ldr r0, =gSaveBlock2Ptr
- mov r8, r0
- mov r9, r8
-_08165B30:
- lsls r0, r5, 4
- adds r1, r0, r5
- lsls r1, 2
- adds r1, 0xDC
- mov r3, r9
- ldr r2, [r3]
- movs r4, 0
- movs r3, 0
- adds r6, r0, 0
- adds r7, r5, 0x1
- adds r2, r1
-_08165B46:
- ldm r2!, {r0}
- adds r4, r0
- adds r3, 0x1
- cmp r3, 0xF
- bls _08165B46
- mov r0, r8
- ldr r2, [r0]
- adds r0, r6, r5
- lsls r1, r0, 2
- movs r3, 0x8E
- lsls r3, 1
- adds r0, r2, r3
- adds r0, r1
- ldr r0, [r0]
- cmp r0, r4
- beq _08165B70
- adds r0, r1, 0
- adds r0, 0xDC
- adds r0, r2, r0
- bl sub_8165B08
-_08165B70:
- adds r5, r7, 0
- cmp r5, 0x3
- ble _08165B30
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8165B20
-
- thumb_func_start sub_8165B88
-sub_8165B88: @ 8165B88
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r2, r1, 16
- adds r3, r2, 0
- movs r0, 0xFA
- lsls r0, 1
- cmp r2, r0
- bne _08165BA4
- ldr r0, =gGameLanguage
- b _08165C28
- .pool
-_08165BA4:
- ldr r0, =0x0000012b
- cmp r2, r0
- bhi _08165BB8
- ldr r0, =gGameLanguage
- b _08165C28
- .pool
-_08165BB8:
- ldr r0, =0x0000018f
- cmp r2, r0
- bhi _08165BFC
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08165BDC
- bl sub_81864B4
- b _08165C2A
- .pool
-_08165BDC:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0xfffffed4
- adds r2, r1
- movs r1, 0xEC
- muls r1, r2
- adds r0, r1
- ldr r1, =0x0000081c
- adds r0, r1
- b _08165C28
- .pool
-_08165BFC:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08165C14
- bl sub_81864C0
- b _08165C2A
- .pool
-_08165C14:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, =0xfffffe70
- adds r1, r3, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0
- ldr r1, =0x0000011b
- adds r0, r2, r1
-_08165C28:
- ldrb r0, [r0]
-_08165C2A:
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8165B88
-
- thumb_func_start sub_8165C40
-sub_8165C40: @ 8165C40
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r2, r0, r1
- ldrb r1, [r2]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- beq _08165C84
- ldr r1, =gUnknown_0203BC88
- ldr r0, =gBattleFrontierTrainers
- str r0, [r1]
- ldr r1, =gUnknown_0203BC8C
- ldr r0, =gBattleFrontierMons
- str r0, [r1]
- ldrb r0, [r2]
- lsls r0, 30
- lsrs r0, 30
- bl sub_8165C90
- b _08165C88
- .pool
-_08165C84:
- bl sub_8165D78
-_08165C88:
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_8165C40
-
- thumb_func_start sub_8165C90
-sub_8165C90: @ 8165C90
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08165C9E
- cmp r0, 0x1
- beq _08165CA2
-_08165C9E:
- movs r0, 0x32
- b _08165CB0
-_08165CA2:
- bl sub_8165CB4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3B
- bhi _08165CB0
- movs r0, 0x3C
-_08165CB0:
- pop {r1}
- bx r1
- thumb_func_end sub_8165C90
-
- thumb_func_start sub_8165CB4
-sub_8165CB4: @ 8165CB4
- push {r4-r6,lr}
- movs r6, 0
- movs r5, 0
-_08165CBA:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _08165CF4
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08165CF4
- adds r0, r4, 0
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- cmp r0, r6
- ble _08165CF4
- adds r6, r0, 0
-_08165CF4:
- adds r5, 0x1
- cmp r5, 0x5
- ble _08165CBA
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8165CB4
-
- thumb_func_start sub_8165D08
-sub_8165D08: @ 8165D08
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- cmp r0, 0x63
- bls _08165D3A
- movs r1, 0x6
- cmp r0, 0x77
- bls _08165D3A
- movs r1, 0x9
- cmp r0, 0x8B
- bls _08165D3A
- movs r1, 0xC
- cmp r0, 0x9F
- bls _08165D3A
- movs r1, 0xF
- cmp r0, 0xB3
- bls _08165D3A
- movs r1, 0x12
- cmp r0, 0xC7
- bls _08165D3A
- movs r1, 0x1F
- cmp r0, 0xDB
- bhi _08165D3A
- movs r1, 0x15
-_08165D3A:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8165D08
-
- thumb_func_start sub_8165D40
-sub_8165D40: @ 8165D40
- push {lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- beq _08165D58
- cmp r0, 0x3
- beq _08165D58
- cmp r0, 0x4
- bne _08165D70
-_08165D58:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1E
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- b _08165D72
- .pool
-_08165D70:
- movs r0, 0
-_08165D72:
- pop {r1}
- bx r1
- thumb_func_end sub_8165D40
-
- thumb_func_start sub_8165D78
-sub_8165D78: @ 8165D78
- push {lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bne _08165DA8
- ldr r1, =gUnknown_0203BC88
- ldr r0, =gSlateportBattleTentTrainers
- str r0, [r1]
- ldr r1, =gUnknown_0203BC8C
- ldr r0, =gSlateportBattleTentMons
- b _08165DF2
- .pool
-_08165DA8:
- cmp r0, 0x2
- bne _08165DC8
- ldr r1, =gUnknown_0203BC88
- ldr r0, =gVerdanturfBattleTentTrainers
- str r0, [r1]
- ldr r1, =gUnknown_0203BC8C
- ldr r0, =gVerdanturfBattleTentMons
- b _08165DF2
- .pool
-_08165DC8:
- cmp r0, 0x3
- bne _08165DE8
- ldr r1, =gUnknown_0203BC88
- ldr r0, =gFallarborBattleTentTrainers
- str r0, [r1]
- ldr r1, =gUnknown_0203BC8C
- ldr r0, =gFallarborBattleTentMons
- b _08165DF2
- .pool
-_08165DE8:
- ldr r1, =gUnknown_0203BC88
- ldr r0, =gBattleFrontierTrainers
- str r0, [r1]
- ldr r1, =gUnknown_0203BC8C
- ldr r0, =gBattleFrontierMons
-_08165DF2:
- str r0, [r1]
- bl sub_8165CB4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1D
- bhi _08165E02
- movs r0, 0x1E
-_08165E02:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8165D78
-
- thumb_func_start sub_8165E18
-sub_8165E18: @ 8165E18
- push {r4,r5,lr}
- ldr r5, =gSaveBlock2Ptr
-_08165E1C:
- bl sub_8165D40
- lsls r0, 16
- lsrs r4, r0, 16
- movs r3, 0
- ldr r1, [r5]
- ldr r2, =0x00000cb2
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r3, r0
- bge _08165E58
- adds r2, 0x2
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, r4
- beq _08165E58
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- subs r2, 0x2
- adds r0, r1, r2
- ldrh r2, [r0]
- ldr r0, =0x00000cb4
- adds r1, r0
-_08165E4A:
- adds r1, 0x2
- adds r3, 0x1
- cmp r3, r2
- bge _08165E58
- ldrh r0, [r1]
- cmp r0, r4
- bne _08165E4A
-_08165E58:
- ldr r0, [r5]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- cmp r3, r0
- bne _08165E1C
- ldr r5, =gUnknown_02038BCA
- strh r4, [r5]
- ldrh r0, [r5]
- movs r1, 0
- bl sub_8162614
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r2, =0x00000cb2
- adds r0, r1, r2
- ldrh r2, [r0]
- adds r0, r2, 0x1
- cmp r0, 0x2
- bgt _08165E8C
- lsls r0, r2, 1
- ldr r2, =0x00000cb4
- adds r1, r2
- adds r1, r0
- ldrh r0, [r5]
- strh r0, [r1]
-_08165E8C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8165E18
-
- thumb_func_start sub_8165EA4
-sub_8165EA4: @ 8165EA4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x38
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x18]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x1C]
- bl sub_8165D78
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x20]
- ldr r0, =gUnknown_02038BCA
- ldrh r2, [r0]
- ldr r0, =gUnknown_0203BC88
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r2
- adds r0, r1
- ldr r0, [r0, 0x30]
- str r0, [sp, 0x28]
- movs r0, 0
- str r0, [sp, 0x24]
- ldr r2, [sp, 0x28]
- ldrh r1, [r2]
- b _08165EFE
- .pool
-_08165EEC:
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- lsls r0, 1
- ldr r6, [sp, 0x28]
- adds r0, r6
- ldrh r1, [r0]
-_08165EFE:
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _08165EEC
- movs r0, 0
- mov r8, r0
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- str r4, [sp, 0x2C]
- b _08166092
- .pool
-_08165F24:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp, 0x24]
- bl __modsi3
- lsls r0, 1
- ldr r2, [sp, 0x28]
- adds r0, r2
- ldrh r4, [r0]
- movs r6, 0
- ldr r7, [sp, 0x18]
- add r7, r8
- b _08165F44
-_08165F42:
- adds r6, 0x1
-_08165F44:
- cmp r6, r7
- bge _08165F68
- movs r1, 0x64
- adds r0, r6, 0
- muls r0, r1
- ldr r2, =gEnemyParty
- adds r0, r2
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- ldr r1, =gUnknown_0203BC8C
- ldr r2, [r1]
- lsls r1, r4, 4
- adds r1, r2
- ldrh r1, [r1]
- cmp r0, r1
- bne _08165F42
-_08165F68:
- cmp r6, r7
- beq _08165F6E
- b _08166092
-_08165F6E:
- movs r6, 0
- cmp r6, r7
- bge _08165FB8
- ldr r0, =gBattleFrontierHeldItems
- mov r9, r0
- movs r3, 0
-_08165F7A:
- ldr r1, =gEnemyParty
- adds r5, r3, r1
- adds r0, r5, 0
- movs r1, 0xC
- movs r2, 0
- str r3, [sp, 0x34]
- bl GetMonData
- ldr r3, [sp, 0x34]
- cmp r0, 0
- beq _08165FB0
- adds r0, r5, 0
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- ldr r1, =gUnknown_0203BC8C
- ldr r2, [r1]
- lsls r1, r4, 4
- adds r1, r2
- ldrb r1, [r1, 0xA]
- lsls r1, 1
- add r1, r9
- ldr r3, [sp, 0x34]
- ldrh r1, [r1]
- cmp r0, r1
- beq _08165FB8
-_08165FB0:
- adds r3, 0x64
- adds r6, 0x1
- cmp r6, r7
- blt _08165F7A
-_08165FB8:
- cmp r6, r7
- bne _08166092
- movs r6, 0
- cmp r6, r8
- bge _08165FDA
- add r0, sp, 0xC
- ldrh r0, [r0]
- cmp r0, r4
- beq _08165FDA
- add r1, sp, 0xC
-_08165FCC:
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, r8
- bge _08165FDA
- ldrh r0, [r1]
- cmp r0, r4
- bne _08165FCC
-_08165FDA:
- cmp r6, r8
- bne _08166092
- mov r2, r8
- lsls r0, r2, 1
- add r0, sp
- adds r0, 0xC
- strh r4, [r0]
- movs r6, 0x64
- adds r0, r7, 0
- muls r0, r6
- ldr r1, =gEnemyParty
- adds r0, r1
- ldr r5, =gUnknown_0203BC8C
- ldr r2, [r5]
- lsls r4, 4
- adds r2, r4, r2
- ldrh r1, [r2]
- ldrb r3, [r2, 0xC]
- movs r6, 0
- str r6, [sp]
- ldrb r2, [r2, 0xB]
- str r2, [sp, 0x4]
- ldr r2, [sp, 0x2C]
- str r2, [sp, 0x8]
- ldr r2, [sp, 0x20]
- bl sub_8068634
- add r1, sp, 0x14
- movs r0, 0xFF
- strb r0, [r1]
- mov r9, r4
- mov r0, r8
- adds r0, 0x1
- str r0, [sp, 0x30]
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- mov r8, r1
- adds r3, r5, 0
- mov r5, r9
- ldr r2, =gEnemyParty
- mov r10, r2
-_0816602E:
- ldr r0, [r3]
- adds r0, r5, r0
- lsls r4, r6, 1
- adds r0, 0x2
- adds r0, r4
- ldrh r1, [r0]
- lsls r2, r6, 24
- lsrs r2, 24
- mov r0, r8
- add r0, r10
- str r3, [sp, 0x34]
- bl sub_80691F4
- ldr r3, [sp, 0x34]
- ldr r0, [r3]
- adds r0, r5, r0
- adds r0, 0x2
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0xDA
- bne _0816605E
- movs r0, 0
- mov r1, sp
- strb r0, [r1, 0x14]
-_0816605E:
- adds r6, 0x1
- cmp r6, 0x3
- ble _0816602E
- movs r2, 0x64
- adds r4, r7, 0
- muls r4, r2
- ldr r6, =gEnemyParty
- adds r4, r6
- adds r0, r4, 0
- movs r1, 0x20
- add r2, sp, 0x14
- bl SetMonData
- ldr r0, =gUnknown_0203BC8C
- ldr r0, [r0]
- add r0, r9
- ldrb r2, [r0, 0xA]
- lsls r2, 1
- ldr r0, =gBattleFrontierHeldItems
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- ldr r0, [sp, 0x30]
- mov r8, r0
-_08166092:
- ldr r1, [sp, 0x1C]
- cmp r8, r1
- beq _0816609A
- b _08165F24
-_0816609A:
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8165EA4
-
- thumb_func_start sub_81660B8
-sub_81660B8: @ 81660B8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r3, =gUnknown_085DCEDC
- ldrb r0, [r3]
- cmp r0, r2
- beq _081660DA
-_081660C8:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1D
- bhi _081660DA
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081660C8
-_081660DA:
- cmp r1, 0x1E
- beq _081660EC
- ldr r0, =gUnknown_085DCF0E
- b _08166116
- .pool
-_081660EC:
- movs r1, 0
- ldr r3, =gUnknown_085DCEFA
- ldrb r0, [r3]
- cmp r0, r2
- beq _08166108
-_081660F6:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x13
- bhi _08166108
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081660F6
-_08166108:
- cmp r1, 0x14
- bne _08166114
- movs r0, 0x7
- b _0816611A
- .pool
-_08166114:
- ldr r0, =gUnknown_085DCF2C
-_08166116:
- adds r0, r1, r0
- ldrb r0, [r0]
-_0816611A:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81660B8
-
- thumb_func_start sub_8166124
-sub_8166124: @ 8166124
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, =gSaveBlock2Ptr
- movs r0, 0xEC
- muls r0, r6
- movs r1, 0xE7
- lsls r1, 3
- adds r0, r1
- ldr r1, [r2]
- movs r5, 0
- movs r4, 0
- movs r3, 0
- adds r1, r0
-_08166140:
- ldm r1!, {r0}
- adds r5, r0
- orrs r4, r0
- adds r3, 0x1
- cmp r3, 0x39
- bls _08166140
- cmp r5, 0
- bne _08166154
- cmp r4, 0
- beq _08166180
-_08166154:
- ldr r2, [r2]
- movs r0, 0xEC
- adds r1, r6, 0
- muls r1, r0
- movs r3, 0x82
- lsls r3, 4
- adds r0, r2, r3
- adds r0, r1
- ldr r0, [r0]
- cmp r0, r5
- bne _08166174
- movs r0, 0x1
- b _08166182
- .pool
-_08166174:
- movs r3, 0xE7
- lsls r3, 3
- adds r0, r1, r3
- adds r0, r2, r0
- bl sub_8164FB8
-_08166180:
- movs r0, 0
-_08166182:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8166124
-
- thumb_func_start sub_8166188
-sub_8166188: @ 8166188
- push {r4-r7,lr}
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, =0x02000002
- ands r0, r1
- cmp r0, 0
- beq _081661E8
- bl sub_8165C40
- lsls r0, 24
- movs r5, 0
- ldr r7, =gBaseStats
- lsrs r0, 22
- ldr r1, =gExperienceTables
- adds r6, r0, r1
-_081661A6:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- cmp r1, 0
- beq _081661E2
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r1, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- adds r2, r1, 0
- muls r2, r0
- adds r2, r6
- adds r0, r4, 0
- movs r1, 0x19
- bl SetMonData
- adds r0, r4, 0
- bl pokemon_calc_effective_stats
-_081661E2:
- adds r5, 0x1
- cmp r5, 0x5
- ble _081661A6
-_081661E8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8166188
-
- thumb_func_start sub_8166204
-sub_8166204: @ 8166204
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- ldr r4, =gUnknown_0203BCAC
- ldr r0, =0x0000806c
- bl AllocZeroed
- str r0, [r4]
- ldr r1, =gUnknown_0203BC90
- ldr r2, =0x00007fd0
- adds r0, r2
- str r0, [r1]
- str r5, [r0, 0x8]
- str r6, [r0, 0x4]
- ldr r0, =sub_8166380
- bl launch_c3_walk_stairs_and_run_once
- ldr r0, =sub_816631C
- bl SetMainCallback2
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8166204
-
- thumb_func_start sub_816624C
-sub_816624C: @ 816624C
- push {r4,r5,lr}
- ldr r4, =gUnknown_0203BCAC
- ldr r0, =0x0000806c
- bl AllocZeroed
- str r0, [r4]
- ldr r5, =gUnknown_0203BC90
- ldr r1, =0x00007fd0
- adds r0, r1
- str r0, [r5]
- ldr r1, =gUnknown_0203BC98
- ldr r1, [r1]
- str r1, [r0, 0x8]
- ldr r1, =gUnknown_0203BC94
- ldr r1, [r1]
- str r1, [r0, 0x4]
- ldr r4, =gUnknown_0203BC9C
- ldrb r0, [r4]
- bl sub_81672E4
- strb r0, [r4]
- ldr r5, [r5]
- movs r1, 0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08166284
- movs r1, 0x1
-_08166284:
- adds r0, r5, 0
- adds r0, 0x56
- strb r1, [r0]
- ldr r0, =sub_8166380
- bl launch_c3_walk_stairs_and_run_once
- ldr r0, =sub_81662C0
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_816624C
-
- thumb_func_start sub_81662C0
-sub_81662C0: @ 81662C0
- push {r4,lr}
- ldr r4, =gUnknown_0203BC90
- ldr r0, [r4]
- ldr r0, [r0]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r4, [r4]
- ldr r1, [r4]
- ldr r0, =map_warp_consider_1_to_outside_or_stair_or_dive
- cmp r1, r0
- bne _081662F0
- adds r0, r4, 0
- adds r0, 0x50
- movs r1, 0
- strb r1, [r0]
- ldr r0, =sub_8166304
- bl SetMainCallback2
-_081662F0:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81662C0
-
- thumb_func_start sub_8166304
-sub_8166304: @ 8166304
- push {lr}
- bl sub_81668F8
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8166304
-
- thumb_func_start sub_816631C
-sub_816631C: @ 816631C
- push {lr}
- ldr r0, =gUnknown_0203BC90
- ldr r0, [r0]
- ldr r0, [r0]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTextPrinters
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_816631C
-
- thumb_func_start sub_8166340
-sub_8166340: @ 8166340
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r1, =0x00007c58
- adds r0, r1
- bl sub_81D2108
- bl sub_80BA0A8
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8166340
-
- thumb_func_start launch_c3_walk_stairs_and_run_once
-launch_c3_walk_stairs_and_run_once: @ 816636C
- ldr r1, =gUnknown_0203BC90
- ldr r1, [r1]
- str r0, [r1]
- adds r1, 0x50
- movs r0, 0
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end launch_c3_walk_stairs_and_run_once
-
- thumb_func_start sub_8166380
-sub_8166380: @ 8166380
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, =gUnknown_0203BC90
- ldr r0, [r1]
- adds r0, 0x50
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0xF
- bls _08166394
- b _08166556
-_08166394:
- lsls r0, 2
- ldr r1, =_081663A8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081663A8:
- .4byte _081663E8
- .4byte _0816640C
- .4byte _08166416
- .4byte _08166434
- .4byte _08166464
- .4byte _08166468
- .4byte _08166474
- .4byte _08166484
- .4byte _08166490
- .4byte _0816649C
- .4byte _081664B8
- .4byte _081664BC
- .4byte _081664E4
- .4byte _08166510
- .4byte _08166528
- .4byte _08166550
-_081663E8:
- ldr r2, =gUnknown_0203BCAC
- ldr r0, [r2]
- ldr r1, =0x00007b10
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, [r2]
- ldr r2, =0x00007c58
- adds r0, r2
- bl sub_81D1ED4
- b _0816653C
- .pool
-_0816640C:
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- b _0816653C
-_08166416:
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- str r0, [sp]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, =0x05006000
- mov r0, sp
- bl CpuSet
- b _0816653C
- .pool
-_08166434:
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_085DFCCC
- movs r0, 0
- movs r2, 0x4
- bl InitBgsFromTemplates
- ldr r0, =gUnknown_085DFCDC
- bl InitWindows
- bl DeactivateAllTextPrinters
- movs r0, 0
- movs r1, 0x97
- movs r2, 0xE0
- bl sub_809882C
- b _0816653C
- .pool
-_08166464:
- ldr r1, [r2]
- b _08166540
-_08166468:
- bl sub_8168328
- lsls r0, 24
- cmp r0, 0
- bne _08166556
- b _0816653C
-_08166474:
- ldr r1, =gKeyRepeatStartDelay
- movs r0, 0x14
- strh r0, [r1]
- bl sub_8167420
- b _0816653C
- .pool
-_08166484:
- bl sub_8167930
- lsls r0, 24
- cmp r0, 0
- bne _08166556
- b _0816653C
-_08166490:
- movs r0, 0
- bl sub_8167608
- bl sub_8167760
- b _0816653C
-_0816649C:
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r1, =0x00007b0e
- adds r0, r1
- bl sub_81D312C
- lsls r0, 24
- cmp r0, 0
- bne _08166556
- b _0816653C
- .pool
-_081664B8:
- ldr r1, [r2]
- b _08166540
-_081664BC:
- ldr r5, =gUnknown_0203BCAC
- ldr r1, [r5]
- ldr r4, =0x00007c58
- adds r0, r1, r4
- ldr r2, =0x00007c6c
- adds r1, r2
- bl sub_81D2754
- ldr r0, [r5]
- adds r0, r4
- bl sub_81D20AC
- b _0816653C
- .pool
-_081664E4:
- ldr r4, =gUnknown_0203BCAC
- ldr r0, [r4]
- ldr r1, =0x00007c58
- adds r0, r1
- bl sub_81D20BC
- lsls r0, 24
- cmp r0, 0
- bne _08166556
- ldr r2, [r4]
- ldr r1, =0x00007c58
- adds r0, r2, r1
- adds r1, 0x14
- adds r2, r1
- adds r1, r2, 0
- bl sub_81D1F84
- b _0816653C
- .pool
-_08166510:
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r2, =0x00007c58
- adds r0, r2
- bl sub_81D2230
- b _0816653C
- .pool
-_08166528:
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0x1
- bl sub_8167BA0
-_0816653C:
- ldr r0, =gUnknown_0203BC90
- ldr r1, [r0]
-_08166540:
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08166556
- .pool
-_08166550:
- ldr r0, =map_warp_consider_1_to_outside_or_stair_or_dive
- bl launch_c3_walk_stairs_and_run_once
-_08166556:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8166380
-
- thumb_func_start map_warp_consider_1_to_outside_or_stair_or_dive
-map_warp_consider_1_to_outside_or_stair_or_dive: @ 8166564
- push {r4,lr}
- sub sp, 0x4
- ldr r4, =gUnknown_0203BC90
- ldr r0, [r4]
- adds r0, 0x50
- ldrb r1, [r0]
- cmp r1, 0
- beq _08166580
- cmp r1, 0x1
- beq _081665C0
- b _08166610
- .pool
-_08166580:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, =sub_8166340
- bl SetVBlankCallback
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- ldr r1, [r4]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08166610
- .pool
-_081665C0:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08166610
- ldr r4, =gUnknown_0203BCAC
- ldr r0, [r4]
- ldr r1, =0x00007b1c
- adds r0, r1
- bl sub_81D3464
- ldr r4, [r4]
- ldr r2, =0x00008041
- adds r0, r4, r2
- ldrb r1, [r0]
- ldr r3, =0x00008040
- adds r0, r4, r3
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- beq _0816660A
- ldr r1, =0x00007fb3
- adds r0, r4, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- subs r2, 0x91
- adds r0, r4, r2
- adds r0, r1
- ldrb r2, [r0]
- ldr r3, =0x00007b1c
- adds r0, r4, r3
- subs r3, 0xC
- adds r1, r4, r3
- ldrb r1, [r1]
- bl sub_81D3480
-_0816660A:
- ldr r0, =sub_8166634
- bl launch_c3_walk_stairs_and_run_once
-_08166610:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end map_warp_consider_1_to_outside_or_stair_or_dive
-
- thumb_func_start sub_8166634
-sub_8166634: @ 8166634
- push {lr}
- ldr r0, =gUnknown_0203BC90
- ldr r0, [r0]
- adds r0, 0x50
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _08166644
- b _0816680E
-_08166644:
- lsls r0, 2
- ldr r1, =_08166658
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08166658:
- .4byte _08166678
- .4byte _0816675C
- .4byte _0816680E
- .4byte _08166788
- .4byte _0816680E
- .4byte _08166794
- .4byte _081667AC
- .4byte _081667F4
-_08166678:
- ldr r2, =gMain
- ldrh r1, [r2, 0x2C]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081666B8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_8167CA0
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r1, =0x00007b1c
- adds r0, r1
- bl sub_81D3520
- ldr r0, =gUnknown_0203BC90
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x1
- b _0816680C
- .pool
-_081666B8:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081666F0
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_8167CA0
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r2, =0x00007b1c
- adds r0, r2
- bl sub_81D3520
- ldr r0, =gUnknown_0203BC90
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x1
- b _0816680C
- .pool
-_081666F0:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08166710
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_0203BC90
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x3
- b _0816680C
- .pool
-_08166710:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0816671A
- b _0816680E
-_0816671A:
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r2, =0x00008041
- adds r1, r0, r2
- ldrb r1, [r1]
- subs r2, 0x1
- adds r0, r2
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _0816674C
- ldr r0, =gUnknown_0203BC90
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x3
- b _0816680C
- .pool
-_0816674C:
- ldr r0, =gUnknown_0203BC90
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x5
- b _0816680C
- .pool
-_0816675C:
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r1, =0x00008044
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0816680E
- ldr r0, =gUnknown_0203BC90
- ldr r0, [r0]
- adds r0, 0x50
- b _0816680C
- .pool
-_08166788:
- ldr r0, =sub_8166BEC
- bl launch_c3_walk_stairs_and_run_once
- b _0816680E
- .pool
-_08166794:
- bl sub_8166D44
- ldr r0, =gUnknown_0203BC90
- ldr r1, [r0]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0816680E
- .pool
-_081667AC:
- bl sub_8166DE4
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081667CC
- cmp r1, 0
- bgt _081667C6
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08166804
- b _0816680E
-_081667C6:
- cmp r1, 0x1
- bne _0816680E
- b _08166804
-_081667CC:
- bl sub_8167268
- lsls r0, 24
- cmp r0, 0
- beq _081667E8
- bl sub_8166F50
- ldr r0, =gUnknown_0203BC90
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x7
- b _0816680C
- .pool
-_081667E8:
- ldr r0, =sub_816681C
- bl launch_c3_walk_stairs_and_run_once
- b _0816680E
- .pool
-_081667F4:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0816680E
- bl sub_8166F94
-_08166804:
- ldr r0, =gUnknown_0203BC90
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0
-_0816680C:
- strb r1, [r0]
-_0816680E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8166634
-
- thumb_func_start sub_816681C
-sub_816681C: @ 816681C
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, =gUnknown_0203BC90
- ldr r0, [r5]
- adds r0, 0x50
- ldrb r4, [r0]
- cmp r4, 0
- beq _08166838
- cmp r4, 0x1
- beq _08166888
- b _081668D4
- .pool
-_08166838:
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r1, =0x00008041
- adds r0, r1
- ldrb r0, [r0]
- bl sub_81672A4
- ldr r1, =gUnknown_0203BC9C
- strb r0, [r1]
- ldr r1, =gUnknown_0203BC94
- ldr r2, [r5]
- ldr r0, [r2, 0x4]
- str r0, [r1]
- ldr r1, =gUnknown_0203BC98
- ldr r0, [r2, 0x8]
- str r0, [r1]
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, [r5]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081668D4
- .pool
-_08166888:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _081668D4
- movs r0, 0
- bl SetVBlankCallback
- ldr r4, =gUnknown_0203BCA0
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203BCA4
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203BCA8
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203BCAC
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- bl FreeAllWindowBuffers
- ldr r1, =gMain
- ldr r0, =sub_816624C
- str r0, [r1, 0x8]
- bl sub_8179D70
-_081668D4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_816681C
-
- thumb_func_start sub_81668F8
-sub_81668F8: @ 81668F8
- push {r4,lr}
- sub sp, 0x4
- ldr r1, =gUnknown_0203BC90
- ldr r0, [r1]
- adds r0, 0x50
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x6
- bls _0816690C
- b _08166A18
-_0816690C:
- lsls r0, 2
- ldr r1, =_08166920
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08166920:
- .4byte _0816693C
- .4byte _08166972
- .4byte _08166A18
- .4byte _081669A0
- .4byte _081669AE
- .4byte _081669C8
- .4byte _081669F4
-_0816693C:
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r1, =0x00008041
- adds r0, r1
- ldr r1, =gUnknown_0203BC9C
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _08166968
- ldr r0, [r4]
- adds r0, 0x56
- ldrb r0, [r0]
- bl sub_8167CA0
- ldr r1, [r4]
- b _081669E2
- .pool
-_08166968:
- ldr r0, [r4]
- adds r0, 0x50
- movs r1, 0x3
- strb r1, [r0]
- b _08166A18
-_08166972:
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r1, =0x00008044
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08166A18
- ldr r0, =gUnknown_0203BC90
- ldr r0, [r0]
- adds r0, 0x50
- strb r1, [r0]
- b _08166A18
- .pool
-_081669A0:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- b _081669DE
-_081669AE:
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- b _081669DE
-_081669C8:
- ldr r0, =sub_8166340
- bl SetVBlankCallback
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_081669DE:
- ldr r0, =gUnknown_0203BC90
- ldr r1, [r0]
-_081669E2:
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08166A18
- .pool
-_081669F4:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08166A18
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r1, =0x00007b1c
- adds r0, r1
- bl sub_81D3464
- ldr r0, =sub_8166A34
- bl launch_c3_walk_stairs_and_run_once
- ldr r0, =sub_816631C
- bl SetMainCallback2
-_08166A18:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81668F8
-
- thumb_func_start sub_8166A34
-sub_8166A34: @ 8166A34
- push {r4-r6,lr}
- ldr r1, =gUnknown_0203BC90
- ldr r0, [r1]
- adds r0, 0x50
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0x5
- bls _08166A46
- b _08166BDA
-_08166A46:
- lsls r0, 2
- ldr r1, =_08166A58
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08166A58:
- .4byte _08166A70
- .4byte _08166AAC
- .4byte _08166AC0
- .4byte _08166B14
- .4byte _08166B94
- .4byte _08166BB6
-_08166A70:
- ldr r4, [r5]
- ldr r3, =gPlayerParty
- str r3, [r4, 0xC]
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r2, =0x00008041
- adds r1, r0, r2
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0, r1
- subs r2, 0x88
- adds r1, r2
- ldrb r2, [r1]
- movs r1, 0x64
- muls r1, r2
- adds r1, r3
- str r1, [r4, 0xC]
- ldr r3, =0x00007b1c
- adds r0, r3
- bl sub_81D3520
- b _08166BAA
- .pool
-_08166AAC:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08166ABA
- b _08166BDA
-_08166ABA:
- b _08166BAA
- .pool
-_08166AC0:
- bl sub_8167104
- ldr r6, =gUnknown_0203BC90
- ldr r0, [r6]
- adds r0, 0x5C
- ldr r4, =gUnknown_0203BCAC
- ldr r1, [r4]
- ldr r5, =0x00007ca8
- adds r1, r5
- bl sub_81D2754
- ldr r2, [r4]
- ldr r4, =0x00007c58
- adds r0, r2, r4
- ldr r3, =0x00007fb3
- adds r1, r2, r3
- movs r3, 0
- ldrsb r3, [r1, r3]
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r4, 0x14
- adds r1, r4
- adds r1, r2, r1
- adds r2, r5
- bl sub_81D1F84
- bl sub_8167338
- ldr r1, [r6]
- b _08166BAC
- .pool
-_08166B14:
- ldr r5, =gUnknown_0203BCAC
- ldr r0, [r5]
- ldr r1, =0x00007c58
- adds r0, r1
- bl sub_81D2074
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _08166BDA
- ldr r0, [r5]
- ldr r4, =0x00008041
- adds r0, r4
- ldrb r0, [r0]
- bl sub_81672A4
- lsls r0, 24
- lsrs r0, 24
- bl sub_81681F4
- ldr r3, [r5]
- adds r4, r3, r4
- ldrb r1, [r4]
- ldr r2, =0x00008040
- adds r0, r3, r2
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- beq _08166B6C
- ldr r4, =0x00007fb3
- adds r0, r3, r4
- movs r1, 0
- ldrsb r1, [r0, r1]
- subs r2, 0x90
- adds r0, r3, r2
- adds r0, r1
- ldrb r2, [r0]
- ldr r4, =0x00007b1c
- adds r0, r3, r4
- subs r4, 0xC
- adds r1, r3, r4
- ldrb r1, [r1]
- bl sub_81D3480
-_08166B6C:
- ldr r1, =gUnknown_0203BC90
- ldr r0, [r1]
- adds r0, 0x52
- strb r6, [r0]
- ldr r1, [r1]
- b _08166BAC
- .pool
-_08166B94:
- ldr r1, [r5]
- adds r1, 0x52
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- bls _08166BDA
- bl sub_8166E24
-_08166BAA:
- ldr r1, [r5]
-_08166BAC:
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08166BDA
-_08166BB6:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08166BDA
- bl sub_8166EDC
- lsls r0, 24
- cmp r0, 0
- bne _08166BDA
- ldr r0, =gUnknown_0203CE7C
- ldrb r0, [r0]
- bl sub_8136F68
- ldr r0, =sub_8166BEC
- bl launch_c3_walk_stairs_and_run_once
-_08166BDA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8166A34
-
- thumb_func_start sub_8166BEC
-sub_8166BEC: @ 8166BEC
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r4, =gUnknown_0203BC90
- ldr r0, [r4]
- adds r2, r0, 0
- adds r2, 0x50
- ldrb r1, [r2]
- cmp r1, 0x1
- beq _08166C28
- cmp r1, 0x1
- bgt _08166C0C
- cmp r1, 0
- beq _08166C16
- b _08166D18
- .pool
-_08166C0C:
- cmp r1, 0x2
- beq _08166C40
- cmp r1, 0x3
- beq _08166C5C
- b _08166D18
-_08166C16:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _08166C4A
-_08166C28:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08166D18
- movs r0, 0x2
- strb r0, [r2]
- b _08166D18
- .pool
-_08166C40:
- ldr r1, =gUnknown_02039B28
- movs r0, 0x3
- strb r0, [r1, 0x15]
- bl sub_80BA0A8
-_08166C4A:
- ldr r1, [r4]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08166D18
- .pool
-_08166C5C:
- ldr r0, [r0, 0x4]
- bl SetMainCallback2
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r1, =0x00007b1c
- adds r0, r1
- bl sub_81D354C
- movs r4, 0
-_08166C70:
- ldr r5, =gUnknown_0203BCAC
- ldr r0, [r5]
- ldr r2, =0x00007b06
- adds r0, r2
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bls _08166C70
- movs r0, 0
- bl FreeSpriteTilesByTag
- movs r0, 0x1
- bl FreeSpriteTilesByTag
- movs r0, 0
- bl FreeSpritePaletteByTag
- movs r0, 0x1
- bl FreeSpritePaletteByTag
- movs r4, 0
-_08166CAE:
- ldr r0, [r5]
- lsls r1, r4, 2
- ldr r2, =0x00007b44
- adds r0, r2
- adds r0, r1
- ldr r0, [r0]
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _08166CAE
- ldr r6, =gUnknown_0203BCAC
- ldr r0, [r6]
- ldr r2, =0x00007b10
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _08166CE6
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
-_08166CE6:
- movs r0, 0
- bl SetVBlankCallback
- ldr r4, =gUnknown_0203BCA0
- ldr r0, [r4]
- bl Free
- movs r5, 0
- str r5, [r4]
- ldr r4, =gUnknown_0203BCA4
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203BCA8
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r0, [r6]
- bl Free
- str r5, [r6]
- bl FreeAllWindowBuffers
-_08166D18:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8166BEC
-
- thumb_func_start sub_8166D44
-sub_8166D44: @ 8166D44
- push {r4,lr}
- sub sp, 0x4C
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r1, =0x00008041
- adds r0, r1
- ldrb r0, [r0]
- bl sub_81672A4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x2
- add r2, sp, 0xC
- bl GetMonData
- add r0, sp, 0xC
- bl StringGetEnd10
- ldr r1, =gUnknown_085EC7A0
- add r0, sp, 0xC
- bl StringAppend
- ldr r4, =gStringVar4
- adds r0, r4, 0
- add r1, sp, 0xC
- bl StringCopy
- movs r0, 0x2
- movs r1, 0x11
- bl FillWindowPixelBuffer
- movs r0, 0x2
- movs r1, 0x97
- movs r2, 0xE
- bl sub_8098858
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0
- bl Print
- movs r0, 0x2
- bl PutWindowTilemap
- movs r0, 0x2
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, =gUnknown_085DFCFC
- movs r1, 0x97
- movs r2, 0xE
- movs r3, 0
- bl CreateYesNoMenu
- add sp, 0x4C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8166D44
-
- thumb_func_start sub_8166DE4
-sub_8166DE4: @ 8166DE4
- push {r4,lr}
- bl sub_8198C58
- lsls r0, 24
- lsrs r4, r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _08166E18
- cmp r1, 0
- bgt _08166E02
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08166E06
- b _08166E18
-_08166E02:
- cmp r1, 0x1
- bne _08166E18
-_08166E06:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x2
- bl rbox_fill_rectangle
- movs r0, 0x2
- bl ClearWindowTilemap
-_08166E18:
- lsls r0, r4, 24
- asrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8166DE4
-
- thumb_func_start sub_8166E24
-sub_8166E24: @ 8166E24
- push {r4,lr}
- movs r0, 0x2
- movs r1, 0x97
- movs r2, 0xE
- bl sub_8098858
- movs r0, 0x2
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r3, =gUnknown_0203BC90
- ldr r0, [r3]
- adds r0, 0x53
- movs r1, 0
- strb r1, [r0]
- ldr r2, [r3]
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r0, [r1]
- cmp r0, 0x4
- bhi _08166EA8
- adds r0, r2, 0
- adds r0, 0x61
- ldrb r1, [r1]
- adds r0, r1
- ldrb r0, [r0]
- adds r4, r3, 0
- cmp r0, 0
- bne _08166E84
- adds r2, r4, 0
-_08166E60:
- ldr r0, [r2]
- adds r0, 0x53
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r3, [r2]
- adds r1, r3, 0
- adds r1, 0x53
- ldrb r0, [r1]
- cmp r0, 0x4
- bhi _08166EA8
- adds r0, r3, 0
- adds r0, 0x61
- ldrb r1, [r1]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08166E60
-_08166E84:
- ldr r2, [r4]
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r0, [r1]
- cmp r0, 0x4
- bhi _08166EA8
- ldr r0, =gStringVar4
- ldrb r1, [r1]
- adds r2, 0x61
- adds r2, r1
- ldrb r2, [r2]
- bl sub_8166FD4
- b _08166EB8
- .pool
-_08166EA8:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_0203BC90
- ldr r1, [r1]
- adds r1, 0x53
- ldrb r1, [r1]
- movs r2, 0
- bl sub_8166FD4
-_08166EB8:
- ldr r0, =gStringVar4
- bl sub_8166FB0
- movs r0, 0x2
- bl PutWindowTilemap
- movs r0, 0x2
- movs r1, 0x3
- bl CopyWindowToVram
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8166E24
-
- thumb_func_start sub_8166EDC
-sub_8166EDC: @ 8166EDC
- push {r4,r5,lr}
- movs r0, 0x2
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r5, =gUnknown_0203BC90
- adds r3, r5, 0
- movs r4, 0x5
-_08166EEC:
- ldr r0, [r3]
- adds r0, 0x53
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r2, [r3]
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r0, [r1]
- cmp r0, 0x4
- bhi _08166F18
- adds r0, r2, 0
- adds r0, 0x61
- ldrb r1, [r1]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08166F1E
- b _08166EEC
- .pool
-_08166F18:
- strb r4, [r1]
- movs r0, 0
- b _08166F44
-_08166F1E:
- ldr r4, =gStringVar4
- ldr r0, [r5]
- adds r1, r0, 0
- adds r1, 0x53
- ldrb r1, [r1]
- adds r0, 0x61
- adds r0, r1
- ldrb r2, [r0]
- adds r0, r4, 0
- bl sub_8166FD4
- adds r0, r4, 0
- bl sub_8166FB0
- movs r0, 0x2
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0x1
-_08166F44:
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8166EDC
-
- thumb_func_start sub_8166F50
-sub_8166F50: @ 8166F50
- push {lr}
- sub sp, 0xC
- movs r0, 0x2
- movs r1, 0x11
- bl FillWindowPixelBuffer
- movs r0, 0x2
- movs r1, 0x97
- movs r2, 0xE
- bl sub_8098858
- ldr r2, =gUnknown_085EC800
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0x1
- movs r3, 0
- bl Print
- movs r0, 0x2
- bl PutWindowTilemap
- movs r0, 0x2
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8166F50
-
- thumb_func_start sub_8166F94
-sub_8166F94: @ 8166F94
- push {lr}
- movs r0, 0x2
- bl rbox_fill_rectangle
- movs r0, 0x2
- bl ClearWindowTilemap
- movs r0, 0x2
- movs r1, 0x3
- bl CopyWindowToVram
- pop {r0}
- bx r0
- thumb_func_end sub_8166F94
-
- thumb_func_start sub_8166FB0
-sub_8166FB0: @ 8166FB0
- push {lr}
- sub sp, 0xC
- ldr r2, =gStringVar4
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0x1
- movs r3, 0
- bl Print
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8166FB0
-
- thumb_func_start sub_8166FD4
-sub_8166FD4: @ 8166FD4
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r2, 16
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _08167010
- cmp r2, 0
- ble _08166FEC
- movs r0, 0
-_08166FEC:
- lsls r0, 16
- ldr r1, =gUnknown_085DFD04
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- ldr r1, =gUnknown_085EC7E1
- adds r0, r4, 0
- bl StringAppend
- b _08167018
- .pool
-_08167010:
- ldr r1, =gUnknown_085EC7EF
- adds r0, r4, 0
- bl StringCopy
-_08167018:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8166FD4
-
- thumb_func_start sub_8167024
-sub_8167024: @ 8167024
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- movs r4, 0
- ldr r7, =gUnknown_085DFCB0
-_0816702E:
- lsls r0, r4, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r6, 0
- bl GetMonData
- adds r1, r5, r4
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _0816702E
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8167024
-
- thumb_func_start sub_8167054
-sub_8167054: @ 8167054
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- mov r8, r0
- adds r5, r1, 0
- adds r0, r5, 0
- movs r1, 0x30
- bl GetMonData
- cmp r0, 0xFF
- beq _081670F0
- mov r0, r8
- adds r1, r5, 0
- bl sub_8167184
- movs r4, 0
- mov r7, sp
-_08167078:
- ldr r1, =gUnknown_085DFCB0
- lsls r0, r4, 2
- adds r0, r1
- ldr r6, [r0]
- adds r0, r5, 0
- adds r1, r6, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- strb r0, [r7]
- ldr r1, =gUnknown_0203BC90
- ldr r1, [r1]
- lsls r2, r4, 1
- adds r1, 0x66
- adds r1, r2
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r0, 0
- bge _081670A6
- movs r1, 0
-_081670A6:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _081670B0
- movs r1, 0xFF
-_081670B0:
- strb r1, [r7]
- adds r0, r5, 0
- adds r1, r6, 0
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _08167078
- adds r0, r5, 0
- movs r1, 0x30
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- ldrb r2, [r2, 0x6]
- adds r1, r0, r2
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _081670E2
- movs r1, 0xFF
-_081670E2:
- mov r0, sp
- strb r1, [r0]
- adds r0, r5, 0
- movs r1, 0x30
- mov r2, sp
- bl SetMonData
-_081670F0:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8167054
-
- thumb_func_start sub_8167104
-sub_8167104: @ 8167104
- push {r4,r5,lr}
- ldr r5, =gPlayerParty
- ldr r0, =gUnknown_0203BCAC
- ldr r1, [r0]
- ldr r2, =0x00008041
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r1, r0
- ldr r0, =0x00007fb9
- adds r1, r0
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- adds r5, r0, r5
- ldr r4, =gUnknown_0203BC90
- ldr r1, [r4]
- adds r1, 0x57
- adds r0, r5, 0
- bl sub_8167024
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- adds r1, r5, 0
- bl sub_8167054
- ldr r1, [r4]
- adds r1, 0x5C
- adds r0, r5, 0
- bl sub_8167024
- movs r3, 0
-_08167144:
- ldr r0, [r4]
- adds r2, r0, 0
- adds r2, 0x61
- adds r2, r3
- adds r1, r0, 0
- adds r1, 0x5C
- adds r1, r3
- adds r0, 0x57
- adds r0, r3
- ldrb r1, [r1]
- ldrb r0, [r0]
- subs r1, r0
- strb r1, [r2]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x4
- bls _08167144
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8167104
-
- thumb_func_start sub_8167184
-sub_8167184: @ 8167184
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r1
- ldr r1, =gUnknown_0203BC90
- ldr r3, [r1]
- ldrb r1, [r0, 0x1]
- adds r2, r3, 0
- adds r2, 0x66
- strh r1, [r2]
- ldrb r2, [r0, 0x5]
- adds r1, r3, 0
- adds r1, 0x68
- strh r2, [r1]
- ldrb r1, [r0, 0x4]
- adds r2, r3, 0
- adds r2, 0x6A
- strh r1, [r2]
- ldrb r2, [r0, 0x3]
- adds r1, r3, 0
- adds r1, 0x6C
- strh r2, [r1]
- ldrb r1, [r0, 0x2]
- adds r0, r3, 0
- adds r0, 0x6E
- strh r1, [r0]
- ldr r0, =gUnknown_0203BC9E
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- ble _081671D4
- movs r0, 0x1
- b _081671DA
- .pool
-_081671D4:
- cmp r0, 0
- bge _08167250
- movs r0, 0xFF
-_081671DA:
- movs r2, 0
- lsls r0, 24
- mov r9, r0
- ldr r0, =gUnknown_0203BC90
- mov r8, r0
-_081671E4:
- mov r0, r8
- ldr r1, [r0]
- lsls r0, r2, 24
- asrs r6, r0, 24
- lsls r7, r6, 1
- adds r1, 0x66
- adds r1, r7
- movs r2, 0
- ldrsh r4, [r1, r2]
- adds r0, r4, 0
- movs r1, 0xA
- bl __divsi3
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _0816721C
- lsls r0, r5, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r5, r0, 24
-_0816721C:
- ldr r0, =gUnknown_085DFCC4
- adds r0, r6, r0
- ldrb r1, [r0]
- mov r0, r10
- bl sub_806E858
- lsls r0, 24
- asrs r2, r0, 24
- cmp r0, r9
- bne _08167244
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x66
- adds r0, r7
- lsls r1, r5, 24
- asrs r1, 24
- muls r1, r2
- ldrh r2, [r0]
- adds r1, r2
- strh r1, [r0]
-_08167244:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, 0x4
- ble _081671E4
-_08167250:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8167184
-
- thumb_func_start sub_8167268
-sub_8167268: @ 8167268
- push {lr}
- ldr r0, =gUnknown_0203BCAC
- ldr r1, [r0]
- ldr r2, =0x00008041
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r1, r0
- subs r2, 0x89
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- movs r2, 0x30
- movs r3, 0
- bl sub_81D2C68
- cmp r0, 0xFF
- beq _0816729C
- movs r0, 0
- b _0816729E
- .pool
-_0816729C:
- movs r0, 0x1
-_0816729E:
- pop {r1}
- bx r1
- thumb_func_end sub_8167268
-
- thumb_func_start sub_81672A4
-sub_81672A4: @ 81672A4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
-_081672AC:
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _081672D2
- cmp r5, 0
- bne _081672CC
- adds r0, r4, 0
- b _081672DE
- .pool
-_081672CC:
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_081672D2:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _081672AC
- movs r0, 0
-_081672DE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81672A4
-
- thumb_func_start sub_81672E4
-sub_81672E4: @ 81672E4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- movs r6, 0
- cmp r6, r5
- bcs _08167314
-_081672F2:
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0816730A
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0816730A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _081672F2
-_08167314:
- subs r0, r5, r6
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81672E4
-
- thumb_func_start sub_8167324
-sub_8167324: @ 8167324
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_81672A4
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_8167324
-
- thumb_func_start sub_8167338
-sub_8167338: @ 8167338
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, =gUnknown_085DFD18
- bl LoadSpriteSheet
- ldr r0, =gUnknown_085DFD20
- bl LoadSpritePalette
- ldr r2, =gUnknown_0203BC90
- ldr r0, [r2]
- adds r0, 0x54
- movs r1, 0
- strb r1, [r0]
- movs r4, 0
- adds r5, r2, 0
- ldr r6, =gUnknown_085DFD28
- adds r0, r6, 0x2
- mov r8, r0
- ldr r7, =gSprites + 0x1C
-_08167360:
- ldr r0, [r5]
- adds r0, 0x61
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _081673AC
- lsls r2, r4, 2
- adds r0, r2, r6
- movs r3, 0
- ldrsh r1, [r0, r3]
- add r2, r8
- movs r0, 0
- ldrsh r2, [r2, r0]
- ldr r0, =gUnknown_085DFD5C
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _081673AC
- ldr r0, [r5]
- adds r0, 0x61
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _081673A2
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, =sub_81673DC
- str r1, [r0]
-_081673A2:
- ldr r1, [r5]
- adds r1, 0x54
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081673AC:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _08167360
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8167338
-
- thumb_func_start sub_81673DC
-sub_81673DC: @ 81673DC
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x5
- bgt _081673EE
- ldrh r0, [r1, 0x26]
- subs r0, 0x2
- b _081673F6
-_081673EE:
- cmp r0, 0xB
- bgt _081673F8
- ldrh r0, [r1, 0x26]
- adds r0, 0x2
-_081673F6:
- strh r0, [r1, 0x26]
-_081673F8:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _08167418
- adds r0, r1, 0
- bl DestroySprite
- ldr r0, =gUnknown_0203BC90
- ldr r1, [r0]
- adds r1, 0x54
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_08167418:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81673DC
-
- thumb_func_start sub_8167420
-sub_8167420: @ 8167420
- push {r4-r6,lr}
- movs r4, 0
- movs r5, 0
- ldr r6, =gUnknown_0203BCAC
- b _08167472
- .pool
-_08167430:
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- adds r3, r0, 0
- cmp r3, 0
- bne _0816746C
- ldr r1, [r6]
- lsls r2, r5, 2
- adds r1, r2
- ldr r0, =0x00007fb8
- adds r1, r0
- movs r0, 0xE
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, r2
- ldr r1, =0x00007fb9
- adds r0, r1
- strb r4, [r0]
- ldr r0, [r6]
- adds r0, r2
- ldr r2, =0x00007fba
- adds r0, r2
- strh r3, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_0816746C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_08167472:
- bl calc_player_party_count
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _08167430
- ldr r2, =gUnknown_0203BCAC
- ldr r0, [r2]
- ldr r1, =0x00008041
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- adds r1, r5, 0x1
- ldr r2, =0x00008040
- adds r0, r2
- strb r1, [r0]
- bl sub_81674BC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8167420
-
- thumb_func_start sub_81674BC
-sub_81674BC: @ 81674BC
- push {r4,r5,lr}
- ldr r4, =gUnknown_0203BCAC
- ldr r0, [r4]
- ldr r5, =0x00008041
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_816753C
- ldr r0, [r4]
- ldr r1, =0x00007fb3
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r4]
- ldr r2, =0x00007fb4
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, =0x00007fb5
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, [r4]
- adds r5, r0, r5
- ldrb r3, [r5]
- adds r1, r3, 0x1
- adds r2, 0x8C
- adds r0, r2
- ldrb r2, [r0]
- cmp r1, r2
- blt _08167500
- movs r1, 0
-_08167500:
- subs r0, r3, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r0, 0
- bge _08167510
- subs r0, r2, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_08167510:
- adds r0, r1, 0
- movs r1, 0x1
- bl sub_816753C
- lsls r0, r4, 16
- asrs r0, 16
- movs r1, 0x2
- bl sub_816753C
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81674BC
-
- thumb_func_start sub_816753C
-sub_816753C: @ 816753C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_0203BCAC
- mov r9, r0
- ldr r1, [r0]
- lsls r5, 16
- asrs r0, r5, 14
- adds r0, r1, r0
- ldr r3, =0x00007fb8
- adds r2, r0, r3
- ldrb r7, [r2]
- ldr r2, =0x00007fb9
- adds r0, r2
- ldrb r0, [r0]
- mov r10, r0
- adds r3, 0x88
- adds r0, r1, r3
- ldrb r6, [r0]
- movs r0, 0
- mov r8, r0
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r2, =0x00007b4d
- adds r0, r2
- adds r0, r1, r0
- lsls r2, r4, 6
- ldr r3, =0x00007b95
- adds r2, r3
- adds r1, r2
- lsrs r5, 16
- str r5, [sp]
- str r6, [sp, 0x4]
- mov r2, r8
- str r2, [sp, 0x8]
- adds r2, r7, 0
- mov r3, r10
- bl sub_81D2ED4
- mov r3, r9
- ldr r1, [r3]
- ldr r2, =0x00007c58
- adds r0, r1, r2
- ldr r3, =0x00007fb0
- adds r1, r3
- str r5, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- mov r2, r8
- str r2, [sp, 0xC]
- adds r2, r7, 0
- mov r3, r10
- bl sub_81D2F78
- lsls r0, r4, 13
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- mov r3, r9
- ldr r1, [r3]
- adds r0, r1, r0
- lsls r4, 7
- adds r4, 0x4
- adds r1, r4
- str r5, [sp]
- str r6, [sp, 0x4]
- mov r2, r8
- str r2, [sp, 0x8]
- adds r2, r7, 0
- mov r3, r10
- bl sub_81D3094
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_816753C
-
- thumb_func_start sub_8167608
-sub_8167608: @ 8167608
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x28
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gUnknown_0203BCAC
- ldr r3, [r1]
- ldr r0, =0x00007b10
- mov r8, r0
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r7, r1, 0
- cmp r0, 0xFF
- bne _08167714
- add r5, sp, 0x18
- add r4, sp, 0x20
- adds r0, r5, 0
- mov r1, sp
- adds r2, r4, 0
- bl sub_81D31D0
- lsls r0, r6, 13
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- ldr r1, [r7]
- adds r0, r1, r0
- str r0, [sp, 0x18]
- lsls r0, r6, 7
- adds r0, 0x4
- adds r1, r0
- str r1, [sp, 0x20]
- adds r0, r4, 0
- bl LoadSpritePalette
- ldr r1, [r7]
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =0x00007b12
- adds r1, r2
- strh r0, [r1]
- adds r0, r5, 0
- bl LoadSpriteSheet
- ldr r1, [r7]
- ldr r3, =0x00007b14
- adds r1, r3
- strh r0, [r1]
- mov r0, sp
- movs r1, 0x26
- movs r2, 0x68
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, [r7]
- ldr r2, =0x00007b10
- adds r0, r2
- strb r1, [r0]
- cmp r1, 0x40
- bne _081676AC
- movs r0, 0x64
- bl FreeSpriteTilesByTag
- movs r0, 0x64
- bl FreeSpritePaletteByTag
- ldr r0, [r7]
- add r0, r8
- movs r1, 0xFF
- strb r1, [r0]
- b _08167742
- .pool
-_081676AC:
- ldr r0, [r7]
- add r0, r8
- strb r1, [r0]
- ldr r4, =gSprites
- ldr r2, [r7]
- mov r0, r8
- adds r3, r2, r0
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, =sub_8168168
- str r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x26]
- subs r1, 0x22
- strh r1, [r0, 0x26]
- ldr r3, =0x00007b18
- adds r1, r2, r3
- subs r3, 0x4
- adds r0, r2, r3
- ldrh r0, [r0]
- lsls r0, 5
- ldr r3, =0x06010000
- adds r0, r3
- str r0, [r1]
- ldr r0, =0x00007b12
- adds r2, r0
- ldrh r0, [r2]
- lsls r0, 4
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r2]
- b _08167742
- .pool
-_08167714:
- lsls r1, r6, 13
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- adds r1, r3, r1
- ldr r2, =0x00007b18
- adds r0, r3, r2
- ldr r2, [r0]
- ldr r0, =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, =0x80000400
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- lsls r0, r6, 7
- adds r0, 0x4
- adds r0, r3, r0
- ldr r2, =0x00007b12
- adds r1, r3, r2
- ldrh r1, [r1]
- movs r2, 0x20
- bl LoadPalette
-_08167742:
- add sp, 0x28
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8167608
-
- thumb_func_start sub_8167760
-sub_8167760: @ 8167760
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x60
- add r5, sp, 0x20
- add r4, sp, 0x38
- mov r0, sp
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_81D321C
- mov r0, sp
- bl LoadSpriteSheets
- adds r0, r4, 0
- bl LoadSpritePalettes
- movs r4, 0
- ldr r1, =gUnknown_0203BCAC
- ldr r0, [r1]
- ldr r2, =0x00008040
- adds r0, r2
- ldrb r0, [r0]
- subs r0, 0x1
- adds r6, r5, 0
- add r2, sp, 0x50
- mov r9, r2
- add r2, sp, 0x58
- mov r10, r2
- cmp r4, r0
- bge _0816781C
- adds r5, r1, 0
- ldr r7, =gSprites
- movs r0, 0x1C
- adds r0, r7
- mov r8, r0
-_081677AC:
- lsls r2, r4, 2
- adds r2, r4
- lsls r2, 18
- movs r1, 0x80
- lsls r1, 12
- adds r2, r1
- asrs r2, 16
- adds r0, r6, 0
- movs r1, 0xE2
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _081677FC
- ldr r0, [r5]
- ldr r2, =0x00007b06
- adds r0, r2
- adds r0, r4
- strb r3, [r0]
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- adds r1, r0, r7
- strh r4, [r1, 0x2E]
- add r0, r8
- ldr r1, =sub_8168180
- str r1, [r0]
- b _08167808
- .pool
-_081677FC:
- ldr r0, [r5]
- ldr r1, =0x00007b06
- adds r0, r1
- adds r0, r4
- movs r1, 0xFF
- strb r1, [r0]
-_08167808:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, [r5]
- ldr r2, =0x00008040
- adds r0, r2
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r4, r0
- blt _081677AC
-_0816781C:
- movs r0, 0x67
- strh r0, [r6]
- cmp r4, 0x5
- bhi _0816788A
- ldr r5, =gUnknown_0203BCAC
- ldr r7, =gSprites
-_08167828:
- lsls r2, r4, 2
- adds r2, r4
- lsls r2, 18
- movs r0, 0x80
- lsls r0, 12
- adds r2, r0
- asrs r2, 16
- adds r0, r6, 0
- movs r1, 0xE6
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _08167874
- ldr r0, [r5]
- ldr r1, =0x00007b06
- adds r0, r1
- adds r0, r4
- strb r3, [r0]
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r1, 0x3]
- movs r0, 0x3F
- ands r0, r2
- strb r0, [r1, 0x3]
- b _08167880
- .pool
-_08167874:
- ldr r0, [r5]
- ldr r2, =0x00007b06
- adds r0, r2
- adds r0, r4
- movs r1, 0xFF
- strb r1, [r0]
-_08167880:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x5
- bls _08167828
-_0816788A:
- movs r0, 0x66
- strh r0, [r6]
- ldr r0, =sub_81681B4
- str r0, [r6, 0x14]
- lsls r2, r4, 2
- adds r2, r4
- lsls r2, 18
- movs r0, 0x80
- lsls r0, 12
- adds r2, r0
- asrs r2, 16
- adds r0, r6, 0
- movs r1, 0xDE
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _081678F4
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r1, =0x00007b06
- adds r0, r1
- adds r0, r4
- strb r3, [r0]
- ldr r0, =gSprites
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- adds r2, r0
- ldrb r3, [r2, 0x1]
- movs r1, 0x3F
- adds r0, r1, 0
- ands r0, r3
- movs r3, 0x40
- orrs r0, r3
- strb r0, [r2, 0x1]
- ldrb r0, [r2, 0x3]
- ands r1, r0
- movs r0, 0x80
- orrs r1, r0
- strb r1, [r2, 0x3]
- b _08167902
- .pool
-_081678F4:
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r2, =0x00007b06
- adds r0, r2
- adds r0, r4
- movs r1, 0xFF
- strb r1, [r0]
-_08167902:
- mov r0, r9
- mov r1, r10
- bl sub_81D32B0
- mov r0, r9
- bl LoadSpriteSheet
- mov r0, r10
- bl LoadSpritePalette
- add sp, 0x60
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8167760
-
- thumb_func_start sub_8167930
-sub_8167930: @ 8167930
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r2, =0x00008048
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xB
- bls _08167944
- b _08167B78
-_08167944:
- lsls r0, 2
- ldr r1, =_0816795C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0816795C:
- .4byte _0816798C
- .4byte _08167A04
- .4byte _08167A38
- .4byte _08167A48
- .4byte _08167A5C
- .4byte _08167A74
- .4byte _08167A9C
- .4byte _08167AB0
- .4byte _08167AD4
- .4byte _08167AEC
- .4byte _08167B1C
- .4byte _08167B38
-_0816798C:
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r1, 0x88
- lsls r1, 6
- movs r0, 0x3
- movs r2, 0
- bl ChangeBgY
- ldr r1, =0x00007040
- movs r0, 0
- bl SetGpuReg
- movs r1, 0x91
- lsls r1, 2
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, =0x0000040b
- movs r0, 0x52
- bl SetGpuReg
- b _08167B7E
- .pool
-_08167A04:
- ldr r4, =gUnknown_0203BCA4
- movs r0, 0xD0
- lsls r0, 5
- bl Alloc
- str r0, [r4]
- ldr r5, =gUnknown_0203BCA0
- movs r4, 0xA0
- lsls r4, 3
- adds r0, r4, 0
- bl Alloc
- str r0, [r5]
- ldr r5, =gUnknown_0203BCA8
- adds r0, r4, 0
- bl Alloc
- str r0, [r5]
- b _08167B7E
- .pool
-_08167A38:
- ldr r0, =gUnknown_085DFB60
- ldr r1, =gUnknown_0203BCA8
- b _08167AA0
- .pool
-_08167A48:
- ldr r1, =gUnknown_085DFA80
- movs r0, 0x3
- movs r2, 0xE0
- movs r3, 0
- bl LoadBgTiles
- b _08167B7E
- .pool
-_08167A5C:
- ldr r0, =gUnknown_0203BCA8
- ldr r1, [r0]
- movs r2, 0xA0
- lsls r2, 3
- movs r0, 0x3
- movs r3, 0
- bl LoadBgTilemap
- b _08167B7E
- .pool
-_08167A74:
- ldr r0, =gUnknown_085DFA60
- movs r1, 0xD0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r1, =0x00007b0e
- adds r0, r1
- ldr r1, =0x0000ffb0
- strh r1, [r0]
- b _08167B7E
- .pool
-_08167A9C:
- ldr r0, =gUnknown_08DCCF7C
- ldr r1, =gUnknown_0203BCA4
-_08167AA0:
- ldr r1, [r1]
- bl LZ77UnCompVram
- b _08167B7E
- .pool
-_08167AB0:
- ldr r0, =gUnknown_08DCD81C
- ldr r1, =gUnknown_0203BCA0
- ldr r1, [r1]
- bl LZ77UnCompVram
- ldr r0, =gUnknown_08DCCF5C
- movs r1, 0x20
- movs r2, 0x20
- bl LoadPalette
- b _08167B7E
- .pool
-_08167AD4:
- ldr r0, =gUnknown_0203BCA4
- ldr r1, [r0]
- movs r2, 0xD0
- lsls r2, 5
- movs r3, 0xA0
- lsls r3, 2
- movs r0, 0x1
- bl LoadBgTiles
- b _08167B7E
- .pool
-_08167AEC:
- ldr r0, =gUnknown_0203BCA0
- ldr r1, [r0]
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, =gUnknown_08DCDA30
- movs r0, 0xC
- str r0, [sp]
- movs r0, 0x4
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0xD
- bl CopyToBgTilemapBufferRect
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- b _08167B7E
- .pool
-_08167B1C:
- ldr r0, =gUnknown_085DFC0C
- ldr r1, =gUnknown_0203BCAC
- ldr r1, [r1]
- ldr r2, =0x00007304
- adds r1, r2
- bl LZ77UnCompVram
- b _08167B7E
- .pool
-_08167B38:
- ldr r0, =gUnknown_0203BCAC
- ldr r1, [r0]
- ldr r0, =0x00007304
- adds r1, r0
- movs r2, 0xA0
- lsls r2, 3
- movs r0, 0x2
- movs r3, 0
- bl LoadBgTilemap
- ldr r0, =gUnknown_086231E8
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r0, =gUnknown_08623208
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0x2
- bl sub_81D21DC
- b _08167B7E
- .pool
-_08167B78:
- movs r0, 0
- strb r0, [r1]
- b _08167B8E
-_08167B7E:
- ldr r0, =gUnknown_0203BCAC
- ldr r1, [r0]
- ldr r2, =0x00008048
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
-_08167B8E:
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8167930
-
- thumb_func_start sub_8167BA0
-sub_8167BA0: @ 8167BA0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- movs r0, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r7, =gUnknown_0203BCAC
- ldr r3, [r7]
- ldr r1, =0x00008041
- adds r0, r3, r1
- ldrb r1, [r0]
- ldr r2, =0x00008040
- adds r0, r3, r2
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- beq _08167C46
- lsls r2, r4, 6
- ldr r0, =0x00007b95
- adds r2, r0
- adds r2, r3, r2
- movs r0, 0x1
- str r0, [sp]
- movs r5, 0
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl Print
- ldr r0, [r7]
- ldr r1, =0x00008041
- adds r0, r1
- ldrb r0, [r0]
- bl sub_81672A4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- bl GetNature
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, [r7]
- ldr r6, =0x0000804a
- adds r0, r6
- ldr r1, =gUnknown_085EBF8D
- bl StringCopy
- ldr r1, =gNatureNamePointers
- lsls r4, 2
- adds r4, r1
- ldr r1, [r4]
- bl StringCopy
- ldr r0, =gUnknown_085DFCC9
- str r0, [sp]
- str r5, [sp, 0x4]
- ldr r0, [r7]
- adds r0, r6
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x2
- movs r3, 0x1
- bl box_print
-_08167C46:
- mov r2, r8
- cmp r2, 0
- beq _08167C84
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0x1
- movs r1, 0x3
- bl CopyWindowToVram
- b _08167C94
- .pool
-_08167C84:
- movs r0, 0
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0x1
- movs r1, 0x2
- bl CopyWindowToVram
-_08167C94:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8167BA0
-
- thumb_func_start sub_8167CA0
-sub_8167CA0: @ 8167CA0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- beq _08167CC0
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r1, =0x00007fb5
- adds r0, r1
- b _08167CC8
- .pool
-_08167CC0:
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r2, =0x00007fb4
- adds r0, r2
-_08167CC8:
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r5, =gUnknown_0203BCAC
- ldr r2, [r5]
- ldr r3, =0x00007c58
- adds r0, r2, r3
- ldr r4, =0x00007fb3
- adds r1, r2, r4
- movs r3, 0
- ldrsb r3, [r1, r3]
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- ldr r4, =0x00007c6c
- adds r1, r4
- adds r1, r2, r1
- lsls r3, r6, 2
- adds r3, r6
- lsls r3, 2
- adds r3, r4
- adds r2, r3
- bl sub_81D1F84
- ldr r4, [r5]
- ldr r1, =0x00008041
- adds r0, r4, r1
- ldrb r1, [r0]
- ldr r2, =0x00008040
- mov r12, r2
- adds r0, r4, r2
- ldrb r0, [r0]
- subs r0, 0x1
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- mov r8, r0
- cmp r7, 0
- beq _08167D98
- ldr r3, =0x00007fb4
- adds r0, r4, r3
- ldrb r1, [r0]
- subs r2, 0x8B
- adds r0, r4, r2
- strb r1, [r0]
- ldr r0, [r5]
- ldr r4, =0x00007fb3
- adds r1, r0, r4
- ldrb r1, [r1]
- adds r0, r3
- strb r1, [r0]
- ldr r0, [r5]
- adds r0, r4
- strb r6, [r0]
- ldr r0, [r5]
- adds r2, r0, r2
- ldrb r1, [r2]
- ldr r2, =0x00007fb6
- adds r0, r2
- strb r1, [r0]
- ldr r1, [r5]
- adds r3, 0x8D
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _08167D58
- mov r4, r12
- adds r0, r1, r4
- ldrb r0, [r0]
-_08167D58:
- subs r2, r0, 0x1
- ldr r0, =0x00008041
- adds r1, r0
- strb r2, [r1]
- ldr r1, =gUnknown_0203BCAC
- ldr r3, [r1]
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r6, r1, 0
- cmp r0, 0
- bne _08167D74
- ldr r1, =0x00008040
- adds r0, r3, r1
- ldrb r0, [r0]
-_08167D74:
- subs r1, r0, 0x1
- b _08167E1E
- .pool
-_08167D98:
- ldr r3, =0x00007fb5
- adds r0, r4, r3
- ldrb r1, [r0]
- ldr r2, =0x00007fb4
- adds r0, r4, r2
- strb r1, [r0]
- ldr r0, [r5]
- ldr r4, =0x00007fb3
- adds r1, r0, r4
- ldrb r1, [r1]
- adds r0, r3
- strb r1, [r0]
- ldr r0, [r5]
- adds r0, r4
- strb r6, [r0]
- ldr r0, [r5]
- adds r2, r0, r2
- ldrb r1, [r2]
- ldr r2, =0x00007fb6
- adds r0, r2
- strb r1, [r0]
- ldr r2, [r5]
- adds r3, 0x8C
- adds r0, r2, r3
- ldrb r1, [r0]
- adds r4, 0x8D
- adds r0, r2, r4
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bge _08167DEC
- adds r3, r1, 0x1
- b _08167DEE
- .pool
-_08167DEC:
- movs r3, 0
-_08167DEE:
- ldr r1, =0x00008041
- adds r0, r2, r1
- strb r3, [r0]
- ldr r2, =gUnknown_0203BCAC
- ldr r3, [r2]
- adds r1, r3, r1
- ldrb r1, [r1]
- ldr r4, =0x00008040
- adds r0, r3, r4
- ldrb r0, [r0]
- subs r0, 0x1
- adds r6, r2, 0
- cmp r1, r0
- bge _08167E1C
- adds r1, 0x1
- b _08167E1E
- .pool
-_08167E1C:
- movs r1, 0
-_08167E1E:
- ldr r2, =0x00007b4c
- adds r0, r3, r2
- strb r1, [r0]
- adds r5, r6, 0
- ldr r0, [r5]
- ldr r3, =0x00008041
- adds r1, r0, r3
- ldrb r2, [r1]
- ldr r4, =0x00008040
- adds r1, r0, r4
- ldrb r1, [r1]
- subs r1, 0x1
- eors r2, r1
- negs r1, r2
- orrs r1, r2
- lsrs r4, r1, 31
- ldr r1, =0x00007b1c
- adds r0, r1
- bl sub_81D3520
- mov r2, r8
- cmp r2, 0
- bne _08167E70
- ldr r0, [r5]
- ldr r3, =0x00008044
- adds r0, r3
- ldr r1, =sub_8167EA4
- b _08167E90
- .pool
-_08167E70:
- cmp r4, 0
- bne _08167E88
- ldr r0, [r5]
- ldr r4, =0x00008044
- adds r0, r4
- ldr r1, =sub_8167FA4
- b _08167E90
- .pool
-_08167E88:
- ldr r0, [r6]
- ldr r1, =0x00008044
- adds r0, r1
- ldr r1, =sub_8168048
-_08167E90:
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8167CA0
-
- thumb_func_start sub_8167EA4
-sub_8167EA4: @ 8167EA4
- push {r4-r6,lr}
- ldr r4, =gUnknown_0203BCAC
- ldr r1, [r4]
- ldr r5, =0x00008048
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08167EE4
- cmp r0, 0x1
- bgt _08167EC8
- cmp r0, 0
- beq _08167ED2
- b _08167F9C
- .pool
-_08167EC8:
- cmp r0, 0x2
- beq _08167F08
- cmp r0, 0x3
- beq _08167F48
- b _08167F9C
-_08167ED2:
- ldr r2, =0x00007fb3
- adds r0, r1, r2
- ldrb r0, [r0]
- bl sub_8167608
- b _08167F2C
- .pool
-_08167EE4:
- ldr r6, =0x00007fb3
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl sub_8167BA0
- ldr r1, [r4]
- ldr r0, =0x00008048
- adds r1, r0
- b _08167F30
- .pool
-_08167F08:
- ldr r2, =0x00007c58
- adds r0, r1, r2
- ldr r6, =0x00007b0e
- adds r1, r6
- bl sub_81D3178
- lsls r0, 24
- cmp r0, 0
- bne _08167F9C
- ldr r1, [r4]
- ldr r2, =0x00007b4c
- adds r0, r1, r2
- ldrb r0, [r0]
- ldr r6, =0x00007fb6
- adds r1, r6
- ldrb r1, [r1]
- bl sub_816753C
-_08167F2C:
- ldr r1, [r4]
- adds r1, r5
-_08167F30:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08167F9C
- .pool
-_08167F48:
- ldr r2, =0x00007b1c
- adds r0, r1, r2
- bl sub_81D3464
- ldr r3, [r4]
- ldr r6, =0x00008041
- adds r0, r3, r6
- ldrb r1, [r0]
- ldr r2, =0x00008040
- adds r0, r3, r2
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- beq _08167F82
- subs r6, 0x8E
- adds r0, r3, r6
- movs r1, 0
- ldrsb r1, [r0, r1]
- subs r2, 0x90
- adds r0, r3, r2
- adds r0, r1
- ldrb r2, [r0]
- ldr r6, =0x00007b1c
- adds r0, r3, r6
- subs r6, 0xC
- adds r1, r3, r6
- ldrb r1, [r1]
- bl sub_81D3480
-_08167F82:
- ldr r0, [r4]
- adds r0, r5
- movs r1, 0
- strb r1, [r0]
- movs r0, 0
- b _08167F9E
- .pool
-_08167F9C:
- movs r0, 0x1
-_08167F9E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8167EA4
-
- thumb_func_start sub_8167FA4
-sub_8167FA4: @ 8167FA4
- push {r4,r5,lr}
- ldr r4, =gUnknown_0203BCAC
- ldr r1, [r4]
- ldr r5, =0x00008048
- adds r2, r1, r5
- ldrb r0, [r2]
- cmp r0, 0x1
- beq _08167FF0
- cmp r0, 0x1
- bgt _08167FC8
- cmp r0, 0
- beq _08167FD2
- b _0816803E
- .pool
-_08167FC8:
- cmp r0, 0x2
- beq _08168014
- cmp r0, 0x3
- beq _08168038
- b _0816803E
-_08167FD2:
- ldr r2, =0x00007c58
- adds r0, r1, r2
- ldr r2, =0x00007b0e
- adds r1, r2
- bl sub_81D31A4
- lsls r0, 24
- cmp r0, 0
- bne _0816803E
- b _08168024
- .pool
-_08167FF0:
- ldr r2, =0x00007fb3
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl sub_8167BA0
- ldr r1, [r4]
- ldr r0, =0x00008048
- adds r1, r0
- b _08168028
- .pool
-_08168014:
- ldr r2, =0x00007b4c
- adds r0, r1, r2
- ldrb r0, [r0]
- ldr r2, =0x00007fb6
- adds r1, r2
- ldrb r1, [r1]
- bl sub_816753C
-_08168024:
- ldr r1, [r4]
- adds r1, r5
-_08168028:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0816803E
- .pool
-_08168038:
- movs r0, 0
- strb r0, [r2]
- b _08168040
-_0816803E:
- movs r0, 0x1
-_08168040:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8167FA4
-
- thumb_func_start sub_8168048
-sub_8168048: @ 8168048
- push {r4-r6,lr}
- ldr r4, =gUnknown_0203BCAC
- ldr r1, [r4]
- ldr r5, =0x00008048
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _081680A8
- cmp r0, 0x1
- bgt _0816806C
- cmp r0, 0
- beq _08168076
- b _08168160
- .pool
-_0816806C:
- cmp r0, 0x2
- beq _081680CC
- cmp r0, 0x3
- beq _0816810C
- b _08168160
-_08168076:
- ldr r2, =0x00007c58
- adds r0, r1, r2
- bl sub_81D2074
- ldr r0, [r4]
- ldr r6, =0x00007b0e
- adds r0, r6
- bl sub_81D3150
- lsls r0, 24
- cmp r0, 0
- bne _08168160
- ldr r0, [r4]
- ldr r1, =0x00007fb3
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8167608
- b _081680F0
- .pool
-_081680A8:
- ldr r2, =0x00007fb3
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl sub_8167BA0
- ldr r1, [r4]
- ldr r6, =0x00008048
- adds r1, r6
- b _081680F4
- .pool
-_081680CC:
- ldr r2, =0x00007c58
- adds r0, r1, r2
- ldr r6, =0x00007b0e
- adds r1, r6
- bl sub_81D3178
- lsls r0, 24
- cmp r0, 0
- bne _08168160
- ldr r1, [r4]
- ldr r2, =0x00007b4c
- adds r0, r1, r2
- ldrb r0, [r0]
- ldr r6, =0x00007fb6
- adds r1, r6
- ldrb r1, [r1]
- bl sub_816753C
-_081680F0:
- ldr r1, [r4]
- adds r1, r5
-_081680F4:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08168160
- .pool
-_0816810C:
- ldr r2, =0x00007b1c
- adds r0, r1, r2
- bl sub_81D3464
- ldr r3, [r4]
- ldr r6, =0x00008041
- adds r0, r3, r6
- ldrb r1, [r0]
- ldr r2, =0x00008040
- adds r0, r3, r2
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- beq _08168146
- subs r6, 0x8E
- adds r0, r3, r6
- movs r1, 0
- ldrsb r1, [r0, r1]
- subs r2, 0x90
- adds r0, r3, r2
- adds r0, r1
- ldrb r2, [r0]
- ldr r6, =0x00007b1c
- adds r0, r3, r6
- subs r6, 0xC
- adds r1, r3, r6
- ldrb r1, [r1]
- bl sub_81D3480
-_08168146:
- ldr r0, [r4]
- adds r0, r5
- movs r1, 0
- strb r1, [r0]
- movs r0, 0
- b _08168162
- .pool
-_08168160:
- movs r0, 0x1
-_08168162:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8168048
-
- thumb_func_start sub_8168168
-sub_8168168: @ 8168168
- ldr r1, =gUnknown_0203BCAC
- ldr r1, [r1]
- ldr r2, =0x00007b0e
- adds r1, r2
- ldrh r1, [r1]
- adds r1, 0x26
- strh r1, [r0, 0x20]
- bx lr
- .pool
- thumb_func_end sub_8168168
-
- thumb_func_start sub_8168180
-sub_8168180: @ 8168180
- push {lr}
- adds r2, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r3, =0x00008041
- adds r0, r3
- ldrb r0, [r0]
- cmp r1, r0
- bne _081681A8
- adds r0, r2, 0
- movs r1, 0
- bl StartSpriteAnim
- b _081681B0
- .pool
-_081681A8:
- adds r0, r2, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_081681B0:
- pop {r0}
- bx r0
- thumb_func_end sub_8168180
-
- thumb_func_start sub_81681B4
-sub_81681B4: @ 81681B4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r2, =0x00008041
- adds r1, r0, r2
- ldrb r1, [r1]
- subs r2, 0x1
- adds r0, r2
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _081681DC
- movs r0, 0x65
- b _081681DE
- .pool
-_081681DC:
- movs r0, 0x66
-_081681DE:
- bl IndexOfSpritePaletteTag
- lsls r0, 4
- ldrb r2, [r4, 0x5]
- movs r1, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81681B4
-
- thumb_func_start sub_81681F4
-sub_81681F4: @ 81681F4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x30
- bl GetMonData
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r3, =0x00007fb3
- adds r1, r0, r3
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- subs r3, 0x3
- adds r0, r3
- adds r4, r0, r1
- cmp r2, 0xFF
- beq _0816823C
- adds r0, r2, 0
- movs r1, 0x1D
- bl __udivsi3
- b _0816823E
- .pool
-_0816823C:
- movs r0, 0x9
-_0816823E:
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81681F4
-
- thumb_func_start sub_8168248
-sub_8168248: @ 8168248
- push {lr}
- sub sp, 0x10
- ldr r0, =gUnknown_085DFDB8
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- ldr r0, =gUnknown_08DCCBB8
- str r0, [sp]
- ldr r1, =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0x80
- lsls r1, 4
- orrs r0, r1
- ldr r1, =0x0000ffff
- ands r0, r1
- adds r1, 0x1
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadCompressedObjectPic
- add r0, sp, 0x8
- bl LoadSpritePalette
- add sp, 0x10
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8168248
-
- thumb_func_start sub_8168294
-sub_8168294: @ 8168294
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, =gUnknown_0203BCAC
- ldr r0, [r0]
- ldr r1, =0x00007b44
- adds r7, r0, r1
- ldr r0, =gUnknown_085DFDA0
- mov r10, r0
- movs r6, 0
- movs r1, 0x40
- mov r9, r1
- movs r0, 0x60
- negs r0, r0
- mov r8, r0
-_081682B6:
- mov r5, r9
- muls r5, r6
- mov r0, r8
- adds r1, r0, r5
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x11
- lsls r2, r0, 16
- mov r0, r10
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _081682FE
- ldr r0, =gSprites
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r0
- movs r1, 0x8
- strh r1, [r4, 0x2E]
- movs r0, 0x20
- orrs r5, r0
- strh r5, [r4, 0x30]
- strh r6, [r4, 0x32]
- lsls r1, r6, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- lsls r0, r6, 2
- adds r0, r7
- str r4, [r0]
-_081682FE:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x1
- bls _081682B6
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8168294
-
- thumb_func_start sub_8168328
-sub_8168328: @ 8168328
- push {r4,r5,lr}
- ldr r4, =gUnknown_0203BCAC
- ldr r0, [r4]
- ldr r5, =0x00008048
- adds r0, r5
- ldrb r0, [r0]
- cmp r0, 0
- beq _08168348
- cmp r0, 0x1
- beq _08168360
- b _0816836C
- .pool
-_08168348:
- bl sub_8168248
- ldr r1, [r4]
- ldr r0, =0x00008048
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
- b _0816836E
- .pool
-_08168360:
- bl sub_8168294
- ldr r0, [r4]
- adds r0, r5
- movs r1, 0
- strb r1, [r0]
-_0816836C:
- movs r0, 0
-_0816836E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8168328
-
- thumb_func_start sub_8168374
-sub_8168374: @ 8168374
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x20]
- ldrh r1, [r2, 0x2E]
- adds r3, r0, r1
- strh r3, [r2, 0x20]
- lsls r0, 16
- asrs r4, r0, 16
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- cmp r4, r1
- bgt _08168398
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, r1
- bge _081683A0
- cmp r4, r1
- blt _081683A8
-_08168398:
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, r1
- bgt _081683A8
-_081683A0:
- ldrh r0, [r2, 0x30]
- strh r0, [r2, 0x20]
- ldr r0, =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_081683A8:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8168374
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_815A0D4.s b/asm/rom_815A0D4.s
new file mode 100644
index 000000000..fa6cbd285
--- /dev/null
+++ b/asm/rom_815A0D4.s
@@ -0,0 +1,14458 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_815A0D4
+sub_815A0D4: @ 815A0D4
+ push {lr}
+ adds r2, r0, 0
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r3, [r2, 0x20]
+ adds r0, r3
+ strh r0, [r2, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r3, [r2, 0x22]
+ adds r0, r3
+ strh r0, [r2, 0x22]
+ movs r3, 0x6
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _0815A0FC
+ ldrh r0, [r1, 0x4]
+ b _0815A100
+ .pool
+_0815A0FC:
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+_0815A100:
+ strh r0, [r2, 0x2E]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r2, 0x30]
+ ldr r0, =sub_815A114
+ str r0, [r2, 0x1C]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815A0D4
+
+ thumb_func_start sub_815A114
+sub_815A114: @ 815A114
+ push {lr}
+ adds r3, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ ble _0815A154
+ ldrh r1, [r3, 0x32]
+ lsls r0, r1, 16
+ asrs r0, 24
+ strh r0, [r3, 0x24]
+ ldrh r0, [r3, 0x2E]
+ adds r1, r0
+ strh r1, [r3, 0x32]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x30]
+ subs r0, 0x1
+ strh r0, [r3, 0x30]
+ b _0815A15A
+_0815A154:
+ adds r0, r3, 0
+ bl move_anim_8072740
+_0815A15A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815A114
+
+ thumb_func_start sub_815A160
+sub_815A160: @ 815A160
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, =gAnimationBankTarget
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_80A5C6C
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 8
+ movs r0, 0x80
+ lsls r0, 12
+ adds r4, r0
+ asrs r4, 16
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_80A5C6C
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 8
+ movs r0, 0x80
+ lsls r0, 12
+ adds r1, r0
+ asrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_807521C
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815A160
+
+ thumb_func_start sub_815A1B0
+sub_815A1B0: @ 815A1B0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x5A
+ strh r0, [r4, 0x2E]
+ ldr r0, =sub_80A64B0
+ str r0, [r4, 0x1C]
+ movs r0, 0x7
+ strh r0, [r4, 0x30]
+ ldr r1, =sub_815A1F4
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815A1B0
+
+ thumb_func_start sub_815A1F4
+sub_815A1F4: @ 815A1F4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0815A228
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, =sub_815A234
+ str r0, [r4, 0x1C]
+_0815A228:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815A1F4
+
+ thumb_func_start sub_815A234
+sub_815A234: @ 815A234
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r4, 0
+ bl move_anim_8072740
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815A234
+
+ thumb_func_start sub_815A254
+sub_815A254: @ 815A254
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r4, =gAnimationBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r7, r0, 0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80A6980
+ ldrh r0, [r5, 0x20]
+ subs r0, r7
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r5, 0x22]
+ subs r1, r6
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80A74F4
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 23
+ adds r0, r1
+ lsrs r4, r0, 16
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815A2B2
+ movs r1, 0x80
+ lsls r1, 7
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0815A2B2:
+ movs r3, 0x80
+ lsls r3, 1
+ str r4, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_80A73E0
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x2E]
+ strh r7, [r5, 0x32]
+ strh r6, [r5, 0x36]
+ ldr r0, =sub_80A6EEC
+ str r0, [r5, 0x1C]
+ ldr r1, =move_anim_8072740
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815A254
+
+ thumb_func_start sub_815A2F0
+sub_815A2F0: @ 815A2F0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x4
+ strh r0, [r4, 0x2E]
+ ldr r0, =sub_815A31C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815A2F0
+
+ thumb_func_start sub_815A31C
+sub_815A31C: @ 815A31C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0815A342
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ b _0815A346
+_0815A342:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+_0815A346:
+ strh r0, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xF
+ beq _0815A354
+ cmp r0, 0x4
+ bne _0815A35C
+_0815A354:
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x30]
+_0815A35C:
+ ldrh r0, [r4, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x46
+ ble _0815A3A0
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ subs r2, 0x12
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, =sub_815A3AC
+ str r0, [r4, 0x1C]
+_0815A3A0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815A31C
+
+ thumb_func_start sub_815A3AC
+sub_815A3AC: @ 815A3AC
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ ble _0815A3E8
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ subs r2, 0x12
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r3, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0815A3E8
+ ldr r0, =sub_815A3F0
+ str r0, [r3, 0x1C]
+_0815A3E8:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815A3AC
+
+ thumb_func_start sub_815A3F0
+sub_815A3F0: @ 815A3F0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bhi _0815A448
+ lsls r0, 2
+ ldr r1, =_0815A40C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0815A40C:
+ .4byte _0815A428
+ .4byte _0815A428
+ .4byte _0815A432
+ .4byte _0815A432
+ .4byte _0815A440
+ .4byte _0815A440
+ .4byte _0815A448
+_0815A428:
+ movs r1, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x24]
+ strh r1, [r4, 0x26]
+ b _0815A450
+_0815A432:
+ ldr r0, =0x0000ffff
+ strh r0, [r4, 0x24]
+ movs r0, 0
+ b _0815A44E
+ .pool
+_0815A440:
+ movs r0, 0
+ strh r0, [r4, 0x24]
+ movs r0, 0x1
+ b _0815A44E
+_0815A448:
+ movs r0, 0
+ strh r0, [r4, 0x24]
+ ldr r0, =0x0000ffff
+_0815A44E:
+ strh r0, [r4, 0x26]
+_0815A450:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _0815A462
+ strh r2, [r4, 0x34]
+_0815A462:
+ ldrh r0, [r4, 0x36]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _0815A48C
+ movs r0, 0x10
+ strh r0, [r4, 0x2E]
+ strh r2, [r4, 0x30]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r0, =sub_815A49C
+ str r0, [r4, 0x1C]
+_0815A48C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815A3F0
+
+ thumb_func_start sub_815A49C
+sub_815A49C: @ 815A49C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ ldrh r0, [r4, 0x30]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0815A4CC
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+_0815A4CC:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0815A4E0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_0815A4E0:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _0815A4FE
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0815A4FE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815A49C
+
+ thumb_func_start sub_815A504
+sub_815A504: @ 815A504
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, =sub_815A52C
+ str r0, [r1]
+ ldr r1, =gAnimVisualTaskCount
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_815A504
+
+ thumb_func_start sub_815A52C
+sub_815A52C: @ 815A52C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80A6D94
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r7, =gTasks
+ lsls r5, r4, 2
+ adds r1, r5, r4
+ lsls r1, 3
+ adds r1, r7
+ ldrh r0, [r1, 0x12]
+ adds r0, 0x1
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _0815A59C
+ ldr r0, =gPlttBufferFaded
+ lsls r2, r6, 4
+ adds r1, r2, 0
+ adds r1, 0xB
+ lsls r1, 1
+ adds r1, r0
+ ldrh r3, [r1]
+ mov r8, r3
+ movs r3, 0xA
+ mov r9, r7
+ adds r7, r5, 0
+ mov r12, r0
+ adds r5, r2, 0
+ lsls r0, r6, 5
+ add r0, r12
+ adds r2, r0, 0
+ adds r2, 0x14
+_0815A57A:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ subs r2, 0x2
+ subs r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bgt _0815A57A
+ adds r0, r5, 0x1
+ lsls r0, 1
+ add r0, r12
+ movs r1, 0
+ mov r2, r8
+ strh r2, [r0]
+ adds r0, r7, r4
+ lsls r0, 3
+ add r0, r9
+ strh r1, [r0, 0x12]
+_0815A59C:
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ bne _0815A5AC
+ adds r0, r4, 0
+ bl DestroyTask
+_0815A5AC:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815A52C
+
+ thumb_func_start c3_80DE6F0
+c3_80DE6F0: @ 815A5C8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, =sub_815A5F0
+ str r0, [r1]
+ ldr r1, =gAnimVisualTaskCount
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end c3_80DE6F0
+
+ thumb_func_start sub_815A5F0
+sub_815A5F0: @ 815A5F0
+ 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
+ bl sub_80A6D94
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r5, =gTasks
+ mov r0, r8
+ lsls r3, r0, 2
+ adds r1, r3, r0
+ lsls r1, 3
+ adds r1, r5
+ ldrh r0, [r1, 0x12]
+ adds r0, 0x1
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _0815A692
+ ldr r0, =gPlttBufferFaded
+ lsls r2, r7, 4
+ adds r1, r2, 0
+ adds r1, 0xB
+ lsls r1, 1
+ adds r1, r0
+ ldrh r6, [r1]
+ movs r4, 0xA
+ mov r10, r3
+ mov r9, r0
+ adds r5, r2, 0
+ ldr r2, =gPlttBufferUnfaded
+ mov r12, r2
+ lsls r0, r7, 5
+ add r0, r9
+ adds r3, r0, 0
+ adds r3, 0x14
+_0815A644:
+ ldrh r0, [r3]
+ strh r0, [r1]
+ subs r3, 0x2
+ subs r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bgt _0815A644
+ adds r0, r5, 0x1
+ lsls r0, 1
+ add r0, r9
+ strh r6, [r0]
+ adds r1, r5, 0
+ adds r1, 0xB
+ lsls r1, 1
+ add r1, r12
+ ldrh r6, [r1]
+ movs r4, 0xA
+ lsls r0, r7, 5
+ add r0, r12
+ adds r2, r0, 0
+ adds r2, 0x14
+_0815A66E:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ subs r2, 0x2
+ subs r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bgt _0815A66E
+ adds r0, r5, 0x1
+ lsls r0, 1
+ add r0, r12
+ movs r1, 0
+ strh r6, [r0]
+ mov r0, r10
+ add r0, r8
+ lsls r0, 3
+ ldr r2, =gTasks
+ adds r0, r2
+ strh r1, [r0, 0x12]
+_0815A692:
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ bne _0815A6A2
+ mov r0, r8
+ bl DestroyTask
+_0815A6A2:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815A5F0
+
+ thumb_func_start sub_815A6C4
+sub_815A6C4: @ 815A6C4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80A69CC
+ ldr r0, =gAnimationBankTarget
+ ldrb r0, [r0]
+ mov r5, sp
+ adds r5, 0x2
+ movs r1, 0
+ mov r2, sp
+ adds r3, r5, 0
+ bl sub_80A8924
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815A6F8
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_0815A6F8:
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x2E]
+ mov r2, sp
+ ldrh r0, [r1, 0x4]
+ ldrh r2, [r2]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0x6]
+ ldrh r5, [r5]
+ adds r0, r5
+ strh r0, [r4, 0x36]
+ ldr r0, =0x0000ffce
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80A68D4
+ ldr r0, =sub_815A73C
+ str r0, [r4, 0x1C]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815A6C4
+
+ thumb_func_start sub_815A73C
+sub_815A73C: @ 815A73C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80A6900
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815A75E
+ movs r1, 0
+ movs r0, 0x1E
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ ldr r0, =sub_80A64B0
+ str r0, [r4, 0x1C]
+ ldr r1, =sub_815A76C
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+_0815A75E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815A73C
+
+ thumb_func_start sub_815A76C
+sub_815A76C: @ 815A76C
+ push {lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0815A798
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+_0815A798:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bne _0815A7AC
+ adds r0, r3, 0
+ bl move_anim_8072740
+_0815A7AC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815A76C
+
+ thumb_func_start sub_815A7B0
+sub_815A7B0: @ 815A7B0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_80A6838
+ ldr r5, =gBattleAnimArgs
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_80A6864
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, =sub_80A67D8
+ str r0, [r4, 0x1C]
+ ldr r1, =move_anim_8072740
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815A7B0
+
+ thumb_func_start sub_815A7EC
+sub_815A7EC: @ 815A7EC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0815A84C
+ adds r0, r4, 0
+ bl sub_80A6838
+ ldr r5, =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ adds r0, r4, 0
+ bl sub_80A6864
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815A840
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815A830
+ ldrh r0, [r5, 0x4]
+ b _0815A846
+ .pool
+_0815A830:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ strh r0, [r4, 0x30]
+ movs r2, 0x6
+ ldrsh r0, [r5, r2]
+ negs r0, r0
+ b _0815A84A
+_0815A840:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+_0815A846:
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x6]
+_0815A84A:
+ strh r0, [r4, 0x32]
+_0815A84C:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ movs r3, 0xFF
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r4, 0x34]
+ adds r1, r2
+ strh r1, [r4, 0x34]
+ ldrh r1, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ adds r1, r2
+ strh r1, [r4, 0x36]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ asrs r1, 1
+ strh r1, [r4, 0x24]
+ ands r0, r3
+ movs r1, 0x5
+ bl Sin
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ asrs r1, 1
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xF0
+ bls _0815A8A4
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0815A8A4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815A7EC
+
+ thumb_func_start sub_815A8AC
+sub_815A8AC: @ 815A8AC
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0815A8C2
+ adds r0, r2, 0
+ bl move_anim_8072740
+_0815A8C2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815A8AC
+
+ thumb_func_start sub_815A8C8
+sub_815A8C8: @ 815A8C8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gAnimationBankTarget
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0815A8EC
+ ldr r1, =gBattleAnimArgs
+ movs r0, 0
+ b _0815A8F0
+ .pool
+_0815A8EC:
+ ldr r1, =gBattleAnimArgs
+ movs r0, 0x1
+_0815A8F0:
+ strh r0, [r1, 0xE]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815A8C8
+
+ thumb_func_start sub_815A904
+sub_815A904: @ 815A904
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gMoveDmgMoveAnim
+ ldr r0, [r0]
+ cmp r0, 0
+ ble _0815A920
+ ldr r1, =gBattleAnimArgs
+ movs r0, 0
+ b _0815A924
+ .pool
+_0815A920:
+ ldr r1, =gBattleAnimArgs
+ movs r0, 0x1
+_0815A924:
+ strh r0, [r1, 0xE]
+ adds r0, r2, 0
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815A904
+
+ thumb_func_start sub_815A934
+sub_815A934: @ 815A934
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r1, =0x00001f3f
+ movs r0, 0x4A
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 8
+ movs r0, 0
+ bl SetGpuRegBits
+ ldr r0, =gUnknown_02022E24
+ movs r1, 0
+ strh r1, [r0]
+ ldr r4, =gUnknown_02022E26
+ strh r1, [r4]
+ movs r0, 0x40
+ movs r1, 0
+ bl SetGpuReg
+ ldrh r1, [r4]
+ movs r0, 0x44
+ bl SetGpuReg
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80A6980
+ ldrb r1, [r5, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r5, 0x1]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, =sub_815A9A0
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815A934
+
+ thumb_func_start sub_815A9A0
+sub_815A9A0: @ 815A9A0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bhi _0815AA60
+ lsls r0, 2
+ ldr r1, =_0815A9BC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0815A9BC:
+ .4byte _0815A9D4
+ .4byte _0815A9F2
+ .4byte _0815AA12
+ .4byte _0815A9F2
+ .4byte _0815AA32
+ .4byte _0815AA42
+_0815A9D4:
+ 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
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0815AA60
+ b _0815AA3A
+_0815A9F2:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x75
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _0815AA60
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ b _0815AA3A
+_0815AA12:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x75
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x29
+ bne _0815AA60
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ b _0815AA3A
+_0815AA32:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+_0815AA3A:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0815AA60
+_0815AA42:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0815AA60
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, =sub_815AA6C
+ str r0, [r4, 0x1C]
+_0815AA60:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815A9A0
+
+ thumb_func_start sub_815AA6C
+sub_815AA6C: @ 815AA6C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, =0x00003f3f
+ movs r0, 0x4A
+ bl SetGpuReg
+ movs r0, 0
+ bl GetGpuReg
+ adds r1, r0, 0
+ movs r2, 0x80
+ lsls r2, 8
+ adds r0, r2, 0
+ eors r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0
+ bl SetGpuReg
+ adds r0, r4, 0
+ bl move_anim_8072740
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815AA6C
+
+ thumb_func_start sub_815AAA4
+sub_815AAA4: @ 815AAA4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, =gBattleAnimArgs
+ movs r1, 0x6
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0815AAD0
+ ldr r4, =gAnimationBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+_0815AAD0:
+ ldrh r0, [r6]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ movs r3, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r6, 0x2]
+ ldrh r4, [r5, 0x22]
+ adds r0, r4
+ strh r0, [r5, 0x22]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r4, =0x000003ff
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0815AB2C
+ ldrb r1, [r5, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ ldr r0, =0x0000fff4
+ strh r0, [r5, 0x24]
+ movs r0, 0x2
+ b _0815AB32
+ .pool
+_0815AB2C:
+ movs r0, 0xC
+ strh r0, [r5, 0x24]
+ ldr r0, =0x0000fffe
+_0815AB32:
+ strh r0, [r5, 0x30]
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ movs r2, 0x34
+ ldrsh r0, [r5, r2]
+ cmp r0, 0xFF
+ beq _0815AB46
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x34]
+_0815AB46:
+ ldr r0, =sub_815AB5C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815AAA4
+
+ thumb_func_start sub_815AB5C
+sub_815AB5C: @ 815AB5C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0815AB9A
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0815ABBA
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x32]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0815ABBA
+ movs r0, 0x40
+ negs r0, r0
+ bl BattleAnimGetPanControl
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xDE
+ bl PlaySE1WithPanning
+ b _0815ABBA
+_0815AB9A:
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x30]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _0815ABAC
+ negs r0, r0
+_0815ABAC:
+ cmp r0, 0xC
+ bne _0815ABBA
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ subs r0, r2, 0x1
+ strh r0, [r4, 0x32]
+_0815ABBA:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0815ABC8
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0815ABC8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815AB5C
+
+ thumb_func_start sub_815ABD0
+sub_815ABD0: @ 815ABD0
+ push {lr}
+ ldrb r2, [r0, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ movs r1, 0xFF
+ strh r1, [r0, 0x34]
+ bl sub_815AAA4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815ABD0
+
+ thumb_func_start sub_815ABEC
+sub_815ABEC: @ 815ABEC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815AC40
+ ldr r1, =0x00001f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r1, =gUnknown_02022E28
+ ldr r2, =0x000098f0
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E2A
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r0, =gUnknown_02022E24
+ ldrh r1, [r0]
+ movs r0, 0x42
+ bl SetGpuReg
+ ldr r0, =gUnknown_02022E26
+ ldrh r1, [r0]
+ movs r0, 0x46
+ bl SetGpuReg
+ b _0815AC70
+ .pool
+_0815AC40:
+ ldr r1, =0x00001f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r1, =gUnknown_02022E28
+ movs r0, 0xF0
+ strh r0, [r1]
+ ldr r4, =gUnknown_02022E2A
+ ldr r1, =0x000078a0
+ adds r0, r1, 0
+ strh r0, [r4]
+ movs r0, 0x42
+ movs r1, 0xF0
+ bl SetGpuReg
+ ldrh r1, [r4]
+ movs r0, 0x46
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 7
+ movs r0, 0
+ bl SetGpuRegBits
+_0815AC70:
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815ABEC
+
+ thumb_func_start sub_815AC8C
+sub_815AC8C: @ 815AC8C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =0x00003f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r0, =gUnknown_02022E28
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gUnknown_02022E2A
+ strh r1, [r0]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815ACB8
+ movs r1, 0x80
+ lsls r1, 7
+ movs r0, 0
+ bl ClearGpuRegBits
+_0815ACB8:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815AC8C
+
+ thumb_func_start sub_815ACD0
+sub_815ACD0: @ 815ACD0
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0815ACEC
+ ldr r4, =gAnimationBankAttacker
+ b _0815ACEE
+ .pool
+_0815ACEC:
+ ldr r4, =gAnimationBankTarget
+_0815ACEE:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x2]
+ adds r0, r6
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r2, =gBattleAnimArgs
+ ldrh r0, [r2, 0x4]
+ strh r0, [r5, 0x26]
+ movs r3, 0
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r4, [r2, 0x6]
+ movs r6, 0x6
+ ldrsh r1, [r2, r6]
+ cmp r0, r1
+ ble _0815AD26
+ movs r3, 0x1
+_0815AD26:
+ strh r3, [r5, 0x2E]
+ movs r0, 0
+ strh r0, [r5, 0x30]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r2, 0xA]
+ strh r0, [r5, 0x34]
+ strh r4, [r5, 0x36]
+ ldr r0, =sub_815AD4C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815ACD0
+
+ thumb_func_start sub_815AD4C
+sub_815AD4C: @ 815AD4C
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x30]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r2, 0x30]
+ ldr r1, =gSineTable
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x34]
+ ldrh r3, [r2, 0x26]
+ adds r1, r0, r3
+ strh r1, [r2, 0x26]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _0815AD98
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r3, 0x36
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bge _0815ADAA
+ adds r0, r2, 0
+ bl move_anim_8072740
+ b _0815ADAA
+ .pool
+_0815AD98:
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r3, 0x36
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ ble _0815ADAA
+ adds r0, r2, 0
+ bl move_anim_8072740
+_0815ADAA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815AD4C
+
+ thumb_func_start sub_815ADB0
+sub_815ADB0: @ 815ADB0
+ push {r4-r7,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r5, r1, r0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0815ADDC
+ ldr r4, =gAnimationBankAttacker
+ b _0815ADDE
+ .pool
+_0815ADDC:
+ ldr r4, =gAnimationBankTarget
+_0815ADDE:
+ ldrb r0, [r4]
+ bl sub_80A6190
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ bl GetBankIdentity_permutated
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r6, 0
+ adds r1, r0, 0
+ adds r1, 0x24
+ movs r2, 0
+ strh r1, [r5, 0x8]
+ strh r1, [r5, 0xA]
+ subs r0, 0x21
+ strh r0, [r5, 0xC]
+ cmp r0, 0
+ bge _0815AE08
+ strh r2, [r5, 0xC]
+_0815AE08:
+ ldrh r0, [r5, 0x8]
+ strh r0, [r5, 0xE]
+ movs r0, 0x8
+ strh r0, [r5, 0x10]
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x12]
+ strh r2, [r5, 0x14]
+ strh r2, [r5, 0x16]
+ cmp r7, 0x1
+ bne _0815AE30
+ ldr r0, =gUnknown_02022E18
+ b _0815AE32
+ .pool
+_0815AE30:
+ ldr r0, =gUnknown_02022E1C
+_0815AE32:
+ ldrh r2, [r0]
+ strh r2, [r5, 0x18]
+ adds r3, r2, 0
+ adds r3, 0xF0
+ strh r3, [r5, 0x1A]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x1C]
+ movs r4, 0x4
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ bne _0815AE54
+ strh r3, [r5, 0x1E]
+ ldrh r3, [r5, 0x18]
+ b _0815AE58
+ .pool
+_0815AE54:
+ strh r2, [r5, 0x1E]
+ ldrh r3, [r5, 0x1A]
+_0815AE58:
+ movs r0, 0
+ strh r0, [r5, 0x26]
+ ldrh r1, [r5, 0xC]
+ lsls r2, r1, 16
+ asrs r1, r2, 16
+ movs r6, 0xE
+ ldrsh r0, [r5, r6]
+ cmp r1, r0
+ bgt _0815AE8E
+ ldr r4, =gUnknown_02038C28
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r0, r4
+ mov r12, r0
+_0815AE74:
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r0, r1, r4
+ strh r3, [r0]
+ add r1, r12
+ strh r3, [r1]
+ adds r2, 0x1
+ lsls r2, 16
+ asrs r1, r2, 16
+ movs r6, 0xE
+ ldrsh r0, [r5, r6]
+ cmp r1, r0
+ ble _0815AE74
+_0815AE8E:
+ cmp r7, 0x1
+ bne _0815AEA0
+ ldr r0, =0x04000014
+ b _0815AEA2
+ .pool
+_0815AEA0:
+ ldr r0, =0x04000018
+_0815AEA2:
+ str r0, [sp]
+ ldr r0, =0xa2600001
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80BA038
+ ldr r0, =sub_815AED8
+ str r0, [r5]
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815ADB0
+
+ thumb_func_start sub_815AED8
+sub_815AED8: @ 815AED8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x8]
+ ldrh r1, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r4, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bge _0815AF00
+ strh r2, [r4, 0x8]
+_0815AF00:
+ ldrh r1, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0815AF2C
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r4, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bge _0815AF30
+ strh r2, [r4, 0xA]
+ movs r0, 0x1
+ strh r0, [r4, 0x26]
+ b _0815AF30
+ .pool
+_0815AF2C:
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x10]
+_0815AF30:
+ ldrh r0, [r4, 0x14]
+ adds r0, 0x1
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0815AF5C
+ movs r0, 0
+ strh r0, [r4, 0x14]
+ movs r1, 0
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0815AF4E
+ movs r1, 0x1
+_0815AF4E:
+ strh r1, [r4, 0x16]
+ cmp r1, 0
+ beq _0815AF58
+ ldrh r0, [r4, 0x18]
+ b _0815AF5A
+_0815AF58:
+ ldrh r0, [r4, 0x1A]
+_0815AF5A:
+ strh r0, [r4, 0x20]
+_0815AF5C:
+ ldrh r1, [r4, 0x8]
+ lsls r3, r1, 16
+ asrs r1, r3, 16
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bge _0815AF90
+ ldr r5, =gUnknown_02038C28
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_0815AF72:
+ asrs r3, 16
+ lsls r1, r3, 1
+ adds r2, r1, r5
+ ldrh r0, [r4, 0x20]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r4, 0x20]
+ strh r0, [r1]
+ adds r3, 0x1
+ lsls r3, 16
+ asrs r1, r3, 16
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _0815AF72
+_0815AF90:
+ ldrh r1, [r4, 0xA]
+ lsls r3, r1, 16
+ asrs r1, r3, 16
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bgt _0815AFC4
+ ldr r5, =gUnknown_02038C28
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_0815AFA6:
+ asrs r3, 16
+ lsls r1, r3, 1
+ adds r2, r1, r5
+ ldrh r0, [r4, 0x1E]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r4, 0x1E]
+ strh r0, [r1]
+ adds r3, 0x1
+ lsls r3, 16
+ asrs r1, r3, 16
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ ble _0815AFA6
+_0815AFC4:
+ movs r3, 0x26
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _0815AFE0
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0815AFDA
+ ldr r1, =gUnknown_02039B28
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_0815AFDA:
+ adds r0, r7, 0
+ bl move_anim_task_del
+_0815AFE0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815AED8
+
+ thumb_func_start sub_815AFF0
+sub_815AFF0: @ 815AFF0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks
+ adds r4, r0
+ movs r5, 0
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ ldr r6, =gAnimationBankAttacker
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xC]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xE]
+ movs r0, 0x20
+ strh r0, [r4, 0x10]
+ ldr r0, =0x0000ffec
+ strh r0, [r4, 0x12]
+ strh r5, [r4, 0x14]
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, =sub_815B054
+ str r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815AFF0
+
+ thumb_func_start sub_815B054
+sub_815B054: @ 815B054
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r6, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x5
+ bls _0815B074
+ b _0815B22E
+_0815B074:
+ lsls r0, 2
+ ldr r1, =_0815B088
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0815B088:
+ .4byte _0815B0A0
+ .4byte _0815B160
+ .4byte _0815B18E
+ .4byte _0815B1A2
+ .4byte _0815B1B8
+ .4byte _0815B220
+_0815B0A0:
+ movs r0, 0xC
+ ldrsh r2, [r6, r0]
+ ldrh r1, [r6, 0xA]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0815B0B6
+ movs r1, 0x10
+ ldrsh r0, [r6, r1]
+ subs r0, r2, r0
+ b _0815B0BC
+_0815B0B6:
+ movs r1, 0x10
+ ldrsh r0, [r6, r1]
+ adds r0, r2, r0
+_0815B0BC:
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldrh r2, [r6, 0x12]
+ ldrh r0, [r6, 0xE]
+ adds r2, r0
+ ldr r0, =gUnknown_08593114
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ ldrb r4, [r6, 0xA]
+ movs r3, 0x6
+ subs r3, r4
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x40
+ negs r0, r0
+ bl BattleAnimGetPanControl
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xBA
+ bl PlaySE12WithPanning
+ cmp r4, 0x40
+ beq _0815B120
+ ldr r5, =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r3, r1, r5
+ ldrh r0, [r6, 0xA]
+ movs r2, 0x1
+ ands r2, r0
+ adds r3, 0x3F
+ ldrb r4, [r3]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r4
+ orrs r0, r2
+ strb r0, [r3]
+ adds r5, 0x1C
+ adds r1, r5
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r1]
+_0815B120:
+ ldrh r1, [r6, 0xA]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0815B138
+ ldrh r0, [r6, 0x10]
+ subs r0, 0x6
+ strh r0, [r6, 0x10]
+ ldrh r0, [r6, 0x12]
+ subs r0, 0x6
+ strh r0, [r6, 0x12]
+_0815B138:
+ ldrh r1, [r6, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =gUnknown_085CE2A0
+ adds r0, r6, 0
+ bl sub_80A7CFC
+ ldrh r0, [r6, 0xA]
+ adds r0, 0x1
+ strh r0, [r6, 0xA]
+ strh r4, [r6, 0x8]
+ b _0815B22E
+ .pool
+_0815B160:
+ adds r0, r6, 0
+ bl sub_80A7D34
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0815B22E
+ movs r2, 0xA
+ ldrsh r1, [r6, r2]
+ cmp r1, 0x6
+ bne _0815B180
+ movs r0, 0x8
+ strh r0, [r6, 0x14]
+ movs r0, 0x3
+ strh r0, [r6, 0x8]
+ b _0815B22E
+_0815B180:
+ cmp r1, 0x2
+ bgt _0815B186
+ movs r0, 0xA
+_0815B186:
+ strh r0, [r6, 0x14]
+ movs r0, 0x2
+ strh r0, [r6, 0x8]
+ b _0815B22E
+_0815B18E:
+ ldrh r0, [r6, 0x14]
+ movs r2, 0x14
+ ldrsh r1, [r6, r2]
+ cmp r1, 0
+ beq _0815B19E
+ subs r0, 0x1
+ strh r0, [r6, 0x14]
+ b _0815B22E
+_0815B19E:
+ strh r1, [r6, 0x8]
+ b _0815B22E
+_0815B1A2:
+ ldrh r1, [r6, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ beq _0815B1B2
+ subs r0, r1, 0x1
+ strh r0, [r6, 0x14]
+ b _0815B22E
+_0815B1B2:
+ movs r0, 0x4
+ strh r0, [r6, 0x8]
+ b _0815B22E
+_0815B1B8:
+ movs r5, 0
+ movs r7, 0
+ ldr r3, =gSprites
+ movs r0, 0x1C
+ adds r0, r3
+ mov r8, r0
+_0815B1C4:
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r4, r0, 2
+ adds r0, r3, 0
+ adds r0, 0x14
+ adds r0, r4, r0
+ ldr r1, [r0]
+ ldr r0, =gUnknown_08593114
+ cmp r1, r0
+ bne _0815B200
+ adds r0, r4, r3
+ strh r2, [r0, 0x2E]
+ movs r1, 0x6
+ strh r1, [r0, 0x30]
+ movs r1, 0x2
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ bl StartSpriteAnim
+ mov r0, r8
+ adds r1, r4, r0
+ ldr r0, =sub_815B23C
+ str r0, [r1]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r2, [sp]
+ ldr r3, [sp, 0x4]
+ cmp r7, 0x6
+ beq _0815B20A
+_0815B200:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3F
+ bls _0815B1C4
+_0815B20A:
+ strh r7, [r6, 0x14]
+ movs r0, 0x5
+ strh r0, [r6, 0x8]
+ b _0815B22E
+ .pool
+_0815B220:
+ movs r1, 0x14
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0815B22E
+ adds r0, r2, 0
+ bl move_anim_task_del
+_0815B22E:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815B054
+
+ thumb_func_start sub_815B23C
+sub_815B23C: @ 815B23C
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0815B270
+ ldr r3, =gTasks
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x2E
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_0815B270:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815B23C
+
+ thumb_func_start sub_815B27C
+sub_815B27C: @ 815B27C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0815B290
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80A69CC
+_0815B290:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x27
+ bgt _0815B2C2
+ ldrh r0, [r5, 0x2E]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0815B2B4
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ b _0815B2C0
+_0815B2B4:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+_0815B2C0:
+ strb r0, [r2]
+_0815B2C2:
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x1E
+ ble _0815B2D8
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0815B2D8:
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x3D
+ bne _0815B324
+ ldr r1, =move_anim_8072740
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldrh r0, [r5, 0x24]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ 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, 0x24]
+ strh r1, [r5, 0x26]
+ movs r0, 0x14
+ strh r0, [r5, 0x2E]
+ ldr r4, =gAnimationBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, =sub_80A6EEC
+ str r0, [r5, 0x1C]
+_0815B324:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815B27C
+
+ thumb_func_start sub_815B338
+sub_815B338: @ 815B338
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =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 _0815B35C
+ cmp r0, 0x1
+ beq _0815B37C
+ b _0815B38E
+ .pool
+_0815B35C:
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =gUnknown_085CE350
+ adds r0, r4, 0
+ bl sub_80A7CFC
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0815B38E
+ .pool
+_0815B37C:
+ adds r0, r4, 0
+ bl sub_80A7D34
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815B38E
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0815B38E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815B338
+
+ thumb_func_start sub_815B394
+sub_815B394: @ 815B394
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _0815B3F4
+ cmp r0, 0x1
+ bgt _0815B3B4
+ cmp r0, 0
+ beq _0815B3BE
+ b _0815B496
+_0815B3B4:
+ cmp r0, 0x2
+ beq _0815B424
+ cmp r0, 0x3
+ beq _0815B478
+ b _0815B496
+_0815B3BE:
+ ldr r4, =gAnimationBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_80A7270
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r5, 0x30]
+ strh r0, [r5, 0x32]
+ b _0815B46C
+ .pool
+_0815B3F4:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x60
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ subs r0, 0x1A
+ strh r0, [r5, 0x32]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ movs r0, 0x32
+ ldrsh r2, [r5, r0]
+ adds r0, r6, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _0815B424
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+_0815B424:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x60
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x30
+ strh r0, [r5, 0x32]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ movs r0, 0x32
+ ldrsh r2, [r5, r0]
+ adds r0, r6, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bne _0815B496
+ movs r0, 0
+ strh r0, [r5, 0x34]
+ ldr r1, =gSprites
+ lsls r0, r6, 4
+ adds r0, r6
+ 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 sub_80A7344
+_0815B46C:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _0815B496
+ .pool
+_0815B478:
+ ldrh r0, [r5, 0x26]
+ subs r0, 0x6
+ strh r0, [r5, 0x26]
+ movs r1, 0x22
+ ldrsh r0, [r5, r1]
+ movs r2, 0x26
+ ldrsh r1, [r5, r2]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _0815B496
+ adds r0, r5, 0
+ bl move_anim_8072740
+_0815B496:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815B394
+
+ thumb_func_start sub_815B49C
+sub_815B49C: @ 815B49C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815B4BC
+ ldr r0, =0x0000fff0
+ b _0815B4C0
+ .pool
+_0815B4BC:
+ movs r0, 0x80
+ lsls r0, 1
+_0815B4C0:
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0x22]
+ ldr r0, =sub_815B4D4
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815B49C
+
+ thumb_func_start sub_815B4D4
+sub_815B4D4: @ 815B4D4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x48
+ strh r0, [r4, 0x2E]
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815B4F8
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 20
+ b _0815B500
+ .pool
+_0815B4F8:
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 20
+ negs r0, r0
+_0815B500:
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x10
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r5, r0, r1
+ strh r5, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _0815B54C
+ ldr r0, =gUnknown_085CE3A0
+ ldrh r1, [r4, 0x24]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r2, [r4, 0x22]
+ adds r2, r5
+ lsls r2, 16
+ asrs r2, 16
+ adds r3, r4, 0
+ adds r3, 0x43
+ ldrb r3, [r3]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSpriteAndAnimate
+_0815B54C:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ adds r0, 0x20
+ movs r1, 0x98
+ lsls r1, 1
+ cmp r0, r1
+ bls _0815B566
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0815B566:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815B4D4
+
+ thumb_func_start sub_815B570
+sub_815B570: @ 815B570
+ push {r4,lr}
+ adds r4, r0, 0
+ bl Random2
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0815B58A
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x4
+ b _0815B592
+_0815B58A:
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x5
+_0815B592:
+ ldr r3, =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ bl Random2
+ movs r1, 0x7
+ ands r0, r1
+ adds r1, r0, 0
+ cmp r1, 0x3
+ ble _0815B5B4
+ negs r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+_0815B5B4:
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, =sub_815B5D0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815B570
+
+ thumb_func_start sub_815B5D0
+sub_815B5D0: @ 815B5D0
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ bgt _0815B612
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _0815B646
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ movs r0, 0
+ b _0815B644
+_0815B612:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x2
+ bne _0815B628
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0815B628:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x3
+ bne _0815B640
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, =0x0000ffff
+ strh r0, [r3, 0x30]
+_0815B640:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+_0815B644:
+ strh r0, [r3, 0x30]
+_0815B646:
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x3C
+ ble _0815B654
+ adds r0, r3, 0
+ bl DestroySprite
+_0815B654:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815B5D0
+
+ thumb_func_start sub_815B65C
+sub_815B65C: @ 815B65C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0815B69C
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =gUnknown_085CE3B8
+ adds r0, r4, 0
+ bl sub_80A7CFC
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0815B6AE
+ .pool
+_0815B69C:
+ adds r0, r4, 0
+ bl sub_80A7D34
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815B6AE
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0815B6AE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815B65C
+
+ thumb_func_start sub_815B6B4
+sub_815B6B4: @ 815B6B4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0815B6F4
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =gUnknown_085CE3E0
+ adds r0, r4, 0
+ bl sub_80A7CFC
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0815B706
+ .pool
+_0815B6F4:
+ adds r0, r4, 0
+ bl sub_80A7D34
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815B706
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0815B706:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815B6B4
+
+ thumb_func_start sub_815B70C
+sub_815B70C: @ 815B70C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0815B71E
+ cmp r0, 0x1
+ beq _0815B748
+ b _0815B770
+_0815B71E:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80A69CC
+ movs r0, 0x90
+ lsls r0, 4
+ strh r0, [r4, 0x30]
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0815B770
+ .pool
+_0815B748:
+ ldrh r2, [r4, 0x30]
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x26]
+ subs r0, r1
+ strh r0, [r4, 0x26]
+ subs r2, 0x60
+ strh r2, [r4, 0x30]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ ble _0815B770
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0815B770:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815B70C
+
+ thumb_func_start sub_815B778
+sub_815B778: @ 815B778
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0815B7B8
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =gUnknown_085CE430
+ adds r0, r4, 0
+ bl sub_80A7CFC
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0815B7CA
+ .pool
+_0815B7B8:
+ adds r0, r4, 0
+ bl sub_80A7D34
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815B7CA
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0815B7CA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815B778
+
+ thumb_func_start sub_815B7D0
+sub_815B7D0: @ 815B7D0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r3, r1, 0
+ cmp r0, 0x4
+ bls _0815B7F6
+ b _0815BAFC
+_0815B7F6:
+ lsls r0, 2
+ ldr r1, =_0815B808
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0815B808:
+ .4byte _0815B81C
+ .4byte _0815B86C
+ .4byte _0815B8A8
+ .4byte _0815BA44
+ .4byte _0815BA82
+_0815B81C:
+ movs r0, 0x4C
+ movs r1, 0
+ bl SetGpuReg
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl GetBankIdentity_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0815B844
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0x1
+ bl lcd_bg_operations
+ b _0815B84E
+ .pool
+_0815B844:
+ movs r0, 0x2
+ movs r1, 0x2
+ movs r2, 0x1
+ bl lcd_bg_operations
+_0815B84E:
+ ldr r0, =gTasks
+ mov r6, r8
+ lsls r1, r6, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r1, 0x1C]
+ b _0815BA26
+ .pool
+_0815B86C:
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r3
+ ldrh r0, [r4, 0xC]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bgt _0815B886
+ b _0815BAFC
+_0815B886:
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ ldrh r5, [r4, 0xA]
+ lsls r1, r5, 4
+ orrs r1, r5
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x4C
+ bl SetGpuReg
+ cmp r5, 0xF
+ beq _0815B8A6
+ b _0815BAFC
+_0815B8A6:
+ b _0815BA7A
+_0815B8A8:
+ ldr r5, =gAnimationBankAttacker
+ ldrb r0, [r5]
+ ldr r1, =gAnimationBankTarget
+ ldrb r1, [r1]
+ mov r2, r8
+ lsls r4, r2, 2
+ adds r2, r4, r2
+ lsls r2, 3
+ adds r2, r3
+ ldrb r2, [r2, 0x1C]
+ bl sub_805E448
+ ldrb r1, [r5]
+ mov r0, sp
+ bl sub_80A6BFC
+ bl IsContest
+ lsls r0, 24
+ mov r9, r4
+ cmp r0, 0
+ beq _0815B8E0
+ movs r1, 0
+ b _0815B8EA
+ .pool
+_0815B8E0:
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r1, r0, 24
+_0815B8EA:
+ ldr r0, =gUnknown_020244D4
+ ldr r2, [r0]
+ lsls r0, r1, 2
+ adds r2, 0x4
+ adds r2, r0
+ ldr r1, =gUnknown_020244E4
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r1, 11
+ ldr r0, [r2]
+ adds r0, r1
+ ldr r1, [sp]
+ ldr r2, =0x04000200
+ bl CpuSet
+ ldr r1, [sp]
+ movs r2, 0x80
+ lsls r2, 4
+ mov r0, sp
+ ldrh r3, [r0, 0xA]
+ movs r0, 0x1
+ bl LoadBgTiles
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815BA1C
+ ldr r5, =gUnknown_02039F34
+ ldr r0, [r5]
+ ldr r0, [r0, 0x18]
+ ldrh r0, [r0]
+ bl sub_80DB2A8
+ adds r4, r0, 0
+ ldr r0, [r5]
+ ldr r0, [r0, 0x18]
+ ldrh r0, [r0, 0x2]
+ bl sub_80DB2A8
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _0815B99C
+ ldr r6, [sp, 0x4]
+ movs r5, 0
+ movs r0, 0x7
+ mov r12, r0
+ movs r7, 0
+_0815B950:
+ movs r4, 0
+ adds r3, r7, r6
+ mov r1, r12
+ lsls r0, r1, 1
+ adds r2, r0, r6
+_0815B95A:
+ 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 _0815B95A
+ movs r2, 0x20
+ add r12, r2
+ adds r7, 0x40
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _0815B950
+ movs r5, 0
+ movs r0, 0x80
+ lsls r0, 3
+ adds r3, r0, 0
+_0815B980:
+ adds r2, r5, 0x1
+ lsls r0, r5, 6
+ adds r1, r0, r6
+ movs r4, 0x7
+_0815B988:
+ ldrh r0, [r1]
+ eors r0, r3
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0815B988
+ adds r5, r2, 0
+ cmp r5, 0x7
+ ble _0815B980
+_0815B99C:
+ ldr r0, =gUnknown_02039F34
+ ldr r0, [r0]
+ ldr r0, [r0, 0x18]
+ ldrh r0, [r0, 0x2]
+ bl sub_80DB2A8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815B9EC
+ ldr r3, =gSprites
+ ldr r4, =gBankSpriteIds
+ ldr r2, =gAnimationBankAttacker
+ ldrb r0, [r2]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x10
+ adds r0, r1
+ ldr r1, =gUnknown_082FF6C0
+ b _0815BA06
+ .pool
+_0815B9EC:
+ ldr r3, =gSprites
+ ldr r4, =gBankSpriteIds
+ ldr r2, =gAnimationBankAttacker
+ ldrb r0, [r2]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x10
+ adds r0, r1
+ ldr r1, =gUnknown_082FF694
+_0815BA06:
+ str r1, [r0]
+ ldrb r0, [r2]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ bl StartSpriteAffineAnim
+_0815BA1C:
+ ldr r0, =gTasks
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+_0815BA26:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0815BAFC
+ .pool
+_0815BA44:
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r3
+ ldrh r0, [r4, 0xC]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0815BAFC
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ ldrh r5, [r4, 0xA]
+ lsls r1, r5, 4
+ orrs r1, r5
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x4C
+ bl SetGpuReg
+ cmp r5, 0
+ bne _0815BAFC
+_0815BA7A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0815BAFC
+_0815BA82:
+ movs r0, 0x4C
+ movs r1, 0
+ bl SetGpuReg
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl GetBankIdentity_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0815BAAC
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0
+ bl lcd_bg_operations
+ b _0815BAB6
+ .pool
+_0815BAAC:
+ movs r0, 0x2
+ movs r1, 0x2
+ movs r2, 0
+ bl lcd_bg_operations
+_0815BAB6:
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815BAF6
+ ldr r4, =gAnimationBankAttacker
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0815BAF6
+ ldr r0, =gTasks
+ mov r2, r8
+ lsls r1, r2, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r6, 0x1C
+ ldrsh r0, [r1, r6]
+ cmp r0, 0
+ bne _0815BAF6
+ ldrb r0, [r4]
+ ldr r1, =gUnknown_020244D0
+ ldr r1, [r1]
+ ldr r2, [r1]
+ lsls r1, r0, 2
+ adds r1, r2
+ ldrh r1, [r1, 0x2]
+ bl sub_805EE54
+_0815BAF6:
+ mov r0, r8
+ bl move_anim_task_del
+_0815BAFC:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815B7D0
+
+ thumb_func_start c3_80DFBE4
+c3_80DFBE4: @ 815BB18
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, =gBattleAnimArgs
+ ldr r3, =gSprites
+ ldr r2, =gBankSpriteIds
+ ldr r1, =gAnimationBankAttacker
+ ldrb r1, [r1]
+ adds r1, r2
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ adds r1, 0x3E
+ ldrb r1, [r1]
+ lsls r1, 29
+ lsrs r1, 31
+ strh r1, [r4, 0xE]
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end c3_80DFBE4
+
+ thumb_func_start sub_815BB58
+sub_815BB58: @ 815BB58
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ ldr r1, =gAnimationBankTarget
+ ldrb r1, [r1]
+ movs r2, 0x1
+ bl sub_805E448
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815BB58
+
+ thumb_func_start sub_815BB84
+sub_815BB84: @ 815BB84
+ push {r4,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _0815BBA2
+ b _0815BDF2
+_0815BBA2:
+ lsls r0, 2
+ ldr r1, =_0815BBB4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0815BBB4:
+ .4byte _0815BBC8
+ .4byte _0815BCB8
+ .4byte _0815BD08
+ .4byte _0815BD72
+ .4byte _0815BDA6
+_0815BBC8:
+ ldr r1, =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl lcd_bg_operations
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl lcd_bg_operations
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815BC02
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl lcd_bg_operations
+_0815BC02:
+ mov r0, sp
+ bl sub_80A6B30
+ ldr r1, =gUnknown_08C2A6EC
+ mov r0, sp
+ movs r2, 0
+ bl sub_80A6D60
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815BC34
+ ldr r1, =gUnknown_02022E18
+ ldr r3, =0x0000ffc8
+ b _0815BC5C
+ .pool
+_0815BC34:
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815BC58
+ ldr r1, =gUnknown_02022E18
+ ldr r2, =0x0000ff79
+ adds r0, r2, 0
+ b _0815BC5E
+ .pool
+_0815BC58:
+ ldr r1, =gUnknown_02022E18
+ ldr r3, =0x0000fff6
+_0815BC5C:
+ adds r0, r3, 0
+_0815BC5E:
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E1A
+ movs r0, 0
+ strh r0, [r1]
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, =gUnknown_08C2A634
+ mov r2, sp
+ ldrh r2, [r2, 0xA]
+ bl sub_80A6CC0
+ ldr r0, =gUnknown_08C2A6D4
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =gUnknown_02022E18
+ ldrh r0, [r0]
+ strh r0, [r1, 0x1C]
+ ldr r0, =gUnknown_02022E1A
+ ldrh r0, [r0]
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ b _0815BD8E
+ .pool
+_0815BCB8:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0x10]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _0815BCCE
+ b _0815BDF2
+_0815BCCE:
+ movs r0, 0
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _0815BCE4
+ movs r0, 0xC
+ strh r0, [r4, 0xA]
+_0815BCE4:
+ ldrh r0, [r4, 0xA]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xC
+ bne _0815BDF2
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0815BDF2
+_0815BD08:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0815BD20
+ movs r0, 0
+ strh r0, [r4, 0xA]
+_0815BD20:
+ ldrh r0, [r4, 0xA]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0815BDF2
+ ldr r2, =gUnknown_02022E18
+ ldr r1, =gUnknown_085CE460
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r1, [r4, 0x1C]
+ adds r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _0815BD6C
+ strh r0, [r4, 0x8]
+ b _0815BDF2
+ .pool
+_0815BD6C:
+ movs r0, 0x3
+ strh r0, [r4, 0x8]
+ b _0815BDF2
+_0815BD72:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0xE]
+ adds r0, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _0815BDF2
+ movs r0, 0
+ strh r0, [r1, 0xE]
+ movs r0, 0x1
+_0815BD8E:
+ strh r0, [r1, 0x8]
+ movs r0, 0x40
+ negs r0, r0
+ bl BattleAnimGetPanControl
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xE4
+ bl PlaySE12WithPanning
+ b _0815BDF2
+_0815BDA6:
+ mov r0, sp
+ bl sub_80A6B30
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ bl sub_80A6C68
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815BDC8
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl lcd_bg_operations
+_0815BDC8:
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl lcd_bg_operations
+ ldr r0, =gUnknown_02022E18
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gUnknown_02022E1A
+ strh r1, [r0]
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r4, 0
+ bl move_anim_task_del
+_0815BDF2:
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815BB84
+
+ thumb_func_start sub_815BE04
+sub_815BE04: @ 815BE04
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r7, r0, 0
+ bl Random2
+ lsls r0, 16
+ movs r1, 0xFC
+ lsls r1, 14
+ ands r1, r0
+ lsrs r5, r1, 16
+ adds r1, r5, 0
+ cmp r1, 0x1F
+ ble _0815BE2E
+ movs r0, 0x20
+ subs r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_0815BE2E:
+ ldr r4, =gAnimationBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r5
+ strh r0, [r7, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r7, 0x22]
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r7, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r7, 0x32]
+ ldr r4, =gUnknown_085CE48C
+ movs r0, 0x20
+ ldrsh r1, [r7, r0]
+ movs r0, 0x22
+ ldrsh r2, [r7, r0]
+ adds r5, r7, 0
+ adds r5, 0x43
+ ldrb r3, [r5]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ bl CreateSprite
+ mov r9, r0
+ mov r1, r9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ movs r0, 0x20
+ ldrsh r1, [r7, r0]
+ movs r0, 0x22
+ ldrsh r2, [r7, r0]
+ ldrb r3, [r5]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ bl CreateSprite
+ mov r8, r0
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ mov r0, r9
+ lsls r2, r0, 4
+ add r2, r9
+ lsls r2, 2
+ ldr r1, =gSprites
+ mov r10, r1
+ adds r5, r2, r1
+ adds r0, r5, 0
+ movs r1, 0x1
+ str r2, [sp]
+ bl StartSpriteAnim
+ mov r0, r8
+ lsls r6, r0, 4
+ add r6, r8
+ lsls r6, 2
+ mov r1, r10
+ adds r4, r6, r1
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r1]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x32]
+ ldr r0, =0x0000ffff
+ strh r0, [r5, 0x3C]
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r4, 0x3C]
+ adds r5, 0x3E
+ ldrb r0, [r5]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r5]
+ adds r4, 0x3E
+ ldrb r0, [r4]
+ orrs r0, r1
+ strb r0, [r4]
+ movs r0, 0x1C
+ add r10, r0
+ ldr r2, [sp]
+ add r2, r10
+ ldr r0, =sub_815C050
+ str r0, [r2]
+ add r6, r10
+ str r0, [r6]
+ mov r1, r9
+ strh r1, [r7, 0x3A]
+ mov r0, r8
+ strh r0, [r7, 0x3C]
+ ldr r0, =sub_815BF44
+ str r0, [r7, 0x1C]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815BE04
+
+ thumb_func_start sub_815BF44
+sub_815BF44: @ 815BF44
+ push {lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x32]
+ ldrh r0, [r3, 0x34]
+ adds r2, r0
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r1, [r3, 0x26]
+ subs r1, r0
+ strh r1, [r3, 0x26]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r3, 0x34]
+ movs r2, 0x36
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bne _0815BF92
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r1, 0x8
+ negs r1, r1
+ cmp r0, r1
+ bge _0815BF92
+ ldr r2, =gSprites
+ movs r0, 0x3A
+ ldrsh r1, [r3, 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]
+ ldrh r0, [r3, 0x36]
+ adds r0, 0x1
+ strh r0, [r3, 0x36]
+_0815BF92:
+ movs r1, 0x36
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ bne _0815BFC6
+ movs r2, 0x26
+ ldrsh r1, [r3, r2]
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _0815BFC6
+ ldr r2, =gSprites
+ movs r0, 0x3C
+ ldrsh r1, [r3, 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]
+ ldrh r0, [r3, 0x36]
+ adds r0, 0x1
+ strh r0, [r3, 0x36]
+_0815BFC6:
+ ldrh r0, [r3, 0x30]
+ subs r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0815BFE8
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, =sub_815BFF4
+ str r0, [r3, 0x1C]
+_0815BFE8:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815BF44
+
+ thumb_func_start sub_815BFF4
+sub_815BFF4: @ 815BFF4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, =gSprites
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r3, r0, 2
+ adds r6, r5, 0
+ adds r6, 0x1C
+ adds r0, r3, r6
+ ldr r2, [r0]
+ ldr r0, =SpriteCallbackDummy
+ cmp r2, r0
+ bne _0815C040
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldr r0, [r1]
+ cmp r0, r2
+ bne _0815C040
+ adds r0, r3, r5
+ bl DestroySprite
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0815C040:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815BFF4
+
+ thumb_func_start sub_815C050
+sub_815C050: @ 815C050
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _0815C09C
+ ldrh r2, [r3, 0x32]
+ ldrh r1, [r3, 0x34]
+ adds r2, r1
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r3, 0x26]
+ subs r0, r1
+ strh r0, [r3, 0x26]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r3, 0x34]
+ ldrh r0, [r3, 0x30]
+ subs r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0815C09C
+ mov r1, r12
+ ldrb r0, [r1]
+ movs r1, 0x4
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r3, 0x1C]
+_0815C09C:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815C050
+
+ thumb_func_start sub_815C0A4
+sub_815C0A4: @ 815C0A4
+ push {r4-r6,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x5
+ bls _0815C0C2
+ b _0815C396
+_0815C0C2:
+ lsls r0, 2
+ ldr r1, =_0815C0D4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0815C0D4:
+ .4byte _0815C0EC
+ .4byte _0815C224
+ .4byte _0815C2AC
+ .4byte _0815C2E2
+ .4byte _0815C310
+ .4byte _0815C34A
+_0815C0EC:
+ ldr r1, =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r1, =0x00000d03
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl lcd_bg_operations
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl lcd_bg_operations
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815C124
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl lcd_bg_operations
+_0815C124:
+ mov r0, sp
+ bl sub_80A6B30
+ ldr r1, =gUnknown_08C2A6EC
+ mov r0, sp
+ movs r2, 0
+ bl sub_80A6D60
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815C15C
+ ldr r1, =gUnknown_02022E18
+ ldr r3, =0x0000ffc8
+ adds r0, r3, 0
+ b _0815C1CA
+ .pool
+_0815C15C:
+ ldr r0, =gAnimationBankTarget
+ ldrb r0, [r0]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0815C1B4
+ cmp r4, 0x1
+ bne _0815C180
+ ldr r1, =gUnknown_02022E18
+ ldr r2, =0x0000ff65
+ adds r0, r2, 0
+ strh r0, [r1]
+_0815C180:
+ cmp r4, 0x3
+ bne _0815C18C
+ ldr r1, =gUnknown_02022E18
+ ldr r3, =0x0000ff8d
+ adds r0, r3, 0
+ strh r0, [r1]
+_0815C18C:
+ cmp r4, 0
+ bne _0815C196
+ ldr r1, =gUnknown_02022E18
+ movs r0, 0xE
+ strh r0, [r1]
+_0815C196:
+ cmp r4, 0x2
+ bne _0815C1CC
+ ldr r1, =gUnknown_02022E18
+ ldr r2, =0x0000ffec
+ b _0815C1C8
+ .pool
+_0815C1B4:
+ cmp r4, 0x1
+ bne _0815C1C0
+ ldr r1, =gUnknown_02022E18
+ ldr r3, =0x0000ff79
+ adds r0, r3, 0
+ strh r0, [r1]
+_0815C1C0:
+ cmp r4, 0
+ bne _0815C1CC
+ ldr r1, =gUnknown_02022E18
+ ldr r2, =0x0000fff6
+_0815C1C8:
+ adds r0, r2, 0
+_0815C1CA:
+ strh r0, [r1]
+_0815C1CC:
+ ldr r1, =gUnknown_02022E1A
+ movs r0, 0
+ strh r0, [r1]
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, =gUnknown_08C2A634
+ mov r2, sp
+ ldrh r2, [r2, 0xA]
+ bl sub_80A6CC0
+ ldr r0, =gUnknown_08C2A6D4
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r0, =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =gUnknown_02022E18
+ ldrh r0, [r0]
+ strh r0, [r1, 0x1C]
+ ldr r0, =gUnknown_02022E1A
+ ldrh r0, [r0]
+ strh r0, [r1, 0x1E]
+ b _0815C2A4
+ .pool
+_0815C224:
+ ldr r1, =gTasks
+ lsls r4, r6, 2
+ adds r0, r4, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r0, 0
+ strh r0, [r5, 0xE]
+ ldr r0, =gAnimationBankTarget
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0815C268
+ ldr r2, =gUnknown_02022E18
+ ldr r1, =gUnknown_085CE4A4
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r5, [r5, 0x1C]
+ adds r0, r5
+ b _0815C27A
+ .pool
+_0815C268:
+ ldr r2, =gUnknown_02022E18
+ ldr r1, =gUnknown_085CE4A4
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ adds r0, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ ldrh r0, [r5, 0x1C]
+ subs r0, r1
+_0815C27A:
+ strh r0, [r2]
+ ldr r0, =gTasks
+ adds r1, r4, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ adds r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _0815C2A4
+ strh r0, [r1, 0x8]
+ b _0815C396
+ .pool
+_0815C2A4:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0815C396
+_0815C2AC:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _0815C2C6
+ movs r0, 0x5
+ strh r0, [r4, 0xA]
+_0815C2C6:
+ ldrh r1, [r4, 0xA]
+ lsls r1, 8
+ movs r0, 0x3
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bne _0815C396
+ b _0815C302
+_0815C2E2:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r1, [r4, 0xE]
+ adds r1, 0x1
+ strh r1, [r4, 0xE]
+ lsls r1, 16
+ asrs r1, 16
+ ldr r2, =gUnknown_085CE4A8
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r1, r0
+ ble _0815C396
+_0815C302:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0815C396
+ .pool
+_0815C310:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ ble _0815C32A
+ movs r0, 0xD
+ strh r0, [r4, 0xA]
+_0815C32A:
+ ldrh r1, [r4, 0xA]
+ lsls r1, 8
+ movs r0, 0x3
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xD
+ bne _0815C396
+ movs r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0815C396
+_0815C34A:
+ mov r0, sp
+ bl sub_80A6B30
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ bl sub_80A6C68
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815C36C
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl lcd_bg_operations
+_0815C36C:
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl lcd_bg_operations
+ ldr r0, =gUnknown_02022E18
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gUnknown_02022E1A
+ strh r1, [r0]
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r6, 0
+ bl move_anim_task_del
+_0815C396:
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815C0A4
+
+ thumb_func_start sub_815C3A8
+sub_815C3A8: @ 815C3A8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0815C3E8
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =gUnknown_085CE4B0
+ adds r0, r4, 0
+ bl sub_80A7CFC
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0815C3FA
+ .pool
+_0815C3E8:
+ adds r0, r4, 0
+ bl sub_80A7D34
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815C3FA
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0815C3FA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815C3A8
+
+ thumb_func_start sub_815C400
+sub_815C400: @ 815C400
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _0815C41E
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80A69CC
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0815C472
+_0815C41E:
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ cmp r1, 0x14
+ ble _0815C472
+ ldrh r0, [r4, 0x30]
+ adds r0, 0xA0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x80
+ strh r0, [r4, 0x32]
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815C450
+ ldrh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ b _0815C456
+ .pool
+_0815C450:
+ ldrh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+_0815C456:
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ ble _0815C472
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0815C472:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815C400
+
+ thumb_func_start sub_815C478
+sub_815C478: @ 815C478
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ ldr r5, =gBattleAnimArgs
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0815C4A4
+ adds r0, r2, 0
+ bl move_anim_task_del
+ b _0815C538
+ .pool
+_0815C4A4:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bge _0815C4B0
+ movs r0, 0
+ strh r0, [r5, 0x4]
+_0815C4B0:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x2
+ ble _0815C4BC
+ movs r0, 0x2
+ strh r0, [r5, 0x4]
+_0815C4BC:
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ movs r0, 0x4
+ ldrsh r1, [r5, r0]
+ lsls r1, 1
+ movs r0, 0x8
+ subs r0, r1
+ strh r0, [r4, 0xE]
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ lsls r0, 7
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ ldrh r0, [r5, 0x4]
+ adds r0, 0x2
+ strh r0, [r4, 0x12]
+ ldrh r0, [r5, 0x2]
+ subs r0, 0x1
+ strh r0, [r4, 0x14]
+ ldrb r0, [r5]
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0815C508
+ ldr r0, =gAnimationBankAttacker
+ b _0815C50A
+ .pool
+_0815C508:
+ ldr r0, =gAnimationBankTarget
+_0815C50A:
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0815C528
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0x10]
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0x12]
+_0815C528:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_80A7270
+ ldr r0, =sub_815C548
+ str r0, [r4]
+_0815C538:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815C478
+
+ thumb_func_start sub_815C548
+sub_815C548: @ 815C548
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r6, [r4, r0]
+ cmp r6, 0x1
+ beq _0815C5D0
+ cmp r6, 0x1
+ bgt _0815C570
+ cmp r6, 0
+ beq _0815C57C
+ b _0815C6A8
+ .pool
+_0815C570:
+ cmp r6, 0x2
+ beq _0815C628
+ cmp r6, 0x3
+ bne _0815C57A
+ b _0815C698
+_0815C57A:
+ b _0815C6A8
+_0815C57C:
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x12]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ strh r1, [r0, 0x24]
+ ldrh r0, [r4, 0xC]
+ ldrh r1, [r4, 0x10]
+ subs r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0xC]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A73A0
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _0815C6A8
+ strh r6, [r4, 0xA]
+ b _0815C690
+ .pool
+_0815C5D0:
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x24]
+ ldrh r2, [r4, 0x12]
+ subs r1, r2
+ strh r1, [r0, 0x24]
+ ldrh r0, [r4, 0x10]
+ ldrh r1, [r4, 0xC]
+ adds r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0xC]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A73A0
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ cmp r1, r0
+ blt _0815C6A8
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _0815C690
+ .pool
+_0815C628:
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x12]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ movs r5, 0
+ strh r1, [r0, 0x24]
+ ldrh r0, [r4, 0xC]
+ ldrh r1, [r4, 0x10]
+ subs r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0xC]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A73A0
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _0815C6A8
+ ldrh r1, [r4, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0815C690
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x14]
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0x8]
+ b _0815C6A8
+ .pool
+_0815C690:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0815C6A8
+_0815C698:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A7344
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0815C6A8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815C548
+
+ thumb_func_start sub_815C6B0
+sub_815C6B0: @ 815C6B0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0815C6D4
+ strh r0, [r4, 0x20]
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ b _0815C6DE
+ .pool
+_0815C6D4:
+ movs r0, 0xF0
+ strh r0, [r4, 0x20]
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ subs r0, 0x1E
+_0815C6DE:
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x32]
+ ldrb r1, [r1, 0x2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, =sub_815C700
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815C6B0
+
+ thumb_func_start sub_815C700
+sub_815C700: @ 815C700
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x3
+ strh r0, [r4, 0x2E]
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815C744
+ ldrh r1, [r4, 0x20]
+ adds r1, 0x5
+ strh r1, [r4, 0x20]
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x1
+ strh r0, [r4, 0x22]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0xF0
+ ble _0815C732
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0815C732:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0xFF
+ ands r0, r1
+ movs r1, 0x10
+ bl Sin
+ b _0815C768
+ .pool
+_0815C744:
+ ldrh r1, [r4, 0x20]
+ subs r1, 0x5
+ strh r1, [r4, 0x20]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ lsls r1, 16
+ cmp r1, 0
+ bge _0815C75C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0815C75C:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0xFF
+ ands r0, r1
+ movs r1, 0x10
+ bl Cos
+_0815C768:
+ strh r0, [r4, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815C700
+
+ thumb_func_start sub_815C770
+sub_815C770: @ 815C770
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ movs r0, 0x20
+ strh r0, [r4, 0x20]
+ movs r0, 0x40
+ strh r0, [r4, 0x22]
+ movs r0, 0x80
+ lsls r0, 4
+ strh r0, [r4, 0x24]
+ ldr r0, =gBattleAnimArgs
+ ldrb r0, [r0]
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ movs r1, 0
+ bl sub_80A7270
+ ldr r0, =sub_815C7C4
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815C770
+
+ thumb_func_start sub_815C7C4
+sub_815C7C4: @ 815C7C4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r7, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ mov r8, r0
+ cmp r0, 0x1
+ beq _0815C860
+ cmp r0, 0x1
+ bgt _0815C7F4
+ cmp r0, 0
+ beq _0815C7FC
+ b _0815C8DA
+ .pool
+_0815C7F4:
+ mov r2, r8
+ cmp r2, 0x2
+ beq _0815C8C8
+ b _0815C8DA
+_0815C7FC:
+ movs r3, 0x80
+ lsls r3, 2
+ adds r0, r3, 0
+ ldrh r1, [r7, 0xC]
+ adds r2, r0, r1
+ strh r2, [r7, 0xC]
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r3, [r7, 0x24]
+ mov r8, r3
+ movs r3, 0x24
+ ldrsh r1, [r7, r3]
+ cmp r0, r1
+ blt _0815C8DA
+ mov r0, r8
+ subs r5, r0, r2
+ lsls r5, 16
+ asrs r5, 16
+ adds r6, r1, 0
+ lsls r6, 1
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl __divsi3
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 16
+ asrs r4, 16
+ movs r1, 0x1
+ ands r4, r1
+ cmp r4, 0
+ bne _0815C854
+ lsls r0, 16
+ asrs r0, 16
+ mov r2, r8
+ subs r0, r2, r0
+ b _0815C8B2
+_0815C854:
+ lsls r0, 16
+ asrs r0, 16
+ mov r3, r8
+ subs r0, r3
+ strh r0, [r7, 0xC]
+ b _0815C8DA
+_0815C860:
+ ldr r1, =0xfffffe00
+ adds r0, r1, 0
+ ldrh r2, [r7, 0xC]
+ adds r1, r0, r2
+ strh r1, [r7, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r7, r3]
+ movs r2, 0x24
+ ldrsh r6, [r7, r2]
+ cmn r0, r6
+ bgt _0815C8DA
+ ldrh r3, [r7, 0x24]
+ mov r9, r3
+ mov r0, r9
+ subs r4, r0, r1
+ lsls r4, 16
+ asrs r4, 16
+ lsls r6, 1
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl __divsi3
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ mov r1, r8
+ ands r1, r5
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ bne _0815C8BC
+ lsls r0, r2, 16
+ asrs r0, 16
+ mov r2, r9
+ subs r0, r2
+_0815C8B2:
+ strh r0, [r7, 0xC]
+ strh r1, [r7, 0x8]
+ b _0815C8DA
+ .pool
+_0815C8BC:
+ lsls r0, r2, 16
+ asrs r0, 16
+ mov r3, r9
+ subs r0, r3, r0
+ strh r0, [r7, 0xC]
+ b _0815C8DA
+_0815C8C8:
+ ldrh r0, [r7, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A7344
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _0815C950
+_0815C8DA:
+ ldrh r0, [r7, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r7, 0xC]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r7, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A73A0
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ movs r2, 0xC
+ ldrsh r0, [r7, r2]
+ cmp r0, 0
+ bge _0815C90E
+ adds r0, 0x3F
+_0815C90E:
+ asrs r0, 6
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrh r0, [r7, 0xA]
+ adds r0, 0x1
+ strh r0, [r7, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _0815C950
+ ldrh r1, [r7, 0x20]
+ movs r3, 0x20
+ ldrsh r0, [r7, r3]
+ cmp r0, 0
+ beq _0815C94C
+ subs r0, r1, 0x1
+ strh r0, [r7, 0x20]
+ ldrh r0, [r7, 0x24]
+ ldrh r1, [r7, 0x22]
+ subs r0, r1
+ strh r0, [r7, 0x24]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bgt _0815C950
+ movs r0, 0x10
+ strh r0, [r7, 0x24]
+ b _0815C950
+ .pool
+_0815C94C:
+ movs r0, 0x2
+ strh r0, [r7, 0x8]
+_0815C950:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815C7C4
+
+ thumb_func_start sub_815C95C
+sub_815C95C: @ 815C95C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0815C9BC
+ ldr r6, =gBattleAnimArgs
+ movs r2, 0x4
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ bne _0815C990
+ ldr r4, =gAnimationBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+_0815C990:
+ ldrh r0, [r6]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrh r1, [r6, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r1, r2
+ strh r0, [r5, 0x22]
+ movs r0, 0x80
+ strh r0, [r5, 0x30]
+ movs r0, 0xC0
+ lsls r0, 2
+ strh r0, [r5, 0x32]
+ strh r1, [r5, 0x34]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _0815CA1A
+ .pool
+_0815C9BC:
+ ldrh r1, [r5, 0x30]
+ lsls r0, r1, 16
+ asrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrh r0, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r2, [r5, 0x26]
+ adds r0, r2
+ strh r0, [r5, 0x26]
+ movs r2, 0x36
+ ldrsh r0, [r5, r2]
+ adds r4, r1, 0
+ cmp r0, 0
+ bne _0815C9FA
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ movs r2, 0x34
+ ldrsh r0, [r5, r2]
+ cmn r1, r0
+ ble _0815C9FA
+ movs r0, 0x1
+ strh r0, [r5, 0x36]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 1
+ strh r0, [r5, 0x32]
+_0815C9FA:
+ adds r0, r4, 0
+ adds r0, 0xC0
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x80
+ strh r0, [r5, 0x32]
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0815CA1A
+ adds r0, r5, 0
+ bl move_anim_8072740
+_0815CA1A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815C95C
+
+ thumb_func_start sub_815CA20
+sub_815CA20: @ 815CA20
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r7, r0, 0
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _0815CB2C
+ ldr r0, =gBattleAnimArgs
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ mov r8, r0
+ cmp r1, 0
+ bne _0815CA5C
+ ldr r0, =gAnimationBankAttacker
+ b _0815CA5E
+ .pool
+_0815CA5C:
+ ldr r0, =gAnimationBankTarget
+_0815CA5E:
+ ldrb r0, [r0]
+ strh r0, [r2, 0x1E]
+ mov r1, r8
+ ldrb r0, [r1]
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =gTasks
+ lsls r4, r7, 2
+ adds r0, r4, r7
+ lsls r0, 3
+ adds r6, r0, r1
+ strh r5, [r6, 0x1C]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80A7270
+ mov r2, r8
+ movs r3, 0x2
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x1
+ beq _0815CAC0
+ cmp r0, 0x1
+ bgt _0815CAA0
+ cmp r0, 0
+ beq _0815CAA8
+ lsls r2, r5, 4
+ b _0815CB08
+ .pool
+_0815CAA0:
+ cmp r0, 0x2
+ beq _0815CACA
+ lsls r2, r5, 4
+ b _0815CB08
+_0815CAA8:
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r0, r5, 0
+ movs r1, 0xE0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ adds r0, r5, 0
+ bl sub_80A7E6C
+ lsls r2, r5, 4
+ b _0815CB08
+_0815CAC0:
+ movs r2, 0x98
+ lsls r2, 1
+ movs r3, 0xF0
+ lsls r3, 4
+ b _0815CAD2
+_0815CACA:
+ movs r2, 0x98
+ lsls r2, 1
+ movs r3, 0xF1
+ lsls r3, 8
+_0815CAD2:
+ adds r0, r5, 0
+ movs r1, 0xD0
+ bl obj_id_set_rotscale
+ adds r0, r5, 0
+ bl sub_80A7E6C
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815CAF8
+ ldrb r0, [r6, 0x1E]
+ bl GetBankSide
+ lsls r0, 24
+ lsls r2, r5, 4
+ cmp r0, 0
+ bne _0815CB08
+_0815CAF8:
+ ldr r0, =gSprites
+ lsls r2, r5, 4
+ adds r1, r2, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x10
+ strh r0, [r1, 0x26]
+_0815CB08:
+ ldr r1, =gSprites
+ adds r0, r2, r5
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x24]
+ ldr r0, =gTasks
+ adds r1, r4, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0815CB78
+ .pool
+_0815CB2C:
+ ldrb r5, [r2, 0x1C]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r2, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _0815CB50
+ strh r4, [r2, 0xC]
+ ldr r0, =gSprites
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x24]
+ negs r0, r0
+ strh r0, [r1, 0x24]
+_0815CB50:
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ bne _0815CB78
+ adds r0, r5, 0
+ bl sub_80A7344
+ ldr r1, =gSprites
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ strh r4, [r0, 0x24]
+ strh r4, [r0, 0x26]
+ adds r0, r7, 0
+ bl move_anim_task_del
+_0815CB78:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815CA20
+
+ thumb_func_start sub_815CB88
+sub_815CB88: @ 815CB88
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl Random2
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xC
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, r0
+ ldr r3, =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ bl Random2
+ ldr r5, =0x000001ff
+ ands r5, r0
+ bl Random2
+ movs r1, 0xFF
+ ands r1, r0
+ movs r0, 0x1
+ ands r0, r5
+ cmp r0, 0
+ beq _0815CBE0
+ movs r2, 0xBC
+ lsls r2, 3
+ adds r0, r5, r2
+ b _0815CBE8
+ .pool
+_0815CBE0:
+ movs r3, 0xBC
+ lsls r3, 3
+ adds r0, r3, 0
+ subs r0, r5
+_0815CBE8:
+ strh r0, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0815CBFA
+ movs r2, 0x90
+ lsls r2, 3
+ adds r0, r1, r2
+ b _0815CC02
+_0815CBFA:
+ movs r3, 0x90
+ lsls r3, 3
+ adds r0, r3, 0
+ subs r0, r1
+_0815CC02:
+ strh r0, [r4, 0x30]
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0815CC1C
+ ldr r0, =0x0000fff8
+ b _0815CC1E
+ .pool
+_0815CC1C:
+ movs r0, 0xF8
+_0815CC1E:
+ strh r0, [r4, 0x20]
+ movs r0, 0x68
+ strh r0, [r4, 0x22]
+ ldr r0, =sub_815CC34
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815CB88
+
+ thumb_func_start sub_815CC34
+sub_815CC34: @ 815CC34
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0815CC4C
+ ldrh r3, [r4, 0x2E]
+ lsls r0, r3, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ b _0815CC56
+_0815CC4C:
+ ldrh r3, [r4, 0x2E]
+ lsls r1, r3, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+_0815CC56:
+ strh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x30]
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x26]
+ subs r0, r1
+ strh r0, [r4, 0x26]
+ adds r0, r3, 0
+ subs r0, 0x16
+ strh r0, [r4, 0x2E]
+ adds r1, r2, 0
+ subs r1, 0x30
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0815CC7A
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+_0815CC7A:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _0815CC8E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0815CC8E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815CC34
+
+ thumb_func_start sub_815CC94
+sub_815CC94: @ 815CC94
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r1, =0x00001f3f
+ movs r0, 0x4A
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 8
+ movs r0, 0
+ bl SetGpuRegBits
+ ldr r0, =gUnknown_02022E24
+ movs r1, 0
+ strh r1, [r0]
+ ldr r4, =gUnknown_02022E26
+ strh r1, [r4]
+ movs r0, 0x40
+ movs r1, 0
+ bl SetGpuReg
+ ldrh r1, [r4]
+ movs r0, 0x44
+ bl SetGpuReg
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80A6980
+ ldrb r1, [r5, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r5, 0x1]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, =sub_815CD0C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815CC94
+
+ thumb_func_start sub_815CD0C
+sub_815CD0C: @ 815CD0C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0815CD4A
+ cmp r0, 0x1
+ bgt _0815CD22
+ cmp r0, 0
+ beq _0815CD2C
+ b _0815CDAA
+_0815CD22:
+ cmp r0, 0x2
+ beq _0815CD60
+ cmp r0, 0x3
+ beq _0815CD82
+ b _0815CDAA
+_0815CD2C:
+ 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
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0815CDAA
+ b _0815CD7A
+_0815CD4A:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0815CDAA
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+ b _0815CD7A
+_0815CD60:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0815CDAA
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_0815CD7A:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ b _0815CDAA
+_0815CD82:
+ ldr r1, =0x00003f3f
+ movs r0, 0x4A
+ bl SetGpuReg
+ movs r0, 0
+ bl GetGpuReg
+ adds r1, r0, 0
+ movs r2, 0x80
+ lsls r2, 8
+ adds r0, r2, 0
+ eors r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0
+ bl SetGpuReg
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0815CDAA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815CD0C
+
+ thumb_func_start sub_815CDB4
+sub_815CDB4: @ 815CDB4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, =gAnimationBankAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ ldr r1, =sub_815CDFC
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815CDB4
+
+ thumb_func_start sub_815CDFC
+sub_815CDFC: @ 815CDFC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ ldrh r1, [r4, 0x34]
+ lsls r1, 16
+ asrs r1, 24
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x9
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ lsls r1, r0, 16
+ cmp r0, 0x3F
+ bls _0815CE36
+ asrs r0, r1, 16
+ cmp r0, 0xC3
+ ble _0815CE48
+_0815CE36:
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl sub_80A82E4
+ subs r0, 0x1
+ b _0815CE52
+ .pool
+_0815CE48:
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl sub_80A82E4
+ adds r0, 0x1
+_0815CE52:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ movs r3, 0x38
+ ldrsh r2, [r4, r3]
+ cmp r2, 0
+ bne _0815CE98
+ movs r1, 0x80
+ lsls r1, 3
+ adds r0, r1, 0
+ ldrh r3, [r4, 0x32]
+ adds r0, r3
+ strh r0, [r4, 0x32]
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ ldrh r3, [r4, 0x34]
+ adds r0, r3
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x2E
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _0815CEC8
+ strh r2, [r4, 0x36]
+ movs r0, 0x1
+ strh r0, [r4, 0x38]
+ b _0815CEC8
+ .pool
+_0815CE98:
+ cmp r2, 0x1
+ bne _0815CEC8
+ ldr r1, =0xfffffc00
+ adds r0, r1, 0
+ ldrh r2, [r4, 0x32]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldr r3, =0xffffff00
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _0815CEC8
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0815CEC8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815CDFC
+
+ thumb_func_start sub_815CED8
+sub_815CED8: @ 815CED8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x18]
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815CF18
+ movs r0, 0x1
+ str r0, [sp, 0x1C]
+ ldr r0, =gUnknown_02039F34
+ ldr r0, [r0]
+ ldr r0, [r0, 0x18]
+ ldr r1, [r0, 0x10]
+ mov r9, r1
+ ldr r2, [r0, 0xC]
+ mov r8, r2
+ ldrh r6, [r0, 0x2]
+ movs r3, 0x14
+ b _0815D058
+ .pool
+_0815CF18:
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815CFC4
+ movs r0, 0
+ str r0, [sp, 0x1C]
+ ldr r6, =gBattlePartyID
+ ldr r4, =gAnimationBankTarget
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r7, =gPlayerParty
+ adds r0, r7
+ movs r1, 0
+ bl GetMonData
+ mov r9, r0
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r7
+ movs r1, 0x1
+ bl GetMonData
+ mov r8, r0
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldrb r2, [r4]
+ ldr r1, [r0]
+ lsls r0, r2, 2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _0815CFBC
+ adds r0, r2, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815CF9C
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r7
+ b _0815CFAA
+ .pool
+_0815CF9C:
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+_0815CFAA:
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _0815CFBE
+ .pool
+_0815CFBC:
+ ldrh r6, [r1, 0x2]
+_0815CFBE:
+ movs r1, 0x14
+ mov r10, r1
+ b _0815D05A
+_0815CFC4:
+ movs r2, 0x1
+ str r2, [sp, 0x1C]
+ ldr r6, =gBattlePartyID
+ ldr r4, =gAnimationBankTarget
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r7, =gEnemyParty
+ adds r0, r7
+ movs r1, 0
+ bl GetMonData
+ mov r9, r0
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r7
+ movs r1, 0x1
+ bl GetMonData
+ mov r8, r0
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldrb r2, [r4]
+ ldr r1, [r0]
+ lsls r0, r2, 2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _0815D054
+ adds r0, r2, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815D03C
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ b _0815D048
+ .pool
+_0815D03C:
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r7
+_0815D048:
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _0815D056
+_0815D054:
+ ldrh r6, [r1, 0x2]
+_0815D056:
+ ldr r3, =0x0000ffec
+_0815D058:
+ mov r10, r3
+_0815D05A:
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl sub_80A8328
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r5, =gAnimationBankAttacker
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_80A5C6C
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_80A5C6C
+ lsls r0, 24
+ mov r2, r10
+ lsls r1, r2, 16
+ asrs r1, 16
+ adds r4, r1
+ lsls r4, 16
+ asrs r4, 16
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0x5
+ str r0, [sp, 0x4]
+ mov r3, r9
+ str r3, [sp, 0x8]
+ mov r0, r8
+ str r0, [sp, 0xC]
+ ldr r0, =gAnimationBankTarget
+ ldrb r0, [r0]
+ str r0, [sp, 0x10]
+ movs r0, 0x1
+ str r0, [sp, 0x14]
+ adds r0, r6, 0
+ ldr r1, [sp, 0x1C]
+ movs r2, 0
+ adds r3, r4, 0
+ bl sub_80A8394
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, =gSprites
+ lsls r5, r6, 4
+ adds r5, r6
+ lsls r5, 2
+ adds r5, r0
+ movs r0, 0x3
+ ands r7, r0
+ lsls r7, 2
+ mov r8, r7
+ ldrb r0, [r5, 0x5]
+ movs r4, 0xD
+ negs r4, r4
+ adds r1, r4, 0
+ ands r1, r0
+ mov r2, r8
+ orrs r1, r2
+ strb r1, [r5, 0x5]
+ ldrb r2, [r5, 0x1]
+ adds r0, r4, 0
+ ands r0, r2
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r5, 0x1]
+ ldr r0, =0x00007fff
+ lsrs r1, 4
+ lsls r1, 4
+ movs r3, 0x80
+ lsls r3, 1
+ adds r2, r3, 0
+ orrs r1, r2
+ movs r2, 0x20
+ bl FillPalette
+ ldrb r0, [r5, 0x5]
+ ands r4, r0
+ mov r0, r8
+ orrs r4, r0
+ strb r4, [r5, 0x5]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r0, =gTasks
+ ldr r1, [sp, 0x18]
+ lsls r4, r1, 2
+ adds r4, r1
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0xA]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ strh r6, [r4, 0x8]
+ ldr r0, =sub_815D160
+ str r0, [r4]
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815CED8
+
+ thumb_func_start sub_815D160
+sub_815D160: @ 815D160
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0815D1AE
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xA
+ bne _0815D1AE
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0x1C]
+ strh r0, [r4, 0x1E]
+ ldr r0, =sub_815D1BC
+ str r0, [r4]
+_0815D1AE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815D160
+
+ thumb_func_start sub_815D1BC
+sub_815D1BC: @ 815D1BC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r5, r1, r2
+ ldrb r2, [r5, 0x8]
+ ldrh r0, [r5, 0x1C]
+ subs r0, 0x10
+ movs r4, 0
+ strh r0, [r5, 0x1C]
+ ldrh r0, [r5, 0x1E]
+ adds r0, 0x80
+ strh r0, [r5, 0x1E]
+ ldr r1, =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r6, r0, r1
+ ldrb r2, [r6, 0x1]
+ lsls r1, r2, 30
+ lsrs r1, 30
+ movs r0, 0x2
+ orrs r1, r0
+ subs r0, 0x6
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6, 0x1]
+ movs r0, 0x1C
+ ldrsh r2, [r5, r0]
+ movs r0, 0x1E
+ ldrsh r3, [r5, r0]
+ str r4, [sp]
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_80A73E0
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x1
+ strh r0, [r5, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bne _0815D22A
+ adds r0, r6, 0
+ bl sub_80A749C
+ adds r0, r6, 0
+ bl sub_80A8610
+ ldr r0, =sub_80A6814
+ str r0, [r5]
+_0815D22A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815D1BC
+
+ thumb_func_start sub_815D240
+sub_815D240: @ 815D240
+ push {r4-r7,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r4, r1, r0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0815D26C
+ ldr r0, =gAnimationBankAttacker
+ b _0815D26E
+ .pool
+_0815D26C:
+ ldr r0, =gAnimationBankTarget
+_0815D26E:
+ ldrb r5, [r0]
+ movs r6, 0
+ strh r6, [r4, 0x8]
+ strh r6, [r4, 0xA]
+ strh r6, [r4, 0xC]
+ movs r0, 0x10
+ strh r0, [r4, 0xE]
+ strh r6, [r4, 0x10]
+ strh r5, [r4, 0x12]
+ movs r0, 0x20
+ strh r0, [r4, 0x14]
+ strh r6, [r4, 0x16]
+ movs r0, 0x18
+ strh r0, [r4, 0x18]
+ adds r0, r5, 0
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0815D2A0
+ movs r1, 0x18
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0x18]
+_0815D2A0:
+ adds r0, r5, 0
+ bl sub_80A6190
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x22
+ strh r0, [r4, 0x22]
+ cmp r0, 0
+ bge _0815D2B4
+ strh r6, [r4, 0x22]
+_0815D2B4:
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x42
+ strh r0, [r4, 0x24]
+ ldr r0, =gBattleAnimArgs
+ ldrb r0, [r0]
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ adds r0, r5, 0
+ bl GetBankIdentity_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0815D304
+ ldr r0, =0x04000014
+ str r0, [sp]
+ ldr r1, =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r0, =gUnknown_02022E18
+ ldrh r5, [r0]
+ ldr r0, =gUnknown_02022E1A
+ b _0815D316
+ .pool
+_0815D304:
+ ldr r0, =0x04000018
+ str r0, [sp]
+ ldr r1, =0x00003f44
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r0, =gUnknown_02022E1C
+ ldrh r5, [r0]
+ ldr r0, =gUnknown_02022E1E
+_0815D316:
+ ldrh r3, [r0]
+ movs r7, 0
+ movs r2, 0
+ ldr r6, =gUnknown_02038C28
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r0, r6
+ mov r12, r0
+_0815D326:
+ lsls r2, 16
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r0, r1, r6
+ strh r5, [r0]
+ add r1, r12
+ strh r5, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 1
+ adds r1, r0, r6
+ strh r3, [r1]
+ add r0, r12
+ strh r3, [r0]
+ lsls r0, r7, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ adds r2, 0x2
+ lsls r2, 16
+ lsrs r2, 16
+ lsrs r7, r0, 16
+ asrs r0, 16
+ cmp r0, 0x9F
+ ble _0815D326
+ ldr r0, =0xa6600001
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80BA038
+ ldr r0, =sub_815D398
+ str r0, [r4]
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815D240
+
+ thumb_func_start sub_815D398
+sub_815D398: @ 815D398
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r6, r0, r1
+ ldrb r0, [r6, 0x12]
+ bl GetBankIdentity_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0815D3D8
+ ldr r0, =gUnknown_02022E18
+ ldrh r0, [r0]
+ str r0, [sp, 0x4]
+ ldr r0, =gUnknown_02022E1A
+ b _0815D3E0
+ .pool
+_0815D3D8:
+ ldr r0, =gUnknown_02022E1C
+ ldrh r0, [r0]
+ str r0, [sp, 0x4]
+ ldr r0, =gUnknown_02022E1E
+_0815D3E0:
+ ldrh r0, [r0]
+ str r0, [sp, 0x8]
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bne _0815D3EE
+ b _0815D5CC
+_0815D3EE:
+ cmp r0, 0x1
+ bgt _0815D400
+ cmp r0, 0
+ beq _0815D40E
+ b _0815D63C
+ .pool
+_0815D400:
+ cmp r0, 0x2
+ bne _0815D406
+ b _0815D5EC
+_0815D406:
+ cmp r0, 0x3
+ bne _0815D40C
+ b _0815D636
+_0815D40C:
+ b _0815D63C
+_0815D40E:
+ movs r2, 0x24
+ ldrsh r0, [r6, r2]
+ lsls r0, 17
+ lsrs r5, r0, 16
+ movs r3, 0
+ str r3, [sp]
+ mov r9, r3
+ movs r4, 0
+ ldrh r0, [r6, 0xA]
+ adds r0, 0x2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r6, 0xA]
+ ldrh r7, [r6, 0xA]
+ mov r8, r7
+ movs r0, 0x14
+ ldrsh r1, [r6, r0]
+ movs r0, 0xFC
+ lsls r0, 3
+ bl __divsi3
+ strh r0, [r6, 0x1A]
+ movs r1, 0x16
+ ldrsh r0, [r6, r1]
+ lsls r0, 1
+ movs r2, 0x1A
+ ldrsh r1, [r6, r2]
+ bl __divsi3
+ negs r0, r0
+ strh r0, [r6, 0x1C]
+ ldrh r0, [r6, 0x16]
+ strh r0, [r6, 0x1E]
+ lsls r0, 16
+ asrs r0, 21
+ lsls r0, 16
+ lsrs r7, r0, 16
+ strh r7, [r6, 0x20]
+ ldrh r2, [r6, 0x24]
+ lsls r3, r2, 16
+ mov r12, r3
+ asrs r1, r3, 16
+ movs r3, 0x22
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ ble _0815D52E
+ ldr r0, =gUnknown_02039B28
+ mov r10, r0
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 16
+ asrs r0, 16
+ str r0, [sp, 0x10]
+ ldr r2, [sp, 0x8]
+ lsls r0, r2, 16
+ asrs r0, 16
+ str r0, [sp, 0xC]
+_0815D47E:
+ lsls r5, 16
+ asrs r5, 16
+ adds r2, r5, 0x1
+ lsls r2, 1
+ mov r3, r10
+ ldrb r1, [r3, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ ldr r0, =gUnknown_02038C28
+ adds r2, r0
+ lsls r4, 16
+ asrs r4, 16
+ mov r1, r9
+ lsls r0, r1, 16
+ asrs r0, 16
+ subs r0, r4, r0
+ ldr r3, [sp, 0xC]
+ adds r0, r3, r0
+ strh r0, [r2]
+ lsls r3, r5, 1
+ mov r0, r10
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r3, r0
+ ldr r1, =gUnknown_02038C28
+ adds r3, r1
+ lsls r1, r7, 16
+ asrs r1, 16
+ ldr r2, [sp, 0x10]
+ adds r1, r2, r1
+ mov r7, r8
+ lsls r2, r7, 16
+ asrs r2, 16
+ lsls r0, r2, 1
+ ldr r7, =gSineTable
+ adds r0, r7
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ adds r1, r0
+ strh r1, [r3]
+ adds r2, 0xA
+ mov r8, r2
+ movs r0, 0xFF
+ mov r1, r8
+ ands r1, r0
+ mov r8, r1
+ ldrh r0, [r6, 0x1C]
+ ldrh r2, [r6, 0x1E]
+ adds r0, r2
+ strh r0, [r6, 0x1E]
+ lsls r0, 16
+ asrs r0, 21
+ lsls r0, 16
+ lsrs r7, r0, 16
+ strh r7, [r6, 0x20]
+ adds r4, 0x1
+ lsls r4, 16
+ lsrs r4, 16
+ subs r5, 0x2
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r3, [sp]
+ lsls r0, r3, 16
+ asrs r0, 16
+ ldrh r1, [r6, 0x14]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ str r2, [sp]
+ asrs r0, 21
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r0, =0xffff0000
+ add r0, r12
+ lsrs r2, r0, 16
+ lsls r3, r2, 16
+ mov r12, r3
+ asrs r1, r3, 16
+ movs r3, 0x22
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ bgt _0815D47E
+_0815D52E:
+ lsls r1, r2, 17
+ cmp r1, 0
+ blt _0815D55A
+ ldr r4, =gUnknown_02038C28
+ ldr r7, [sp, 0x4]
+ lsls r0, r7, 16
+ asrs r0, 16
+ adds r3, r0, 0
+ adds r3, 0xF0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r5, r4, r0
+_0815D546:
+ asrs r2, r1, 16
+ lsls r1, r2, 1
+ adds r0, r1, r4
+ strh r3, [r0]
+ adds r1, r5
+ strh r3, [r1]
+ subs r2, 0x2
+ lsls r1, r2, 16
+ cmp r1, 0
+ bge _0815D546
+_0815D55A:
+ ldrh r0, [r6, 0x14]
+ adds r0, 0x1
+ strh r0, [r6, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3F
+ ble _0815D5C2
+ movs r0, 0x40
+ strh r0, [r6, 0x14]
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0815D594
+ ldrh r0, [r6, 0xE]
+ subs r0, 0x1
+ strh r0, [r6, 0xE]
+ b _0815D59A
+ .pool
+_0815D594:
+ ldrh r0, [r6, 0x10]
+ adds r0, 0x1
+ strh r0, [r6, 0x10]
+_0815D59A:
+ ldrh r1, [r6, 0x10]
+ lsls r1, 8
+ ldrh r0, [r6, 0xE]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r2, 0xE
+ ldrsh r1, [r6, r2]
+ cmp r1, 0
+ bne _0815D63C
+ movs r3, 0x10
+ ldrsh r0, [r6, r3]
+ cmp r0, 0x10
+ bne _0815D63C
+ strh r1, [r6, 0xC]
+ strh r1, [r6, 0xE]
+ b _0815D62E
+_0815D5C2:
+ ldrh r0, [r6, 0x18]
+ ldrh r7, [r6, 0x16]
+ adds r0, r7
+ strh r0, [r6, 0x16]
+ b _0815D63C
+_0815D5CC:
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _0815D63C
+ ldr r1, =gUnknown_02039B28
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ movs r0, 0
+ strh r0, [r6, 0xC]
+ b _0815D62E
+ .pool
+_0815D5EC:
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0815D602
+ ldrh r0, [r6, 0xE]
+ adds r0, 0x1
+ strh r0, [r6, 0xE]
+ b _0815D608
+_0815D602:
+ ldrh r0, [r6, 0x10]
+ subs r0, 0x1
+ strh r0, [r6, 0x10]
+_0815D608:
+ ldrh r1, [r6, 0x10]
+ lsls r1, 8
+ ldrh r0, [r6, 0xE]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0xE
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x10
+ bne _0815D63C
+ movs r2, 0x10
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ bne _0815D63C
+ strh r0, [r6, 0xC]
+ strh r0, [r6, 0xE]
+_0815D62E:
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ b _0815D63C
+_0815D636:
+ adds r0, r4, 0
+ bl move_anim_task_del
+_0815D63C:
+ 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_815D398
+
+ thumb_func_start sub_815D64C
+sub_815D64C: @ 815D64C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r0, =gBattleAnimArgs
+ ldrb r0, [r0]
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x26]
+ ldr r2, =gUnknown_085CE5F0
+ adds r0, r4, 0
+ bl sub_80A7CFC
+ ldr r0, =sub_815D694
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815D64C
+
+ thumb_func_start sub_815D694
+sub_815D694: @ 815D694
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r2, =gTasks
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x8]
+ adds r1, r0, 0x1
+ movs r5, 0
+ strh r1, [r3, 0x8]
+ subs r0, 0x14
+ lsls r0, 16
+ lsrs r0, 16
+ adds r6, r2, 0
+ cmp r0, 0x16
+ bhi _0815D6F8
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0815D708
+ strh r5, [r3, 0xA]
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ movs r5, 0x1
+ ands r0, r5
+ cmp r0, 0
+ bne _0815D6F8
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, =0x0000ffff
+ strh r1, [r0, 0x24]
+ b _0815D708
+ .pool
+_0815D6F8:
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+_0815D708:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r6
+ bl sub_80A7D34
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815D720
+ adds r0, r4, 0
+ bl move_anim_task_del
+_0815D720:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815D694
+
+ thumb_func_start sub_815D72C
+sub_815D72C: @ 815D72C
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ mov r8, r0
+ adds r5, r2, 0
+ adds r0, r3, 0
+ ldr r4, [sp, 0x14]
+ ldr r6, [sp, 0x18]
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r6, 16
+ lsrs r6, 16
+ mov r2, r8
+ strh r1, [r2, 0x20]
+ strh r5, [r2, 0x22]
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, r1, 4
+ mov r3, r8
+ strh r2, [r3, 0x36]
+ lsls r5, 16
+ asrs r5, 16
+ lsls r2, r5, 4
+ strh r2, [r3, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 4
+ adds r1, r6, 0
+ bl __divsi3
+ mov r1, r8
+ strh r0, [r1, 0x3A]
+ lsls r4, 16
+ asrs r4, 16
+ subs r4, r5
+ lsls r4, 4
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl __divsi3
+ mov r2, r8
+ strh r0, [r2, 0x3C]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815D72C
+
+ thumb_func_start sub_815D794
+sub_815D794: @ 815D794
+ ldrh r1, [r0, 0x3A]
+ ldrh r2, [r0, 0x36]
+ adds r1, r2
+ strh r1, [r0, 0x36]
+ ldrh r2, [r0, 0x3C]
+ ldrh r3, [r0, 0x38]
+ adds r2, r3
+ strh r2, [r0, 0x38]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r0, 0x20]
+ lsls r2, 16
+ asrs r2, 20
+ strh r2, [r0, 0x22]
+ bx lr
+ thumb_func_end sub_815D794
+
+ thumb_func_start sub_815D7B4
+sub_815D7B4: @ 815D7B4
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldrh r6, [r4, 0x20]
+ ldrh r5, [r4, 0x22]
+ bl sub_80A6838
+ ldr r0, =gBattleAnimArgs
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r0, 0x22
+ ldrsh r2, [r4, r0]
+ lsls r6, 16
+ asrs r6, 16
+ lsls r5, 16
+ asrs r5, 16
+ str r5, [sp]
+ movs r0, 0x40
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ adds r3, r6, 0
+ bl sub_815D72C
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, =sub_815D804
+ str r0, [r4, 0x1C]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815D7B4
+
+ thumb_func_start sub_815D804
+sub_815D804: @ 815D804
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ movs r0, 0x2E
+ ldrsh r4, [r5, r0]
+ lsls r4, 3
+ movs r0, 0xFF
+ ands r4, r0
+ adds r0, r5, 0
+ bl sub_815D794
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl Sin
+ strh r0, [r5, 0x26]
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x3A
+ ble _0815D86A
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0815D86A
+ movs r0, 0
+ strh r0, [r5, 0x30]
+ ldrh r1, [r5, 0x32]
+ adds r1, 0x1
+ strh r1, [r5, 0x32]
+ movs r0, 0x1
+ ands r1, r0
+ adds r3, r5, 0
+ adds r3, 0x3E
+ lsls r1, 2
+ ldrb r2, [r3]
+ subs r0, 0x6
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x3
+ ble _0815D86A
+ adds r0, r5, 0
+ bl move_anim_8074EE0
+_0815D86A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815D804
+
+ thumb_func_start sub_815D870
+sub_815D870: @ 815D870
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, =gBattleAnimArgs
+ ldrh r0, [r6, 0x6]
+ strh r0, [r5, 0x2E]
+ ldrb r1, [r6]
+ adds r0, r5, 0
+ bl StartSpriteAffineAnim
+ ldr r0, =gAnimationBankTarget
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815D896
+ ldrh r0, [r6, 0x2]
+ negs r0, r0
+ strh r0, [r6, 0x2]
+_0815D896:
+ ldr r4, =gAnimationBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x4]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ ldr r0, =sub_810E2C8
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815D870
+
+ thumb_func_start sub_815D8D8
+sub_815D8D8: @ 815D8D8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r7, 0
+ ldr r2, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x8]
+ subs r0, 0x1
+ strh r0, [r3, 0x8]
+ movs r1, 0x14
+ ldrsh r0, [r3, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ mov r8, r2
+ cmp r0, 0
+ beq _0815D95A
+ ldrh r0, [r3, 0xA]
+ subs r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0815D95A
+ movs r2, 0x1A
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bne _0815D92C
+ ldrh r0, [r3, 0x10]
+ strh r0, [r3, 0x1A]
+ negs r0, r0
+ strh r0, [r3, 0x10]
+ b _0815D92E
+ .pool
+_0815D92C:
+ strh r7, [r3, 0x1A]
+_0815D92E:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ mov r2, r8
+ adds r1, r0, r2
+ movs r2, 0x1C
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0815D94A
+ ldrh r0, [r1, 0x12]
+ strh r0, [r1, 0x1C]
+ negs r0, r0
+ strh r0, [r1, 0x12]
+ b _0815D94E
+_0815D94A:
+ movs r0, 0
+ strh r0, [r1, 0x1C]
+_0815D94E:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ add r0, r8
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0xA]
+_0815D95A:
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ mov r1, r8
+ adds r4, r0, r1
+ ldrh r6, [r4, 0x16]
+ ldrh r7, [r4, 0x18]
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ mov r12, r2
+ cmp r0, 0
+ beq _0815D998
+ ldr r3, =gSprites
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ lsrs r2, r6, 8
+ ldrh r0, [r4, 0x1A]
+ subs r0, r2
+ strh r0, [r1, 0x24]
+ adds r2, r3, 0
+ b _0815D9AE
+ .pool
+_0815D998:
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ lsrs r1, r6, 8
+ ldrh r4, [r4, 0x1A]
+ adds r1, r4
+ strh r1, [r0, 0x24]
+_0815D9AE:
+ mov r1, r12
+ adds r0, r1, r5
+ lsls r0, 3
+ mov r1, r8
+ adds r4, r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0815D9E0
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ lsrs r2, r7, 8
+ ldrh r0, [r4, 0x1C]
+ subs r0, r2
+ b _0815D9F2
+ .pool
+_0815D9E0:
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ lsrs r0, r7, 8
+ ldrh r4, [r4, 0x1C]
+ adds r0, r4
+_0815D9F2:
+ strh r0, [r1, 0x26]
+ mov r2, r12
+ adds r0, r2, r5
+ lsls r0, 3
+ add r0, r8
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bgt _0815DA12
+ adds r0, r5, 0
+ bl DestroyTask
+ ldr r1, =gAnimVisualTaskCount
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_0815DA12:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815D8D8
+
+ thumb_func_start sub_815DA20
+sub_815DA20: @ 815DA20
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r7, 0
+ ldr r2, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x8]
+ subs r0, 0x1
+ strh r0, [r3, 0x8]
+ movs r1, 0x14
+ ldrsh r0, [r3, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ mov r8, r2
+ cmp r0, 0
+ beq _0815DAA6
+ ldrh r0, [r3, 0xA]
+ subs r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0815DAA6
+ movs r2, 0x1A
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bne _0815DA78
+ ldrh r0, [r3, 0x10]
+ strh r0, [r3, 0x1A]
+ negs r0, r0
+ strh r0, [r3, 0x10]
+ b _0815DA7A
+ .pool
+_0815DA78:
+ strh r7, [r3, 0x1A]
+_0815DA7A:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ mov r2, r8
+ adds r1, r0, r2
+ movs r2, 0x1C
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0815DA96
+ ldrh r0, [r1, 0x12]
+ strh r0, [r1, 0x1C]
+ negs r0, r0
+ strh r0, [r1, 0x12]
+ b _0815DA9A
+_0815DA96:
+ movs r0, 0
+ strh r0, [r1, 0x1C]
+_0815DA9A:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ add r0, r8
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0xA]
+_0815DAA6:
+ lsls r3, r6, 2
+ adds r0, r3, r6
+ lsls r0, 3
+ mov r1, r8
+ adds r4, r0, r1
+ ldrh r2, [r4, 0xC]
+ ldr r1, =0x00007fff
+ adds r0, r1, 0
+ ands r0, r2
+ ldrh r2, [r4, 0x16]
+ adds r0, r2
+ lsls r5, r0, 16
+ lsrs r0, r5, 16
+ mov r9, r0
+ ldrh r0, [r4, 0xE]
+ ands r1, r0
+ ldrh r2, [r4, 0x18]
+ adds r1, r2
+ lsls r1, 16
+ lsrs r7, r1, 16
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ mov r12, r3
+ cmp r0, 0
+ beq _0815DB00
+ ldr r3, =gSprites
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ lsrs r2, r5, 24
+ ldrh r0, [r4, 0x1A]
+ subs r0, r2
+ strh r0, [r1, 0x24]
+ adds r2, r3, 0
+ b _0815DB16
+ .pool
+_0815DB00:
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ lsrs r1, r5, 24
+ ldrh r4, [r4, 0x1A]
+ adds r1, r4
+ strh r1, [r0, 0x24]
+_0815DB16:
+ mov r1, r12
+ adds r0, r1, r6
+ lsls r0, 3
+ mov r1, r8
+ adds r4, r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0815DB48
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ lsrs r2, r7, 8
+ ldrh r0, [r4, 0x1C]
+ subs r0, r2
+ b _0815DB5A
+ .pool
+_0815DB48:
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ lsrs r0, r7, 8
+ ldrh r4, [r4, 0x1C]
+ adds r0, r4
+_0815DB5A:
+ strh r0, [r1, 0x26]
+ mov r2, r12
+ adds r0, r2, r6
+ lsls r0, 3
+ mov r1, r8
+ adds r2, r0, r1
+ mov r0, r9
+ strh r0, [r2, 0x16]
+ strh r7, [r2, 0x18]
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bgt _0815DB80
+ movs r0, 0x1E
+ strh r0, [r2, 0x8]
+ movs r0, 0
+ strh r0, [r2, 0x22]
+ ldr r0, =sub_815D8D8
+ str r0, [r2]
+_0815DB80:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815DA20
+
+ thumb_func_start sub_815DB90
+sub_815DB90: @ 815DB90
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, =gTasks
+ mov r8, r0
+ lsls r7, r6, 2
+ adds r0, r7, r6
+ lsls r0, 3
+ mov r1, r8
+ adds r4, r0, r1
+ ldr r1, =gBankSpriteIds
+ ldr r2, =gAnimationBankAttacker
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x26]
+ ldr r5, =gBattleAnimArgs
+ ldrh r0, [r5]
+ strh r0, [r4, 0x24]
+ ldrh r0, [r5]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r5, 0xC]
+ strh r0, [r4, 0x22]
+ movs r3, 0x6
+ ldrsh r0, [r5, r3]
+ cmp r0, 0
+ beq _0815DBD4
+ ldrh r0, [r4, 0x14]
+ ldr r3, =0xffff8000
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r4, 0x14]
+_0815DBD4:
+ ldrb r0, [r2]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815DC04
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0xC]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0xE]
+ mov r3, r8
+ adds r4, r7, 0
+ b _0815DC74
+ .pool
+_0815DC04:
+ movs r7, 0x2
+ ldrsh r0, [r5, r7]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0815DC20
+ ldrh r1, [r5, 0x2]
+ ldr r0, =0x00007fff
+ ands r0, r1
+ b _0815DC28
+ .pool
+_0815DC20:
+ ldrh r0, [r5, 0x2]
+ ldr r2, =0xffff8000
+ adds r1, r2, 0
+ orrs r0, r1
+_0815DC28:
+ strh r0, [r4, 0xC]
+ ldr r0, =gBattleAnimArgs
+ movs r3, 0x4
+ ldrsh r1, [r0, r3]
+ movs r2, 0x80
+ lsls r2, 8
+ ands r1, r2
+ adds r5, r0, 0
+ cmp r1, 0
+ beq _0815DC60
+ ldr r3, =gTasks
+ lsls r4, r6, 2
+ adds r1, r4, r6
+ lsls r1, 3
+ adds r1, r3
+ ldrh r2, [r5, 0x4]
+ ldr r0, =0x00007fff
+ ands r0, r2
+ b _0815DC72
+ .pool
+_0815DC60:
+ ldr r3, =gTasks
+ lsls r4, r6, 2
+ adds r1, r4, r6
+ lsls r1, 3
+ adds r1, r3
+ ldrh r2, [r5, 0x4]
+ ldr r7, =0xffff8000
+ adds r0, r7, 0
+ orrs r0, r2
+_0815DC72:
+ strh r0, [r1, 0xE]
+_0815DC74:
+ adds r0, r4, r6
+ lsls r0, 3
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x18]
+ strh r1, [r0, 0x16]
+ ldrh r1, [r5, 0x8]
+ strh r1, [r0, 0x10]
+ ldrh r1, [r5, 0xA]
+ strh r1, [r0, 0x12]
+ ldr r1, =sub_815DA20
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815DB90
+
+ thumb_func_start sub_815DCA4
+sub_815DCA4: @ 815DCA4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r5, r0, r1
+ ldr r4, =gBattleAnimArgs
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0815DCC4
+ adds r0, r2, 0
+ bl move_anim_task_del
+_0815DCC4:
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ strh r0, [r5, 0xA]
+ strh r0, [r5, 0xC]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0xE]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0815DCE8
+ ldr r0, =gAnimationBankAttacker
+ b _0815DCEA
+ .pool
+_0815DCE8:
+ ldr r0, =gAnimationBankTarget
+_0815DCEA:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x10]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ adds r0, r4, 0
+ bl sub_80A82E4
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x14]
+ ldr r0, =gBattleAnimArgs
+ ldrb r0, [r0]
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r5, 0x26]
+ ldr r2, =gUnknown_085CE74C
+ adds r0, r5, 0
+ bl sub_80A7CFC
+ ldr r0, =sub_815DD48
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815DCA4
+
+ thumb_func_start sub_815DD48
+sub_815DD48: @ 815DD48
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0815DD6C
+ cmp r0, 0x1
+ beq _0815DDCC
+ b _0815DDDA
+ .pool
+_0815DD6C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _0815DD82
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_815DDE0
+_0815DD82:
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x12
+ bne _0815DD92
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_815DDE0
+_0815DD92:
+ adds r0, r4, 0
+ bl sub_80A7D34
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _0815DDDA
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0815DDB4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0815DDDA
+_0815DDB4:
+ strh r1, [r4, 0xA]
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =gUnknown_085CE74C
+ adds r0, r4, 0
+ bl sub_80A7CFC
+ b _0815DDDA
+ .pool
+_0815DDCC:
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0815DDDA
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0815DDDA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815DD48
+
+ thumb_func_start sub_815DDE0
+sub_815DDE0: @ 815DDE0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r2, =gTasks
+ adds r4, r0, r2
+ cmp r1, 0
+ bne _0815DE08
+ movs r1, 0x12
+ movs r3, 0xEC
+ b _0815DE0C
+ .pool
+_0815DE08:
+ movs r1, 0x1E
+ movs r3, 0x14
+_0815DE0C:
+ mov r2, sp
+ ldrh r0, [r4, 0x10]
+ subs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4, 0x10]
+ subs r0, r1
+ subs r0, 0x4
+ strh r0, [r2, 0x2]
+ ldrh r0, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r2, 0x4]
+ ldrh r0, [r4, 0x10]
+ adds r0, r1
+ adds r0, 0x4
+ strh r0, [r2, 0x6]
+ add r2, sp, 0x8
+ lsls r1, r3, 24
+ asrs r1, 24
+ ldrh r0, [r4, 0x12]
+ adds r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4, 0x12]
+ adds r0, r1
+ adds r0, 0x6
+ strh r0, [r2, 0x2]
+ movs r5, 0
+ mov r8, r2
+ ldr r7, =gSprites
+_0815DE44:
+ lsls r0, r5, 1
+ add r0, sp
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ ands r0, r5
+ lsls r0, 1
+ add r0, r8
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ ldrb r3, [r4, 0x14]
+ subs r3, 0x5
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, =gUnknown_085CE76C
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0815DE98
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r7
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ movs r0, 0x2
+ cmp r5, 0x1
+ bhi _0815DE86
+ movs r2, 0x2
+ negs r2, r2
+ adds r0, r2, 0
+_0815DE86:
+ strh r0, [r1, 0x30]
+ ldr r0, =0x0000ffff
+ strh r0, [r1, 0x32]
+ strh r6, [r1, 0x34]
+ movs r0, 0x2
+ strh r0, [r1, 0x36]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+_0815DE98:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _0815DE44
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815DDE0
+
+ thumb_func_start sub_815DEBC
+sub_815DEBC: @ 815DEBC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _0815DF02
+ ldr r3, =gTasks
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x34
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_0815DF02:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815DEBC
+
+ thumb_func_start sub_815DF0C
+sub_815DF0C: @ 815DF0C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0xA]
+ ldrb r0, [r1]
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x5]
+ lsrs r0, 4
+ lsls r0, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ adds r0, r1
+ strh r0, [r4, 0xC]
+ ldr r0, =sub_815DF64
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815DF0C
+
+ thumb_func_start sub_815DF64
+sub_815DF64: @ 815DF64
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0815DFB4
+ ldrh r0, [r4, 0xC]
+ ldr r2, =gUnknown_085CE784
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r1, 1
+ adds r1, r2
+ ldrh r3, [r1]
+ movs r1, 0x10
+ movs r2, 0x8
+ bl BlendPalette
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x17
+ ble _0815DFA4
+ movs r0, 0
+ strh r0, [r4, 0x8]
+_0815DFA4:
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ b _0815DFC6
+ .pool
+_0815DFB4:
+ ldrh r0, [r4, 0xC]
+ movs r1, 0x10
+ movs r2, 0
+ movs r3, 0
+ bl BlendPalette
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0815DFC6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815DF64
+
+ thumb_func_start sub_815DFCC
+sub_815DFCC: @ 815DFCC
+ push {lr}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0xD0
+ lsls r2, 1
+ ldr r1, =gAnimationBankAttacker
+ ldrb r3, [r1]
+ ldr r1, =gBattleAnimArgs
+ ldrb r1, [r1]
+ str r1, [sp]
+ movs r1, 0xA
+ str r1, [sp, 0x4]
+ movs r1, 0x2
+ str r1, [sp, 0x8]
+ movs r1, 0x1E
+ str r1, [sp, 0xC]
+ ldr r1, =gUnknown_08C2DC68
+ str r1, [sp, 0x10]
+ ldr r1, =gUnknown_08C2DDC4
+ str r1, [sp, 0x14]
+ ldr r1, =gUnknown_08C2DDA4
+ str r1, [sp, 0x18]
+ movs r1, 0
+ bl sub_8117854
+ add sp, 0x1C
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815DFCC
+
+ thumb_func_start sub_815E01C
+sub_815E01C: @ 815E01C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, =gAnimationBankAttacker
+ ldrb r0, [r6]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0815E038
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_0815E038:
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_80A5C6C
+ lsls r0, 24
+ ldr r4, =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0815E080
+ movs r0, 0xA0
+ lsls r0, 2
+ strh r0, [r5, 0x2E]
+ ldr r0, =0x0000fd80
+ strh r0, [r5, 0x30]
+ b _0815E0A8
+ .pool
+_0815E080:
+ cmp r0, 0x1
+ bne _0815E09A
+ adds r2, r5, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0xA0
+ lsls r0, 2
+ strh r0, [r5, 0x2E]
+ strh r0, [r5, 0x30]
+ b _0815E0A8
+_0815E09A:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0xA0
+ lsls r0, 2
+ strh r0, [r5, 0x2E]
+_0815E0A8:
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815E0C8
+ ldrh r0, [r5, 0x2E]
+ negs r0, r0
+ strh r0, [r5, 0x2E]
+ adds r2, r5, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_0815E0C8:
+ ldr r0, =sub_815E0DC
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815E01C
+
+ thumb_func_start sub_815E0DC
+sub_815E0DC: @ 815E0DC
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x3A]
+ adds r0, r1
+ strh r0, [r2, 0x3A]
+ ldrh r1, [r2, 0x30]
+ ldrh r3, [r2, 0x3C]
+ adds r1, r3
+ strh r1, [r2, 0x3C]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x24]
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r2, 0x26]
+ ldrh r0, [r2, 0x38]
+ adds r0, 0x1
+ strh r0, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xE
+ bne _0815E110
+ adds r0, r2, 0
+ bl move_anim_8072740
+_0815E110:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815E0DC
+
+ thumb_func_start sub_815E114
+sub_815E114: @ 815E114
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r6, r1, r0
+ bl IsContest
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _0815E144
+ movs r0, 0x8
+ strh r0, [r6, 0x12]
+ movs r0, 0x3
+ strh r0, [r6, 0x14]
+ movs r0, 0x1
+ strh r0, [r6, 0x16]
+ b _0815E14E
+ .pool
+_0815E144:
+ movs r0, 0xC
+ strh r0, [r6, 0x12]
+ movs r0, 0x3
+ strh r0, [r6, 0x14]
+ strh r1, [r6, 0x16]
+_0815E14E:
+ ldr r5, =gAnimationBankAttacker
+ ldrb r0, [r5]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815E188
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_80A5C6C
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_80A861C
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0815E17C
+ adds r0, 0x3
+_0815E17C:
+ asrs r0, 2
+ adds r0, r4, r0
+ b _0815E1AC
+ .pool
+_0815E188:
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_80A5C6C
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_80A861C
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0815E1A8
+ adds r0, 0x3
+_0815E1A8:
+ asrs r0, 2
+ subs r0, r4, r0
+_0815E1AC:
+ strh r0, [r6, 0x1E]
+ ldr r5, =gAnimationBankAttacker
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_80A5C6C
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_80A861C
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0815E1D0
+ adds r0, 0x3
+_0815E1D0:
+ asrs r0, 2
+ subs r0, r4, r0
+ strh r0, [r6, 0x20]
+ ldr r4, =gAnimationBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x24]
+ ldr r0, =sub_815E20C
+ str r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815E114
+
+ thumb_func_start sub_815E20C
+sub_815E20C: @ 815E20C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r5, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ cmp r1, 0
+ beq _0815E238
+ cmp r1, 0x1
+ bne _0815E230
+ b _0815E330
+_0815E230:
+ b _0815E33E
+ .pool
+_0815E238:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _0815E33E
+ strh r1, [r5, 0xA]
+ movs r1, 0x1E
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r3, 0x22
+ ldrsh r2, [r5, r3]
+ movs r4, 0x24
+ ldrsh r3, [r5, r4]
+ ldrb r4, [r5, 0x12]
+ str r4, [sp]
+ ldrb r4, [r5, 0xC]
+ str r4, [sp, 0x4]
+ add r4, sp, 0x10
+ str r4, [sp, 0x8]
+ adds r4, 0x2
+ str r4, [sp, 0xC]
+ bl sub_815E34C
+ movs r6, 0
+ mov r8, r4
+ ldr r4, =gSprites
+_0815E272:
+ add r0, sp, 0x10
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ mov r3, r8
+ movs r0, 0
+ ldrsh r2, [r3, r0]
+ ldr r0, =gUnknown_085CE7EC
+ movs r3, 0x23
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _0815E306
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0815E2C6
+ cmp r6, 0
+ bne _0815E2B4
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r5, 0x14]
+ negs r0, r0
+ strh r0, [r1, 0x26]
+ strh r0, [r1, 0x24]
+ b _0815E2EE
+ .pool
+_0815E2B4:
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r5, 0x14]
+ strh r0, [r1, 0x26]
+ ldrh r0, [r5, 0x14]
+ strh r0, [r1, 0x24]
+ b _0815E2EE
+_0815E2C6:
+ cmp r6, 0
+ bne _0815E2DC
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r5, 0x14]
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrh r0, [r5, 0x14]
+ b _0815E2EC
+_0815E2DC:
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r5, 0x14]
+ strh r0, [r1, 0x24]
+ ldrh r0, [r5, 0x14]
+ negs r0, r0
+_0815E2EC:
+ strh r0, [r1, 0x26]
+_0815E2EE:
+ ldr r1, =gSprites
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ strh r7, [r0, 0x30]
+ movs r1, 0xA
+ strh r1, [r0, 0x32]
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+_0815E306:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x1
+ bls _0815E272
+ ldrh r2, [r5, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r5, r3]
+ movs r4, 0x12
+ ldrsh r0, [r5, r4]
+ cmp r1, r0
+ bne _0815E324
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+_0815E324:
+ adds r0, r2, 0x1
+ strh r0, [r5, 0xC]
+ b _0815E33E
+ .pool
+_0815E330:
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0815E33E
+ adds r0, r7, 0
+ bl move_anim_task_del
+_0815E33E:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815E20C
+
+ thumb_func_start sub_815E34C
+sub_815E34C: @ 815E34C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r4, [sp, 0x28]
+ ldr r5, [sp, 0x2C]
+ ldr r6, [sp, 0x30]
+ mov r9, r6
+ ldr r6, [sp, 0x34]
+ mov r10, r6
+ lsls r0, 16
+ lsrs r0, 16
+ mov r12, r0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ lsls r2, 16
+ lsrs r2, 16
+ adds r7, r2, 0
+ lsls r3, 16
+ lsrs r3, 16
+ str r3, [sp, 0x4]
+ lsls r4, 24
+ lsrs r6, r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r8, r5
+ cmp r5, 0
+ bne _0815E394
+ mov r2, r9
+ strh r0, [r2]
+ mov r6, r10
+ strh r1, [r6]
+ b _0815E3F2
+_0815E394:
+ cmp r5, r6
+ bcc _0815E3A2
+ mov r0, r9
+ strh r2, [r0]
+ mov r1, r10
+ strh r3, [r1]
+ b _0815E3F2
+_0815E3A2:
+ subs r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r2, r12
+ lsls r1, r2, 16
+ asrs r1, 16
+ lsls r5, r1, 8
+ lsls r0, r7, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 8
+ adds r1, r6, 0
+ bl __divsi3
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r5, r0
+ ldr r2, [sp]
+ lsls r1, r2, 16
+ asrs r1, 16
+ lsls r4, r1, 8
+ ldr r2, [sp, 0x4]
+ lsls r0, r2, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 8
+ adds r1, r6, 0
+ bl __divsi3
+ mov r6, r8
+ muls r6, r0
+ adds r0, r6, 0
+ adds r4, r0
+ asrs r5, 8
+ mov r0, r9
+ strh r5, [r0]
+ asrs r4, 8
+ mov r1, r10
+ strh r4, [r1]
+_0815E3F2:
+ 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_815E34C
+
+ thumb_func_start sub_815E404
+sub_815E404: @ 815E404
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x24
+ ble _0815E43A
+ ldr r3, =gTasks
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_0815E43A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815E404
+
+ thumb_func_start sub_815E444
+sub_815E444: @ 815E444
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x2E]
+ ldr r1, =move_anim_8072740
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A70C0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815E444
+
+ thumb_func_start sub_815E47C
+sub_815E47C: @ 815E47C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r0, 2
+ add r0, r9
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r7, r0, r1
+ ldr r0, =gAnimationBankAttacker
+ mov r10, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x1E]
+ mov r1, r10
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x20]
+ ldr r0, =gAnimationBankTarget
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x22]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl sub_80A5C6C
+ adds r4, r0, 0
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0
+ bl sub_80A861C
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0815E4EE
+ adds r0, 0x3
+_0815E4EE:
+ asrs r0, 2
+ adds r0, r4, r0
+ strh r0, [r7, 0x24]
+ ldr r4, =gUnknown_085CE84C
+ movs r0, 0x1E
+ ldrsh r5, [r7, r0]
+ movs r1, 0x20
+ ldrsh r6, [r7, r1]
+ mov r1, r8
+ ldrb r0, [r1]
+ bl sub_80A82E4
+ adds r3, r0, 0
+ subs r3, 0x5
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x26]
+ cmp r0, 0x40
+ beq _0815E5B8
+ ldr r4, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x10
+ strh r1, [r0, 0x2E]
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r7, 0x22]
+ strh r1, [r0, 0x32]
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r7, 0x24]
+ strh r1, [r0, 0x36]
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, =0x0000ffe0
+ strh r1, [r0, 0x38]
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl sub_80A68D4
+ mov r1, r10
+ ldrb r0, [r1]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0815E596
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_0815E596:
+ ldr r0, =sub_815E5CC
+ str r0, [r7]
+ b _0815E5BE
+ .pool
+_0815E5B8:
+ mov r0, r9
+ bl move_anim_task_del
+_0815E5BE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815E47C
+
+ thumb_func_start sub_815E5CC
+sub_815E5CC: @ 815E5CC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _0815E634
+ cmp r1, 0x1
+ bgt _0815E5F4
+ cmp r1, 0
+ beq _0815E5FE
+ b _0815E6D2
+ .pool
+_0815E5F4:
+ cmp r1, 0x2
+ beq _0815E658
+ cmp r1, 0x3
+ beq _0815E6CC
+ b _0815E6D2
+_0815E5FE:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0815E6D2
+ strh r1, [r4, 0xA]
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl sub_80A6900
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _0815E6D2
+ b _0815E6BE
+ .pool
+_0815E634:
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl sub_80A6900
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815E6D2
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ b _0815E6BE
+ .pool
+_0815E658:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0815E6D2
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r2, [r4, 0xC]
+ adds r2, 0x1
+ strh r2, [r4, 0xC]
+ ldr r5, =gSprites
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ movs r0, 0x1
+ ands r2, r0
+ adds r1, 0x3E
+ lsls r2, 2
+ ldrb r3, [r1]
+ subs r0, 0x6
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1]
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _0815E6D2
+ movs r0, 0x26
+ ldrsh r1, [r4, 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 r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+_0815E6BE:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0815E6D2
+ .pool
+_0815E6CC:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_0815E6D2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815E5CC
+
+ thumb_func_start sub_815E6D8
+sub_815E6D8: @ 815E6D8
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r6, r0, 0
+ cmp r1, 0
+ bne _0815E6F4
+ ldr r0, =gAnimationBankAttacker
+ b _0815E6F6
+ .pool
+_0815E6F4:
+ ldr r0, =gAnimationBankTarget
+_0815E6F6:
+ ldrb r5, [r0]
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r3, =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r1, r6, 0
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x3A]
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ movs r1, 0x1
+ cmp r0, 0
+ bne _0815E724
+ movs r3, 0x1
+ negs r3, r3
+ adds r1, r3, 0
+_0815E724:
+ strh r1, [r4, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0815E768
+ ldrb r2, [r4, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x8
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x47
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_80A861C
+ subs r0, 0x8
+ b _0815E772
+ .pool
+_0815E768:
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_80A861C
+ adds r0, 0x8
+_0815E772:
+ strh r0, [r4, 0x20]
+ ldr r0, =sub_815E784
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815E6D8
+
+ thumb_func_start sub_815E784
+sub_815E784: @ 815E784
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ cmp r1, 0x1
+ beq _0815E7CC
+ cmp r1, 0x1
+ bgt _0815E79A
+ cmp r1, 0
+ beq _0815E7A4
+ b _0815E83C
+_0815E79A:
+ cmp r1, 0x2
+ beq _0815E7DC
+ cmp r1, 0x3
+ beq _0815E802
+ b _0815E83C
+_0815E7A4:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0815E83C
+ strh r1, [r2, 0x30]
+ ldrh r0, [r2, 0x3C]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x32]
+ adds r0, 0x1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bne _0815E83C
+ b _0815E7FA
+_0815E7CC:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bne _0815E83C
+ b _0815E7F6
+_0815E7DC:
+ movs r0, 0x3C
+ ldrsh r1, [r2, r0]
+ lsls r1, 2
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _0815E83C
+_0815E7F6:
+ movs r0, 0
+ strh r0, [r2, 0x30]
+_0815E7FA:
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ b _0815E83C
+_0815E802:
+ movs r0, 0x3C
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bne _0815E83C
+ ldrh r0, [r2, 0x3A]
+ subs r0, 0x1
+ strh r0, [r2, 0x3A]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0815E836
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ strh r0, [r2, 0x2E]
+ b _0815E83C
+_0815E836:
+ adds r0, r2, 0
+ bl move_anim_8072740
+_0815E83C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815E784
+
+ thumb_func_start sub_815E840
+sub_815E840: @ 815E840
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r2, =gBattleAnimArgs
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _0815E85C
+ adds r0, r1, 0
+ bl move_anim_task_del
+ b _0815E884
+ .pool
+_0815E85C:
+ ldr r0, =gTasks
+ lsls r4, r1, 2
+ adds r4, r1
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r2, 0x2]
+ strh r0, [r4, 0x8]
+ ldrb r0, [r2]
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x26]
+ ldr r2, =gUnknown_085CE87C
+ adds r0, r4, 0
+ bl sub_80A7CFC
+ ldr r0, =sub_815E898
+ str r0, [r4]
+_0815E884:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815E840
+
+ thumb_func_start sub_815E898
+sub_815E898: @ 815E898
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0815E8F2
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0815E8E0
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x2
+ b _0815E8F0
+ .pool
+_0815E8E0:
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, =0x0000fffe
+_0815E8F0:
+ strh r1, [r0, 0x24]
+_0815E8F2:
+ adds r0, r4, 0
+ bl sub_80A7D34
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _0815E94E
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+ ldrh r0, [r4, 0x8]
+ subs r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0815E948
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =gUnknown_085CE87C
+ bl sub_80A7CFC
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ b _0815E94E
+ .pool
+_0815E948:
+ adds r0, r6, 0
+ bl move_anim_task_del
+_0815E94E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815E898
+
+ thumb_func_start sub_815E954
+sub_815E954: @ 815E954
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0815E970
+ ldr r4, =gAnimationBankAttacker
+ b _0815E972
+ .pool
+_0815E970:
+ ldr r4, =gAnimationBankTarget
+_0815E972:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_80A861C
+ strh r0, [r5, 0x22]
+ movs r1, 0x22
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x7
+ bgt _0815E996
+ movs r0, 0x8
+ strh r0, [r5, 0x22]
+_0815E996:
+ movs r2, 0
+ strh r2, [r5, 0x2E]
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x30]
+ strh r2, [r5, 0x32]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x34]
+ ldr r0, =sub_815E9BC
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815E954
+
+ thumb_func_start sub_815E9BC
+sub_815E9BC: @ 815E9BC
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x30
+ ldrsh r1, [r3, r2]
+ cmp r0, r1
+ blt _0815EA10
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ ldrh r1, [r3, 0x32]
+ adds r1, 0x1
+ movs r0, 0x1
+ ands r1, r0
+ strh r1, [r3, 0x32]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ lsls r1, 2
+ ldrb r2, [r0]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ movs r2, 0x32
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _0815EA10
+ ldrh r0, [r3, 0x34]
+ subs r0, 0x1
+ strh r0, [r3, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0815EA10
+ adds r0, r3, 0
+ bl move_anim_8072740
+_0815EA10:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815E9BC
+
+ thumb_func_start sub_815EA14
+sub_815EA14: @ 815EA14
+ push {lr}
+ adds r3, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0815EA44
+ ldrb r2, [r3, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x8
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x47
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+ movs r0, 0x64
+ strh r0, [r3, 0x20]
+ movs r0, 0x1
+ b _0815EA4A
+ .pool
+_0815EA44:
+ movs r0, 0x8C
+ strh r0, [r3, 0x20]
+ ldr r0, =0x0000ffff
+_0815EA4A:
+ strh r0, [r3, 0x3C]
+ movs r0, 0x38
+ strh r0, [r3, 0x22]
+ ldr r0, =sub_815EA60
+ str r0, [r3, 0x1C]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815EA14
+
+ thumb_func_start sub_815EA60
+sub_815EA60: @ 815EA60
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ bls _0815EA6E
+ b _0815EC40
+_0815EA6E:
+ lsls r0, 2
+ ldr r1, =_0815EA7C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0815EA7C:
+ .4byte _0815EAA0
+ .4byte _0815EAD2
+ .4byte _0815EAE4
+ .4byte _0815EB24
+ .4byte _0815EB36
+ .4byte _0815EB74
+ .4byte _0815EBD8
+ .4byte _0815EBF8
+ .4byte _0815EC1E
+_0815EAA0:
+ movs r3, 0x3C
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ ldrh r1, [r4, 0x22]
+ subs r1, r0
+ strh r1, [r4, 0x22]
+ ldrh r2, [r4, 0x30]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _0815EAC2
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ ldrh r0, [r4, 0x20]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+_0815EAC2:
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ beq _0815EAD0
+ b _0815EC40
+_0815EAD0:
+ b _0815EC12
+_0815EAD2:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ beq _0815EAE2
+ b _0815EC40
+_0815EAE2:
+ b _0815EC12
+_0815EAE4:
+ ldrh r2, [r4, 0x30]
+ adds r2, 0x1
+ strh r2, [r4, 0x30]
+ movs r3, 0x3C
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r3, =gSineTable
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ ldrh r1, [r4, 0x3C]
+ muls r0, r1
+ strh r0, [r4, 0x24]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0xC
+ beq _0815EB1C
+ b _0815EC40
+_0815EB1C:
+ b _0815EC12
+ .pool
+_0815EB24:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ beq _0815EB34
+ b _0815EC40
+_0815EB34:
+ b _0815EC12
+_0815EB36:
+ ldrh r2, [r4, 0x30]
+ adds r2, 0x1
+ strh r2, [r4, 0x30]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldrh r0, [r4, 0x22]
+ subs r0, r1
+ strh r0, [r4, 0x22]
+ ldr r3, =gSineTable
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ ldrh r1, [r4, 0x3C]
+ muls r0, r1
+ strh r0, [r4, 0x24]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0xC
+ bne _0815EC40
+ b _0815EC16
+ .pool
+_0815EB74:
+ ldrh r2, [r4, 0x30]
+ adds r2, 0x1
+ strh r2, [r4, 0x30]
+ movs r3, 0x3C
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r3, =gSineTable
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ ldrh r1, [r4, 0x3C]
+ muls r0, r1
+ strh r0, [r4, 0x24]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0xF
+ bne _0815EBC0
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r3, =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+_0815EBC0:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x12
+ bne _0815EC40
+ b _0815EC12
+ .pool
+_0815EBD8:
+ movs r3, 0x3C
+ ldrsh r0, [r4, r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ ldrh r0, [r4, 0x20]
+ adds r1, r0
+ strh r1, [r4, 0x20]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bne _0815EC40
+ b _0815EC12
+_0815EBF8:
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ ldrh r3, [r4, 0x20]
+ adds r0, r3
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _0815EC40
+_0815EC12:
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_0815EC16:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0815EC40
+_0815EC1E:
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldrh r0, [r4, 0x20]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _0815EC40
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0815EC40:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815EA60
+
+ thumb_func_start sub_815EC48
+sub_815EC48: @ 815EC48
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r6, r1, r0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x26]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815ECD0
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x1
+ bne _0815ECB4
+ ldr r5, =gAnimationBankAttacker
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_80A5C6C
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r1, [r5]
+ movs r0, 0x2
+ eors r0, r1
+ movs r1, 0
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ ble _0815ECAC
+ strh r7, [r6, 0x24]
+ b _0815ECD4
+ .pool
+_0815ECAC:
+ ldr r0, =0x0000ffff
+ b _0815ECD2
+ .pool
+_0815ECB4:
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815ECD0
+ ldr r0, =0x0000ffff
+ b _0815ECD2
+ .pool
+_0815ECD0:
+ movs r0, 0x1
+_0815ECD2:
+ strh r0, [r6, 0x24]
+_0815ECD4:
+ ldr r0, =sub_815ECE4
+ str r0, [r6]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815EC48
+
+ thumb_func_start sub_815ECE4
+sub_815ECE4: @ 815ECE4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r3, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x8
+ bls _0815ECFE
+ b _0815EE78
+_0815ECFE:
+ lsls r0, 2
+ ldr r1, =_0815ED10
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0815ED10:
+ .4byte _0815ED34
+ .4byte _0815ED46
+ .4byte _0815ED78
+ .4byte _0815EDA8
+ .4byte _0815EDCE
+ .4byte _0815EDF8
+ .4byte _0815EE08
+ .4byte _0815EE28
+ .4byte _0815EE60
+_0815ED34:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ beq _0815ED44
+ b _0815EE78
+_0815ED44:
+ b _0815EE50
+_0815ED46:
+ ldr r2, =gSprites
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r2, 0x24
+ ldrsh r0, [r3, r2]
+ lsls r2, r0, 1
+ adds r2, r0
+ ldrh r0, [r1, 0x24]
+ subs r0, r2
+ strh r0, [r1, 0x24]
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ beq _0815ED72
+ b _0815EE78
+_0815ED72:
+ b _0815EE50
+ .pool
+_0815ED78:
+ ldr r2, =gSprites
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0x24
+ ldrsh r2, [r3, r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ ldrh r2, [r1, 0x24]
+ adds r0, r2
+ strh r0, [r1, 0x24]
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _0815EE78
+ b _0815EE50
+ .pool
+_0815EDA8:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _0815EE78
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldrh r1, [r3, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bne _0815EE54
+ adds r0, r1, 0x1
+ strh r0, [r3, 0xC]
+ movs r0, 0x1
+ strh r0, [r3, 0x8]
+ b _0815EE78
+_0815EDCE:
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x24]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ strh r1, [r0, 0x24]
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _0815EE78
+ b _0815EE50
+ .pool
+_0815EDF8:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _0815EE78
+ b _0815EE50
+_0815EE08:
+ ldr r2, =gSprites
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0x24
+ ldrsh r2, [r3, r0]
+ lsls r2, 2
+ ldrh r0, [r1, 0x24]
+ subs r0, r2
+ b _0815EE40
+ .pool
+_0815EE28:
+ ldr r2, =gSprites
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r2, 0x24
+ ldrsh r0, [r3, r2]
+ lsls r0, 2
+ ldrh r2, [r1, 0x24]
+ adds r0, r2
+_0815EE40:
+ strh r0, [r1, 0x24]
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _0815EE78
+_0815EE50:
+ movs r0, 0
+ strh r0, [r3, 0xA]
+_0815EE54:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _0815EE78
+ .pool
+_0815EE60:
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ adds r0, r4, 0
+ bl move_anim_task_del
+_0815EE78:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815ECE4
+
+ thumb_func_start sub_815EE84
+sub_815EE84: @ 815EE84
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0815EEA8
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80A69CC
+ ldr r0, =gAnimationBankAttacker
+ b _0815EEAA
+ .pool
+_0815EEA8:
+ ldr r0, =gAnimationBankTarget
+_0815EEAA:
+ ldrb r0, [r0]
+ strh r0, [r4, 0x3C]
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0815EECE
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+_0815EECE:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A8328
+ movs r2, 0x3
+ ands r2, r0
+ lsls r2, 2
+ ldrb r3, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ ldrb r0, [r4, 0x1]
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4, 0x1]
+ ldr r0, =sub_815EF08
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815EE84
+
+ thumb_func_start sub_815EF08
+sub_815EF08: @ 815EF08
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _0815EF16
+ b _0815F106
+_0815EF16:
+ lsls r0, 2
+ ldr r1, =_0815EF24
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0815EF24:
+ .4byte _0815EF38
+ .4byte _0815F038
+ .4byte _0815F0A0
+ .4byte _0815F0B4
+ .4byte _0815F100
+_0815EF38:
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x5
+ bhi _0815EF68
+ lsls r0, 2
+ ldr r1, =_0815EF50
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0815EF50:
+ .4byte _0815EF6C
+ .4byte _0815EF88
+ .4byte _0815EFAA
+ .4byte _0815EFC6
+ .4byte _0815EF6C
+ .4byte _0815EFEC
+_0815EF68:
+ movs r0, 0
+ strh r0, [r4, 0x3A]
+_0815EF6C:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x5
+ bl sub_80A861C
+ subs r0, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ b _0815EFE0
+_0815EF88:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x5
+ bl sub_80A861C
+ subs r0, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl sub_80A861C
+ adds r0, 0x4
+ b _0815EFE6
+_0815EFAA:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x4
+ bl sub_80A861C
+ adds r0, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ b _0815EFE0
+_0815EFC6:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x4
+ bl sub_80A861C
+ adds r0, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+_0815EFE0:
+ bl sub_80A861C
+ subs r0, 0x4
+_0815EFE6:
+ lsls r0, 16
+ lsrs r1, r0, 16
+ b _0815F00C
+_0815EFEC:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r1, r0, 24
+_0815F00C:
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x4
+ bne _0815F018
+ movs r0, 0x18
+ b _0815F022
+_0815F018:
+ cmp r0, 0x5
+ bne _0815F020
+ movs r0, 0x6
+ b _0815F022
+_0815F020:
+ movs r0, 0xC
+_0815F022:
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ strh r1, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ b _0815F0F8
+_0815F038:
+ adds r0, r4, 0
+ bl sub_80A6F3C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815F106
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ beq _0815F070
+ cmp r0, 0x5
+ beq _0815F090
+ ldrh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ strh r1, [r4, 0x2E]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ b _0815F088
+_0815F070:
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ strh r1, [r4, 0x38]
+_0815F088:
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+ strh r0, [r4, 0x3A]
+ b _0815F106
+_0815F090:
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ movs r1, 0x10
+ strh r1, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ movs r0, 0x3
+ strh r0, [r4, 0x38]
+ b _0815F106
+_0815F0A0:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _0815F106
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ b _0815F106
+_0815F0B4:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0815F0C6
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ strh r0, [r4, 0x30]
+ b _0815F0CC
+_0815F0C6:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+_0815F0CC:
+ ldrh r1, [r4, 0x32]
+ lsls r1, 8
+ ldrh r0, [r4, 0x30]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ bne _0815F106
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_0815F0F8:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ b _0815F106
+_0815F100:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0815F106:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815EF08
+
+ thumb_func_start sub_815F10C
+sub_815F10C: @ 815F10C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ subs r0, r1
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ muls r0, r1
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ adds r5, r0, 0
+ strh r5, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ subs r0, r1
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ muls r0, r1
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ adds r3, r0, 0
+ strh r3, [r4, 0x26]
+ ldrh r1, [r4, 0x38]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0815F16A
+ ldr r0, =gUnknown_085CE3A0
+ ldrh r1, [r4, 0x20]
+ adds r1, r5
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r2, [r4, 0x22]
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x5
+ bl CreateSprite
+_0815F16A:
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _0815F17C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0815F17C:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815F10C
+
+ thumb_func_start sub_815F18C
+sub_815F18C: @ 815F18C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, =gAnimationBankTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_80A5C6C
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_80A5C6C
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815F1B8
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815F1D0
+_0815F1B8:
+ ldr r2, =gBattleAnimArgs
+ ldrh r1, [r5, 0x20]
+ ldrh r0, [r2]
+ subs r0, r1, r0
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r2, 0x4]
+ subs r1, r0
+ b _0815F1DE
+ .pool
+_0815F1D0:
+ ldr r2, =gBattleAnimArgs
+ ldrh r1, [r5, 0x20]
+ ldrh r0, [r2]
+ adds r0, r1, r0
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r2, 0x4]
+ adds r1, r0
+_0815F1DE:
+ strh r1, [r5, 0x32]
+ adds r3, r2, 0
+ ldrh r1, [r5, 0x22]
+ ldrh r2, [r3, 0x2]
+ adds r2, r1, r2
+ strh r2, [r5, 0x30]
+ ldrh r0, [r3, 0x6]
+ adds r1, r0
+ strh r1, [r5, 0x34]
+ ldrh r0, [r3, 0x8]
+ strh r0, [r5, 0x36]
+ ldrh r0, [r5, 0x2E]
+ strh r0, [r5, 0x20]
+ strh r2, [r5, 0x22]
+ ldr r0, =sub_815F10C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815F18C
+
+ thumb_func_start sub_815F20C
+sub_815F20C: @ 815F20C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r2, r5, 0
+ ldr r0, =gTasks
+ mov r9, r0
+ lsls r7, r6, 2
+ adds r0, r7, r6
+ lsls r0, 3
+ mov r8, r0
+ mov r4, r8
+ add r4, r9
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0815F254
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80A7270
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ b _0815F2A0
+ .pool
+_0815F254:
+ cmp r0, 0x1
+ bne _0815F2AC
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x60
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ subs r0, 0xD
+ strh r0, [r4, 0xC]
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ movs r0, 0xC
+ ldrsh r2, [r4, r0]
+ adds r0, r5, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bne _0815F310
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ adds r0, r5, 0
+ bl sub_80A7344
+ ldr r1, =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]
+_0815F2A0:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0815F310
+ .pool
+_0815F2AC:
+ ldr r4, =gAnimationBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0
+ bl refresh_graphics_maybe
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815F2EE
+ ldr r3, =gSprites
+ ldr r2, =gBankSpriteIds
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x10
+ adds r0, r1
+ ldr r1, =gUnknown_082FF6C0
+ str r1, [r0]
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ bl StartSpriteAffineAnim
+_0815F2EE:
+ mov r4, r9
+ adds r3, r7, 0
+ ldr r5, =sub_815F330
+ movs r1, 0xF
+ mov r2, r8
+ adds r0, r4, r2
+ adds r0, 0x26
+ movs r2, 0
+_0815F2FE:
+ strh r2, [r0]
+ subs r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _0815F2FE
+ adds r0, r3, r6
+ lsls r0, 3
+ adds r0, r4
+ str r5, [r0]
+_0815F310:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815F20C
+
+ thumb_func_start sub_815F330
+sub_815F330: @ 815F330
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _0815F394
+ cmp r5, 0x1
+ bgt _0815F360
+ cmp r5, 0
+ beq _0815F36A
+ b _0815F482
+ .pool
+_0815F360:
+ cmp r5, 0x2
+ beq _0815F400
+ cmp r5, 0x3
+ beq _0815F43C
+ b _0815F482
+_0815F36A:
+ ldr r0, =gSprites
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, =0x0000ff38
+ strh r0, [r1, 0x26]
+ movs r0, 0xC8
+ strh r0, [r1, 0x24]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ subs r0, 0xCD
+ ands r0, r2
+ strb r0, [r1]
+ strh r5, [r4, 0x1C]
+ b _0815F42E
+ .pool
+_0815F394:
+ ldrh r1, [r4, 0x1C]
+ adds r1, 0x70
+ movs r5, 0
+ strh r1, [r4, 0x1C]
+ ldr r2, =gSprites
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ adds r2, r0, r2
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r3, [r2, 0x26]
+ adds r1, r3
+ strh r1, [r2, 0x26]
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ blt _0815F3C4
+ strh r5, [r2, 0x24]
+_0815F3C4:
+ movs r1, 0x26
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ ble _0815F3CE
+ strh r5, [r2, 0x26]
+_0815F3CE:
+ movs r3, 0x26
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _0815F482
+ movs r0, 0x40
+ negs r0, r0
+ bl BattleAnimGetPanControl
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x7D
+ bl PlaySE12WithPanning
+ ldr r1, =0xfffff800
+ adds r0, r1, 0
+ ldrh r2, [r4, 0x1C]
+ adds r0, r2
+ strh r0, [r4, 0x1C]
+ b _0815F42E
+ .pool
+_0815F400:
+ ldrh r0, [r4, 0x1C]
+ subs r0, 0x70
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0815F410
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+_0815F410:
+ ldr r0, =gSprites
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r4, 0x1C]
+ lsls r2, 16
+ asrs r2, 24
+ ldrh r0, [r1, 0x26]
+ subs r0, r2
+ strh r0, [r1, 0x26]
+ movs r3, 0x1C
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _0815F482
+_0815F42E:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0815F482
+ .pool
+_0815F43C:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x70
+ strh r0, [r4, 0x1C]
+ ldr r2, =gSprites
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r2
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r2, [r1, 0x26]
+ adds r0, r2
+ strh r0, [r1, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ ble _0815F460
+ movs r0, 0
+ strh r0, [r1, 0x26]
+_0815F460:
+ movs r3, 0x26
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _0815F482
+ movs r0, 0x40
+ negs r0, r0
+ bl BattleAnimGetPanControl
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x7D
+ bl PlaySE12WithPanning
+ adds r0, r6, 0
+ bl move_anim_task_del
+_0815F482:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815F330
+
+ thumb_func_start sub_815F48C
+sub_815F48C: @ 815F48C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, =gAnimationBankTarget
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815F4B8
+ ldrb r0, [r4]
+ bl sub_80A82E4
+ subs r0, 0x2
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldr r4, =0x0000ff70
+ b _0815F4C8
+ .pool
+_0815F4B8:
+ ldrb r0, [r4]
+ bl sub_80A82E4
+ adds r0, 0x2
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldr r4, =0x0000ffa0
+_0815F4C8:
+ ldr r0, =gAnimationBankTarget
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ strh r4, [r5, 0x26]
+ ldr r0, =sub_815F4F0
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815F48C
+
+ thumb_func_start sub_815F4F0
+sub_815F4F0: @ 815F4F0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _0815F4FE
+ b _0815F61A
+_0815F4FE:
+ lsls r0, 2
+ ldr r1, =_0815F50C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0815F50C:
+ .4byte _0815F520
+ .4byte _0815F544
+ .4byte _0815F584
+ .4byte _0815F5B4
+ .4byte _0815F5E0
+_0815F520:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0xA
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ blt _0815F61A
+ movs r0, 0x3F
+ bl BattleAnimGetPanControl
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xCD
+ bl PlaySE12WithPanning
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ b _0815F5D8
+_0815F544:
+ ldrh r1, [r4, 0x30]
+ adds r1, 0x4
+ movs r5, 0
+ strh r1, [r4, 0x30]
+ ldr r2, =gSineTable
+ movs r3, 0x30
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _0815F61A
+ movs r0, 0x3F
+ bl BattleAnimGetPanControl
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xCD
+ bl PlaySE12WithPanning
+ strh r5, [r4, 0x30]
+ strh r5, [r4, 0x26]
+ b _0815F5D8
+ .pool
+_0815F584:
+ ldrh r1, [r4, 0x30]
+ adds r1, 0x6
+ movs r3, 0
+ strh r1, [r4, 0x30]
+ ldr r2, =gSineTable
+ movs r5, 0x30
+ ldrsh r0, [r4, r5]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 20
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _0815F61A
+ strh r3, [r4, 0x30]
+ strh r3, [r4, 0x26]
+ b _0815F5D8
+ .pool
+_0815F5B4:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _0815F61A
+ movs r0, 0x3F
+ bl BattleAnimGetPanControl
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xC0
+ bl PlaySE12WithPanning
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_0815F5D8:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0815F61A
+_0815F5E0:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _0815F61A
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x32]
+ adds r1, 0x1
+ strh r1, [r4, 0x32]
+ movs r0, 0x1
+ ands r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ lsls r1, 2
+ ldrb r2, [r3]
+ subs r0, 0x6
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ bne _0815F61A
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0815F61A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815F4F0
+
+ thumb_func_start sub_815F620
+sub_815F620: @ 815F620
+ 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
+ bl IsContest
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0
+ bne _0815F66E
+ movs r0, 0x1
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ lsrs r1, r0, 16
+ mov r10, r1
+ asrs r6, r0, 16
+ cmp r6, 0
+ blt _0815F66E
+ movs r0, 0x1
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ lsrs r1, r0, 16
+ mov r9, r1
+ asrs r1, r0, 16
+ cmp r1, 0
+ bge _0815F67C
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl obj_delete_but_dont_free_vram
+_0815F66E:
+ mov r0, r8
+ bl move_anim_task_del
+ b _0815F780
+ .pool
+_0815F67C:
+ ldr r4, =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r5, r0, r4
+ ldrh r0, [r5, 0x24]
+ adds r0, 0x18
+ strh r0, [r5, 0x24]
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r6, r0, r4
+ ldrh r0, [r6, 0x24]
+ subs r0, 0x18
+ strh r0, [r6, 0x24]
+ strh r7, [r5, 0x2E]
+ strh r7, [r6, 0x2E]
+ strh r7, [r5, 0x30]
+ strh r7, [r6, 0x30]
+ strh r7, [r5, 0x32]
+ strh r7, [r6, 0x32]
+ movs r0, 0x10
+ strh r0, [r5, 0x34]
+ ldr r0, =0x0000fff0
+ strh r0, [r6, 0x34]
+ strh r7, [r5, 0x36]
+ movs r0, 0x80
+ strh r0, [r6, 0x36]
+ movs r0, 0x18
+ strh r0, [r5, 0x38]
+ strh r0, [r6, 0x38]
+ mov r0, r8
+ strh r0, [r5, 0x3A]
+ strh r0, [r6, 0x3A]
+ strh r7, [r5, 0x3C]
+ strh r7, [r6, 0x3C]
+ ldr r2, =gTasks
+ mov r1, r8
+ lsls r3, r1, 2
+ adds r0, r3, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x2
+ strh r1, [r0, 0x8]
+ ldr r0, =gUnknown_020244D0
+ ldr r1, [r0]
+ ldr r0, =gAnimationBankTarget
+ ldrb r0, [r0]
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ adds r7, r4, 0
+ mov r12, r3
+ cmp r0, 0
+ bne _0815F720
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r2, r6, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ b _0815F736
+ .pool
+_0815F720:
+ adds r1, r5, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ adds r1, r6, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+_0815F736:
+ mov r1, r9
+ lsls r0, r1, 16
+ asrs r0, 16
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r4, r2, r7
+ ldrb r1, [r4, 0x1]
+ movs r3, 0xD
+ negs r3, r3
+ adds r0, r3, 0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ mov r1, r10
+ lsls r0, r1, 16
+ asrs r0, 16
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r4, r1, r7
+ ldrb r0, [r4, 0x1]
+ ands r3, r0
+ strb r3, [r4, 0x1]
+ adds r3, r7, 0
+ adds r3, 0x1C
+ adds r2, r3
+ ldr r0, =sub_815F7C4
+ str r0, [r2]
+ adds r1, r3
+ str r0, [r1]
+ mov r0, r12
+ add r0, r8
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r0, r1
+ ldr r1, =sub_815F79C
+ str r1, [r0]
+_0815F780:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815F620
+
+ thumb_func_start sub_815F79C
+sub_815F79C: @ 815F79C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0815F7BA
+ adds r0, r2, 0
+ bl move_anim_task_del
+_0815F7BA:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815F79C
+
+ thumb_func_start sub_815F7C4
+sub_815F7C4: @ 815F7C4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0815F80E
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldr r0, =gUnknown_020244D0
+ ldr r1, [r0]
+ ldr r0, =gAnimationBankTarget
+ ldrb r0, [r0]
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0815F80E
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r1, r2, 29
+ lsrs r1, 31
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_0815F80E:
+ ldrh r0, [r4, 0x34]
+ ldrh r1, [r4, 0x36]
+ adds r0, r1
+ movs r5, 0
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x36]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0815F840
+ cmp r0, 0x1
+ beq _0815F858
+ b _0815F896
+ .pool
+_0815F840:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ bne _0815F896
+ strh r5, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0815F896
+_0815F858:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ ble _0815F896
+ strh r5, [r4, 0x32]
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x2
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0815F896
+ ldr r3, =gTasks
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl obj_delete_but_dont_free_vram
+_0815F896:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815F7C4
+
+ thumb_func_start sub_815F8A0
+sub_815F8A0: @ 815F8A0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, =gBattleAnimArgs
+ movs r2, 0
+ strh r2, [r3, 0xE]
+ ldr r1, =gHappinessMoveAnim
+ ldrb r0, [r1]
+ ldrb r1, [r1]
+ adds r0, r1, 0
+ subs r0, 0x3D
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r1, 0
+ cmp r0, 0x1E
+ bhi _0815F8C4
+ movs r0, 0x1
+ strh r0, [r3, 0xE]
+_0815F8C4:
+ adds r0, r2, 0
+ subs r0, 0x5C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6C
+ bhi _0815F8D4
+ movs r0, 0x2
+ strh r0, [r3, 0xE]
+_0815F8D4:
+ lsls r0, r1, 24
+ lsrs r0, 24
+ cmp r0, 0xC8
+ bls _0815F8E0
+ movs r0, 0x3
+ strh r0, [r3, 0xE]
+_0815F8E0:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815F8A0
+
+ thumb_func_start sub_815F8F4
+sub_815F8F4: @ 815F8F4
+ 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
+ mov r8, r0
+ ldr r1, =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x4
+ bls _0815F91A
+ b _0815FE68
+_0815F91A:
+ lsls r0, 2
+ ldr r1, =_0815F92C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0815F92C:
+ .4byte _0815F940
+ .4byte _0815F9F4
+ .4byte _0815FBE8
+ .4byte _0815FD08
+ .4byte _0815FD8C
+_0815F940:
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, =gTasks
+ mov r2, r8
+ lsls r4, r2, 2
+ adds r0, r4, r2
+ lsls r0, 3
+ adds r6, r0, r1
+ movs r3, 0x80
+ lsls r3, 4
+ adds r0, r3, 0
+ ldrh r1, [r6, 0xA]
+ adds r0, r1
+ strh r0, [r6, 0xA]
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ mov r9, r4
+ cmp r0, 0
+ bne _0815F998
+ ldr r2, =gSprites
+ lsls r3, r7, 4
+ adds r1, r3, r7
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r6, 0xA]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r4, [r1, 0x24]
+ adds r0, r4
+ strh r0, [r1, 0x24]
+ b _0815F9B2
+ .pool
+_0815F998:
+ ldr r3, =gSprites
+ lsls r4, r7, 4
+ adds r2, r4, r7
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r6, 0xA]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ adds r2, r3, 0
+ adds r3, r4, 0
+_0815F9B2:
+ ldr r1, =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrb r0, [r4, 0xA]
+ strh r0, [r4, 0xA]
+ adds r1, r3, r7
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x24]
+ ldrh r1, [r1, 0x20]
+ adds r0, r1
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 14
+ adds r0, r1
+ movs r1, 0x98
+ lsls r1, 17
+ cmp r0, r1
+ bhi _0815F9DE
+ b _0815FE68
+_0815F9DE:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0815FE68
+ .pool
+_0815F9F4:
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815FA28
+ ldr r0, =gUnknown_02039F34
+ ldr r0, [r0]
+ ldr r0, [r0, 0x18]
+ ldr r2, [r0, 0x8]
+ mov r10, r2
+ ldr r3, [r0, 0xC]
+ mov r9, r3
+ ldrh r6, [r0]
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl sub_80A82E4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r7, 0
+ b _0815FB4E
+ .pool
+_0815FA28:
+ ldr r4, =gAnimationBankAttacker
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815FAC8
+ ldr r7, =gBattlePartyID
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, =gPlayerParty
+ adds r0, r5
+ movs r1, 0
+ bl GetMonData
+ mov r10, r0
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x1
+ bl GetMonData
+ mov r9, r0
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldrb r2, [r4]
+ ldr r1, [r0]
+ lsls r0, r2, 2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _0815FA9C
+ lsls r0, r2, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _0815FA9E
+ .pool
+_0815FA9C:
+ ldrh r6, [r1, 0x2]
+_0815FA9E:
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ ldr r2, =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r7, 0
+ movs r5, 0x88
+ lsls r5, 1
+ b _0815FB50
+ .pool
+_0815FAC8:
+ ldr r7, =gBattlePartyID
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, =gEnemyParty
+ adds r0, r5
+ movs r1, 0
+ bl GetMonData
+ mov r10, r0
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x1
+ bl GetMonData
+ mov r9, r0
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldrb r2, [r4]
+ ldr r1, [r0]
+ lsls r0, r2, 2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _0815FB2C
+ lsls r0, r2, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _0815FB2E
+ .pool
+_0815FB2C:
+ ldrh r6, [r1, 0x2]
+_0815FB2E:
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ ldr r2, =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r7, 0x1
+_0815FB4E:
+ ldr r5, =0x0000ffe0
+_0815FB50:
+ ldr r0, =gAnimationBankTarget
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, r5, 16
+ asrs r3, 16
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ mov r4, r10
+ str r4, [sp, 0x8]
+ mov r0, r9
+ str r0, [sp, 0xC]
+ ldr r4, =gAnimationBankAttacker
+ ldrb r0, [r4]
+ str r0, [sp, 0x10]
+ movs r0, 0
+ str r0, [sp, 0x14]
+ adds r0, r6, 0
+ adds r1, r7, 0
+ movs r2, 0
+ bl sub_80A8394
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gUnknown_020244D0
+ ldr r1, [r0]
+ ldrb r0, [r4]
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0
+ beq _0815FBBA
+ ldr r1, =gSprites
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ lsls r0, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ orrs r0, r1
+ ldr r3, =0x00007fff
+ movs r1, 0x10
+ movs r2, 0x6
+ bl BlendPalette
+_0815FBBA:
+ ldr r0, =gTasks
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ strh r5, [r1, 0x26]
+ b _0815FD7E
+ .pool
+_0815FBE8:
+ ldr r1, =gTasks
+ mov r0, r8
+ lsls r4, r0, 2
+ adds r0, r4, r0
+ lsls r0, 3
+ adds r6, r0, r1
+ ldrh r0, [r6, 0x26]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0x80
+ lsls r1, 4
+ adds r0, r1, 0
+ ldrh r2, [r6, 0xA]
+ adds r0, r2
+ strh r0, [r6, 0xA]
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ mov r9, r4
+ cmp r0, 0
+ bne _0815FC40
+ ldr r3, =gSprites
+ lsls r4, r5, 4
+ adds r2, r4, r5
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r6, 0xA]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ adds r2, r3, 0
+ adds r3, r4, 0
+ b _0815FC56
+ .pool
+_0815FC40:
+ ldr r2, =gSprites
+ lsls r3, r5, 4
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r6, 0xA]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r4, [r1, 0x24]
+ adds r0, r4
+ strh r0, [r1, 0x24]
+_0815FC56:
+ ldr r1, =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r6, r0, r1
+ ldrb r0, [r6, 0xA]
+ strh r0, [r6, 0xA]
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x24]
+ ldrh r1, [r1, 0x20]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r1, 0x24
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0815FCD6
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815FCB4
+ lsls r4, r5, 16
+ asrs r4, 16
+ ldr r0, =gAnimationBankTarget
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bge _0815FCD6
+ b _0815FCCA
+ .pool
+_0815FCB4:
+ lsls r4, r5, 16
+ asrs r4, 16
+ ldr r0, =gAnimationBankTarget
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ ble _0815FCD6
+_0815FCCA:
+ ldrh r0, [r6, 0x24]
+ adds r0, 0x1
+ strh r0, [r6, 0x24]
+ ldr r1, =gBattleAnimArgs
+ ldr r0, =0x0000ffff
+ strh r0, [r1, 0xE]
+_0815FCD6:
+ lsls r0, r5, 16
+ movs r2, 0x80
+ lsls r2, 14
+ adds r0, r2
+ movs r1, 0x98
+ lsls r1, 17
+ cmp r0, r1
+ bhi _0815FCE8
+ b _0815FE68
+_0815FCE8:
+ ldr r0, =gTasks
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ b _0815FD7E
+ .pool
+_0815FD08:
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, =gTasks
+ mov r3, r8
+ lsls r4, r3, 2
+ adds r0, r4, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x26]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ ldr r5, =gSprites
+ adds r0, r5
+ bl sub_80A8610
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ mov r9, r4
+ cmp r0, 0
+ bne _0815FD60
+ lsls r1, r7, 4
+ adds r1, r7
+ lsls r1, 2
+ adds r1, r5
+ ldrh r0, [r1, 0x20]
+ negs r0, r0
+ subs r0, 0x20
+ strh r0, [r1, 0x24]
+ b _0815FD74
+ .pool
+_0815FD60:
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ adds r0, r5
+ ldrh r2, [r0, 0x20]
+ movs r4, 0x88
+ lsls r4, 1
+ adds r1, r4, 0
+ subs r1, r2
+ strh r1, [r0, 0x24]
+_0815FD74:
+ ldr r0, =gTasks
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+_0815FD7E:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0815FE68
+ .pool
+_0815FD8C:
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, =gTasks
+ mov r0, r8
+ lsls r4, r0, 2
+ adds r0, r4, r0
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r1, 0x80
+ lsls r1, 4
+ adds r0, r1, 0
+ ldrh r3, [r2, 0xA]
+ adds r0, r3
+ strh r0, [r2, 0xA]
+ ldr r0, =gAnimationBankAttacker
+ mov r10, r0
+ ldrb r0, [r0]
+ str r2, [sp, 0x18]
+ bl GetBankSide
+ lsls r0, 24
+ mov r9, r4
+ ldr r2, [sp, 0x18]
+ cmp r0, 0
+ bne _0815FE0C
+ ldr r1, =gSprites
+ lsls r5, r7, 4
+ adds r0, r5, r7
+ lsls r0, 2
+ adds r6, r0, r1
+ ldrh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r6, 0x24]
+ adds r0, r1
+ strh r0, [r6, 0x24]
+ movs r2, 0x24
+ ldrsh r4, [r6, r2]
+ movs r3, 0x20
+ ldrsh r0, [r6, r3]
+ adds r4, r0
+ mov r1, r10
+ ldrb r0, [r1]
+ movs r1, 0
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r5, 0
+ cmp r4, r0
+ blt _0815FE44
+ movs r2, 0
+ strh r2, [r6, 0x24]
+ b _0815FE44
+ .pool
+_0815FE0C:
+ ldr r1, =gSprites
+ lsls r5, r7, 4
+ adds r0, r5, r7
+ lsls r0, 2
+ adds r6, r0, r1
+ ldrh r1, [r2, 0xA]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r6, 0x24]
+ subs r0, r1
+ strh r0, [r6, 0x24]
+ movs r3, 0x24
+ ldrsh r4, [r6, r3]
+ movs r1, 0x20
+ ldrsh r0, [r6, r1]
+ adds r4, r0
+ mov r2, r10
+ ldrb r0, [r2]
+ movs r1, 0
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r5, 0
+ cmp r4, r0
+ bgt _0815FE44
+ movs r4, 0
+ strh r4, [r6, 0x24]
+_0815FE44:
+ ldr r1, =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0xA]
+ strh r1, [r0, 0xA]
+ ldr r1, =gSprites
+ adds r0, r3, r7
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x24
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0815FE68
+ mov r0, r8
+ bl move_anim_task_del
+_0815FE68:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815F8F4
+
+ thumb_func_start sub_815FE80
+sub_815FE80: @ 815FE80
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0815FE92
+ cmp r0, 0x1
+ beq _0815FF3A
+ b _0815FFBC
+_0815FE92:
+ ldr r0, =gBattleAnimArgs
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0815FF2C
+ movs r0, 0x3F
+ bl BattleAnimGetPanControl
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x7A
+ bl PlaySE12WithPanning
+ ldr r0, =gAnimationBankTarget
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ strh r0, [r4, 0x22]
+ ldr r0, =0x0000ffe0
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0815FFBC
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815FFBC
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ ldr r2, =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ b _0815FFBC
+ .pool
+_0815FF2C:
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0815FFBC
+_0815FF3A:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x30]
+ adds r0, r2, 0x5
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7F
+ ble _0815FF6E
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r0, r2, 0
+ subs r0, 0x7A
+ strh r0, [r4, 0x30]
+_0815FF6E:
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815FF9C
+ ldrh r2, [r4, 0x32]
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+ adds r1, r2, 0
+ b _0815FFA8
+ .pool
+_0815FF9C:
+ ldrh r1, [r4, 0x32]
+ lsls r0, r1, 16
+ asrs r0, 24
+ ldrh r2, [r4, 0x24]
+ adds r0, r2
+ strh r0, [r4, 0x24]
+_0815FFA8:
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x2
+ bne _0815FFBC
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0815FFBC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815FE80
+
+ thumb_func_start sub_815FFC4
+sub_815FFC4: @ 815FFC4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x26
+ ldrsh r0, [r0, r2]
+ adds r3, r1, 0
+ cmp r0, 0x4
+ bls _0815FFE0
+ b _08160132
+_0815FFE0:
+ lsls r0, 2
+ ldr r1, =_0815FFF4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0815FFF4:
+ .4byte _08160008
+ .4byte _08160058
+ .4byte _081600B4
+ .4byte _081600CC
+ .4byte _08160132
+_08160008:
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r0, =gAnimationBankTarget
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r0, 0x6
+ strh r0, [r1, 0x8]
+ cmp r5, r2
+ ble _0816003E
+ negs r0, r0
+ strh r0, [r1, 0x8]
+_0816003E:
+ strh r5, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _08160150
+ .pool
+_08160058:
+ ldr r1, =gBankSpriteIds
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r1, =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r1
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r3
+ ldrh r0, [r2, 0x8]
+ ldrh r3, [r1, 0x24]
+ adds r0, r3
+ strh r0, [r1, 0x24]
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _081600A0
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x24
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ b _08160126
+ .pool
+_081600A0:
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x24
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bgt _08160150
+ b _0816012A
+_081600B4:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r3
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ negs r1, r1
+ strh r1, [r0, 0x8]
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x1
+ strh r1, [r0, 0x26]
+ b _08160150
+_081600CC:
+ ldr r1, =gBankSpriteIds
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r1, =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r1
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r3
+ ldrh r0, [r2, 0x8]
+ ldrh r3, [r1, 0x24]
+ adds r0, r3
+ strh r0, [r1, 0x24]
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bge _08160118
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x24
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ movs r3, 0xA
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bgt _08160150
+ b _0816012A
+ .pool
+_08160118:
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x24
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ movs r3, 0xA
+ ldrsh r1, [r2, r3]
+_08160126:
+ cmp r0, r1
+ blt _08160150
+_0816012A:
+ ldrh r0, [r2, 0x26]
+ adds r0, 0x1
+ strh r0, [r2, 0x26]
+ b _08160150
+_08160132:
+ ldr r1, =gBankSpriteIds
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r1, =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ adds r0, r4, 0
+ bl move_anim_task_del
+_08160150:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815FFC4
+
+ thumb_func_start sub_8160164
+sub_8160164: @ 8160164
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r4, r1, r0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0xE]
+ ldr r0, =gAnimationBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _08160198
+ movs r1, 0x1
+_08160198:
+ strh r1, [r4, 0x10]
+ ldr r2, =gSprites
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x14]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x20]
+ strh r0, [r4, 0x12]
+ strh r5, [r4, 0x1A]
+ strh r5, [r4, 0x1E]
+ movs r0, 0x1
+ strh r0, [r4, 0x1C]
+ strh r5, [r4, 0x20]
+ ldr r0, =sub_81601DC
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8160164
+
+ thumb_func_start sub_81601DC
+sub_81601DC: @ 81601DC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08160284
+ cmp r0, 0x1
+ bgt _08160204
+ cmp r0, 0
+ beq _0816020A
+ b _081602DA
+ .pool
+_08160204:
+ cmp r0, 0x2
+ beq _081602D4
+ b _081602DA
+_0816020A:
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x8
+ movs r2, 0xFF
+ ands r0, r2
+ strh r0, [r4, 0x1E]
+ ldr r5, =gSprites
+ movs r6, 0xE
+ ldrsh r0, [r4, r6]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldr r3, =gSineTable
+ movs r6, 0x1E
+ ldrsh r0, [r4, r6]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ strh r0, [r1, 0x24]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x2
+ ands r0, r2
+ strh r0, [r4, 0x1A]
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r5
+ movs r6, 0x1A
+ ldrsh r0, [r4, r6]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ ldrh r1, [r4, 0x10]
+ muls r0, r1
+ ldrh r1, [r4, 0x12]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ movs r6, 0x1A
+ ldrsh r0, [r4, r6]
+ cmp r0, 0
+ bne _081602DA
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r4, 0x12]
+ strh r1, [r0, 0x20]
+ b _081602C4
+ .pool
+_08160284:
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x8
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x1E]
+ ldr r3, =gSprites
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldr r2, =gSineTable
+ movs r5, 0x1E
+ ldrsh r0, [r4, r5]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ strh r0, [r1, 0x24]
+ movs r6, 0x1E
+ ldrsh r2, [r4, r6]
+ cmp r2, 0
+ bne _081602DA
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ strh r2, [r1, 0x24]
+_081602C4:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _081602DA
+ .pool
+_081602D4:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_081602DA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81601DC
+
+ thumb_func_start sub_81602E0
+sub_81602E0: @ 81602E0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gAnimationBankTarget
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ ldrh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl Sin
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08160326
+ adds r0, r4, 0
+ bl move_anim_8072740
+_08160326:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81602E0
+
+ thumb_func_start sub_8160338
+sub_8160338: @ 8160338
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gAnimationBankTarget
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0816037C
+ ldr r2, =gBattleAnimArgs
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, =0x0000fff5
+ strh r0, [r4, 0x2E]
+ movs r0, 0xC0
+ strh r0, [r4, 0x30]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _08160396
+ .pool
+_0816037C:
+ movs r0, 0xB
+ strh r0, [r4, 0x2E]
+ movs r0, 0xC0
+ strh r0, [r4, 0x30]
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_08160396:
+ ldr r0, =sub_81602E0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8160338
+
+ thumb_func_start sub_81603A8
+sub_81603A8: @ 81603A8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, =gAnimationBankAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_80A5C6C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_80A861C
+ strh r0, [r5, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bgt _081603D2
+ movs r0, 0x10
+ strh r0, [r5, 0x22]
+_081603D2:
+ movs r0, 0
+ strh r0, [r5, 0x3A]
+ movs r1, 0x10
+ strh r1, [r5, 0x3C]
+ ldr r0, =sub_81603F4
+ str r0, [r5, 0x1C]
+ lsls r1, 8
+ movs r0, 0x52
+ bl SetGpuReg
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81603A8
+
+ thumb_func_start sub_81603F4
+sub_81603F4: @ 81603F4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _0816046C
+ cmp r1, 0x1
+ bgt _0816040A
+ cmp r1, 0
+ beq _08160414
+ b _081604E8
+_0816040A:
+ cmp r1, 0x2
+ beq _08160482
+ cmp r1, 0x3
+ beq _081604E2
+ b _081604E8
+_08160414:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081604E8
+ strh r1, [r4, 0x2E]
+ ldrh r1, [r4, 0x30]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0816043E
+ ldrh r2, [r4, 0x3A]
+ movs r3, 0x3A
+ ldrsh r0, [r4, r3]
+ cmp r0, 0xF
+ bgt _0816044C
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x3A]
+ b _0816044C
+_0816043E:
+ ldrh r2, [r4, 0x3C]
+ movs r3, 0x3C
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _0816044C
+ subs r0, r2, 0x1
+ strh r0, [r4, 0x3C]
+_0816044C:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 8
+ ldrh r0, [r4, 0x3A]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081604E8
+ b _081604DA
+_0816046C:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _081604E8
+ strh r1, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ b _081604DA
+_08160482:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081604E8
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x30]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081604AE
+ ldrh r2, [r4, 0x3A]
+ movs r3, 0x3A
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _081604BC
+ subs r0, r2, 0x1
+ strh r0, [r4, 0x3A]
+ b _081604BC
+_081604AE:
+ ldrh r2, [r4, 0x3C]
+ movs r3, 0x3C
+ ldrsh r0, [r4, r3]
+ cmp r0, 0xF
+ bgt _081604BC
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x3C]
+_081604BC:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 8
+ ldrh r0, [r4, 0x3A]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _081604E8
+_081604DA:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ b _081604E8
+_081604E2:
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_081604E8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81603F4
+
+ thumb_func_start sub_81604F0
+sub_81604F0: @ 81604F0
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, =gBattleAnimArgs
+ movs r0, 0
+ strh r0, [r2, 0xE]
+ ldr r0, =gWeatherMoveAnim
+ ldrh r1, [r0]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _08160514
+ movs r0, 0x1
+ b _08160536
+ .pool
+_08160514:
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _08160520
+ movs r0, 0x2
+ b _08160536
+_08160520:
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0
+ beq _0816052C
+ movs r0, 0x3
+ b _08160536
+_0816052C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08160538
+ movs r0, 0x4
+_08160536:
+ strh r0, [r2, 0xE]
+_08160538:
+ adds r0, r3, 0
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81604F0
+
+ thumb_func_start sub_8160544
+sub_8160544: @ 8160544
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r0, =gBattleAnimArgs
+ ldrb r0, [r0]
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x26]
+ ldr r2, =gUnknown_085CE9C8
+ adds r0, r4, 0
+ bl sub_80A7CFC
+ ldr r0, =sub_816058C
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8160544
+
+ thumb_func_start sub_816058C
+sub_816058C: @ 816058C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r2, =gTasks
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x8]
+ adds r1, r0, 0x1
+ movs r5, 0
+ strh r1, [r3, 0x8]
+ subs r0, 0x10
+ lsls r0, 16
+ lsrs r0, 16
+ adds r6, r2, 0
+ cmp r0, 0x16
+ bhi _081605F0
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _08160600
+ strh r5, [r3, 0xA]
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ movs r5, 0x1
+ ands r0, r5
+ cmp r0, 0
+ bne _081605F0
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, =0x0000ffff
+ strh r1, [r0, 0x24]
+ b _08160600
+ .pool
+_081605F0:
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+_08160600:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r6
+ bl sub_80A7D34
+ lsls r0, 24
+ cmp r0, 0
+ bne _08160618
+ adds r0, r4, 0
+ bl move_anim_task_del
+_08160618:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_816058C
+
+ thumb_func_start sub_8160624
+sub_8160624: @ 8160624
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8160624
+
+ thumb_func_start sub_8160638
+sub_8160638: @ 8160638
+ push {lr}
+ sub sp, 0x4
+ bl script_env_2_enable
+ ldr r0, =sub_8160664
+ movs r1, 0xA
+ bl CreateTask
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8160638
+
+ thumb_func_start sub_8160664
+sub_8160664: @ 8160664
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08160688
+ ldr r0, =sub_81606A0
+ bl SetMainCallback2
+ ldr r1, =gUnknown_03005DAC
+ ldr r0, =sub_80AF168
+ str r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+_08160688:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8160664
+
+ thumb_func_start sub_81606A0
+sub_81606A0: @ 81606A0
+ push {r4-r6,lr}
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ bl clear_scheduled_bg_copies_to_vram
+ ldr r6, =gUnknown_0203BC34
+ movs r0, 0x8C
+ lsls r0, 1
+ bl AllocZeroed
+ str r0, [r6]
+ ldr r1, =gSpecialVar_0x8004
+ ldrh r1, [r1]
+ adds r0, 0x44
+ movs r5, 0
+ strb r1, [r0]
+ ldr r0, =sub_8160624
+ bl SetVBlankCallback
+ bl sub_81607EC
+ movs r0, 0
+ bl sub_81D2824
+ ldr r4, =gUnknown_0203BC38
+ movs r0, 0
+ strh r5, [r4]
+ strh r5, [r4, 0x2]
+ strb r0, [r4, 0x4]
+ bl sub_8161280
+ ldr r0, =gUnknown_085CEBB0
+ bl LoadSpriteSheet
+ ldr r0, =gUnknown_085CEBB8
+ bl LoadSpritePalette
+ bl sub_81610B8
+ ldr r0, =gUnknown_03006310
+ ldrh r1, [r4]
+ ldrh r2, [r4, 0x2]
+ bl ListMenuInit
+ ldr r1, [r6]
+ movs r2, 0x89
+ lsls r2, 1
+ adds r1, r2
+ strb r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ bl FillPalette
+ ldr r0, =sub_816082C
+ bl SetMainCallback2
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81606A0
+
+ thumb_func_start sub_8160740
+sub_8160740: @ 8160740
+ push {r4,r5,lr}
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ bl clear_scheduled_bg_copies_to_vram
+ ldr r5, =gUnknown_0203BC34
+ movs r0, 0x8C
+ lsls r0, 1
+ bl AllocZeroed
+ str r0, [r5]
+ movs r1, 0x1C
+ strb r1, [r0]
+ ldr r0, [r5]
+ ldr r1, =gSpecialVar_0x8004
+ ldrh r1, [r1]
+ adds r0, 0x44
+ strb r1, [r0]
+ ldr r0, [r5]
+ ldr r1, =gSpecialVar_0x8005
+ ldrh r1, [r1]
+ adds r0, 0x45
+ strb r1, [r0]
+ ldr r0, =sub_8160624
+ bl SetVBlankCallback
+ bl sub_81607EC
+ ldr r4, =gUnknown_0203BC38
+ ldrb r0, [r4, 0x4]
+ bl sub_81D2824
+ bl sub_8161280
+ ldr r0, =gUnknown_085CEBB0
+ bl LoadSpriteSheet
+ ldr r0, =gUnknown_085CEBB8
+ bl LoadSpritePalette
+ bl sub_81610B8
+ ldr r0, =gUnknown_03006310
+ ldrh r1, [r4]
+ ldrh r2, [r4, 0x2]
+ bl ListMenuInit
+ ldr r1, [r5]
+ movs r2, 0x89
+ lsls r2, 1
+ adds r1, r2
+ strb r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ bl FillPalette
+ ldr r0, =sub_816082C
+ bl SetMainCallback2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8160740
+
+ thumb_func_start sub_81607EC
+sub_81607EC: @ 81607EC
+ push {lr}
+ bl sub_8121DA0
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_085CEC28
+ movs r0, 0
+ movs r2, 0x2
+ bl InitBgsFromTemplates
+ bl sub_8121E10
+ movs r1, 0x82
+ lsls r1, 5
+ movs r0, 0
+ bl SetGpuReg
+ movs r0, 0
+ bl ShowBg
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81607EC
+
+ thumb_func_start sub_816082C
+sub_816082C: @ 816082C
+ push {lr}
+ bl sub_8160868
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl do_scheduled_bg_tilemap_copies_to_vram
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_816082C
+
+ thumb_func_start sub_816084C
+sub_816084C: @ 816084C
+ push {r4,lr}
+ adds r1, r0, 0
+ ldr r4, =gStringVar4
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ bl sub_81D2BF4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_816084C
+
+ thumb_func_start sub_8160868
+sub_8160868: @ 8160868
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r1, =gUnknown_0203BC34
+ ldr r0, [r1]
+ ldrb r0, [r0]
+ adds r7, r1, 0
+ cmp r0, 0x21
+ bls _0816087E
+ b _08160E8A
+_0816087E:
+ lsls r0, 2
+ ldr r1, =_08160890
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08160890:
+ .4byte _08160918
+ .4byte _08160932
+ .4byte _0816094C
+ .4byte _08160954
+ .4byte _0816095C
+ .4byte _08160964
+ .4byte _08160980
+ .4byte _08160E8A
+ .4byte _08160988
+ .4byte _081609A8
+ .4byte _08160E8A
+ .4byte _08160E8A
+ .4byte _08160A44
+ .4byte _08160A64
+ .4byte _08160CB8
+ .4byte _08160CD8
+ .4byte _08160AB8
+ .4byte _08160AD0
+ .4byte _08160AEC
+ .4byte _08160C1C
+ .4byte _08160C48
+ .4byte _08160C98
+ .4byte _08160CA6
+ .4byte _08160E8A
+ .4byte _08160B2C
+ .4byte _08160B60
+ .4byte _08160B80
+ .4byte _08160BDC
+ .4byte _08160CFC
+ .4byte _08160D48
+ .4byte _08160E0C
+ .4byte _08160E38
+ .4byte _08160E58
+ .4byte _08160E70
+_08160918:
+ ldr r1, [r7]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r4, 0
+ strb r0, [r1]
+ movs r0, 0
+ bl render_previous_quest_text
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ b _08160CAE
+_08160932:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08160940
+ b _08160E8A
+_08160940:
+ ldr r1, [r7]
+ movs r0, 0x4
+ b _08160E88
+ .pool
+_0816094C:
+ ldr r1, [r7]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08160E88
+_08160954:
+ movs r0, 0
+ bl render_previous_quest_text
+ b _0816096A
+_0816095C:
+ movs r0, 0
+ bl sub_8160F50
+ b _08160E8A
+_08160964:
+ movs r0, 0
+ bl sub_8161074
+_0816096A:
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ bl sub_81611AC
+ b _08160E8A
+ .pool
+_08160980:
+ movs r0, 0x1
+ bl sub_8160F50
+ b _08160E8A
+_08160988:
+ bl sub_81D2C3C
+ lsls r0, 16
+ cmp r0, 0
+ beq _08160994
+ b _08160E8A
+_08160994:
+ bl sub_81D2C50
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08160E88
+ .pool
+_081609A8:
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _08160A0A
+ ldr r5, =gUnknown_0203BC34
+ ldr r0, [r5]
+ adds r0, 0x44
+ ldrb r1, [r0]
+ movs r0, 0x64
+ adds r4, r1, 0
+ muls r4, r0
+ ldr r0, =gPlayerParty
+ adds r4, r0
+ bl sub_8161054
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl GiveMoveToBoxMon_
+ lsls r0, 16
+ ldr r1, =0xffff0000
+ cmp r0, r1
+ beq _08160A04
+ ldr r0, =gUnknown_085EF8E4
+ bl sub_816084C
+ ldr r1, =gSpecialVar_0x8004
+ movs r0, 0x1
+ strh r0, [r1]
+ ldr r1, [r5]
+ movs r0, 0x1F
+ b _08160E88
+ .pool
+_08160A04:
+ ldr r1, [r5]
+ movs r0, 0x10
+ b _08160E88
+_08160A0A:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08160A18
+ cmp r1, 0x1
+ beq _08160A18
+ b _08160E8A
+_08160A18:
+ ldr r0, =gUnknown_0203BC38
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _08160A30
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ movs r0, 0x3
+ b _08160E88
+ .pool
+_08160A30:
+ cmp r0, 0x1
+ beq _08160A36
+ b _08160E8A
+_08160A36:
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ movs r0, 0x5
+ b _08160E88
+ .pool
+_08160A44:
+ bl sub_81D2C3C
+ lsls r0, 16
+ cmp r0, 0
+ beq _08160A50
+ b _08160E8A
+_08160A50:
+ bl sub_81D2C50
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08160E88
+ .pool
+_08160A64:
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _08160A7C
+ ldr r0, =gSpecialVar_0x8004
+ strh r1, [r0]
+ b _08160E82
+ .pool
+_08160A7C:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08160A8A
+ cmp r1, 0x1
+ beq _08160A8A
+ b _08160E8A
+_08160A8A:
+ ldr r0, =gUnknown_0203BC38
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _08160AA4
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ movs r0, 0x3
+ b _08160E88
+ .pool
+_08160AA4:
+ cmp r0, 0x1
+ beq _08160AAA
+ b _08160E8A
+_08160AAA:
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ movs r0, 0x5
+ b _08160E88
+ .pool
+_08160AB8:
+ ldr r0, =gUnknown_085EF8F3
+ bl sub_816084C
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08160E88
+ .pool
+_08160AD0:
+ bl sub_81D2C3C
+ lsls r0, 16
+ cmp r0, 0
+ beq _08160ADC
+ b _08160E8A
+_08160ADC:
+ bl sub_81D2C50
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ movs r0, 0x12
+ b _08160E88
+ .pool
+_08160AEC:
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _08160B10
+ ldr r0, =gUnknown_085EFA10
+ bl sub_816084C
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ movs r0, 0x13
+ b _08160E88
+ .pool
+_08160B10:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08160B1E
+ cmp r1, 0x1
+ beq _08160B1E
+ b _08160E8A
+_08160B1E:
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ movs r0, 0x18
+ b _08160E88
+ .pool
+_08160B2C:
+ ldr r4, =gStringVar2
+ bl sub_8161054
+ movs r1, 0xD
+ muls r1, r0
+ ldr r0, =gMoveNames
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r0, =gUnknown_085EF960
+ bl sub_816084C
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08160E88
+ .pool
+_08160B60:
+ bl sub_81D2C3C
+ lsls r0, 16
+ cmp r0, 0
+ beq _08160B6C
+ b _08160E8A
+_08160B6C:
+ bl sub_81D2C50
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08160E88
+ .pool
+_08160B80:
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _08160B98
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ movs r0, 0x1B
+ b _08160E88
+ .pool
+_08160B98:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08160BA6
+ cmp r1, 0x1
+ beq _08160BA6
+ b _08160E8A
+_08160BA6:
+ ldr r0, =gUnknown_0203BC38
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _08160BC4
+ ldr r2, =gUnknown_0203BC34
+ ldr r1, [r2]
+ movs r0, 0x3
+ strb r0, [r1]
+ adds r7, r2, 0
+ b _08160BD0
+ .pool
+_08160BC4:
+ ldr r7, =gUnknown_0203BC34
+ cmp r0, 0x1
+ bne _08160BD0
+ ldr r1, [r7]
+ movs r0, 0x5
+ strb r0, [r1]
+_08160BD0:
+ ldr r1, [r7]
+ movs r0, 0x10
+ b _08160E88
+ .pool
+_08160BDC:
+ bl sub_81D2C3C
+ lsls r0, 16
+ cmp r0, 0
+ beq _08160BE8
+ b _08160E8A
+_08160BE8:
+ movs r0, 0x3
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r0, =gUnknown_0203BC38
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _08160C08
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ movs r0, 0x3
+ b _08160E88
+ .pool
+_08160C08:
+ cmp r0, 0x1
+ beq _08160C0E
+ b _08160E8A
+_08160C0E:
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ movs r0, 0x5
+ b _08160E88
+ .pool
+_08160C1C:
+ bl sub_81D2C3C
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08160C2A
+ b _08160E8A
+_08160C2A:
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ movs r0, 0x14
+ strb r0, [r1]
+ subs r0, 0x15
+ str r2, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _08160E8A
+ .pool
+_08160C48:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08160C56
+ b _08160E8A
+_08160C56:
+ bl sub_8161054
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, =gPlayerParty
+ ldr r1, =gUnknown_0203BC34
+ ldr r1, [r1]
+ adds r1, 0x44
+ ldrb r1, [r1]
+ ldr r2, =gPlayerPartyCount
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, =sub_8160740
+ str r0, [sp]
+ adds r0, r4, 0
+ bl sub_81BFA38
+ bl sub_8160EA0
+ b _08160E8A
+ .pool
+_08160C98:
+ bl sub_81D2C3C
+ lsls r0, 16
+ cmp r0, 0
+ beq _08160CA4
+ b _08160E8A
+_08160CA4:
+ b _08160E82
+_08160CA6:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+_08160CAE:
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _08160E8A
+_08160CB8:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08160E88
+ .pool
+_08160CD8:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08160CE6
+ b _08160E8A
+_08160CE6:
+ bl sub_8160EA0
+ ldr r0, =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ b _08160E8A
+ .pool
+_08160CFC:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, =gUnknown_0203BC38
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _08160D30
+ movs r0, 0x1
+ bl render_previous_quest_text
+ b _08160D3A
+ .pool
+_08160D30:
+ cmp r0, 0x1
+ bne _08160D3A
+ movs r0, 0x1
+ bl sub_8161074
+_08160D3A:
+ bl sub_8161234
+ movs r0, 0x3
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _08160E8A
+_08160D48:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08160D56
+ b _08160E8A
+_08160D56:
+ ldr r1, [r7]
+ adds r2, r1, 0
+ adds r2, 0x45
+ ldrb r0, [r2]
+ cmp r0, 0x4
+ bne _08160D6C
+ movs r0, 0x18
+ b _08160E88
+ .pool
+_08160D6C:
+ adds r0, r1, 0
+ adds r0, 0x44
+ ldrb r0, [r0]
+ movs r4, 0x64
+ muls r0, r4
+ ldr r5, =gPlayerParty
+ adds r0, r5
+ ldrb r1, [r2]
+ adds r1, 0xD
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, =gStringVar3
+ movs r1, 0xD
+ mov r8, r1
+ mov r1, r8
+ muls r1, r0
+ ldr r6, =gMoveNames
+ adds r1, r6
+ adds r0, r2, 0
+ bl StringCopy
+ ldr r1, [r7]
+ adds r0, r1, 0
+ adds r0, 0x44
+ ldrb r0, [r0]
+ muls r0, r4
+ adds r0, r5
+ adds r1, 0x45
+ ldrb r1, [r1]
+ bl sub_806B9A8
+ ldr r0, [r7]
+ adds r0, 0x44
+ ldrb r0, [r0]
+ muls r4, r0
+ adds r4, r5
+ bl sub_8161054
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [r7]
+ adds r0, 0x45
+ ldrb r2, [r0]
+ adds r0, r4, 0
+ bl sub_80691F4
+ ldr r4, =gStringVar2
+ bl sub_8161054
+ mov r1, r8
+ muls r1, r0
+ adds r1, r6
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r0, =gUnknown_085EF979
+ bl sub_816084C
+ ldr r1, [r7]
+ movs r0, 0x1E
+ strb r0, [r1]
+ ldr r1, =gSpecialVar_0x8004
+ movs r0, 0x1
+ strh r0, [r1]
+ b _08160E8A
+ .pool
+_08160E0C:
+ bl sub_81D2C3C
+ lsls r0, 16
+ cmp r0, 0
+ bne _08160E8A
+ ldr r0, =gUnknown_085EF9A6
+ bl sub_816084C
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ movs r0, 0x1F
+ strb r0, [r1]
+ ldr r0, =0x0000016f
+ bl PlayFanfare
+ b _08160E8A
+ .pool
+_08160E38:
+ bl sub_81D2C3C
+ lsls r0, 16
+ cmp r0, 0
+ bne _08160E8A
+ ldr r0, =0x0000016f
+ bl PlayFanfare
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ movs r0, 0x20
+ b _08160E88
+ .pool
+_08160E58:
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08160E8A
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ movs r0, 0x21
+ b _08160E88
+ .pool
+_08160E70:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08160E8A
+ movs r0, 0x5
+ bl PlaySE
+_08160E82:
+ ldr r0, =gUnknown_0203BC34
+ ldr r1, [r0]
+ movs r0, 0xE
+_08160E88:
+ strb r0, [r1]
+_08160E8A:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8160868
+
+ thumb_func_start sub_8160EA0
+sub_8160EA0: @ 8160EA0
+ push {r4,lr}
+ bl sub_8161234
+ ldr r4, =gUnknown_0203BC34
+ ldr r0, [r4]
+ movs r1, 0x89
+ lsls r1, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, =gUnknown_0203BC38
+ adds r2, r1, 0x2
+ bl sub_81AE6C8
+ bl FreeAllWindowBuffers
+ ldr r0, [r4]
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8160EA0
+
+ thumb_func_start render_previous_quest_text
+render_previous_quest_text: @ 8160EE0
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r2, 0
+ ldr r6, =gSprites
+ ldr r4, =gUnknown_0203BC34
+ movs r3, 0x4
+_08160EF0:
+ ldr r0, [r4]
+ adds r0, 0x1
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r3
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0xF
+ ble _08160EF0
+ cmp r5, 0
+ bne _08160F38
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085EF8C2
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ movs r0, 0x3
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ movs r0, 0x1
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0x3
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0
+ bl PrintTextOnWindow
+_08160F38:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end render_previous_quest_text
+
+ thumb_func_start sub_8160F50
+sub_8160F50: @ 8160F50
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r6, =gUnknown_0203BC34
+ ldr r0, [r6]
+ movs r4, 0x89
+ lsls r4, 1
+ adds r0, r4
+ ldrb r0, [r0]
+ bl ListMenuHandleInput
+ adds r5, r0, 0
+ ldr r0, [r6]
+ adds r0, r4
+ ldrb r0, [r0]
+ ldr r4, =gUnknown_0203BC38
+ adds r2, r4, 0x2
+ adds r1, r4, 0
+ bl get_coro_args_x18_x1A
+ movs r0, 0x2
+ negs r0, r0
+ cmp r5, r0
+ beq _08160FE4
+ adds r0, 0x1
+ cmp r5, r0
+ bne _08161010
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x30
+ ands r0, r1
+ cmp r0, 0
+ bne _08160F9C
+ bl GetLRKeysState
+ lsls r0, 24
+ cmp r0, 0
+ beq _0816103E
+_08160F9C:
+ movs r0, 0x5
+ bl PlaySE
+ cmp r7, 0
+ bne _08160FC4
+ movs r0, 0x1
+ bl PutWindowTilemap
+ ldr r0, [r6]
+ movs r1, 0x5
+ strb r1, [r0]
+ movs r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08160FD4
+ .pool
+_08160FC4:
+ movs r0, 0
+ bl PutWindowTilemap
+ ldr r0, [r6]
+ movs r2, 0
+ movs r1, 0x3
+ strb r1, [r0]
+ strb r2, [r4, 0x4]
+_08160FD4:
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ bl sub_8161054
+ bl sub_816137C
+ b _0816103E
+_08160FE4:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8161234
+ ldr r1, [r6]
+ movs r0, 0xC
+ strb r0, [r1]
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085EF9E6
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ bl sub_81D2BF4
+ b _0816103E
+ .pool
+_08161010:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8161234
+ ldr r1, [r6]
+ movs r0, 0x8
+ strb r0, [r1]
+ ldr r0, =gStringVar2
+ movs r1, 0xD
+ muls r1, r5
+ ldr r2, =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085EF8DA
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ bl sub_81D2BF4
+_0816103E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8160F50
+
+ thumb_func_start sub_8161054
+sub_8161054: @ 8161054
+ ldr r0, =gUnknown_0203BC34
+ ldr r2, [r0]
+ ldr r1, =gUnknown_0203BC38
+ ldrh r0, [r1, 0x2]
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 3
+ adds r2, 0x4C
+ adds r2, r0
+ ldr r0, [r2]
+ bx lr
+ .pool
+ thumb_func_end sub_8161054
+
+ thumb_func_start sub_8161074
+sub_8161074: @ 8161074
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _081610A6
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085EF8C2
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ movs r0, 0x3
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ movs r0, 0x1
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0x3
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0
+ bl PrintTextOnWindow
+_081610A6:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8161074
+
+ thumb_func_start sub_81610B8
+sub_81610B8: @ 81610B8
+ push {r4-r7,lr}
+ ldr r2, =gUnknown_0203BC34
+ ldr r0, [r2]
+ movs r1, 0x8A
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r2, =0x00000113
+ adds r1, r0, r2
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1]
+ bl sub_81611AC
+ movs r4, 0
+ ldr r5, =gUnknown_085CEC10
+_081610DC:
+ adds r2, r4, 0
+ cmp r4, 0
+ bge _081610E4
+ adds r2, r4, 0x3
+_081610E4:
+ asrs r2, 2
+ lsls r1, r2, 2
+ subs r1, r4, r1
+ lsls r1, 19
+ movs r0, 0xD0
+ lsls r0, 15
+ adds r1, r0
+ asrs r1, 16
+ lsls r2, 19
+ movs r0, 0x90
+ lsls r0, 14
+ adds r2, r0
+ asrs r2, 16
+ adds r0, r5, 0
+ movs r3, 0
+ bl CreateSprite
+ ldr r2, =gUnknown_0203BC34
+ ldr r1, [r2]
+ adds r1, 0x1
+ adds r1, r4
+ strb r0, [r1]
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _081610DC
+ movs r4, 0
+ ldr r7, =gUnknown_085CEC10
+ adds r6, r2, 0
+_0816111C:
+ adds r2, r4, 0
+ cmp r4, 0
+ bge _08161124
+ adds r2, r4, 0x3
+_08161124:
+ asrs r2, 2
+ lsls r1, r2, 2
+ subs r1, r4, r1
+ lsls r1, 19
+ movs r0, 0xD0
+ lsls r0, 15
+ adds r1, r0
+ asrs r1, 16
+ lsls r2, 19
+ movs r0, 0xD0
+ lsls r0, 14
+ adds r2, r0
+ asrs r2, 16
+ adds r0, r7, 0
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r6]
+ adds r2, r4, 0
+ adds r2, 0x8
+ adds r1, 0x1
+ adds r1, r2
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, 0x1
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, =gSprites
+ adds r0, r5
+ movs r1, 0x2
+ bl StartSpriteAnim
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _0816111C
+ movs r4, 0
+ ldr r3, =gUnknown_0203BC34
+ movs r2, 0x4
+_08161176:
+ ldr r0, [r3]
+ adds r0, 0x1
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r4, 0x1
+ cmp r4, 0xF
+ ble _08161176
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81610B8
+
+ thumb_func_start sub_81611AC
+sub_81611AC: @ 81611AC
+ push {r4-r6,lr}
+ ldr r4, =gUnknown_0203BC34
+ ldr r1, [r4]
+ movs r2, 0x8A
+ lsls r2, 1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _081611D4
+ ldr r0, =gUnknown_085CEBC0
+ movs r3, 0x8B
+ lsls r3, 1
+ adds r1, r3
+ bl AddScrollIndicatorArrowPair
+ ldr r1, [r4]
+ movs r5, 0x8A
+ lsls r5, 1
+ adds r1, r5
+ strb r0, [r1]
+_081611D4:
+ ldr r0, [r4]
+ ldr r6, =0x00000113
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08161210
+ ldr r0, =gUnknown_0203CE8C
+ adds r2, r0, 0
+ ldr r1, =gUnknown_085CEBD0
+ ldm r1!, {r3,r5,r6}
+ stm r2!, {r3,r5,r6}
+ ldr r1, [r1]
+ str r1, [r2]
+ ldr r2, [r4]
+ movs r3, 0x88
+ lsls r3, 1
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ ldr r5, =0x00000111
+ adds r2, r5
+ ldrb r2, [r2]
+ subs r1, r2
+ strh r1, [r0, 0x8]
+ ldr r1, =gUnknown_0203BC38
+ bl AddScrollIndicatorArrowPair
+ ldr r1, [r4]
+ ldr r6, =0x00000113
+ adds r1, r6
+ strb r0, [r1]
+_08161210:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81611AC
+
+ thumb_func_start sub_8161234
+sub_8161234: @ 8161234
+ push {r4,lr}
+ ldr r4, =gUnknown_0203BC34
+ ldr r0, [r4]
+ movs r2, 0x8A
+ lsls r2, 1
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _08161256
+ bl RemoveScrollIndicatorArrowPair
+ ldr r0, [r4]
+ movs r1, 0x8A
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+_08161256:
+ ldr r0, [r4]
+ ldr r2, =0x00000113
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _08161270
+ bl RemoveScrollIndicatorArrowPair
+ ldr r0, [r4]
+ ldr r2, =0x00000113
+ adds r1, r0, r2
+ movs r0, 0xFF
+ strb r0, [r1]
+_08161270:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8161234
+
+ thumb_func_start sub_8161280
+sub_8161280: @ 8161280
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ ldr r4, =gUnknown_0203BC34
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x44
+ ldrb r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, =gPlayerParty
+ adds r0, r2
+ adds r1, 0x12
+ bl sub_806E0B4
+ ldr r1, [r4]
+ movs r6, 0x88
+ lsls r6, 1
+ adds r1, r6
+ strb r0, [r1]
+ movs r5, 0
+ ldr r0, [r4]
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r5, r0
+ bge _081612F6
+ mov r8, r4
+ movs r0, 0xD
+ mov r12, r0
+ ldr r2, =gMoveNames
+ mov r9, r2
+_081612C2:
+ mov r7, r8
+ ldr r4, [r7]
+ lsls r3, r5, 3
+ adds r2, r4, 0
+ adds r2, 0x48
+ adds r2, r3
+ lsls r0, r5, 1
+ adds r1, r4, 0
+ adds r1, 0x12
+ adds r1, r0
+ ldrh r0, [r1]
+ mov r7, r12
+ muls r7, r0
+ adds r0, r7, 0
+ add r0, r9
+ str r0, [r2]
+ adds r0, r4, 0
+ adds r0, 0x4C
+ adds r0, r3
+ ldrh r1, [r1]
+ str r1, [r0]
+ adds r5, 0x1
+ adds r0, r4, r6
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _081612C2
+_081612F6:
+ ldr r4, =gUnknown_0203BC34
+ ldr r0, [r4]
+ adds r0, 0x44
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+ ldr r0, =gStringVar1
+ mov r1, sp
+ bl StringCopy10
+ ldr r2, [r4]
+ movs r5, 0x88
+ lsls r5, 1
+ adds r3, r2, r5
+ ldrb r0, [r3]
+ lsls r0, 3
+ adds r1, r2, 0
+ adds r1, 0x48
+ adds r1, r0
+ ldr r0, =gUnknown_085E8CF0
+ str r0, [r1]
+ ldrb r0, [r3]
+ lsls r0, 3
+ adds r2, 0x4C
+ adds r2, r0
+ movs r0, 0x2
+ negs r0, r0
+ str r0, [r2]
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x48
+ adds r1, r5
+ ldrb r1, [r1]
+ bl sub_81D28C8
+ ldr r1, [r4]
+ ldr r2, =0x00000111
+ adds r1, r2
+ strb r0, [r1]
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8161280
+
+ thumb_func_start sub_816137C
+sub_816137C: @ 816137C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ ldr r0, =gUnknown_0203BC38
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _08161394
+ movs r0, 0x2
+ negs r0, r0
+ cmp r4, r0
+ bne _081613CC
+_08161394:
+ movs r5, 0
+ ldr r4, =gSprites
+ ldr r3, =gUnknown_0203BC34
+ movs r2, 0x4
+_0816139C:
+ ldr r0, [r3]
+ adds r0, 0x1
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xF
+ bls _0816139C
+ b _081614FE
+ .pool
+_081613CC:
+ ldr r1, =gContestEffects
+ ldr r0, =gContestMoves
+ lsls r4, 3
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r8, r4
+ cmp r6, 0xFF
+ bne _081613EE
+ movs r6, 0
+_081613EE:
+ movs r5, 0
+ ldr r7, =gUnknown_0203BC34
+ ldr r4, =gSprites
+_081613F4:
+ cmp r5, r6
+ bcs _08161420
+ ldr r0, [r7]
+ adds r0, 0x1
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x1
+ bl StartSpriteAnim
+ b _08161436
+ .pool
+_08161420:
+ ldr r0, [r7]
+ adds r0, 0x1
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0
+ bl StartSpriteAnim
+_08161436:
+ ldr r0, [r7]
+ adds r0, 0x1
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r3, 0x5
+ negs r3, r3
+ adds r2, r3, 0
+ ands r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x7
+ bls _081613F4
+ ldr r1, =gContestEffects
+ ldr r0, =gContestMoves
+ add r0, r8
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xFF
+ bne _0816147C
+ movs r6, 0
+_0816147C:
+ movs r5, 0
+ ldr r0, =gUnknown_0203BC34
+ mov r8, r0
+ ldr r7, =gSprites
+_08161484:
+ cmp r5, r6
+ bcs _081614B8
+ mov r1, r8
+ ldr r0, [r1]
+ adds r4, r5, 0
+ adds r4, 0x8
+ adds r0, 0x1
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ movs r1, 0x3
+ bl StartSpriteAnim
+ b _081614D4
+ .pool
+_081614B8:
+ mov r3, r8
+ ldr r0, [r3]
+ adds r4, r5, 0
+ adds r4, 0x8
+ adds r0, 0x1
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ movs r1, 0x2
+ bl StartSpriteAnim
+_081614D4:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x1
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r3, 0x5
+ negs r3, r3
+ adds r2, r3, 0
+ ands r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x7
+ bls _08161484
+_081614FE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_816137C
+
+ thumb_func_start hm_prepare_dive_probably
+hm_prepare_dive_probably: @ 8161508
+ push {r4-r6,lr}
+ bl brm_get_pokemon_selection
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0x64
+ muls r0, r6
+ ldr r4, =gPlayerParty
+ adds r0, r4
+ movs r1, 0x3A
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ bl brm_get_pokemon_selection
+ lsls r0, 24
+ lsrs r0, 24
+ muls r0, r6
+ adds r0, r4
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r4, r0
+ bhi _08161558
+ movs r0, 0
+ b _0816155A
+ .pool
+_08161558:
+ movs r0, 0x1
+_0816155A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end hm_prepare_dive_probably
+
+ thumb_func_start sub_8161560
+sub_8161560: @ 8161560
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0xA
+ strb r1, [r0, 0xB]
+ ldrb r1, [r0, 0x9]
+ strb r1, [r0, 0xA]
+ bl brm_get_pokemon_selection
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl sub_81B0FCC
+ movs r0, 0x5
+ bl display_pokemon_menu_message
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B1370
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8161560
+
+ thumb_func_start sub_81615A8
+sub_81615A8: @ 81615A8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ str r4, [sp, 0x4]
+ ldr r1, =gUnknown_0203CEC8
+ ldrb r7, [r1, 0x9]
+ mov r8, r7
+ ldrb r0, [r1, 0xA]
+ adds r5, r0, 0
+ cmp r5, 0x6
+ bls _081615EC
+ movs r0, 0
+ strb r0, [r1, 0xB]
+ bl display_pokemon_menu_message
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B1370
+ str r1, [r0]
+ b _08161658
+ .pool
+_081615EC:
+ movs r0, 0x64
+ mov r10, r0
+ mov r0, r10
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ mov r9, r1
+ adds r6, r0, r1
+ adds r0, r6, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _0816161A
+ cmp r7, r5
+ beq _0816161A
+ adds r0, r6, 0
+ movs r1, 0x3A
+ bl GetMonData
+ cmp r0, r4
+ bne _08161628
+_0816161A:
+ ldr r0, [sp, 0x4]
+ bl sub_81617B8
+ b _08161658
+ .pool
+_08161628:
+ movs r0, 0x1
+ bl PlaySE
+ mov r1, r10
+ mov r0, r8
+ muls r0, r1
+ add r0, r9
+ movs r1, 0x3A
+ bl GetMonData
+ movs r1, 0x5
+ bl __udivsi3
+ adds r3, r0, 0
+ lsls r3, 16
+ asrs r3, 16
+ movs r2, 0x1
+ negs r2, r2
+ ldr r0, =sub_816166C
+ str r0, [sp]
+ ldr r0, [sp, 0x4]
+ mov r1, r8
+ bl sub_81B1F18
+_08161658:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81615A8
+
+ thumb_func_start sub_816166C
+sub_816166C: @ 816166C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl PlaySE
+ ldr r5, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r5, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3A
+ bl GetMonData
+ movs r1, 0x5
+ bl __udivsi3
+ adds r3, r0, 0
+ lsls r3, 16
+ asrs r3, 16
+ ldrb r1, [r5, 0xA]
+ ldr r0, =sub_81616C0
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_81B1F18
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_816166C
+
+ thumb_func_start sub_81616C0
+sub_81616C0: @ 81616C0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0xA
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gStringVar1
+ bl GetMonNickname
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E9C17
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_8161724
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81616C0
+
+ thumb_func_start sub_8161724
+sub_8161724: @ 8161724
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08161772
+ ldr r4, =gUnknown_0203CEC8
+ movs r0, 0
+ strb r0, [r4, 0xB]
+ ldrb r0, [r4, 0x9]
+ movs r1, 0
+ bl sub_81B0FCC
+ ldrb r0, [r4, 0xA]
+ strb r0, [r4, 0x9]
+ ldrb r0, [r4, 0xA]
+ movs r1, 0x1
+ bl sub_81B0FCC
+ movs r0, 0x6
+ movs r1, 0
+ bl sub_8198070
+ movs r0, 0x6
+ bl ClearWindowTilemap
+ movs r0, 0
+ bl display_pokemon_menu_message
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B1370
+ str r1, [r0]
+_08161772:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8161724
+
+ thumb_func_start sub_8161784
+sub_8161784: @ 8161784
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081617AA
+ movs r0, 0x5
+ bl display_pokemon_menu_message
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B1370
+ str r0, [r1]
+_081617AA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8161784
+
+ thumb_func_start sub_81617B8
+sub_81617B8: @ 81617B8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_085E9712
+ movs r1, 0
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_8161784
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81617B8
+
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_8161F74.s b/asm/rom_8161F74.s
new file mode 100644
index 000000000..32922aa54
--- /dev/null
+++ b/asm/rom_8161F74.s
@@ -0,0 +1,11568 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8161F74
+sub_8161F74: @ 8161F74
+ push {lr}
+ ldr r1, =gUnknown_085DF96C
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8161F74
+
+ thumb_func_start sub_8161F94
+sub_8161F94: @ 8161F94
+ push {r4-r7,lr}
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r5, r0, 30
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, [r4]
+ ldr r2, =0x00000ca8
+ adds r0, r2
+ movs r7, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, [r4]
+ adds r2, 0xA
+ adds r0, r1, r2
+ strh r7, [r0]
+ ldr r0, =0x00000ca9
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, [r4]
+ ldr r2, =0x00000ca9
+ adds r1, r2
+ ldrb r2, [r1]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ bl sub_81A3ACC
+ ldr r4, [r4]
+ ldr r0, =0x00000cdc
+ adds r3, r4, r0
+ ldr r2, =gUnknown_085DF9AC
+ lsls r1, r5, 2
+ lsls r0, r6, 3
+ adds r1, r0
+ adds r1, r2
+ ldr r0, [r3]
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ bne _0816200E
+ lsls r0, r5, 1
+ lsls r1, r6, 2
+ adds r0, r1
+ movs r2, 0xCE
+ lsls r2, 4
+ adds r1, r4, r2
+ adds r1, r0
+ strh r7, [r1]
+_0816200E:
+ bl sub_8164ED8
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ movs r1, 0x4
+ ldrsb r1, [r0, r1]
+ movs r2, 0x5
+ ldrsb r2, [r0, r2]
+ movs r3, 0x1
+ negs r3, r3
+ movs r0, 0
+ bl saved_warp2_set
+ ldr r0, =gTrainerBattleOpponent_A
+ strh r7, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8161F94
+
+ thumb_func_start sub_8162054
+sub_8162054: @ 8162054
+ push {r4-r6,lr}
+ ldr r5, =gSaveBlock2Ptr
+ ldr r0, [r5]
+ ldr r4, =0x00000ca9
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r6, r0, 30
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _08162094
+ cmp r0, 0x1
+ ble _081620E8
+ cmp r0, 0x2
+ beq _081620A8
+ cmp r0, 0x3
+ beq _081620D8
+ b _081620E8
+ .pool
+_08162094:
+ adds r0, r6, 0
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_8164FCC
+ ldr r1, =gScriptResult
+ strh r0, [r1]
+ b _081620E8
+ .pool
+_081620A8:
+ ldr r4, =gScriptResult
+ ldr r2, [r5]
+ ldr r0, =0x00000cdc
+ adds r2, r0
+ ldr r3, =gUnknown_085DF9AC
+ lsls r0, r6, 2
+ lsls r1, 3
+ adds r0, r1
+ adds r0, r3
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ strh r0, [r4]
+ b _081620E8
+ .pool
+_081620D8:
+ ldr r1, [r5]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 30
+ ldr r2, =0x00000d07
+ adds r1, r2
+ strb r0, [r1]
+_081620E8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8162054
+
+ thumb_func_start sub_81620F4
+sub_81620F4: @ 81620F4
+ push {r4-r7,lr}
+ ldr r6, =gSaveBlock2Ptr
+ ldr r0, [r6]
+ ldr r7, =0x00000ca9
+ adds r0, r7
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r5, r0, 30
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _08162134
+ cmp r0, 0x1
+ ble _081621B4
+ cmp r0, 0x2
+ beq _08162150
+ cmp r0, 0x3
+ beq _081621A4
+ b _081621B4
+ .pool
+_08162134:
+ ldr r2, [r6]
+ lsls r0, r5, 1
+ lsls r1, r4, 2
+ adds r0, r1
+ movs r1, 0xCE
+ lsls r1, 4
+ adds r2, r1
+ adds r2, r0
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ strh r0, [r2]
+ b _081621B4
+ .pool
+_08162150:
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08162180
+ ldr r2, [r6]
+ ldr r0, =0x00000cdc
+ adds r2, r0
+ ldr r3, =gUnknown_085DF9AC
+ lsls r1, r5, 2
+ lsls r0, r4, 3
+ adds r1, r0
+ adds r1, r3
+ ldr r0, [r2]
+ ldr r1, [r1]
+ orrs r0, r1
+ str r0, [r2]
+ b _081621B4
+ .pool
+_08162180:
+ ldr r2, [r6]
+ ldr r1, =0x00000cdc
+ adds r2, r1
+ ldr r3, =gUnknown_085DF9CC
+ lsls r1, r5, 2
+ lsls r0, r4, 3
+ adds r1, r0
+ adds r1, r3
+ ldr r0, [r2]
+ ldr r1, [r1]
+ ands r0, r1
+ str r0, [r2]
+ b _081621B4
+ .pool
+_081621A4:
+ ldr r1, [r6]
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 30
+ ldr r2, =0x00000d07
+ adds r1, r2
+ strb r0, [r1]
+_081621B4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81620F4
+
+ thumb_func_start sub_81621C0
+sub_81621C0: @ 81621C0
+ push {r4,r5,lr}
+ ldr r0, =gTrainerBattleOpponent_A
+ ldrh r1, [r0]
+ movs r0, 0xFA
+ lsls r0, 1
+ cmp r1, r0
+ bne _081621DA
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000bec
+ adds r0, r1
+ bl sub_816534C
+_081621DA:
+ ldr r5, =gSaveBlock2Ptr
+ ldr r0, [r5]
+ ldr r1, =0x00000d04
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ ldr r0, =0x0000270e
+ cmp r1, r0
+ bhi _081621EE
+ adds r0, r1, 0x1
+ strh r0, [r2]
+_081621EE:
+ ldr r1, [r5]
+ ldr r4, =0x00000cb2
+ adds r1, r4
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ bl sub_8163E90
+ ldr r1, =gScriptResult
+ ldr r0, [r5]
+ adds r0, r4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81621C0
+
+ thumb_func_start sub_816222C
+sub_816222C: @ 816222C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x3C
+ movs r0, 0
+ str r0, [sp, 0x24]
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 30
+ mov r10, r0
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x2C]
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ cmp r0, 0
+ beq _08162266
+ b _0816239C
+_08162266:
+ mov r0, r10
+ ldr r1, [sp, 0x2C]
+ bl sub_8164FCC
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x28]
+ movs r7, 0
+ mov r2, sp
+ str r2, [sp, 0x34]
+_0816227A:
+ movs r3, 0xEC
+ adds r0, r7, 0
+ muls r0, r3
+ movs r4, 0xE7
+ lsls r4, 3
+ adds r0, r4
+ ldr r5, =gSaveBlock2Ptr
+ ldr r1, [r5]
+ movs r2, 0
+ mov r8, r2
+ mov r9, r2
+ movs r5, 0
+ adds r3, r7, 0x1
+ str r3, [sp, 0x30]
+ adds r1, r0
+_08162298:
+ ldm r1!, {r0}
+ mov r4, r8
+ orrs r4, r0
+ mov r8, r4
+ add r9, r0
+ adds r5, 0x1
+ cmp r5, 0x39
+ bls _08162298
+ movs r6, 0
+ movs r5, 0
+ movs r0, 0xEC
+ adds r2, r7, 0
+ muls r2, r0
+_081622B2:
+ ldr r3, =gSaveBlock2Ptr
+ ldr r1, [r3]
+ movs r0, 0x2C
+ muls r0, r5
+ adds r0, r2
+ adds r1, r0
+ ldr r4, =0x0000076c
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081622E4
+ movs r0, 0xEF
+ lsls r0, 3
+ adds r4, r1, r0
+ mov r0, r10
+ str r2, [sp, 0x38]
+ bl sub_8165C90
+ ldrb r1, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [sp, 0x38]
+ cmp r1, r0
+ bhi _081622E4
+ adds r6, 0x1
+_081622E4:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _081622B2
+ ldr r0, =gUnknown_085DF9F6
+ ldr r1, [sp, 0x2C]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r6, r0
+ blt _0816233E
+ ldr r3, =gSaveBlock2Ptr
+ ldr r2, [r3]
+ movs r4, 0xEC
+ adds r3, r7, 0
+ muls r3, r4
+ adds r1, r2, r3
+ ldr r5, =0x0000073a
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ ldr r4, [sp, 0x28]
+ cmp r0, r4
+ bne _0816233E
+ subs r5, 0x2
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, r10
+ bne _0816233E
+ mov r0, r8
+ cmp r0, 0
+ beq _0816233E
+ movs r1, 0x82
+ lsls r1, 4
+ adds r0, r2, r1
+ adds r0, r3
+ ldr r0, [r0]
+ cmp r0, r9
+ bne _0816233E
+ movs r2, 0x96
+ lsls r2, 1
+ adds r0, r7, r2
+ ldr r3, [sp, 0x34]
+ stm r3!, {r0}
+ str r3, [sp, 0x34]
+ ldr r4, [sp, 0x24]
+ adds r4, 0x1
+ str r4, [sp, 0x24]
+_0816233E:
+ ldr r7, [sp, 0x30]
+ cmp r7, 0x4
+ ble _0816227A
+ ldr r5, [sp, 0x2C]
+ cmp r5, 0
+ bne _08162396
+ bl sub_8165B20
+ movs r7, 0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r4, =gUnknown_085DF9EC
+ adds r2, r0, 0
+ adds r2, 0xDC
+ ldr r1, [sp, 0x24]
+ lsls r0, r1, 2
+ mov r5, sp
+ adds r3, r0, r5
+_08162362:
+ ldrb r0, [r2]
+ lsls r1, r0, 25
+ lsrs r0, r1, 30
+ cmp r0, 0
+ beq _0816238E
+ ldrb r0, [r2, 0x1]
+ adds r0, r4
+ ldrb r0, [r0]
+ ldr r5, [sp, 0x28]
+ cmp r0, r5
+ bne _0816238E
+ lsrs r0, r1, 30
+ subs r0, 0x1
+ cmp r0, r10
+ bne _0816238E
+ movs r1, 0xC8
+ lsls r1, 1
+ adds r0, r7, r1
+ stm r3!, {r0}
+ ldr r5, [sp, 0x24]
+ adds r5, 0x1
+ str r5, [sp, 0x24]
+_0816238E:
+ adds r2, 0x44
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _08162362
+_08162396:
+ ldr r0, [sp, 0x24]
+ cmp r0, 0
+ bne _081623C0
+_0816239C:
+ movs r0, 0
+ b _081623DA
+ .pool
+_081623C0:
+ ldr r4, =gTrainerBattleOpponent_A
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, [sp, 0x24]
+ bl __modsi3
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ strh r0, [r4]
+ movs r0, 0x1
+_081623DA:
+ add sp, 0x3C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_816222C
+
+ thumb_func_start sub_81623F0
+sub_81623F0: @ 81623F0
+ push {r4-r7,lr}
+ ldr r6, =gSaveBlock2Ptr
+ ldr r0, [r6]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 30
+ cmp r0, 0x2
+ bne _08162414
+ bl sub_8165E18
+ b _08162530
+ .pool
+_08162414:
+ ldr r0, =0x000040ce
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl sub_81A39C4
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x7
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ bl sub_8165C40
+ subs r4, 0x2
+ cmp r4, 0x1
+ bhi _08162488
+ ldr r1, [r6]
+ ldr r2, =0x00000cb2
+ adds r0, r1, r2
+ ldrh r3, [r0]
+ ldr r2, =gTrainerBattleOpponent_A
+ lsls r0, r3, 2
+ ldr r4, =0x00000cb4
+ adds r1, r4
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ strh r0, [r2]
+ ldr r4, =gTrainerBattleOpponent_B
+ lsls r0, r3, 1
+ adds r0, 0x1
+ lsls r0, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ strh r0, [r4]
+ ldrh r0, [r2]
+ movs r1, 0
+ bl sub_8162614
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_8162614
+ b _08162530
+ .pool
+_08162488:
+ bl sub_816222C
+ lsls r0, 24
+ cmp r0, 0
+ beq _081624B4
+ ldr r4, =gTrainerBattleOpponent_A
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_8162614
+ ldr r1, [r6]
+ ldr r2, =0x00000cb2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r2, 0x2
+ b _08162528
+ .pool
+_081624B4:
+ lsls r7, r5, 24
+ adds r5, r6, 0
+ ldr r6, =0x00000cb2
+_081624BA:
+ ldr r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsrs r0, r7, 24
+ bl sub_8162548
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r4, 0
+ ldr r1, [r5]
+ adds r0, r1, r6
+ ldrh r0, [r0]
+ cmp r4, r0
+ bge _081624FC
+ ldr r2, =0x00000cb4
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, r3
+ beq _081624FC
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ subs r2, 0x2
+ adds r0, r1, r2
+ ldrh r2, [r0]
+ ldr r0, =0x00000cb4
+ adds r1, r0
+_081624EE:
+ adds r1, 0x2
+ adds r4, 0x1
+ cmp r4, r2
+ bge _081624FC
+ ldrh r0, [r1]
+ cmp r0, r3
+ bne _081624EE
+_081624FC:
+ ldr r0, [r5]
+ ldr r1, =0x00000cb2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ bne _081624BA
+ ldr r4, =gTrainerBattleOpponent_A
+ strh r3, [r4]
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_8162614
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r2, =0x00000cb2
+ adds r0, r1, r2
+ ldrh r2, [r0]
+ adds r0, r2, 0x1
+ cmp r0, 0x6
+ bgt _08162530
+ lsls r0, r2, 1
+ ldr r2, =0x00000cb4
+_08162528:
+ adds r1, r2
+ adds r1, r0
+ ldrh r0, [r4]
+ strh r0, [r1]
+_08162530:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81623F0
+
+ thumb_func_start sub_8162548
+sub_8162548: @ 8162548
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r0, 0x7
+ bhi _08162584
+ cmp r1, 0x6
+ bne _08162570
+ ldr r2, =gUnknown_085DFA1A
+ lsls r1, r0, 2
+ adds r0, r2, 0x2
+ adds r0, r1, r0
+ adds r1, r2
+ ldrh r0, [r0]
+ ldrh r4, [r1]
+ b _0816258A
+ .pool
+_08162570:
+ ldr r2, =gUnknown_085DF9FA
+ lsls r1, r3, 2
+ adds r0, r2, 0x2
+ adds r0, r1, r0
+ adds r1, r2
+ ldrh r0, [r0]
+ ldrh r4, [r1]
+ b _0816258A
+ .pool
+_08162584:
+ ldr r1, =gUnknown_085DF9FA
+ ldrh r0, [r1, 0x1E]
+ ldrh r4, [r1, 0x1C]
+_0816258A:
+ subs r0, r4
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ bl __umodsi3
+ adds r4, r0
+ lsls r4, 16
+ lsrs r5, r4, 16
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8162548
+
+ thumb_func_start sub_81625B4
+sub_81625B4: @ 81625B4
+ push {r4,lr}
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r0, 0x7
+ bhi _081625F4
+ cmp r1, 0x6
+ bne _081625D4
+ ldr r1, =gUnknown_085DFA1A
+ lsls r2, r0, 2
+ b _081625D8
+ .pool
+_081625D4:
+ ldr r1, =gUnknown_085DF9FA
+ lsls r2, 2
+_081625D8:
+ adds r0, r1, 0x2
+ adds r0, r2, r0
+ adds r2, r1
+ ldrh r0, [r0]
+ ldrh r1, [r2]
+ subs r0, r1
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldrh r0, [r2]
+ b _08162604
+ .pool
+_081625F4:
+ ldr r0, =gUnknown_085DF9FA
+ ldrh r1, [r0, 0x1E]
+ ldrh r2, [r0, 0x1C]
+ subs r1, r2
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r0, [r0, 0x1C]
+_08162604:
+ strh r0, [r4]
+ strb r1, [r3]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81625B4
+
+ thumb_func_start sub_8162614
+sub_8162614: @ 8162614
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r6, r4, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ bl sub_8165C40
+ movs r0, 0xFA
+ lsls r0, 1
+ cmp r4, r0
+ bne _08162640
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000bed
+ adds r0, r1
+ b _081626BA
+ .pool
+_08162640:
+ ldr r0, =0x000003fe
+ cmp r4, r0
+ bne _08162650
+ bl sub_81A4DD8
+ b _08162788
+ .pool
+_08162650:
+ ldr r0, =0x0000012b
+ cmp r4, r0
+ bhi _0816266C
+ ldr r0, =gUnknown_0203BC88
+ ldr r1, [r0]
+ movs r0, 0x34
+ muls r0, r4
+ adds r0, r1
+ b _081626BA
+ .pool
+_0816266C:
+ ldr r0, =0x0000018f
+ cmp r4, r0
+ bhi _08162698
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0xfffffed4
+ adds r2, r4, r1
+ movs r1, 0xEC
+ muls r1, r2
+ adds r0, r1
+ ldr r1, =0x00000739
+ adds r0, r1
+ b _081626BA
+ .pool
+_08162698:
+ ldr r3, =gUnknown_08610970
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r0, =0xfffffe70
+ adds r2, r6, r0
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0
+ adds r1, 0xDC
+ ldrb r0, [r1]
+ lsls r0, 27
+ lsrs r0, 27
+ movs r1, 0x58
+ muls r0, r1
+ adds r0, r3
+ adds r0, 0x32
+_081626BA:
+ ldrb r2, [r0]
+ movs r1, 0
+ ldr r3, =gUnknown_085DCEDC
+ ldrb r0, [r3]
+ cmp r0, r2
+ beq _081626D4
+_081626C6:
+ adds r1, 0x1
+ cmp r1, 0x1D
+ bhi _081626D4
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _081626C6
+_081626D4:
+ cmp r1, 0x1E
+ beq _08162700
+ ldr r0, =gUnknown_085DCF0E
+ adds r0, r1, r0
+ ldrb r1, [r0]
+ cmp r5, 0x1
+ beq _08162744
+ cmp r5, 0x1
+ ble _0816272E
+ cmp r5, 0xF
+ bne _0816272E
+ b _08162750
+ .pool
+_08162700:
+ movs r1, 0
+ ldr r3, =gUnknown_085DCEFA
+ ldrb r0, [r3]
+ cmp r0, r2
+ beq _08162718
+_0816270A:
+ adds r1, 0x1
+ cmp r1, 0x13
+ bhi _08162718
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _0816270A
+_08162718:
+ cmp r1, 0x14
+ beq _0816275C
+ ldr r0, =gUnknown_085DCF2C
+ adds r0, r1, r0
+ ldrb r1, [r0]
+ cmp r5, 0x1
+ beq _08162744
+ cmp r5, 0x1
+ ble _0816272E
+ cmp r5, 0xF
+ beq _08162750
+_0816272E:
+ ldr r0, =0x00004010
+ bl VarSet
+ b _08162788
+ .pool
+_08162744:
+ ldr r0, =0x00004011
+ bl VarSet
+ b _08162788
+ .pool
+_08162750:
+ ldr r0, =0x0000401e
+ bl VarSet
+ b _08162788
+ .pool
+_0816275C:
+ cmp r5, 0x1
+ beq _08162770
+ cmp r5, 0x1
+ ble _08162768
+ cmp r5, 0xF
+ beq _08162780
+_08162768:
+ ldr r0, =0x00004010
+ b _08162772
+ .pool
+_08162770:
+ ldr r0, =0x00004011
+_08162772:
+ movs r1, 0x7
+ bl VarSet
+ b _08162788
+ .pool
+_08162780:
+ ldr r0, =0x0000401e
+ movs r1, 0x7
+ bl VarSet
+_08162788:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8162614
+
+ thumb_func_start sub_8162794
+sub_8162794: @ 8162794
+ push {lr}
+ movs r0, 0xFA
+ lsls r0, 1
+ movs r1, 0
+ bl sub_8162614
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8162794
+
+ thumb_func_start sub_81627A4
+sub_81627A4: @ 81627A4
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r5, r4, 0
+ bl sub_8165C40
+ movs r0, 0xFA
+ lsls r0, 1
+ cmp r4, r0
+ bne _081627CC
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000bed
+ adds r0, r1
+ b _08162836
+ .pool
+_081627CC:
+ ldr r0, =0x0000012b
+ cmp r4, r0
+ bhi _081627E8
+ ldr r0, =gUnknown_0203BC88
+ ldr r1, [r0]
+ movs r0, 0x34
+ muls r0, r4
+ adds r0, r1
+ b _08162836
+ .pool
+_081627E8:
+ ldr r0, =0x0000018f
+ cmp r4, r0
+ bhi _08162814
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0xfffffed4
+ adds r2, r4, r1
+ movs r1, 0xEC
+ muls r1, r2
+ adds r0, r1
+ ldr r1, =0x00000739
+ adds r0, r1
+ b _08162836
+ .pool
+_08162814:
+ ldr r3, =gUnknown_08610970
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r0, =0xfffffe70
+ adds r2, r5, r0
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0
+ adds r1, 0xDC
+ ldrb r0, [r1]
+ lsls r0, 27
+ lsrs r0, 27
+ movs r1, 0x58
+ muls r0, r1
+ adds r0, r3
+ adds r0, 0x32
+_08162836:
+ ldrb r2, [r0]
+ movs r1, 0
+ ldr r3, =gUnknown_085DCEDC
+ ldrb r0, [r3]
+ cmp r0, r2
+ beq _08162850
+_08162842:
+ adds r1, 0x1
+ cmp r1, 0x1D
+ bhi _08162850
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _08162842
+_08162850:
+ cmp r1, 0x1E
+ beq _0816286C
+ ldr r0, =gUnknown_085DCF0E
+ b _08162892
+ .pool
+_0816286C:
+ movs r1, 0
+ ldr r3, =gUnknown_085DCEFA
+ ldrb r0, [r3]
+ cmp r0, r2
+ beq _08162884
+_08162876:
+ adds r1, 0x1
+ cmp r1, 0x13
+ bhi _08162884
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _08162876
+_08162884:
+ cmp r1, 0x14
+ bne _08162890
+ movs r0, 0x7
+ b _08162896
+ .pool
+_08162890:
+ ldr r0, =gUnknown_085DCF2C
+_08162892:
+ adds r0, r1, r0
+ ldrb r0, [r0]
+_08162896:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81627A4
+
+ thumb_func_start sub_81628A0
+sub_81628A0: @ 81628A0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ movs r1, 0
+ mov r8, r1
+ mov r10, r0
+ movs r5, 0
+ ldr r2, =gSaveBlock2Ptr
+ ldr r0, [r2]
+ mov r4, r10
+ ldrb r4, [r4, 0xC]
+ str r4, [sp, 0x18]
+ mov r9, r5
+ movs r7, 0x4
+ str r7, [sp, 0x1C]
+ ldr r1, =0x00000744
+ adds r1, r0
+ mov r12, r1
+_081628CA:
+ movs r6, 0
+ movs r3, 0
+ mov r2, r12
+ ldrb r0, [r2]
+ ldr r4, [sp, 0x18]
+ cmp r0, r4
+ bne _081628FA
+ mov r4, r9
+ mov r2, r10
+ adds r2, 0xC
+_081628DE:
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _081628FA
+ ldr r7, =gSaveBlock2Ptr
+ ldr r0, [r7]
+ adds r1, r3, r4
+ ldr r7, =0x00000744
+ adds r0, r7
+ adds r0, r1
+ adds r1, r2, r3
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _081628DE
+_081628FA:
+ cmp r3, 0x4
+ bne _08162944
+ movs r6, 0
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ ldr r3, =0x0000073c
+ adds r0, r3
+ ldr r2, [sp, 0x1C]
+ adds r0, r2
+ ldrb r0, [r0]
+ mov r4, r10
+ ldrb r4, [r4, 0x8]
+ cmp r0, r4
+ bne _08162944
+ adds r1, r0, 0
+ mov r2, r9
+ adds r2, 0x4
+_0816291C:
+ cmp r1, 0xFF
+ bne _08162930
+ movs r6, 0x7
+ b _08162944
+ .pool
+_08162930:
+ adds r6, 0x1
+ cmp r6, 0x6
+ bgt _08162944
+ ldr r7, =gSaveBlock2Ptr
+ ldr r0, [r7]
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, r1
+ beq _0816291C
+_08162944:
+ cmp r6, 0x7
+ beq _0816295A
+ movs r0, 0xEC
+ add r9, r0
+ ldr r1, [sp, 0x1C]
+ adds r1, 0xEC
+ str r1, [sp, 0x1C]
+ add r12, r0
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _081628CA
+_0816295A:
+ cmp r5, 0x4
+ bgt _08162974
+ ldr r2, =gSaveBlock2Ptr
+ ldr r0, [r2]
+ movs r1, 0xEC
+ muls r1, r5
+ adds r0, r1
+ movs r4, 0xE7
+ lsls r4, 3
+ adds r0, r4
+ b _081629B2
+ .pool
+_08162974:
+ movs r5, 0
+ ldr r7, =gSaveBlock2Ptr
+ ldr r0, [r7]
+ ldr r1, =0x0000073a
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0816299E
+ adds r3, r7, 0
+ adds r2, r1, 0
+ movs r1, 0
+_0816298A:
+ adds r1, 0xEC
+ adds r5, 0x1
+ cmp r5, 0x4
+ bgt _081629C4
+ ldr r0, [r3]
+ adds r0, r1
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0816298A
+_0816299E:
+ cmp r5, 0x4
+ bgt _081629C4
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ movs r1, 0xEC
+ muls r1, r5
+ adds r0, r1
+ movs r2, 0xE7
+ lsls r2, 3
+ adds r0, r2
+_081629B2:
+ mov r1, r10
+ movs r2, 0xEC
+ bl memcpy
+ b _08162A8A
+ .pool
+_081629C4:
+ mov r2, sp
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r3, =0x0000073a
+ adds r0, r3
+ ldrh r0, [r0]
+ movs r1, 0
+ strh r0, [r2]
+ add r0, sp, 0xC
+ strh r1, [r0]
+ movs r7, 0x1
+ add r8, r7
+ movs r5, 0x1
+ add r0, sp, 0xC
+ mov r9, r0
+ mov r12, r3
+_081629E4:
+ movs r3, 0
+ adds r7, r5, 0x1
+ cmp r3, r8
+ bge _08162A2E
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ movs r2, 0xEC
+ adds r1, r5, 0
+ muls r1, r2
+ adds r0, r1
+ mov r1, r12
+ adds r4, r0, r1
+ mov r6, sp
+_081629FE:
+ lsls r0, r3, 1
+ add r0, sp
+ ldrh r2, [r4]
+ adds r1, r2, 0
+ ldrh r0, [r0]
+ cmp r1, r0
+ bcs _08162A24
+ movs r3, 0
+ movs r4, 0x1
+ mov r8, r4
+ strh r2, [r6]
+ mov r0, r9
+ strh r5, [r0]
+ b _08162A2E
+ .pool
+_08162A24:
+ cmp r1, r0
+ bhi _08162A2E
+ adds r3, 0x1
+ cmp r3, r8
+ blt _081629FE
+_08162A2E:
+ cmp r3, r8
+ bne _08162A54
+ mov r1, r8
+ lsls r2, r1, 1
+ mov r4, sp
+ adds r3, r4, r2
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ movs r4, 0xEC
+ adds r1, r5, 0
+ muls r1, r4
+ adds r0, r1
+ add r0, r12
+ ldrh r0, [r0]
+ strh r0, [r3]
+ add r2, r9
+ strh r5, [r2]
+ movs r0, 0x1
+ add r8, r0
+_08162A54:
+ adds r5, r7, 0
+ cmp r5, 0x4
+ ble _081629E4
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, r8
+ bl __modsi3
+ adds r5, r0, 0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r5, 1
+ add r1, sp
+ adds r1, 0xC
+ ldrh r2, [r1]
+ movs r1, 0xEC
+ muls r1, r2
+ adds r0, r1
+ movs r1, 0xE7
+ lsls r1, 3
+ adds r0, r1
+ mov r1, r10
+ movs r2, 0xEC
+ bl memcpy
+_08162A8A:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81628A0
+
+ thumb_func_start sub_8162AA0
+sub_8162AA0: @ 8162AA0
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r5, r4, 0
+ bl sub_8165C40
+ movs r0, 0xFA
+ lsls r0, 1
+ cmp r4, r0
+ bne _08162AD0
+ ldr r1, =gTrainerPicIndices
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000bed
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r1
+ b _08162BC8
+ .pool
+_08162AD0:
+ ldr r0, =0x000003fe
+ cmp r4, r0
+ bne _08162AE4
+ bl sub_81A4CB0
+ lsls r0, 24
+ lsrs r0, 24
+ b _08162BCA
+ .pool
+_08162AE4:
+ ldr r0, =0x0000012b
+ cmp r4, r0
+ bhi _08162B08
+ ldr r2, =gTrainerPicIndices
+ ldr r0, =gUnknown_0203BC88
+ ldr r1, [r0]
+ movs r0, 0x34
+ muls r0, r4
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, r2
+ b _08162BC8
+ .pool
+_08162B08:
+ ldr r0, =0x0000018f
+ cmp r4, r0
+ bhi _08162B64
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _08162B38
+ ldr r4, =gTrainerPicIndices
+ bl sub_818649C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ b _08162BC8
+ .pool
+_08162B38:
+ ldr r3, =gTrainerPicIndices
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0xfffffed4
+ adds r2, r4, r1
+ movs r1, 0xEC
+ muls r1, r2
+ adds r0, r1
+ ldr r2, =0x00000739
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r3
+ b _08162BC8
+ .pool
+_08162B64:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ bne _08162BB0
+ ldr r4, =gTrainerPicIndices
+ ldr r3, =gUnknown_08610970
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r0, =0xfffffe70
+ adds r2, r5, r0
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0
+ adds r1, 0xDC
+ ldrb r0, [r1]
+ lsls r0, 27
+ lsrs r0, 27
+ movs r1, 0x58
+ muls r0, r1
+ adds r0, r3
+ adds r0, 0x32
+ ldrb r0, [r0]
+ adds r0, r4
+ b _08162BC8
+ .pool
+_08162BB0:
+ ldr r5, =gTrainerPicIndices
+ ldr r4, =gUnknown_08610970
+ bl sub_81864A8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x58
+ muls r0, r1
+ adds r0, r4
+ adds r0, 0x32
+ ldrb r0, [r0]
+ adds r0, r5
+_08162BC8:
+ ldrb r0, [r0]
+_08162BCA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8162AA0
+
+ thumb_func_start sub_8162BD8
+sub_8162BD8: @ 8162BD8
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r5, r4, 0
+ bl sub_8165C40
+ movs r0, 0xFA
+ lsls r0, 1
+ cmp r4, r0
+ bne _08162C08
+ ldr r1, =gTrainerClassNameIndices
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000bed
+ adds r0, r2
+ ldrb r0, [r0]
+ b _08162C26
+ .pool
+_08162C08:
+ ldr r0, =0x000003fe
+ cmp r4, r0
+ bne _08162C1C
+ bl sub_81A4D00
+ lsls r0, 24
+ lsrs r0, 24
+ b _08162D1E
+ .pool
+_08162C1C:
+ ldr r0, =0x00000c03
+ cmp r4, r0
+ bne _08162C38
+ ldr r0, =gTrainers
+ ldr r1, =0x00007da1
+_08162C26:
+ adds r0, r1
+ ldrb r0, [r0]
+ b _08162D1E
+ .pool
+_08162C38:
+ ldr r0, =0x0000012b
+ cmp r4, r0
+ bhi _08162C60
+ ldr r2, =gTrainerClassNameIndices
+ ldr r0, =gUnknown_0203BC88
+ ldr r1, [r0]
+ movs r0, 0x34
+ muls r0, r4
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ b _08162D1E
+ .pool
+_08162C60:
+ ldr r0, =0x0000018f
+ cmp r4, r0
+ bhi _08162CBC
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _08162C90
+ ldr r4, =gTrainerClassNameIndices
+ bl sub_818649C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ ldrb r0, [r0]
+ b _08162D1E
+ .pool
+_08162C90:
+ ldr r3, =gTrainerClassNameIndices
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0xfffffed4
+ adds r2, r4, r1
+ movs r1, 0xEC
+ muls r1, r2
+ adds r0, r1
+ ldr r2, =0x00000739
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r3
+ ldrb r0, [r0]
+ b _08162D1E
+ .pool
+_08162CBC:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _08162CF4
+ ldr r5, =gTrainerClassNameIndices
+ ldr r4, =gUnknown_08610970
+ bl sub_81864A8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x58
+ muls r0, r1
+ adds r0, r4
+ adds r0, 0x32
+ ldrb r0, [r0]
+ adds r0, r5
+ ldrb r0, [r0]
+ b _08162D1E
+ .pool
+_08162CF4:
+ ldr r4, =gTrainerClassNameIndices
+ ldr r3, =gUnknown_08610970
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r0, =0xfffffe70
+ adds r2, r5, r0
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0
+ adds r1, 0xDC
+ ldrb r0, [r1]
+ lsls r0, 27
+ lsrs r0, 27
+ movs r1, 0x58
+ muls r0, r1
+ adds r0, r3
+ adds r0, 0x32
+ ldrb r0, [r0]
+ adds r0, r4
+ ldrb r0, [r0]
+_08162D1E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8162BD8
+
+ thumb_func_start sub_8162D34
+sub_8162D34: @ 8162D34
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r5, r4, 0
+ bl sub_8165C40
+ movs r0, 0xFA
+ lsls r0, 1
+ cmp r4, r0
+ bne _08162D5C
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000bed
+ adds r0, r1
+ b _08162E0A
+ .pool
+_08162D5C:
+ ldr r0, =0x0000012b
+ cmp r4, r0
+ bhi _08162D78
+ ldr r0, =gUnknown_0203BC88
+ ldr r1, [r0]
+ movs r0, 0x34
+ muls r0, r4
+ adds r0, r1
+ b _08162E0A
+ .pool
+_08162D78:
+ ldr r0, =0x0000018f
+ cmp r4, r0
+ bhi _08162DC0
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _08162DA0
+ bl sub_818649C
+ lsls r0, 24
+ lsrs r0, 24
+ b _08162E0C
+ .pool
+_08162DA0:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0xfffffed4
+ adds r2, r4, r1
+ movs r1, 0xEC
+ muls r1, r2
+ adds r0, r1
+ ldr r1, =0x00000739
+ adds r0, r1
+ b _08162E0A
+ .pool
+_08162DC0:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _08162DE8
+ ldr r4, =gUnknown_08610970
+ bl sub_81864A8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x58
+ muls r0, r1
+ adds r0, r4
+ b _08162E08
+ .pool
+_08162DE8:
+ ldr r3, =gUnknown_08610970
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r0, =0xfffffe70
+ adds r2, r5, r0
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0
+ adds r1, 0xDC
+ ldrb r0, [r1]
+ lsls r0, 27
+ lsrs r0, 27
+ movs r1, 0x58
+ muls r0, r1
+ adds r0, r3
+_08162E08:
+ adds r0, 0x32
+_08162E0A:
+ ldrb r0, [r0]
+_08162E0C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8162D34
+
+ thumb_func_start sub_8162E20
+sub_8162E20: @ 8162E20
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ movs r4, 0
+ bl sub_8165C40
+ movs r0, 0xFA
+ lsls r0, 1
+ cmp r5, r0
+ bne _08162E54
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r1, 0xBF
+ lsls r1, 4
+ adds r2, r0, r1
+_08162E40:
+ adds r0, r6, r4
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r4, 0x1
+ cmp r4, 0x6
+ ble _08162E40
+ b _08162F5C
+ .pool
+_08162E54:
+ ldr r0, =0x000003fe
+ cmp r5, r0
+ bne _08162E68
+ adds r0, r6, 0
+ bl sub_81A4D50
+ b _08162F62
+ .pool
+_08162E68:
+ ldr r0, =0x00000c03
+ cmp r5, r0
+ bne _08162E88
+ ldr r2, =gTrainers + TRAINER_STEVEN * 0x28 + 0x4 @ Steven's name
+_08162E70:
+ adds r0, r6, r4
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r4, 0x1
+ cmp r4, 0x6
+ ble _08162E70
+ b _08162F5C
+ .pool
+_08162E88:
+ ldr r0, =0x0000012b
+ cmp r5, r0
+ bhi _08162EB4
+ ldr r0, =gUnknown_0203BC88
+ ldr r1, [r0]
+ movs r0, 0x34
+ muls r0, r5
+ adds r0, r1
+ adds r2, r0, 0x4
+_08162E9A:
+ adds r0, r6, r4
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r4, 0x1
+ cmp r4, 0x6
+ ble _08162E9A
+ b _08162F5C
+ .pool
+_08162EB4:
+ ldr r0, =0x0000018f
+ cmp r5, r0
+ bhi _08162F00
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _08162ED8
+ adds r0, r6, 0
+ bl sub_8186468
+ b _08162F62
+ .pool
+_08162ED8:
+ ldr r2, =gSaveBlock2Ptr
+ movs r0, 0xEC
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =0xfffef2a8
+ adds r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ adds r1, r0, 0x4
+ adds r0, 0xE4
+ ldrb r2, [r0]
+ adds r0, r6, 0
+ bl sub_81DB5E8
+ b _08162F62
+ .pool
+_08162F00:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _08162F24
+ bl sub_81864A8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_81864C0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ b _08162F3E
+ .pool
+_08162F24:
+ ldr r1, =gSaveBlock2Ptr
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ ldr r2, =0xffff969c
+ adds r0, r2
+ ldr r1, [r1]
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 27
+ lsrs r5, r0, 27
+ adds r1, 0x3F
+ ldrb r4, [r1]
+_08162F3E:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81A1650
+ adds r1, r0, 0
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl sub_81DB5E8
+ b _08162F62
+ .pool
+_08162F5C:
+ adds r1, r6, r4
+ movs r0, 0xFF
+ strb r0, [r1]
+_08162F62:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8162E20
+
+ thumb_func_start sub_8162F68
+sub_8162F68: @ 8162F68
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r5, r4, 0
+ bl sub_8165C40
+ movs r0, 0xFA
+ lsls r0, 1
+ cmp r4, r0
+ bne _08162F90
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000bed
+ adds r0, r1
+ b _0816300E
+ .pool
+_08162F90:
+ ldr r0, =0x000003fe
+ cmp r4, r0
+ bne _08162FA4
+ bl sub_81A4DB8
+ lsls r0, 24
+ lsrs r0, 24
+ b _08163042
+ .pool
+_08162FA4:
+ ldr r0, =0x0000012b
+ cmp r4, r0
+ bhi _08162FC0
+ ldr r0, =gUnknown_0203BC88
+ ldr r1, [r0]
+ movs r0, 0x34
+ muls r0, r4
+ adds r0, r1
+ b _0816300E
+ .pool
+_08162FC0:
+ ldr r0, =0x0000018f
+ cmp r4, r0
+ bhi _08162FEC
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0xfffffed4
+ adds r2, r4, r1
+ movs r1, 0xEC
+ muls r1, r2
+ adds r0, r1
+ ldr r1, =0x00000739
+ adds r0, r1
+ b _0816300E
+ .pool
+_08162FEC:
+ ldr r3, =gUnknown_08610970
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r0, =0xfffffe70
+ adds r2, r5, r0
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0
+ adds r1, 0xDC
+ ldrb r0, [r1]
+ lsls r0, 27
+ lsrs r0, 27
+ movs r1, 0x58
+ muls r0, r1
+ adds r0, r3
+ adds r0, 0x32
+_0816300E:
+ ldrb r2, [r0]
+ movs r1, 0
+ ldr r3, =gUnknown_085DCEFA
+ ldrb r0, [r3]
+ cmp r0, r2
+ beq _08163028
+_0816301A:
+ adds r1, 0x1
+ cmp r1, 0x13
+ bhi _08163028
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _0816301A
+_08163028:
+ cmp r1, 0x14
+ bne _08163040
+ movs r0, 0
+ b _08163042
+ .pool
+_08163040:
+ movs r0, 0x1
+_08163042:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8162F68
+
+ thumb_func_start sub_8163048
+sub_8163048: @ 8163048
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl ZeroEnemyPartyMons
+ ldr r0, =gTrainerBattleOpponent_A
+ ldrh r0, [r0]
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_81630C4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8163048
+
+ thumb_func_start sub_816306C
+sub_816306C: @ 816306C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl ZeroEnemyPartyMons
+ ldr r0, =gTrainerBattleOpponent_A
+ ldrh r0, [r0]
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_81630C4
+ ldr r0, =gTrainerBattleOpponent_B
+ ldrh r0, [r0]
+ movs r1, 0x3
+ adds r2, r4, 0
+ bl sub_81630C4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_816306C
+
+ thumb_func_start sub_81630A0
+sub_81630A0: @ 81630A0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl ZeroEnemyPartyMons
+ ldr r0, =gTrainerBattleOpponent_A
+ ldrh r0, [r0]
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_8165EA4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81630A0
+
+ thumb_func_start sub_81630C4
+sub_81630C4: @ 81630C4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x40
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x18]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x1C]
+ add r4, sp, 0x14
+ movs r0, 0xFF
+ strb r0, [r4]
+ bl sub_8165C40
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x20]
+ ldr r0, =0x0000012b
+ cmp r5, r0
+ bhi _08163138
+ adds r0, r5, 0
+ bl sub_8165D08
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+ ldr r0, =gTrainerBattleOpponent_A
+ ldrh r2, [r0]
+ ldr r0, =gUnknown_0203BC88
+ ldr r1, [r0]
+ movs r0, 0x34
+ muls r0, r2
+ adds r0, r1
+ ldr r0, [r0, 0x30]
+ str r0, [sp, 0x2C]
+ movs r0, 0
+ str r0, [sp, 0x28]
+ ldr r2, [sp, 0x2C]
+ ldrh r1, [r2]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ bne _08163124
+ b _08163278
+_08163124:
+ b _08163260
+ .pool
+_08163138:
+ movs r0, 0xFA
+ lsls r0, 1
+ cmp r5, r0
+ bne _08163180
+ ldr r7, [sp, 0x18]
+ adds r0, r7, 0x3
+ cmp r7, r0
+ blt _0816314A
+ b _08163426
+_0816314A:
+ ldr r4, =gSaveBlock2Ptr
+_0816314C:
+ movs r0, 0x64
+ muls r0, r7
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldr r5, [sp, 0x18]
+ subs r2, r7, r5
+ movs r1, 0x2C
+ muls r2, r1
+ movs r6, 0xC2
+ lsls r6, 4
+ adds r2, r6
+ ldr r1, [r4]
+ adds r1, r2
+ bl sub_806819C
+ adds r7, 0x1
+ adds r0, r5, 0
+ adds r0, 0x3
+ cmp r7, r0
+ blt _0816314C
+ b _08163426
+ .pool
+_08163180:
+ ldr r0, =0x000003fe
+ cmp r5, r0
+ bne _08163190
+ bl sub_81A4E04
+ b _08163426
+ .pool
+_08163190:
+ ldr r0, =0x0000018f
+ cmp r5, r0
+ bhi _08163218
+ movs r6, 0
+ ldr r7, [sp, 0x18]
+ ldr r1, [sp, 0x1C]
+ adds r0, r7, r1
+ cmp r7, r0
+ blt _081631A4
+ b _08163426
+_081631A4:
+ ldr r2, =0xfffffed4
+ adds r1, r5, r2
+ movs r0, 0xEC
+ adds r2, r1, 0
+ muls r2, r0
+ mov r8, r2
+ muls r0, r5
+ ldr r5, =0xfffef2a8
+ adds r4, r0, r5
+_081631B6:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ movs r0, 0x2C
+ adds r2, r6, 0
+ muls r2, r0
+ mov r1, r8
+ adds r0, r2, r1
+ adds r1, r3, r0
+ ldr r5, =0x0000076c
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081631F0
+ adds r5, 0xC
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r1, [sp, 0x20]
+ cmp r0, r1
+ bhi _081631F0
+ movs r0, 0x64
+ muls r0, r7
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ adds r1, r3, r4
+ adds r2, 0x34
+ adds r1, r2
+ movs r2, 0
+ bl sub_8068338
+_081631F0:
+ adds r6, 0x1
+ adds r7, 0x1
+ ldr r2, [sp, 0x18]
+ ldr r5, [sp, 0x1C]
+ adds r0, r2, r5
+ cmp r7, r0
+ blt _081631B6
+ b _08163426
+ .pool
+_08163218:
+ ldr r7, [sp, 0x18]
+ adds r0, r7, 0x3
+ cmp r7, r0
+ blt _08163222
+ b _08163426
+_08163222:
+ ldr r6, =gSaveBlock2Ptr
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ ldr r1, =0xffff969c
+ adds r5, r0, r1
+ movs r4, 0
+_08163230:
+ movs r0, 0x64
+ muls r0, r7
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldr r1, [r6]
+ adds r1, r5
+ lsrs r2, r4, 24
+ bl sub_8068528
+ movs r2, 0x80
+ lsls r2, 17
+ adds r4, r2
+ adds r7, 0x1
+ ldr r0, [sp, 0x18]
+ adds r0, 0x3
+ cmp r7, r0
+ blt _08163230
+ b _08163426
+ .pool
+_08163260:
+ ldr r0, [sp, 0x28]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x28]
+ lsls r0, 1
+ ldr r5, [sp, 0x2C]
+ adds r0, r5
+ ldrh r1, [r0]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ bne _08163260
+_08163278:
+ movs r7, 0
+ bl Random
+ adds r4, r0, 0
+ bl Random
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, 16
+ orrs r4, r0
+ str r4, [sp, 0x30]
+ ldr r6, [sp, 0x1C]
+ cmp r7, r6
+ bne _08163296
+ b _08163426
+_08163296:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, [sp, 0x28]
+ bl __modsi3
+ lsls r0, 1
+ ldr r1, [sp, 0x2C]
+ adds r0, r1
+ ldrh r4, [r0]
+ ldr r2, [sp, 0x20]
+ cmp r2, 0x32
+ beq _081632B6
+ cmp r2, 0x14
+ bne _081632BE
+_081632B6:
+ ldr r0, =0x00000351
+ cmp r4, r0
+ bls _081632BE
+ b _0816341E
+_081632BE:
+ movs r6, 0
+ ldr r5, [sp, 0x18]
+ adds r5, r7
+ mov r8, r5
+ b _081632D2
+ .pool
+_081632D0:
+ adds r6, 0x1
+_081632D2:
+ cmp r6, r8
+ bge _081632F6
+ movs r1, 0x64
+ adds r0, r6, 0
+ muls r0, r1
+ ldr r2, =gEnemyParty
+ adds r0, r2
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ ldr r1, =gUnknown_0203BC8C
+ ldr r2, [r1]
+ lsls r1, r4, 4
+ adds r1, r2
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _081632D0
+_081632F6:
+ cmp r6, r8
+ beq _081632FC
+ b _0816341E
+_081632FC:
+ movs r6, 0
+ cmp r6, r8
+ bge _08163346
+ ldr r5, =gBattleFrontierHeldItems
+ mov r9, r5
+ movs r3, 0
+_08163308:
+ ldr r0, =gEnemyParty
+ adds r5, r3, r0
+ adds r0, r5, 0
+ movs r1, 0xC
+ movs r2, 0
+ str r3, [sp, 0x38]
+ bl GetMonData
+ ldr r3, [sp, 0x38]
+ cmp r0, 0
+ beq _0816333E
+ adds r0, r5, 0
+ movs r1, 0xC
+ movs r2, 0
+ bl GetMonData
+ ldr r1, =gUnknown_0203BC8C
+ ldr r2, [r1]
+ lsls r1, r4, 4
+ adds r1, r2
+ ldrb r1, [r1, 0xA]
+ lsls r1, 1
+ add r1, r9
+ ldr r3, [sp, 0x38]
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _08163346
+_0816333E:
+ adds r3, 0x64
+ adds r6, 0x1
+ cmp r6, r8
+ blt _08163308
+_08163346:
+ cmp r6, r8
+ bne _0816341E
+ movs r6, 0
+ cmp r6, r7
+ bge _08163368
+ add r0, sp, 0xC
+ ldrh r0, [r0]
+ cmp r0, r4
+ beq _08163368
+ add r1, sp, 0xC
+_0816335A:
+ adds r1, 0x2
+ adds r6, 0x1
+ cmp r6, r7
+ bge _08163368
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _0816335A
+_08163368:
+ cmp r6, r7
+ bne _0816341E
+ lsls r0, r7, 1
+ add r0, sp
+ adds r0, 0xC
+ strh r4, [r0]
+ movs r1, 0x64
+ mov r0, r8
+ muls r0, r1
+ ldr r2, =gEnemyParty
+ adds r0, r2
+ ldr r5, =gUnknown_0203BC8C
+ ldr r2, [r5]
+ lsls r4, 4
+ adds r2, r4, r2
+ ldrh r1, [r2]
+ ldrb r3, [r2, 0xC]
+ ldr r6, [sp, 0x24]
+ str r6, [sp]
+ ldrb r2, [r2, 0xB]
+ str r2, [sp, 0x4]
+ ldr r2, [sp, 0x30]
+ str r2, [sp, 0x8]
+ ldr r2, [sp, 0x20]
+ bl sub_8068634
+ movs r0, 0xFF
+ mov r6, sp
+ strb r0, [r6, 0x14]
+ movs r6, 0
+ adds r0, r7, 0x1
+ str r0, [sp, 0x34]
+ mov r9, r4
+ movs r0, 0x64
+ mov r3, r8
+ muls r3, r0
+ mov r1, r9
+ str r1, [sp, 0x3C]
+ ldr r2, =gEnemyParty
+ mov r10, r2
+_081633B8:
+ ldr r0, [r5]
+ ldr r7, [sp, 0x3C]
+ adds r0, r7, r0
+ lsls r4, r6, 1
+ adds r0, 0x2
+ adds r0, r4
+ ldrh r1, [r0]
+ lsls r2, r6, 24
+ lsrs r2, 24
+ mov r7, r10
+ adds r0, r3, r7
+ str r3, [sp, 0x38]
+ bl sub_80691F4
+ ldr r0, [r5]
+ ldr r1, [sp, 0x3C]
+ adds r0, r1, r0
+ adds r0, 0x2
+ adds r0, r4
+ ldrh r0, [r0]
+ ldr r3, [sp, 0x38]
+ cmp r0, 0xDA
+ bne _081633EC
+ movs r0, 0
+ mov r2, sp
+ strb r0, [r2, 0x14]
+_081633EC:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _081633B8
+ movs r5, 0x64
+ mov r4, r8
+ muls r4, r5
+ ldr r6, =gEnemyParty
+ adds r4, r6
+ adds r0, r4, 0
+ movs r1, 0x20
+ add r2, sp, 0x14
+ bl SetMonData
+ ldr r0, =gUnknown_0203BC8C
+ ldr r0, [r0]
+ add r0, r9
+ ldrb r2, [r0, 0xA]
+ lsls r2, 1
+ ldr r0, =gBattleFrontierHeldItems
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ ldr r7, [sp, 0x34]
+_0816341E:
+ ldr r0, [sp, 0x1C]
+ cmp r7, r0
+ beq _08163426
+ b _08163296
+_08163426:
+ add sp, 0x40
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81630C4
+
+ thumb_func_start sub_8163444
+sub_8163444: @ 8163444
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x8]
+ movs r1, 0xFF
+ add r0, sp, 0x4
+ strb r1, [r0]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ movs r0, 0xDC
+ adds r0, r2
+ mov r10, r0
+ ldrb r0, [r0, 0x1]
+ movs r1, 0x9
+ str r1, [sp, 0x10]
+ cmp r0, 0x4
+ bhi _08163474
+ movs r0, 0x6
+ str r0, [sp, 0x10]
+_08163474:
+ ldr r1, =0x00000ca9
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ movs r1, 0x32
+ str r1, [sp, 0xC]
+ cmp r0, 0
+ beq _0816348A
+ movs r0, 0x64
+ str r0, [sp, 0xC]
+_0816348A:
+ movs r7, 0
+ adds r2, 0xE2
+ str r2, [sp, 0x14]
+ add r1, sp, 0x4
+ mov r9, r1
+_08163494:
+ ldr r2, [sp, 0x8]
+ adds r6, r2, r7
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ lsls r5, r7, 1
+ adds r4, r5, r7
+ lsls r4, 2
+ mov r2, r10
+ adds r1, r2, r4
+ ldrh r1, [r1, 0x4]
+ movs r2, 0x8
+ str r2, [sp]
+ ldr r2, [sp, 0xC]
+ ldr r3, [sp, 0x10]
+ bl CreateMonWithEVSpread
+ movs r0, 0xFF
+ mov r1, r9
+ strb r0, [r1]
+ adds r2, r7, 0x1
+ mov r8, r2
+ movs r1, 0x3
+_081634C4:
+ ldr r2, [sp, 0x14]
+ adds r0, r2, r4
+ ldrh r0, [r0]
+ cmp r0, 0xDA
+ bne _081634D4
+ movs r2, 0
+ mov r0, r9
+ strb r2, [r0]
+_081634D4:
+ adds r4, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _081634C4
+ movs r0, 0x64
+ adds r4, r6, 0
+ muls r4, r0
+ ldr r0, =gEnemyParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x20
+ add r2, sp, 0x4
+ bl SetMonData
+ adds r2, r5, r7
+ lsls r2, 2
+ add r2, r10
+ adds r2, 0xE
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ mov r7, r8
+ cmp r7, 0x3
+ bne _08163494
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8163444
+
+ thumb_func_start sub_8163524
+sub_8163524: @ 8163524
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl sub_8165C40
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, =gUnknown_0203BC88
+ ldr r1, [r0]
+ movs r0, 0x34
+ muls r0, r4
+ adds r0, r1
+ ldr r5, [r0, 0x30]
+ movs r4, 0
+ ldrh r1, [r5]
+ b _08163558
+ .pool
+_0816354C:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 1
+ adds r0, r5
+ ldrh r1, [r0]
+_08163558:
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ bne _0816354C
+_0816355E:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 1
+ adds r0, r5
+ ldrh r1, [r0]
+ cmp r6, 0x32
+ beq _0816357A
+ cmp r6, 0x14
+ bne _08163580
+_0816357A:
+ ldr r0, =0x00000351
+ cmp r1, r0
+ bhi _0816355E
+_08163580:
+ adds r0, r1, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8163524
+
+ thumb_func_start sub_8163590
+sub_8163590: @ 8163590
+ push {lr}
+ bl ZeroEnemyPartyMons
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x2
+ beq _081635C0
+ ldr r0, =gTrainerBattleOpponent_A
+ ldrh r0, [r0]
+ movs r1, 0
+ bl sub_81635D4
+ b _081635CA
+ .pool
+_081635C0:
+ ldr r0, =gTrainerBattleOpponent_A
+ ldrh r0, [r0]
+ movs r1, 0
+ bl sub_816379C
+_081635CA:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8163590
+
+ thumb_func_start sub_81635D4
+sub_81635D4: @ 81635D4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 16
+ lsrs r2, r0, 16
+ adds r3, r2, 0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x10]
+ ldr r0, =0x0000012b
+ cmp r2, r0
+ bhi _0816364A
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 24
+ ldr r4, [r4]
+ lsrs r0, 22
+ movs r2, 0xCE
+ lsls r2, 4
+ adds r1, r4, r2
+ adds r1, r0
+ ldrh r0, [r1]
+ movs r1, 0x7
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, =0x00000cb2
+ adds r4, r3
+ ldrh r0, [r4]
+ cmp r0, 0x5
+ bhi _0816363C
+ adds r0, r1, 0
+ movs r1, 0
+ bl sub_81A6CA8
+ lsls r0, 24
+ lsrs r0, 24
+ b _081636A6
+ .pool
+_0816363C:
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl sub_81A6CA8
+ lsls r0, 24
+ lsrs r0, 24
+ b _081636A6
+_0816364A:
+ movs r0, 0xFA
+ lsls r0, 1
+ cmp r2, r0
+ bne _08163694
+ ldr r7, [sp, 0x10]
+ adds r0, r7, 0x3
+ cmp r7, r0
+ blt _0816365C
+ b _08163776
+_0816365C:
+ ldr r4, =gSaveBlock2Ptr
+_0816365E:
+ movs r0, 0x64
+ muls r0, r7
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldr r1, [sp, 0x10]
+ subs r2, r7, r1
+ movs r1, 0x2C
+ muls r2, r1
+ movs r3, 0xC2
+ lsls r3, 4
+ adds r2, r3
+ ldr r1, [r4]
+ adds r1, r2
+ bl sub_806819C
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, [sp, 0x10]
+ adds r0, 0x3
+ cmp r7, r0
+ blt _0816365E
+ b _08163776
+ .pool
+_08163694:
+ ldr r0, =0x000003fe
+ cmp r3, r0
+ bne _081636A4
+ bl sub_81A6CD0
+ b _08163776
+ .pool
+_081636A4:
+ movs r0, 0x1F
+_081636A6:
+ str r0, [sp, 0x18]
+ bl sub_8165C40
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x14]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldrb r2, [r1, 0xA]
+ ldrb r0, [r1, 0xB]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r1, 0xC]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r1, 0xD]
+ lsls r0, 24
+ orrs r2, r0
+ mov r8, r2
+ movs r7, 0
+_081636CE:
+ ldr r1, =gUnknown_03006298
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ mov r9, r0
+ ldr r3, [sp, 0x10]
+ adds r5, r3, r7
+ movs r0, 0x64
+ adds r6, r5, 0
+ muls r6, r0
+ ldr r1, =gEnemyParty
+ adds r0, r6, r1
+ ldr r3, =gUnknown_0203BC8C
+ ldr r2, [r3]
+ mov r1, r9
+ lsls r4, r1, 4
+ adds r2, r4, r2
+ ldrh r1, [r2]
+ ldrb r3, [r2, 0xC]
+ mov r10, r3
+ ldr r3, [sp, 0x18]
+ str r3, [sp]
+ ldrb r2, [r2, 0xB]
+ str r2, [sp, 0x4]
+ mov r2, r8
+ str r2, [sp, 0x8]
+ ldr r2, [sp, 0x14]
+ mov r3, r10
+ bl sub_8068634
+ movs r1, 0
+ add r0, sp, 0xC
+ strb r1, [r0]
+ movs r3, 0
+ adds r7, 0x1
+ mov r10, r7
+ adds r7, r4, 0
+_08163718:
+ ldr r0, =gUnknown_0203BC8C
+ ldr r1, [r0]
+ mov r2, r9
+ lsls r0, r2, 4
+ adds r0, r1
+ lsls r1, r3, 1
+ adds r0, 0x2
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r2, =gEnemyParty
+ adds r0, r6, r2
+ adds r2, r3, 0
+ str r3, [sp, 0x1C]
+ bl sub_81A7024
+ ldr r3, [sp, 0x1C]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _08163718
+ movs r3, 0x64
+ adds r4, r5, 0
+ muls r4, r3
+ ldr r0, =gEnemyParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x20
+ add r2, sp, 0xC
+ bl SetMonData
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, [r1]
+ adds r0, r7, r0
+ ldrb r2, [r0, 0xA]
+ lsls r2, 1
+ ldr r0, =gBattleFrontierHeldItems
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ mov r2, r10
+ lsls r0, r2, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x2
+ bls _081636CE
+_08163776:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81635D4
+
+ thumb_func_start sub_816379C
+sub_816379C: @ 816379C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x10]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldrb r0, [r1, 0xA]
+ mov r9, r0
+ ldrb r0, [r1, 0xB]
+ lsls r0, 8
+ mov r2, r9
+ orrs r2, r0
+ ldrb r0, [r1, 0xC]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r1, 0xD]
+ lsls r0, 24
+ orrs r2, r0
+ mov r9, r2
+ movs r7, 0
+ mov r8, r7
+_081637D0:
+ ldr r1, =gUnknown_03006298
+ mov r2, r8
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r4, [r0]
+ ldr r5, [sp, 0x10]
+ add r5, r8
+ movs r7, 0x64
+ adds r6, r5, 0
+ muls r6, r7
+ ldr r1, =gEnemyParty
+ adds r0, r6, r1
+ ldr r7, =gUnknown_0203BC8C
+ ldr r2, [r7]
+ lsls r4, 4
+ adds r2, r4, r2
+ ldrh r1, [r2]
+ ldrb r3, [r2, 0xC]
+ movs r7, 0
+ str r7, [sp]
+ ldrb r2, [r2, 0xB]
+ str r2, [sp, 0x4]
+ mov r2, r9
+ str r2, [sp, 0x8]
+ movs r2, 0x1E
+ bl sub_8068634
+ movs r1, 0
+ add r0, sp, 0xC
+ strb r1, [r0]
+ mov r10, r5
+ mov r0, r8
+ adds r0, 0x1
+ str r0, [sp, 0x14]
+ mov r8, r4
+ mov r5, r8
+_08163818:
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, [r1]
+ adds r0, r5, r0
+ lsls r4, r7, 1
+ adds r0, 0x2
+ adds r0, r4
+ ldrh r1, [r0]
+ ldr r2, =gEnemyParty
+ adds r0, r6, r2
+ adds r2, r7, 0
+ bl sub_81A7024
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, [r1]
+ adds r0, r5, r0
+ adds r0, 0x2
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, 0xDA
+ bne _08163846
+ movs r1, 0
+ add r0, sp, 0xC
+ strb r1, [r0]
+_08163846:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x3
+ bls _08163818
+ movs r2, 0x64
+ mov r4, r10
+ muls r4, r2
+ ldr r7, =gEnemyParty
+ adds r4, r7
+ adds r0, r4, 0
+ movs r1, 0x20
+ add r2, sp, 0xC
+ bl SetMonData
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, [r1]
+ add r0, r8
+ ldrb r2, [r0, 0xA]
+ lsls r2, 1
+ ldr r0, =gBattleFrontierHeldItems
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ ldr r2, [sp, 0x14]
+ lsls r0, r2, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x2
+ bls _081637D0
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_816379C
+
+ thumb_func_start ConvertBattleFrontierTrainerSpeechToString
+ConvertBattleFrontierTrainerSpeechToString: @ 81638AC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, =gStringVar4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x3
+ movs r3, 0x2
+ bl ConvertEasyChatWordsToString
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x1
+ adds r1, r4, 0
+ bl GetStringWidth
+ cmp r0, 0xCC
+ bls _0816390A
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x2
+ movs r3, 0x3
+ bl ConvertEasyChatWordsToString
+ ldrb r0, [r4]
+ movs r1, 0x1
+ cmp r0, 0xFE
+ beq _081638EE
+ adds r2, r4, 0
+_081638E4:
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r1, 0x1
+ cmp r0, 0xFE
+ bne _081638E4
+_081638EE:
+ ldr r2, =gStringVar4
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r3, r2, 0
+ cmp r0, 0xFE
+ beq _08163904
+_081638FA:
+ adds r1, 0x1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFE
+ bne _081638FA
+_08163904:
+ adds r1, r3
+ movs r0, 0xFA
+ strb r0, [r1]
+_0816390A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ConvertBattleFrontierTrainerSpeechToString
+
+ thumb_func_start sub_8163914
+sub_8163914: @ 8163914
+ push {lr}
+ bl sub_8165C40
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08163930
+ ldr r0, =gTrainerBattleOpponent_B
+ b _08163932
+ .pool
+_08163930:
+ ldr r0, =gTrainerBattleOpponent_A
+_08163932:
+ ldrh r3, [r0]
+ movs r0, 0xFA
+ lsls r0, 1
+ cmp r3, r0
+ bne _08163950
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000bfc
+ b _08163986
+ .pool
+_08163950:
+ ldr r0, =0x0000012b
+ cmp r3, r0
+ bhi _08163974
+ ldr r2, =gUnknown_0203BC88
+ movs r0, 0x34
+ adds r1, r3, 0
+ muls r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ adds r0, 0xC
+ bl ConvertBattleFrontierTrainerSpeechToString
+ b _081639A8
+ .pool
+_08163974:
+ ldr r0, =0x0000018f
+ cmp r3, r0
+ bhi _0816399C
+ ldr r1, =gSaveBlock2Ptr
+ movs r0, 0xEC
+ muls r0, r3
+ ldr r1, [r1]
+ adds r0, r1
+ ldr r1, =0xfffef2b8
+_08163986:
+ adds r0, r1
+ bl ConvertBattleFrontierTrainerSpeechToString
+ b _081639A8
+ .pool
+_0816399C:
+ adds r0, r3, 0
+ adds r0, 0x70
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_819F99C
+_081639A8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8163914
+
+ thumb_func_start sub_81639AC
+sub_81639AC: @ 81639AC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ bl sub_81864CC
+ ldr r0, =gBattleScripting
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ bhi _08163A78
+ lsls r0, 2
+ ldr r1, =_081639D0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081639D0:
+ .4byte _081639FC
+ .4byte _08163A38
+ .4byte _08163A74
+ .4byte _081639FC
+ .4byte _081639FC
+ .4byte _081639FC
+ .4byte _081639FC
+ .4byte _081639FC
+ .4byte _08163A78
+ .4byte _081639FC
+ .4byte _081639FC
+_081639FC:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000ebc
+ adds r1, r0, r2
+ ldr r2, [r1]
+ ldr r0, =0x00fffffe
+ cmp r2, r0
+ bhi _08163A2C
+ adds r0, r2, 0x1
+ str r0, [r1]
+ movs r1, 0x14
+ bl __umodsi3
+ cmp r0, 0
+ bne _08163A78
+ bl sub_81DA57C
+ b _08163A78
+ .pool
+_08163A2C:
+ ldr r0, =0x00ffffff
+ str r0, [r1]
+ b _08163A78
+ .pool
+_08163A38:
+ movs r5, 0
+ ldr r6, =gSaveBlock1Ptr
+_08163A3C:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ movs r0, 0x8E
+ lsls r0, 2
+ adds r1, r4, r0
+ ldr r0, [r6]
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ ldr r0, =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08163A3C
+ b _08163A78
+ .pool
+_08163A74:
+ bl sub_816537C
+_08163A78:
+ ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81639AC
+
+ thumb_func_start sub_8163A8C
+sub_8163A8C: @ 8163A8C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsBattleTransitionDone
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08163AB0
+ ldr r0, =gMain
+ ldr r1, =sub_81639AC
+ str r1, [r0, 0x8]
+ ldr r0, =sub_8036760
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08163AB0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8163A8C
+
+ thumb_func_start sub_8163AC4
+sub_8163AC4: @ 8163AC4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r0, =gBattleScripting
+ ldr r2, =gSpecialVar_0x8004
+ ldrh r1, [r2]
+ adds r0, 0x26
+ strb r1, [r0]
+ ldrh r0, [r2]
+ cmp r0, 0xA
+ bls _08163ADA
+ b _08163E68
+_08163ADA:
+ lsls r0, 2
+ ldr r1, =_08163AF0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08163AF0:
+ .4byte _08163B1C
+ .4byte _08163BC0
+ .4byte _08163C10
+ .4byte _08163C70
+ .4byte _08163CC4
+ .4byte _08163D28
+ .4byte _08163D74
+ .4byte _08163DB4
+ .4byte _08163E2C
+ .4byte _08163DF4
+ .4byte _08163DC8
+_08163B1C:
+ ldr r5, =gBattleTypeFlags
+ movs r0, 0x84
+ lsls r0, 1
+ str r0, [r5]
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ beq _08163B56
+ cmp r4, 0x1
+ bgt _08163B44
+ cmp r4, 0
+ beq _08163B4E
+ b _08163BA6
+ .pool
+_08163B44:
+ cmp r4, 0x2
+ beq _08163B64
+ cmp r4, 0x3
+ beq _08163B98
+ b _08163BA6
+_08163B4E:
+ movs r0, 0x3
+ bl sub_8163048
+ b _08163BA6
+_08163B56:
+ movs r0, 0x4
+ bl sub_8163048
+ ldr r0, [r5]
+ orrs r0, r4
+ str r0, [r5]
+ b _08163BA6
+_08163B64:
+ movs r0, 0x2
+ bl sub_816306C
+ ldr r1, =gUnknown_02038BCE
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000cd6
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldrh r0, [r1]
+ bl sub_8165404
+ ldr r0, [r5]
+ ldr r1, =0x00408041
+ orrs r0, r1
+ str r0, [r5]
+ b _08163BA6
+ .pool
+_08163B98:
+ ldr r0, [r5]
+ ldr r1, =0x00800043
+ orrs r0, r1
+ str r0, [r5]
+ movs r0, 0x2
+ bl sub_816306C
+_08163BA6:
+ ldr r0, =sub_8163A8C
+ movs r1, 0x1
+ bl CreateTask
+ movs r0, 0
+ bl PlayNewMapMusic__default_for_battle
+ movs r0, 0
+ b _08163E10
+ .pool
+_08163BC0:
+ movs r5, 0
+ ldr r6, =gSaveBlock1Ptr
+_08163BC4:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =gPlayerParty
+ adds r0, r4, r0
+ movs r1, 0xC
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ movs r0, 0x8E
+ lsls r0, 2
+ adds r4, r0
+ ldr r0, [r6]
+ adds r0, r4
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08163BC4
+ ldr r0, =sub_8163A8C
+ movs r1, 0x1
+ bl CreateTask
+ movs r0, 0
+ bl PlayNewMapMusic__default_for_battle
+ movs r0, 0xC
+ b _08163E10
+ .pool
+_08163C10:
+ bl ZeroEnemyPartyMons
+ movs r5, 0
+ ldr r4, =gSaveBlock2Ptr
+_08163C18:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2C
+ adds r2, r5, 0
+ muls r2, r1
+ movs r1, 0xC2
+ lsls r1, 4
+ adds r2, r1
+ ldr r1, [r4]
+ adds r1, r2
+ bl sub_806819C
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _08163C18
+ ldr r1, =gBattleTypeFlags
+ ldr r0, =0x00000808
+ str r0, [r1]
+ ldr r1, =gTrainerBattleOpponent_A
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, =sub_8163A8C
+ movs r1, 0x1
+ bl CreateTask
+ movs r0, 0
+ bl PlayNewMapMusic__default_for_battle
+ movs r0, 0xD
+ b _08163E10
+ .pool
+_08163C70:
+ ldr r4, =gBattleTypeFlags
+ ldr r0, =0x00010008
+ str r0, [r4]
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1
+ bne _08163C8A
+ ldr r0, [r4]
+ orrs r0, r1
+ str r0, [r4]
+_08163C8A:
+ ldr r0, =gTrainerBattleOpponent_A
+ ldrh r1, [r0]
+ ldr r0, =0x000003fe
+ cmp r1, r0
+ bne _08163C9A
+ movs r0, 0x2
+ bl sub_8163048
+_08163C9A:
+ ldr r0, =sub_8163A8C
+ movs r1, 0x1
+ bl CreateTask
+ movs r0, 0
+ bl sub_806E694
+ movs r0, 0x3
+ b _08163E10
+ .pool
+_08163CC4:
+ ldr r4, =gBattleTypeFlags
+ ldr r0, =0x00020008
+ str r0, [r4]
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1
+ bne _08163CDE
+ ldr r0, [r4]
+ orrs r0, r1
+ str r0, [r4]
+_08163CDE:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000ca9
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x2
+ beq _08163D0C
+ movs r0, 0x3
+ bl sub_8163048
+ b _08163D12
+ .pool
+_08163D0C:
+ movs r0, 0x3
+ bl sub_81630A0
+_08163D12:
+ ldr r0, =sub_8163A8C
+ movs r1, 0x1
+ bl CreateTask
+ movs r0, 0
+ bl PlayNewMapMusic__default_for_battle
+ movs r0, 0x4
+ b _08163E10
+ .pool
+_08163D28:
+ ldr r1, =gBattleTypeFlags
+ ldr r0, =0x00040008
+ str r0, [r1]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x2
+ beq _08163D58
+ movs r0, 0x3
+ bl sub_8163048
+ b _08163D5E
+ .pool
+_08163D58:
+ movs r0, 0x3
+ bl sub_81630A0
+_08163D5E:
+ ldr r0, =sub_8163A8C
+ movs r1, 0x1
+ bl CreateTask
+ movs r0, 0
+ bl PlayNewMapMusic__default_for_battle
+ movs r0, 0x5
+ b _08163E10
+ .pool
+_08163D74:
+ ldr r4, =gBattleTypeFlags
+ ldr r0, =0x00080008
+ str r0, [r4]
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1
+ bne _08163D8E
+ ldr r0, [r4]
+ orrs r0, r1
+ str r0, [r4]
+_08163D8E:
+ bl sub_8163590
+ ldr r0, =sub_8163A8C
+ movs r1, 0x1
+ bl CreateTask
+ movs r0, 0
+ bl PlayNewMapMusic__default_for_battle
+ movs r0, 0x6
+ b _08163E10
+ .pool
+_08163DB4:
+ ldr r1, =gBattleTypeFlags
+ movs r0, 0x84
+ lsls r0, 1
+ str r0, [r1]
+ movs r0, 0x3
+ bl sub_8163048
+ b _08163E00
+ .pool
+_08163DC8:
+ ldr r1, =gBattleTypeFlags
+ ldr r0, =0x00200008
+ str r0, [r1]
+ movs r0, 0x3
+ bl sub_8163048
+ ldr r0, =sub_8163A8C
+ movs r1, 0x1
+ bl CreateTask
+ movs r0, 0
+ bl PlayNewMapMusic__default_for_battle
+ movs r0, 0xA
+ b _08163E10
+ .pool
+_08163DF4:
+ ldr r1, =gBattleTypeFlags
+ ldr r0, =0x00008109
+ str r0, [r1]
+ movs r0, 0x1
+ bl sub_816306C
+_08163E00:
+ ldr r0, =sub_8163A8C
+ movs r1, 0x1
+ bl CreateTask
+ movs r0, 0
+ bl PlayNewMapMusic__default_for_battle
+ movs r0, 0x7
+_08163E10:
+ bl sub_80B100C
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8145EF4
+ b _08163E68
+ .pool
+_08163E2C:
+ ldr r1, =gBattleTypeFlags
+ ldr r0, =0x00408049
+ str r0, [r1]
+ ldr r5, =0x00000c03
+ adds r0, r5, 0
+ bl sub_8165404
+ ldr r4, =gUnknown_02038BFC
+ movs r0, 0
+ strb r0, [r4]
+ ldr r0, =gUnknown_08224158
+ bl TrainerBattleConfigure
+ movs r0, 0x1
+ strb r0, [r4]
+ ldr r0, =gUnknown_08224167
+ bl TrainerBattleConfigure
+ ldr r0, =gUnknown_02038BCE
+ strh r5, [r0]
+ ldr r0, =sub_8163A8C
+ movs r1, 0x1
+ bl CreateTask
+ movs r0, 0
+ bl PlayNewMapMusic__default_for_battle
+ movs r0, 0x12
+ bl sub_8145EF4
+_08163E68:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8163AC4
+
+ thumb_func_start sub_8163E90
+sub_8163E90: @ 8163E90
+ push {r4-r6,lr}
+ ldr r6, =gSaveBlock2Ptr
+ ldr r0, [r6]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r5, [r0]
+ lsls r5, 30
+ lsrs r5, 30
+ ldr r0, =0x000040ce
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8164FCC
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, [r6]
+ lsls r5, 1
+ lsls r4, 2
+ adds r5, r4
+ movs r1, 0xCE
+ lsls r1, 4
+ adds r0, r1
+ adds r1, r0, r5
+ ldrh r0, [r1]
+ cmp r0, r2
+ bcs _08163ED0
+ strh r2, [r1]
+_08163ED0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8163E90
+
+ thumb_func_start sub_8163EE4
+sub_8163EE4: @ 8163EE4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r1, =0x0000064c
+ adds r5, r0, r1
+ adds r0, r5, 0
+ bl sub_8164FB8
+ ldr r0, [r4]
+ ldr r2, =0x00000ca9
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r6, r0, 30
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _08163F40
+ ldr r4, =gUnknown_085DCEFA
+ ldrb r0, [r2, 0xA]
+ ldrb r1, [r2, 0xB]
+ adds r0, r1
+ ldrb r1, [r2, 0xC]
+ adds r0, r1
+ ldrb r1, [r2, 0xD]
+ adds r0, r1
+ movs r1, 0x14
+ b _08163F52
+ .pool
+_08163F40:
+ ldr r4, =gUnknown_085DCEDC
+ ldrb r0, [r2, 0xA]
+ ldrb r1, [r2, 0xB]
+ adds r0, r1
+ ldrb r1, [r2, 0xC]
+ adds r0, r1
+ ldrb r1, [r2, 0xD]
+ adds r0, r1
+ movs r1, 0x1E
+_08163F52:
+ bl __umodsi3
+ adds r0, r4
+ ldrb r0, [r0]
+ strb r6, [r5]
+ strb r0, [r5, 0x1]
+ adds r0, r5, 0
+ adds r0, 0xC
+ ldr r4, =gSaveBlock2Ptr
+ ldr r1, [r4]
+ adds r1, 0xA
+ bl CopyUnalignedWord
+ adds r0, r5, 0x4
+ ldr r1, [r4]
+ bl StringCopy7
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl sub_8164FCC
+ strh r0, [r5, 0x2]
+ movs r4, 0
+ movs r2, 0x10
+ adds r2, r5
+ mov r12, r2
+ movs r7, 0x1C
+ adds r7, r5
+ mov r9, r7
+ adds r6, r5, 0
+ adds r6, 0x28
+ movs r0, 0xE4
+ adds r0, r5
+ mov r8, r0
+_08163F96:
+ lsls r2, r4, 1
+ mov r1, r12
+ adds r3, r1, r2
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldr r7, =0x00002bbc
+ adds r0, r1, r7
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r3]
+ mov r0, r9
+ adds r3, r0, r2
+ adds r7, 0xC
+ adds r0, r1, r7
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r3]
+ adds r3, r6, r2
+ ldr r0, =0x00002bd4
+ adds r1, r0
+ adds r1, r2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _08163F96
+ movs r4, 0
+_08163FCC:
+ ldr r6, =gSaveBlock2Ptr
+ ldr r0, [r6]
+ lsls r1, r4, 1
+ ldr r2, =0x00000caa
+ adds r0, r2
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08163FF4
+ adds r1, r0, 0
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gUnknown_02024488
+ adds r0, r1
+ movs r1, 0x2C
+ muls r1, r4
+ adds r1, 0x34
+ adds r1, r5, r1
+ bl sub_80686FC
+_08163FF4:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08163FCC
+ ldr r0, =gGameLanguage
+ ldrb r0, [r0]
+ mov r7, r8
+ strb r0, [r7]
+ ldr r0, [r6]
+ ldr r1, =0x0000064c
+ adds r0, r1
+ bl sub_8164F70
+ bl sub_8163E90
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8163EE4
+
+ thumb_func_start sub_8164040
+sub_8164040: @ 8164040
+ push {r4,r5,lr}
+ ldr r5, =gSaveBlock2Ptr
+ ldr r0, [r5]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r4, [r0]
+ lsls r4, 30
+ lsrs r4, 30
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ ldr r5, [r5]
+ lsls r4, 1
+ lsrs r0, 14
+ adds r4, r0
+ movs r2, 0xCE
+ lsls r2, 4
+ adds r0, r5, r2
+ adds r0, r4
+ ldrh r0, [r0]
+ movs r1, 0x7
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0816408E
+ cmp r1, 0x1
+ bgt _0816408A
+ ldr r1, =0x00000cb2
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0816408E
+_0816408A:
+ bl sub_8163EE4
+_0816408E:
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r1, =gSpecialVar_0x8005
+ ldrh r1, [r1]
+ ldr r2, =0x00000ca8
+ adds r0, r2
+ strb r1, [r0]
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0
+ bl VarSet
+ ldr r1, [r4]
+ ldr r0, =0x00000ca9
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ bl sub_81A4C30
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8164040
+
+ thumb_func_start nullsub_61
+nullsub_61: @ 81640D8
+ bx lr
+ thumb_func_end nullsub_61
+
+ thumb_func_start nullsub_116
+nullsub_116: @ 81640DC
+ bx lr
+ thumb_func_end nullsub_116
+
+ thumb_func_start sub_81640E0
+sub_81640E0: @ 81640E0
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r4, =gPlayerParty
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r4, 0x64
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r6, 0
+ movs r2, 0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r0, =0xfffffe70
+ adds r5, r0
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r1, 0xE0
+ adds r0, r1
+ mov r3, sp
+_08164122:
+ ldrh r1, [r0]
+ cmp r1, r7
+ beq _08164130
+ cmp r1, r4
+ beq _08164130
+ stm r3!, {r2}
+ adds r6, 0x1
+_08164130:
+ adds r0, 0xC
+ adds r2, 0x1
+ cmp r2, 0x2
+ ble _08164122
+ bl Random
+ ldr r4, =gUnknown_03006298
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ bl __modsi3
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ strh r0, [r4]
+_08164150:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ bl __modsi3
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ strh r0, [r4, 0x2]
+ ldrh r1, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r1, r0
+ beq _08164150
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81640E0
+
+ thumb_func_start sub_8164188
+sub_8164188: @ 8164188
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r6, =gSaveBlock2Ptr
+ ldr r0, [r6]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 30
+ str r0, [sp, 0xC]
+ ldr r4, =gPlayerParty
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x10]
+ adds r4, 0x64
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x14]
+ movs r3, 0
+ mov r8, r3
+ movs r7, 0
+ adds r2, r6, 0
+ ldr r0, =0xfffffed4
+ adds r5, r0
+ ldr r6, =0x0000076c
+ mov r10, sp
+ movs r0, 0xEC
+ adds r1, r5, 0
+ muls r1, r0
+ mov r9, r1
+_081641E6:
+ ldr r1, [r2]
+ movs r0, 0x2C
+ muls r0, r7
+ mov r3, r9
+ adds r5, r0, r3
+ adds r1, r5
+ adds r0, r1, r6
+ ldrh r0, [r0]
+ ldr r3, [sp, 0x10]
+ cmp r0, r3
+ beq _0816423A
+ ldr r3, [sp, 0x14]
+ cmp r0, r3
+ beq _0816423A
+ movs r0, 0xEF
+ lsls r0, 3
+ adds r4, r1, r0
+ ldr r1, [sp, 0xC]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ str r2, [sp, 0x18]
+ bl sub_8165C90
+ ldrb r1, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [sp, 0x18]
+ cmp r1, r0
+ bhi _0816423A
+ ldr r0, [r2]
+ adds r0, r5
+ adds r0, r6
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0816423A
+ mov r3, r10
+ adds r3, 0x4
+ mov r10, r3
+ subs r3, 0x4
+ stm r3!, {r7}
+ movs r0, 0x1
+ add r8, r0
+_0816423A:
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _081641E6
+ bl Random
+ ldr r4, =gUnknown_03006298
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, r8
+ bl __modsi3
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ strh r0, [r4, 0x4]
+_08164258:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, r8
+ bl __modsi3
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ strh r0, [r4, 0x6]
+ ldrh r1, [r4, 0x4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r1, r0
+ beq _08164258
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8164188
+
+ thumb_func_start sub_81642A0
+sub_81642A0: @ 81642A0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4C
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ movs r1, 0xC7
+ lsls r1, 4
+ adds r1, r0, r1
+ str r1, [sp, 0x24]
+ ldr r5, =gSaveBlock2Ptr
+ ldr r0, [r5]
+ ldr r2, =0x00000ca9
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 30
+ str r0, [sp, 0x14]
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ ldr r1, [r5]
+ ldr r3, [sp, 0x14]
+ lsls r2, r3, 1
+ lsrs r0, 14
+ adds r2, r0
+ movs r4, 0xCE
+ lsls r4, 4
+ adds r1, r4
+ adds r1, r2
+ ldrh r0, [r1]
+ movs r1, 0x7
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x18]
+ ldr r4, =gPlayerParty
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp, 0x1C]
+ adds r4, 0x64
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp, 0x20]
+ bl sub_8165C40
+ movs r7, 0
+ ldr r0, [sp, 0x18]
+ lsls r0, 24
+ mov r10, r0
+_08164318:
+ lsls r6, r7, 1
+_0816431A:
+ mov r1, r10
+ lsrs r0, r1, 24
+ movs r1, 0
+ bl sub_8162548
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ movs r2, 0
+ mov r9, r2
+ cmp r9, r7
+ bge _08164368
+ ldr r0, [r5]
+ ldr r3, =0x00000cb4
+ adds r1, r0, r3
+ ldrh r0, [r1]
+ cmp r0, r8
+ beq _08164368
+ ldr r0, =gUnknown_0203BC88
+ ldr r2, [r0]
+ movs r4, 0x34
+ mov r0, r8
+ muls r0, r4
+ adds r0, r2
+ ldrb r3, [r0]
+_0816434C:
+ ldrh r0, [r1]
+ muls r0, r4
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, r3
+ beq _08164368
+ adds r1, 0x2
+ movs r0, 0x1
+ add r9, r0
+ cmp r9, r7
+ bge _08164368
+ ldrh r0, [r1]
+ cmp r0, r8
+ bne _0816434C
+_08164368:
+ cmp r9, r7
+ bne _0816431A
+ ldr r0, [r5]
+ ldr r1, =0x00000cb4
+ adds r0, r1
+ adds r0, r6
+ mov r2, r8
+ strh r2, [r0]
+ mov r7, r9
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _08164318
+ movs r3, 0x8
+ mov r10, r3
+ movs r4, 0
+ mov r9, r4
+ ldr r0, [sp, 0x24]
+ str r0, [sp, 0x40]
+_0816438C:
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ mov r2, r9
+ lsls r1, r2, 1
+ ldr r3, =0x00000cb4
+ adds r0, r3
+ adds r0, r1
+ ldrh r0, [r0]
+ mov r8, r0
+ bl sub_81627A4
+ ldr r4, [sp, 0x40]
+ strb r0, [r4, 0x19]
+ movs r7, 0
+_081643A8:
+ adds r0, r7, 0x1
+ str r0, [sp, 0x30]
+ mov r1, r10
+ lsls r1, 1
+ str r1, [sp, 0x38]
+ mov r2, r10
+ adds r2, 0x1
+ str r2, [sp, 0x34]
+ mov r0, r10
+ subs r0, 0x1
+ lsls r0, 1
+ str r0, [sp, 0x28]
+_081643C0:
+ mov r0, r8
+ bl sub_8163524
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r0, 0x1
+ ands r0, r7
+ cmp r0, 0
+ beq _081643F4
+ ldr r3, =gSaveBlock2Ptr
+ ldr r0, [r3]
+ ldr r4, =0x00000cb4
+ adds r0, r4
+ ldr r1, [sp, 0x28]
+ adds r0, r1
+ ldrh r2, [r0]
+ ldr r0, =gUnknown_0203BC8C
+ ldr r0, [r0]
+ lsls r2, 4
+ adds r2, r0
+ lsls r1, r6, 4
+ adds r1, r0
+ ldrb r0, [r2, 0xA]
+ ldrb r1, [r1, 0xA]
+ cmp r0, r1
+ beq _081643C0
+_081643F4:
+ movs r5, 0x8
+ cmp r5, r10
+ bge _08164430
+ ldr r2, =gSaveBlock2Ptr
+ ldr r0, [r2]
+ ldr r1, =gUnknown_0203BC8C
+ ldr r3, [r1]
+ lsls r1, r6, 4
+ adds r1, r3
+ ldr r4, =0x00000cc4
+ adds r2, r0, r4
+ ldrh r0, [r1]
+ mov r12, r0
+_0816440E:
+ ldrh r0, [r2]
+ lsls r0, 4
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, r12
+ beq _08164430
+ ldrh r0, [r1]
+ ldr r4, [sp, 0x1C]
+ cmp r4, r0
+ beq _08164430
+ ldr r4, [sp, 0x20]
+ cmp r4, r0
+ beq _08164430
+ adds r2, 0x2
+ adds r5, 0x1
+ cmp r5, r10
+ blt _0816440E
+_08164430:
+ cmp r5, r10
+ bne _081643C0
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ ldr r2, =0x00000cb4
+ adds r0, r2
+ ldr r3, [sp, 0x38]
+ adds r0, r3
+ strh r6, [r0]
+ ldr r4, [sp, 0x34]
+ mov r10, r4
+ ldr r7, [sp, 0x30]
+ cmp r7, 0x1
+ ble _081643A8
+ ldr r0, [sp, 0x40]
+ adds r0, 0x18
+ str r0, [sp, 0x40]
+ movs r1, 0x1
+ add r9, r1
+ mov r2, r9
+ cmp r2, 0x5
+ ble _0816438C
+ movs r3, 0
+ mov r10, r3
+ bl sub_8165B20
+ movs r4, 0
+ mov r9, r4
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r2, 0
+ adds r6, r0, 0
+ adds r6, 0xDC
+ mov r8, sp
+_08164474:
+ ldrb r0, [r6]
+ lsls r4, r0, 25
+ lsrs r0, r4, 30
+ cmp r0, 0
+ beq _081644E0
+ ldr r1, =gUnknown_085DF9EC
+ ldrb r0, [r6, 0x1]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x7
+ str r2, [sp, 0x44]
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [sp, 0x44]
+ ldr r1, [sp, 0x18]
+ cmp r0, r1
+ bgt _081644E0
+ lsrs r0, r4, 30
+ subs r0, 0x1
+ ldr r3, [sp, 0x14]
+ cmp r0, r3
+ bne _081644E0
+ movs r5, 0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xE0
+ adds r1, r2, r0
+ movs r7, 0x2
+_081644B0:
+ ldrh r0, [r1]
+ ldr r4, [sp, 0x1C]
+ cmp r4, r0
+ beq _081644C0
+ ldr r3, [sp, 0x20]
+ cmp r3, r0
+ beq _081644C0
+ adds r5, 0x1
+_081644C0:
+ adds r1, 0xC
+ subs r7, 0x1
+ cmp r7, 0
+ bge _081644B0
+ cmp r5, 0x2
+ ble _081644E0
+ movs r0, 0xC8
+ lsls r0, 1
+ add r0, r9
+ mov r4, r8
+ adds r4, 0x4
+ mov r8, r4
+ subs r4, 0x4
+ stm r4!, {r0}
+ movs r0, 0x1
+ add r10, r0
+_081644E0:
+ adds r2, 0x44
+ adds r6, 0x44
+ movs r1, 0x1
+ add r9, r1
+ mov r3, r9
+ cmp r3, 0x3
+ ble _08164474
+ mov r4, r10
+ cmp r4, 0
+ beq _08164532
+ bl Random
+ ldr r6, =gSaveBlock2Ptr
+ ldr r4, [r6]
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, r10
+ bl __modsi3
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ movs r5, 0xCC
+ lsls r5, 4
+ adds r4, r5
+ strh r0, [r4]
+ ldrh r0, [r4]
+ bl sub_81627A4
+ ldr r1, [sp, 0x24]
+ adds r1, 0xA8
+ strb r0, [r1, 0x1]
+ movs r0, 0xD8
+ lsls r0, 2
+ bl FlagReset
+ ldr r0, [r6]
+ adds r0, r5
+ ldrh r0, [r0]
+ bl sub_81640E0
+_08164532:
+ movs r0, 0
+ mov r10, r0
+ mov r9, r0
+ mov r1, sp
+ str r1, [sp, 0x3C]
+_0816453C:
+ ldr r0, =gSaveBlock2Ptr
+ movs r2, 0xEC
+ mov r1, r9
+ muls r1, r2
+ movs r3, 0xE7
+ lsls r3, 3
+ adds r1, r3
+ ldr r0, [r0]
+ movs r2, 0
+ movs r3, 0
+ movs r7, 0
+ mov r4, r9
+ adds r4, 0x1
+ str r4, [sp, 0x2C]
+ adds r1, r0, r1
+_0816455A:
+ ldm r1!, {r0}
+ orrs r2, r0
+ adds r3, r0
+ adds r7, 0x1
+ cmp r7, 0x39
+ bls _0816455A
+ ldr r0, =gSaveBlock2Ptr
+ ldr r5, [r0]
+ movs r1, 0xEC
+ mov r6, r9
+ muls r6, r1
+ adds r4, r5, r6
+ ldr r1, =0x0000073a
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ movs r1, 0x7
+ str r2, [sp, 0x44]
+ str r3, [sp, 0x48]
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, [sp, 0x44]
+ ldr r3, [sp, 0x48]
+ ldr r1, [sp, 0x18]
+ cmp r0, r1
+ bgt _08164656
+ movs r1, 0xE7
+ lsls r1, 3
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ ldr r4, [sp, 0x14]
+ cmp r0, r4
+ bne _08164656
+ cmp r2, 0
+ beq _08164656
+ adds r1, 0xE8
+ adds r0, r5, r1
+ adds r0, r6
+ ldr r0, [r0]
+ cmp r0, r3
+ bne _08164656
+ movs r5, 0
+ movs r7, 0
+ ldr r2, =gSaveBlock2Ptr
+ mov r8, r2
+ ldr r3, =0x0000076c
+_081645B8:
+ mov r4, r8
+ ldr r2, [r4]
+ movs r0, 0x2C
+ adds r1, r7, 0
+ muls r1, r0
+ movs r4, 0xEC
+ mov r0, r9
+ muls r0, r4
+ adds r6, r1, r0
+ adds r2, r6
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ ldr r1, [sp, 0x1C]
+ cmp r1, r0
+ beq _0816463C
+ ldr r4, [sp, 0x20]
+ cmp r4, r0
+ beq _0816463C
+ movs r0, 0xEF
+ lsls r0, 3
+ adds r4, r2, r0
+ ldr r1, [sp, 0x14]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ str r3, [sp, 0x48]
+ bl sub_8165C90
+ ldrb r1, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, [sp, 0x48]
+ cmp r1, r0
+ bhi _0816463C
+ mov r2, r8
+ ldr r0, [r2]
+ adds r0, r6
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ b _08164638
+ .pool
+_08164638:
+ beq _0816463C
+ adds r5, 0x1
+_0816463C:
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _081645B8
+ cmp r5, 0x1
+ ble _08164656
+ movs r0, 0x96
+ lsls r0, 1
+ add r0, r9
+ ldr r3, [sp, 0x3C]
+ stm r3!, {r0}
+ str r3, [sp, 0x3C]
+ movs r4, 0x1
+ add r10, r4
+_08164656:
+ ldr r0, [sp, 0x2C]
+ mov r9, r0
+ cmp r0, 0x4
+ bgt _08164660
+ b _0816453C
+_08164660:
+ mov r1, r10
+ cmp r1, 0
+ beq _081646A0
+ bl Random
+ ldr r6, =gSaveBlock2Ptr
+ ldr r4, [r6]
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, r10
+ bl __modsi3
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r5, =0x00000cc2
+ adds r4, r5
+ strh r0, [r4]
+ ldrh r0, [r4]
+ bl sub_81627A4
+ ldr r1, [sp, 0x24]
+ adds r1, 0xC0
+ strb r0, [r1, 0x1]
+ ldr r0, =0x00000361
+ bl FlagReset
+ ldr r0, [r6]
+ adds r0, r5
+ ldrh r0, [r0]
+ bl sub_8164188
+_081646A0:
+ add sp, 0x4C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81642A0
+
+ thumb_func_start sub_81646BC
+sub_81646BC: @ 81646BC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ movs r0, 0
+ mov r9, r0
+ mov r10, r0
+ bl sub_8165C40
+ movs r0, 0xFA
+ lsls r0, 1
+ cmp r5, r0
+ beq _081647CE
+ subs r0, 0xC9
+ cmp r5, r0
+ bhi _081646FC
+ ldr r0, =gUnknown_0203BC8C
+ ldr r1, [r0]
+ lsls r0, r4, 4
+ adds r0, r1
+ ldrh r1, [r0, 0x2]
+ mov r9, r1
+ ldrh r0, [r0]
+ mov r10, r0
+ b _081647CE
+ .pool
+_081646FC:
+ ldr r0, =0x0000018f
+ cmp r5, r0
+ bhi _08164750
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ ldr r1, =gUnknown_03006298
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x2C
+ muls r1, r0
+ ldr r0, =0xfffffed4
+ adds r2, r5, r0
+ movs r0, 0xEC
+ muls r0, r2
+ adds r1, r0
+ adds r3, r1
+ movs r1, 0xEE
+ lsls r1, 3
+ adds r0, r3, r1
+ ldrh r0, [r0]
+ mov r9, r0
+ ldr r2, =0x0000076c
+ adds r3, r2
+ ldrh r3, [r3]
+ mov r10, r3
+ b _081647CE
+ .pool
+_08164750:
+ ldr r4, =gSaveBlock2Ptr
+ ldr r3, [r4]
+ ldr r1, =gUnknown_03006298
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ subs r0, 0x1
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r2, =0xfffffe70
+ adds r1, r5, r2
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r0, r2
+ adds r3, r0
+ adds r0, r3, 0
+ adds r0, 0xE2
+ ldrh r0, [r0]
+ mov r9, r0
+ adds r3, 0xE0
+ ldrh r3, [r3]
+ mov r10, r3
+ movs r3, 0
+ ldr r7, =gStringVar3
+ mov r8, r7
+ adds r0, r4, 0
+ mov r12, r0
+ adds r4, r2, 0
+ movs r6, 0x8A
+ lsls r6, 1
+_08164794:
+ mov r1, r8
+ adds r2, r3, r1
+ mov r1, r12
+ ldr r0, [r1]
+ adds r1, r3, r4
+ adds r0, r6
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x6
+ ble _08164794
+ adds r1, r3, r7
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r0, =0xfffffe70
+ adds r1, r5, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0
+ ldr r1, =0x0000011b
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ bl ConvertInternationalString
+_081647CE:
+ ldr r0, =gStringVar1
+ movs r1, 0xD
+ mov r2, r9
+ muls r2, r1
+ adds r1, r2, 0
+ ldr r2, =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r0, =gStringVar2
+ movs r1, 0xB
+ mov r2, r10
+ muls r2, r1
+ adds r1, r2, 0
+ ldr r2, =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81646BC
+
+ thumb_func_start sub_8164828
+sub_8164828: @ 8164828
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ bl sub_8165C40
+ bl sub_81A39C4
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x7
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, =gScriptLastTalked
+ ldrh r0, [r0]
+ subs r5, r0, 0x2
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r5, 1
+ ldr r2, =0x00000cb4
+ adds r0, r2
+ adds r0, r1
+ ldrh r7, [r0]
+ movs r3, 0
+ str r3, [sp]
+ ldr r4, =gUnknown_085DD500
+ lsls r6, r7, 16
+ b _08164884
+ .pool
+_0816487C:
+ adds r4, 0x8
+ ldr r0, [sp]
+ adds r0, 0x1
+ str r0, [sp]
+_08164884:
+ ldr r1, [sp]
+ cmp r1, 0x31
+ bhi _0816489A
+ lsrs r0, r6, 16
+ bl sub_8162D34
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r4]
+ cmp r1, r0
+ bne _0816487C
+_0816489A:
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bls _081648A4
+ b _08164AC2
+_081648A4:
+ lsls r0, 2
+ ldr r1, =_081648B8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081648B8:
+ .4byte _081648CC
+ .4byte _08164984
+ .4byte _0816499C
+ .4byte _081649BC
+ .4byte _08164AC2
+_081648CC:
+ movs r0, 0xFA
+ lsls r0, 1
+ cmp r7, r0
+ bne _081648D6
+ b _08164B54
+_081648D6:
+ subs r0, 0xC9
+ cmp r7, r0
+ ble _081648E2
+ ldr r0, =0x0000018f
+ cmp r7, r0
+ bgt _081648F4
+_081648E2:
+ ldr r0, =gStringVar1
+ adds r1, r7, 0
+ bl sub_8162E20
+ b _08164AC2
+ .pool
+_081648F4:
+ movs r3, 0
+ lsls r2, r7, 16
+ mov r10, r2
+ ldr r6, =gStringVar1
+ mov r9, r6
+ ldr r4, =gSaveBlock2Ptr
+ mov r8, r4
+ ldr r5, =0xfffffe70
+ adds r1, r7, r5
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r4, r0, 2
+ movs r5, 0x8A
+ lsls r5, 1
+_08164910:
+ mov r0, r9
+ adds r2, r3, r0
+ mov r1, r8
+ ldr r0, [r1]
+ adds r1, r3, r4
+ adds r0, r5
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x6
+ ble _08164910
+ adds r1, r3, r6
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r2, =gSaveBlock2Ptr
+ ldr r1, [r2]
+ ldr r3, =0xfffffe70
+ adds r0, r7, r3
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r1, r4
+ ldr r5, =0x0000011b
+ adds r0, r1, r5
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl ConvertInternationalString
+ ldr r0, =gStringVar2
+ ldr r2, =gSaveBlock2Ptr
+ ldr r1, [r2]
+ adds r1, r4
+ adds r1, 0xDE
+ ldrb r1, [r1]
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, =gStringVar3
+ mov r3, r10
+ lsrs r1, r3, 16
+ bl sub_8162E20
+ b _08164AC2
+ .pool
+_08164984:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ lsls r0, r5, 2
+ adds r1, r0
+ ldr r4, =0x00000cc4
+ adds r1, r4
+ b _081649A8
+ .pool
+_0816499C:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ lsls r0, r5, 2
+ adds r1, r0
+ ldr r5, =0x00000cc6
+ adds r1, r5
+_081649A8:
+ adds r0, r7, 0
+ ldrh r1, [r1]
+ bl sub_81646BC
+ b _08164AC2
+ .pool
+_081649BC:
+ ldr r0, =gUnknown_02038BCE
+ strh r7, [r0]
+ ldr r0, =0x0000012b
+ cmp r7, r0
+ bgt _08164A08
+ ldr r0, =gSaveBlock2Ptr
+ ldr r4, [r0]
+ lsls r1, r5, 1
+ adds r0, r1, 0
+ adds r0, 0x8
+ lsls r0, 1
+ ldr r3, =0x00000cb4
+ adds r2, r4, r3
+ adds r0, r2, r0
+ ldrh r3, [r0]
+ ldr r5, =0x00000cd8
+ adds r0, r4, r5
+ strh r3, [r0]
+ adds r1, 0x9
+ lsls r1, 1
+ adds r2, r1
+ ldrh r0, [r2]
+ ldr r1, =0x00000cda
+ adds r4, r1
+ strh r0, [r4]
+ b _08164A46
+ .pool
+_08164A08:
+ ldr r0, =0x0000018f
+ cmp r7, r0
+ bgt _08164A30
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r3, =gUnknown_03006298
+ ldrh r2, [r3, 0x4]
+ ldr r4, =0x00000cd8
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r0, [r3, 0x6]
+ b _08164A40
+ .pool
+_08164A30:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r3, =gUnknown_03006298
+ ldrh r2, [r3]
+ ldr r4, =0x00000cd8
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldrh r0, [r3, 0x2]
+_08164A40:
+ ldr r5, =0x00000cda
+ adds r1, r5
+ strh r0, [r1]
+_08164A46:
+ movs r5, 0
+ mov r0, r8
+ lsls r0, 24
+ str r0, [sp, 0x4]
+_08164A4E:
+ lsls r1, r5, 1
+ mov r10, r1
+ adds r2, r5, 0x1
+ mov r9, r2
+ lsrs r0, r5, 31
+ adds r0, r5, r0
+ asrs r0, 1
+ lsls r0, 24
+ mov r8, r0
+_08164A60:
+ ldr r3, [sp, 0x4]
+ lsrs r0, r3, 24
+ mov r4, r8
+ lsrs r1, r4, 24
+ bl sub_8162548
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r0, =gUnknown_02038BCE
+ ldrh r0, [r0]
+ cmp r0, r3
+ beq _08164A60
+ movs r2, 0
+ cmp r2, r5
+ bge _08164AA2
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ ldr r4, =0x00000cb4
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, r3
+ beq _08164AA2
+ adds r6, r1, 0
+_08164A8E:
+ adds r2, 0x1
+ cmp r2, r5
+ bge _08164AA2
+ ldr r0, [r6]
+ lsls r1, r2, 1
+ adds r0, r4
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r3
+ bne _08164A8E
+_08164AA2:
+ cmp r2, r5
+ bne _08164A60
+ ldr r5, =gSaveBlock2Ptr
+ ldr r0, [r5]
+ ldr r1, =0x00000cb4
+ adds r0, r1
+ add r0, r10
+ strh r3, [r0]
+ mov r5, r9
+ cmp r5, 0xD
+ ble _08164A4E
+ ldr r2, =gSaveBlock2Ptr
+ ldr r0, [r2]
+ ldr r3, =0x00000cd6
+ adds r0, r3
+ strh r7, [r0]
+_08164AC2:
+ movs r0, 0xFA
+ lsls r0, 1
+ cmp r7, r0
+ beq _08164B54
+ subs r0, 0xC9
+ cmp r7, r0
+ bgt _08164AF8
+ ldr r0, =gUnknown_085DD500
+ ldr r4, [sp]
+ lsls r1, r4, 3
+ b _08164B04
+ .pool
+_08164AF8:
+ ldr r0, =0x0000018f
+ cmp r7, r0
+ bgt _08164B28
+ ldr r0, =gUnknown_085DD500
+ ldr r5, [sp]
+ lsls r1, r5, 3
+_08164B04:
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl box_related_two__2
+ b _08164B54
+ .pool
+_08164B28:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r0, =0xfffffe70
+ adds r2, r7, r0
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0
+ adds r1, 0xDC
+ ldrb r0, [r1]
+ lsls r0, 27
+ ldr r1, =gUnknown_085DD690
+ lsrs r0, 25
+ adds r0, r1
+ ldr r1, =gSpecialVar_0x8005
+ ldrh r1, [r1]
+ ldr r0, [r0]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl box_related_two__2
+_08164B54:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8164828
+
+ thumb_func_start sub_8164B74
+sub_8164B74: @ 8164B74
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r7, r0, 30
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, [r4]
+ ldr r2, =0x00000cb2
+ adds r0, r2
+ ldrh r6, [r0]
+ bl link_get_multiplayer_id
+ ldr r0, =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0x6
+ bls _08164BAC
+ b _08164DB6
+_08164BAC:
+ lsls r0, 2
+ ldr r1, =_08164BD0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08164BD0:
+ .4byte _08164BEC
+ .4byte _08164C3C
+ .4byte _08164CE0
+ .4byte _08164D14
+ .4byte _08164D98
+ .4byte _08164DA8
+ .4byte _08164DB6
+_08164BEC:
+ cmp r5, 0x3
+ beq _08164BF2
+ b _08164DB0
+_08164BF2:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r7, 1
+ adds r0, r1
+ ldr r3, =0x00000cec
+ adds r0, r3
+ ldrh r0, [r0]
+ movs r1, 0x7
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp]
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ bne _08164C18
+ b _08164DB6
+_08164C18:
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ movs r2, 0x4
+ bl link_0800A448
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+ b _08164DB4
+ .pool
+_08164C3C:
+ bl sub_800A550
+ movs r1, 0x3
+ ands r1, r0
+ cmp r1, 0x3
+ beq _08164C4A
+ b _08164DB6
+_08164C4A:
+ bl sub_800A5B4
+ ldr r1, =gUnknown_020223C4
+ movs r0, 0x80
+ lsls r0, 1
+ adds r2, r1, r0
+ ldrh r0, [r1]
+ ldrh r3, [r2]
+ cmp r0, r3
+ bhi _08164C60
+ ldrh r0, [r2]
+_08164C60:
+ str r0, [sp]
+ movs r4, 0
+ ldr r0, =gSaveBlock2Ptr
+ mov r9, r0
+_08164C68:
+ adds r1, r4, 0x1
+ mov r8, r1
+ lsrs r0, r4, 31
+ adds r0, r4, r0
+ asrs r0, 1
+ lsls r7, r0, 24
+_08164C74:
+ ldr r0, [sp]
+ lsls r0, 24
+ lsrs r0, 24
+ lsrs r1, r7, 24
+ bl sub_8162548
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ cmp r2, r4
+ bge _08164CB0
+ mov r1, r9
+ ldr r0, [r1]
+ ldr r1, =0x00000cb4
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r3
+ beq _08164CB0
+ ldr r6, =gSaveBlock2Ptr
+ adds r5, r1, 0
+_08164C9C:
+ adds r2, 0x1
+ cmp r2, r4
+ bge _08164CB0
+ ldr r0, [r6]
+ lsls r1, r2, 1
+ adds r0, r5
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r3
+ bne _08164C9C
+_08164CB0:
+ cmp r4, r2
+ bne _08164C74
+ mov r2, r9
+ ldr r0, [r2]
+ lsls r1, r4, 1
+ ldr r2, =0x00000cb4
+ adds r0, r2
+ adds r0, r1
+ strh r3, [r0]
+ mov r4, r8
+ cmp r4, 0xD
+ ble _08164C68
+ ldr r1, =gScriptResult
+ movs r0, 0x2
+ b _08164DB4
+ .pool
+_08164CE0:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08164DB6
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ ldr r3, =0x00000cb4
+ adds r1, r3
+ movs r2, 0x28
+ bl link_0800A448
+ ldr r1, =gScriptResult
+ movs r0, 0x3
+ b _08164DB4
+ .pool
+_08164D14:
+ bl sub_800A550
+ movs r1, 0x3
+ ands r1, r0
+ cmp r1, 0x3
+ bne _08164DB6
+ bl sub_800A5B4
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r5, =0x00000cb4
+ adds r0, r5
+ ldr r1, =gUnknown_020223C4
+ movs r2, 0x28
+ bl memcpy
+ ldr r2, =gTrainerBattleOpponent_A
+ ldr r1, [r4]
+ lsls r0, r6, 2
+ adds r1, r5
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ strh r0, [r2]
+ ldr r4, =gTrainerBattleOpponent_B
+ lsls r0, r6, 1
+ adds r0, 0x1
+ lsls r0, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ strh r0, [r4]
+ ldrh r0, [r2]
+ movs r1, 0
+ bl sub_8162614
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_8162614
+ ldr r0, =gUnknown_03003124
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08164DB0
+ ldr r0, =gLinkVSyncDisabled
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08164DB0
+ ldr r1, =gScriptResult
+ movs r0, 0x4
+ b _08164DB4
+ .pool
+_08164D98:
+ bl sub_800AC34
+ ldr r1, =gScriptResult
+ movs r0, 0x5
+ b _08164DB4
+ .pool
+_08164DA8:
+ ldr r0, =gUnknown_03003124
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08164DB6
+_08164DB0:
+ ldr r1, =gScriptResult
+ movs r0, 0x6
+_08164DB4:
+ strh r0, [r1]
+_08164DB6:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8164B74
+
+ thumb_func_start sub_8164DCC
+sub_8164DCC: @ 8164DCC
+ push {lr}
+ ldr r0, =gLinkVSyncDisabled
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08164DDA
+ bl sub_800AC34
+_08164DDA:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8164DCC
+
+ thumb_func_start sub_8164DE4
+sub_8164DE4: @ 8164DE4
+ push {lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000cd6
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0xF
+ bl sub_8162614
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8164DE4
+
+ thumb_func_start sub_8164E04
+sub_8164E04: @ 8164E04
+ push {r4-r6,lr}
+ sub sp, 0x20
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ cmp r0, 0
+ bne _08164E9A
+ ldr r5, =gTrainerBattleOpponent_A
+ ldrh r1, [r5]
+ mov r0, sp
+ bl sub_8162E20
+ mov r0, sp
+ bl StripExtCtrlCodes
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r1, =0x00000bd8
+ adds r0, r1
+ mov r1, sp
+ bl StringCopy
+ ldr r0, [r4]
+ ldr r2, =0x00000beb
+ adds r0, r2
+ ldrh r1, [r5]
+ bl sub_8165B88
+ ldr r6, =gBattlePartyID
+ ldrh r0, [r6, 0x2]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ ldr r1, [r4]
+ ldr r2, =0x00000bd6
+ adds r1, r2
+ strh r0, [r1]
+ ldrh r0, [r6]
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ ldr r1, [r4]
+ ldr r2, =0x00000bd4
+ adds r1, r2
+ strh r0, [r1]
+ movs r2, 0
+ movs r5, 0xBE
+ lsls r5, 4
+ ldr r3, =gUnknown_020240B4
+ adds r6, r4, 0
+_08164E7C:
+ ldr r0, [r4]
+ adds r0, r5
+ adds r0, r2
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0xA
+ ble _08164E7C
+ ldr r0, [r6]
+ ldr r1, =gBattleOutcome
+ ldrb r1, [r1]
+ ldr r2, =0x00000d06
+ adds r0, r2
+ strb r1, [r0]
+_08164E9A:
+ add sp, 0x20
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8164E04
+
+ thumb_func_start sub_8164ED8
+sub_8164ED8: @ 8164ED8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r3, 0
+ movs r2, 0
+ ldr r4, =0x0000064c
+ adds r1, r0, r4
+_08164EEA:
+ ldm r1!, {r0}
+ adds r3, r0
+ adds r2, 0x1
+ cmp r2, 0x39
+ bls _08164EEA
+ ldr r5, =gSaveBlock2Ptr
+ ldr r1, [r5]
+ ldr r2, =0x00000734
+ adds r0, r1, r2
+ ldr r0, [r0]
+ cmp r0, r3
+ beq _08164F0A
+ ldr r3, =0x0000064c
+ adds r0, r1, r3
+ bl sub_8164FB8
+_08164F0A:
+ movs r4, 0
+ adds r7, r5, 0
+ movs r6, 0xEC
+ mov r8, r7
+_08164F12:
+ adds r0, r4, 0
+ muls r0, r6
+ movs r1, 0xE7
+ lsls r1, 3
+ adds r0, r1
+ ldr r1, [r7]
+ movs r3, 0
+ movs r2, 0
+ adds r5, r4, 0x1
+ adds r1, r0
+_08164F26:
+ ldm r1!, {r0}
+ adds r3, r0
+ adds r2, 0x1
+ cmp r2, 0x39
+ bls _08164F26
+ mov r0, r8
+ ldr r2, [r0]
+ adds r1, r4, 0
+ muls r1, r6
+ movs r4, 0x82
+ lsls r4, 4
+ adds r0, r2, r4
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, r3
+ beq _08164F52
+ movs r3, 0xE7
+ lsls r3, 3
+ adds r0, r1, r3
+ adds r0, r2, r0
+ bl sub_8164FB8
+_08164F52:
+ adds r4, r5, 0
+ cmp r4, 0x4
+ ble _08164F12
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8164ED8
+
+ thumb_func_start sub_8164F70
+sub_8164F70: @ 8164F70
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r2, 0xE8
+ movs r1, 0
+ str r1, [r2]
+ movs r3, 0
+ adds r4, r0, 0
+_08164F7E:
+ ldr r0, [r2]
+ ldm r4!, {r1}
+ adds r0, r1
+ str r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x39
+ bls _08164F7E
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8164F70
+
+ thumb_func_start sub_8164F94
+sub_8164F94: @ 8164F94
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r2, 0xA0
+ movs r1, 0
+ str r1, [r2]
+ movs r3, 0
+ adds r4, r0, 0
+_08164FA2:
+ ldr r0, [r2]
+ ldm r4!, {r1}
+ adds r0, r1
+ str r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x27
+ bls _08164FA2
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8164F94
+
+ thumb_func_start sub_8164FB8
+sub_8164FB8: @ 8164FB8
+ push {lr}
+ movs r1, 0
+ movs r2, 0
+_08164FBE:
+ stm r0!, {r2}
+ adds r1, 0x1
+ cmp r1, 0x3A
+ bls _08164FBE
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8164FB8
+
+ thumb_func_start sub_8164FCC
+sub_8164FCC: @ 8164FCC
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ ldr r2, =gSaveBlock2Ptr
+ ldr r2, [r2]
+ lsrs r0, 23
+ lsrs r1, 22
+ adds r0, r1
+ movs r1, 0xCE
+ lsls r1, 4
+ adds r2, r1
+ adds r2, r0
+ ldrh r0, [r2]
+ ldr r1, =0x0000270f
+ cmp r0, r1
+ bls _08164FEE
+ adds r0, r1, 0
+_08164FEE:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8164FCC
+
+ thumb_func_start sub_8164FFC
+sub_8164FFC: @ 8164FFC
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gUnknown_085DFA42
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ cmp r4, 0x3
+ bls _0816501C
+ movs r0, 0x3
+ b _08165022
+ .pool
+_0816501C:
+ mov r1, sp
+ adds r0, r1, r4
+ ldrb r0, [r0]
+_08165022:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8164FFC
+
+ thumb_func_start sub_816502C
+sub_816502C: @ 816502C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 30
+ adds r5, r0, 0
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ bl sub_8164FFC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r2, 0x44
+ mov r10, r2
+ cmp r5, 0
+ beq _0816506A
+ movs r0, 0x45
+ mov r10, r0
+_0816506A:
+ ldr r1, =gScriptResult
+ mov r9, r1
+ movs r0, 0
+ strh r0, [r1]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8164FCC
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x37
+ bls _081650DC
+ movs r6, 0
+ cmp r6, r8
+ bge _081650DC
+ ldr r7, =gSaveBlock1Ptr
+ mov r5, sp
+_0816508C:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r6, 1
+ ldr r2, =0x00000caa
+ adds r0, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ subs r1, 0x1
+ movs r0, 0
+ strb r1, [r5]
+ strb r0, [r5, 0x1]
+ movs r0, 0x64
+ muls r0, r1
+ movs r1, 0x8E
+ lsls r1, 2
+ adds r4, r0, r1
+ ldr r0, [r7]
+ adds r0, r4
+ mov r1, r10
+ bl GetMonData
+ cmp r0, 0
+ bne _081650D4
+ movs r0, 0x1
+ mov r2, r9
+ strh r0, [r2]
+ ldr r0, [r7]
+ adds r0, r4
+ mov r1, r10
+ bl SetMonData
+ ldr r0, [r7]
+ adds r0, r4
+ bl sub_80EE5A4
+ strb r0, [r5, 0x1]
+_081650D4:
+ adds r5, 0x4
+ adds r6, 0x1
+ cmp r6, r8
+ blt _0816508C
+_081650DC:
+ ldr r0, =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08165132
+ movs r0, 0x2A
+ bl IncrementGameStat
+ mov r0, r8
+ cmp r0, 0x1
+ ble _08165110
+ mov r3, sp
+ add r2, sp, 0x4
+ mov r6, r8
+ subs r6, 0x1
+_081650F8:
+ ldrb r1, [r3, 0x1]
+ ldrb r0, [r2, 0x1]
+ cmp r0, r1
+ bls _08165108
+ ldr r1, [sp]
+ ldr r0, [r2]
+ str r0, [sp]
+ str r1, [r2]
+_08165108:
+ adds r2, 0x4
+ subs r6, 0x1
+ cmp r6, 0
+ bne _081650F8
+_08165110:
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x4
+ bls _08165132
+ ldr r2, =gSaveBlock1Ptr
+ mov r0, sp
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ movs r0, 0x8E
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ mov r1, r10
+ bl sub_80EE4DC
+_08165132:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_816502C
+
+ thumb_func_start sub_816515C
+sub_816515C: @ 816515C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r1, =gSaveBlock2Ptr
+ ldr r2, [r1]
+ ldr r0, =0x00000bec
+ adds r7, r2, r0
+ ldrb r0, [r2, 0x8]
+ adds r5, r1, 0
+ cmp r0, 0
+ beq _08165194
+ ldr r4, =gUnknown_085DCEFA
+ ldrb r0, [r2, 0xA]
+ ldrb r1, [r2, 0xB]
+ adds r0, r1
+ ldrb r1, [r2, 0xC]
+ adds r0, r1
+ ldrb r1, [r2, 0xD]
+ adds r0, r1
+ movs r1, 0x14
+ b _081651A6
+ .pool
+_08165194:
+ ldr r4, =gUnknown_085DCEDC
+ ldrb r0, [r2, 0xA]
+ ldrb r1, [r2, 0xB]
+ adds r0, r1
+ ldrb r1, [r2, 0xC]
+ adds r0, r1
+ ldrb r1, [r2, 0xD]
+ adds r0, r1
+ movs r1, 0x1E
+_081651A6:
+ bl __umodsi3
+ adds r0, r4
+ ldrb r0, [r0]
+ strb r0, [r7, 0x1]
+ adds r0, r7, 0
+ adds r0, 0xC
+ ldr r1, [r5]
+ adds r1, 0xA
+ bl CopyUnalignedWord
+ adds r0, r7, 0x4
+ ldr r1, [r5]
+ bl StringCopy7
+ movs r0, 0x1
+ strh r0, [r7, 0x2]
+ movs r6, 0x7
+ movs r4, 0
+ ldr r0, =gSaveBlock1Ptr
+ mov r8, r0
+ adds r5, r7, 0
+ adds r5, 0x10
+ ldr r1, =0x00002bbc
+ mov r12, r1
+ adds r3, r7, 0
+ adds r3, 0x28
+ adds r2, r7, 0
+ adds r2, 0x1C
+_081651E0:
+ lsls r0, r4, 1
+ mov r9, r0
+ mov r1, r8
+ ldr r0, [r1]
+ add r0, r12
+ add r0, r9
+ ldrh r0, [r0]
+ strh r0, [r5]
+ strh r6, [r2]
+ adds r0, r6, 0x6
+ strh r0, [r3]
+ adds r6, 0x1
+ adds r5, 0x2
+ adds r3, 0x2
+ adds r2, 0x2
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _081651E0
+ movs r4, 0
+_08165206:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2C
+ muls r1, r4
+ adds r1, 0x34
+ adds r1, r7, r1
+ bl sub_80686FC
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _08165206
+ adds r0, r7, 0
+ bl sub_8165328
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_816515C
+
+ thumb_func_start sub_8165244
+sub_8165244: @ 8165244
+ ldr r1, =gTrainerPicIndices
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000bed
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_8165244
+
+ thumb_func_start sub_8165264
+sub_8165264: @ 8165264
+ ldr r1, =gTrainerClassNameIndices
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000bed
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_8165264
+
+ thumb_func_start sub_8165284
+sub_8165284: @ 8165284
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r1, 0xBF
+ lsls r1, 4
+ adds r4, r0, r1
+_08165294:
+ adds r0, r3, r2
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x4
+ ble _08165294
+ adds r1, r3, r2
+ movs r0, 0xFF
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8165284
+
+ thumb_func_start sub_81652B4
+sub_81652B4: @ 81652B4
+ push {r4-r6,lr}
+ ldr r2, =gScriptResult
+ movs r0, 0
+ strh r0, [r2]
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ ldr r3, =0x00000bec
+ adds r5, r0, r3
+ movs r4, 0
+ movs r3, 0
+ adds r6, r1, 0
+ adds r1, r5, 0
+_081652CC:
+ ldm r1!, {r0}
+ orrs r4, r0
+ adds r3, 0x1
+ cmp r3, 0x2D
+ bls _081652CC
+ cmp r4, 0
+ bne _081652EC
+ movs r0, 0x1
+ strh r0, [r2]
+ b _08165316
+ .pool
+_081652EC:
+ movs r4, 0
+ movs r3, 0
+ adds r2, r5, 0
+_081652F2:
+ ldm r2!, {r0}
+ adds r4, r0
+ adds r3, 0x1
+ cmp r3, 0x2D
+ bls _081652F2
+ ldr r1, [r6]
+ ldr r2, =0x00000ca4
+ adds r0, r1, r2
+ ldr r0, [r0]
+ cmp r0, r4
+ beq _08165316
+ ldr r3, =0x00000bec
+ adds r0, r1, r3
+ bl sub_816534C
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+_08165316:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81652B4
+
+ thumb_func_start sub_8165328
+sub_8165328: @ 8165328
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r2, 0xB8
+ movs r1, 0
+ str r1, [r2]
+ movs r3, 0
+ adds r4, r0, 0
+_08165336:
+ ldr r0, [r2]
+ ldm r4!, {r1}
+ adds r0, r1
+ str r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x2D
+ bls _08165336
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8165328
+
+ thumb_func_start sub_816534C
+sub_816534C: @ 816534C
+ push {lr}
+ movs r1, 0
+ movs r2, 0
+_08165352:
+ stm r0!, {r2}
+ adds r1, 0x1
+ cmp r1, 0x2E
+ bls _08165352
+ pop {r0}
+ bx r0
+ thumb_func_end sub_816534C
+
+ thumb_func_start sub_8165360
+sub_8165360: @ 8165360
+ push {lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000bfc
+ adds r0, r1
+ bl ConvertBattleFrontierTrainerSpeechToString
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8165360
+
+ thumb_func_start sub_816537C
+sub_816537C: @ 816537C
+ push {lr}
+ ldr r0, =gBattleOutcome
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _08165398
+ ldr r1, =gStringVar4
+ movs r0, 0xFF
+ strb r0, [r1]
+ b _081653C0
+ .pool
+_08165398:
+ cmp r0, 0x1
+ bne _081653B4
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000c14
+ adds r0, r1
+ bl ConvertBattleFrontierTrainerSpeechToString
+ b _081653C0
+ .pool
+_081653B4:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000c08
+ adds r0, r1
+ bl ConvertBattleFrontierTrainerSpeechToString
+_081653C0:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_816537C
+
+ thumb_func_start sub_81653CC
+sub_81653CC: @ 81653CC
+ push {lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000ca8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _081653E0
+ bl sub_80F01B8
+_081653E0:
+ movs r0, 0x77
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081653F8
+ bl sub_80F01B8
+ movs r0, 0x77
+ bl FlagReset
+_081653F8:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81653CC
+
+ thumb_func_start sub_8165404
+sub_8165404: @ 8165404
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x70
+ lsls r0, 16
+ lsrs r7, r0, 16
+ bl sub_8165C40
+ ldr r0, =0x00000c03
+ cmp r7, r0
+ beq _08165420
+ b _0816554C
+_08165420:
+ movs r0, 0
+ mov r10, r0
+ mov r1, sp
+ adds r1, 0x44
+ str r1, [sp, 0x64]
+_0816542A:
+ mov r2, r10
+ lsls r2, 2
+ mov r9, r2
+ mov r3, r10
+ adds r3, 0x1
+ str r3, [sp, 0x60]
+ mov r0, r9
+ add r0, r10
+ lsls r0, 2
+ ldr r6, =gUnknown_085DD6D0
+ adds r5, r0, r6
+_08165440:
+ bl Random
+ adds r4, r0, 0
+ bl Random
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, 16
+ orrs r4, r0
+ str r4, [sp, 0x44]
+ ldr r0, =0x0000ef2a
+ adds r1, r4, 0
+ bl sub_806EBD0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0
+ bne _08165440
+ ldr r0, [sp, 0x44]
+ bl GetNatureFromPersonality
+ ldrb r1, [r5, 0x4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _08165440
+ movs r0, 0x64
+ mov r6, r10
+ muls r6, r0
+ ldr r1, =gUnknown_02024618
+ mov r8, r1
+ adds r0, r6, r1
+ mov r5, r9
+ add r5, r10
+ lsls r5, 2
+ ldr r2, =gUnknown_085DD6D0
+ adds r3, r5, r2
+ ldrh r1, [r3]
+ ldrb r2, [r3, 0x3]
+ ldrb r3, [r3, 0x2]
+ mov r12, r3
+ movs r4, 0x1
+ str r4, [sp]
+ mov r3, r10
+ str r3, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r4, =0x0000ef2a
+ str r4, [sp, 0xC]
+ mov r3, r12
+ bl CreateMon
+ str r7, [sp, 0x44]
+ movs r3, 0
+ mov r4, r8
+ ldr r0, =gUnknown_085DD6D5
+ adds r5, r0
+_081654B0:
+ adds r1, r3, 0
+ adds r1, 0x1A
+ adds r2, r5, r3
+ adds r0, r6, r4
+ bl SetMonData
+ ldr r0, [sp, 0x44]
+ adds r0, 0x1
+ str r0, [sp, 0x44]
+ adds r3, r0, 0
+ cmp r3, 0x5
+ ble _081654B0
+ movs r0, 0
+ str r0, [sp, 0x44]
+ movs r1, 0
+ movs r6, 0x64
+ mov r4, r10
+ muls r4, r6
+ ldr r7, =gUnknown_085DD6DC
+ ldr r6, =gUnknown_02024618
+ mov r0, r9
+ add r0, r10
+ lsls r5, r0, 2
+_081654DE:
+ lsls r0, r1, 1
+ adds r0, r5
+ adds r0, r7
+ ldrh r1, [r0]
+ ldr r0, [sp, 0x64]
+ ldrb r2, [r0]
+ adds r0, r4, r6
+ bl sub_80691F4
+ ldr r0, [sp, 0x44]
+ adds r0, 0x1
+ str r0, [sp, 0x44]
+ adds r1, r0, 0
+ cmp r1, 0x3
+ ble _081654DE
+ movs r1, 0x64
+ mov r4, r10
+ muls r4, r1
+ ldr r0, =gUnknown_02024618
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x7
+ ldr r2, =gTrainers + TRAINER_STEVEN * 0x28 + 0x4 @ Steven's name
+ bl SetMonData
+ movs r0, 0
+ str r0, [sp, 0x44]
+ adds r0, r4, 0
+ movs r1, 0x31
+ ldr r2, [sp, 0x64]
+ bl SetMonData
+ adds r0, r4, 0
+ bl CalculateMonStats
+ ldr r2, [sp, 0x60]
+ mov r10, r2
+ cmp r2, 0x2
+ bgt _0816552E
+ b _0816542A
+_0816552E:
+ b _0816585A
+ .pool
+_0816554C:
+ movs r0, 0xFA
+ lsls r0, 1
+ cmp r7, r0
+ bne _08165564
+ add r0, sp, 0x10
+ ldr r1, =gGameLanguage
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _0816585A
+ .pool
+_08165564:
+ ldr r0, =0x0000012b
+ cmp r7, r0
+ bls _0816556C
+ b _081656E8
+_0816556C:
+ bl sub_8165C40
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x50]
+ adds r0, r7, 0
+ bl sub_8165D08
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4C]
+ bl Random
+ adds r4, r0, 0
+ bl Random
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, 16
+ orrs r4, r0
+ str r4, [sp, 0x58]
+ movs r3, 0
+ mov r10, r3
+ mov r6, sp
+ adds r6, 0x44
+ str r6, [sp, 0x64]
+ mov r0, sp
+ adds r0, 0x48
+ str r0, [sp, 0x5C]
+_081655A6:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ mov r0, r10
+ adds r0, 0x12
+ lsls r0, 1
+ ldr r2, =0x00000cb4
+ adds r1, r2
+ adds r1, r0
+ ldrh r1, [r1]
+ str r1, [sp, 0x54]
+ movs r6, 0x64
+ mov r3, r10
+ muls r3, r6
+ mov r8, r3
+ ldr r0, =gUnknown_02024618
+ mov r9, r0
+ mov r0, r8
+ add r0, r9
+ ldr r6, =gUnknown_0203BC8C
+ ldr r4, [r6]
+ lsls r5, r1, 4
+ adds r4, r5, r4
+ ldrh r1, [r4]
+ ldr r3, [sp, 0x50]
+ lsls r2, r3, 24
+ ldrb r3, [r4, 0xC]
+ mov r12, r3
+ ldr r3, [sp, 0x4C]
+ str r3, [sp]
+ ldrb r4, [r4, 0xB]
+ str r4, [sp, 0x4]
+ ldr r3, [sp, 0x58]
+ str r3, [sp, 0x8]
+ lsrs r2, 24
+ mov r3, r12
+ bl sub_8068634
+ movs r0, 0xFF
+ str r0, [sp, 0x48]
+ movs r0, 0
+ str r0, [sp, 0x44]
+ movs r2, 0
+ mov r0, r10
+ adds r0, 0x1
+ str r0, [sp, 0x60]
+ mov r4, r8
+ mov r3, r9
+_08165604:
+ ldr r0, [r6]
+ adds r0, r5, r0
+ lsls r1, r2, 1
+ adds r0, 0x2
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, r3
+ str r3, [sp, 0x68]
+ bl sub_80691F4
+ ldr r0, [r6]
+ adds r0, r5, r0
+ ldr r2, [sp, 0x44]
+ lsls r1, r2, 1
+ adds r0, 0x2
+ adds r0, r1
+ ldrh r0, [r0]
+ ldr r3, [sp, 0x68]
+ cmp r0, 0xDA
+ bne _08165634
+ movs r0, 0
+ str r0, [sp, 0x48]
+_08165634:
+ adds r0, r2, 0x1
+ str r0, [sp, 0x44]
+ adds r2, r0, 0
+ cmp r2, 0x3
+ ble _08165604
+ movs r1, 0x64
+ mov r4, r10
+ muls r4, r1
+ ldr r0, =gUnknown_02024618
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x20
+ ldr r2, [sp, 0x5C]
+ bl SetMonData
+ ldr r0, =gUnknown_0203BC8C
+ ldr r1, [r0]
+ ldr r2, [sp, 0x54]
+ lsls r0, r2, 4
+ adds r0, r1
+ ldrb r2, [r0, 0xA]
+ lsls r2, 1
+ ldr r0, =gBattleFrontierHeldItems
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ movs r0, 0
+ str r0, [sp, 0x44]
+ movs r2, 0
+ ldr r0, =gUnknown_0203BC88
+ ldr r1, [r0]
+ movs r0, 0x34
+ muls r0, r7
+ adds r0, r1
+ adds r3, r0, 0x4
+_0816567E:
+ mov r1, sp
+ adds r1, r2
+ adds r1, 0x10
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, [sp, 0x44]
+ adds r0, 0x1
+ str r0, [sp, 0x44]
+ adds r2, r0, 0
+ cmp r2, 0x7
+ ble _0816567E
+ movs r3, 0x64
+ mov r4, r10
+ muls r4, r3
+ ldr r0, =gUnknown_02024618
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x7
+ add r2, sp, 0x10
+ bl SetMonData
+ adds r0, r7, 0
+ bl sub_8162F68
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x44]
+ adds r0, r4, 0
+ movs r1, 0x31
+ ldr r2, [sp, 0x64]
+ bl SetMonData
+ ldr r6, [sp, 0x60]
+ mov r10, r6
+ cmp r6, 0x1
+ bgt _081656CA
+ b _081655A6
+_081656CA:
+ b _0816585A
+ .pool
+_081656E8:
+ ldr r0, =0x0000018f
+ cmp r7, r0
+ bls _081656F0
+ b _081657F0
+_081656F0:
+ ldr r1, =0xfffffed4
+ adds r0, r7, r1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r2, 0
+ mov r10, r2
+ mov r3, sp
+ adds r3, 0x44
+ str r3, [sp, 0x64]
+ add r5, sp, 0x18
+ ldr r6, =0x000015fc
+ mov r9, r6
+ ldr r0, =0x0000ffff
+ mov r8, r0
+ movs r1, 0x24
+ str r1, [sp, 0x6C]
+_08165710:
+ ldr r1, =gSaveBlock2Ptr
+ movs r0, 0xEC
+ adds r4, r7, 0
+ muls r4, r0
+ movs r2, 0xE7
+ lsls r2, 3
+ adds r4, r2
+ ldr r0, [r1]
+ adds r4, r0, r4
+ ldr r3, =0x00000cb4
+ adds r0, r3
+ ldr r6, [sp, 0x6C]
+ adds r0, r6
+ ldrh r1, [r0]
+ movs r0, 0x2C
+ muls r1, r0
+ adds r1, r4, r1
+ adds r0, r5, 0
+ adds r1, 0x34
+ ldm r1!, {r2,r3,r6}
+ stm r0!, {r2,r3,r6}
+ ldm r1!, {r2,r3,r6}
+ stm r0!, {r2,r3,r6}
+ ldm r1!, {r2,r3,r6}
+ stm r0!, {r2,r3,r6}
+ ldm r1!, {r2,r3}
+ stm r0!, {r2,r3}
+ adds r1, r4, 0x4
+ add r0, sp, 0x10
+ bl StringCopy
+ adds r4, 0xE4
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bne _0816578C
+ ldrh r0, [r5, 0x20]
+ mov r6, r8
+ ands r0, r6
+ cmp r0, r9
+ beq _0816579C
+ mov r1, sp
+ adds r1, 0x3D
+ movs r0, 0xFF
+ strb r0, [r1]
+ add r0, sp, 0x38
+ movs r1, 0x1
+ bl ConvertInternationalString
+ b _0816579C
+ .pool
+_0816578C:
+ ldrh r0, [r5, 0x20]
+ mov r1, r8
+ ands r0, r1
+ cmp r0, r9
+ bne _0816579C
+ add r1, sp, 0x10
+ movs r0, 0xFF
+ strb r0, [r1, 0x5]
+_0816579C:
+ movs r0, 0x64
+ mov r4, r10
+ muls r4, r0
+ ldr r0, =gUnknown_02024618
+ adds r4, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl sub_8068338
+ adds r0, r4, 0
+ movs r1, 0x7
+ add r2, sp, 0x10
+ bl SetMonData
+ movs r2, 0x96
+ lsls r2, 1
+ adds r0, r7, r2
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_8162F68
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x44]
+ adds r0, r4, 0
+ movs r1, 0x31
+ ldr r2, [sp, 0x64]
+ bl SetMonData
+ ldr r3, [sp, 0x6C]
+ adds r3, 0x2
+ str r3, [sp, 0x6C]
+ movs r6, 0x1
+ add r10, r6
+ mov r0, r10
+ cmp r0, 0x1
+ ble _08165710
+ b _0816585A
+ .pool
+_081657F0:
+ ldr r1, =0xfffffe70
+ adds r0, r7, r1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r2, 0
+ mov r10, r2
+ mov r3, sp
+ adds r3, 0x44
+ str r3, [sp, 0x64]
+ ldr r6, =gSaveBlock2Ptr
+ mov r8, r6
+ movs r5, 0x24
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ adds r6, r0, 0
+ adds r6, 0xDC
+_08165812:
+ movs r0, 0x64
+ mov r4, r10
+ muls r4, r0
+ ldr r0, =gUnknown_02024618
+ adds r4, r0
+ mov r1, r8
+ ldr r0, [r1]
+ adds r1, r0, r6
+ ldr r2, =0x00000cb4
+ adds r0, r2
+ adds r0, r5
+ ldrb r2, [r0]
+ adds r0, r4, 0
+ bl sub_8068528
+ movs r3, 0xC8
+ lsls r3, 1
+ adds r0, r7, r3
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_8162F68
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x44]
+ adds r0, r4, 0
+ movs r1, 0x31
+ ldr r2, [sp, 0x64]
+ bl SetMonData
+ adds r5, 0x2
+ movs r0, 0x1
+ add r10, r0
+ mov r1, r10
+ cmp r1, 0x1
+ ble _08165812
+_0816585A:
+ add sp, 0x70
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8165404
+
+ thumb_func_start sub_816587C
+sub_816587C: @ 816587C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ adds r6, r0, 0
+ adds r5, r1, 0
+ movs r2, 0
+ adds r1, r6, 0
+ adds r3, r6, 0
+ adds r3, 0x58
+_08165894:
+ ldrh r0, [r1, 0x1C]
+ cmp r0, 0
+ beq _0816589C
+ adds r2, 0x1
+_0816589C:
+ adds r1, 0x2C
+ cmp r1, r3
+ ble _08165894
+ cmp r2, 0x3
+ beq _081658B4
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0xEC
+ bl memset
+ movs r0, 0
+ b _081659BE
+_081658B4:
+ ldrb r0, [r6]
+ strb r0, [r5]
+ ldrh r0, [r6, 0x2]
+ strh r0, [r5, 0x2]
+ movs r2, 0
+ ldr r0, =gUnknown_085DCF40
+ ldrb r1, [r0]
+ ldrb r3, [r6, 0x1]
+ mov r12, r0
+ adds r4, r5, 0x4
+ adds r7, r6, 0x4
+ movs r0, 0xC
+ adds r0, r5
+ mov r9, r0
+ movs r0, 0xC
+ adds r0, r6
+ mov r8, r0
+ adds r0, r5, 0
+ adds r0, 0x10
+ str r0, [sp, 0x4]
+ movs r0, 0x10
+ adds r0, r6
+ mov r10, r0
+ adds r0, r5, 0
+ adds r0, 0x1C
+ str r0, [sp, 0x8]
+ adds r0, 0xC
+ str r0, [sp, 0xC]
+ adds r0, 0x90
+ str r0, [sp, 0x10]
+ cmp r1, r3
+ beq _08165904
+ mov r1, r12
+_081658F6:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0x51
+ bgt _08165904
+ ldrb r0, [r1]
+ cmp r0, r3
+ bne _081658F6
+_08165904:
+ cmp r2, 0x52
+ beq _08165918
+ lsls r0, r2, 1
+ mov r1, r12
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ b _0816591A
+ .pool
+_08165918:
+ movs r0, 0x2B
+_0816591A:
+ strb r0, [r5, 0x1]
+ movs r2, 0
+ adds r3, r7, 0
+_08165920:
+ adds r0, r4, r2
+ adds r1, r3, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _08165920
+ movs r2, 0
+ mov r4, r9
+ mov r3, r8
+_08165934:
+ adds r0, r4, r2
+ adds r1, r3, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _08165934
+ mov r3, r10
+ ldr r1, [sp, 0x4]
+ movs r2, 0x5
+_08165948:
+ ldrh r0, [r3]
+ strh r0, [r1]
+ adds r3, 0x2
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08165948
+ ldr r3, =gUnknown_085DFA46
+ ldr r1, [sp, 0x8]
+ movs r2, 0x5
+_0816595C:
+ ldrh r0, [r3]
+ strh r0, [r1]
+ adds r3, 0x2
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0816595C
+ ldr r3, =gUnknown_085DFA52
+ ldr r1, [sp, 0xC]
+ movs r2, 0x5
+_08165970:
+ ldrh r0, [r3]
+ strh r0, [r1]
+ adds r3, 0x2
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08165970
+ adds r2, r6, 0
+ adds r3, r5, 0
+ movs r4, 0x58
+ adds r4, r2
+ mov r8, r4
+_08165988:
+ adds r1, r3, 0
+ adds r1, 0x34
+ adds r0, r2, 0
+ adds r0, 0x1C
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ ldm r0!, {r6,r7}
+ stm r1!, {r6,r7}
+ adds r2, 0x2C
+ adds r3, 0x2C
+ cmp r2, r8
+ ble _08165988
+ movs r0, 0
+ str r0, [sp]
+ ldr r2, =0x0500000b
+ mov r0, sp
+ ldr r1, [sp, 0x10]
+ bl CpuSet
+ adds r0, r5, 0
+ bl sub_8164F70
+ movs r0, 0x1
+_081659BE:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_816587C
+
+ thumb_func_start sub_81659DC
+sub_81659DC: @ 81659DC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r1, 0
+ movs r2, 0
+ adds r1, r4, 0
+ adds r3, r4, 0
+ adds r3, 0x58
+_081659F4:
+ ldrh r0, [r1, 0x34]
+ cmp r0, 0
+ beq _081659FC
+ adds r2, 0x1
+_081659FC:
+ adds r1, 0x2C
+ cmp r1, r3
+ ble _081659F4
+ cmp r2, 0x3
+ beq _08165A14
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0xA4
+ bl memset
+ movs r0, 0
+ b _08165AD8
+_08165A14:
+ ldrb r0, [r4]
+ strb r0, [r6]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r6, 0x2]
+ movs r2, 0
+ ldr r0, =gUnknown_085DCF40
+ ldrb r1, [r0, 0x1]
+ ldrb r3, [r4, 0x1]
+ mov r12, r0
+ adds r5, r6, 0x4
+ adds r7, r4, 0x4
+ movs r0, 0xC
+ adds r0, r6
+ mov r9, r0
+ movs r0, 0xC
+ adds r0, r4
+ mov r8, r0
+ adds r0, r6, 0
+ adds r0, 0x10
+ str r0, [sp]
+ movs r0, 0x10
+ adds r0, r4
+ mov r10, r0
+ cmp r1, r3
+ beq _08165A58
+ mov r1, r12
+ adds r1, 0x1
+_08165A4A:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0x51
+ bgt _08165A58
+ ldrb r0, [r1]
+ cmp r0, r3
+ bne _08165A4A
+_08165A58:
+ cmp r2, 0x52
+ beq _08165A68
+ lsls r0, r2, 1
+ add r0, r12
+ ldrb r0, [r0]
+ b _08165A6A
+ .pool
+_08165A68:
+ movs r0, 0x24
+_08165A6A:
+ strb r0, [r6, 0x1]
+ movs r2, 0
+ adds r3, r7, 0
+_08165A70:
+ adds r0, r5, r2
+ adds r1, r3, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _08165A70
+ movs r2, 0
+ mov r5, r9
+ mov r3, r8
+_08165A84:
+ adds r0, r5, r2
+ adds r1, r3, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _08165A84
+ mov r3, r10
+ ldr r1, [sp]
+ movs r2, 0x5
+_08165A98:
+ ldrh r0, [r3]
+ strh r0, [r1]
+ adds r3, 0x2
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08165A98
+ adds r2, r4, 0
+ adds r3, r6, 0
+ movs r4, 0x58
+ adds r4, r2
+ mov r8, r4
+_08165AB0:
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r0, r2, 0
+ adds r0, 0x34
+ ldm r0!, {r4,r5,r7}
+ stm r1!, {r4,r5,r7}
+ ldm r0!, {r4,r5,r7}
+ stm r1!, {r4,r5,r7}
+ ldm r0!, {r4,r5,r7}
+ stm r1!, {r4,r5,r7}
+ ldm r0!, {r5,r7}
+ stm r1!, {r5,r7}
+ adds r2, 0x2C
+ adds r3, 0x2C
+ cmp r2, r8
+ ble _08165AB0
+ adds r0, r6, 0
+ bl sub_8164F94
+ movs r0, 0x1
+_08165AD8:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81659DC
+
+ thumb_func_start sub_8165AE8
+sub_8165AE8: @ 8165AE8
+ push {r4,lr}
+ adds r2, r0, 0
+ movs r0, 0
+ str r0, [r2, 0x40]
+ movs r3, 0
+ adds r4, r2, 0
+_08165AF4:
+ ldr r0, [r2, 0x40]
+ ldm r4!, {r1}
+ adds r0, r1
+ str r0, [r2, 0x40]
+ adds r3, 0x1
+ cmp r3, 0xF
+ bls _08165AF4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8165AE8
+
+ thumb_func_start sub_8165B08
+sub_8165B08: @ 8165B08
+ push {lr}
+ movs r1, 0
+ movs r3, 0
+ adds r2, r0, 0
+_08165B10:
+ stm r2!, {r3}
+ adds r1, 0x1
+ cmp r1, 0x10
+ bls _08165B10
+ bl sub_819FA5C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8165B08
+
+ thumb_func_start sub_8165B20
+sub_8165B20: @ 8165B20
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r5, 0
+ ldr r0, =gSaveBlock2Ptr
+ mov r8, r0
+ mov r9, r8
+_08165B30:
+ lsls r0, r5, 4
+ adds r1, r0, r5
+ lsls r1, 2
+ adds r1, 0xDC
+ mov r3, r9
+ ldr r2, [r3]
+ movs r4, 0
+ movs r3, 0
+ adds r6, r0, 0
+ adds r7, r5, 0x1
+ adds r2, r1
+_08165B46:
+ ldm r2!, {r0}
+ adds r4, r0
+ adds r3, 0x1
+ cmp r3, 0xF
+ bls _08165B46
+ mov r0, r8
+ ldr r2, [r0]
+ adds r0, r6, r5
+ lsls r1, r0, 2
+ movs r3, 0x8E
+ lsls r3, 1
+ adds r0, r2, r3
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, r4
+ beq _08165B70
+ adds r0, r1, 0
+ adds r0, 0xDC
+ adds r0, r2, r0
+ bl sub_8165B08
+_08165B70:
+ adds r5, r7, 0
+ cmp r5, 0x3
+ ble _08165B30
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8165B20
+
+ thumb_func_start sub_8165B88
+sub_8165B88: @ 8165B88
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r2, r1, 16
+ adds r3, r2, 0
+ movs r0, 0xFA
+ lsls r0, 1
+ cmp r2, r0
+ bne _08165BA4
+ ldr r0, =gGameLanguage
+ b _08165C28
+ .pool
+_08165BA4:
+ ldr r0, =0x0000012b
+ cmp r2, r0
+ bhi _08165BB8
+ ldr r0, =gGameLanguage
+ b _08165C28
+ .pool
+_08165BB8:
+ ldr r0, =0x0000018f
+ cmp r2, r0
+ bhi _08165BFC
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _08165BDC
+ bl sub_81864B4
+ b _08165C2A
+ .pool
+_08165BDC:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0xfffffed4
+ adds r2, r1
+ movs r1, 0xEC
+ muls r1, r2
+ adds r0, r1
+ ldr r1, =0x0000081c
+ adds r0, r1
+ b _08165C28
+ .pool
+_08165BFC:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _08165C14
+ bl sub_81864C0
+ b _08165C2A
+ .pool
+_08165C14:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r0, =0xfffffe70
+ adds r1, r3, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0
+ ldr r1, =0x0000011b
+ adds r0, r2, r1
+_08165C28:
+ ldrb r0, [r0]
+_08165C2A:
+ strb r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8165B88
+
+ thumb_func_start sub_8165C40
+sub_8165C40: @ 8165C40
+ push {lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000ca9
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x2
+ beq _08165C84
+ ldr r1, =gUnknown_0203BC88
+ ldr r0, =gBattleFrontierTrainers
+ str r0, [r1]
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, =gBattleFrontierMons
+ str r0, [r1]
+ ldrb r0, [r2]
+ lsls r0, 30
+ lsrs r0, 30
+ bl sub_8165C90
+ b _08165C88
+ .pool
+_08165C84:
+ bl sub_8165D78
+_08165C88:
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8165C40
+
+ thumb_func_start sub_8165C90
+sub_8165C90: @ 8165C90
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08165C9E
+ cmp r0, 0x1
+ beq _08165CA2
+_08165C9E:
+ movs r0, 0x32
+ b _08165CB0
+_08165CA2:
+ bl sub_8165CB4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3B
+ bhi _08165CB0
+ movs r0, 0x3C
+_08165CB0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8165C90
+
+ thumb_func_start sub_8165CB4
+sub_8165CB4: @ 8165CB4
+ push {r4-r6,lr}
+ movs r6, 0
+ movs r5, 0
+_08165CBA:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _08165CF4
+ adds r0, r4, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _08165CF4
+ adds r0, r4, 0
+ movs r1, 0x38
+ movs r2, 0
+ bl GetMonData
+ cmp r0, r6
+ ble _08165CF4
+ adds r6, r0, 0
+_08165CF4:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08165CBA
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8165CB4
+
+ thumb_func_start sub_8165D08
+sub_8165D08: @ 8165D08
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ cmp r0, 0x63
+ bls _08165D3A
+ movs r1, 0x6
+ cmp r0, 0x77
+ bls _08165D3A
+ movs r1, 0x9
+ cmp r0, 0x8B
+ bls _08165D3A
+ movs r1, 0xC
+ cmp r0, 0x9F
+ bls _08165D3A
+ movs r1, 0xF
+ cmp r0, 0xB3
+ bls _08165D3A
+ movs r1, 0x12
+ cmp r0, 0xC7
+ bls _08165D3A
+ movs r1, 0x1F
+ cmp r0, 0xDB
+ bhi _08165D3A
+ movs r1, 0x15
+_08165D3A:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8165D08
+
+ thumb_func_start sub_8165D40
+sub_8165D40: @ 8165D40
+ push {lr}
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ beq _08165D58
+ cmp r0, 0x3
+ beq _08165D58
+ cmp r0, 0x4
+ bne _08165D70
+_08165D58:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1E
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ b _08165D72
+ .pool
+_08165D70:
+ movs r0, 0
+_08165D72:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8165D40
+
+ thumb_func_start sub_8165D78
+sub_8165D78: @ 8165D78
+ push {lr}
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bne _08165DA8
+ ldr r1, =gUnknown_0203BC88
+ ldr r0, =gSlateportBattleTentTrainers
+ str r0, [r1]
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, =gSlateportBattleTentMons
+ b _08165DF2
+ .pool
+_08165DA8:
+ cmp r0, 0x2
+ bne _08165DC8
+ ldr r1, =gUnknown_0203BC88
+ ldr r0, =gVerdanturfBattleTentTrainers
+ str r0, [r1]
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, =gVerdanturfBattleTentMons
+ b _08165DF2
+ .pool
+_08165DC8:
+ cmp r0, 0x3
+ bne _08165DE8
+ ldr r1, =gUnknown_0203BC88
+ ldr r0, =gFallarborBattleTentTrainers
+ str r0, [r1]
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, =gFallarborBattleTentMons
+ b _08165DF2
+ .pool
+_08165DE8:
+ ldr r1, =gUnknown_0203BC88
+ ldr r0, =gBattleFrontierTrainers
+ str r0, [r1]
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, =gBattleFrontierMons
+_08165DF2:
+ str r0, [r1]
+ bl sub_8165CB4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1D
+ bhi _08165E02
+ movs r0, 0x1E
+_08165E02:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8165D78
+
+ thumb_func_start sub_8165E18
+sub_8165E18: @ 8165E18
+ push {r4,r5,lr}
+ ldr r5, =gSaveBlock2Ptr
+_08165E1C:
+ bl sub_8165D40
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r3, 0
+ ldr r1, [r5]
+ ldr r2, =0x00000cb2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r3, r0
+ bge _08165E58
+ adds r2, 0x2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, r4
+ beq _08165E58
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ subs r2, 0x2
+ adds r0, r1, r2
+ ldrh r2, [r0]
+ ldr r0, =0x00000cb4
+ adds r1, r0
+_08165E4A:
+ adds r1, 0x2
+ adds r3, 0x1
+ cmp r3, r2
+ bge _08165E58
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _08165E4A
+_08165E58:
+ ldr r0, [r5]
+ ldr r1, =0x00000cb2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r3, r0
+ bne _08165E1C
+ ldr r5, =gTrainerBattleOpponent_A
+ strh r4, [r5]
+ ldrh r0, [r5]
+ movs r1, 0
+ bl sub_8162614
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r2, =0x00000cb2
+ adds r0, r1, r2
+ ldrh r2, [r0]
+ adds r0, r2, 0x1
+ cmp r0, 0x2
+ bgt _08165E8C
+ lsls r0, r2, 1
+ ldr r2, =0x00000cb4
+ adds r1, r2
+ adds r1, r0
+ ldrh r0, [r5]
+ strh r0, [r1]
+_08165E8C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8165E18
+
+ thumb_func_start sub_8165EA4
+sub_8165EA4: @ 8165EA4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x38
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x18]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x1C]
+ bl sub_8165D78
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x20]
+ ldr r0, =gTrainerBattleOpponent_A
+ ldrh r2, [r0]
+ ldr r0, =gUnknown_0203BC88
+ ldr r1, [r0]
+ movs r0, 0x34
+ muls r0, r2
+ adds r0, r1
+ ldr r0, [r0, 0x30]
+ str r0, [sp, 0x28]
+ movs r0, 0
+ str r0, [sp, 0x24]
+ ldr r2, [sp, 0x28]
+ ldrh r1, [r2]
+ b _08165EFE
+ .pool
+_08165EEC:
+ ldr r0, [sp, 0x24]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+ lsls r0, 1
+ ldr r6, [sp, 0x28]
+ adds r0, r6
+ ldrh r1, [r0]
+_08165EFE:
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ bne _08165EEC
+ movs r0, 0
+ mov r8, r0
+ bl Random
+ adds r4, r0, 0
+ bl Random
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, 16
+ orrs r4, r0
+ str r4, [sp, 0x2C]
+ b _08166092
+ .pool
+_08165F24:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, [sp, 0x24]
+ bl __modsi3
+ lsls r0, 1
+ ldr r2, [sp, 0x28]
+ adds r0, r2
+ ldrh r4, [r0]
+ movs r6, 0
+ ldr r7, [sp, 0x18]
+ add r7, r8
+ b _08165F44
+_08165F42:
+ adds r6, 0x1
+_08165F44:
+ cmp r6, r7
+ bge _08165F68
+ movs r1, 0x64
+ adds r0, r6, 0
+ muls r0, r1
+ ldr r2, =gEnemyParty
+ adds r0, r2
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ ldr r1, =gUnknown_0203BC8C
+ ldr r2, [r1]
+ lsls r1, r4, 4
+ adds r1, r2
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _08165F42
+_08165F68:
+ cmp r6, r7
+ beq _08165F6E
+ b _08166092
+_08165F6E:
+ movs r6, 0
+ cmp r6, r7
+ bge _08165FB8
+ ldr r0, =gBattleFrontierHeldItems
+ mov r9, r0
+ movs r3, 0
+_08165F7A:
+ ldr r1, =gEnemyParty
+ adds r5, r3, r1
+ adds r0, r5, 0
+ movs r1, 0xC
+ movs r2, 0
+ str r3, [sp, 0x34]
+ bl GetMonData
+ ldr r3, [sp, 0x34]
+ cmp r0, 0
+ beq _08165FB0
+ adds r0, r5, 0
+ movs r1, 0xC
+ movs r2, 0
+ bl GetMonData
+ ldr r1, =gUnknown_0203BC8C
+ ldr r2, [r1]
+ lsls r1, r4, 4
+ adds r1, r2
+ ldrb r1, [r1, 0xA]
+ lsls r1, 1
+ add r1, r9
+ ldr r3, [sp, 0x34]
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _08165FB8
+_08165FB0:
+ adds r3, 0x64
+ adds r6, 0x1
+ cmp r6, r7
+ blt _08165F7A
+_08165FB8:
+ cmp r6, r7
+ bne _08166092
+ movs r6, 0
+ cmp r6, r8
+ bge _08165FDA
+ add r0, sp, 0xC
+ ldrh r0, [r0]
+ cmp r0, r4
+ beq _08165FDA
+ add r1, sp, 0xC
+_08165FCC:
+ adds r1, 0x2
+ adds r6, 0x1
+ cmp r6, r8
+ bge _08165FDA
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _08165FCC
+_08165FDA:
+ cmp r6, r8
+ bne _08166092
+ mov r2, r8
+ lsls r0, r2, 1
+ add r0, sp
+ adds r0, 0xC
+ strh r4, [r0]
+ movs r6, 0x64
+ adds r0, r7, 0
+ muls r0, r6
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldr r5, =gUnknown_0203BC8C
+ ldr r2, [r5]
+ lsls r4, 4
+ adds r2, r4, r2
+ ldrh r1, [r2]
+ ldrb r3, [r2, 0xC]
+ movs r6, 0
+ str r6, [sp]
+ ldrb r2, [r2, 0xB]
+ str r2, [sp, 0x4]
+ ldr r2, [sp, 0x2C]
+ str r2, [sp, 0x8]
+ ldr r2, [sp, 0x20]
+ bl sub_8068634
+ add r1, sp, 0x14
+ movs r0, 0xFF
+ strb r0, [r1]
+ mov r9, r4
+ mov r0, r8
+ adds r0, 0x1
+ str r0, [sp, 0x30]
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ mov r8, r1
+ adds r3, r5, 0
+ mov r5, r9
+ ldr r2, =gEnemyParty
+ mov r10, r2
+_0816602E:
+ ldr r0, [r3]
+ adds r0, r5, r0
+ lsls r4, r6, 1
+ adds r0, 0x2
+ adds r0, r4
+ ldrh r1, [r0]
+ lsls r2, r6, 24
+ lsrs r2, 24
+ mov r0, r8
+ add r0, r10
+ str r3, [sp, 0x34]
+ bl sub_80691F4
+ ldr r3, [sp, 0x34]
+ ldr r0, [r3]
+ adds r0, r5, r0
+ adds r0, 0x2
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, 0xDA
+ bne _0816605E
+ movs r0, 0
+ mov r1, sp
+ strb r0, [r1, 0x14]
+_0816605E:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0816602E
+ movs r2, 0x64
+ adds r4, r7, 0
+ muls r4, r2
+ ldr r6, =gEnemyParty
+ adds r4, r6
+ adds r0, r4, 0
+ movs r1, 0x20
+ add r2, sp, 0x14
+ bl SetMonData
+ ldr r0, =gUnknown_0203BC8C
+ ldr r0, [r0]
+ add r0, r9
+ ldrb r2, [r0, 0xA]
+ lsls r2, 1
+ ldr r0, =gBattleFrontierHeldItems
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ ldr r0, [sp, 0x30]
+ mov r8, r0
+_08166092:
+ ldr r1, [sp, 0x1C]
+ cmp r8, r1
+ beq _0816609A
+ b _08165F24
+_0816609A:
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8165EA4
+
+ thumb_func_start sub_81660B8
+sub_81660B8: @ 81660B8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r3, =gUnknown_085DCEDC
+ ldrb r0, [r3]
+ cmp r0, r2
+ beq _081660DA
+_081660C8:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1D
+ bhi _081660DA
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _081660C8
+_081660DA:
+ cmp r1, 0x1E
+ beq _081660EC
+ ldr r0, =gUnknown_085DCF0E
+ b _08166116
+ .pool
+_081660EC:
+ movs r1, 0
+ ldr r3, =gUnknown_085DCEFA
+ ldrb r0, [r3]
+ cmp r0, r2
+ beq _08166108
+_081660F6:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x13
+ bhi _08166108
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _081660F6
+_08166108:
+ cmp r1, 0x14
+ bne _08166114
+ movs r0, 0x7
+ b _0816611A
+ .pool
+_08166114:
+ ldr r0, =gUnknown_085DCF2C
+_08166116:
+ adds r0, r1, r0
+ ldrb r0, [r0]
+_0816611A:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81660B8
+
+ thumb_func_start sub_8166124
+sub_8166124: @ 8166124
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, =gSaveBlock2Ptr
+ movs r0, 0xEC
+ muls r0, r6
+ movs r1, 0xE7
+ lsls r1, 3
+ adds r0, r1
+ ldr r1, [r2]
+ movs r5, 0
+ movs r4, 0
+ movs r3, 0
+ adds r1, r0
+_08166140:
+ ldm r1!, {r0}
+ adds r5, r0
+ orrs r4, r0
+ adds r3, 0x1
+ cmp r3, 0x39
+ bls _08166140
+ cmp r5, 0
+ bne _08166154
+ cmp r4, 0
+ beq _08166180
+_08166154:
+ ldr r2, [r2]
+ movs r0, 0xEC
+ adds r1, r6, 0
+ muls r1, r0
+ movs r3, 0x82
+ lsls r3, 4
+ adds r0, r2, r3
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, r5
+ bne _08166174
+ movs r0, 0x1
+ b _08166182
+ .pool
+_08166174:
+ movs r3, 0xE7
+ lsls r3, 3
+ adds r0, r1, r3
+ adds r0, r2, r0
+ bl sub_8164FB8
+_08166180:
+ movs r0, 0
+_08166182:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8166124
+
+ thumb_func_start sub_8166188
+sub_8166188: @ 8166188
+ push {r4-r7,lr}
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ ldr r1, =0x02000002
+ ands r0, r1
+ cmp r0, 0
+ beq _081661E8
+ bl sub_8165C40
+ lsls r0, 24
+ movs r5, 0
+ ldr r7, =gBaseStats
+ lsrs r0, 22
+ ldr r1, =gExperienceTables
+ adds r6, r0, r1
+_081661A6:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =gEnemyParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _081661E2
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrb r1, [r0, 0x13]
+ movs r0, 0xCA
+ lsls r0, 1
+ adds r2, r1, 0
+ muls r2, r0
+ adds r2, r6
+ adds r0, r4, 0
+ movs r1, 0x19
+ bl SetMonData
+ adds r0, r4, 0
+ bl CalculateMonStats
+_081661E2:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _081661A6
+_081661E8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166188
+
+ thumb_func_start sub_8166204
+sub_8166204: @ 8166204
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldr r4, =gUnknown_0203BCAC
+ ldr r0, =0x0000806c
+ bl AllocZeroed
+ str r0, [r4]
+ ldr r1, =gUnknown_0203BC90
+ ldr r2, =0x00007fd0
+ adds r0, r2
+ str r0, [r1]
+ str r5, [r0, 0x8]
+ str r6, [r0, 0x4]
+ ldr r0, =sub_8166380
+ bl launch_c3_walk_stairs_and_run_once
+ ldr r0, =sub_816631C
+ bl SetMainCallback2
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166204
+
+ thumb_func_start sub_816624C
+sub_816624C: @ 816624C
+ push {r4,r5,lr}
+ ldr r4, =gUnknown_0203BCAC
+ ldr r0, =0x0000806c
+ bl AllocZeroed
+ str r0, [r4]
+ ldr r5, =gUnknown_0203BC90
+ ldr r1, =0x00007fd0
+ adds r0, r1
+ str r0, [r5]
+ ldr r1, =gUnknown_0203BC98
+ ldr r1, [r1]
+ str r1, [r0, 0x8]
+ ldr r1, =gUnknown_0203BC94
+ ldr r1, [r1]
+ str r1, [r0, 0x4]
+ ldr r4, =gUnknown_0203BC9C
+ ldrb r0, [r4]
+ bl sub_81672E4
+ strb r0, [r4]
+ ldr r5, [r5]
+ movs r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _08166284
+ movs r1, 0x1
+_08166284:
+ adds r0, r5, 0
+ adds r0, 0x56
+ strb r1, [r0]
+ ldr r0, =sub_8166380
+ bl launch_c3_walk_stairs_and_run_once
+ ldr r0, =sub_81662C0
+ bl SetMainCallback2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_816624C
+
+ thumb_func_start sub_81662C0
+sub_81662C0: @ 81662C0
+ push {r4,lr}
+ ldr r4, =gUnknown_0203BC90
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ ldr r4, [r4]
+ ldr r1, [r4]
+ ldr r0, =map_warp_consider_1_to_outside_or_stair_or_dive
+ cmp r1, r0
+ bne _081662F0
+ adds r0, r4, 0
+ adds r0, 0x50
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, =sub_8166304
+ bl SetMainCallback2
+_081662F0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81662C0
+
+ thumb_func_start sub_8166304
+sub_8166304: @ 8166304
+ push {lr}
+ bl sub_81668F8
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8166304
+
+ thumb_func_start sub_816631C
+sub_816631C: @ 816631C
+ push {lr}
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTextPrinters
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_816631C
+
+ thumb_func_start sub_8166340
+sub_8166340: @ 8166340
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00007c58
+ adds r0, r1
+ bl sub_81D2108
+ bl sub_80BA0A8
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166340
+
+ thumb_func_start launch_c3_walk_stairs_and_run_once
+launch_c3_walk_stairs_and_run_once: @ 816636C
+ ldr r1, =gUnknown_0203BC90
+ ldr r1, [r1]
+ str r0, [r1]
+ adds r1, 0x50
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end launch_c3_walk_stairs_and_run_once
+
+ thumb_func_start sub_8166380
+sub_8166380: @ 8166380
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r1, =gUnknown_0203BC90
+ ldr r0, [r1]
+ adds r0, 0x50
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0xF
+ bls _08166394
+ b _08166556
+_08166394:
+ lsls r0, 2
+ ldr r1, =_081663A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081663A8:
+ .4byte _081663E8
+ .4byte _0816640C
+ .4byte _08166416
+ .4byte _08166434
+ .4byte _08166464
+ .4byte _08166468
+ .4byte _08166474
+ .4byte _08166484
+ .4byte _08166490
+ .4byte _0816649C
+ .4byte _081664B8
+ .4byte _081664BC
+ .4byte _081664E4
+ .4byte _08166510
+ .4byte _08166528
+ .4byte _08166550
+_081663E8:
+ ldr r2, =gUnknown_0203BCAC
+ ldr r0, [r2]
+ ldr r1, =0x00007b10
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r2, =0x00007c58
+ adds r0, r2
+ bl sub_81D1ED4
+ b _0816653C
+ .pool
+_0816640C:
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ b _0816653C
+_08166416:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0
+ str r0, [sp]
+ movs r1, 0xC0
+ lsls r1, 19
+ ldr r2, =0x05006000
+ mov r0, sp
+ bl CpuSet
+ b _0816653C
+ .pool
+_08166434:
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_085DFCCC
+ movs r0, 0
+ movs r2, 0x4
+ bl InitBgsFromTemplates
+ ldr r0, =gUnknown_085DFCDC
+ bl InitWindows
+ bl DeactivateAllTextPrinters
+ movs r0, 0
+ movs r1, 0x97
+ movs r2, 0xE0
+ bl sub_809882C
+ b _0816653C
+ .pool
+_08166464:
+ ldr r1, [r2]
+ b _08166540
+_08166468:
+ bl sub_8168328
+ lsls r0, 24
+ cmp r0, 0
+ bne _08166556
+ b _0816653C
+_08166474:
+ ldr r1, =gKeyRepeatStartDelay
+ movs r0, 0x14
+ strh r0, [r1]
+ bl sub_8167420
+ b _0816653C
+ .pool
+_08166484:
+ bl sub_8167930
+ lsls r0, 24
+ cmp r0, 0
+ bne _08166556
+ b _0816653C
+_08166490:
+ movs r0, 0
+ bl sub_8167608
+ bl sub_8167760
+ b _0816653C
+_0816649C:
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00007b0e
+ adds r0, r1
+ bl sub_81D312C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08166556
+ b _0816653C
+ .pool
+_081664B8:
+ ldr r1, [r2]
+ b _08166540
+_081664BC:
+ ldr r5, =gUnknown_0203BCAC
+ ldr r1, [r5]
+ ldr r4, =0x00007c58
+ adds r0, r1, r4
+ ldr r2, =0x00007c6c
+ adds r1, r2
+ bl sub_81D2754
+ ldr r0, [r5]
+ adds r0, r4
+ bl sub_81D20AC
+ b _0816653C
+ .pool
+_081664E4:
+ ldr r4, =gUnknown_0203BCAC
+ ldr r0, [r4]
+ ldr r1, =0x00007c58
+ adds r0, r1
+ bl sub_81D20BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08166556
+ ldr r2, [r4]
+ ldr r1, =0x00007c58
+ adds r0, r2, r1
+ adds r1, 0x14
+ adds r2, r1
+ adds r1, r2, 0
+ bl sub_81D1F84
+ b _0816653C
+ .pool
+_08166510:
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r2, =0x00007c58
+ adds r0, r2
+ bl sub_81D2230
+ b _0816653C
+ .pool
+_08166528:
+ movs r0, 0
+ bl PutWindowTilemap
+ movs r0, 0x1
+ bl PutWindowTilemap
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8167BA0
+_0816653C:
+ ldr r0, =gUnknown_0203BC90
+ ldr r1, [r0]
+_08166540:
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08166556
+ .pool
+_08166550:
+ ldr r0, =map_warp_consider_1_to_outside_or_stair_or_dive
+ bl launch_c3_walk_stairs_and_run_once
+_08166556:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166380
+
+ thumb_func_start map_warp_consider_1_to_outside_or_stair_or_dive
+map_warp_consider_1_to_outside_or_stair_or_dive: @ 8166564
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, =gUnknown_0203BC90
+ ldr r0, [r4]
+ adds r0, 0x50
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _08166580
+ cmp r1, 0x1
+ beq _081665C0
+ b _08166610
+ .pool
+_08166580:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, =sub_8166340
+ bl SetVBlankCallback
+ movs r0, 0
+ bl ShowBg
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x3
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ ldr r1, [r4]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08166610
+ .pool
+_081665C0:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08166610
+ ldr r4, =gUnknown_0203BCAC
+ ldr r0, [r4]
+ ldr r1, =0x00007b1c
+ adds r0, r1
+ bl sub_81D3464
+ ldr r4, [r4]
+ ldr r2, =0x00008041
+ adds r0, r4, r2
+ ldrb r1, [r0]
+ ldr r3, =0x00008040
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _0816660A
+ ldr r1, =0x00007fb3
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ subs r2, 0x91
+ adds r0, r4, r2
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r3, =0x00007b1c
+ adds r0, r4, r3
+ subs r3, 0xC
+ adds r1, r4, r3
+ ldrb r1, [r1]
+ bl sub_81D3480
+_0816660A:
+ ldr r0, =sub_8166634
+ bl launch_c3_walk_stairs_and_run_once
+_08166610:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end map_warp_consider_1_to_outside_or_stair_or_dive
+
+ thumb_func_start sub_8166634
+sub_8166634: @ 8166634
+ push {lr}
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ adds r0, 0x50
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bls _08166644
+ b _0816680E
+_08166644:
+ lsls r0, 2
+ ldr r1, =_08166658
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08166658:
+ .4byte _08166678
+ .4byte _0816675C
+ .4byte _0816680E
+ .4byte _08166788
+ .4byte _0816680E
+ .4byte _08166794
+ .4byte _081667AC
+ .4byte _081667F4
+_08166678:
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081666B8
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_8167CA0
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00007b1c
+ adds r0, r1
+ bl sub_81D3520
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x1
+ b _0816680C
+ .pool
+_081666B8:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081666F0
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_8167CA0
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r2, =0x00007b1c
+ adds r0, r2
+ bl sub_81D3520
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x1
+ b _0816680C
+ .pool
+_081666F0:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08166710
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x3
+ b _0816680C
+ .pool
+_08166710:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0816671A
+ b _0816680E
+_0816671A:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r2, =0x00008041
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ subs r2, 0x1
+ adds r0, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _0816674C
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x3
+ b _0816680C
+ .pool
+_0816674C:
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x5
+ b _0816680C
+ .pool
+_0816675C:
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00008044
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _0816680E
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ adds r0, 0x50
+ b _0816680C
+ .pool
+_08166788:
+ ldr r0, =sub_8166BEC
+ bl launch_c3_walk_stairs_and_run_once
+ b _0816680E
+ .pool
+_08166794:
+ bl sub_8166D44
+ ldr r0, =gUnknown_0203BC90
+ ldr r1, [r0]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0816680E
+ .pool
+_081667AC:
+ bl sub_8166DE4
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _081667CC
+ cmp r1, 0
+ bgt _081667C6
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08166804
+ b _0816680E
+_081667C6:
+ cmp r1, 0x1
+ bne _0816680E
+ b _08166804
+_081667CC:
+ bl sub_8167268
+ lsls r0, 24
+ cmp r0, 0
+ beq _081667E8
+ bl sub_8166F50
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x7
+ b _0816680C
+ .pool
+_081667E8:
+ ldr r0, =sub_816681C
+ bl launch_c3_walk_stairs_and_run_once
+ b _0816680E
+ .pool
+_081667F4:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0816680E
+ bl sub_8166F94
+_08166804:
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0
+_0816680C:
+ strb r1, [r0]
+_0816680E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166634
+
+ thumb_func_start sub_816681C
+sub_816681C: @ 816681C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, =gUnknown_0203BC90
+ ldr r0, [r5]
+ adds r0, 0x50
+ ldrb r4, [r0]
+ cmp r4, 0
+ beq _08166838
+ cmp r4, 0x1
+ beq _08166888
+ b _081668D4
+ .pool
+_08166838:
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00008041
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_81672A4
+ ldr r1, =gUnknown_0203BC9C
+ strb r0, [r1]
+ ldr r1, =gUnknown_0203BC94
+ ldr r2, [r5]
+ ldr r0, [r2, 0x4]
+ str r0, [r1]
+ ldr r1, =gUnknown_0203BC98
+ ldr r0, [r2, 0x8]
+ str r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, [r5]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081668D4
+ .pool
+_08166888:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _081668D4
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r4, =gUnknown_0203BCA0
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_0203BCA4
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_0203BCA8
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_0203BCAC
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ bl FreeAllWindowBuffers
+ ldr r1, =gMain
+ ldr r0, =sub_816624C
+ str r0, [r1, 0x8]
+ bl sub_8179D70
+_081668D4:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_816681C
+
+ thumb_func_start sub_81668F8
+sub_81668F8: @ 81668F8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, =gUnknown_0203BC90
+ ldr r0, [r1]
+ adds r0, 0x50
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x6
+ bls _0816690C
+ b _08166A18
+_0816690C:
+ lsls r0, 2
+ ldr r1, =_08166920
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08166920:
+ .4byte _0816693C
+ .4byte _08166972
+ .4byte _08166A18
+ .4byte _081669A0
+ .4byte _081669AE
+ .4byte _081669C8
+ .4byte _081669F4
+_0816693C:
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00008041
+ adds r0, r1
+ ldr r1, =gUnknown_0203BC9C
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _08166968
+ ldr r0, [r4]
+ adds r0, 0x56
+ ldrb r0, [r0]
+ bl sub_8167CA0
+ ldr r1, [r4]
+ b _081669E2
+ .pool
+_08166968:
+ ldr r0, [r4]
+ adds r0, 0x50
+ movs r1, 0x3
+ strb r1, [r0]
+ b _08166A18
+_08166972:
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00008044
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08166A18
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ adds r0, 0x50
+ strb r1, [r0]
+ b _08166A18
+ .pool
+_081669A0:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ b _081669DE
+_081669AE:
+ movs r0, 0
+ bl ShowBg
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x3
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ b _081669DE
+_081669C8:
+ ldr r0, =sub_8166340
+ bl SetVBlankCallback
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_081669DE:
+ ldr r0, =gUnknown_0203BC90
+ ldr r1, [r0]
+_081669E2:
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08166A18
+ .pool
+_081669F4:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08166A18
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00007b1c
+ adds r0, r1
+ bl sub_81D3464
+ ldr r0, =sub_8166A34
+ bl launch_c3_walk_stairs_and_run_once
+ ldr r0, =sub_816631C
+ bl SetMainCallback2
+_08166A18:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81668F8
+
+ thumb_func_start sub_8166A34
+sub_8166A34: @ 8166A34
+ push {r4-r6,lr}
+ ldr r1, =gUnknown_0203BC90
+ ldr r0, [r1]
+ adds r0, 0x50
+ ldrb r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0x5
+ bls _08166A46
+ b _08166BDA
+_08166A46:
+ lsls r0, 2
+ ldr r1, =_08166A58
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08166A58:
+ .4byte _08166A70
+ .4byte _08166AAC
+ .4byte _08166AC0
+ .4byte _08166B14
+ .4byte _08166B94
+ .4byte _08166BB6
+_08166A70:
+ ldr r4, [r5]
+ ldr r3, =gPlayerParty
+ str r3, [r4, 0xC]
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r2, =0x00008041
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0, r1
+ subs r2, 0x88
+ adds r1, r2
+ ldrb r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ adds r1, r3
+ str r1, [r4, 0xC]
+ ldr r3, =0x00007b1c
+ adds r0, r3
+ bl sub_81D3520
+ b _08166BAA
+ .pool
+_08166AAC:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08166ABA
+ b _08166BDA
+_08166ABA:
+ b _08166BAA
+ .pool
+_08166AC0:
+ bl sub_8167104
+ ldr r6, =gUnknown_0203BC90
+ ldr r0, [r6]
+ adds r0, 0x5C
+ ldr r4, =gUnknown_0203BCAC
+ ldr r1, [r4]
+ ldr r5, =0x00007ca8
+ adds r1, r5
+ bl sub_81D2754
+ ldr r2, [r4]
+ ldr r4, =0x00007c58
+ adds r0, r2, r4
+ ldr r3, =0x00007fb3
+ adds r1, r2, r3
+ movs r3, 0
+ ldrsb r3, [r1, r3]
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+ adds r4, 0x14
+ adds r1, r4
+ adds r1, r2, r1
+ adds r2, r5
+ bl sub_81D1F84
+ bl sub_8167338
+ ldr r1, [r6]
+ b _08166BAC
+ .pool
+_08166B14:
+ ldr r5, =gUnknown_0203BCAC
+ ldr r0, [r5]
+ ldr r1, =0x00007c58
+ adds r0, r1
+ bl sub_81D2074
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ bne _08166BDA
+ ldr r0, [r5]
+ ldr r4, =0x00008041
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_81672A4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_81681F4
+ ldr r3, [r5]
+ adds r4, r3, r4
+ ldrb r1, [r4]
+ ldr r2, =0x00008040
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _08166B6C
+ ldr r4, =0x00007fb3
+ adds r0, r3, r4
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ subs r2, 0x90
+ adds r0, r3, r2
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r4, =0x00007b1c
+ adds r0, r3, r4
+ subs r4, 0xC
+ adds r1, r3, r4
+ ldrb r1, [r1]
+ bl sub_81D3480
+_08166B6C:
+ ldr r1, =gUnknown_0203BC90
+ ldr r0, [r1]
+ adds r0, 0x52
+ strb r6, [r0]
+ ldr r1, [r1]
+ b _08166BAC
+ .pool
+_08166B94:
+ ldr r1, [r5]
+ adds r1, 0x52
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x10
+ bls _08166BDA
+ bl sub_8166E24
+_08166BAA:
+ ldr r1, [r5]
+_08166BAC:
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08166BDA
+_08166BB6:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08166BDA
+ bl sub_8166EDC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08166BDA
+ ldr r0, =gUnknown_0203CE7C
+ ldrb r0, [r0]
+ bl sub_8136F68
+ ldr r0, =sub_8166BEC
+ bl launch_c3_walk_stairs_and_run_once
+_08166BDA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166A34
+
+ thumb_func_start sub_8166BEC
+sub_8166BEC: @ 8166BEC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r4, =gUnknown_0203BC90
+ ldr r0, [r4]
+ adds r2, r0, 0
+ adds r2, 0x50
+ ldrb r1, [r2]
+ cmp r1, 0x1
+ beq _08166C28
+ cmp r1, 0x1
+ bgt _08166C0C
+ cmp r1, 0
+ beq _08166C16
+ b _08166D18
+ .pool
+_08166C0C:
+ cmp r1, 0x2
+ beq _08166C40
+ cmp r1, 0x3
+ beq _08166C5C
+ b _08166D18
+_08166C16:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _08166C4A
+_08166C28:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08166D18
+ movs r0, 0x2
+ strb r0, [r2]
+ b _08166D18
+ .pool
+_08166C40:
+ ldr r1, =gUnknown_02039B28
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ bl sub_80BA0A8
+_08166C4A:
+ ldr r1, [r4]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08166D18
+ .pool
+_08166C5C:
+ ldr r0, [r0, 0x4]
+ bl SetMainCallback2
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00007b1c
+ adds r0, r1
+ bl sub_81D354C
+ movs r4, 0
+_08166C70:
+ ldr r5, =gUnknown_0203BCAC
+ ldr r0, [r5]
+ ldr r2, =0x00007b06
+ adds r0, r2
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x6
+ bls _08166C70
+ movs r0, 0
+ bl FreeSpriteTilesByTag
+ movs r0, 0x1
+ bl FreeSpriteTilesByTag
+ movs r0, 0
+ bl FreeSpritePaletteByTag
+ movs r0, 0x1
+ bl FreeSpritePaletteByTag
+ movs r4, 0
+_08166CAE:
+ ldr r0, [r5]
+ lsls r1, r4, 2
+ ldr r2, =0x00007b44
+ adds r0, r2
+ adds r0, r1
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _08166CAE
+ ldr r6, =gUnknown_0203BCAC
+ ldr r0, [r6]
+ ldr r2, =0x00007b10
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _08166CE6
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl DestroySprite
+_08166CE6:
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r4, =gUnknown_0203BCA0
+ ldr r0, [r4]
+ bl Free
+ movs r5, 0
+ str r5, [r4]
+ ldr r4, =gUnknown_0203BCA4
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_0203BCA8
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r0, [r6]
+ bl Free
+ str r5, [r6]
+ bl FreeAllWindowBuffers
+_08166D18:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166BEC
+
+ thumb_func_start sub_8166D44
+sub_8166D44: @ 8166D44
+ push {r4,lr}
+ sub sp, 0x4C
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00008041
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_81672A4
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2
+ add r2, sp, 0xC
+ bl GetMonData
+ add r0, sp, 0xC
+ bl StringGetEnd10
+ ldr r1, =gUnknown_085EC7A0
+ add r0, sp, 0xC
+ bl StringAppend
+ ldr r4, =gStringVar4
+ adds r0, r4, 0
+ add r1, sp, 0xC
+ bl StringCopy
+ movs r0, 0x2
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ movs r0, 0x2
+ movs r1, 0x97
+ movs r2, 0xE
+ bl sub_8098858
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0
+ bl PrintTextOnWindow
+ movs r0, 0x2
+ bl PutWindowTilemap
+ movs r0, 0x2
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldr r0, =gUnknown_085DFCFC
+ movs r1, 0x97
+ movs r2, 0xE
+ movs r3, 0
+ bl CreateYesNoMenu
+ add sp, 0x4C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166D44
+
+ thumb_func_start sub_8166DE4
+sub_8166DE4: @ 8166DE4
+ push {r4,lr}
+ bl sub_8198C58
+ lsls r0, 24
+ lsrs r4, r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _08166E18
+ cmp r1, 0
+ bgt _08166E02
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08166E06
+ b _08166E18
+_08166E02:
+ cmp r1, 0x1
+ bne _08166E18
+_08166E06:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x2
+ bl rbox_fill_rectangle
+ movs r0, 0x2
+ bl ClearWindowTilemap
+_08166E18:
+ lsls r0, r4, 24
+ asrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8166DE4
+
+ thumb_func_start sub_8166E24
+sub_8166E24: @ 8166E24
+ push {r4,lr}
+ movs r0, 0x2
+ movs r1, 0x97
+ movs r2, 0xE
+ bl sub_8098858
+ movs r0, 0x2
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r3, =gUnknown_0203BC90
+ ldr r0, [r3]
+ adds r0, 0x53
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, [r3]
+ adds r1, r2, 0
+ adds r1, 0x53
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bhi _08166EA8
+ adds r0, r2, 0
+ adds r0, 0x61
+ ldrb r1, [r1]
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r4, r3, 0
+ cmp r0, 0
+ bne _08166E84
+ adds r2, r4, 0
+_08166E60:
+ ldr r0, [r2]
+ adds r0, 0x53
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r3, [r2]
+ adds r1, r3, 0
+ adds r1, 0x53
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bhi _08166EA8
+ adds r0, r3, 0
+ adds r0, 0x61
+ ldrb r1, [r1]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08166E60
+_08166E84:
+ ldr r2, [r4]
+ adds r1, r2, 0
+ adds r1, 0x53
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bhi _08166EA8
+ ldr r0, =gStringVar4
+ ldrb r1, [r1]
+ adds r2, 0x61
+ adds r2, r1
+ ldrb r2, [r2]
+ bl sub_8166FD4
+ b _08166EB8
+ .pool
+_08166EA8:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_0203BC90
+ ldr r1, [r1]
+ adds r1, 0x53
+ ldrb r1, [r1]
+ movs r2, 0
+ bl sub_8166FD4
+_08166EB8:
+ ldr r0, =gStringVar4
+ bl sub_8166FB0
+ movs r0, 0x2
+ bl PutWindowTilemap
+ movs r0, 0x2
+ movs r1, 0x3
+ bl CopyWindowToVram
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166E24
+
+ thumb_func_start sub_8166EDC
+sub_8166EDC: @ 8166EDC
+ push {r4,r5,lr}
+ movs r0, 0x2
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r5, =gUnknown_0203BC90
+ adds r3, r5, 0
+ movs r4, 0x5
+_08166EEC:
+ ldr r0, [r3]
+ adds r0, 0x53
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r2, [r3]
+ adds r1, r2, 0
+ adds r1, 0x53
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bhi _08166F18
+ adds r0, r2, 0
+ adds r0, 0x61
+ ldrb r1, [r1]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08166F1E
+ b _08166EEC
+ .pool
+_08166F18:
+ strb r4, [r1]
+ movs r0, 0
+ b _08166F44
+_08166F1E:
+ ldr r4, =gStringVar4
+ ldr r0, [r5]
+ adds r1, r0, 0
+ adds r1, 0x53
+ ldrb r1, [r1]
+ adds r0, 0x61
+ adds r0, r1
+ ldrb r2, [r0]
+ adds r0, r4, 0
+ bl sub_8166FD4
+ adds r0, r4, 0
+ bl sub_8166FB0
+ movs r0, 0x2
+ movs r1, 0x2
+ bl CopyWindowToVram
+ movs r0, 0x1
+_08166F44:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8166EDC
+
+ thumb_func_start sub_8166F50
+sub_8166F50: @ 8166F50
+ push {lr}
+ sub sp, 0xC
+ movs r0, 0x2
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ movs r0, 0x2
+ movs r1, 0x97
+ movs r2, 0xE
+ bl sub_8098858
+ ldr r2, =gUnknown_085EC800
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ movs r0, 0x2
+ bl PutWindowTilemap
+ movs r0, 0x2
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166F50
+
+ thumb_func_start sub_8166F94
+sub_8166F94: @ 8166F94
+ push {lr}
+ movs r0, 0x2
+ bl rbox_fill_rectangle
+ movs r0, 0x2
+ bl ClearWindowTilemap
+ movs r0, 0x2
+ movs r1, 0x3
+ bl CopyWindowToVram
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8166F94
+
+ thumb_func_start sub_8166FB0
+sub_8166FB0: @ 8166FB0
+ push {lr}
+ sub sp, 0xC
+ ldr r2, =gStringVar4
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166FB0
+
+ thumb_func_start sub_8166FD4
+sub_8166FD4: @ 8166FD4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r3, r1, 24
+ lsls r2, 16
+ lsrs r0, r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _08167010
+ cmp r2, 0
+ ble _08166FEC
+ movs r0, 0
+_08166FEC:
+ lsls r0, 16
+ ldr r1, =gUnknown_085DFD04
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r1, =gUnknown_085EC7E1
+ adds r0, r4, 0
+ bl StringAppend
+ b _08167018
+ .pool
+_08167010:
+ ldr r1, =gUnknown_085EC7EF
+ adds r0, r4, 0
+ bl StringCopy
+_08167018:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166FD4
+
+ thumb_func_start sub_8167024
+sub_8167024: @ 8167024
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ movs r4, 0
+ ldr r7, =gUnknown_085DFCB0
+_0816702E:
+ lsls r0, r4, 2
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl GetMonData
+ adds r1, r5, r4
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _0816702E
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8167024
+
+ thumb_func_start sub_8167054
+sub_8167054: @ 8167054
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ mov r8, r0
+ adds r5, r1, 0
+ adds r0, r5, 0
+ movs r1, 0x30
+ bl GetMonData
+ cmp r0, 0xFF
+ beq _081670F0
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_8167184
+ movs r4, 0
+ mov r7, sp
+_08167078:
+ ldr r1, =gUnknown_085DFCB0
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r6, [r0]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ strb r0, [r7]
+ ldr r1, =gUnknown_0203BC90
+ ldr r1, [r1]
+ lsls r2, r4, 1
+ adds r1, 0x66
+ adds r1, r2
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r0, 0
+ bge _081670A6
+ movs r1, 0
+_081670A6:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _081670B0
+ movs r1, 0xFF
+_081670B0:
+ strb r1, [r7]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ mov r2, sp
+ bl SetMonData
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _08167078
+ adds r0, r5, 0
+ movs r1, 0x30
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r8
+ ldrb r2, [r2, 0x6]
+ adds r1, r0, r2
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _081670E2
+ movs r1, 0xFF
+_081670E2:
+ mov r0, sp
+ strb r1, [r0]
+ adds r0, r5, 0
+ movs r1, 0x30
+ mov r2, sp
+ bl SetMonData
+_081670F0:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8167054
+
+ thumb_func_start sub_8167104
+sub_8167104: @ 8167104
+ push {r4,r5,lr}
+ ldr r5, =gPlayerParty
+ ldr r0, =gUnknown_0203BCAC
+ ldr r1, [r0]
+ ldr r2, =0x00008041
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, =0x00007fb9
+ adds r1, r0
+ ldrb r1, [r1]
+ movs r0, 0x64
+ muls r0, r1
+ adds r5, r0, r5
+ ldr r4, =gUnknown_0203BC90
+ ldr r1, [r4]
+ adds r1, 0x57
+ adds r0, r5, 0
+ bl sub_8167024
+ ldr r0, [r4]
+ ldr r0, [r0, 0x8]
+ adds r1, r5, 0
+ bl sub_8167054
+ ldr r1, [r4]
+ adds r1, 0x5C
+ adds r0, r5, 0
+ bl sub_8167024
+ movs r3, 0
+_08167144:
+ ldr r0, [r4]
+ adds r2, r0, 0
+ adds r2, 0x61
+ adds r2, r3
+ adds r1, r0, 0
+ adds r1, 0x5C
+ adds r1, r3
+ adds r0, 0x57
+ adds r0, r3
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ subs r1, r0
+ strb r1, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x4
+ bls _08167144
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8167104
+
+ thumb_func_start sub_8167184
+sub_8167184: @ 8167184
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r1
+ ldr r1, =gUnknown_0203BC90
+ ldr r3, [r1]
+ ldrb r1, [r0, 0x1]
+ adds r2, r3, 0
+ adds r2, 0x66
+ strh r1, [r2]
+ ldrb r2, [r0, 0x5]
+ adds r1, r3, 0
+ adds r1, 0x68
+ strh r2, [r1]
+ ldrb r1, [r0, 0x4]
+ adds r2, r3, 0
+ adds r2, 0x6A
+ strh r1, [r2]
+ ldrb r2, [r0, 0x3]
+ adds r1, r3, 0
+ adds r1, 0x6C
+ strh r2, [r1]
+ ldrb r1, [r0, 0x2]
+ adds r0, r3, 0
+ adds r0, 0x6E
+ strh r1, [r0]
+ ldr r0, =gUnknown_0203BC9E
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ ble _081671D4
+ movs r0, 0x1
+ b _081671DA
+ .pool
+_081671D4:
+ cmp r0, 0
+ bge _08167250
+ movs r0, 0xFF
+_081671DA:
+ movs r2, 0
+ lsls r0, 24
+ mov r9, r0
+ ldr r0, =gUnknown_0203BC90
+ mov r8, r0
+_081671E4:
+ mov r0, r8
+ ldr r1, [r0]
+ lsls r0, r2, 24
+ asrs r6, r0, 24
+ lsls r7, r6, 1
+ adds r1, 0x66
+ adds r1, r7
+ movs r2, 0
+ ldrsh r4, [r1, r2]
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __divsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _0816721C
+ lsls r0, r5, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r5, r0, 24
+_0816721C:
+ ldr r0, =gUnknown_085DFCC4
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ mov r0, r10
+ bl sub_806E858
+ lsls r0, 24
+ asrs r2, r0, 24
+ cmp r0, r9
+ bne _08167244
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x66
+ adds r0, r7
+ lsls r1, r5, 24
+ asrs r1, 24
+ muls r1, r2
+ ldrh r2, [r0]
+ adds r1, r2
+ strh r1, [r0]
+_08167244:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ ble _081671E4
+_08167250:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8167184
+
+ thumb_func_start sub_8167268
+sub_8167268: @ 8167268
+ push {lr}
+ ldr r0, =gUnknown_0203BCAC
+ ldr r1, [r0]
+ ldr r2, =0x00008041
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r1, r0
+ subs r2, 0x89
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ movs r2, 0x30
+ movs r3, 0
+ bl sub_81D2C68
+ cmp r0, 0xFF
+ beq _0816729C
+ movs r0, 0
+ b _0816729E
+ .pool
+_0816729C:
+ movs r0, 0x1
+_0816729E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8167268
+
+ thumb_func_start sub_81672A4
+sub_81672A4: @ 81672A4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+_081672AC:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _081672D2
+ cmp r5, 0
+ bne _081672CC
+ adds r0, r4, 0
+ b _081672DE
+ .pool
+_081672CC:
+ subs r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_081672D2:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _081672AC
+ movs r0, 0
+_081672DE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81672A4
+
+ thumb_func_start sub_81672E4
+sub_81672E4: @ 81672E4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ movs r6, 0
+ cmp r6, r5
+ bcs _08167314
+_081672F2:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _0816730A
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0816730A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _081672F2
+_08167314:
+ subs r0, r5, r6
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81672E4
+
+ thumb_func_start sub_8167324
+sub_8167324: @ 8167324
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_81672A4
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8167324
+
+ thumb_func_start sub_8167338
+sub_8167338: @ 8167338
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, =gUnknown_085DFD18
+ bl LoadSpriteSheet
+ ldr r0, =gUnknown_085DFD20
+ bl LoadSpritePalette
+ ldr r2, =gUnknown_0203BC90
+ ldr r0, [r2]
+ adds r0, 0x54
+ movs r1, 0
+ strb r1, [r0]
+ movs r4, 0
+ adds r5, r2, 0
+ ldr r6, =gUnknown_085DFD28
+ adds r0, r6, 0x2
+ mov r8, r0
+ ldr r7, =gSprites + 0x1C
+_08167360:
+ ldr r0, [r5]
+ adds r0, 0x61
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081673AC
+ lsls r2, r4, 2
+ adds r0, r2, r6
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ add r2, r8
+ movs r0, 0
+ ldrsh r2, [r2, r0]
+ ldr r0, =gUnknown_085DFD5C
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _081673AC
+ ldr r0, [r5]
+ adds r0, 0x61
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081673A2
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, =sub_81673DC
+ str r1, [r0]
+_081673A2:
+ ldr r1, [r5]
+ adds r1, 0x54
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_081673AC:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _08167360
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8167338
+
+ thumb_func_start sub_81673DC
+sub_81673DC: @ 81673DC
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x5
+ bgt _081673EE
+ ldrh r0, [r1, 0x26]
+ subs r0, 0x2
+ b _081673F6
+_081673EE:
+ cmp r0, 0xB
+ bgt _081673F8
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x2
+_081673F6:
+ strh r0, [r1, 0x26]
+_081673F8:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _08167418
+ adds r0, r1, 0
+ bl DestroySprite
+ ldr r0, =gUnknown_0203BC90
+ ldr r1, [r0]
+ adds r1, 0x54
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_08167418:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81673DC
+
+ thumb_func_start sub_8167420
+sub_8167420: @ 8167420
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r5, 0
+ ldr r6, =gUnknown_0203BCAC
+ b _08167472
+ .pool
+_08167430:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ adds r3, r0, 0
+ cmp r3, 0
+ bne _0816746C
+ ldr r1, [r6]
+ lsls r2, r5, 2
+ adds r1, r2
+ ldr r0, =0x00007fb8
+ adds r1, r0
+ movs r0, 0xE
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, r2
+ ldr r1, =0x00007fb9
+ adds r0, r1
+ strb r4, [r0]
+ ldr r0, [r6]
+ adds r0, r2
+ ldr r2, =0x00007fba
+ adds r0, r2
+ strh r3, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_0816746C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_08167472:
+ bl calc_player_party_count
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcc _08167430
+ ldr r2, =gUnknown_0203BCAC
+ ldr r0, [r2]
+ ldr r1, =0x00008041
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r1, r5, 0x1
+ ldr r2, =0x00008040
+ adds r0, r2
+ strb r1, [r0]
+ bl sub_81674BC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8167420
+
+ thumb_func_start sub_81674BC
+sub_81674BC: @ 81674BC
+ push {r4,r5,lr}
+ ldr r4, =gUnknown_0203BCAC
+ ldr r0, [r4]
+ ldr r5, =0x00008041
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_816753C
+ ldr r0, [r4]
+ ldr r1, =0x00007fb3
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r2, =0x00007fb4
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r1, =0x00007fb5
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r5, r0, r5
+ ldrb r3, [r5]
+ adds r1, r3, 0x1
+ adds r2, 0x8C
+ adds r0, r2
+ ldrb r2, [r0]
+ cmp r1, r2
+ blt _08167500
+ movs r1, 0
+_08167500:
+ subs r0, r3, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r0, 0
+ bge _08167510
+ subs r0, r2, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_08167510:
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl sub_816753C
+ lsls r0, r4, 16
+ asrs r0, 16
+ movs r1, 0x2
+ bl sub_816753C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81674BC
+
+ thumb_func_start sub_816753C
+sub_816753C: @ 816753C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ adds r5, r0, 0
+ adds r4, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_0203BCAC
+ mov r9, r0
+ ldr r1, [r0]
+ lsls r5, 16
+ asrs r0, r5, 14
+ adds r0, r1, r0
+ ldr r3, =0x00007fb8
+ adds r2, r0, r3
+ ldrb r7, [r2]
+ ldr r2, =0x00007fb9
+ adds r0, r2
+ ldrb r0, [r0]
+ mov r10, r0
+ adds r3, 0x88
+ adds r0, r1, r3
+ ldrb r6, [r0]
+ movs r0, 0
+ mov r8, r0
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ ldr r2, =0x00007b4d
+ adds r0, r2
+ adds r0, r1, r0
+ lsls r2, r4, 6
+ ldr r3, =0x00007b95
+ adds r2, r3
+ adds r1, r2
+ lsrs r5, 16
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ mov r2, r8
+ str r2, [sp, 0x8]
+ adds r2, r7, 0
+ mov r3, r10
+ bl sub_81D2ED4
+ mov r3, r9
+ ldr r1, [r3]
+ ldr r2, =0x00007c58
+ adds r0, r1, r2
+ ldr r3, =0x00007fb0
+ adds r1, r3
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r6, [sp, 0x8]
+ mov r2, r8
+ str r2, [sp, 0xC]
+ adds r2, r7, 0
+ mov r3, r10
+ bl sub_81D2F78
+ lsls r0, r4, 13
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ mov r3, r9
+ ldr r1, [r3]
+ adds r0, r1, r0
+ lsls r4, 7
+ adds r4, 0x4
+ adds r1, r4
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ mov r2, r8
+ str r2, [sp, 0x8]
+ adds r2, r7, 0
+ mov r3, r10
+ bl sub_81D3094
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_816753C
+
+ thumb_func_start sub_8167608
+sub_8167608: @ 8167608
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x28
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, =gUnknown_0203BCAC
+ ldr r3, [r1]
+ ldr r0, =0x00007b10
+ mov r8, r0
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ adds r7, r1, 0
+ cmp r0, 0xFF
+ bne _08167714
+ add r5, sp, 0x18
+ add r4, sp, 0x20
+ adds r0, r5, 0
+ mov r1, sp
+ adds r2, r4, 0
+ bl sub_81D31D0
+ lsls r0, r6, 13
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, [r7]
+ adds r0, r1, r0
+ str r0, [sp, 0x18]
+ lsls r0, r6, 7
+ adds r0, 0x4
+ adds r1, r0
+ str r1, [sp, 0x20]
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ ldr r1, [r7]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =0x00007b12
+ adds r1, r2
+ strh r0, [r1]
+ adds r0, r5, 0
+ bl LoadSpriteSheet
+ ldr r1, [r7]
+ ldr r3, =0x00007b14
+ adds r1, r3
+ strh r0, [r1]
+ mov r0, sp
+ movs r1, 0x26
+ movs r2, 0x68
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, [r7]
+ ldr r2, =0x00007b10
+ adds r0, r2
+ strb r1, [r0]
+ cmp r1, 0x40
+ bne _081676AC
+ movs r0, 0x64
+ bl FreeSpriteTilesByTag
+ movs r0, 0x64
+ bl FreeSpritePaletteByTag
+ ldr r0, [r7]
+ add r0, r8
+ movs r1, 0xFF
+ strb r1, [r0]
+ b _08167742
+ .pool
+_081676AC:
+ ldr r0, [r7]
+ add r0, r8
+ strb r1, [r0]
+ ldr r4, =gSprites
+ ldr r2, [r7]
+ mov r0, r8
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, =sub_8168168
+ str r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x22
+ strh r1, [r0, 0x26]
+ ldr r3, =0x00007b18
+ adds r1, r2, r3
+ subs r3, 0x4
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ lsls r0, 5
+ ldr r3, =0x06010000
+ adds r0, r3
+ str r0, [r1]
+ ldr r0, =0x00007b12
+ adds r2, r0
+ ldrh r0, [r2]
+ lsls r0, 4
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r2]
+ b _08167742
+ .pool
+_08167714:
+ lsls r1, r6, 13
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ adds r1, r3, r1
+ ldr r2, =0x00007b18
+ adds r0, r3, r2
+ ldr r2, [r0]
+ ldr r0, =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, =0x80000400
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ lsls r0, r6, 7
+ adds r0, 0x4
+ adds r0, r3, r0
+ ldr r2, =0x00007b12
+ adds r1, r3, r2
+ ldrh r1, [r1]
+ movs r2, 0x20
+ bl LoadPalette
+_08167742:
+ add sp, 0x28
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8167608
+
+ thumb_func_start sub_8167760
+sub_8167760: @ 8167760
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x60
+ add r5, sp, 0x20
+ add r4, sp, 0x38
+ mov r0, sp
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_81D321C
+ mov r0, sp
+ bl LoadSpriteSheets
+ adds r0, r4, 0
+ bl LoadSpritePalettes
+ movs r4, 0
+ ldr r1, =gUnknown_0203BCAC
+ ldr r0, [r1]
+ ldr r2, =0x00008040
+ adds r0, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r6, r5, 0
+ add r2, sp, 0x50
+ mov r9, r2
+ add r2, sp, 0x58
+ mov r10, r2
+ cmp r4, r0
+ bge _0816781C
+ adds r5, r1, 0
+ ldr r7, =gSprites
+ movs r0, 0x1C
+ adds r0, r7
+ mov r8, r0
+_081677AC:
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 18
+ movs r1, 0x80
+ lsls r1, 12
+ adds r2, r1
+ asrs r2, 16
+ adds r0, r6, 0
+ movs r1, 0xE2
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _081677FC
+ ldr r0, [r5]
+ ldr r2, =0x00007b06
+ adds r0, r2
+ adds r0, r4
+ strb r3, [r0]
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ adds r1, r0, r7
+ strh r4, [r1, 0x2E]
+ add r0, r8
+ ldr r1, =sub_8168180
+ str r1, [r0]
+ b _08167808
+ .pool
+_081677FC:
+ ldr r0, [r5]
+ ldr r1, =0x00007b06
+ adds r0, r1
+ adds r0, r4
+ movs r1, 0xFF
+ strb r1, [r0]
+_08167808:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, [r5]
+ ldr r2, =0x00008040
+ adds r0, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r4, r0
+ blt _081677AC
+_0816781C:
+ movs r0, 0x67
+ strh r0, [r6]
+ cmp r4, 0x5
+ bhi _0816788A
+ ldr r5, =gUnknown_0203BCAC
+ ldr r7, =gSprites
+_08167828:
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 18
+ movs r0, 0x80
+ lsls r0, 12
+ adds r2, r0
+ asrs r2, 16
+ adds r0, r6, 0
+ movs r1, 0xE6
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _08167874
+ ldr r0, [r5]
+ ldr r1, =0x00007b06
+ adds r0, r1
+ adds r0, r4
+ strb r3, [r0]
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r7
+ ldrb r2, [r1, 0x3]
+ movs r0, 0x3F
+ ands r0, r2
+ strb r0, [r1, 0x3]
+ b _08167880
+ .pool
+_08167874:
+ ldr r0, [r5]
+ ldr r2, =0x00007b06
+ adds r0, r2
+ adds r0, r4
+ movs r1, 0xFF
+ strb r1, [r0]
+_08167880:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x5
+ bls _08167828
+_0816788A:
+ movs r0, 0x66
+ strh r0, [r6]
+ ldr r0, =sub_81681B4
+ str r0, [r6, 0x14]
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 18
+ movs r0, 0x80
+ lsls r0, 12
+ adds r2, r0
+ asrs r2, 16
+ adds r0, r6, 0
+ movs r1, 0xDE
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _081678F4
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00007b06
+ adds r0, r1
+ adds r0, r4
+ strb r3, [r0]
+ ldr r0, =gSprites
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ adds r2, r0
+ ldrb r3, [r2, 0x1]
+ movs r1, 0x3F
+ adds r0, r1, 0
+ ands r0, r3
+ movs r3, 0x40
+ orrs r0, r3
+ strb r0, [r2, 0x1]
+ ldrb r0, [r2, 0x3]
+ ands r1, r0
+ movs r0, 0x80
+ orrs r1, r0
+ strb r1, [r2, 0x3]
+ b _08167902
+ .pool
+_081678F4:
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r2, =0x00007b06
+ adds r0, r2
+ adds r0, r4
+ movs r1, 0xFF
+ strb r1, [r0]
+_08167902:
+ mov r0, r9
+ mov r1, r10
+ bl sub_81D32B0
+ mov r0, r9
+ bl LoadSpriteSheet
+ mov r0, r10
+ bl LoadSpritePalette
+ add sp, 0x60
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8167760
+
+ thumb_func_start sub_8167930
+sub_8167930: @ 8167930
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r2, =0x00008048
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0xB
+ bls _08167944
+ b _08167B78
+_08167944:
+ lsls r0, 2
+ ldr r1, =_0816795C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0816795C:
+ .4byte _0816798C
+ .4byte _08167A04
+ .4byte _08167A38
+ .4byte _08167A48
+ .4byte _08167A5C
+ .4byte _08167A74
+ .4byte _08167A9C
+ .4byte _08167AB0
+ .4byte _08167AD4
+ .4byte _08167AEC
+ .4byte _08167B1C
+ .4byte _08167B38
+_0816798C:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r1, 0x88
+ lsls r1, 6
+ movs r0, 0x3
+ movs r2, 0
+ bl ChangeBgY
+ ldr r1, =0x00007040
+ movs r0, 0
+ bl SetGpuReg
+ movs r1, 0x91
+ lsls r1, 2
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r1, =0x0000040b
+ movs r0, 0x52
+ bl SetGpuReg
+ b _08167B7E
+ .pool
+_08167A04:
+ ldr r4, =gUnknown_0203BCA4
+ movs r0, 0xD0
+ lsls r0, 5
+ bl Alloc
+ str r0, [r4]
+ ldr r5, =gUnknown_0203BCA0
+ movs r4, 0xA0
+ lsls r4, 3
+ adds r0, r4, 0
+ bl Alloc
+ str r0, [r5]
+ ldr r5, =gUnknown_0203BCA8
+ adds r0, r4, 0
+ bl Alloc
+ str r0, [r5]
+ b _08167B7E
+ .pool
+_08167A38:
+ ldr r0, =gUnknown_085DFB60
+ ldr r1, =gUnknown_0203BCA8
+ b _08167AA0
+ .pool
+_08167A48:
+ ldr r1, =gUnknown_085DFA80
+ movs r0, 0x3
+ movs r2, 0xE0
+ movs r3, 0
+ bl LoadBgTiles
+ b _08167B7E
+ .pool
+_08167A5C:
+ ldr r0, =gUnknown_0203BCA8
+ ldr r1, [r0]
+ movs r2, 0xA0
+ lsls r2, 3
+ movs r0, 0x3
+ movs r3, 0
+ bl LoadBgTilemap
+ b _08167B7E
+ .pool
+_08167A74:
+ ldr r0, =gUnknown_085DFA60
+ movs r1, 0xD0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00007b0e
+ adds r0, r1
+ ldr r1, =0x0000ffb0
+ strh r1, [r0]
+ b _08167B7E
+ .pool
+_08167A9C:
+ ldr r0, =gUnknown_08DCCF7C
+ ldr r1, =gUnknown_0203BCA4
+_08167AA0:
+ ldr r1, [r1]
+ bl LZ77UnCompVram
+ b _08167B7E
+ .pool
+_08167AB0:
+ ldr r0, =gUnknown_08DCD81C
+ ldr r1, =gUnknown_0203BCA0
+ ldr r1, [r1]
+ bl LZ77UnCompVram
+ ldr r0, =gUnknown_08DCCF5C
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ b _08167B7E
+ .pool
+_08167AD4:
+ ldr r0, =gUnknown_0203BCA4
+ ldr r1, [r0]
+ movs r2, 0xD0
+ lsls r2, 5
+ movs r3, 0xA0
+ lsls r3, 2
+ movs r0, 0x1
+ bl LoadBgTiles
+ b _08167B7E
+ .pool
+_08167AEC:
+ ldr r0, =gUnknown_0203BCA0
+ ldr r1, [r0]
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ ldr r1, =gUnknown_08DCDA30
+ movs r0, 0xC
+ str r0, [sp]
+ movs r0, 0x4
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0xD
+ bl CopyToBgTilemapBufferRect
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ b _08167B7E
+ .pool
+_08167B1C:
+ ldr r0, =gUnknown_085DFC0C
+ ldr r1, =gUnknown_0203BCAC
+ ldr r1, [r1]
+ ldr r2, =0x00007304
+ adds r1, r2
+ bl LZ77UnCompVram
+ b _08167B7E
+ .pool
+_08167B38:
+ ldr r0, =gUnknown_0203BCAC
+ ldr r1, [r0]
+ ldr r0, =0x00007304
+ adds r1, r0
+ movs r2, 0xA0
+ lsls r2, 3
+ movs r0, 0x2
+ movs r3, 0
+ bl LoadBgTilemap
+ ldr r0, =gUnknown_086231E8
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, =gUnknown_08623208
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ movs r0, 0x2
+ bl sub_81D21DC
+ b _08167B7E
+ .pool
+_08167B78:
+ movs r0, 0
+ strb r0, [r1]
+ b _08167B8E
+_08167B7E:
+ ldr r0, =gUnknown_0203BCAC
+ ldr r1, [r0]
+ ldr r2, =0x00008048
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+_08167B8E:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8167930
+
+ thumb_func_start sub_8167BA0
+sub_8167BA0: @ 8167BA0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ movs r0, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x1
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r7, =gUnknown_0203BCAC
+ ldr r3, [r7]
+ ldr r1, =0x00008041
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ ldr r2, =0x00008040
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _08167C46
+ lsls r2, r4, 6
+ ldr r0, =0x00007b95
+ adds r2, r0
+ adds r2, r3, r2
+ movs r0, 0x1
+ str r0, [sp]
+ movs r5, 0
+ str r5, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ ldr r0, [r7]
+ ldr r1, =0x00008041
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_81672A4
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ bl GetNature
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, [r7]
+ ldr r6, =0x0000804a
+ adds r0, r6
+ ldr r1, =gUnknown_085EBF8D
+ bl StringCopy
+ ldr r1, =gNatureNamePointers
+ lsls r4, 2
+ adds r4, r1
+ ldr r1, [r4]
+ bl StringCopy
+ ldr r0, =gUnknown_085DFCC9
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ ldr r0, [r7]
+ adds r0, r6
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x2
+ movs r3, 0x1
+ bl box_print
+_08167C46:
+ mov r2, r8
+ cmp r2, 0
+ beq _08167C84
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ movs r0, 0x1
+ movs r1, 0x3
+ bl CopyWindowToVram
+ b _08167C94
+ .pool
+_08167C84:
+ movs r0, 0
+ movs r1, 0x2
+ bl CopyWindowToVram
+ movs r0, 0x1
+ movs r1, 0x2
+ bl CopyWindowToVram
+_08167C94:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8167BA0
+
+ thumb_func_start sub_8167CA0
+sub_8167CA0: @ 8167CA0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0
+ beq _08167CC0
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00007fb5
+ adds r0, r1
+ b _08167CC8
+ .pool
+_08167CC0:
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r2, =0x00007fb4
+ adds r0, r2
+_08167CC8:
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r5, =gUnknown_0203BCAC
+ ldr r2, [r5]
+ ldr r3, =0x00007c58
+ adds r0, r2, r3
+ ldr r4, =0x00007fb3
+ adds r1, r2, r4
+ movs r3, 0
+ ldrsb r3, [r1, r3]
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+ ldr r4, =0x00007c6c
+ adds r1, r4
+ adds r1, r2, r1
+ lsls r3, r6, 2
+ adds r3, r6
+ lsls r3, 2
+ adds r3, r4
+ adds r2, r3
+ bl sub_81D1F84
+ ldr r4, [r5]
+ ldr r1, =0x00008041
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ ldr r2, =0x00008040
+ mov r12, r2
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ mov r8, r0
+ cmp r7, 0
+ beq _08167D98
+ ldr r3, =0x00007fb4
+ adds r0, r4, r3
+ ldrb r1, [r0]
+ subs r2, 0x8B
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldr r0, [r5]
+ ldr r4, =0x00007fb3
+ adds r1, r0, r4
+ ldrb r1, [r1]
+ adds r0, r3
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r0, r4
+ strb r6, [r0]
+ ldr r0, [r5]
+ adds r2, r0, r2
+ ldrb r1, [r2]
+ ldr r2, =0x00007fb6
+ adds r0, r2
+ strb r1, [r0]
+ ldr r1, [r5]
+ adds r3, 0x8D
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08167D58
+ mov r4, r12
+ adds r0, r1, r4
+ ldrb r0, [r0]
+_08167D58:
+ subs r2, r0, 0x1
+ ldr r0, =0x00008041
+ adds r1, r0
+ strb r2, [r1]
+ ldr r1, =gUnknown_0203BCAC
+ ldr r3, [r1]
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ adds r6, r1, 0
+ cmp r0, 0
+ bne _08167D74
+ ldr r1, =0x00008040
+ adds r0, r3, r1
+ ldrb r0, [r0]
+_08167D74:
+ subs r1, r0, 0x1
+ b _08167E1E
+ .pool
+_08167D98:
+ ldr r3, =0x00007fb5
+ adds r0, r4, r3
+ ldrb r1, [r0]
+ ldr r2, =0x00007fb4
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldr r0, [r5]
+ ldr r4, =0x00007fb3
+ adds r1, r0, r4
+ ldrb r1, [r1]
+ adds r0, r3
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r0, r4
+ strb r6, [r0]
+ ldr r0, [r5]
+ adds r2, r0, r2
+ ldrb r1, [r2]
+ ldr r2, =0x00007fb6
+ adds r0, r2
+ strb r1, [r0]
+ ldr r2, [r5]
+ adds r3, 0x8C
+ adds r0, r2, r3
+ ldrb r1, [r0]
+ adds r4, 0x8D
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _08167DEC
+ adds r3, r1, 0x1
+ b _08167DEE
+ .pool
+_08167DEC:
+ movs r3, 0
+_08167DEE:
+ ldr r1, =0x00008041
+ adds r0, r2, r1
+ strb r3, [r0]
+ ldr r2, =gUnknown_0203BCAC
+ ldr r3, [r2]
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ ldr r4, =0x00008040
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r6, r2, 0
+ cmp r1, r0
+ bge _08167E1C
+ adds r1, 0x1
+ b _08167E1E
+ .pool
+_08167E1C:
+ movs r1, 0
+_08167E1E:
+ ldr r2, =0x00007b4c
+ adds r0, r3, r2
+ strb r1, [r0]
+ adds r5, r6, 0
+ ldr r0, [r5]
+ ldr r3, =0x00008041
+ adds r1, r0, r3
+ ldrb r2, [r1]
+ ldr r4, =0x00008040
+ adds r1, r0, r4
+ ldrb r1, [r1]
+ subs r1, 0x1
+ eors r2, r1
+ negs r1, r2
+ orrs r1, r2
+ lsrs r4, r1, 31
+ ldr r1, =0x00007b1c
+ adds r0, r1
+ bl sub_81D3520
+ mov r2, r8
+ cmp r2, 0
+ bne _08167E70
+ ldr r0, [r5]
+ ldr r3, =0x00008044
+ adds r0, r3
+ ldr r1, =sub_8167EA4
+ b _08167E90
+ .pool
+_08167E70:
+ cmp r4, 0
+ bne _08167E88
+ ldr r0, [r5]
+ ldr r4, =0x00008044
+ adds r0, r4
+ ldr r1, =sub_8167FA4
+ b _08167E90
+ .pool
+_08167E88:
+ ldr r0, [r6]
+ ldr r1, =0x00008044
+ adds r0, r1
+ ldr r1, =sub_8168048
+_08167E90:
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8167CA0
+
+ thumb_func_start sub_8167EA4
+sub_8167EA4: @ 8167EA4
+ push {r4-r6,lr}
+ ldr r4, =gUnknown_0203BCAC
+ ldr r1, [r4]
+ ldr r5, =0x00008048
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08167EE4
+ cmp r0, 0x1
+ bgt _08167EC8
+ cmp r0, 0
+ beq _08167ED2
+ b _08167F9C
+ .pool
+_08167EC8:
+ cmp r0, 0x2
+ beq _08167F08
+ cmp r0, 0x3
+ beq _08167F48
+ b _08167F9C
+_08167ED2:
+ ldr r2, =0x00007fb3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ bl sub_8167608
+ b _08167F2C
+ .pool
+_08167EE4:
+ ldr r6, =0x00007fb3
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_8167BA0
+ ldr r1, [r4]
+ ldr r0, =0x00008048
+ adds r1, r0
+ b _08167F30
+ .pool
+_08167F08:
+ ldr r2, =0x00007c58
+ adds r0, r1, r2
+ ldr r6, =0x00007b0e
+ adds r1, r6
+ bl sub_81D3178
+ lsls r0, 24
+ cmp r0, 0
+ bne _08167F9C
+ ldr r1, [r4]
+ ldr r2, =0x00007b4c
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ ldr r6, =0x00007fb6
+ adds r1, r6
+ ldrb r1, [r1]
+ bl sub_816753C
+_08167F2C:
+ ldr r1, [r4]
+ adds r1, r5
+_08167F30:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08167F9C
+ .pool
+_08167F48:
+ ldr r2, =0x00007b1c
+ adds r0, r1, r2
+ bl sub_81D3464
+ ldr r3, [r4]
+ ldr r6, =0x00008041
+ adds r0, r3, r6
+ ldrb r1, [r0]
+ ldr r2, =0x00008040
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _08167F82
+ subs r6, 0x8E
+ adds r0, r3, r6
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ subs r2, 0x90
+ adds r0, r3, r2
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r6, =0x00007b1c
+ adds r0, r3, r6
+ subs r6, 0xC
+ adds r1, r3, r6
+ ldrb r1, [r1]
+ bl sub_81D3480
+_08167F82:
+ ldr r0, [r4]
+ adds r0, r5
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0
+ b _08167F9E
+ .pool
+_08167F9C:
+ movs r0, 0x1
+_08167F9E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8167EA4
+
+ thumb_func_start sub_8167FA4
+sub_8167FA4: @ 8167FA4
+ push {r4,r5,lr}
+ ldr r4, =gUnknown_0203BCAC
+ ldr r1, [r4]
+ ldr r5, =0x00008048
+ adds r2, r1, r5
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ beq _08167FF0
+ cmp r0, 0x1
+ bgt _08167FC8
+ cmp r0, 0
+ beq _08167FD2
+ b _0816803E
+ .pool
+_08167FC8:
+ cmp r0, 0x2
+ beq _08168014
+ cmp r0, 0x3
+ beq _08168038
+ b _0816803E
+_08167FD2:
+ ldr r2, =0x00007c58
+ adds r0, r1, r2
+ ldr r2, =0x00007b0e
+ adds r1, r2
+ bl sub_81D31A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0816803E
+ b _08168024
+ .pool
+_08167FF0:
+ ldr r2, =0x00007fb3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_8167BA0
+ ldr r1, [r4]
+ ldr r0, =0x00008048
+ adds r1, r0
+ b _08168028
+ .pool
+_08168014:
+ ldr r2, =0x00007b4c
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ ldr r2, =0x00007fb6
+ adds r1, r2
+ ldrb r1, [r1]
+ bl sub_816753C
+_08168024:
+ ldr r1, [r4]
+ adds r1, r5
+_08168028:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0816803E
+ .pool
+_08168038:
+ movs r0, 0
+ strb r0, [r2]
+ b _08168040
+_0816803E:
+ movs r0, 0x1
+_08168040:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8167FA4
+
+ thumb_func_start sub_8168048
+sub_8168048: @ 8168048
+ push {r4-r6,lr}
+ ldr r4, =gUnknown_0203BCAC
+ ldr r1, [r4]
+ ldr r5, =0x00008048
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _081680A8
+ cmp r0, 0x1
+ bgt _0816806C
+ cmp r0, 0
+ beq _08168076
+ b _08168160
+ .pool
+_0816806C:
+ cmp r0, 0x2
+ beq _081680CC
+ cmp r0, 0x3
+ beq _0816810C
+ b _08168160
+_08168076:
+ ldr r2, =0x00007c58
+ adds r0, r1, r2
+ bl sub_81D2074
+ ldr r0, [r4]
+ ldr r6, =0x00007b0e
+ adds r0, r6
+ bl sub_81D3150
+ lsls r0, 24
+ cmp r0, 0
+ bne _08168160
+ ldr r0, [r4]
+ ldr r1, =0x00007fb3
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8167608
+ b _081680F0
+ .pool
+_081680A8:
+ ldr r2, =0x00007fb3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_8167BA0
+ ldr r1, [r4]
+ ldr r6, =0x00008048
+ adds r1, r6
+ b _081680F4
+ .pool
+_081680CC:
+ ldr r2, =0x00007c58
+ adds r0, r1, r2
+ ldr r6, =0x00007b0e
+ adds r1, r6
+ bl sub_81D3178
+ lsls r0, 24
+ cmp r0, 0
+ bne _08168160
+ ldr r1, [r4]
+ ldr r2, =0x00007b4c
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ ldr r6, =0x00007fb6
+ adds r1, r6
+ ldrb r1, [r1]
+ bl sub_816753C
+_081680F0:
+ ldr r1, [r4]
+ adds r1, r5
+_081680F4:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08168160
+ .pool
+_0816810C:
+ ldr r2, =0x00007b1c
+ adds r0, r1, r2
+ bl sub_81D3464
+ ldr r3, [r4]
+ ldr r6, =0x00008041
+ adds r0, r3, r6
+ ldrb r1, [r0]
+ ldr r2, =0x00008040
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _08168146
+ subs r6, 0x8E
+ adds r0, r3, r6
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ subs r2, 0x90
+ adds r0, r3, r2
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r6, =0x00007b1c
+ adds r0, r3, r6
+ subs r6, 0xC
+ adds r1, r3, r6
+ ldrb r1, [r1]
+ bl sub_81D3480
+_08168146:
+ ldr r0, [r4]
+ adds r0, r5
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0
+ b _08168162
+ .pool
+_08168160:
+ movs r0, 0x1
+_08168162:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8168048
+
+ thumb_func_start sub_8168168
+sub_8168168: @ 8168168
+ ldr r1, =gUnknown_0203BCAC
+ ldr r1, [r1]
+ ldr r2, =0x00007b0e
+ adds r1, r2
+ ldrh r1, [r1]
+ adds r1, 0x26
+ strh r1, [r0, 0x20]
+ bx lr
+ .pool
+ thumb_func_end sub_8168168
+
+ thumb_func_start sub_8168180
+sub_8168180: @ 8168180
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r3, =0x00008041
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _081681A8
+ adds r0, r2, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ b _081681B0
+ .pool
+_081681A8:
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_081681B0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8168180
+
+ thumb_func_start sub_81681B4
+sub_81681B4: @ 81681B4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r2, =0x00008041
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ subs r2, 0x1
+ adds r0, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _081681DC
+ movs r0, 0x65
+ b _081681DE
+ .pool
+_081681DC:
+ movs r0, 0x66
+_081681DE:
+ bl IndexOfSpritePaletteTag
+ lsls r0, 4
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81681B4
+
+ thumb_func_start sub_81681F4
+sub_81681F4: @ 81681F4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x30
+ bl GetMonData
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r3, =0x00007fb3
+ adds r1, r0, r3
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ subs r3, 0x3
+ adds r0, r3
+ adds r4, r0, r1
+ cmp r2, 0xFF
+ beq _0816823C
+ adds r0, r2, 0
+ movs r1, 0x1D
+ bl __udivsi3
+ b _0816823E
+ .pool
+_0816823C:
+ movs r0, 0x9
+_0816823E:
+ strb r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81681F4
+
+ thumb_func_start sub_8168248
+sub_8168248: @ 8168248
+ push {lr}
+ sub sp, 0x10
+ ldr r0, =gUnknown_085DFDB8
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ ldr r0, =gUnknown_08DCCBB8
+ str r0, [sp]
+ ldr r1, =0xffff0000
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 4
+ orrs r0, r1
+ ldr r1, =0x0000ffff
+ ands r0, r1
+ adds r1, 0x1
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadCompressedObjectPic
+ add r0, sp, 0x8
+ bl LoadSpritePalette
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8168248
+
+ thumb_func_start sub_8168294
+sub_8168294: @ 8168294
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00007b44
+ adds r7, r0, r1
+ ldr r0, =gUnknown_085DFDA0
+ mov r10, r0
+ movs r6, 0
+ movs r1, 0x40
+ mov r9, r1
+ movs r0, 0x60
+ negs r0, r0
+ mov r8, r0
+_081682B6:
+ mov r5, r9
+ muls r5, r6
+ mov r0, r8
+ adds r1, r0, r5
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x11
+ lsls r2, r0, 16
+ mov r0, r10
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _081682FE
+ ldr r0, =gSprites
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ adds r4, r0
+ movs r1, 0x8
+ strh r1, [r4, 0x2E]
+ movs r0, 0x20
+ orrs r5, r0
+ strh r5, [r4, 0x30]
+ strh r6, [r4, 0x32]
+ lsls r1, r6, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ lsls r0, r6, 2
+ adds r0, r7
+ str r4, [r0]
+_081682FE:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x1
+ bls _081682B6
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8168294
+
+ thumb_func_start sub_8168328
+sub_8168328: @ 8168328
+ push {r4,r5,lr}
+ ldr r4, =gUnknown_0203BCAC
+ ldr r0, [r4]
+ ldr r5, =0x00008048
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08168348
+ cmp r0, 0x1
+ beq _08168360
+ b _0816836C
+ .pool
+_08168348:
+ bl sub_8168248
+ ldr r1, [r4]
+ ldr r0, =0x00008048
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+ b _0816836E
+ .pool
+_08168360:
+ bl sub_8168294
+ ldr r0, [r4]
+ adds r0, r5
+ movs r1, 0
+ strb r1, [r0]
+_0816836C:
+ movs r0, 0
+_0816836E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8168328
+
+ thumb_func_start sub_8168374
+sub_8168374: @ 8168374
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x20]
+ ldrh r1, [r2, 0x2E]
+ adds r3, r0, r1
+ strh r3, [r2, 0x20]
+ lsls r0, 16
+ asrs r4, r0, 16
+ movs r0, 0x30
+ ldrsh r1, [r2, r0]
+ cmp r4, r1
+ bgt _08168398
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, r1
+ bge _081683A0
+ cmp r4, r1
+ blt _081683A8
+_08168398:
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, r1
+ bgt _081683A8
+_081683A0:
+ ldrh r0, [r2, 0x30]
+ strh r0, [r2, 0x20]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_081683A8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8168374
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_81700F8.s b/asm/rom_81700F8.s
index 4c35e747c..45c505cd9 100644
--- a/asm/rom_81700F8.s
+++ b/asm/rom_81700F8.s
@@ -29,7 +29,7 @@ sub_81700F8: @ 81700F8
bl sub_815355C
lsls r0, 16
lsrs r0, 16
- bl InitSaveBlockPointersWithRandomOffset
+ bl SetSaveBlocksPointers
bl sub_808447C
bl ResetSaveCounters
movs r0, 0
diff --git a/asm/rom_817C95C.s b/asm/rom_817C95C.s
index 528c7655a..a1cbcb164 100644
--- a/asm/rom_817C95C.s
+++ b/asm/rom_817C95C.s
@@ -50,7 +50,7 @@ _0817C988:
lsls r0, 24
lsrs r0, 24
mov r9, r0
- ldr r0, =gUnknown_0203ABA8
+ ldr r0, =gStringInfo
ldr r0, [r0]
ldrb r0, [r0, 0x7]
bl GetBankSide
@@ -107,7 +107,7 @@ _0817CA4C:
str r1, [sp, 0xC]
ldr r0, =gBankAttacker
ldrb r0, [r0]
- ldr r1, =gUnknown_0203ABA8
+ ldr r1, =gStringInfo
ldr r1, [r1]
ldrh r1, [r1]
bl sub_817F33C
@@ -1766,7 +1766,7 @@ _0817DACC:
bne _0817DAF0
b _0817E0A6
_0817DAF0:
- ldr r0, =gUnknown_0203ABA8
+ ldr r0, =gStringInfo
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, 0xAD
@@ -4411,7 +4411,7 @@ _0817EFC2:
lsls r0, 24
cmp r0, 0
beq _0817F0B4
- ldr r4, =gUnknown_0202428E
+ ldr r4, =gSideAffecting
mov r1, r9
ldrb r0, [r1]
bl GetBankIdentity
@@ -4443,7 +4443,7 @@ _0817EFC2:
mov r6, r9
ldrb r4, [r6]
str r4, [sp, 0xC]
- bl sub_806957C
+ bl CalculateBaseDamage
adds r3, r0, 0
ldr r4, =gBattleMoveDamage
str r3, [r4]
@@ -4493,7 +4493,7 @@ _0817F08C:
ldrb r1, [r6]
mov r3, r9
ldrb r2, [r3]
- bl move_effectiveness_something
+ bl TypeCalc
lsls r0, 24
lsrs r1, r0, 24
ldr r0, =gBattleMoveDamage
diff --git a/asm/rom_818CFC8.s b/asm/rom_818CFC8.s
index fdf71043e..13e89f2ba 100644
--- a/asm/rom_818CFC8.s
+++ b/asm/rom_818CFC8.s
@@ -3283,7 +3283,7 @@ _0818EA3E:
negs r3, r3
movs r0, 0
bl saved_warp2_set
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
strh r6, [r0]
pop {r4-r7}
pop {r0}
@@ -5026,7 +5026,7 @@ sub_818F9E0: @ 818F9E0
ldr r1, [r1]
bl StringCopy
ldr r0, =gStringVar2
- ldr r1, =gUnknown_02038BCA
+ ldr r1, =gTrainerBattleOpponent_A
ldrh r1, [r1]
bl sub_8195898
pop {r0}
@@ -5056,7 +5056,7 @@ sub_818FA20: @ 818FA20
adds r1, r0
str r1, [r5]
bl calc_player_party_count
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r0, [r0]
bl sub_8195358
lsls r0, 16
@@ -6135,7 +6135,7 @@ _08190292:
sub_8190298: @ 8190298
push {lr}
bl sub_81902AC
- ldr r1, =gUnknown_02038BCA
+ ldr r1, =gTrainerBattleOpponent_A
strh r0, [r1]
pop {r0}
bx r0
@@ -6168,7 +6168,7 @@ sub_81902AC: @ 81902AC
thumb_func_start sub_81902E4
sub_81902E4: @ 81902E4
push {lr}
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r0, [r0]
movs r1, 0
bl sub_8162614
@@ -12958,7 +12958,7 @@ sub_8193D7C: @ 8193D7C
ldrh r0, [r7]
cmp r0, 0x1
bne _08193E10
- ldr r5, =gUnknown_02038BCA
+ ldr r5, =gTrainerBattleOpponent_A
ldrh r0, [r5]
bl sub_8195358
ldr r4, =gSaveBlock2Ptr
@@ -12998,7 +12998,7 @@ sub_8193D7C: @ 8193D7C
lsls r3, 4
adds r1, r2, r3
adds r1, r0
- ldr r0, =gUnknown_03005D10
+ ldr r0, =gBattleResults
ldrh r0, [r0, 0x22]
strh r0, [r1]
add r2, r8
@@ -13050,7 +13050,7 @@ _08193E10:
lsls r3, 4
adds r1, r3
adds r1, r0
- ldr r0, =gUnknown_03005D10
+ ldr r0, =gBattleResults
ldrh r0, [r0, 0x24]
strh r0, [r1]
ldr r0, =gBattleOutcome
@@ -14893,7 +14893,7 @@ sub_8194EB4: @ 8194EB4
thumb_func_start sub_8194EC0
sub_8194EC0: @ 8194EC0
push {r4,lr}
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r0, [r0]
bl sub_8195358
adds r4, r0, 0
@@ -16287,7 +16287,7 @@ _081959F2:
negs r3, r3
movs r0, 0
bl saved_warp2_set
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
strh r6, [r0]
pop {r4-r7}
pop {r0}
@@ -16510,7 +16510,7 @@ _08195C16:
thumb_func_start sub_8195C20
sub_8195C20: @ 8195C20
push {r4,lr}
- ldr r4, =gUnknown_02038BCA
+ ldr r4, =gTrainerBattleOpponent_A
bl Random
lsls r0, 16
lsrs r0, 16
@@ -16534,7 +16534,7 @@ sub_8195C20: @ 8195C20
thumb_func_start sub_8195C50
sub_8195C50: @ 8195C50
push {lr}
- ldr r3, =gUnknown_02038BCA
+ ldr r3, =gTrainerBattleOpponent_A
ldrh r1, [r3]
ldr r0, =0x0000012b
cmp r1, r0
@@ -20282,13 +20282,13 @@ _081979F6:
.pool
thumb_func_end sub_81979C4
- thumb_func_start get_start_menu_window_id_maybe
-get_start_menu_window_id_maybe: @ 8197A08
+ thumb_func_start GetStartMenuWindowId
+GetStartMenuWindowId: @ 8197A08
ldr r0, =gUnknown_0203CD8C
ldrb r0, [r0]
bx lr
.pool
- thumb_func_end get_start_menu_window_id_maybe
+ thumb_func_end GetStartMenuWindowId
thumb_func_start remove_start_menu_window_maybe
remove_start_menu_window_maybe: @ 8197A14
@@ -21634,7 +21634,7 @@ RedrawMenuCursor: @ 8198448
movs r4, 0
str r4, [sp, 0x4]
str r4, [sp, 0x8]
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r3,r4}
mov r8, r3
@@ -22022,7 +22022,7 @@ _08198774:
adds r0, r6, 0
mov r1, r10
mov r3, r9
- bl Print
+ bl PrintTextOnWindow
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
@@ -22744,7 +22744,7 @@ _08198CF8:
str r0, [sp, 0x8]
mov r0, r10
ldr r1, [sp, 0xC]
- bl Print
+ bl PrintTextOnWindow
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
@@ -23253,7 +23253,7 @@ sub_8199060: @ 8199060
str r3, [sp, 0x4]
str r3, [sp, 0x8]
adds r3, r4, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r3-r5}
mov r8, r3
@@ -23882,7 +23882,7 @@ _081995AA:
mov r0, r8
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x80
lsls r0, 21
adds r6, r0
@@ -24175,7 +24175,7 @@ _081997EC:
str r0, [sp, 0x8]
mov r0, r10
movs r1, 0x1
- bl Print
+ bl PrintTextOnWindow
ldr r1, [sp, 0xC]
lsls r0, r1, 24
adds r5, r0
@@ -25303,7 +25303,7 @@ _0819A04C:
adds r0, r7, 0
movs r1, 0x1
adds r2, r6, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r4-r7}
pop {r0}
@@ -28036,7 +28036,7 @@ _0819B77E:
adds r0, r5, 0
movs r1, 0x2E
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
mov r2, r8
ldr r1, [r2]
adds r1, r4
@@ -28046,7 +28046,7 @@ _0819B77E:
adds r0, r5, 0
movs r1, 0x28
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
mov r2, r8
ldr r1, [r2]
adds r1, r4
@@ -28273,7 +28273,7 @@ sub_819B9B4: @ 819B9B4
str r0, [sp, 0x8]
movs r1, 0x1
movs r3, 0x2
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -28371,7 +28371,7 @@ _0819BA9C:
movs r0, 0x2
movs r1, 0x1
movs r3, 0x2
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x2
movs r1, 0x2
bl CopyWindowToVram
@@ -28397,7 +28397,7 @@ sub_819BAC8: @ 819BAC8
movs r0, 0x2
movs r1, 0x1
movs r3, 0x2
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x2
movs r1, 0x2
bl CopyWindowToVram
@@ -28684,7 +28684,7 @@ sub_819BCF8: @ 819BCF8
movs r0, 0x5
movs r1, 0x1
add r2, sp, 0xC
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x5
movs r1, 0x2
bl CopyWindowToVram
@@ -30058,7 +30058,7 @@ sub_819C810: @ 819C810
add r0, r9
movs r1, 0x2E
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
mov r1, r8
ldr r2, [r1]
ldr r1, [r5]
@@ -34147,7 +34147,7 @@ sub_819EB18: @ 819EB18
str r0, [sp, 0x8]
movs r1, 0x1
movs r3, 0x2
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -34246,7 +34246,7 @@ sub_819EBEC: @ 819EBEC
movs r1, 0x1
adds r2, r4, 0
movs r3, 0x2
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x2
movs r1, 0x2
bl CopyWindowToVram
@@ -34714,7 +34714,7 @@ _0819EFF2:
movs r0, 0x8
movs r1, 0x1
add r2, sp, 0xC
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x8
movs r1, 0x2
bl CopyWindowToVram
@@ -37534,7 +37534,7 @@ _081A06B8:
adds r0, r5, 0
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
@@ -40160,7 +40160,7 @@ sub_81A1C4C: @ 81A1C4C
str r1, [sp, 0x8]
movs r1, 0x1
adds r2, r4, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r4,r5}
pop {r0}
@@ -40199,7 +40199,7 @@ _081A1C9E:
movs r1, 0x1
adds r2, r4, 0
movs r3, 0x4
- bl Print
+ bl PrintTextOnWindow
add sp, 0x34
pop {r4}
pop {r0}
@@ -40241,7 +40241,7 @@ sub_81A1CD8: @ 81A1CD8
movs r1, 0x1
adds r2, r5, 0
adds r3, r4, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, =0x0000270f
cmp r6, r0
bls _081A1D24
@@ -40266,7 +40266,7 @@ _081A1D24:
movs r1, 0x1
adds r2, r4, 0
ldr r3, [sp, 0xC]
- bl Print
+ bl PrintTextOnWindow
add sp, 0x10
pop {r3-r5}
mov r8, r3
@@ -40500,7 +40500,7 @@ _081A1F28:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x10
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r6]
ldr r2, =gUnknown_085EE2F9
movs r1, 0x61
@@ -40510,7 +40510,7 @@ _081A1F28:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x10
- bl Print
+ bl PrintTextOnWindow
movs r0, 0xA
bl sub_81A1C90
mov r0, r8
@@ -40613,7 +40613,7 @@ sub_81A2008: @ 81A2008
str r1, [sp, 0x8]
movs r1, 0x1
mov r2, r12
- bl Print
+ bl PrintTextOnWindow
ldr r0, =gStringVar1
adds r1, r4, 0
movs r2, 0x1
@@ -40633,7 +40633,7 @@ sub_81A2008: @ 81A2008
movs r1, 0x1
adds r2, r4, 0
adds r3, r6, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r3-r5}
mov r8, r3
@@ -40771,7 +40771,7 @@ _081A2184:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldr r1, =gUnknown_0203AB74
ldrb r0, [r1]
ldr r2, =gUnknown_085EE2F9
@@ -40781,7 +40781,7 @@ _081A2184:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
movs r0, 0xA
bl sub_81A1C90
str r6, [sp]
@@ -40907,7 +40907,7 @@ sub_81A22B8: @ 81A22B8
movs r1, 0x1
adds r2, r5, 0
adds r3, r4, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, =0x0000270f
cmp r6, r0
bls _081A2304
@@ -40932,7 +40932,7 @@ _081A2304:
movs r1, 0x1
adds r2, r4, 0
ldr r3, [sp, 0xC]
- bl Print
+ bl PrintTextOnWindow
add sp, 0x10
pop {r3-r5}
mov r8, r3
@@ -41125,7 +41125,7 @@ _081A24B0:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x10
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r6]
ldr r2, =gUnknown_085EE2F9
movs r1, 0x61
@@ -41135,7 +41135,7 @@ _081A24B0:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x10
- bl Print
+ bl PrintTextOnWindow
movs r0, 0xA
bl sub_81A1C90
mov r0, r8
@@ -41235,7 +41235,7 @@ sub_81A258C: @ 81A258C
str r1, [sp, 0x8]
movs r1, 0x1
mov r2, r12
- bl Print
+ bl PrintTextOnWindow
ldr r0, =gStringVar1
adds r1, r4, 0
movs r2, 0x1
@@ -41255,7 +41255,7 @@ sub_81A258C: @ 81A258C
movs r1, 0x1
adds r2, r4, 0
adds r3, r6, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r3-r5}
mov r8, r3
@@ -41363,7 +41363,7 @@ sub_81A2698: @ 81A2698
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r6]
ldr r2, =gUnknown_085EE2F9
movs r1, 0x61
@@ -41372,7 +41372,7 @@ sub_81A2698: @ 81A2698
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
movs r0, 0xA
bl sub_81A1C90
movs r0, 0
@@ -41488,7 +41488,7 @@ sub_81A27E8: @ 81A27E8
movs r1, 0x1
adds r2, r5, 0
adds r3, r4, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, =0x0000270f
cmp r6, r0
bls _081A2834
@@ -41513,7 +41513,7 @@ _081A2834:
movs r1, 0x1
adds r2, r4, 0
ldr r3, [sp, 0xC]
- bl Print
+ bl PrintTextOnWindow
add sp, 0x10
pop {r3-r5}
mov r8, r3
@@ -41668,7 +41668,7 @@ sub_81A2968: @ 81A2968
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x10
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r5]
ldr r2, =gUnknown_085EE2F9
movs r1, 0x61
@@ -41677,7 +41677,7 @@ sub_81A2968: @ 81A2968
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x10
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
movs r1, 0x48
movs r2, 0x7E
@@ -41750,7 +41750,7 @@ sub_81A2A28: @ 81A2A28
str r1, [sp, 0x8]
movs r1, 0x1
mov r2, r12
- bl Print
+ bl PrintTextOnWindow
ldr r0, =0x0000270f
cmp r7, r0
bls _081A2A80
@@ -41776,7 +41776,7 @@ _081A2A80:
movs r1, 0x1
adds r2, r4, 0
ldr r3, [sp, 0x10]
- bl Print
+ bl PrintTextOnWindow
adds r0, r5, 0
ldr r1, [sp, 0xC]
movs r2, 0x1
@@ -41795,7 +41795,7 @@ _081A2A80:
movs r1, 0x1
adds r2, r4, 0
ldr r3, [sp, 0x14]
- bl Print
+ bl PrintTextOnWindow
add sp, 0x18
pop {r3-r5}
mov r8, r3
@@ -42051,7 +42051,7 @@ _081A2CE0:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
mov r1, r8
ldrb r0, [r1]
ldr r2, =gUnknown_085EE326
@@ -42060,7 +42060,7 @@ _081A2CE0:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x98
- bl Print
+ bl PrintTextOnWindow
mov r1, r8
ldrb r0, [r1]
ldr r2, =gUnknown_085EE2F9
@@ -42070,7 +42070,7 @@ _081A2CE0:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
movs r0, 0xA
bl sub_81A1C90
movs r4, 0x9E
@@ -42156,7 +42156,7 @@ sub_81A2DB4: @ 81A2DB4
movs r1, 0x1
adds r2, r5, 0
adds r3, r4, 0
- bl Print
+ bl PrintTextOnWindow
ldr r0, =0x0000270f
cmp r6, r0
bls _081A2E00
@@ -42181,7 +42181,7 @@ _081A2E00:
movs r1, 0x1
adds r2, r4, 0
ldr r3, [sp, 0xC]
- bl Print
+ bl PrintTextOnWindow
add sp, 0x10
pop {r3-r5}
mov r8, r3
@@ -42336,7 +42336,7 @@ sub_81A2F38: @ 81A2F38
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r5]
ldr r2, =gUnknown_085EE2F9
movs r1, 0x61
@@ -42345,7 +42345,7 @@ sub_81A2F38: @ 81A2F38
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
movs r0, 0xA
bl sub_81A1C90
movs r0, 0
@@ -42416,7 +42416,7 @@ sub_81A2FF8: @ 81A2FF8
movs r5, 0
str r5, [sp, 0x8]
mov r2, r9
- bl Print
+ bl PrintTextOnWindow
ldr r7, =gUnknown_085EDFA0
movs r0, 0x1
adds r1, r7, 0
@@ -42434,7 +42434,7 @@ sub_81A2FF8: @ 81A2FF8
str r5, [sp, 0x8]
movs r1, 0x1
adds r2, r7, 0
- bl Print
+ bl PrintTextOnWindow
ldr r7, =gUnknown_085EDFA4
movs r0, 0x1
adds r1, r7, 0
@@ -42451,7 +42451,7 @@ sub_81A2FF8: @ 81A2FF8
str r5, [sp, 0x8]
movs r1, 0x1
adds r2, r7, 0
- bl Print
+ bl PrintTextOnWindow
ldr r7, =gUnknown_085EDFA8
movs r0, 0x1
adds r1, r7, 0
@@ -42468,7 +42468,7 @@ sub_81A2FF8: @ 81A2FF8
str r5, [sp, 0x8]
movs r1, 0x1
adds r2, r7, 0
- bl Print
+ bl PrintTextOnWindow
ldr r7, =gUnknown_085EDFAC
movs r0, 0x1
adds r1, r7, 0
@@ -42485,7 +42485,7 @@ sub_81A2FF8: @ 81A2FF8
str r5, [sp, 0x8]
movs r1, 0x1
adds r2, r7, 0
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r4]
ldr r2, =gUnknown_085EB0E8
movs r1, 0x29
@@ -42494,7 +42494,7 @@ sub_81A2FF8: @ 81A2FF8
str r5, [sp, 0x8]
movs r1, 0x1
movs r3, 0x6
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r4]
ldr r2, =gUnknown_085EB0ED
movs r1, 0x39
@@ -42503,7 +42503,7 @@ sub_81A2FF8: @ 81A2FF8
str r5, [sp, 0x8]
movs r1, 0x1
movs r3, 0x6
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r4]
ldr r2, =gUnknown_085EB0F4
movs r1, 0x49
@@ -42512,7 +42512,7 @@ sub_81A2FF8: @ 81A2FF8
str r5, [sp, 0x8]
movs r1, 0x1
movs r3, 0x6
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r4]
ldr r2, =gUnknown_085EB0F9
movs r1, 0x59
@@ -42521,7 +42521,7 @@ sub_81A2FF8: @ 81A2FF8
str r5, [sp, 0x8]
movs r1, 0x1
movs r3, 0x6
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r4]
ldr r2, =gUnknown_085EB0FF
movs r1, 0x69
@@ -42530,7 +42530,7 @@ sub_81A2FF8: @ 81A2FF8
str r5, [sp, 0x8]
movs r1, 0x1
movs r3, 0x6
- bl Print
+ bl PrintTextOnWindow
movs r1, 0
_081A314A:
movs r5, 0
@@ -42568,7 +42568,7 @@ _081A315C:
str r1, [sp, 0x8]
movs r1, 0x1
mov r2, r9
- bl Print
+ bl PrintTextOnWindow
adds r4, 0x2
adds r5, 0x1
cmp r5, 0x3
@@ -43617,7 +43617,7 @@ _081A3AD8:
thumb_func_start sub_81A3B00
sub_81A3B00: @ 81A3B00
push {lr}
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
ldr r0, =0x000003fe
cmp r1, r0
@@ -43789,7 +43789,7 @@ _081A3C84:
adds r1, r0
adds r7, r1, r2
ldrb r5, [r7]
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
mov r9, r0
ldrh r0, [r0]
ldr r1, =0x000003fe
@@ -44664,14 +44664,14 @@ sub_81A443C: @ 81A443C
.pool
_081A4450:
ldr r0, =gStringVar1
- ldr r1, =gUnknown_02038BCA
+ ldr r1, =gTrainerBattleOpponent_A
ldrh r1, [r1]
bl sub_8162E20
b _081A446E
.pool
_081A4464:
ldr r0, =gStringVar2
- ldr r1, =gUnknown_02038BCA
+ ldr r1, =gTrainerBattleOpponent_A
ldrh r1, [r1]
bl sub_8162E20
_081A446E:
@@ -44855,7 +44855,7 @@ sub_81A4594: @ 81A4594
adds r0, r5, 0
movs r1, 0x1
adds r2, r4, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0xFF
strb r0, [r6, 0xD]
ldrh r0, [r6, 0x4]
@@ -44878,7 +44878,7 @@ sub_81A4594: @ 81A4594
str r1, [sp, 0x8]
movs r1, 0x1
add r2, sp, 0xC
- bl Print
+ bl PrintTextOnWindow
ldrh r1, [r6, 0x4]
ldr r0, =0x0000270f
cmp r1, r0
@@ -44914,7 +44914,7 @@ _081A4618:
str r1, [sp, 0x8]
movs r1, 0x1
adds r2, r5, 0
- bl Print
+ bl PrintTextOnWindow
_081A465C:
add sp, 0x2C
pop {r3-r5}
@@ -44965,7 +44965,7 @@ sub_81A4684: @ 81A4684
str r3, [sp, 0x8]
movs r1, 0x1
mov r3, r12
- bl Print
+ bl PrintTextOnWindow
ldrh r0, [r5, 0x8]
cmp r0, 0
beq _081A47BC
@@ -44996,7 +44996,7 @@ sub_81A4684: @ 81A4684
str r1, [sp, 0x8]
movs r1, 0x1
add r2, sp, 0xC
- bl Print
+ bl PrintTextOnWindow
adds r4, r5, 0
adds r4, 0x12
adds r0, r4, 0
@@ -45037,7 +45037,7 @@ _081A473C:
str r7, [sp, 0x8]
movs r1, 0x1
add r2, sp, 0xC
- bl Print
+ bl PrintTextOnWindow
ldrh r1, [r5, 0x8]
ldr r0, =0x0000270f
cmp r1, r0
@@ -45073,7 +45073,7 @@ _081A4778:
str r7, [sp, 0x8]
movs r1, 0x1
adds r2, r5, 0
- bl Print
+ bl PrintTextOnWindow
_081A47BC:
add sp, 0x2C
pop {r3-r5}
@@ -45348,7 +45348,7 @@ sub_81A4998: @ 81A4998
str r5, [sp, 0x8]
adds r2, r6, 0
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldr r1, =gUnknown_08611D00
ldr r2, [sp, 0x90]
lsls r0, r2, 2
@@ -45370,7 +45370,7 @@ sub_81A4998: @ 81A4998
str r5, [sp, 0x8]
movs r1, 0x1
adds r2, r4, 0
- bl Print
+ bl PrintTextOnWindow
cmp r7, 0x9
bne _081A4A6C
ldr r2, =gSaveBlock2Ptr
@@ -45959,7 +45959,7 @@ _081A4E96:
ldr r0, =0x0000ef2a
str r0, [sp, 0xC]
mov r0, r10
- bl create_pokemon_set_level
+ bl CreateMon
ldr r0, =gUnknown_0861156C
adds r5, r0
adds r5, r6, r5
@@ -46041,7 +46041,7 @@ _081A4F9C:
add r2, sp, 0x10
bl SetMonData
adds r0, r4, 0
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
ldr r2, [sp, 0x2C]
str r2, [sp, 0x18]
_081A4FC4:
@@ -46098,7 +46098,7 @@ sub_81A4FF0: @ 81A4FF0
sub_81A5030: @ 81A5030
push {lr}
lsls r0, 24
- ldr r2, =gUnknown_02038BCA
+ ldr r2, =gTrainerBattleOpponent_A
ldr r3, =0x000003fe
adds r1, r3, 0
strh r1, [r2]
@@ -47142,7 +47142,7 @@ _081A5930:
negs r3, r3
movs r0, 0
bl saved_warp2_set
- ldr r1, =gUnknown_02038BCA
+ ldr r1, =gTrainerBattleOpponent_A
movs r0, 0
strh r0, [r1]
pop {r4-r6}
@@ -47436,7 +47436,7 @@ _081A5BD6:
sub_81A5BE0: @ 81A5BE0
push {lr}
ldr r0, =gStringVar1
- ldr r1, =gUnknown_02038BCA
+ ldr r1, =gTrainerBattleOpponent_A
ldrh r1, [r1]
bl sub_8162E20
pop {r0}
@@ -47855,7 +47855,7 @@ _081A5F40:
negs r3, r3
movs r0, 0
bl saved_warp2_set
- ldr r1, =gUnknown_02038BCA
+ ldr r1, =gTrainerBattleOpponent_A
movs r0, 0
strh r0, [r1]
pop {r4-r7}
@@ -48185,7 +48185,7 @@ _081A6244:
ldrh r0, [r0]
cmp r7, r0
bne _081A61FA
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
strh r3, [r0]
ldr r2, [r6]
adds r1, r2, r1
@@ -48353,7 +48353,7 @@ _081A636E:
thumb_func_start sub_81A63B8
sub_81A63B8: @ 81A63B8
push {lr}
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r0, [r0]
movs r1, 0
bl sub_8162614
@@ -48412,7 +48412,7 @@ _081A6408:
adds r0, r5, 0
movs r1, 0x28
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
mov r2, r8
ldr r1, [r2]
adds r1, r4
@@ -48432,7 +48432,7 @@ _081A6408:
adds r0, r5, 0
movs r1, 0x2E
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
mov r2, r8
ldr r1, [r2]
adds r1, r4
@@ -48556,7 +48556,7 @@ _081A6534:
str r2, [sp, 0xC]
ldr r2, [sp, 0x14]
adds r3, r6, 0
- bl create_pokemon_set_level
+ bl CreateMon
movs r1, 0
mov r2, r9
ldr r0, [r2]
@@ -48616,7 +48616,7 @@ _081A65E2:
muls r4, r2
ldr r5, =gPlayerParty
adds r0, r4, r5
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
movs r0, 0
ldr r1, [sp, 0x1C]
strb r0, [r1]
@@ -48722,7 +48722,7 @@ _081A6682:
str r2, [sp, 0xC]
ldr r2, [sp, 0x14]
adds r3, r6, 0
- bl create_pokemon_set_level
+ bl CreateMon
movs r1, 0
mov r2, r9
ldr r0, [r2]
@@ -48785,7 +48785,7 @@ _081A6734:
muls r4, r2
ldr r5, =gEnemyParty
adds r0, r4, r5
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
movs r6, 0
_081A674E:
mov r1, r9
@@ -49829,8 +49829,8 @@ _081A6FA8:
.pool
thumb_func_end sub_81A6F70
- thumb_func_start sub_81A6FB4
-sub_81A6FB4: @ 81A6FB4
+ thumb_func_start GetAiScriptsInBattleFactory
+GetAiScriptsInBattleFactory: @ 81A6FB4
push {r4,r5,lr}
ldr r5, =gSaveBlock2Ptr
ldr r0, [r5]
@@ -49856,7 +49856,7 @@ sub_81A6FB4: @ 81A6FB4
bl __udivsi3
lsls r0, 16
lsrs r2, r0, 16
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r1, [r0]
ldr r0, =0x000003fe
cmp r1, r0
@@ -49879,7 +49879,7 @@ _081A701E:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_81A6FB4
+ thumb_func_end GetAiScriptsInBattleFactory
thumb_func_start sub_81A7024
sub_81A7024: @ 81A7024
@@ -51451,7 +51451,7 @@ _081A7CBA:
cmp r4, 0x3
ble _081A7CBA
ldr r0, =gEnemyParty
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
movs r0, 0x1
_081A7CE2:
add sp, 0x8
@@ -52256,7 +52256,7 @@ _081A831A:
subs r0, 0x1
cmp r3, r0
bne _081A82D2
- ldr r5, =gUnknown_02038BCA
+ ldr r5, =gTrainerBattleOpponent_A
strh r4, [r5]
ldr r1, =gUnknown_0203BC88
ldr r0, =gBattleFrontierTrainers
@@ -52344,7 +52344,7 @@ _081A83EE:
subs r0, 0x1
cmp r3, r0
bne _081A83A0
- ldr r5, =gUnknown_02038BCA
+ ldr r5, =gTrainerBattleOpponent_A
strh r4, [r5]
ldrh r0, [r5]
movs r1, 0
@@ -52405,7 +52405,7 @@ _081A8466:
ldrh r0, [r0]
cmp r3, r0
bne _081A8426
- ldr r5, =gUnknown_02038BCC
+ ldr r5, =gTrainerBattleOpponent_B
strh r4, [r5]
ldrh r0, [r5]
movs r1, 0x1
@@ -52465,7 +52465,7 @@ sub_81A84EC: @ 81A84EC
ldrh r0, [r0]
cmp r0, 0
bne _081A8524
- ldr r3, =gUnknown_02038BCA
+ ldr r3, =gTrainerBattleOpponent_A
ldrh r1, [r3]
ldr r0, =0x0000012b
cmp r1, r0
@@ -52482,7 +52482,7 @@ sub_81A84EC: @ 81A84EC
_081A8524:
cmp r0, 0x1
bne _081A8542
- ldr r3, =gUnknown_02038BCC
+ ldr r3, =gTrainerBattleOpponent_B
ldrh r1, [r3]
ldr r0, =0x0000012b
cmp r1, r0
@@ -52896,7 +52896,7 @@ sub_81A8830: @ 81A8830
adds r0, r1
strh r4, [r0]
_081A887C:
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
strh r4, [r0]
ldr r1, =gBattleOutcome
movs r0, 0
@@ -53742,7 +53742,7 @@ _081A8EFC:
bl sub_81AAA7C
_081A8F14:
bl sub_81C4EEC
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
movs r1, 0
strh r1, [r0]
ldr r0, =gBattleOutcome
@@ -55146,7 +55146,7 @@ GetBattlePyramidTrainerFlag: @ 81A9AC4
thumb_func_start sub_81A9B04
sub_81A9B04: @ 81A9B04
push {lr}
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r0, [r0]
bl sub_81A9B44
ldr r0, =gBattleTypeFlags
@@ -55160,7 +55160,7 @@ sub_81A9B04: @ 81A9B04
bl sub_80B47E0
ldr r1, =gUnknown_03005DF0
strb r0, [r1]
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
ldrh r0, [r0]
bl sub_81A9B44
_081A9B2E:
@@ -55488,7 +55488,7 @@ _081A9DF6:
ble _081A9DF6
_081A9E0C:
ldr r0, =gEnemyParty
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
add sp, 0x14
pop {r4-r6}
pop {r0}
@@ -55683,7 +55683,7 @@ _081A9F7A:
sub_81A9F80: @ 81A9F80
push {lr}
ldr r0, =gUnknown_08252C88
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
pop {r0}
bx r0
.pool
@@ -59192,7 +59192,7 @@ _081ABC6C:
adds r0, r5, 0
movs r1, 0x1
adds r2, r4, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r4,r5}
pop {r0}
@@ -59232,7 +59232,7 @@ _081ABCD4:
movs r1, 0x1
adds r2, r6, 0
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
str r5, [sp]
adds r0, r4, 0
movs r1, 0x26
@@ -61915,7 +61915,7 @@ UseRegisteredKeyItemOnField: @ 81AD520
lsrs r7, r0, 24
cmp r7, 0
bne _081AD54C
- bl in_multi_battle_room_with_var_condition
+ bl InMultiBattleRoom
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -61971,7 +61971,7 @@ _081AD5C4:
strh r7, [r0]
_081AD5CA:
ldr r0, =gUnknown_082736B3
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
_081AD5D0:
movs r0, 0x1
_081AD5D2:
@@ -73208,7 +73208,7 @@ _081B3104:
movs r1, 0x1
adds r2, r4, 0
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
_081B313C:
@@ -73591,7 +73591,7 @@ sub_81B3414: @ 81B3414
adds r0, 0xF
adds r1, 0x17
movs r2, 0
- bl append_byte
+ bl AppendToList
movs r7, 0
ldr r0, =gUnknown_08615D7E
ldrh r0, [r0]
@@ -73627,7 +73627,7 @@ _081B345A:
adds r2, 0x13
lsls r2, 24
lsrs r2, 24
- bl append_byte
+ bl AppendToList
b _081B34A0
.pool
_081B3490:
@@ -73661,7 +73661,7 @@ _081B34A0:
adds r0, 0xF
adds r1, 0x17
movs r2, 0x1
- bl append_byte
+ bl AppendToList
_081B34D2:
movs r0, 0x64
mov r1, r10
@@ -73682,7 +73682,7 @@ _081B34D2:
adds r0, 0xF
adds r1, 0x17
movs r2, 0x6
- bl append_byte
+ bl AppendToList
b _081B3518
.pool
_081B3508:
@@ -73692,7 +73692,7 @@ _081B3508:
adds r0, 0xF
adds r1, 0x17
movs r2, 0x3
- bl append_byte
+ bl AppendToList
_081B3518:
ldr r0, =gUnknown_0203CEC4
ldr r1, [r0]
@@ -73700,7 +73700,7 @@ _081B3518:
adds r0, 0xF
adds r1, 0x17
movs r2, 0x2
- bl append_byte
+ bl AppendToList
add sp, 0x4
pop {r3-r5}
mov r8, r3
@@ -73745,7 +73745,7 @@ _081B3560:
.4byte _081B35FE
.4byte _081B35FA
_081B3594:
- bl in_multi_battle_room_with_var_condition
+ bl InMultiBattleRoom
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -77469,7 +77469,7 @@ _081B5714:
movs r0, 0x5
bl PlaySE
_081B571A:
- ldr r0, =gUnknown_03005DB0
+ ldr r0, =gFieldCallback
movs r1, 0
str r1, [r0]
ldr r0, =gUnknown_0203CEEC
@@ -77615,7 +77615,7 @@ sub_81B5820: @ 81B5820
lsrs r0, 24
cmp r0, 0x1
bne _081B585C
- ldr r1, =gUnknown_03005DB0
+ ldr r1, =gFieldCallback
ldr r0, =hm_add_c3_launch_phase_2
str r0, [r1]
ldr r1, =gUnknown_0203CEEC
@@ -77733,7 +77733,7 @@ hm_prepare_waterfall: @ 81B58F0
lsrs r0, 24
cmp r0, 0x1
bne _081B594C
- ldr r1, =gUnknown_03005DB0
+ ldr r1, =gFieldCallback
ldr r0, =hm_add_c3_launch_phase_2
str r0, [r1]
ldr r1, =gUnknown_0203CEEC
@@ -77780,7 +77780,7 @@ sub_81B5974: @ 81B5974
b _081B599E
.pool
_081B5990:
- ldr r1, =gUnknown_03005DB0
+ ldr r1, =gFieldCallback
ldr r0, =hm_add_c3_launch_phase_2
str r0, [r1]
ldr r1, =gUnknown_0203CEEC
@@ -79778,7 +79778,7 @@ _081B6A40:
adds r0, r6, 0
mov r1, r10
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
cmp r4, 0
beq _081B6A82
adds r0, r7, 0x1
@@ -80216,7 +80216,7 @@ sub_81B6DC4: @ 81B6DC4
beq _081B6E78
ldrh r1, [r7, 0xE]
adds r0, r5, 0
- bl pokemon_moveset_pad_
+ bl GiveMoveToBoxMon_
lsls r0, 16
ldr r1, =0xffff0000
cmp r0, r1
@@ -82059,7 +82059,7 @@ sub_81B7E4C: @ 81B7E4C
beq _081B7EF8
ldrh r1, [r7, 0xE]
adds r0, r5, 0
- bl pokemon_moveset_pad_
+ bl GiveMoveToBoxMon_
lsls r0, 16
ldr r1, =0xffff0000
cmp r0, r1
@@ -84546,7 +84546,7 @@ sub_81B9354: @ 81B9354
sub sp, 0xC
lsls r0, 24
lsrs r0, 24
- ldr r2, =gUnknown_03005DB0
+ ldr r2, =gFieldCallback
ldr r1, =hm_add_c3_without_phase_2
str r1, [r2]
movs r1, 0
@@ -84578,7 +84578,7 @@ sub_81B9390: @ 81B9390
movs r0, 0xFF
strh r0, [r4]
_081B93A6:
- ldr r0, =gUnknown_03005DB0
+ ldr r0, =gFieldCallback
ldr r1, =hm_add_c3_without_phase_2
str r1, [r0]
ldr r0, =c2_exit_to_overworld_2_switch
@@ -84687,7 +84687,7 @@ _081B9486:
ldr r1, =gSpecialVar_0x8004
ldrb r0, [r2]
strh r0, [r1]
- ldr r1, =gUnknown_03005DB0
+ ldr r1, =gFieldCallback
ldr r0, =hm_add_c3_without_phase_2
str r0, [r1]
ldr r0, =c2_exit_to_overworld_2_switch
@@ -84823,7 +84823,7 @@ _081B95A4:
lsrs r0, 24
strh r0, [r4]
_081B95BA:
- ldr r0, =gUnknown_03005DB0
+ ldr r0, =gFieldCallback
ldr r1, =hm_add_c3_without_phase_2
str r1, [r0]
ldr r0, =c2_exit_to_overworld_2_switch
@@ -85360,7 +85360,7 @@ sub_81B9A44: @ 81B9A44
thumb_func_start sub_81B9A60
sub_81B9A60: @ 81B9A60
push {r4,lr}
- ldr r4, =gUnknown_02038BCA
+ ldr r4, =gTrainerBattleOpponent_A
bl Random
lsls r0, 16
lsrs r0, 16
@@ -85384,7 +85384,7 @@ sub_81B9A60: @ 81B9A60
thumb_func_start sub_81B9A90
sub_81B9A90: @ 81B9A90
push {lr}
- ldr r3, =gUnknown_02038BCA
+ ldr r3, =gTrainerBattleOpponent_A
ldrh r1, [r3]
ldr r0, =0x0000012b
cmp r1, r0
@@ -85652,7 +85652,7 @@ _081B9CE6:
sub_81B9CF0: @ 81B9CF0
push {lr}
ldr r0, =gStringVar1
- ldr r1, =gUnknown_02038BCA
+ ldr r1, =gTrainerBattleOpponent_A
ldrh r1, [r1]
bl sub_8162E20
pop {r0}
@@ -86114,7 +86114,7 @@ _081BA0AA:
ldrh r0, [r0]
cmp r5, r0
bne _081BA066
- ldr r2, =gUnknown_02038BCA
+ ldr r2, =gTrainerBattleOpponent_A
strh r3, [r2]
ldrh r3, [r2]
ldr r4, =gUnknown_0203BC88
diff --git a/asm/rom_81BE66C.s b/asm/rom_81BE66C.s
index 297252c7e..a444df913 100644
--- a/asm/rom_81BE66C.s
+++ b/asm/rom_81BE66C.s
@@ -5475,26 +5475,26 @@ sub_81C15EC: @ 81C15EC
adds r1, 0xD
adds r0, r7, 0
mov r2, sp
- bl SetMonData_encrypted
+ bl SetBoxMonData
adds r1, r6, 0
adds r1, 0xD
adds r0, r7, 0
ldr r2, [sp, 0x1C]
- bl SetMonData_encrypted
+ bl SetBoxMonData
adds r4, 0x11
adds r0, r7, 0
adds r1, r4, 0
ldr r2, [sp, 0x20]
- bl SetMonData_encrypted
+ bl SetBoxMonData
adds r6, 0x11
adds r0, r7, 0
adds r1, r6, 0
ldr r2, [sp, 0x24]
- bl SetMonData_encrypted
+ bl SetBoxMonData
adds r0, r7, 0
movs r1, 0x15
adds r2, r5, 0
- bl SetMonData_encrypted
+ bl SetBoxMonData
mov r0, sp
ldrh r0, [r0]
ldr r1, [sp, 0x8]
@@ -12059,7 +12059,7 @@ sub_81C4F44: @ 81C4F44
cmp r0, 0
bne _081C4F6E
bl overworld_free_bg_tilemaps
- ldr r0, =gUnknown_03005DB0
+ ldr r0, =gFieldCallback
ldr r1, =hm_add_c3_without_phase_2
str r1, [r0]
ldr r1, =c2_exit_to_overworld_2_switch
@@ -14443,7 +14443,7 @@ sub_81C6404: @ 81C6404
movs r0, 0x3
movs r1, 0x1
adds r2, r4, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r4}
pop {r0}
@@ -14481,7 +14481,7 @@ sub_81C645C: @ 81C645C
movs r0, 0x3
movs r1, 0x1
adds r2, r4, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r4}
pop {r0}
@@ -18385,7 +18385,7 @@ _081C8434:
str r6, [sp, 0x8]
adds r2, r7, 0
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
@@ -19595,7 +19595,7 @@ sub_81C8D4C: @ 81C8D4C
str r2, [sp, 0x8]
adds r2, r5, 0
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
adds r0, r4, 0
movs r1, 0
bl sub_81C8C64
@@ -19723,7 +19723,7 @@ sub_81C8E54: @ 81C8E54
movs r1, 0x7
adds r2, r5, 0
movs r3, 0x2
- bl Print
+ bl PrintTextOnWindow
ldrh r0, [r7, 0x8]
ldrb r1, [r7, 0x4]
str r1, [sp]
@@ -25899,7 +25899,7 @@ sub_81CBE88: @ 81CBE88
movs r1, 0x7
adds r2, r3, 0
movs r3, 0x2
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r0}
bx r0
@@ -25934,7 +25934,7 @@ sub_81CBEB4: @ 81CBEB4
adds r0, r5, 0
movs r1, 0x7
adds r2, r6, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r4-r6}
pop {r0}
@@ -25982,7 +25982,7 @@ _081CBF24:
movs r1, 0x7
add r2, sp, 0xC
adds r3, r4, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0x2C
pop {r4,r5}
pop {r0}
@@ -26016,7 +26016,7 @@ _081CBF76:
str r1, [sp, 0x8]
movs r1, 0x7
movs r3, 0x10
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x80
lsls r0, 21
adds r6, r0
@@ -26201,7 +26201,7 @@ sub_81CC0E0: @ 81CC0E0
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0x20
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r0}
bx r0
@@ -26235,7 +26235,7 @@ sub_81CC11C: @ 81CC11C
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r0}
bx r0
@@ -26278,7 +26278,7 @@ sub_81CC158: @ 81CC158
adds r0, r2, 0
adds r2, r5, 0
movs r3, 0x20
- bl Print
+ bl PrintTextOnWindow
add sp, 0xC
pop {r4,r5}
pop {r0}
@@ -27520,7 +27520,7 @@ _081CCB44:
str r1, [sp, 0x8]
movs r1, 0x7
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldrh r1, [r5]
ldrb r2, [r5, 0x3]
adds r0, r4, 0
@@ -27552,7 +27552,7 @@ _081CCB8E:
str r1, [sp, 0x8]
movs r1, 0x7
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldr r1, =0x00001041
movs r0, 0xC
str r0, [sp]
@@ -27582,7 +27582,7 @@ _081CCBDC:
str r1, [sp, 0x8]
movs r1, 0x7
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldrh r1, [r5]
ldrb r2, [r5, 0x3]
adds r0, r4, 0
@@ -27861,7 +27861,7 @@ _081CCE08:
movs r1, 0x7
adds r2, r6, 0
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x80
lsls r0, 21
adds r4, r0
@@ -28952,7 +28952,7 @@ _081CD6E0:
lsls r0, 24
lsrs r6, r0, 24
adds r0, r4, 0
- bl sub_80690C0
+ bl GetLevelFromBoxMonExp
lsls r0, 24
lsrs r0, 24
mov r8, r0
@@ -30977,7 +30977,7 @@ _081CE7DA:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
b _081CE924
_081CE800:
bl sub_81CDD5C
@@ -31002,7 +31002,7 @@ _081CE80C:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
add r1, sp, 0xC
movs r0, 0xFC
strb r0, [r1]
@@ -31028,7 +31028,7 @@ _081CE80C:
movs r1, 0x1
add r2, sp, 0xC
movs r3, 0x4
- bl Print
+ bl PrintTextOnWindow
bl sub_81CDD48
adds r1, r0, 0
lsls r1, 16
@@ -31044,7 +31044,7 @@ _081CE80C:
movs r1, 0x1
add r2, sp, 0xC
movs r3, 0x1C
- bl Print
+ bl PrintTextOnWindow
b _081CE924
.pool
_081CE89C:
@@ -33024,7 +33024,7 @@ sub_81CF7F4: @ 81CF7F4
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x4
- bl Print
+ bl PrintTextOnWindow
adds r0, r4, 0
adds r1, r7, 0
movs r2, 0x1
@@ -33040,7 +33040,7 @@ sub_81CF7F4: @ 81CF7F4
movs r1, 0x1
adds r2, r4, 0
movs r3, 0x22
- bl Print
+ bl PrintTextOnWindow
mov r1, r8
ldrb r0, [r1, 0x8]
movs r1, 0x2
@@ -33134,13 +33134,13 @@ _081CF924:
lsls r0, 24
lsrs r5, r0, 24
adds r0, r4, 0
- bl sub_80690C0
+ bl GetLevelFromBoxMonExp
lsls r0, 24
lsrs r7, r0, 24
ldr r2, =gStringVar3
adds r0, r4, 0
movs r1, 0x2
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
_081CF94A:
ldr r4, =gStringVar3
adds r0, r4, 0
@@ -34423,7 +34423,7 @@ sub_81D02B0: @ 81D02B0
adds r0, r4, 0
movs r1, 0x1
add r2, sp, 0xC
- bl Print
+ bl PrintTextOnWindow
add sp, 0x1C
pop {r4,r5}
pop {r0}
@@ -34511,14 +34511,14 @@ _081D03A4:
lsls r0, 24
lsrs r5, r0, 24
adds r0, r4, 0
- bl sub_80690C0
+ bl GetLevelFromBoxMonExp
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r2, =gStringVar3
adds r0, r4, 0
movs r1, 0x2
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
_081D03CC:
ldr r4, =gStringVar3
adds r0, r4, 0
@@ -34997,12 +34997,12 @@ _081D0730:
bl pokemon_roll_gender
strb r0, [r6]
adds r0, r4, 0
- bl sub_80690C0
+ bl GetLevelFromBoxMonExp
strb r0, [r7]
adds r0, r4, 0
movs r1, 0x2
adds r2, r5, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
_081D0752:
adds r0, r5, 0
bl StringGetEnd10
@@ -35052,15 +35052,15 @@ _081D07AC:
bl get_pokemon_by_box_and_pos
adds r4, r0, 0
movs r1, 0xB
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
strh r0, [r5]
adds r0, r4, 0
movs r1, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
str r0, [r6]
adds r0, r4, 0
movs r1, 0x1
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
_081D07D0:
str r0, [r7]
pop {r4-r7}
@@ -36086,7 +36086,7 @@ sub_81D0FF0: @ 81D0FF0
movs r1, 0x1
adds r2, r4, 0
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r6]
cmp r0, 0
beq _081D1040
@@ -36131,7 +36131,7 @@ _081D104A:
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x3C
- bl Print
+ bl PrintTextOnWindow
adds r0, r4, 0
movs r1, 0x2
bl CopyWindowToVram
@@ -36205,7 +36205,7 @@ sub_81D10D0: @ 81D10D0
str r1, [sp, 0x8]
movs r1, 0x1
adds r2, r5, 0
- bl Print
+ bl PrintTextOnWindow
mov r1, r8
ldrb r0, [r1, 0xC]
movs r1, 0x2
@@ -39489,7 +39489,7 @@ sub_81D28FC: @ 81D28FC
movs r0, 0
movs r1, 0x1
adds r2, r5, 0
- bl Print
+ bl PrintTextOnWindow
ldr r5, =gUnknown_085EFA52
movs r1, 0x29
mov r10, r1
@@ -39501,7 +39501,7 @@ sub_81D28FC: @ 81D28FC
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x4
- bl Print
+ bl PrintTextOnWindow
ldr r5, =gUnknown_085EFA56
movs r0, 0x1
adds r1, r5, 0
@@ -39518,7 +39518,7 @@ sub_81D28FC: @ 81D28FC
movs r0, 0
movs r1, 0x1
adds r2, r5, 0
- bl Print
+ bl PrintTextOnWindow
ldr r5, =gUnknown_085EFA5D
movs r0, 0x1
adds r1, r5, 0
@@ -39535,7 +39535,7 @@ sub_81D28FC: @ 81D28FC
movs r0, 0
movs r1, 0x1
adds r2, r5, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x2
negs r0, r0
cmp r9, r0
@@ -39566,7 +39566,7 @@ _081D29C4:
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x4
- bl Print
+ bl PrintTextOnWindow
ldr r1, =gUnknown_085EFA52
movs r0, 0x1
movs r2, 0
@@ -39587,7 +39587,7 @@ _081D29C4:
movs r0, 0
movs r1, 0x1
add r2, sp, 0xC
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r6, 0x1]
cmp r0, 0x1
bhi _081D2A3C
@@ -39611,7 +39611,7 @@ _081D2A4A:
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x6A
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r6, 0x3]
cmp r0, 0
bne _081D2A70
@@ -39636,7 +39636,7 @@ _081D2A7E:
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x6A
- bl Print
+ bl PrintTextOnWindow
ldr r1, =gMoveDescriptionPointers
mov r0, r9
subs r0, 0x1
@@ -39651,7 +39651,7 @@ _081D2A7E:
movs r1, 0x7
adds r2, r5, 0
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
_081D2AB6:
add sp, 0x2C
pop {r3-r5}
@@ -39690,7 +39690,7 @@ sub_81D2ACC: @ 81D2ACC
str r6, [sp, 0x8]
movs r1, 0x1
adds r2, r5, 0
- bl Print
+ bl PrintTextOnWindow
ldr r5, =gUnknown_085EFA67
movs r0, 0x1
adds r1, r5, 0
@@ -39706,7 +39706,7 @@ sub_81D2ACC: @ 81D2ACC
movs r0, 0x1
movs r1, 0x1
adds r2, r5, 0
- bl Print
+ bl PrintTextOnWindow
ldr r5, =gUnknown_085EFA6E
movs r0, 0x1
adds r1, r5, 0
@@ -39721,7 +39721,7 @@ sub_81D2ACC: @ 81D2ACC
movs r0, 0x1
movs r1, 0x1
adds r2, r5, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x2
negs r0, r0
cmp r4, r0
@@ -39749,7 +39749,7 @@ _081D2B6C:
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x4
- bl Print
+ bl PrintTextOnWindow
ldr r1, =gContestEffectDescriptionPointers
ldrb r0, [r4]
lsls r0, 2
@@ -39763,7 +39763,7 @@ _081D2B6C:
movs r1, 0x7
adds r2, r5, 0
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x1
movs r1, 0x2
bl CopyWindowToVram
@@ -39996,7 +39996,7 @@ _081D2D70:
lsls r0, 24
lsrs r6, r0, 24
adds r0, r4, 0
- bl sub_80690C0
+ bl GetLevelFromBoxMonExp
lsls r0, 24
lsrs r0, 24
mov r8, r0
@@ -46461,7 +46461,7 @@ sub_81D61E8: @ 81D61E8
lsls r0, 25
lsrs r4, r0, 24
movs r3, 0
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
mov r8, r0
ldr r6, =gSaveBlock2Ptr
ldr r1, =gBitTable
@@ -46505,7 +46505,7 @@ _081D624A:
cmp r0, 0
beq _081D62A2
movs r3, 0
- ldr r5, =gUnknown_02038BCC
+ ldr r5, =gTrainerBattleOpponent_B
ldr r0, =gBitTable
mov r8, r0
_081D6260:
@@ -46656,7 +46656,7 @@ _081D636A:
sub_81D6384: @ 81D6384
push {lr}
bl ZeroEnemyPartyMons
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r0, [r0]
movs r1, 0
bl sub_81D62CC
@@ -46669,11 +46669,11 @@ sub_81D6384: @ 81D6384
sub_81D639C: @ 81D639C
push {lr}
bl ZeroEnemyPartyMons
- ldr r0, =gUnknown_02038BCA
+ ldr r0, =gTrainerBattleOpponent_A
ldrh r0, [r0]
movs r1, 0
bl sub_81D62CC
- ldr r0, =gUnknown_02038BCC
+ ldr r0, =gTrainerBattleOpponent_B
ldrh r0, [r0]
movs r1, 0x3
bl sub_81D62CC
@@ -46777,7 +46777,7 @@ sub_81D642C: @ 81D642C
mov r2, sp
bl SetMonData
adds r0, r4, 0
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
add sp, 0x8
pop {r4,r5}
pop {r0}
diff --git a/asm/roulette.s b/asm/roulette.s
index 5332c4a46..c39b82ab0 100644
--- a/asm/roulette.s
+++ b/asm/roulette.s
@@ -519,7 +519,7 @@ _081406E0:
str r5, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r4]
movs r1, 0x3
bl CopyWindowToVram
@@ -751,7 +751,7 @@ sub_8140914: @ 8140914
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r5]
movs r1, 0x3
bl CopyWindowToVram
@@ -2655,7 +2655,7 @@ _08141902:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r4]
movs r1, 0x3
bl CopyWindowToVram
@@ -2678,7 +2678,7 @@ _08141928:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r4]
movs r1, 0x3
bl CopyWindowToVram
@@ -2816,7 +2816,7 @@ sub_8141A18: @ 8141A18
movs r1, 0x1
mov r2, r8
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r5]
movs r1, 0x3
bl CopyWindowToVram
@@ -3012,7 +3012,7 @@ _08141BB0:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r4]
movs r1, 0x3
bl CopyWindowToVram
@@ -3039,7 +3039,7 @@ _08141C58:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r4]
movs r1, 0x3
bl CopyWindowToVram
@@ -3071,7 +3071,7 @@ _08141CBC:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r4]
movs r1, 0x3
bl CopyWindowToVram
@@ -3158,7 +3158,7 @@ _08141D44:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r4]
movs r1, 0x3
bl CopyWindowToVram
@@ -4676,7 +4676,7 @@ sub_81429F0: @ 81429F0
movs r1, 0x1
adds r2, r4, 0
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -4753,7 +4753,7 @@ sub_8142A88: @ 8142A88
str r0, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -4778,7 +4778,7 @@ _08142B28:
movs r1, 0x1
adds r2, r4, 0
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -4808,7 +4808,7 @@ _08142B78:
movs r1, 0x1
adds r2, r5, 0
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
diff --git a/asm/safari_zone.s b/asm/safari_zone.s
index 9d6e73021..03c8e3613 100644
--- a/asm/safari_zone.s
+++ b/asm/safari_zone.s
@@ -44,7 +44,7 @@ sub_80FC0D4: @ 80FC0D4
bl IncrementGameStat
bl SetSafariZoneFlag
bl sub_80FC244
- ldr r1, =gUnknown_0203A04C
+ ldr r1, =gNumSafariBalls
movs r0, 0x1E
strb r0, [r1]
ldr r1, =gUnknown_0203A04E
@@ -72,7 +72,7 @@ sub_80FC114: @ 80FC114
bl sub_80EE44C
bl ResetSafariZoneFlag
bl sub_80FC244
- ldr r1, =gUnknown_0203A04C
+ ldr r1, =gNumSafariBalls
movs r0, 0
strb r0, [r1]
ldr r1, =gUnknown_0203A04E
@@ -103,7 +103,7 @@ _080FC168:
.pool
_080FC170:
ldr r0, =gUnknown_082A4B8A
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
movs r0, 0x1
_080FC178:
pop {r1}
@@ -115,7 +115,7 @@ _080FC178:
sub_80FC180: @ 80FC180
push {lr}
ldr r0, =gUnknown_082A4B6F
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
pop {r0}
bx r0
.pool
@@ -125,7 +125,7 @@ sub_80FC180: @ 80FC180
sub_80FC190: @ 80FC190
push {lr}
ldr r1, =gUnknown_0203A051
- ldr r0, =gUnknown_03005D10
+ ldr r0, =gBattleResults
ldrb r0, [r0, 0x1F]
ldrb r2, [r1]
adds r0, r2
@@ -139,7 +139,7 @@ sub_80FC190: @ 80FC190
adds r0, 0x1
strb r0, [r1]
_080FC1AE:
- ldr r0, =gUnknown_0203A04C
+ ldr r0, =gNumSafariBalls
ldrb r0, [r0]
cmp r0, 0
beq _080FC1D8
@@ -165,7 +165,7 @@ _080FC208:
cmp r0, 0x7
bne _080FC21C
ldr r0, =gUnknown_082A4B9B
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
bl script_env_2_set_ctx_paused
ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
bl SetMainCallback2
diff --git a/asm/scrcmd.s b/asm/scrcmd.s
index d22965e54..6c575adea 100644
--- a/asm/scrcmd.s
+++ b/asm/scrcmd.s
@@ -1172,7 +1172,7 @@ sub_8099B64: @ 8099B64
ldr r4, =gScriptResult
lsls r0, 24
lsrs r0, 24
- bl IsThereStorageSpaceForDecoration
+ bl DecorationAdd
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
@@ -1193,7 +1193,7 @@ sub_8099B90: @ 8099B90
ldr r4, =gScriptResult
lsls r0, 24
lsrs r0, 24
- bl sub_81619DC
+ bl DecorationRemove
lsls r0, 24
asrs r0, 24
strh r0, [r4]
@@ -1214,7 +1214,7 @@ sub_8099BBC: @ 8099BBC
ldr r4, =gScriptResult
lsls r0, 24
lsrs r0, 24
- bl sub_81619A8
+ bl DecorationCheckSpace
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
@@ -1421,7 +1421,7 @@ _08099D3A:
beq _08099D60
_08099D3E:
ldr r0, =gPlttBufferUnfaded
- ldr r1, =sPaletteDecompressionBuffer
+ ldr r1, =gPaletteDecompressionBuffer
ldr r2, =0x04000100
bl CpuSet
adds r0, r4, 0
@@ -1430,7 +1430,7 @@ _08099D3E:
b _08099D72
.pool
_08099D60:
- ldr r0, =sPaletteDecompressionBuffer
+ ldr r0, =gPaletteDecompressionBuffer
ldr r1, =gPlttBufferUnfaded
ldr r2, =0x04000100
bl CpuSet
@@ -3339,7 +3339,7 @@ _0809AC4E:
movs r1, 0x1
adds r2, r4, 0
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
add sp, 0xC
pop {r4,r5}
@@ -3763,7 +3763,7 @@ _0809AEC6:
str r1, [sp, 0x8]
movs r1, 0x6
adds r3, r6, 0
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r5]
movs r1, 0x3
bl CopyWindowToVram
diff --git a/asm/script.s b/asm/script.s
index e625b5625..a74d03016 100644
--- a/asm/script.s
+++ b/asm/script.s
@@ -368,8 +368,8 @@ _08098EF2:
bx r1
thumb_func_end script_env_2_run_current_script
- thumb_func_start script_env_1_execute_new_script
-script_env_1_execute_new_script: @ 8098EF8
+ thumb_func_start ScriptContext1_SetupScript
+ScriptContext1_SetupScript: @ 8098EF8
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, =gUnknown_03000E40
@@ -388,7 +388,7 @@ script_env_1_execute_new_script: @ 8098EF8
pop {r0}
bx r0
.pool
- thumb_func_end script_env_1_execute_new_script
+ thumb_func_end ScriptContext1_SetupScript
thumb_func_start script_env_2_set_ctx_paused
script_env_2_set_ctx_paused: @ 8098F30
@@ -598,7 +598,7 @@ mapheader_run_first_tag2_script_list_match: @ 809907C
bl mapheader_get_first_match_from_tagged_ptr_list
cmp r0, 0
beq _08099090
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
movs r0, 0x1
b _08099092
_08099090:
diff --git a/asm/script_menu.s b/asm/script_menu.s
index 0562b9aeb..41e4dcec8 100644
--- a/asm/script_menu.s
+++ b/asm/script_menu.s
@@ -761,7 +761,7 @@ _080E23D4:
adds r0, r6, 0
movs r1, 0x1
adds r3, r7, 0
- bl Print
+ bl PrintTextOnWindow
ldr r2, =gUnknown_085EB198
movs r0, 0x31
str r0, [sp]
@@ -770,7 +770,7 @@ _080E23D4:
adds r0, r6, 0
movs r1, 0x1
adds r3, r7, 0
- bl Print
+ bl PrintTextOnWindow
b _080E247A
.pool
_080E2448:
@@ -795,7 +795,7 @@ _080E2448:
adds r0, r6, 0
movs r1, 0x1
adds r3, r7, 0
- bl Print
+ bl PrintTextOnWindow
_080E247A:
ldr r0, =0x000008ab
bl FlagGet
@@ -813,7 +813,7 @@ _080E247A:
adds r0, r6, 0
movs r1, 0x1
adds r3, r7, 0
- bl Print
+ bl PrintTextOnWindow
b _080E24C6
.pool
_080E24B0:
@@ -826,7 +826,7 @@ _080E24B0:
adds r0, r6, 0
movs r1, 0x1
adds r3, r7, 0
- bl Print
+ bl PrintTextOnWindow
_080E24C6:
ldr r4, =gStringVar4
ldr r1, =gUnknown_085EB183
@@ -1228,7 +1228,7 @@ _080E2802:
adds r0, r6, 0
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
@@ -1687,7 +1687,7 @@ CreateStartMenu: @ 80E2BAC
adds r0, r4, 0
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldr r2, =gUnknown_085EB264
movs r0, 0x19
str r0, [sp]
@@ -1696,7 +1696,7 @@ CreateStartMenu: @ 80E2BAC
adds r0, r4, 0
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldr r2, =gUnknown_085EB26C
movs r0, 0x29
str r0, [sp]
@@ -1705,7 +1705,7 @@ CreateStartMenu: @ 80E2BAC
adds r0, r4, 0
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldr r2, =gUnknown_085EB270
movs r0, 0x39
str r0, [sp]
@@ -1714,7 +1714,7 @@ CreateStartMenu: @ 80E2BAC
adds r0, r4, 0
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
movs r0, 0x49
@@ -1724,7 +1724,7 @@ CreateStartMenu: @ 80E2BAC
adds r0, r4, 0
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldr r2, =gUnknown_085EB279
movs r0, 0x59
str r0, [sp]
@@ -1733,7 +1733,7 @@ CreateStartMenu: @ 80E2BAC
adds r0, r4, 0
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldr r2, =gUnknown_085EB27E
movs r0, 0x69
str r0, [sp]
@@ -1742,7 +1742,7 @@ CreateStartMenu: @ 80E2BAC
adds r0, r4, 0
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldr r2, =gUnknown_085EB285
movs r0, 0x79
str r0, [sp]
@@ -1751,7 +1751,7 @@ CreateStartMenu: @ 80E2BAC
adds r0, r4, 0
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x10
str r0, [sp]
movs r0, 0x8
diff --git a/asm/script_pokemon_util_80F87D8.s b/asm/script_pokemon_util_80F87D8.s
index b98058fa4..4dd19bc62 100644
--- a/asm/script_pokemon_util_80F87D8.s
+++ b/asm/script_pokemon_util_80F87D8.s
@@ -1296,7 +1296,7 @@ sub_80F9244: @ 80F9244
adds r1, r5, 0
adds r2, r3, 0
movs r3, 0x20
- bl create_pokemon_set_level
+ bl CreateMon
add r0, sp, 0x10
mov r1, r8
strb r1, [r0]
@@ -1476,7 +1476,7 @@ sub_80F93A0: @ 80F93A0
adds r1, r4, 0
adds r2, r5, 0
movs r3, 0x20
- bl create_pokemon_set_level
+ bl CreateMon
cmp r6, 0
beq _080F93EE
add r0, sp, 0x10
diff --git a/asm/secret_base.s b/asm/secret_base.s
index 3f6db1f6b..056e0913a 100644
--- a/asm/secret_base.s
+++ b/asm/secret_base.s
@@ -956,7 +956,7 @@ _080E927A:
lsrs r0, 24
cmp r0, 0x77
bhi _080E92AC
- ldr r0, =gUnknown_085A5C08
+ ldr r0, =gDecorations
ldrb r3, [r1]
lsls r1, r3, 5
adds r1, r0
@@ -1094,7 +1094,7 @@ _080E93BE:
mov r1, r10
ldrb r0, [r1]
lsls r0, 5
- ldr r2, =gUnknown_085A5C08
+ ldr r2, =gDecorations
adds r0, r2
ldrb r1, [r0, 0x11]
ldrb r0, [r0, 0x13]
@@ -1417,7 +1417,7 @@ sub_80E9668: @ 80E9668
bl sub_80E9608
bl sub_80E8B6C
ldr r0, =gUnknown_08275BB7
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
pop {r0}
bx r0
.pool
@@ -2770,12 +2770,12 @@ task_pc_turn_off: @ 80EA1D0
cmp r0, 0
bne _080EA1F4
ldr r0, =gUnknown_0823B4E8
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
b _080EA1FA
.pool
_080EA1F4:
ldr r0, =gUnknown_0823B5E9
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
_080EA1FA:
adds r0, r4, 0
bl DestroyTask
@@ -2894,7 +2894,7 @@ sub_80EA2E4: @ 80EA2E4
push {lr}
movs r0, 0x1
bl sub_813BADC
- ldr r1, =gUnknown_02038BCA
+ ldr r1, =gTrainerBattleOpponent_A
movs r2, 0x80
lsls r2, 3
adds r0, r2, 0
diff --git a/asm/shop.s b/asm/shop.s
index 0655f1851..3dad99303 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -740,7 +740,7 @@ _080E008A:
b _080E00EA
.pool
_080E00D8:
- ldr r0, =gUnknown_085A5C08
+ ldr r0, =gDecorations
lsls r1, r7, 5
adds r0, 0x18
adds r1, r0
@@ -808,7 +808,7 @@ BuyMenuPrintPriceInList: @ 80E0114
.pool
_080E0164:
ldr r0, =gStringVar1
- ldr r2, =gUnknown_085A5C08
+ ldr r2, =gDecorations
lsls r1, 5
adds r1, r2
ldrh r1, [r1, 0x14]
@@ -2038,7 +2038,7 @@ _080E0B80:
movs r3, 0x80
lsls r3, 6
adds r1, r3
- ldr r2, =gUnknown_085A5C08
+ ldr r2, =gDecorations
lsls r0, r5, 5
adds r0, r2
ldrh r0, [r0, 0x14]
@@ -2415,7 +2415,7 @@ _080E0F30:
.pool
_080E0F40:
ldrb r0, [r4, 0xA]
- bl IsThereStorageSpaceForDecoration
+ bl DecorationAdd
lsls r0, 24
cmp r0, 0
beq _080E0F70
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index 688cefb36..6fdd1a214 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -984,7 +984,7 @@ sub_812ACF4: @ 812ACF4
str r0, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -1552,7 +1552,7 @@ sub_812B158: @ 812B158
str r0, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -1642,7 +1642,7 @@ sub_812B214: @ 812B214
str r0, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -1695,7 +1695,7 @@ sub_812B280: @ 812B280
str r0, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
diff --git a/asm/start_menu.s b/asm/start_menu.s
index 713923c79..c96a471fa 100644
--- a/asm/start_menu.s
+++ b/asm/start_menu.s
@@ -5,386 +5,6 @@
.text
- thumb_func_start BuildStartMenuActions
-BuildStartMenuActions: @ 809F440
- push {lr}
- ldr r0, =gUnknown_0203760F
- movs r1, 0
- strb r1, [r0]
- bl is_c1_link_related_active
- cmp r0, 0x1
- bne _0809F45C
- bl BuildStartMenuActions_LinkMode
- b _0809F4AC
- .pool
-_0809F45C:
- bl InUnionRoom
- cmp r0, 0x1
- bne _0809F46A
- bl BuildStartMenuActions_UnionRoom
- b _0809F4AC
-_0809F46A:
- bl GetSafariZoneFlag
- cmp r0, 0x1
- bne _0809F478
- bl BuildStartMenuActions_SafariZone
- b _0809F4AC
-_0809F478:
- bl InBattlePike
- lsls r0, 24
- cmp r0, 0
- beq _0809F488
- bl BuildStartMenuActions_BattlePike
- b _0809F4AC
-_0809F488:
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- beq _0809F498
- bl BuildStartMenuActions_BattlePyramid
- b _0809F4AC
-_0809F498:
- bl in_multi_battle_room_with_var_condition
- lsls r0, 24
- cmp r0, 0
- beq _0809F4A8
- bl BuildStartMenuActions_MultiBattleRoom
- b _0809F4AC
-_0809F4A8:
- bl BuildStartMenuActions_Normal
-_0809F4AC:
- pop {r0}
- bx r0
- thumb_func_end BuildStartMenuActions
-
- thumb_func_start AddStartMenuAction
-@ void AddStartMenuAction(u8 entry)
-AddStartMenuAction: @ 809F4B0
- push {lr}
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, =gUnknown_02037610
- ldr r1, =gUnknown_0203760F
- bl append_byte
- pop {r0}
- bx r0
- .pool
- thumb_func_end AddStartMenuAction
-
- thumb_func_start BuildStartMenuActions_Normal
-BuildStartMenuActions_Normal: @ 809F4CC
- push {lr}
- ldr r0, =0x00000861
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F4E2
- movs r0, 0
- bl AddStartMenuAction
-_0809F4E2:
- movs r0, 0x86
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F4F8
- movs r0, 0x1
- bl AddStartMenuAction
-_0809F4F8:
- movs r0, 0x2
- bl AddStartMenuAction
- ldr r0, =0x00000862
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F512
- movs r0, 0x3
- bl AddStartMenuAction
-_0809F512:
- movs r0, 0x4
- bl AddStartMenuAction
- movs r0, 0x5
- bl AddStartMenuAction
- movs r0, 0x6
- bl AddStartMenuAction
- movs r0, 0x7
- bl AddStartMenuAction
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuildStartMenuActions_Normal
-
- thumb_func_start BuildStartMenuActions_SafariZone
-BuildStartMenuActions_SafariZone: @ 809F538
- push {lr}
- movs r0, 0x8
- bl AddStartMenuAction
- movs r0, 0
- bl AddStartMenuAction
- movs r0, 0x1
- bl AddStartMenuAction
- movs r0, 0x2
- bl AddStartMenuAction
- movs r0, 0x4
- bl AddStartMenuAction
- movs r0, 0x6
- bl AddStartMenuAction
- movs r0, 0x7
- bl AddStartMenuAction
- pop {r0}
- bx r0
- thumb_func_end BuildStartMenuActions_SafariZone
-
- thumb_func_start BuildStartMenuActions_LinkMode
-BuildStartMenuActions_LinkMode: @ 809F568
- push {lr}
- movs r0, 0x1
- bl AddStartMenuAction
- movs r0, 0x2
- bl AddStartMenuAction
- ldr r0, =0x00000862
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F58A
- movs r0, 0x3
- bl AddStartMenuAction
-_0809F58A:
- movs r0, 0x9
- bl AddStartMenuAction
- movs r0, 0x6
- bl AddStartMenuAction
- movs r0, 0x7
- bl AddStartMenuAction
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuildStartMenuActions_LinkMode
-
- thumb_func_start BuildStartMenuActions_UnionRoom
-BuildStartMenuActions_UnionRoom: @ 809F5A4
- push {lr}
- movs r0, 0x1
- bl AddStartMenuAction
- movs r0, 0x2
- bl AddStartMenuAction
- ldr r0, =0x00000862
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F5C6
- movs r0, 0x3
- bl AddStartMenuAction
-_0809F5C6:
- movs r0, 0x4
- bl AddStartMenuAction
- movs r0, 0x6
- bl AddStartMenuAction
- movs r0, 0x7
- bl AddStartMenuAction
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuildStartMenuActions_UnionRoom
-
- thumb_func_start BuildStartMenuActions_BattlePike
-BuildStartMenuActions_BattlePike: @ 809F5E0
- push {lr}
- movs r0, 0
- bl AddStartMenuAction
- movs r0, 0x1
- bl AddStartMenuAction
- movs r0, 0x4
- bl AddStartMenuAction
- movs r0, 0x6
- bl AddStartMenuAction
- movs r0, 0x7
- bl AddStartMenuAction
- pop {r0}
- bx r0
- thumb_func_end BuildStartMenuActions_BattlePike
-
- thumb_func_start BuildStartMenuActions_BattlePyramid
-BuildStartMenuActions_BattlePyramid: @ 809F604
- push {lr}
- movs r0, 0x1
- bl AddStartMenuAction
- movs r0, 0xC
- bl AddStartMenuAction
- movs r0, 0x4
- bl AddStartMenuAction
- movs r0, 0xA
- bl AddStartMenuAction
- movs r0, 0xB
- bl AddStartMenuAction
- movs r0, 0x6
- bl AddStartMenuAction
- movs r0, 0x7
- bl AddStartMenuAction
- pop {r0}
- bx r0
- thumb_func_end BuildStartMenuActions_BattlePyramid
-
- thumb_func_start BuildStartMenuActions_MultiBattleRoom
-BuildStartMenuActions_MultiBattleRoom: @ 809F634
- push {lr}
- movs r0, 0x1
- bl AddStartMenuAction
- movs r0, 0x4
- bl AddStartMenuAction
- movs r0, 0x6
- bl AddStartMenuAction
- movs r0, 0x7
- bl AddStartMenuAction
- pop {r0}
- bx r0
- thumb_func_end BuildStartMenuActions_MultiBattleRoom
-
- thumb_func_start sub_809F654
-sub_809F654: @ 809F654
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r4, =gUnknown_0203760C
- ldr r0, =gUnknown_08510508
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- bl PutWindowTilemap
- ldrb r0, [r4]
- movs r1, 0
- bl sub_81973FC
- ldr r0, =gStringVar1
- ldr r1, =gUnknown_0203A04C
- ldrb r1, [r1]
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r5, =gStringVar4
- ldr r1, =gUnknown_085EE6FF
- adds r0, r5, 0
- bl StringExpandPlaceholders
- ldrb r0, [r4]
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- movs r3, 0
- bl Print
- ldrb r0, [r4]
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809F654
-
- thumb_func_start sub_809F6C8
-sub_809F6C8: @ 809F6C8
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x7
- bne _0809F6F0
- ldr r4, =gUnknown_0203760D
- ldr r0, =gUnknown_08510538
- b _0809F6F4
- .pool
-_0809F6F0:
- ldr r4, =gUnknown_0203760D
- ldr r0, =gUnknown_08510530
-_0809F6F4:
- bl AddWindow
- strb r0, [r4]
- ldr r4, =gUnknown_0203760D
- ldrb r0, [r4]
- bl PutWindowTilemap
- ldrb r0, [r4]
- movs r1, 0
- bl sub_81973FC
- ldr r0, =gStringVar1
- ldr r2, =gUnknown_08510510
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- ldr r3, =0x00000cb2
- adds r1, r3
- ldrh r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- ldr r5, =gStringVar4
- ldr r1, =gUnknown_085EE716
- adds r0, r5, 0
- bl StringExpandPlaceholders
- ldrb r0, [r4]
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- movs r3, 0
- bl Print
- ldrb r0, [r4]
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809F6C8
-
- thumb_func_start RemoveExtraStartMenuWindows
-RemoveExtraStartMenuWindows: @ 809F774
- push {r4,lr}
- bl GetSafariZoneFlag
- cmp r0, 0
- beq _0809F796
- ldr r4, =gUnknown_0203760C
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8198070
- ldrb r0, [r4]
- movs r1, 0x2
- bl CopyWindowToVram
- ldrb r0, [r4]
- bl RemoveWindow
-_0809F796:
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- beq _0809F7B0
- ldr r4, =gUnknown_0203760D
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8198070
- ldrb r0, [r4]
- bl RemoveWindow
-_0809F7B0:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end RemoveExtraStartMenuWindows
thumb_func_start PrintStartMenuActions
PrintStartMenuActions: @ 809F7C0
@@ -397,12 +17,12 @@ PrintStartMenuActions: @ 809F7C0
mov r8, r0
adds r6, r1, 0
ldrb r2, [r0]
- ldr r0, =gUnknown_08510540
+ ldr r0, =sStartMenuItems
mov r9, r0
ldr r1, =gStringVar4
mov r10, r1
_0809F7DA:
- ldr r0, =gUnknown_02037610
+ ldr r0, =sCurrentStartMenuActions
lsls r2, 24
asrs r4, r2, 24
adds r5, r4, r0
@@ -416,7 +36,7 @@ _0809F7DA:
adds r7, r2, 0
cmp r1, r0
bne _0809F828
- bl get_start_menu_window_id_maybe
+ bl GetStartMenuWindowId
lsls r0, 24
lsrs r0, 24
ldrb r1, [r5]
@@ -437,7 +57,7 @@ _0809F828:
ldr r1, [r0]
mov r0, r10
bl StringExpandPlaceholders
- bl get_start_menu_window_id_maybe
+ bl GetStartMenuWindowId
lsls r0, 24
lsrs r0, 24
lsls r1, r4, 4
@@ -452,14 +72,14 @@ _0809F828:
movs r1, 0x1
mov r2, r10
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
_0809F858:
movs r0, 0x80
lsls r0, 17
adds r1, r7, r0
lsrs r2, r1, 24
asrs r1, 24
- ldr r0, =gUnknown_0203760F
+ ldr r0, =sNumStartMenuActions
ldrb r0, [r0]
cmp r1, r0
bge _0809F87C
@@ -522,7 +142,7 @@ _0809F8D8:
.pool
_0809F8E4:
bl sub_81973A4
- ldr r0, =gUnknown_0203760F
+ ldr r0, =sNumStartMenuActions
ldrb r0, [r0]
bl sub_81979C4
lsls r0, 24
@@ -538,13 +158,13 @@ _0809F90C:
bl GetSafariZoneFlag
cmp r0, 0
beq _0809F918
- bl sub_809F654
+ bl DisplaySafariBallsWindow
_0809F918:
bl InBattlePyramid
lsls r0, 24
cmp r0, 0
beq _0809F926
- bl sub_809F6C8
+ bl DisplayPyramidFloorWindow
_0809F926:
ldr r1, =gUnknown_02037619
b _0809F940
@@ -564,15 +184,15 @@ _0809F940:
b _0809F98C
.pool
_0809F94C:
- bl get_start_menu_window_id_maybe
+ bl GetStartMenuWindowId
lsls r0, 24
lsrs r0, 24
movs r1, 0x10
str r1, [sp]
- ldr r1, =gUnknown_0203760F
+ ldr r1, =sNumStartMenuActions
ldrb r1, [r1]
str r1, [sp, 0x4]
- ldr r4, =gUnknown_0203760E
+ ldr r4, =sStartMenuCursorPos
ldrb r1, [r4]
str r1, [sp, 0x8]
movs r1, 0x1
@@ -580,7 +200,7 @@ _0809F94C:
movs r3, 0x9
bl sub_81983AC
strb r0, [r4]
- bl get_start_menu_window_id_maybe
+ bl GetStartMenuWindowId
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -674,7 +294,7 @@ sub_809FA18: @ 809FA18
movs r0, 0
strb r0, [r1]
strb r0, [r1, 0x1]
- ldr r1, =gUnknown_03005DB0
+ ldr r1, =gFieldCallback
ldr r0, =sub_809FA00
str r0, [r1]
bx lr
@@ -762,7 +382,7 @@ HandleStartMenuInput: @ 809FAC4
movs r0, 0x1
negs r0, r0
bl MoveMenuCursor
- ldr r1, =gUnknown_0203760E
+ ldr r1, =sStartMenuCursorPos
strb r0, [r1]
_0809FAE4:
ldrh r1, [r4, 0x2E]
@@ -774,7 +394,7 @@ _0809FAE4:
bl PlaySE
movs r0, 0x1
bl MoveMenuCursor
- ldr r1, =gUnknown_0203760E
+ ldr r1, =sStartMenuCursorPos
strb r0, [r1]
_0809FAFE:
ldrh r1, [r4, 0x2E]
@@ -784,9 +404,9 @@ _0809FAFE:
beq _0809FB98
movs r0, 0x5
bl PlaySE
- ldr r1, =gUnknown_08510540
- ldr r2, =gUnknown_02037610
- ldr r0, =gUnknown_0203760E
+ ldr r1, =sStartMenuItems
+ ldr r2, =sCurrentStartMenuActions
+ ldr r0, =sStartMenuCursorPos
ldrb r0, [r0]
adds r0, r2
ldrb r0, [r0]
@@ -804,9 +424,9 @@ _0809FAFE:
beq _0809FBA0
_0809FB34:
ldr r3, =gUnknown_03005DF4
- ldr r1, =gUnknown_08510540
- ldr r2, =gUnknown_02037610
- ldr r0, =gUnknown_0203760E
+ ldr r1, =sStartMenuItems
+ ldr r2, =sCurrentStartMenuActions
+ ldr r0, =sStartMenuCursorPos
ldrb r0, [r0]
adds r0, r2
ldrb r0, [r0]
@@ -1249,7 +869,7 @@ _0809FF00:
bl sub_80984F4
bl script_env_2_disable
ldr r0, =gUnknown_08252C88
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
movs r0, 0x1
b _0809FF22
.pool
@@ -1458,7 +1078,7 @@ _080A009A:
thumb_func_start sub_80A00A0
sub_80A00A0: @ 80A00A0
push {lr}
- bl get_start_menu_window_id_maybe
+ bl GetStartMenuWindowId
lsls r0, 24
lsrs r0, 24
movs r1, 0
@@ -1789,7 +1409,7 @@ sub_80A0340: @ 80A0340
thumb_func_start sub_80A035C
sub_80A035C: @ 80A035C
push {lr}
- bl get_start_menu_window_id_maybe
+ bl GetStartMenuWindowId
lsls r0, 24
lsrs r0, 24
movs r1, 0
@@ -2239,7 +1859,7 @@ _080A0710:
movs r1, 0x1
adds r2, r5, 0
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r4, 0x11
ldrb r0, [r6]
ldr r2, =gUnknown_085EED26
@@ -2249,7 +1869,7 @@ _080A0710:
str r7, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
adds r1, r5, 0
mov r2, r9
@@ -2274,7 +1894,7 @@ _080A0710:
str r7, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x4
adds r1, r5, 0
mov r2, r9
@@ -2293,7 +1913,7 @@ _080A0710:
str r7, [sp, 0x8]
movs r1, 0x1
adds r2, r5, 0
- bl Print
+ bl PrintTextOnWindow
mov r0, r10
bl FlagGet
lsls r0, 24
@@ -2309,7 +1929,7 @@ _080A0710:
str r7, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x1
adds r1, r5, 0
mov r2, r9
@@ -2328,7 +1948,7 @@ _080A0710:
str r7, [sp, 0x8]
movs r1, 0x1
adds r2, r5, 0
- bl Print
+ bl PrintTextOnWindow
_080A0802:
adds r4, 0x10
ldrb r0, [r6]
@@ -2341,7 +1961,7 @@ _080A0802:
str r7, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x2
adds r1, r5, 0
mov r2, r9
@@ -2360,7 +1980,7 @@ _080A0802:
str r7, [sp, 0x8]
movs r1, 0x1
adds r2, r5, 0
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r6]
movs r1, 0x2
bl CopyWindowToVram
@@ -2445,7 +2065,7 @@ sub_80A08CC: @ 80A08CC
thumb_func_start sub_80A0914
sub_80A0914: @ 80A0914
push {lr}
- bl get_start_menu_window_id_maybe
+ bl GetStartMenuWindowId
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -2467,8 +2087,8 @@ sub_80A0934: @ 80A0934
bx r0
thumb_func_end sub_80A0934
- thumb_func_start append_byte
-append_byte: @ 80A0944
+ thumb_func_start AppendToList
+AppendToList: @ 80A0944
ldrb r3, [r1]
adds r0, r3
strb r2, [r0]
@@ -2476,6 +2096,6 @@ append_byte: @ 80A0944
adds r0, 0x1
strb r0, [r1]
bx lr
- thumb_func_end append_byte
+ thumb_func_end AppendToList
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/starter_choose.s b/asm/starter_choose.s
index 87db69132..0f8f5d464 100644
--- a/asm/starter_choose.s
+++ b/asm/starter_choose.s
@@ -336,7 +336,7 @@ sub_81341FC: @ 81341FC
str r0, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
bl PutWindowTilemap
movs r0, 0
@@ -515,7 +515,7 @@ sub_8134390: @ 8134390
str r0, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
ldr r0, =gUnknown_085B1DDC
diff --git a/asm/trade.s b/asm/trade.s
index 3758541bf..85ace12c4 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -389,7 +389,7 @@ _080774B2:
movs r1, 0
movs r2, 0
movs r3, 0x20
- bl create_pokemon_set_level
+ bl CreateMon
adds r6, 0x1
cmp r6, 0x5
ble _080774B2
@@ -4419,7 +4419,7 @@ _08079772:
lsls r0, 2
add r0, r8
ldr r1, =sub_80D3014
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r2, =gUnknown_0203229C
ldr r1, [r2]
adds r1, 0x74
@@ -5598,7 +5598,7 @@ sub_807A19C: @ 807A19C
str r0, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
movs r1, 0x14
movs r2, 0xC
@@ -13276,7 +13276,7 @@ sub_807E7E8: @ 807E7E8
str r0, [sp, 0xC]
adds r0, r6, 0
movs r3, 0x20
- bl create_pokemon_set_level
+ bl CreateMon
adds r2, r5, 0
adds r2, 0xE
adds r0, r6, 0
@@ -13401,7 +13401,7 @@ _0807E954:
bl SetMonData
_0807E960:
ldr r0, =gEnemyParty
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
add sp, 0x38
pop {r4-r7}
pop {r0}
diff --git a/asm/trader.s b/asm/trader.s
index 024ee3307..b5d8d47bc 100644
--- a/asm/trader.s
+++ b/asm/trader.s
@@ -165,7 +165,7 @@ _08133B3C:
movs r1, 0x1
ldr r2, =gUnknown_085E8D38
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
b _08133B94
.pool
_08133B70:
@@ -185,7 +185,7 @@ _08133B70:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
_08133B94:
adds r0, r5, 0x1
lsls r0, 24
@@ -205,7 +205,7 @@ _08133B94:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl Print
+ bl PrintTextOnWindow
ldrb r0, [r7, 0x6]
movs r1, 0x5
movs r2, 0
@@ -381,7 +381,7 @@ sub_8133D2C: @ 8133D2C
ldr r6, =gScriptResult
movs r0, 0
strh r0, [r6]
- ldr r4, =gUnknown_085A5C08
+ ldr r4, =gDecorations
ldr r5, =gSpecialVar_0x8004
ldrh r0, [r5]
lsls r0, 5
@@ -502,10 +502,10 @@ sub_8133E38: @ 8133E38
ldr r1, =gSpecialVar_0x8006
mov r8, r1
ldrb r0, [r1]
- bl sub_81619DC
+ bl DecorationRemove
ldr r0, =gSpecialVar_0x8004
ldrb r0, [r0]
- bl IsThereStorageSpaceForDecoration
+ bl DecorationAdd
ldr r4, =gSpecialVar_0x8005
ldrh r1, [r4]
movs r0, 0xB
diff --git a/asm/trainer_card.s b/asm/trainer_card.s
index e8ee8b154..cadb46a06 100644
--- a/asm/trainer_card.s
+++ b/asm/trainer_card.s
@@ -419,7 +419,7 @@ _080C2A2C:
str r0, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
diff --git a/asm/tv.s b/asm/tv.s
index ccf232dd0..23e7fa81b 100644
--- a/asm/tv.s
+++ b/asm/tv.s
@@ -542,7 +542,7 @@ GabbyAndTyBeforeInterview: @ 80EC31C
push {r4,lr}
ldr r3, =gSaveBlock1Ptr
ldr r2, [r3]
- ldr r0, =gUnknown_03005D10
+ ldr r0, =gBattleResults
mov r12, r0
ldrh r1, [r0, 0x6]
ldr r4, =0x00002ba4
@@ -1032,7 +1032,7 @@ sub_80EC728: @ 80EC728
movs r4, 0
bl sub_80EED88
bl sub_80ED718
- ldr r5, =gUnknown_03005D10
+ ldr r5, =gBattleResults
ldrh r0, [r5, 0x28]
cmp r0, 0
bne _080EC74C
@@ -1133,7 +1133,7 @@ _080EC7CA:
.pool
_080EC81C:
movs r2, 0
- ldr r0, =gUnknown_02024208
+ ldr r0, =gLastUsedItem
mov r12, r0
adds r3, r6, 0
adds r3, 0x13
@@ -1216,7 +1216,7 @@ _080EC8CA:
ldrh r0, [r4, 0x2]
adds r0, 0x1
strh r0, [r4, 0x2]
- ldr r1, =gUnknown_03005D10
+ ldr r1, =gBattleResults
ldrh r0, [r1, 0x28]
strh r0, [r4, 0x4]
ldrh r0, [r1, 0x6]
@@ -1300,7 +1300,7 @@ _080EC940:
movs r0, 0x17
strb r0, [r4]
strb r1, [r4, 0x1]
- ldr r1, =gUnknown_03005D10
+ ldr r1, =gBattleResults
ldrh r0, [r1, 0x6]
strh r0, [r4, 0xC]
ldrh r0, [r1, 0x20]
@@ -4048,7 +4048,7 @@ _080EE1B6:
strb r0, [r4]
strb r1, [r4, 0x1]
movs r5, 0
- ldr r6, =gUnknown_03005D10
+ ldr r6, =gBattleResults
ldr r3, =gUnknown_02037318
ldr r7, =gSaveBlock2Ptr
adds r2, r6, 0
@@ -4122,7 +4122,7 @@ _080EE27E:
_080EE280:
strb r0, [r4, 0x5]
_080EE282:
- ldr r1, =gUnknown_03005D10
+ ldr r1, =gBattleResults
ldrh r0, [r1, 0x20]
strh r0, [r4, 0x2]
ldrb r0, [r4, 0x5]
@@ -7574,17 +7574,17 @@ sub_80EFEC4: @ 80EFEC4
adds r6, r0, 0
ldr r2, =gStringVar3
movs r1, 0x2
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
ldr r0, =gStringVar2
mov r8, r0
adds r0, r6, 0
movs r1, 0x2
mov r2, r8
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
adds r0, r6, 0
movs r1, 0xB
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
@@ -7596,7 +7596,7 @@ sub_80EFEC4: @ 80EFEC4
adds r0, r6, 0
movs r1, 0
movs r2, 0
- bl pokemon_getattr_encrypted
+ bl GetBoxMonData
str r0, [sp]
ldr r0, =sub_80EFF48
str r0, [sp, 0x4]
diff --git a/asm/wallclock.s b/asm/wallclock.s
index b74ac29b2..0d6f05a23 100644
--- a/asm/wallclock.s
+++ b/asm/wallclock.s
@@ -361,7 +361,7 @@ Cb2_StartWallClock: @ 81349F4
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0x2
@@ -508,7 +508,7 @@ _08134BA4:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0x2
@@ -691,7 +691,7 @@ sub_8134DC4: @ 8134DC4
str r0, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl Print
+ bl PrintTextOnWindow
movs r0, 0
bl PutWindowTilemap
movs r0, 0
diff --git a/asm/wild_encounter.s b/asm/wild_encounter.s
index c2e57a3f3..df6196372 100644
--- a/asm/wild_encounter.s
+++ b/asm/wild_encounter.s
@@ -835,7 +835,7 @@ _080B4E98:
bl GetMonData
adds r1, r0, 0
adds r0, r4, 0
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0xFE
@@ -858,7 +858,7 @@ _080B4F02:
adds r1, r6, 0
adds r2, r7, 0
movs r3, 0x20
- bl sub_8067EF8
+ bl CreateMonWithGenderNatureLetter
b _080B4F40
.pool
_080B4F28:
@@ -871,7 +871,7 @@ _080B4F28:
adds r1, r6, 0
adds r2, r7, 0
movs r3, 0x20
- bl pokemon_make_with_nature
+ bl CreateMonWithNature
_080B4F40:
add sp, 0xC
pop {r4-r7}
@@ -1464,7 +1464,7 @@ _080B53D4:
beq _080B53F2
b _080B54FE
_080B53F2:
- bl sub_8161EDC
+ bl TryStartRoamerEncounter
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1550,7 +1550,7 @@ _080B5492:
lsrs r0, 24
cmp r0, 0x1
bne _080B54FE
- bl sub_8161EDC
+ bl TryStartRoamerEncounter
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1643,8 +1643,8 @@ _080B556E:
.pool
thumb_func_end rock_smash_wild_pokemon_encounter
- thumb_func_start sub_80B5578
-sub_80B5578: @ 80B5578
+ thumb_func_start SweetScentWildEncounter
+SweetScentWildEncounter: @ 80B5578
push {r4,r5,lr}
sub sp, 0x4
mov r5, sp
@@ -1740,7 +1740,7 @@ _080B562C:
ldr r4, [r0]
cmp r4, 0
beq _080B56F2
- bl sub_8161EDC
+ bl TryStartRoamerEncounter
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1788,7 +1788,7 @@ _080B568C:
ldr r4, [r0]
cmp r4, 0
beq _080B56F2
- bl sub_8161EDC
+ bl TryStartRoamerEncounter
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1814,7 +1814,7 @@ _080B56F4:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_80B5578
+ thumb_func_end SweetScentWildEncounter
thumb_func_start GetFishingWildMonListHeader
GetFishingWildMonListHeader: @ 80B56FC
@@ -2027,7 +2027,7 @@ sub_80B5870: @ 80B5870
cmp r4, 0
bne _080B58C4
ldr r0, =gUnknown_082A4B2A
- bl script_env_1_execute_new_script
+ bl ScriptContext1_SetupScript
movs r0, 0x1
b _080B58C6
.pool