summaryrefslogtreecommitdiff
path: root/asm/battle_util.s
diff options
context:
space:
mode:
authorjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-08-01 12:25:38 +0800
committerjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-08-01 12:30:36 +0800
commit3eb1f1bc783308dac445eaacc05c9f14e9b78822 (patch)
tree06d89a04aba616f770da97c73569dbfe1de96141 /asm/battle_util.s
parentc88c9c6edfb7122524b319e4601c5d2b97bf06ca (diff)
matched AbilityBattleEffects
Diffstat (limited to 'asm/battle_util.s')
-rw-r--r--asm/battle_util.s4972
1 files changed, 29 insertions, 4943 deletions
diff --git a/asm/battle_util.s b/asm/battle_util.s
index b2ed61f7a..a6b77a6e4 100644
--- a/asm/battle_util.s
+++ b/asm/battle_util.s
@@ -5,4920 +5,6 @@
.text
- thumb_func_start TryClearRageStatuses
-TryClearRageStatuses: @ 8019284
- push {r4-r6,lr}
- movs r3, 0
- ldr r0, _080192C4 @ =gBattlersCount
- adds r5, r0, 0
- ldrb r0, [r5]
- cmp r3, r0
- bge _080192BC
- ldr r4, _080192C8 @ =gUnknown_2023DC4
- movs r6, 0x80
- lsls r6, 16
- ldr r2, _080192CC @ =gChosenMoveByBattler
-_0801929A:
- ldr r1, [r2]
- adds r0, r1, 0
- ands r0, r6
- cmp r0, 0
- beq _080192B0
- ldrh r0, [r4]
- cmp r0, 0x63
- beq _080192B0
- ldr r0, _080192D0 @ =0xff7fffff
- ands r1, r0
- str r1, [r2]
-_080192B0:
- adds r4, 0x2
- adds r2, 0x58
- adds r3, 0x1
- ldrb r0, [r5]
- cmp r3, r0
- blt _0801929A
-_080192BC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080192C4: .4byte gBattlersCount
-_080192C8: .4byte gUnknown_2023DC4
-_080192CC: .4byte gChosenMoveByBattler
-_080192D0: .4byte 0xff7fffff
- thumb_func_end TryClearRageStatuses
-
- thumb_func_start AtkCanceller_UnableToUseMove
-AtkCanceller_UnableToUseMove: @ 80192D4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- movs r0, 0
- mov r9, r0
- ldr r1, _080192F0 @ =gUnknown_2023FC8
- mov r10, r1
- ldr r2, _080192F4 @ =gBattleStruct
- mov r8, r2
- b _08019302
- .align 2, 0
-_080192F0: .4byte gUnknown_2023FC8
-_080192F4: .4byte gBattleStruct
-_080192F8:
- mov r4, r9
- cmp r4, 0
- beq _08019302
- bl _08019BA8
-_08019302:
- mov r7, r8
- ldr r0, [r7]
- adds r0, 0xB7
- ldrb r0, [r0]
- cmp r0, 0xF
- bls _08019312
- bl _08019B98
-_08019312:
- lsls r0, 2
- ldr r1, _0801931C @ =_08019320
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801931C: .4byte _08019320
- .align 2, 0
-_08019320:
- .4byte _08019360
- .4byte _080193A4
- .4byte _080194E0
- .4byte _08019598
- .4byte _0801960C
- .4byte _08019678
- .4byte _080196E0
- .4byte _08019754
- .4byte _080197B8
- .4byte _08019814
- .4byte _080198F8
- .4byte _08019974
- .4byte _080199C8
- .4byte _08019A60
- .4byte _08019B40
- .4byte _08019B98
-_08019360:
- ldr r1, _08019390 @ =gBattleMons
- ldr r3, _08019394 @ =gBattlerAttacker
- ldrb r2, [r3]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, _08019398 @ =0xfdffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _0801939C @ =gStatuses3
- ldrb r2, [r3]
- lsls r2, 2
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _080193A0 @ =0xffffbfff
- ands r0, r1
- str r0, [r2]
- mov r0, r8
- ldr r1, [r0]
- bl _08019B90
- .align 2, 0
-_08019390: .4byte gBattleMons
-_08019394: .4byte gBattlerAttacker
-_08019398: .4byte 0xfdffffff
-_0801939C: .4byte gStatuses3
-_080193A0: .4byte 0xffffbfff
-_080193A4:
- ldr r7, _0801940C @ =gBattleMons
- ldr r4, _08019410 @ =gBattlerAttacker
- ldrb r1, [r4]
- movs r5, 0x58
- adds r0, r1, 0
- muls r0, r5
- adds r6, r7, 0
- adds r6, 0x4C
- adds r0, r6
- ldr r0, [r0]
- movs r2, 0x7
- mov r8, r2
- ands r0, r2
- cmp r0, 0
- bne _080193C4
- b _08019946
-_080193C4:
- adds r0, r1, 0
- bl UproarWakeUpCheck
- lsls r0, 24
- cmp r0, 0
- beq _08019424
- ldrb r0, [r4]
- adds r2, r0, 0
- muls r2, r5
- adds r2, r6
- ldr r0, [r2]
- movs r1, 0x8
- negs r1, r1
- ands r0, r1
- str r0, [r2]
- ldrb r0, [r4]
- adds r2, r0, 0
- muls r2, r5
- adds r0, r7, 0
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _08019414 @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- bl BattleScriptPushCursor
- ldr r1, _08019418 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- ldr r1, _0801941C @ =gBattlescriptCurrInstr
- ldr r0, _08019420 @ =BattleScript_MoveUsedWokeUp
- str r0, [r1]
- movs r4, 0x2
- mov r9, r4
- b _08019946
- .align 2, 0
-_0801940C: .4byte gBattleMons
-_08019410: .4byte gBattlerAttacker
-_08019414: .4byte 0xf7ffffff
-_08019418: .4byte gBattleCommunication
-_0801941C: .4byte gBattlescriptCurrInstr
-_08019420: .4byte BattleScript_MoveUsedWokeUp
-_08019424:
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r0, r1, r7
- adds r0, 0x20
- ldrb r0, [r0]
- movs r3, 0x1
- cmp r0, 0x30
- bne _08019438
- movs r3, 0x2
-_08019438:
- adds r2, r1, r6
- ldr r1, [r2]
- adds r0, r1, 0
- mov r7, r8
- ands r0, r7
- cmp r0, r3
- bcs _08019450
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- b _08019454
-_08019450:
- subs r0, r1, r3
- str r0, [r2]
-_08019454:
- ldr r2, _08019498 @ =gBattleMons
- ldr r0, _0801949C @ =gBattlerAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r4, [r0]
- movs r0, 0x7
- ands r4, r0
- cmp r4, 0
- beq _080194B0
- ldr r0, _080194A0 @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xAD
- bne _08019478
- b _08019946
-_08019478:
- cmp r0, 0xD6
- bne _0801947E
- b _08019946
-_0801947E:
- ldr r1, _080194A4 @ =gBattlescriptCurrInstr
- ldr r0, _080194A8 @ =BattleScript_MoveUsedIsAsleep
- str r0, [r1]
- ldr r2, _080194AC @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r0, 0x2
- mov r9, r0
- b _08019946
- .align 2, 0
-_08019498: .4byte gBattleMons
-_0801949C: .4byte gBattlerAttacker
-_080194A0: .4byte gCurrentMove
-_080194A4: .4byte gBattlescriptCurrInstr
-_080194A8: .4byte BattleScript_MoveUsedIsAsleep
-_080194AC: .4byte gHitMarker
-_080194B0:
- adds r2, 0x50
- adds r2, r1, r2
- ldr r0, [r2]
- ldr r1, _080194D0 @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- bl BattleScriptPushCursor
- ldr r0, _080194D4 @ =gBattleCommunication
- strb r4, [r0, 0x5]
- ldr r1, _080194D8 @ =gBattlescriptCurrInstr
- ldr r0, _080194DC @ =BattleScript_MoveUsedWokeUp
- str r0, [r1]
- movs r1, 0x2
- mov r9, r1
- b _08019946
- .align 2, 0
-_080194D0: .4byte 0xf7ffffff
-_080194D4: .4byte gBattleCommunication
-_080194D8: .4byte gBattlescriptCurrInstr
-_080194DC: .4byte BattleScript_MoveUsedWokeUp
-_080194E0:
- ldr r1, _0801953C @ =gBattleMons
- ldr r7, _08019540 @ =gBattlerAttacker
- ldrb r0, [r7]
- movs r6, 0x58
- muls r0, r6
- adds r5, r1, 0
- adds r5, 0x4C
- adds r0, r5
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08019580
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _08019558
- ldr r2, _08019544 @ =gBattleMoves
- ldr r0, _08019548 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7D
- bne _08019526
- b _08019946
-_08019526:
- ldr r1, _0801954C @ =gBattlescriptCurrInstr
- ldr r0, _08019550 @ =BattleScript_MoveUsedIsFrozen
- str r0, [r1]
- ldr r2, _08019554 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 2
- orrs r0, r1
- str r0, [r2]
- b _08019578
- .align 2, 0
-_0801953C: .4byte gBattleMons
-_08019540: .4byte gBattlerAttacker
-_08019544: .4byte gBattleMoves
-_08019548: .4byte gCurrentMove
-_0801954C: .4byte gBattlescriptCurrInstr
-_08019550: .4byte BattleScript_MoveUsedIsFrozen
-_08019554: .4byte gHitMarker
-_08019558:
- ldrb r0, [r7]
- adds r2, r0, 0
- muls r2, r6
- adds r2, r5
- ldr r0, [r2]
- movs r1, 0x21
- negs r1, r1
- ands r0, r1
- str r0, [r2]
- bl BattleScriptPushCursor
- ldr r1, _08019588 @ =gBattlescriptCurrInstr
- ldr r0, _0801958C @ =BattleScript_MoveUsedUnfroze
- str r0, [r1]
- ldr r0, _08019590 @ =gBattleCommunication
- strb r4, [r0, 0x5]
-_08019578:
- movs r2, 0x2
- mov r9, r2
- ldr r4, _08019594 @ =gBattleStruct
- mov r8, r4
-_08019580:
- mov r7, r8
- ldr r1, [r7]
- b _08019B90
- .align 2, 0
-_08019588: .4byte gBattlescriptCurrInstr
-_0801958C: .4byte BattleScript_MoveUsedUnfroze
-_08019590: .4byte gBattleCommunication
-_08019594: .4byte gBattleStruct
-_08019598:
- ldr r1, _080195EC @ =gBattleMons
- ldr r0, _080195F0 @ =gBattlerAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x36
- beq _080195AE
- b _08019946
-_080195AE:
- ldr r0, _080195F4 @ =gDisableStructs
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x18]
- lsls r0, 31
- cmp r0, 0
- bne _080195C2
- b _08019946
-_080195C2:
- adds r0, r2, 0
- bl CancelMultiTurnMoves
- ldr r2, _080195F8 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- ldr r1, _080195FC @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
- ldr r1, _08019600 @ =gBattlescriptCurrInstr
- ldr r0, _08019604 @ =BattleScript_MoveUsedLoafingAround
- str r0, [r1]
- ldr r2, _08019608 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- b _080197F4
- .align 2, 0
-_080195EC: .4byte gBattleMons
-_080195F0: .4byte gBattlerAttacker
-_080195F4: .4byte gDisableStructs
-_080195F8: .4byte gHitMarker
-_080195FC: .4byte gBattleCommunication
-_08019600: .4byte gBattlescriptCurrInstr
-_08019604: .4byte BattleScript_MoveUsedLoafingAround
-_08019608: .4byte gMoveResultFlags
-_0801960C:
- ldr r1, _0801965C @ =gBattleMons
- ldr r3, _08019660 @ =gBattlerAttacker
- ldrb r2, [r3]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 15
- ands r0, r1
- cmp r0, 0
- bne _08019628
- b _08019946
-_08019628:
- ldr r0, _08019664 @ =0xffbfffff
- ands r1, r0
- str r1, [r2]
- ldr r2, _08019668 @ =gDisableStructs
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x19]
- ldrb r0, [r3]
- bl CancelMultiTurnMoves
- ldr r1, _0801966C @ =gBattlescriptCurrInstr
- ldr r0, _08019670 @ =BattleScript_MoveUsedMustRecharge
- str r0, [r1]
- ldr r2, _08019674 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r1, 0x1
- mov r9, r1
- b _08019946
- .align 2, 0
-_0801965C: .4byte gBattleMons
-_08019660: .4byte gBattlerAttacker
-_08019664: .4byte 0xffbfffff
-_08019668: .4byte gDisableStructs
-_0801966C: .4byte gBattlescriptCurrInstr
-_08019670: .4byte BattleScript_MoveUsedMustRecharge
-_08019674: .4byte gHitMarker
-_08019678:
- ldr r1, _080196C8 @ =gBattleMons
- ldr r3, _080196CC @ =gBattlerAttacker
- ldrb r2, [r3]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08019692
- b _08019946
-_08019692:
- movs r0, 0x9
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- ldr r0, _080196D0 @ =gProtectStructs
- ldrb r2, [r3]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldrb r0, [r3]
- bl CancelMultiTurnMoves
- ldr r1, _080196D4 @ =gBattlescriptCurrInstr
- ldr r0, _080196D8 @ =BattleScript_MoveUsedFlinched
- str r0, [r1]
- ldr r2, _080196DC @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r2, 0x1
- mov r9, r2
- b _08019946
- .align 2, 0
-_080196C8: .4byte gBattleMons
-_080196CC: .4byte gBattlerAttacker
-_080196D0: .4byte gProtectStructs
-_080196D4: .4byte gBattlescriptCurrInstr
-_080196D8: .4byte BattleScript_MoveUsedFlinched
-_080196DC: .4byte gHitMarker
-_080196E0:
- ldr r0, _08019734 @ =gDisableStructs
- ldr r3, _08019738 @ =gBattlerAttacker
- ldrb r2, [r3]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldr r0, _0801973C @ =gCurrentMove
- ldrh r1, [r1, 0x4]
- ldrh r0, [r0]
- cmp r1, r0
- beq _080196FA
- b _08019946
-_080196FA:
- cmp r1, 0
- bne _08019700
- b _08019946
-_08019700:
- ldr r0, _08019740 @ =gProtectStructs
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x1]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldr r1, _08019744 @ =gBattleScripting
- ldrb r0, [r3]
- strb r0, [r1, 0x17]
- ldrb r0, [r3]
- bl CancelMultiTurnMoves
- ldr r1, _08019748 @ =gBattlescriptCurrInstr
- ldr r0, _0801974C @ =BattleScript_MoveUsedIsDisabled
- str r0, [r1]
- ldr r2, _08019750 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r4, 0x1
- mov r9, r4
- b _08019946
- .align 2, 0
-_08019734: .4byte gDisableStructs
-_08019738: .4byte gBattlerAttacker
-_0801973C: .4byte gCurrentMove
-_08019740: .4byte gProtectStructs
-_08019744: .4byte gBattleScripting
-_08019748: .4byte gBattlescriptCurrInstr
-_0801974C: .4byte BattleScript_MoveUsedIsDisabled
-_08019750: .4byte gHitMarker
-_08019754:
- ldr r0, _0801979C @ =gDisableStructs
- ldr r4, _080197A0 @ =gBattlerAttacker
- ldrb r3, [r4]
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x13]
- lsls r0, 28
- cmp r0, 0
- bne _0801976C
- b _08019946
-_0801976C:
- ldr r2, _080197A4 @ =gBattleMoves
- ldr r0, _080197A8 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _08019782
- b _08019946
-_08019782:
- ldr r0, _080197AC @ =gProtectStructs
- lsls r2, r3, 4
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldrb r0, [r4]
- bl CancelMultiTurnMoves
- ldr r1, _080197B0 @ =gBattlescriptCurrInstr
- ldr r0, _080197B4 @ =BattleScript_MoveUsedIsTaunted
- b _08019934
- .align 2, 0
-_0801979C: .4byte gDisableStructs
-_080197A0: .4byte gBattlerAttacker
-_080197A4: .4byte gBattleMoves
-_080197A8: .4byte gCurrentMove
-_080197AC: .4byte gProtectStructs
-_080197B0: .4byte gBattlescriptCurrInstr
-_080197B4: .4byte BattleScript_MoveUsedIsTaunted
-_080197B8:
- ldr r4, _080197FC @ =gBattlerAttacker
- ldrb r0, [r4]
- ldr r1, _08019800 @ =gCurrentMove
- ldrh r1, [r1]
- bl GetImprisonedMovesCount
- lsls r0, 24
- cmp r0, 0
- bne _080197CC
- b _08019946
-_080197CC:
- ldr r0, _08019804 @ =gProtectStructs
- ldrb r2, [r4]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r4]
- bl CancelMultiTurnMoves
- ldr r1, _08019808 @ =gBattlescriptCurrInstr
- ldr r0, _0801980C @ =BattleScript_MoveUsedIsImprisoned
- str r0, [r1]
- ldr r2, _08019810 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
-_080197F4:
- movs r0, 0x1
- mov r9, r0
- b _08019946
- .align 2, 0
-_080197FC: .4byte gBattlerAttacker
-_08019800: .4byte gCurrentMove
-_08019804: .4byte gProtectStructs
-_08019808: .4byte gBattlescriptCurrInstr
-_0801980C: .4byte BattleScript_MoveUsedIsImprisoned
-_08019810: .4byte gHitMarker
-_08019814:
- ldr r7, _0801985C @ =gBattleMons
- ldr r5, _08019860 @ =gBattlerAttacker
- ldrb r0, [r5]
- movs r6, 0x58
- muls r0, r6
- adds r4, r7, 0
- adds r4, 0x50
- adds r2, r0, r4
- ldr r1, [r2]
- movs r3, 0x7
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _080198E6
- subs r0, r1, 0x1
- str r0, [r2]
- ldrb r0, [r5]
- muls r0, r6
- adds r0, r4
- ldr r0, [r0]
- ands r0, r3
- cmp r0, 0
- beq _080198D4
- bl Random
- movs r1, 0x1
- movs r2, 0x1
- ands r2, r0
- cmp r2, 0
- beq _08019868
- ldr r1, _08019864 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
- bl BattleScriptPushCursor
- b _080198B2
- .align 2, 0
-_0801985C: .4byte gBattleMons
-_08019860: .4byte gBattlerAttacker
-_08019864: .4byte gBattleCommunication
-_08019868:
- ldr r0, _080198B8 @ =gBattleCommunication
- movs r4, 0x1
- strb r1, [r0, 0x5]
- ldr r1, _080198BC @ =gBattlerTarget
- ldrb r0, [r5]
- strb r0, [r1]
- ldrb r0, [r5]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r7
- movs r0, 0x28
- str r0, [sp]
- str r2, [sp, 0x4]
- ldrb r0, [r5]
- str r0, [sp, 0x8]
- ldrb r0, [r5]
- str r0, [sp, 0xC]
- adds r0, r1, 0
- movs r2, 0x1
- movs r3, 0
- bl CalculateBaseDamage
- ldr r1, _080198C0 @ =gBattleMoveDamage
- str r0, [r1]
- ldr r0, _080198C4 @ =gProtectStructs
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- orrs r0, r4
- strb r0, [r1, 0x1]
- ldr r2, _080198C8 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
-_080198B2:
- ldr r1, _080198CC @ =gBattlescriptCurrInstr
- ldr r0, _080198D0 @ =BattleScript_MoveUsedIsConfused
- b _080198DC
- .align 2, 0
-_080198B8: .4byte gBattleCommunication
-_080198BC: .4byte gBattlerTarget
-_080198C0: .4byte gBattleMoveDamage
-_080198C4: .4byte gProtectStructs
-_080198C8: .4byte gHitMarker
-_080198CC: .4byte gBattlescriptCurrInstr
-_080198D0: .4byte BattleScript_MoveUsedIsConfused
-_080198D4:
- bl BattleScriptPushCursor
- ldr r1, _080198EC @ =gBattlescriptCurrInstr
- ldr r0, _080198F0 @ =BattleScript_MoveUsedIsConfusedNoMore
-_080198DC:
- str r0, [r1]
- movs r1, 0x1
- mov r9, r1
- ldr r2, _080198F4 @ =gBattleStruct
- mov r8, r2
-_080198E6:
- mov r4, r8
- ldr r1, [r4]
- b _08019B90
- .align 2, 0
-_080198EC: .4byte gBattlescriptCurrInstr
-_080198F0: .4byte BattleScript_MoveUsedIsConfusedNoMore
-_080198F4: .4byte gBattleStruct
-_080198F8:
- ldr r1, _08019958 @ =gBattleMons
- ldr r4, _0801995C @ =gBattlerAttacker
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08019946
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- cmp r1, 0
- bne _08019946
- ldr r0, _08019960 @ =gProtectStructs
- ldrb r2, [r4]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08019964 @ =gBattlescriptCurrInstr
- ldr r0, _08019968 @ =BattleScript_MoveUsedIsParalyzed
-_08019934:
- str r0, [r1]
- ldr r2, _0801996C @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r7, 0x1
- mov r9, r7
-_08019946:
- ldr r2, _08019970 @ =gBattleStruct
- ldr r1, [r2]
- adds r1, 0xB7
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r8, r2
- b _08019B98
- .align 2, 0
-_08019958: .4byte gBattleMons
-_0801995C: .4byte gBattlerAttacker
-_08019960: .4byte gProtectStructs
-_08019964: .4byte gBattlescriptCurrInstr
-_08019968: .4byte BattleScript_MoveUsedIsParalyzed
-_0801996C: .4byte gHitMarker
-_08019970: .4byte gBattleStruct
-_08019974:
- ldr r0, _0801999C @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0xA0
- lsls r0, 8
- ands r1, r0
- movs r0, 0x80
- lsls r0, 8
- cmp r1, r0
- beq _08019988
- b _08019B8C
-_08019988:
- ldr r0, _080199A0 @ =gBattlerAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080199AC
- ldr r1, _080199A4 @ =gBattlescriptCurrInstr
- ldr r0, _080199A8 @ =gUnknown_81D9180
- b _080199B0
- .align 2, 0
-_0801999C: .4byte gBattleTypeFlags
-_080199A0: .4byte gBattlerAttacker
-_080199A4: .4byte gBattlescriptCurrInstr
-_080199A8: .4byte gUnknown_81D9180
-_080199AC:
- ldr r1, _080199BC @ =gBattlescriptCurrInstr
- ldr r0, _080199C0 @ =gUnknown_81D9192
-_080199B0:
- str r0, [r1]
- ldr r1, _080199C4 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
- movs r0, 0x1
- b _08019B86
- .align 2, 0
-_080199BC: .4byte gBattlescriptCurrInstr
-_080199C0: .4byte gUnknown_81D9192
-_080199C4: .4byte gBattleCommunication
-_080199C8:
- ldr r1, _08019A00 @ =gBattleMons
- ldr r4, _08019A04 @ =gBattlerAttacker
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0xF0
- lsls r0, 12
- ands r1, r0
- cmp r1, 0
- beq _08019A42
- lsrs r0, r1, 16
- bl CountTrailingZeroBits
- ldr r1, _08019A08 @ =gBattleScripting
- strb r0, [r1, 0x17]
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08019A0C
- bl BattleScriptPushCursor
- b _08019A34
- .align 2, 0
-_08019A00: .4byte gBattleMons
-_08019A04: .4byte gBattlerAttacker
-_08019A08: .4byte gBattleScripting
-_08019A0C:
- ldr r0, _08019A48 @ =BattleScript_MoveUsedIsInLoveCantAttack
- bl BattleScriptPush
- ldr r2, _08019A4C @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- ldr r0, _08019A50 @ =gProtectStructs
- ldrb r2, [r4]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x1]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r4]
- bl CancelMultiTurnMoves
-_08019A34:
- ldr r1, _08019A54 @ =gBattlescriptCurrInstr
- ldr r0, _08019A58 @ =BattleScript_MoveUsedIsInLove
- str r0, [r1]
- movs r4, 0x1
- mov r9, r4
- ldr r7, _08019A5C @ =gBattleStruct
- mov r8, r7
-_08019A42:
- mov r0, r8
- ldr r1, [r0]
- b _08019B90
- .align 2, 0
-_08019A48: .4byte BattleScript_MoveUsedIsInLoveCantAttack
-_08019A4C: .4byte gHitMarker
-_08019A50: .4byte gProtectStructs
-_08019A54: .4byte gBattlescriptCurrInstr
-_08019A58: .4byte BattleScript_MoveUsedIsInLove
-_08019A5C: .4byte gBattleStruct
-_08019A60:
- ldr r1, _08019A98 @ =gBattleMons
- ldr r6, _08019A9C @ =gBattlerAttacker
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r1, 0x50
- adds r3, r0, r1
- ldr r2, [r3]
- movs r4, 0xC0
- lsls r4, 2
- adds r0, r2, 0
- ands r0, r4
- cmp r0, 0
- beq _08019B32
- ldr r7, _08019AA0 @ =0xffffff00
- adds r0, r2, r7
- str r0, [r3]
- ldrb r2, [r6]
- adds r0, r2, 0
- muls r0, r5
- adds r0, r1
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _08019AAC
- ldr r1, _08019AA4 @ =gBattlescriptCurrInstr
- ldr r0, _08019AA8 @ =BattleScript_BideStoringEnergy
- b _08019B2C
- .align 2, 0
-_08019A98: .4byte gBattleMons
-_08019A9C: .4byte gBattlerAttacker
-_08019AA0: .4byte 0xffffff00
-_08019AA4: .4byte gBattlescriptCurrInstr
-_08019AA8: .4byte BattleScript_BideStoringEnergy
-_08019AAC:
- ldr r3, _08019B04 @ =gTakenDmg
- lsls r0, r2, 2
- adds r0, r3
- ldr r0, [r0]
- cmp r0, 0
- beq _08019B28
- ldr r1, _08019B08 @ =gCurrentMove
- movs r0, 0x75
- strh r0, [r1]
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- lsls r0, 1
- mov r1, r10
- str r0, [r1]
- ldr r4, _08019B0C @ =gBattlerTarget
- ldr r1, _08019B10 @ =gTakenDmgByBattler
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r0, _08019B14 @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldr r2, _08019B18 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08019AF6
- movs r0, 0x75
- movs r1, 0x1
- bl GetMoveTarget
- strb r0, [r4]
-_08019AF6:
- ldr r1, _08019B1C @ =gBattlescriptCurrInstr
- ldr r0, _08019B20 @ =BattleScript_BideAttack
- str r0, [r1]
- ldr r2, _08019B24 @ =gBattleStruct
- mov r8, r2
- b _08019B2E
- .align 2, 0
-_08019B04: .4byte gTakenDmg
-_08019B08: .4byte gCurrentMove
-_08019B0C: .4byte gBattlerTarget
-_08019B10: .4byte gTakenDmgByBattler
-_08019B14: .4byte gAbsentBattlerFlags
-_08019B18: .4byte gBitTable
-_08019B1C: .4byte gBattlescriptCurrInstr
-_08019B20: .4byte BattleScript_BideAttack
-_08019B24: .4byte gBattleStruct
-_08019B28:
- ldr r1, _08019B38 @ =gBattlescriptCurrInstr
- ldr r0, _08019B3C @ =BattleScript_BideNoEnergyToAttack
-_08019B2C:
- str r0, [r1]
-_08019B2E:
- movs r4, 0x1
- mov r9, r4
-_08019B32:
- mov r7, r8
- ldr r1, [r7]
- b _08019B90
- .align 2, 0
-_08019B38: .4byte gBattlescriptCurrInstr
-_08019B3C: .4byte BattleScript_BideNoEnergyToAttack
-_08019B40:
- ldr r1, _08019BE8 @ =gBattleMons
- ldr r0, _08019BEC @ =gBattlerAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r4, r0, r1
- ldr r3, [r4]
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _08019B8C
- ldr r2, _08019BF0 @ =gBattleMoves
- ldr r0, _08019BF4 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7D
- bne _08019B84
- movs r0, 0x21
- negs r0, r0
- ands r3, r0
- str r3, [r4]
- bl BattleScriptPushCursor
- ldr r1, _08019BF8 @ =gBattlescriptCurrInstr
- ldr r0, _08019BFC @ =BattleScript_MoveUsedUnfroze
- str r0, [r1]
- ldr r1, _08019C00 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_08019B84:
- movs r0, 0x2
-_08019B86:
- mov r9, r0
- ldr r1, _08019C04 @ =gBattleStruct
- mov r8, r1
-_08019B8C:
- mov r2, r8
- ldr r1, [r2]
-_08019B90:
- adds r1, 0xB7
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08019B98:
- mov r4, r8
- ldr r0, [r4]
- adds r0, 0xB7
- ldrb r0, [r0]
- cmp r0, 0xF
- beq _08019BA8
- bl _080192F8
-_08019BA8:
- mov r7, r9
- cmp r7, 0x2
- bne _08019BD4
- ldr r4, _08019C08 @ =gActiveBattler
- ldr r0, _08019BEC @ =gBattlerAttacker
- ldrb r0, [r0]
- strb r0, [r4]
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _08019C0C @ =gUnknown_2023C30
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl BtlController_EmitSetMonData
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
-_08019BD4:
- mov r0, r9
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08019BE8: .4byte gBattleMons
-_08019BEC: .4byte gBattlerAttacker
-_08019BF0: .4byte gBattleMoves
-_08019BF4: .4byte gCurrentMove
-_08019BF8: .4byte gBattlescriptCurrInstr
-_08019BFC: .4byte BattleScript_MoveUsedUnfroze
-_08019C00: .4byte gBattleCommunication
-_08019C04: .4byte gBattleStruct
-_08019C08: .4byte gActiveBattler
-_08019C0C: .4byte gUnknown_2023C30
- thumb_func_end AtkCanceller_UnableToUseMove
-
- thumb_func_start HasNoMonsToSwitch
-HasNoMonsToSwitch: @ 8019C10
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r3, r4, 0
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- ldr r0, _08019C3C @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08019C40
- movs r0, 0
- b _08019D90
- .align 2, 0
-_08019C3C: .4byte gBattleTypeFlags
-_08019C40:
- movs r0, 0x40
- ands r1, r0
- cmp r1, 0
- beq _08019CCC
- adds r0, r4, 0
- bl GetBankMultiplayerId
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- ldr r1, _08019CC4 @ =gEnemyParty
- mov r8, r1
- cmp r0, 0
- bne _08019C66
- ldr r0, _08019CC8 @ =gPlayerParty
- mov r8, r0
-_08019C66:
- adds r0, r7, 0
- bl GetLinkTrainerFlankId
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 1
- adds r5, r0, r6
- adds r0, r5, 0x3
- cmp r5, r0
- bge _08019CB2
- adds r7, r0, 0
-_08019C7C:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08019CAC
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08019CAC
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _08019CB2
-_08019CAC:
- adds r5, 0x1
- cmp r5, r7
- blt _08019C7C
-_08019CB2:
- movs r1, 0
- lsls r0, r6, 1
- adds r0, r6
- adds r0, 0x3
- cmp r5, r0
- bne _08019CC0
- movs r1, 0x1
-_08019CC0:
- adds r0, r1, 0
- b _08019D90
- .align 2, 0
-_08019CC4: .4byte gEnemyParty
-_08019CC8: .4byte gPlayerParty
-_08019CCC:
- adds r0, r3, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08019CF8
- movs r0, 0x1
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x3
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08019CF4 @ =gEnemyParty
- mov r8, r0
- b _08019D10
- .align 2, 0
-_08019CF4: .4byte gEnemyParty
-_08019CF8:
- movs r0, 0
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x2
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08019DA0 @ =gPlayerParty
- mov r8, r1
-_08019D10:
- mov r0, r10
- cmp r0, 0x6
- bne _08019D20
- ldr r1, _08019DA4 @ =gBattlerPartyIndexes
- lsls r0, r7, 1
- adds r0, r1
- ldrb r0, [r0]
- mov r10, r0
-_08019D20:
- mov r1, r9
- cmp r1, 0x6
- bne _08019D30
- ldr r1, _08019DA4 @ =gBattlerPartyIndexes
- lsls r0, r6, 1
- adds r0, r1
- ldrb r0, [r0]
- mov r9, r0
-_08019D30:
- movs r5, 0
-_08019D32:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08019D82
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08019D82
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08019D82
- cmp r5, r10
- beq _08019D82
- cmp r5, r9
- beq _08019D82
- ldr r0, _08019DA8 @ =gBattleStruct
- ldr r1, [r0]
- adds r0, r7, r1
- adds r0, 0x5C
- ldrb r0, [r0]
- cmp r5, r0
- beq _08019D82
- adds r0, r6, r1
- adds r0, 0x5C
- ldrb r0, [r0]
- cmp r5, r0
- bne _08019D88
-_08019D82:
- adds r5, 0x1
- cmp r5, 0x5
- ble _08019D32
-_08019D88:
- movs r0, 0
- cmp r5, 0x6
- bne _08019D90
- movs r0, 0x1
-_08019D90:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08019DA0: .4byte gPlayerParty
-_08019DA4: .4byte gBattlerPartyIndexes
-_08019DA8: .4byte gBattleStruct
- thumb_func_end HasNoMonsToSwitch
-
- thumb_func_start CastformDataTypeChange
-CastformDataTypeChange: @ 8019DAC
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r1, _08019E1C @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r4, r0, r1
- ldrh r1, [r4]
- ldr r0, _08019E20 @ =0x00000181
- cmp r1, r0
- bne _08019E50
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3B
- bne _08019E50
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- beq _08019E50
- str r5, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _08019DFE
- str r5, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _08019E24
-_08019DFE:
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0
- beq _08019E24
- adds r1, r4, 0
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0
- beq _08019E24
- strb r5, [r2]
- strb r5, [r1]
- movs r0, 0x1
- b _08019F08
- .align 2, 0
-_08019E1C: .4byte gBattleMons
-_08019E20: .4byte 0x00000181
-_08019E24:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08019E50
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _08019E54
-_08019E50:
- movs r0, 0
- b _08019F08
-_08019E54:
- ldr r1, _08019F10 @ =gBattleWeather
- ldrh r0, [r1]
- movs r2, 0xE7
- ands r2, r0
- adds r4, r1, 0
- cmp r2, 0
- bne _08019E82
- ldr r1, _08019F14 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r3, r1, 0
- adds r3, 0x21
- ldrb r0, [r3]
- cmp r0, 0
- beq _08019E82
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0
- beq _08019E82
- strb r2, [r3]
- strb r2, [r1]
- movs r5, 0x1
-_08019E82:
- ldrh r1, [r4]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08019EAE
- ldr r1, _08019F14 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r2, r1, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0xA
- beq _08019EAE
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0xA
- beq _08019EAE
- movs r0, 0xA
- strb r0, [r2]
- strb r0, [r1]
- movs r5, 0x2
-_08019EAE:
- ldrh r1, [r4]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08019EDA
- ldr r1, _08019F14 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r2, r1, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0xB
- beq _08019EDA
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0xB
- beq _08019EDA
- movs r0, 0xB
- strb r0, [r2]
- strb r0, [r1]
- movs r5, 0x3
-_08019EDA:
- ldrh r1, [r4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08019F06
- ldr r1, _08019F14 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r2, r1, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0xF
- beq _08019F06
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0xF
- beq _08019F06
- movs r0, 0xF
- strb r0, [r2]
- strb r0, [r1]
- movs r5, 0x4
-_08019F06:
- adds r0, r5, 0
-_08019F08:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08019F10: .4byte gBattleWeather
-_08019F14: .4byte gBattleMons
- thumb_func_end CastformDataTypeChange
-
- thumb_func_start AbilityBattleEffects
-AbilityBattleEffects: @ 8019F18
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- ldr r4, [sp, 0x48]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0
- mov r9, r0
- ldr r5, _08019F74 @ =gBattlerAttacker
- ldr r1, _08019F78 @ =gBattlersCount
- ldrb r0, [r5]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08019F54
- mov r1, r10
- strb r1, [r5]
-_08019F54:
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08019F84
- ldr r1, _08019F7C @ =gBattlerPartyIndexes
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08019F80 @ =gPlayerParty
- b _08019F94
- .align 2, 0
-_08019F74: .4byte gBattlerAttacker
-_08019F78: .4byte gBattlersCount
-_08019F7C: .4byte gBattlerPartyIndexes
-_08019F80: .4byte gPlayerParty
-_08019F84:
- ldr r1, _08019FC4 @ =gBattlerPartyIndexes
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08019FC8 @ =gEnemyParty
-_08019F94:
- adds r6, r1, r0
- ldr r5, _08019FCC @ =gBattlerTarget
- ldr r1, _08019FD0 @ =gBattlersCount
- ldrb r0, [r5]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08019FA6
- mov r2, r10
- strb r2, [r5]
-_08019FA6:
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08019FD8
- ldr r1, _08019FC4 @ =gBattlerPartyIndexes
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08019FD4 @ =gPlayerParty
- b _08019FE8
- .align 2, 0
-_08019FC4: .4byte gBattlerPartyIndexes
-_08019FC8: .4byte gEnemyParty
-_08019FCC: .4byte gBattlerTarget
-_08019FD0: .4byte gBattlersCount
-_08019FD4: .4byte gPlayerParty
-_08019FD8:
- ldr r1, _0801A038 @ =gBattlerPartyIndexes
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0801A03C @ =gEnemyParty
-_08019FE8:
- adds r5, r1, r0
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x10]
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x14]
- ldr r0, _0801A040 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0801A02A
- bl _0801BBC6
-_0801A02A:
- mov r3, r8
- cmp r3, 0
- beq _0801A048
- ldr r0, _0801A044 @ =gLastUsedAbility
- strb r3, [r0]
- mov r8, r0
- b _0801A05E
- .align 2, 0
-_0801A038: .4byte gBattlerPartyIndexes
-_0801A03C: .4byte gEnemyParty
-_0801A040: .4byte gBattleTypeFlags
-_0801A044: .4byte gLastUsedAbility
-_0801A048:
- ldr r2, _0801A078 @ =gLastUsedAbility
- ldr r1, _0801A07C @ =gBattleMons
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r2]
- mov r8, r2
-_0801A05E:
- cmp r4, 0
- bne _0801A066
- ldr r0, _0801A080 @ =gCurrentMove
- ldrh r4, [r0]
-_0801A066:
- ldr r1, _0801A084 @ =gBattleStruct
- ldr r0, [r1]
- ldrb r0, [r0, 0x13]
- adds r6, r1, 0
- cmp r0, 0
- beq _0801A088
- movs r5, 0x3F
- ands r5, r0
- b _0801A094
- .align 2, 0
-_0801A078: .4byte gLastUsedAbility
-_0801A07C: .4byte gBattleMons
-_0801A080: .4byte gCurrentMove
-_0801A084: .4byte gBattleStruct
-_0801A088:
- ldr r1, _0801A0D0 @ =gBattleMoves
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x2]
-_0801A094:
- ldr r0, _0801A0D4 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0xA0
- lsls r1, 8
- ands r0, r1
- movs r1, 0x80
- lsls r1, 8
- cmp r0, r1
- bne _0801A0BA
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0x16
- bne _0801A0B2
- bl _0801BBC6
-_0801A0B2:
- cmp r0, 0x24
- bne _0801A0BA
- bl _0801BBC6
-_0801A0BA:
- ldr r2, [sp, 0x4]
- cmp r2, 0x13
- bls _0801A0C4
- bl _0801BBAA
-_0801A0C4:
- lsls r0, r2, 2
- ldr r1, _0801A0D8 @ =_0801A0DC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801A0D0: .4byte gBattleMoves
-_0801A0D4: .4byte gBattleTypeFlags
-_0801A0D8: .4byte _0801A0DC
- .align 2, 0
-_0801A0DC:
- .4byte _0801A12C
- .4byte _0801A3E0
- .4byte _0801A600
- .4byte _0801A698
- .4byte _0801A8B8
- .4byte _0801B010
- .4byte _0801B374
- .4byte _0801B3C8
- .4byte _0801B450
- .4byte _0801B4D4
- .4byte _0801B6FC
- .4byte _0801B518
- .4byte _0801B740
- .4byte _0801B79C
- .4byte _0801B7F8
- .4byte _0801B90C
- .4byte _0801B9A8
- .4byte _0801BA04
- .4byte _0801BB78
- .4byte _0801B8B4
-_0801A12C:
- ldr r2, _0801A160 @ =gBattlerAttacker
- ldr r0, _0801A164 @ =gBattlersCount
- ldrb r1, [r2]
- adds r3, r0, 0
- ldrb r4, [r3]
- cmp r1, r4
- bcc _0801A13E
- mov r0, r10
- strb r0, [r2]
-_0801A13E:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0x2D
- bne _0801A148
- b _0801A2AC
-_0801A148:
- cmp r0, 0x2D
- bgt _0801A178
- cmp r0, 0xD
- bne _0801A152
- b _0801A3A8
-_0801A152:
- cmp r0, 0xD
- bgt _0801A168
- cmp r0, 0x2
- bne _0801A15C
- b _0801A27C
-_0801A15C:
- bl _0801BBAA
- .align 2, 0
-_0801A160: .4byte gBattlerAttacker
-_0801A164: .4byte gBattlersCount
-_0801A168:
- cmp r0, 0x16
- bne _0801A16E
- b _0801A30C
-_0801A16E:
- cmp r0, 0x24
- bne _0801A174
- b _0801A36C
-_0801A174:
- bl _0801BBAA
-_0801A178:
- cmp r0, 0x46
- bne _0801A17E
- b _0801A2DC
-_0801A17E:
- cmp r0, 0x46
- bgt _0801A18C
- cmp r0, 0x3B
- bne _0801A188
- b _0801A340
-_0801A188:
- bl _0801BBAA
-_0801A18C:
- cmp r0, 0x4D
- bne _0801A192
- b _0801A3A8
-_0801A192:
- cmp r0, 0xFF
- beq _0801A19A
- bl _0801BBAA
-_0801A19A:
- bl weather_get_current
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x3
- cmp r0, 0xA
- bhi _0801A250
- lsls r0, 2
- ldr r1, _0801A1B4 @ =_0801A1B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801A1B4: .4byte _0801A1B8
- .align 2, 0
-_0801A1B8:
- .4byte _0801A1E4
- .4byte _0801A250
- .4byte _0801A1E4
- .4byte _0801A250
- .4byte _0801A250
- .4byte _0801A208
- .4byte _0801A250
- .4byte _0801A250
- .4byte _0801A250
- .4byte _0801A22C
- .4byte _0801A1E4
-_0801A1E4:
- ldr r2, _0801A200 @ =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801A250
- movs r0, 0x5
- strh r0, [r2]
- ldr r1, _0801A204 @ =gBattleScripting
- movs r0, 0xA
- strb r0, [r1, 0x10]
- mov r2, r10
- strb r2, [r1, 0x17]
- b _0801A246
- .align 2, 0
-_0801A200: .4byte gBattleWeather
-_0801A204: .4byte gBattleScripting
-_0801A208:
- ldr r3, _0801A224 @ =gBattleWeather
- ldrh r1, [r3]
- movs r2, 0x18
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0801A250
- strh r2, [r3]
- ldr r1, _0801A228 @ =gBattleScripting
- movs r0, 0xC
- strb r0, [r1, 0x10]
- mov r3, r10
- strb r3, [r1, 0x17]
- b _0801A246
- .align 2, 0
-_0801A224: .4byte gBattleWeather
-_0801A228: .4byte gBattleScripting
-_0801A22C:
- ldr r3, _0801A26C @ =gBattleWeather
- ldrh r1, [r3]
- movs r2, 0x60
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0801A250
- strh r2, [r3]
- ldr r1, _0801A270 @ =gBattleScripting
- movs r0, 0xB
- strb r0, [r1, 0x10]
- mov r4, r10
- strb r4, [r1, 0x17]
-_0801A246:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801A250:
- mov r0, r9
- cmp r0, 0
- bne _0801A25A
- bl _0801BBC6
-_0801A25A:
- bl weather_get_current
- ldr r1, _0801A274 @ =gBattleCommunication
- strb r0, [r1, 0x5]
- ldr r0, _0801A278 @ =BattleScript_OverworldWeatherStarts
- bl BattleScriptPushCursorAndCallback
- bl _0801BBAA
- .align 2, 0
-_0801A26C: .4byte gBattleWeather
-_0801A270: .4byte gBattleScripting
-_0801A274: .4byte gBattleCommunication
-_0801A278: .4byte BattleScript_OverworldWeatherStarts
-_0801A27C:
- ldr r2, _0801A2A0 @ =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801A28C
- bl _0801BBAA
-_0801A28C:
- movs r0, 0x5
- strh r0, [r2]
- ldr r0, _0801A2A4 @ =BattleScript_DrizzleActivates
- bl BattleScriptPushCursorAndCallback
- ldr r0, _0801A2A8 @ =gBattleScripting
- mov r1, r10
- strb r1, [r0, 0x17]
- bl _0801BB5A
- .align 2, 0
-_0801A2A0: .4byte gBattleWeather
-_0801A2A4: .4byte BattleScript_DrizzleActivates
-_0801A2A8: .4byte gBattleScripting
-_0801A2AC:
- ldr r2, _0801A2D0 @ =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0801A2BC
- bl _0801BBAA
-_0801A2BC:
- movs r0, 0x18
- strh r0, [r2]
- ldr r0, _0801A2D4 @ =BattleScript_SandstreamActivates
- bl BattleScriptPushCursorAndCallback
- ldr r0, _0801A2D8 @ =gBattleScripting
- mov r2, r10
- strb r2, [r0, 0x17]
- bl _0801BB5A
- .align 2, 0
-_0801A2D0: .4byte gBattleWeather
-_0801A2D4: .4byte BattleScript_SandstreamActivates
-_0801A2D8: .4byte gBattleScripting
-_0801A2DC:
- ldr r2, _0801A300 @ =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801A2EC
- bl _0801BBAA
-_0801A2EC:
- movs r0, 0x60
- strh r0, [r2]
- ldr r0, _0801A304 @ =BattleScript_DroughtActivates
- bl BattleScriptPushCursorAndCallback
- ldr r0, _0801A308 @ =gBattleScripting
- mov r3, r10
- strb r3, [r0, 0x17]
- bl _0801BB5A
- .align 2, 0
-_0801A300: .4byte gBattleWeather
-_0801A304: .4byte BattleScript_DroughtActivates
-_0801A308: .4byte gBattleScripting
-_0801A30C:
- ldr r0, _0801A338 @ =gSpecialStatuses
- mov r4, r10
- lsls r2, r4, 2
- adds r1, r2, r4
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3]
- lsls r0, 28
- cmp r0, 0
- bge _0801A324
- bl _0801BBAA
-_0801A324:
- ldr r1, _0801A33C @ =gStatuses3
- adds r1, r2, r1
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 12
- orrs r0, r2
- str r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x8
- b _0801A396
- .align 2, 0
-_0801A338: .4byte gSpecialStatuses
-_0801A33C: .4byte gStatuses3
-_0801A340:
- mov r0, r10
- bl CastformDataTypeChange
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0
- bne _0801A354
- bl _0801BBC6
-_0801A354:
- ldr r0, _0801A364 @ =BattleScript_CastformChange
- bl BattleScriptPushCursorAndCallback
- ldr r0, _0801A368 @ =gBattleScripting
- mov r1, r10
- strb r1, [r0, 0x17]
- bl _0801BA6A
- .align 2, 0
-_0801A364: .4byte BattleScript_CastformChange
-_0801A368: .4byte gBattleScripting
-_0801A36C:
- ldr r0, _0801A3A0 @ =gSpecialStatuses
- mov r3, r10
- lsls r2, r3, 2
- adds r1, r2, r3
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3]
- lsls r0, 27
- cmp r0, 0
- bge _0801A384
- bl _0801BBAA
-_0801A384:
- ldr r1, _0801A3A4 @ =gStatuses3
- adds r1, r2, r1
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 13
- orrs r0, r2
- str r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x10
-_0801A396:
- orrs r0, r1
- strb r0, [r3]
- bl _0801BBAA
- .align 2, 0
-_0801A3A0: .4byte gSpecialStatuses
-_0801A3A4: .4byte gStatuses3
-_0801A3A8:
- movs r4, 0
- ldrb r3, [r3]
- cmp r4, r3
- bcc _0801A3B4
- bl _0801BBAA
-_0801A3B4:
- adds r0, r4, 0
- bl CastformDataTypeChange
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0
- beq _0801A3C8
- bl _0801BA60
-_0801A3C8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0801A3DC @ =gBattlersCount
- ldrb r0, [r0]
- cmp r4, r0
- bcc _0801A3B4
- bl _0801BBAA
- .align 2, 0
-_0801A3DC: .4byte gBattlersCount
-_0801A3E0:
- ldr r7, _0801A410 @ =gBattleMons
- movs r0, 0x58
- mov r6, r10
- muls r6, r0
- adds r4, r6, r7
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- bne _0801A3F4
- bl _0801BBAA
-_0801A3F4:
- ldr r0, _0801A414 @ =gBattlerAttacker
- mov r1, r10
- strb r1, [r0]
- mov r2, r8
- ldrb r5, [r2]
- cmp r5, 0x2C
- beq _0801A426
- cmp r5, 0x2C
- bgt _0801A418
- cmp r5, 0x3
- bne _0801A40C
- b _0801A58C
-_0801A40C:
- bl _0801BBAA
- .align 2, 0
-_0801A410: .4byte gBattleMons
-_0801A414: .4byte gBattlerAttacker
-_0801A418:
- cmp r5, 0x36
- bne _0801A41E
- b _0801A5D8
-_0801A41E:
- cmp r5, 0x3D
- beq _0801A4A8
- bl _0801BBAA
-_0801A426:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0801A442
- bl _0801BBAA
-_0801A442:
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _0801A45A
- bl _0801BBAA
-_0801A45A:
- ldr r0, _0801A49C @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801A46A
- bl _0801BBAA
-_0801A46A:
- ldrh r0, [r4, 0x2C]
- ldrh r3, [r4, 0x28]
- cmp r0, r3
- bhi _0801A476
- bl _0801BBAA
-_0801A476:
- mov r0, r8
- strb r5, [r0]
- ldr r0, _0801A4A0 @ =BattleScript_RainDishActivates
- bl BattleScriptPushCursorAndCallback
- ldr r1, _0801A4A4 @ =gBattleMoveDamage
- ldrh r0, [r4, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _0801A490
- movs r0, 0x1
- str r0, [r1]
-_0801A490:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- bl _0801BB5A
- .align 2, 0
-_0801A49C: .4byte gBattleWeather
-_0801A4A0: .4byte BattleScript_RainDishActivates
-_0801A4A4: .4byte gBattleMoveDamage
-_0801A4A8:
- adds r0, r7, 0
- adds r0, 0x4C
- adds r5, r6, r0
- ldrb r0, [r5]
- cmp r0, 0
- bne _0801A4B8
- bl _0801BBAA
-_0801A4B8:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _0801A4D2
- bl _0801BBAA
-_0801A4D2:
- ldr r0, [r5]
- movs r1, 0x88
- ands r0, r1
- cmp r0, 0
- beq _0801A4E4
- ldr r0, _0801A564 @ =gBattleTextBuff1
- ldr r1, _0801A568 @ =gUnknown_8250094
- bl StringCopy
-_0801A4E4:
- ldr r0, [r5]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0801A4F6
- ldr r0, _0801A564 @ =gBattleTextBuff1
- ldr r1, _0801A56C @ =gUnknown_825009C
- bl StringCopy
-_0801A4F6:
- ldr r0, [r5]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801A508
- ldr r0, _0801A564 @ =gBattleTextBuff1
- ldr r1, _0801A570 @ =gUnknown_82500A4
- bl StringCopy
-_0801A508:
- ldr r0, [r5]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0801A51A
- ldr r0, _0801A564 @ =gBattleTextBuff1
- ldr r1, _0801A574 @ =gUnknown_82500AC
- bl StringCopy
-_0801A51A:
- ldr r0, [r5]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801A52C
- ldr r0, _0801A564 @ =gBattleTextBuff1
- ldr r1, _0801A578 @ =gUnknown_82500B4
- bl StringCopy
-_0801A52C:
- str r4, [r5]
- adds r1, r7, 0
- adds r1, 0x50
- adds r1, r6, r1
- ldr r0, [r1]
- ldr r2, _0801A57C @ =0xf7ffffff
- ands r0, r2
- str r0, [r1]
- ldr r0, _0801A580 @ =gBattleScripting
- ldr r4, _0801A584 @ =gActiveBattler
- mov r1, r10
- strb r1, [r4]
- strb r1, [r0, 0x17]
- ldr r0, _0801A588 @ =BattleScript_ShedSkinActivates
- bl BattleScriptPushCursorAndCallback
- str r5, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl BtlController_EmitSetMonData
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- bl _0801BB5A
- .align 2, 0
-_0801A564: .4byte gBattleTextBuff1
-_0801A568: .4byte gUnknown_8250094
-_0801A56C: .4byte gUnknown_825009C
-_0801A570: .4byte gUnknown_82500A4
-_0801A574: .4byte gUnknown_82500AC
-_0801A578: .4byte gUnknown_82500B4
-_0801A57C: .4byte 0xf7ffffff
-_0801A580: .4byte gBattleScripting
-_0801A584: .4byte gActiveBattler
-_0801A588: .4byte BattleScript_ShedSkinActivates
-_0801A58C:
- ldrb r2, [r4, 0x1B]
- movs r0, 0x1B
- ldrsb r0, [r4, r0]
- cmp r0, 0xB
- ble _0801A59A
- bl _0801BBAA
-_0801A59A:
- ldr r0, _0801A5CC @ =gDisableStructs
- mov r3, r10
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x16]
- cmp r0, 0x2
- bne _0801A5B0
- bl _0801BBAA
-_0801A5B0:
- adds r0, r2, 0x1
- movs r1, 0
- strb r0, [r4, 0x1B]
- ldr r4, _0801A5D0 @ =gBattleScripting
- movs r0, 0x11
- strb r0, [r4, 0x10]
- strb r1, [r4, 0x11]
- ldr r0, _0801A5D4 @ =BattleScript_SpeedBoostActivates
- bl BattleScriptPushCursorAndCallback
- mov r0, r10
- strb r0, [r4, 0x17]
- bl _0801BB5A
- .align 2, 0
-_0801A5CC: .4byte gDisableStructs
-_0801A5D0: .4byte gBattleScripting
-_0801A5D4: .4byte BattleScript_SpeedBoostActivates
-_0801A5D8:
- ldr r2, _0801A5FC @ =gDisableStructs
- ldrb r0, [r0]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r3, [r1, 0x18]
- lsls r0, r3, 31
- lsrs r0, 31
- movs r2, 0x1
- eors r2, r0
- movs r0, 0x2
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x18]
- bl _0801BBAA
- .align 2, 0
-_0801A5FC: .4byte gDisableStructs
-_0801A600:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0x2B
- beq _0801A60C
- bl _0801BBAA
-_0801A60C:
- movs r5, 0
- ldr r0, _0801A67C @ =sSoundMovesTable
- ldrh r2, [r0]
- ldr r3, _0801A680 @ =0x0000ffff
- adds r1, r0, 0
- cmp r2, r3
- bne _0801A61E
- bl _0801BBAA
-_0801A61E:
- cmp r2, r4
- beq _0801A636
- adds r2, r1, 0
-_0801A624:
- adds r2, 0x2
- adds r5, 0x1
- ldrh r0, [r2]
- cmp r0, r3
- bne _0801A632
- bl _0801BBAA
-_0801A632:
- cmp r0, r4
- bne _0801A624
-_0801A636:
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _0801A680 @ =0x0000ffff
- cmp r1, r0
- bne _0801A646
- bl _0801BBAA
-_0801A646:
- ldr r1, _0801A684 @ =gBattleMons
- ldr r0, _0801A688 @ =gBattlerAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- beq _0801A66C
- ldr r0, _0801A68C @ =gHitMarker
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 4
- orrs r1, r2
- str r1, [r0]
-_0801A66C:
- ldr r1, _0801A690 @ =gBattlescriptCurrInstr
- ldr r0, _0801A694 @ =BattleScript_SoundproofProtected
- str r0, [r1]
- movs r2, 0x1
- mov r9, r2
- bl _0801BBB0
- .align 2, 0
-_0801A67C: .4byte sSoundMovesTable
-_0801A680: .4byte 0x0000ffff
-_0801A684: .4byte gBattleMons
-_0801A688: .4byte gBattlerAttacker
-_0801A68C: .4byte gHitMarker
-_0801A690: .4byte gBattlescriptCurrInstr
-_0801A694: .4byte BattleScript_SoundproofProtected
-_0801A698:
- cmp r4, 0
- bne _0801A6A0
- bl _0801BBAA
-_0801A6A0:
- mov r3, r8
- ldrb r0, [r3]
- cmp r0, 0xB
- beq _0801A710
- cmp r0, 0xB
- bgt _0801A6B2
- cmp r0, 0xA
- beq _0801A6B8
- b _0801A832
-_0801A6B2:
- cmp r0, 0x12
- beq _0801A768
- b _0801A832
-_0801A6B8:
- cmp r5, 0xD
- beq _0801A6BE
- b _0801A832
-_0801A6BE:
- ldr r0, _0801A6E8 @ =gBattleMoves
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _0801A6D0
- b _0801A832
-_0801A6D0:
- ldr r1, _0801A6EC @ =gProtectStructs
- ldr r0, _0801A6F0 @ =gBattlerAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _0801A6FC
- ldr r1, _0801A6F4 @ =gBattlescriptCurrInstr
- ldr r0, _0801A6F8 @ =BattleScript_MoveHPDrain
- b _0801A700
- .align 2, 0
-_0801A6E8: .4byte gBattleMoves
-_0801A6EC: .4byte gProtectStructs
-_0801A6F0: .4byte gBattlerAttacker
-_0801A6F4: .4byte gBattlescriptCurrInstr
-_0801A6F8: .4byte BattleScript_MoveHPDrain
-_0801A6FC:
- ldr r1, _0801A708 @ =gBattlescriptCurrInstr
- ldr r0, _0801A70C @ =BattleScript_MoveHPDrain_PPLoss
-_0801A700:
- str r0, [r1]
- movs r4, 0x1
- mov r9, r4
- b _0801A832
- .align 2, 0
-_0801A708: .4byte gBattlescriptCurrInstr
-_0801A70C: .4byte BattleScript_MoveHPDrain_PPLoss
-_0801A710:
- cmp r5, 0xB
- beq _0801A716
- b _0801A832
-_0801A716:
- ldr r0, _0801A740 @ =gBattleMoves
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _0801A728
- b _0801A832
-_0801A728:
- ldr r1, _0801A744 @ =gProtectStructs
- ldr r0, _0801A748 @ =gBattlerAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _0801A754
- ldr r1, _0801A74C @ =gBattlescriptCurrInstr
- ldr r0, _0801A750 @ =BattleScript_MoveHPDrain
- b _0801A758
- .align 2, 0
-_0801A740: .4byte gBattleMoves
-_0801A744: .4byte gProtectStructs
-_0801A748: .4byte gBattlerAttacker
-_0801A74C: .4byte gBattlescriptCurrInstr
-_0801A750: .4byte BattleScript_MoveHPDrain
-_0801A754:
- ldr r1, _0801A760 @ =gBattlescriptCurrInstr
- ldr r0, _0801A764 @ =BattleScript_MoveHPDrain_PPLoss
-_0801A758:
- str r0, [r1]
- movs r0, 0x1
- b _0801A830
- .align 2, 0
-_0801A760: .4byte gBattlescriptCurrInstr
-_0801A764: .4byte BattleScript_MoveHPDrain_PPLoss
-_0801A768:
- cmp r5, 0xA
- bne _0801A832
- ldr r1, _0801A7B8 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0801A832
- ldr r2, _0801A7BC @ =gBattleResources
- ldr r0, [r2]
- ldr r0, [r0, 0x4]
- mov r3, r10
- lsls r1, r3, 2
- adds r0, r1
- ldr r3, [r0]
- movs r4, 0x1
- ands r3, r4
- adds r5, r1, 0
- cmp r3, 0
- bne _0801A7F8
- ldr r0, _0801A7C0 @ =gBattleCommunication
- strb r3, [r0, 0x5]
- ldr r1, _0801A7C4 @ =gProtectStructs
- ldr r0, _0801A7C8 @ =gBattlerAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _0801A7D4
- ldr r1, _0801A7CC @ =gBattlescriptCurrInstr
- ldr r0, _0801A7D0 @ =BattleScript_FlashFireBoost
- b _0801A7D8
- .align 2, 0
-_0801A7B8: .4byte gBattleMons
-_0801A7BC: .4byte gBattleResources
-_0801A7C0: .4byte gBattleCommunication
-_0801A7C4: .4byte gProtectStructs
-_0801A7C8: .4byte gBattlerAttacker
-_0801A7CC: .4byte gBattlescriptCurrInstr
-_0801A7D0: .4byte BattleScript_FlashFireBoost
-_0801A7D4:
- ldr r1, _0801A7F0 @ =gBattlescriptCurrInstr
- ldr r0, _0801A7F4 @ =BattleScript_FlashFireBoost_PPLoss
-_0801A7D8:
- str r0, [r1]
- ldr r0, [r2]
- ldr r1, [r0, 0x4]
- adds r1, r5
- ldr r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- str r0, [r1]
- movs r4, 0x2
- mov r9, r4
- b _0801A832
- .align 2, 0
-_0801A7F0: .4byte gBattlescriptCurrInstr
-_0801A7F4: .4byte BattleScript_FlashFireBoost_PPLoss
-_0801A7F8:
- ldr r0, _0801A814 @ =gBattleCommunication
- strb r4, [r0, 0x5]
- ldr r1, _0801A818 @ =gProtectStructs
- ldr r0, _0801A81C @ =gBattlerAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _0801A828
- ldr r1, _0801A820 @ =gBattlescriptCurrInstr
- ldr r0, _0801A824 @ =BattleScript_FlashFireBoost
- b _0801A82C
- .align 2, 0
-_0801A814: .4byte gBattleCommunication
-_0801A818: .4byte gProtectStructs
-_0801A81C: .4byte gBattlerAttacker
-_0801A820: .4byte gBattlescriptCurrInstr
-_0801A824: .4byte BattleScript_FlashFireBoost
-_0801A828:
- ldr r1, _0801A86C @ =gBattlescriptCurrInstr
- ldr r0, _0801A870 @ =BattleScript_FlashFireBoost_PPLoss
-_0801A82C:
- str r0, [r1]
- movs r0, 0x2
-_0801A830:
- mov r9, r0
-_0801A832:
- mov r1, r9
- cmp r1, 0x1
- beq _0801A83C
- bl _0801BBAA
-_0801A83C:
- ldr r1, _0801A874 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r1, r0, r1
- ldrh r0, [r1, 0x2C]
- ldrh r3, [r1, 0x28]
- cmp r0, r3
- bne _0801A898
- ldr r1, _0801A878 @ =gProtectStructs
- ldr r0, _0801A87C @ =gBattlerAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _0801A884
- ldr r1, _0801A86C @ =gBattlescriptCurrInstr
- ldr r0, _0801A880 @ =BattleScript_MonMadeMoveUseless
- str r0, [r1]
- bl _0801BBAA
- .align 2, 0
-_0801A86C: .4byte gBattlescriptCurrInstr
-_0801A870: .4byte BattleScript_FlashFireBoost_PPLoss
-_0801A874: .4byte gBattleMons
-_0801A878: .4byte gProtectStructs
-_0801A87C: .4byte gBattlerAttacker
-_0801A880: .4byte BattleScript_MonMadeMoveUseless
-_0801A884:
- ldr r1, _0801A890 @ =gBattlescriptCurrInstr
- ldr r0, _0801A894 @ =BattleScript_MonMadeMoveUseless_PPLoss
- str r0, [r1]
- bl _0801BBAA
- .align 2, 0
-_0801A890: .4byte gBattlescriptCurrInstr
-_0801A894: .4byte BattleScript_MonMadeMoveUseless_PPLoss
-_0801A898:
- ldr r2, _0801A8B4 @ =gBattleMoveDamage
- ldrh r0, [r1, 0x2C]
- lsrs r0, 2
- str r0, [r2]
- cmp r0, 0
- bne _0801A8A8
- mov r4, r9
- str r4, [r2]
-_0801A8A8:
- ldr r0, [r2]
- negs r0, r0
- str r0, [r2]
- bl _0801BBAA
- .align 2, 0
-_0801A8B4: .4byte gBattleMoveDamage
-_0801A8B8:
- mov r1, r8
- ldrb r0, [r1]
- subs r0, 0x9
- cmp r0, 0x2F
- bls _0801A8C6
- bl _0801BBAA
-_0801A8C6:
- lsls r0, 2
- ldr r1, _0801A8D0 @ =_0801A8D4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801A8D0: .4byte _0801A8D4
- .align 2, 0
-_0801A8D4:
- .4byte _0801ACF0
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801A994
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801AA5C
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801AB1C
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801AC14
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801ADCC
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801BBAA
- .4byte _0801AEA8
-_0801A994:
- ldr r0, _0801AA3C @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801A9A4
- bl _0801BBAA
-_0801A9A4:
- cmp r4, 0xA5
- bne _0801A9AC
- bl _0801BBAA
-_0801A9AC:
- ldr r0, _0801AA40 @ =gBattleMoves
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _0801A9C0
- bl _0801BBAA
-_0801A9C0:
- ldr r2, _0801AA44 @ =gSpecialStatuses
- ldr r0, _0801AA48 @ =gBattlerTarget
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801A9E8
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801A9E8
- bl _0801BBAA
-_0801A9E8:
- ldr r1, _0801AA4C @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r1, r0, r1
- adds r3, r1, 0
- adds r3, 0x21
- ldrb r0, [r3]
- cmp r0, r5
- bne _0801AA02
- bl _0801BBAA
-_0801AA02:
- adds r2, r1, 0
- adds r2, 0x22
- ldrb r0, [r2]
- cmp r0, r5
- bne _0801AA10
- bl _0801BBAA
-_0801AA10:
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- bne _0801AA1A
- bl _0801BBAA
-_0801AA1A:
- strb r5, [r3]
- strb r5, [r2]
- ldr r1, _0801AA50 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r5, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- bl BattleScriptPushCursor
- ldr r1, _0801AA54 @ =gBattlescriptCurrInstr
- ldr r0, _0801AA58 @ =BattleScript_ColorChangeActivates
- str r0, [r1]
- bl _0801BB5A
- .align 2, 0
-_0801AA3C: .4byte gMoveResultFlags
-_0801AA40: .4byte gBattleMoves
-_0801AA44: .4byte gSpecialStatuses
-_0801AA48: .4byte gBattlerTarget
-_0801AA4C: .4byte gBattleMons
-_0801AA50: .4byte gBattleTextBuff1
-_0801AA54: .4byte gBattlescriptCurrInstr
-_0801AA58: .4byte BattleScript_ColorChangeActivates
-_0801AA5C:
- ldr r0, _0801AAF4 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801AA6C
- bl _0801BBAA
-_0801AA6C:
- ldr r1, _0801AAF8 @ =gBattleMons
- ldr r0, _0801AAFC @ =gBattlerAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r3, r0, r1
- ldrh r0, [r3, 0x28]
- cmp r0, 0
- bne _0801AA82
- bl _0801BBAA
-_0801AA82:
- ldr r0, _0801AB00 @ =gProtectStructs
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _0801AA94
- bl _0801BBAA
-_0801AA94:
- ldr r2, _0801AB04 @ =gSpecialStatuses
- ldr r0, _0801AB08 @ =gBattlerTarget
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801AABC
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801AABC
- bl _0801BBAA
-_0801AABC:
- ldr r1, _0801AB0C @ =gBattleMoves
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0801AAD6
- bl _0801BBAA
-_0801AAD6:
- ldr r1, _0801AB10 @ =gBattleMoveDamage
- ldrh r0, [r3, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _0801AAE4
- str r2, [r1]
-_0801AAE4:
- bl BattleScriptPushCursor
- ldr r1, _0801AB14 @ =gBattlescriptCurrInstr
- ldr r0, _0801AB18 @ =BattleScript_RoughSkinActivates
- str r0, [r1]
- bl _0801BB5A
- .align 2, 0
-_0801AAF4: .4byte gMoveResultFlags
-_0801AAF8: .4byte gBattleMons
-_0801AAFC: .4byte gBattlerAttacker
-_0801AB00: .4byte gProtectStructs
-_0801AB04: .4byte gSpecialStatuses
-_0801AB08: .4byte gBattlerTarget
-_0801AB0C: .4byte gBattleMoves
-_0801AB10: .4byte gBattleMoveDamage
-_0801AB14: .4byte gBattlescriptCurrInstr
-_0801AB18: .4byte BattleScript_RoughSkinActivates
-_0801AB1C:
- ldr r0, _0801ABE8 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801AB2C
- bl _0801BBAA
-_0801AB2C:
- ldr r1, _0801ABEC @ =gBattleMons
- ldr r0, _0801ABF0 @ =gBattlerAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801AB42
- bl _0801BBAA
-_0801AB42:
- ldr r0, _0801ABF4 @ =gProtectStructs
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _0801AB54
- bl _0801BBAA
-_0801AB54:
- ldr r2, _0801ABF8 @ =gSpecialStatuses
- ldr r0, _0801ABFC @ =gBattlerTarget
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801AB7C
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801AB7C
- bl _0801BBAA
-_0801AB7C:
- ldr r1, _0801AC00 @ =gBattleMoves
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0801AB94
- bl _0801BBAA
-_0801AB94:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _0801ABAC
- bl _0801BBAA
-_0801ABAC:
- ldr r5, _0801AC04 @ =gBattleCommunication
- movs r4, 0x3
-_0801ABB0:
- bl Random
- ands r0, r4
- strb r0, [r5, 0x3]
- cmp r0, 0
- beq _0801ABB0
- ldr r1, _0801AC04 @ =gBattleCommunication
- ldrb r0, [r1, 0x3]
- cmp r0, 0x3
- bne _0801ABC8
- adds r0, 0x2
- strb r0, [r1, 0x3]
-_0801ABC8:
- ldrb r0, [r1, 0x3]
- adds r0, 0x40
- strb r0, [r1, 0x3]
- bl BattleScriptPushCursor
- ldr r1, _0801AC08 @ =gBattlescriptCurrInstr
- ldr r0, _0801AC0C @ =BattleScript_ApplySecondaryEffect
- str r0, [r1]
- ldr r2, _0801AC10 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _0801BB5A
- .align 2, 0
-_0801ABE8: .4byte gMoveResultFlags
-_0801ABEC: .4byte gBattleMons
-_0801ABF0: .4byte gBattlerAttacker
-_0801ABF4: .4byte gProtectStructs
-_0801ABF8: .4byte gSpecialStatuses
-_0801ABFC: .4byte gBattlerTarget
-_0801AC00: .4byte gBattleMoves
-_0801AC04: .4byte gBattleCommunication
-_0801AC08: .4byte gBattlescriptCurrInstr
-_0801AC0C: .4byte BattleScript_ApplySecondaryEffect
-_0801AC10: .4byte gHitMarker
-_0801AC14:
- ldr r0, _0801ACC4 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801AC24
- bl _0801BBAA
-_0801AC24:
- ldr r1, _0801ACC8 @ =gBattleMons
- ldr r0, _0801ACCC @ =gBattlerAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801AC3A
- bl _0801BBAA
-_0801AC3A:
- ldr r0, _0801ACD0 @ =gProtectStructs
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _0801AC4C
- bl _0801BBAA
-_0801AC4C:
- ldr r2, _0801ACD4 @ =gSpecialStatuses
- ldr r0, _0801ACD8 @ =gBattlerTarget
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801AC74
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801AC74
- bl _0801BBAA
-_0801AC74:
- ldr r1, _0801ACDC @ =gBattleMoves
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0801AC8C
- bl _0801BBAA
-_0801AC8C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _0801ACA4
- bl _0801BBAA
-_0801ACA4:
- ldr r1, _0801ACE0 @ =gBattleCommunication
- movs r0, 0x42
- strb r0, [r1, 0x3]
- bl BattleScriptPushCursor
- ldr r1, _0801ACE4 @ =gBattlescriptCurrInstr
- ldr r0, _0801ACE8 @ =BattleScript_ApplySecondaryEffect
- str r0, [r1]
- ldr r2, _0801ACEC @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _0801BB5A
- .align 2, 0
-_0801ACC4: .4byte gMoveResultFlags
-_0801ACC8: .4byte gBattleMons
-_0801ACCC: .4byte gBattlerAttacker
-_0801ACD0: .4byte gProtectStructs
-_0801ACD4: .4byte gSpecialStatuses
-_0801ACD8: .4byte gBattlerTarget
-_0801ACDC: .4byte gBattleMoves
-_0801ACE0: .4byte gBattleCommunication
-_0801ACE4: .4byte gBattlescriptCurrInstr
-_0801ACE8: .4byte BattleScript_ApplySecondaryEffect
-_0801ACEC: .4byte gHitMarker
-_0801ACF0:
- ldr r0, _0801ADA0 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801AD00
- bl _0801BBAA
-_0801AD00:
- ldr r1, _0801ADA4 @ =gBattleMons
- ldr r0, _0801ADA8 @ =gBattlerAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801AD16
- bl _0801BBAA
-_0801AD16:
- ldr r0, _0801ADAC @ =gProtectStructs
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _0801AD28
- bl _0801BBAA
-_0801AD28:
- ldr r2, _0801ADB0 @ =gSpecialStatuses
- ldr r0, _0801ADB4 @ =gBattlerTarget
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801AD50
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801AD50
- bl _0801BBAA
-_0801AD50:
- ldr r1, _0801ADB8 @ =gBattleMoves
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0801AD68
- bl _0801BBAA
-_0801AD68:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _0801AD80
- bl _0801BBAA
-_0801AD80:
- ldr r1, _0801ADBC @ =gBattleCommunication
- movs r0, 0x45
- strb r0, [r1, 0x3]
- bl BattleScriptPushCursor
- ldr r1, _0801ADC0 @ =gBattlescriptCurrInstr
- ldr r0, _0801ADC4 @ =BattleScript_ApplySecondaryEffect
- str r0, [r1]
- ldr r2, _0801ADC8 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _0801BB5A
- .align 2, 0
-_0801ADA0: .4byte gMoveResultFlags
-_0801ADA4: .4byte gBattleMons
-_0801ADA8: .4byte gBattlerAttacker
-_0801ADAC: .4byte gProtectStructs
-_0801ADB0: .4byte gSpecialStatuses
-_0801ADB4: .4byte gBattlerTarget
-_0801ADB8: .4byte gBattleMoves
-_0801ADBC: .4byte gBattleCommunication
-_0801ADC0: .4byte gBattlescriptCurrInstr
-_0801ADC4: .4byte BattleScript_ApplySecondaryEffect
-_0801ADC8: .4byte gHitMarker
-_0801ADCC:
- ldr r0, _0801AE7C @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801ADDC
- bl _0801BBAA
-_0801ADDC:
- ldr r1, _0801AE80 @ =gBattleMons
- ldr r0, _0801AE84 @ =gBattlerAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801ADF2
- bl _0801BBAA
-_0801ADF2:
- ldr r0, _0801AE88 @ =gProtectStructs
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _0801AE04
- bl _0801BBAA
-_0801AE04:
- ldr r1, _0801AE8C @ =gBattleMoves
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0801AE1C
- bl _0801BBAA
-_0801AE1C:
- ldr r2, _0801AE90 @ =gSpecialStatuses
- ldr r0, _0801AE94 @ =gBattlerTarget
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801AE44
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801AE44
- bl _0801BBAA
-_0801AE44:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _0801AE5C
- bl _0801BBAA
-_0801AE5C:
- ldr r1, _0801AE98 @ =gBattleCommunication
- movs r0, 0x43
- strb r0, [r1, 0x3]
- bl BattleScriptPushCursor
- ldr r1, _0801AE9C @ =gBattlescriptCurrInstr
- ldr r0, _0801AEA0 @ =BattleScript_ApplySecondaryEffect
- str r0, [r1]
- ldr r2, _0801AEA4 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _0801BB5A
- .align 2, 0
-_0801AE7C: .4byte gMoveResultFlags
-_0801AE80: .4byte gBattleMons
-_0801AE84: .4byte gBattlerAttacker
-_0801AE88: .4byte gProtectStructs
-_0801AE8C: .4byte gBattleMoves
-_0801AE90: .4byte gSpecialStatuses
-_0801AE94: .4byte gBattlerTarget
-_0801AE98: .4byte gBattleCommunication
-_0801AE9C: .4byte gBattlescriptCurrInstr
-_0801AEA0: .4byte BattleScript_ApplySecondaryEffect
-_0801AEA4: .4byte gHitMarker
-_0801AEA8:
- ldr r0, _0801AFE8 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801AEB8
- bl _0801BBAA
-_0801AEB8:
- ldr r5, _0801AFEC @ =gBattleMons
- ldr r7, _0801AFF0 @ =gBattlerAttacker
- ldrb r1, [r7]
- movs r6, 0x58
- adds r0, r1, 0
- muls r0, r6
- adds r0, r5
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801AED0
- bl _0801BBAA
-_0801AED0:
- ldr r0, _0801AFF4 @ =gProtectStructs
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _0801AEE2
- bl _0801BBAA
-_0801AEE2:
- ldr r1, _0801AFF8 @ =gBattleMoves
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0801AEFA
- bl _0801BBAA
-_0801AEFA:
- ldr r3, _0801AFFC @ =gSpecialStatuses
- ldr r4, _0801B000 @ =gBattlerTarget
- mov r8, r4
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r2, r0, 2
- adds r0, r3, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801AF24
- adds r0, r3, 0
- adds r0, 0xC
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801AF24
- bl _0801BBAA
-_0801AF24:
- adds r0, r1, 0
- muls r0, r6
- adds r0, r5
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801AF34
- bl _0801BBAA
-_0801AF34:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _0801AF4C
- bl _0801BBAA
-_0801AF4C:
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0xC
- bne _0801AF5E
- bl _0801BBAA
-_0801AF5E:
- ldr r0, [sp, 0x8]
- ldr r1, [sp, 0x10]
- bl GetGenderFromSpeciesAndPersonality
- adds r4, r0, 0
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x14]
- bl GetGenderFromSpeciesAndPersonality
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _0801AF7C
- bl _0801BBAA
-_0801AF7C:
- ldrb r0, [r7]
- muls r0, r6
- adds r4, r5, 0
- adds r4, 0x50
- adds r0, r4
- ldr r0, [r0]
- movs r1, 0xF0
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- beq _0801AF96
- bl _0801BBAA
-_0801AF96:
- ldr r0, [sp, 0x8]
- ldr r1, [sp, 0x10]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0801AFAA
- bl _0801BBAA
-_0801AFAA:
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x14]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0801AFBE
- bl _0801BBAA
-_0801AFBE:
- ldrb r0, [r7]
- adds r2, r0, 0
- muls r2, r6
- adds r2, r4
- ldr r1, _0801B004 @ =gBitTable
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 16
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- bl BattleScriptPushCursor
- ldr r1, _0801B008 @ =gBattlescriptCurrInstr
- ldr r0, _0801B00C @ =BattleScript_CuteCharmActivates
- str r0, [r1]
- bl _0801BB5A
- .align 2, 0
-_0801AFE8: .4byte gMoveResultFlags
-_0801AFEC: .4byte gBattleMons
-_0801AFF0: .4byte gBattlerAttacker
-_0801AFF4: .4byte gProtectStructs
-_0801AFF8: .4byte gBattleMoves
-_0801AFFC: .4byte gSpecialStatuses
-_0801B000: .4byte gBattlerTarget
-_0801B004: .4byte gBitTable
-_0801B008: .4byte gBattlescriptCurrInstr
-_0801B00C: .4byte BattleScript_CuteCharmActivates
-_0801B010:
- movs r4, 0
- mov r10, r4
- ldr r0, _0801B044 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r10, r0
- bcc _0801B020
- bl _0801BBAA
-_0801B020:
- ldr r1, _0801B048 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- subs r0, 0x7
- adds r2, r1, 0
- cmp r0, 0x41
- bls _0801B03A
- b _0801B29E
-_0801B03A:
- lsls r0, 2
- ldr r1, _0801B04C @ =_0801B050
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801B044: .4byte gBattlersCount
-_0801B048: .4byte gBattleMons
-_0801B04C: .4byte _0801B050
- .align 2, 0
-_0801B050:
- .4byte _0801B1B4
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B278
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B1DC
- .4byte _0801B29E
- .4byte _0801B158
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B184
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B248
- .4byte _0801B218
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B29E
- .4byte _0801B1DC
-_0801B158:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _0801B178 @ =0x00000f88
- ands r0, r1
- cmp r0, 0
- bne _0801B172
- b _0801B29E
-_0801B172:
- ldr r0, _0801B17C @ =gBattleTextBuff1
- ldr r1, _0801B180 @ =gUnknown_8250094
- b _0801B264
- .align 2, 0
-_0801B178: .4byte 0x00000f88
-_0801B17C: .4byte gBattleTextBuff1
-_0801B180: .4byte gUnknown_8250094
-_0801B184:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801B19E
- b _0801B29E
-_0801B19E:
- ldr r0, _0801B1AC @ =gBattleTextBuff1
- ldr r1, _0801B1B0 @ =gUnknown_82500BC
- bl StringCopy
- movs r2, 0x2
- mov r9, r2
- b _0801B2A4
- .align 2, 0
-_0801B1AC: .4byte gBattleTextBuff1
-_0801B1B0: .4byte gUnknown_82500BC
-_0801B1B4:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801B29E
- ldr r0, _0801B1D4 @ =gBattleTextBuff1
- ldr r1, _0801B1D8 @ =gUnknown_82500A4
- b _0801B264
- .align 2, 0
-_0801B1D4: .4byte gBattleTextBuff1
-_0801B1D8: .4byte gUnknown_82500A4
-_0801B1DC:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0801B29E
- adds r2, 0x50
- adds r2, r3, r2
- ldr r0, [r2]
- ldr r1, _0801B20C @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _0801B210 @ =gBattleTextBuff1
- ldr r1, _0801B214 @ =gUnknown_825009C
- bl StringCopy
- movs r0, 0x1
- mov r9, r0
- b _0801B2A4
- .align 2, 0
-_0801B20C: .4byte 0xf7ffffff
-_0801B210: .4byte gBattleTextBuff1
-_0801B214: .4byte gUnknown_825009C
-_0801B218:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0801B29E
- ldr r0, _0801B240 @ =gBattleTextBuff1
- ldr r1, _0801B244 @ =gUnknown_82500AC
- bl StringCopy
- movs r2, 0x1
- mov r9, r2
- b _0801B2A4
- .align 2, 0
-_0801B240: .4byte gBattleTextBuff1
-_0801B244: .4byte gUnknown_82500AC
-_0801B248:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801B29E
- ldr r0, _0801B270 @ =gBattleTextBuff1
- ldr r1, _0801B274 @ =gUnknown_82500B4
-_0801B264:
- bl StringCopy
- movs r4, 0x1
- mov r9, r4
- b _0801B2A4
- .align 2, 0
-_0801B270: .4byte gBattleTextBuff1
-_0801B274: .4byte gUnknown_82500B4
-_0801B278:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xF0
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- beq _0801B29E
- ldr r0, _0801B2B4 @ =gBattleTextBuff1
- ldr r1, _0801B2B8 @ =gUnknown_82500C4
- bl StringCopy
- movs r2, 0x3
- mov r9, r2
-_0801B29E:
- mov r3, r9
- cmp r3, 0
- beq _0801B358
-_0801B2A4:
- mov r4, r9
- cmp r4, 0x2
- beq _0801B2D8
- cmp r4, 0x2
- bgt _0801B2BC
- cmp r4, 0x1
- beq _0801B2C4
- b _0801B304
- .align 2, 0
-_0801B2B4: .4byte gBattleTextBuff1
-_0801B2B8: .4byte gUnknown_82500C4
-_0801B2BC:
- mov r0, r9
- cmp r0, 0x3
- beq _0801B2F0
- b _0801B304
-_0801B2C4:
- ldr r1, _0801B2D4 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r1, 0x4C
- adds r2, r1
- movs r0, 0
- b _0801B302
- .align 2, 0
-_0801B2D4: .4byte gBattleMons
-_0801B2D8:
- ldr r1, _0801B2EC @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x8
- negs r1, r1
- b _0801B300
- .align 2, 0
-_0801B2EC: .4byte gBattleMons
-_0801B2F0:
- ldr r1, _0801B33C @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, _0801B340 @ =0xfff0ffff
-_0801B300:
- ands r0, r1
-_0801B302:
- str r0, [r2]
-_0801B304:
- bl BattleScriptPushCursor
- ldr r1, _0801B344 @ =gBattlescriptCurrInstr
- ldr r0, _0801B348 @ =BattleScript_AbilityCuredStatus
- str r0, [r1]
- ldr r0, _0801B34C @ =gBattleScripting
- mov r1, r10
- strb r1, [r0, 0x17]
- ldr r4, _0801B350 @ =gActiveBattler
- strb r1, [r4]
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _0801B354 @ =gUnknown_2023C30
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl BtlController_EmitSetMonData
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- bl _0801BBC6
- .align 2, 0
-_0801B33C: .4byte gBattleMons
-_0801B340: .4byte 0xfff0ffff
-_0801B344: .4byte gBattlescriptCurrInstr
-_0801B348: .4byte BattleScript_AbilityCuredStatus
-_0801B34C: .4byte gBattleScripting
-_0801B350: .4byte gActiveBattler
-_0801B354: .4byte gUnknown_2023C30
-_0801B358:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _0801B370 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r10, r0
- bcs _0801B36C
- b _0801B020
-_0801B36C:
- bl _0801BBAA
- .align 2, 0
-_0801B370: .4byte gBattlersCount
-_0801B374:
- movs r2, 0
- mov r10, r2
- ldr r0, _0801B3C0 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r10, r0
- bcc _0801B384
- bl _0801BBAA
-_0801B384:
- ldr r4, _0801B3C4 @ =gBattleMons
-_0801B386:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3B
- bne _0801B3AA
- mov r0, r10
- bl CastformDataTypeChange
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0
- beq _0801B3AA
- b _0801BA84
-_0801B3AA:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _0801B3C0 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r10, r0
- bcc _0801B386
- bl _0801BBAA
- .align 2, 0
-_0801B3C0: .4byte gBattlersCount
-_0801B3C4: .4byte gBattleMons
-_0801B3C8:
- mov r4, r8
- ldrb r0, [r4]
- cmp r0, 0x1C
- beq _0801B3D4
- bl _0801BBAA
-_0801B3D4:
- ldr r4, _0801B434 @ =gHitMarker
- ldr r1, [r4]
- movs r0, 0x80
- lsls r0, 7
- ands r0, r1
- cmp r0, 0
- bne _0801B3E6
- bl _0801BBAA
-_0801B3E6:
- ldr r0, _0801B438 @ =0xffffbfff
- ands r1, r0
- str r1, [r4]
- ldr r1, [r6]
- adds r1, 0xB4
- ldrb r2, [r1]
- movs r0, 0x3F
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0xB4
- ldrb r0, [r1]
- cmp r0, 0x6
- bne _0801B408
- movs r0, 0x2
- strb r0, [r1]
-_0801B408:
- ldr r1, _0801B43C @ =gBattleCommunication
- ldr r0, [r6]
- adds r0, 0xB4
- ldrb r0, [r0]
- adds r0, 0x40
- strb r0, [r1, 0x3]
- ldr r1, _0801B440 @ =gBattleScripting
- ldr r0, _0801B444 @ =gBattlerTarget
- ldrb r0, [r0]
- strb r0, [r1, 0x17]
- bl BattleScriptPushCursor
- ldr r1, _0801B448 @ =gBattlescriptCurrInstr
- ldr r0, _0801B44C @ =BattleScript_SynchronizeActivates
- str r0, [r1]
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r4]
- b _0801BB5A
- .align 2, 0
-_0801B434: .4byte gHitMarker
-_0801B438: .4byte 0xffffbfff
-_0801B43C: .4byte gBattleCommunication
-_0801B440: .4byte gBattleScripting
-_0801B444: .4byte gBattlerTarget
-_0801B448: .4byte gBattlescriptCurrInstr
-_0801B44C: .4byte BattleScript_SynchronizeActivates
-_0801B450:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0x1C
- beq _0801B45A
- b _0801BBAA
-_0801B45A:
- ldr r4, _0801B4B8 @ =gHitMarker
- ldr r1, [r4]
- movs r0, 0x80
- lsls r0, 7
- ands r0, r1
- cmp r0, 0
- bne _0801B46A
- b _0801BBAA
-_0801B46A:
- ldr r0, _0801B4BC @ =0xffffbfff
- ands r1, r0
- str r1, [r4]
- adds r3, r6, 0
- ldr r1, [r3]
- adds r1, 0xB4
- ldrb r2, [r1]
- movs r0, 0x3F
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r1, r0, 0
- adds r1, 0xB4
- ldrb r0, [r1]
- cmp r0, 0x6
- bne _0801B48E
- movs r0, 0x2
- strb r0, [r1]
-_0801B48E:
- ldr r1, _0801B4C0 @ =gBattleCommunication
- ldr r0, [r6]
- adds r0, 0xB4
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- ldr r1, _0801B4C4 @ =gBattleScripting
- ldr r0, _0801B4C8 @ =gBattlerAttacker
- ldrb r0, [r0]
- strb r0, [r1, 0x17]
- bl BattleScriptPushCursor
- ldr r1, _0801B4CC @ =gBattlescriptCurrInstr
- ldr r0, _0801B4D0 @ =BattleScript_SynchronizeActivates
- str r0, [r1]
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r4]
- b _0801BB5A
- .align 2, 0
-_0801B4B8: .4byte gHitMarker
-_0801B4BC: .4byte 0xffffbfff
-_0801B4C0: .4byte gBattleCommunication
-_0801B4C4: .4byte gBattleScripting
-_0801B4C8: .4byte gBattlerAttacker
-_0801B4CC: .4byte gBattlescriptCurrInstr
-_0801B4D0: .4byte BattleScript_SynchronizeActivates
-_0801B4D4:
- movs r5, 0
- ldr r0, _0801B50C @ =gBattlersCount
- ldrb r1, [r0]
- cmp r5, r1
- blt _0801B4E0
- b _0801BBAA
-_0801B4E0:
- ldr r0, _0801B510 @ =gBattleMons
- adds r4, r1, 0
- ldr r2, _0801B514 @ =gStatuses3
- adds r3, r0, 0
- adds r3, 0x20
- movs r6, 0x80
- lsls r6, 12
-_0801B4EE:
- ldrb r1, [r3]
- cmp r1, 0x16
- bne _0801B4FE
- ldr r0, [r2]
- ands r0, r6
- cmp r0, 0
- beq _0801B4FE
- b _0801BAAC
-_0801B4FE:
- adds r2, 0x4
- adds r3, 0x58
- adds r5, 0x1
- cmp r5, r4
- blt _0801B4EE
- b _0801BBAA
- .align 2, 0
-_0801B50C: .4byte gBattlersCount
-_0801B510: .4byte gBattleMons
-_0801B514: .4byte gStatuses3
-_0801B518:
- movs r5, 0
- ldr r0, _0801B5F4 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _0801B524
- b _0801BBAA
-_0801B524:
- ldr r2, _0801B5F8 @ =gActiveBattler
- mov r8, r2
- ldr r3, _0801B5FC @ =gBattleMons
- adds r3, 0x20
- str r3, [sp, 0x1C]
- movs r4, 0
- str r4, [sp, 0x20]
-_0801B532:
- ldr r1, [sp, 0x1C]
- ldrb r0, [r1]
- cmp r0, 0x24
- beq _0801B53C
- b _0801B6D6
-_0801B53C:
- ldr r0, _0801B600 @ =gStatuses3
- ldr r2, [sp, 0x20]
- adds r0, r2, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 13
- ands r1, r0
- str r2, [sp, 0x18]
- cmp r1, 0
- bne _0801B552
- b _0801B6D6
-_0801B552:
- lsls r0, r5, 24
- lsrs r0, 24
- bl GetBattlerPosition
- movs r1, 0x1
- adds r6, r0, 0
- eors r6, r1
- ands r6, r1
- adds r0, r6, 0
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0x2
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0801B604 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r2, 0x1
- ands r0, r2
- cmp r0, 0
- bne _0801B584
- b _0801B69C
-_0801B584:
- movs r3, 0x58
- adds r0, r4, 0
- muls r0, r3
- ldr r3, _0801B5FC @ =gBattleMons
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801B658
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _0801B60C
- movs r1, 0x58
- adds r0, r7, 0
- muls r0, r1
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801B60C
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _0801B60C
- str r2, [sp, 0x24]
- bl Random
- ldr r2, [sp, 0x24]
- adds r1, r2, 0
- ands r1, r0
- lsls r1, 1
- orrs r6, r1
- adds r0, r6, 0
- bl GetBattlerAtPosition
- mov r2, r8
- strb r0, [r2]
- ldrb r0, [r2]
- movs r3, 0x58
- muls r0, r3
- ldr r4, _0801B5FC @ =gBattleMons
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- ldr r1, [sp, 0x1C]
- strb r0, [r1]
- ldrb r0, [r2]
- muls r0, r3
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- ldr r2, _0801B608 @ =gLastUsedAbility
- strb r0, [r2]
- b _0801B6C4
- .align 2, 0
-_0801B5F4: .4byte gBattlersCount
-_0801B5F8: .4byte gActiveBattler
-_0801B5FC: .4byte gBattleMons
-_0801B600: .4byte gStatuses3
-_0801B604: .4byte gBattleTypeFlags
-_0801B608: .4byte gLastUsedAbility
-_0801B60C:
- ldr r3, _0801B650 @ =gBattleMons
- movs r2, 0x58
- adds r0, r4, 0
- muls r0, r2
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801B658
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _0801B658
- mov r0, r8
- strb r4, [r0]
- adds r1, r5, 0
- muls r1, r2
- adds r1, r3
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- adds r1, 0x20
- strb r0, [r1]
- mov r1, r8
- ldrb r0, [r1]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- ldr r2, _0801B654 @ =gLastUsedAbility
- strb r0, [r2]
- b _0801B6C4
- .align 2, 0
-_0801B650: .4byte gBattleMons
-_0801B654: .4byte gLastUsedAbility
-_0801B658:
- ldr r3, _0801B698 @ =gBattleMons
- movs r2, 0x58
- adds r0, r7, 0
- muls r0, r2
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801B6CE
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _0801B6CE
- mov r4, r8
- strb r7, [r4]
- adds r1, r5, 0
- muls r1, r2
- adds r1, r3
- ldrb r0, [r4]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r4]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- b _0801B6C0
- .align 2, 0
-_0801B698: .4byte gBattleMons
-_0801B69C:
- mov r2, r8
- strb r4, [r2]
- movs r3, 0x58
- adds r0, r4, 0
- muls r0, r3
- ldr r4, _0801B6F0 @ =gBattleMons
- adds r0, r4
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r1, [r2]
- cmp r1, 0
- beq _0801B6CE
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801B6CE
- ldr r0, [sp, 0x1C]
- strb r1, [r0]
- ldrb r0, [r2]
-_0801B6C0:
- ldr r1, _0801B6F4 @ =gLastUsedAbility
- strb r0, [r1]
-_0801B6C4:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801B6CE:
- mov r2, r9
- cmp r2, 0
- beq _0801B6D6
- b _0801BAC8
-_0801B6D6:
- ldr r3, [sp, 0x1C]
- adds r3, 0x58
- str r3, [sp, 0x1C]
- ldr r4, [sp, 0x20]
- adds r4, 0x4
- str r4, [sp, 0x20]
- adds r5, 0x1
- ldr r0, _0801B6F8 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- bge _0801B6EE
- b _0801B532
-_0801B6EE:
- b _0801BBAA
- .align 2, 0
-_0801B6F0: .4byte gBattleMons
-_0801B6F4: .4byte gLastUsedAbility
-_0801B6F8: .4byte gBattlersCount
-_0801B6FC:
- movs r5, 0
- ldr r0, _0801B734 @ =gBattlersCount
- ldrb r1, [r0]
- cmp r5, r1
- blt _0801B708
- b _0801BBAA
-_0801B708:
- ldr r0, _0801B738 @ =gBattleMons
- adds r4, r1, 0
- ldr r2, _0801B73C @ =gStatuses3
- adds r3, r0, 0
- adds r3, 0x20
- movs r6, 0x80
- lsls r6, 12
-_0801B716:
- ldrb r1, [r3]
- cmp r1, 0x16
- bne _0801B726
- ldr r0, [r2]
- ands r0, r6
- cmp r0, 0
- beq _0801B726
- b _0801BB3C
-_0801B726:
- adds r2, 0x4
- adds r3, 0x58
- adds r5, 0x1
- cmp r5, r4
- blt _0801B716
- b _0801BBAA
- .align 2, 0
-_0801B734: .4byte gBattlersCount
-_0801B738: .4byte gBattleMons
-_0801B73C: .4byte gStatuses3
-_0801B740:
- mov r0, r10
- bl GetBattlerSide
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r0, _0801B790 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _0801B756
- b _0801BBAA
-_0801B756:
- ldr r0, _0801B794 @ =gBattleMons
- mov r8, r0
-_0801B75A:
- lsls r0, r5, 24
- lsrs r0, 24
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- adds r4, r5, 0x1
- cmp r0, r6
- beq _0801B784
- movs r0, 0x58
- muls r0, r5
- add r0, r8
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r7
- bne _0801B784
- ldr r0, _0801B798 @ =gLastUsedAbility
- strb r7, [r0]
- lsls r0, r4, 24
- lsrs r0, 24
- mov r9, r0
-_0801B784:
- adds r5, r4, 0
- ldr r0, _0801B790 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _0801B75A
- b _0801BBAA
- .align 2, 0
-_0801B790: .4byte gBattlersCount
-_0801B794: .4byte gBattleMons
-_0801B798: .4byte gLastUsedAbility
-_0801B79C:
- mov r0, r10
- bl GetBattlerSide
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r0, _0801B7EC @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _0801B7B2
- b _0801BBAA
-_0801B7B2:
- ldr r1, _0801B7F0 @ =gBattleMons
- mov r8, r1
-_0801B7B6:
- lsls r0, r5, 24
- lsrs r0, 24
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- adds r4, r5, 0x1
- cmp r0, r6
- bne _0801B7E0
- movs r0, 0x58
- muls r0, r5
- add r0, r8
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r7
- bne _0801B7E0
- ldr r0, _0801B7F4 @ =gLastUsedAbility
- strb r7, [r0]
- lsls r0, r4, 24
- lsrs r0, 24
- mov r9, r0
-_0801B7E0:
- adds r5, r4, 0
- ldr r0, _0801B7EC @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _0801B7B6
- b _0801BBAA
- .align 2, 0
-_0801B7EC: .4byte gBattlersCount
-_0801B7F0: .4byte gBattleMons
-_0801B7F4: .4byte gLastUsedAbility
-_0801B7F8:
- mov r2, r8
- ldrb r0, [r2]
- cmp r0, 0xFD
- beq _0801B820
- cmp r0, 0xFE
- beq _0801B858
- movs r5, 0
- ldr r0, _0801B818 @ =gBattlersCount
- adds r3, r0, 0
- ldrb r4, [r3]
- cmp r5, r4
- blt _0801B812
- b _0801BBAA
-_0801B812:
- ldr r2, _0801B81C @ =gBattleMons
- b _0801B890
- .align 2, 0
-_0801B818: .4byte gBattlersCount
-_0801B81C: .4byte gBattleMons
-_0801B820:
- movs r5, 0
- ldr r0, _0801B850 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _0801B82C
- b _0801BBAA
-_0801B82C:
- ldr r3, _0801B854 @ =gStatuses3
- movs r2, 0x80
- lsls r2, 9
- adds r1, r0, 0
-_0801B834:
- lsls r0, r5, 2
- adds r0, r3
- ldr r0, [r0]
- ands r0, r2
- adds r4, r5, 0x1
- cmp r0, 0
- beq _0801B848
- lsls r0, r4, 24
- lsrs r0, 24
- mov r9, r0
-_0801B848:
- adds r5, r4, 0
- cmp r5, r1
- blt _0801B834
- b _0801BBAA
- .align 2, 0
-_0801B850: .4byte gBattlersCount
-_0801B854: .4byte gStatuses3
-_0801B858:
- movs r5, 0
- ldr r0, _0801B888 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _0801B864
- b _0801BBAA
-_0801B864:
- ldr r3, _0801B88C @ =gStatuses3
- movs r2, 0x80
- lsls r2, 10
- adds r1, r0, 0
-_0801B86C:
- lsls r0, r5, 2
- adds r0, r3
- ldr r0, [r0]
- ands r0, r2
- adds r4, r5, 0x1
- cmp r0, 0
- beq _0801B880
- lsls r0, r4, 24
- lsrs r0, 24
- mov r9, r0
-_0801B880:
- adds r5, r4, 0
- cmp r5, r1
- blt _0801B86C
- b _0801BBAA
- .align 2, 0
-_0801B888: .4byte gBattlersCount
-_0801B88C: .4byte gStatuses3
-_0801B890:
- movs r0, 0x58
- muls r0, r5
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- adds r4, r5, 0x1
- cmp r0, r7
- bne _0801B8AA
- mov r0, r8
- strb r7, [r0]
- lsls r0, r4, 24
- lsrs r0, 24
- mov r9, r0
-_0801B8AA:
- adds r5, r4, 0
- ldrb r1, [r3]
- cmp r5, r1
- blt _0801B890
- b _0801BBAA
-_0801B8B4:
- movs r5, 0
- ldr r0, _0801B8F0 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _0801B8C0
- b _0801BBAA
-_0801B8C0:
- ldr r6, _0801B8F4 @ =gBattleMons
- adds r2, r0, 0
- movs r3, 0x58
-_0801B8C6:
- adds r0, r5, 0
- muls r0, r3
- adds r1, r0, r6
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- adds r4, r5, 0x1
- cmp r0, r7
- bne _0801B8E8
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _0801B8E8
- mov r0, r8
- strb r7, [r0]
- lsls r0, r4, 24
- lsrs r0, 24
- mov r9, r0
-_0801B8E8:
- adds r5, r4, 0
- cmp r5, r2
- blt _0801B8C6
- b _0801BBAA
- .align 2, 0
-_0801B8F0: .4byte gBattlersCount
-_0801B8F4: .4byte gBattleMons
-_0801B8F8:
- ldr r0, _0801B908 @ =gLastUsedAbility
- strb r7, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- b _0801B94A
- .align 2, 0
-_0801B908: .4byte gLastUsedAbility
-_0801B90C:
- mov r0, r10
- bl GetBattlerSide
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r0, _0801B99C @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- bge _0801B94A
- ldr r4, _0801B9A0 @ =gBattleMons
-_0801B922:
- lsls r0, r5, 24
- lsrs r0, 24
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r6
- beq _0801B940
- movs r0, 0x58
- muls r0, r5
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r7
- beq _0801B8F8
-_0801B940:
- adds r5, 0x1
- ldr r0, _0801B99C @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _0801B922
-_0801B94A:
- mov r1, r9
- cmp r1, 0
- beq _0801B952
- b _0801BBB0
-_0801B952:
- movs r5, 0
- ldr r0, _0801B99C @ =gBattlersCount
- ldrb r0, [r0]
- cmp r9, r0
- blt _0801B95E
- b _0801BBAA
-_0801B95E:
- ldr r2, _0801B9A0 @ =gBattleMons
- mov r8, r2
-_0801B962:
- movs r0, 0x58
- muls r0, r5
- add r0, r8
- adds r0, 0x20
- ldrb r0, [r0]
- adds r4, r5, 0x1
- cmp r0, r7
- bne _0801B990
- lsls r0, r5, 24
- lsrs r0, 24
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r6
- bne _0801B990
- cmp r5, r10
- beq _0801B990
- ldr r0, _0801B9A4 @ =gLastUsedAbility
- strb r7, [r0]
- lsls r0, r4, 24
- lsrs r0, 24
- mov r9, r0
-_0801B990:
- adds r5, r4, 0
- ldr r0, _0801B99C @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _0801B962
- b _0801BBAA
- .align 2, 0
-_0801B99C: .4byte gBattlersCount
-_0801B9A0: .4byte gBattleMons
-_0801B9A4: .4byte gLastUsedAbility
-_0801B9A8:
- mov r0, r10
- bl GetBattlerSide
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r0, _0801B9F8 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _0801B9BE
- b _0801BBAA
-_0801B9BE:
- ldr r4, _0801B9FC @ =gBattleMons
-_0801B9C0:
- lsls r0, r5, 24
- lsrs r0, 24
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r6
- beq _0801B9EC
- movs r0, 0x58
- muls r0, r5
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r7
- bne _0801B9EC
- ldr r0, _0801BA00 @ =gLastUsedAbility
- strb r7, [r0]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801B9EC:
- adds r5, 0x1
- ldr r0, _0801B9F8 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _0801B9C0
- b _0801BBAA
- .align 2, 0
-_0801B9F8: .4byte gBattlersCount
-_0801B9FC: .4byte gBattleMons
-_0801BA00: .4byte gLastUsedAbility
-_0801BA04:
- mov r0, r10
- bl GetBattlerSide
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r0, _0801BA54 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _0801BA1A
- b _0801BBAA
-_0801BA1A:
- ldr r4, _0801BA58 @ =gBattleMons
-_0801BA1C:
- lsls r0, r5, 24
- lsrs r0, 24
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r6
- bne _0801BA48
- movs r0, 0x58
- muls r0, r5
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r7
- bne _0801BA48
- ldr r0, _0801BA5C @ =gLastUsedAbility
- strb r7, [r0]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801BA48:
- adds r5, 0x1
- ldr r0, _0801BA54 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _0801BA1C
- b _0801BBAA
- .align 2, 0
-_0801BA54: .4byte gBattlersCount
-_0801BA58: .4byte gBattleMons
-_0801BA5C: .4byte gLastUsedAbility
-_0801BA60:
- ldr r0, _0801BA78 @ =BattleScript_CastformChange
- bl BattleScriptPushCursorAndCallback
- ldr r0, _0801BA7C @ =gBattleScripting
- strb r4, [r0, 0x17]
-_0801BA6A:
- ldr r0, _0801BA80 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x7F
- mov r1, r9
- subs r1, 0x1
- strb r1, [r0]
- b _0801BBAA
- .align 2, 0
-_0801BA78: .4byte BattleScript_CastformChange
-_0801BA7C: .4byte gBattleScripting
-_0801BA80: .4byte gBattleStruct
-_0801BA84:
- ldr r0, _0801BAA0 @ =BattleScript_CastformChange
- bl BattleScriptPushCursorAndCallback
- ldr r0, _0801BAA4 @ =gBattleScripting
- mov r3, r10
- strb r3, [r0, 0x17]
- ldr r0, _0801BAA8 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x7F
- mov r1, r9
- subs r1, 0x1
- strb r1, [r0]
- b _0801BBC6
- .align 2, 0
-_0801BAA0: .4byte BattleScript_CastformChange
-_0801BAA4: .4byte gBattleScripting
-_0801BAA8: .4byte gBattleStruct
-_0801BAAC:
- mov r4, r8
- strb r1, [r4]
- ldr r0, [r2]
- ldr r1, _0801BAC0 @ =0xfff7ffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _0801BAC4 @ =BattleScript_IntimidateActivatesEnd3
- bl BattleScriptPushCursorAndCallback
- b _0801BB52
- .align 2, 0
-_0801BAC0: .4byte 0xfff7ffff
-_0801BAC4: .4byte BattleScript_IntimidateActivatesEnd3
-_0801BAC8:
- ldr r0, _0801BB18 @ =BattleScript_TraceActivates
- bl BattleScriptPushCursorAndCallback
- ldr r1, _0801BB1C @ =gStatuses3
- ldr r0, [sp, 0x18]
- adds r1, r0, r1
- ldr r0, [r1]
- ldr r2, _0801BB20 @ =0xffefffff
- ands r0, r2
- str r0, [r1]
- ldr r0, _0801BB24 @ =gBattleScripting
- strb r5, [r0, 0x17]
- ldr r1, _0801BB28 @ =gBattleTextBuff1
- movs r4, 0xFD
- strb r4, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r2, _0801BB2C @ =gActiveBattler
- ldrb r0, [r2]
- strb r0, [r1, 0x2]
- ldr r3, _0801BB30 @ =gBattlerPartyIndexes
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0801BB34 @ =gBattleTextBuff2
- strb r4, [r1]
- movs r0, 0x9
- strb r0, [r1, 0x1]
- ldr r0, _0801BB38 @ =gLastUsedAbility
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x3]
- b _0801BBAA
- .align 2, 0
-_0801BB18: .4byte BattleScript_TraceActivates
-_0801BB1C: .4byte gStatuses3
-_0801BB20: .4byte 0xffefffff
-_0801BB24: .4byte gBattleScripting
-_0801BB28: .4byte gBattleTextBuff1
-_0801BB2C: .4byte gActiveBattler
-_0801BB30: .4byte gBattlerPartyIndexes
-_0801BB34: .4byte gBattleTextBuff2
-_0801BB38: .4byte gLastUsedAbility
-_0801BB3C:
- mov r3, r8
- strb r1, [r3]
- ldr r0, [r2]
- ldr r1, _0801BB68 @ =0xfff7ffff
- ands r0, r1
- str r0, [r2]
- bl BattleScriptPushCursor
- ldr r1, _0801BB6C @ =gBattlescriptCurrInstr
- ldr r0, _0801BB70 @ =BattleScript_IntimidateActivates
- str r0, [r1]
-_0801BB52:
- ldr r0, _0801BB74 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xD8
- strb r5, [r0]
-_0801BB5A:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- b _0801BBAA
- .align 2, 0
-_0801BB68: .4byte 0xfff7ffff
-_0801BB6C: .4byte gBattlescriptCurrInstr
-_0801BB70: .4byte BattleScript_IntimidateActivates
-_0801BB74: .4byte gBattleStruct
-_0801BB78:
- movs r5, 0
- ldr r0, _0801BBD8 @ =gBattlersCount
- ldrb r1, [r0]
- cmp r5, r1
- bge _0801BBAA
- ldr r0, _0801BBDC @ =gBattleMons
- adds r2, r1, 0
- adds r1, r0, 0
- adds r1, 0x20
- ldr r3, _0801BBE0 @ =gLastUsedAbility
-_0801BB8C:
- ldrb r0, [r1]
- cmp r0, r7
- bne _0801BBA2
- cmp r5, r10
- beq _0801BBA2
- strb r7, [r3]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801BBA2:
- adds r1, 0x58
- adds r5, 0x1
- cmp r5, r2
- blt _0801BB8C
-_0801BBAA:
- mov r4, r9
- cmp r4, 0
- beq _0801BBC6
-_0801BBB0:
- ldr r0, [sp, 0x4]
- cmp r0, 0xB
- bhi _0801BBC6
- ldr r1, _0801BBE0 @ =gLastUsedAbility
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _0801BBC6
- adds r1, r0, 0
- mov r0, r10
- bl sub_80C71D0
-_0801BBC6:
- mov r0, r9
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801BBD8: .4byte gBattlersCount
-_0801BBDC: .4byte gBattleMons
-_0801BBE0: .4byte gLastUsedAbility
- thumb_func_end AbilityBattleEffects
-
thumb_func_start BattleScriptExecute
BattleScriptExecute: @ 801BBE4
ldr r1, _0801BC10 @ =gBattlescriptCurrInstr
@@ -6427,7 +1513,7 @@ _0801C816:
cmp r2, 0
beq _0801C82E
ldr r0, _0801C8BC @ =gBattleTextBuff1
- ldr r1, _0801C8C0 @ =gUnknown_8250094
+ ldr r1, _0801C8C0 @ =gStatusConditionString_PoisonJpn
bl StringCopy
movs r0, 0x1
mov r10, r0
@@ -6446,7 +1532,7 @@ _0801C82E:
ands r0, r1
str r0, [r2]
ldr r0, _0801C8BC @ =gBattleTextBuff1
- ldr r1, _0801C8C8 @ =gUnknown_825009C
+ ldr r1, _0801C8C8 @ =gStatusConditionString_SleepJpn
bl StringCopy
movs r2, 0x1
add r10, r2
@@ -6457,7 +1543,7 @@ _0801C854:
cmp r0, 0
beq _0801C86A
ldr r0, _0801C8BC @ =gBattleTextBuff1
- ldr r1, _0801C8CC @ =gUnknown_82500A4
+ ldr r1, _0801C8CC @ =gStatusConditionString_ParalysisJpn
bl StringCopy
movs r3, 0x1
add r10, r3
@@ -6468,7 +1554,7 @@ _0801C86A:
cmp r0, 0
beq _0801C880
ldr r0, _0801C8BC @ =gBattleTextBuff1
- ldr r1, _0801C8D0 @ =gUnknown_82500AC
+ ldr r1, _0801C8D0 @ =gStatusConditionString_BurnJpn
bl StringCopy
movs r0, 0x1
add r10, r0
@@ -6479,7 +1565,7 @@ _0801C880:
cmp r0, 0
beq _0801C896
ldr r0, _0801C8BC @ =gBattleTextBuff1
- ldr r1, _0801C8D4 @ =gUnknown_82500B4
+ ldr r1, _0801C8D4 @ =gStatusConditionString_IceJpn
bl StringCopy
movs r1, 0x1
add r10, r1
@@ -6491,7 +1577,7 @@ _0801C896:
cmp r0, 0
beq _0801C8AE
ldr r0, _0801C8BC @ =gBattleTextBuff1
- ldr r1, _0801C8D8 @ =gUnknown_82500BC
+ ldr r1, _0801C8D8 @ =gStatusConditionString_ConfusionJpn
bl StringCopy
movs r3, 0x1
add r10, r3
@@ -6504,13 +1590,13 @@ _0801C8AE:
b _0801C8E4
.align 2, 0
_0801C8BC: .4byte gBattleTextBuff1
-_0801C8C0: .4byte gUnknown_8250094
+_0801C8C0: .4byte gStatusConditionString_PoisonJpn
_0801C8C4: .4byte 0xf7ffffff
-_0801C8C8: .4byte gUnknown_825009C
-_0801C8CC: .4byte gUnknown_82500A4
-_0801C8D0: .4byte gUnknown_82500AC
-_0801C8D4: .4byte gUnknown_82500B4
-_0801C8D8: .4byte gUnknown_82500BC
+_0801C8C8: .4byte gStatusConditionString_SleepJpn
+_0801C8CC: .4byte gStatusConditionString_ParalysisJpn
+_0801C8D0: .4byte gStatusConditionString_BurnJpn
+_0801C8D4: .4byte gStatusConditionString_IceJpn
+_0801C8D8: .4byte gStatusConditionString_ConfusionJpn
_0801C8DC: .4byte gBattleCommunication
_0801C8E0:
ldr r1, _0801C910 @ =gBattleCommunication
@@ -6559,7 +1645,7 @@ _0801C91C:
ands r2, r0
str r2, [r1]
ldr r0, _0801C97C @ =gBattleTextBuff1
- ldr r1, _0801C980 @ =gUnknown_82500C4
+ ldr r1, _0801C980 @ =gStatusConditionString_LoveJpn
bl StringCopy
ldr r0, _0801C984 @ =BattleScript_BerryCureChosenStatusEnd2
bl BattleScriptExecute
@@ -6591,7 +1677,7 @@ _0801C95A:
.align 2, 0
_0801C978: .4byte 0xfff0ffff
_0801C97C: .4byte gBattleTextBuff1
-_0801C980: .4byte gUnknown_82500C4
+_0801C980: .4byte gStatusConditionString_LoveJpn
_0801C984: .4byte BattleScript_BerryCureChosenStatusEnd2
_0801C988: .4byte gBattleCommunication
_0801C98C: .4byte gBattleScripting
@@ -6919,7 +2005,7 @@ _0801CC5C:
ands r1, r0
str r1, [r2]
ldr r0, _0801CC88 @ =gBattleTextBuff1
- ldr r1, _0801CC8C @ =gUnknown_82500C4
+ ldr r1, _0801CC8C @ =gStatusConditionString_LoveJpn
bl StringCopy
bl BattleScriptPushCursor
ldr r1, _0801CC90 @ =gBattleCommunication
@@ -6935,7 +2021,7 @@ _0801CC5C:
_0801CC80: .4byte gBattleMons
_0801CC84: .4byte 0xfff0ffff
_0801CC88: .4byte gBattleTextBuff1
-_0801CC8C: .4byte gUnknown_82500C4
+_0801CC8C: .4byte gStatusConditionString_LoveJpn
_0801CC90: .4byte gBattleCommunication
_0801CC94: .4byte gBattlescriptCurrInstr
_0801CC98: .4byte BattleScript_BerryCureChosenStatusRet
@@ -6966,7 +2052,7 @@ _0801CCC4:
cmp r2, 0
beq _0801CCD4
ldr r0, _0801CD64 @ =gBattleTextBuff1
- ldr r1, _0801CD68 @ =gUnknown_8250094
+ ldr r1, _0801CD68 @ =gStatusConditionString_PoisonJpn
bl StringCopy
_0801CCD4:
ldr r0, [r6]
@@ -6982,7 +2068,7 @@ _0801CCD4:
ands r0, r1
str r0, [r2]
ldr r0, _0801CD64 @ =gBattleTextBuff1
- ldr r1, _0801CD70 @ =gUnknown_825009C
+ ldr r1, _0801CD70 @ =gStatusConditionString_SleepJpn
bl StringCopy
_0801CCF4:
ldr r0, [r6]
@@ -6991,7 +2077,7 @@ _0801CCF4:
cmp r0, 0
beq _0801CD06
ldr r0, _0801CD64 @ =gBattleTextBuff1
- ldr r1, _0801CD74 @ =gUnknown_82500A4
+ ldr r1, _0801CD74 @ =gStatusConditionString_ParalysisJpn
bl StringCopy
_0801CD06:
ldr r0, [r6]
@@ -7000,7 +2086,7 @@ _0801CD06:
cmp r0, 0
beq _0801CD18
ldr r0, _0801CD64 @ =gBattleTextBuff1
- ldr r1, _0801CD78 @ =gUnknown_82500AC
+ ldr r1, _0801CD78 @ =gStatusConditionString_BurnJpn
bl StringCopy
_0801CD18:
ldr r0, [r6]
@@ -7009,7 +2095,7 @@ _0801CD18:
cmp r0, 0
beq _0801CD2A
ldr r0, _0801CD64 @ =gBattleTextBuff1
- ldr r1, _0801CD7C @ =gUnknown_82500B4
+ ldr r1, _0801CD7C @ =gStatusConditionString_IceJpn
bl StringCopy
_0801CD2A:
adds r5, r4
@@ -7019,7 +2105,7 @@ _0801CD2A:
cmp r0, 0
beq _0801CD3E
ldr r0, _0801CD64 @ =gBattleTextBuff1
- ldr r1, _0801CD80 @ =gUnknown_82500BC
+ ldr r1, _0801CD80 @ =gStatusConditionString_ConfusionJpn
bl StringCopy
_0801CD3E:
movs r4, 0
@@ -7042,13 +2128,13 @@ _0801CD58:
.align 2, 0
_0801CD60: .4byte gBattleMons
_0801CD64: .4byte gBattleTextBuff1
-_0801CD68: .4byte gUnknown_8250094
+_0801CD68: .4byte gStatusConditionString_PoisonJpn
_0801CD6C: .4byte 0xf7ffffff
-_0801CD70: .4byte gUnknown_825009C
-_0801CD74: .4byte gUnknown_82500A4
-_0801CD78: .4byte gUnknown_82500AC
-_0801CD7C: .4byte gUnknown_82500B4
-_0801CD80: .4byte gUnknown_82500BC
+_0801CD70: .4byte gStatusConditionString_SleepJpn
+_0801CD74: .4byte gStatusConditionString_ParalysisJpn
+_0801CD78: .4byte gStatusConditionString_BurnJpn
+_0801CD7C: .4byte gStatusConditionString_IceJpn
+_0801CD80: .4byte gStatusConditionString_ConfusionJpn
_0801CD84: .4byte gBattleCommunication
_0801CD88: .4byte gBattlescriptCurrInstr
_0801CD8C: .4byte BattleScript_BerryCureChosenStatusRet
@@ -7597,7 +2683,7 @@ _0801D25E:
adds r0, 0x20
ldrb r1, [r0]
adds r0, r5, 0
- bl sub_80C71D0
+ bl RecordAbilityBattle
ldr r1, _0801D2A0 @ =gSpecialStatuses
lsls r0, r5, 2
adds r0, r5