diff options
Diffstat (limited to 'asm')
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 @@ -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 |