summaryrefslogtreecommitdiff
path: root/asm/battle_script_commands.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/battle_script_commands.s')
-rw-r--r--asm/battle_script_commands.s33196
1 files changed, 0 insertions, 33196 deletions
diff --git a/asm/battle_script_commands.s b/asm/battle_script_commands.s
deleted file mode 100644
index 7d93cba64..000000000
--- a/asm/battle_script_commands.s
+++ /dev/null
@@ -1,33196 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start atk00_attackcanceler
-atk00_attackcanceler: @ 801D760
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r0, _0801D77C @ =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801D784
- ldr r1, _0801D780 @ =gUnknown_2023BE3
- movs r0, 0xC
- strb r0, [r1]
- b _0801DAFC
- .align 2, 0
-_0801D77C: .4byte gBattleOutcome
-_0801D780: .4byte gUnknown_2023BE3
-_0801D784:
- ldr r2, _0801D7B4 @ =gBattleMons
- ldr r0, _0801D7B8 @ =sBattler_AI
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801D7C8
- ldr r2, _0801D7BC @ =gUnknown_2023DD0
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _0801D7C8
- movs r0, 0x80
- lsls r0, 12
- orrs r1, r0
- str r1, [r2]
- ldr r1, _0801D7C0 @ =gUnknown_2023D74
- ldr r0, _0801D7C4 @ =gUnknown_81D694E
- b _0801DAFA
- .align 2, 0
-_0801D7B4: .4byte gBattleMons
-_0801D7B8: .4byte sBattler_AI
-_0801D7BC: .4byte gUnknown_2023DD0
-_0801D7C0: .4byte gUnknown_2023D74
-_0801D7C4: .4byte gUnknown_81D694E
-_0801D7C8:
- bl sub_80192D4
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0801D7D6
- b _0801DAFC
-_0801D7D6:
- ldr r0, _0801D844 @ =gBattlerTarget
- ldrb r1, [r0]
- str r2, [sp]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _0801D7EE
- b _0801DAFC
-_0801D7EE:
- ldr r4, _0801D848 @ =gBattleMons
- ldr r0, _0801D84C @ =gUnknown_2023D48
- ldrb r1, [r0]
- ldr r3, _0801D850 @ =sBattler_AI
- ldrb r2, [r3]
- movs r0, 0x58
- muls r2, r0
- adds r1, r2
- adds r0, r4, 0
- adds r0, 0x24
- adds r1, r0
- ldrb r0, [r1]
- ldr r5, _0801D854 @ =gUnknown_2023DD0
- cmp r0, 0
- bne _0801D86C
- ldr r0, _0801D858 @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xA5
- beq _0801D86C
- ldr r0, [r5]
- ldr r1, _0801D85C @ =0x00800200
- ands r0, r1
- cmp r0, 0
- bne _0801D86C
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- bne _0801D86C
- ldr r1, _0801D860 @ =gUnknown_2023D74
- ldr r0, _0801D864 @ =gUnknown_81D8EA8
- str r0, [r1]
- ldr r2, _0801D868 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- b _0801DAFC
- .align 2, 0
-_0801D844: .4byte gBattlerTarget
-_0801D848: .4byte gBattleMons
-_0801D84C: .4byte gUnknown_2023D48
-_0801D850: .4byte sBattler_AI
-_0801D854: .4byte gUnknown_2023DD0
-_0801D858: .4byte gCurrentMove
-_0801D85C: .4byte 0x00800200
-_0801D860: .4byte gUnknown_2023D74
-_0801D864: .4byte gUnknown_81D8EA8
-_0801D868: .4byte gMoveResultFlags
-_0801D86C:
- ldr r0, [r5]
- ldr r1, _0801D8B0 @ =0xff7fffff
- ands r0, r1
- str r0, [r5]
- movs r6, 0x80
- lsls r6, 18
- ands r0, r6
- cmp r0, 0
- bne _0801D8C4
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r1, r4, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- bne _0801D8C4
- bl sub_801D438
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0801D8C4
- cmp r2, 0x2
- bne _0801D8B4
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- b _0801DAFC
- .align 2, 0
-_0801D8B0: .4byte 0xff7fffff
-_0801D8B4:
- ldr r0, _0801D8C0 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _0801DAFC
- .align 2, 0
-_0801D8C0: .4byte gMoveResultFlags
-_0801D8C4:
- ldr r2, _0801D928 @ =gUnknown_2023DD0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 18
- orrs r0, r1
- str r0, [r2]
- ldr r2, _0801D92C @ =gUnknown_2023E8C
- ldr r1, _0801D930 @ =gBattlerTarget
- ldrb r3, [r1]
- lsls r0, r3, 4
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 27
- mov r8, r1
- mov r9, r2
- cmp r0, 0
- bge _0801D94C
- ldr r2, _0801D934 @ =gBattleMoves
- ldr r0, _0801D938 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801D94C
- ldr r0, _0801D93C @ =sBattler_AI
- ldrb r0, [r0]
- ldr r2, _0801D940 @ =0x00000115
- adds r1, r3, 0
- bl PressurePPLose
- mov r0, r8
- ldrb r1, [r0]
- lsls r1, 4
- add r1, r9
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- bl BattleScriptPushCursor
- ldr r1, _0801D944 @ =gUnknown_2023D74
- ldr r0, _0801D948 @ =gUnknown_81D8FAA
- b _0801DAFA
- .align 2, 0
-_0801D928: .4byte gUnknown_2023DD0
-_0801D92C: .4byte gUnknown_2023E8C
-_0801D930: .4byte gBattlerTarget
-_0801D934: .4byte gBattleMoves
-_0801D938: .4byte gCurrentMove
-_0801D93C: .4byte sBattler_AI
-_0801D940: .4byte 0x00000115
-_0801D944: .4byte gUnknown_2023D74
-_0801D948: .4byte gUnknown_81D8FAA
-_0801D94C:
- movs r2, 0
- ldr r0, _0801D9C8 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r2, r0
- bge _0801D98E
- ldr r6, _0801D9CC @ =gUnknown_2023E8C
- ldr r1, _0801D9D0 @ =gBattleMoves
- mov r12, r1
- adds r5, r0, 0
- ldr r7, _0801D9D4 @ =gUnknown_2023BDE
-_0801D960:
- adds r4, r2, r7
- ldrb r3, [r4]
- lsls r0, r3, 4
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _0801D988
- ldr r0, _0801D9D8 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r1, [r0, 0x8]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801D988
- b _0801DAB4
-_0801D988:
- adds r2, 0x1
- cmp r2, r5
- blt _0801D960
-_0801D98E:
- ldr r0, _0801D9DC @ =gUnknown_2023ECC
- mov r1, r8
- ldrb r2, [r1]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r3, [r1]
- lsls r0, r3, 30
- cmp r0, 0
- bge _0801D9EC
- movs r0, 0x3
- negs r0, r0
- ands r0, r3
- strb r0, [r1]
- ldr r4, _0801D9E0 @ =gLastUsedAbility
- movs r0, 0x1F
- strb r0, [r4]
- bl BattleScriptPushCursor
- ldr r1, _0801D9E4 @ =gUnknown_2023D74
- ldr r0, _0801D9E8 @ =gUnknown_81D938D
- str r0, [r1]
- mov r1, r8
- ldrb r0, [r1]
- ldrb r1, [r4]
- bl sub_80C71D0
- b _0801DAFC
- .align 2, 0
-_0801D9C8: .4byte gBattlersCount
-_0801D9CC: .4byte gUnknown_2023E8C
-_0801D9D0: .4byte gBattleMoves
-_0801D9D4: .4byte gUnknown_2023BDE
-_0801D9D8: .4byte gCurrentMove
-_0801D9DC: .4byte gUnknown_2023ECC
-_0801D9E0: .4byte gLastUsedAbility
-_0801D9E4: .4byte gUnknown_2023D74
-_0801D9E8: .4byte gUnknown_81D938D
-_0801D9EC:
- lsls r0, r2, 4
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- bne _0801D9FA
- b _0801DAF4
-_0801D9FA:
- ldr r1, _0801DA90 @ =gBattleMoves
- ldr r2, _0801DA94 @ =gCurrentMove
- ldrh r3, [r2]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x2
- ands r0, r1
- adds r4, r2, 0
- cmp r0, 0
- beq _0801DAF4
- cmp r3, 0xAE
- bne _0801DA38
- ldr r2, _0801DA98 @ =gBattleMons
- ldr r0, _0801DA9C @ =sBattler_AI
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _0801DA38
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _0801DAF4
-_0801DA38:
- ldrh r0, [r4]
- bl IsTwoTurnsMove
- lsls r0, 24
- cmp r0, 0
- beq _0801DA5E
- ldr r1, _0801DA98 @ =gBattleMons
- ldr r0, _0801DA9C @ =sBattler_AI
- 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 _0801DAF4
-_0801DA5E:
- ldr r0, _0801DA9C @ =sBattler_AI
- ldrb r0, [r0]
- bl CancelMultiTurnMoves
- ldr r2, _0801DAA0 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801DAA4 @ =gUnknown_2023DA0
- ldr r3, _0801DAA8 @ =gBattlerTarget
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801DAAC @ =gUnknown_2023DA8
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldr r1, _0801DAB0 @ =gUnknown_2023E82
- movs r0, 0x1
- strb r0, [r1, 0x6]
- b _0801DAF4
- .align 2, 0
-_0801DA90: .4byte gBattleMoves
-_0801DA94: .4byte gCurrentMove
-_0801DA98: .4byte gBattleMons
-_0801DA9C: .4byte sBattler_AI
-_0801DAA0: .4byte gMoveResultFlags
-_0801DAA4: .4byte gUnknown_2023DA0
-_0801DAA8: .4byte gBattlerTarget
-_0801DAAC: .4byte gUnknown_2023DA8
-_0801DAB0: .4byte gUnknown_2023E82
-_0801DAB4:
- ldr r0, _0801DAE0 @ =sBattler_AI
- ldrb r0, [r0]
- ldr r2, _0801DAE4 @ =0x00000121
- adds r1, r3, 0
- bl PressurePPLose
- ldrb r1, [r4]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, _0801DAE8 @ =gBattleScripting
- ldrb r0, [r4]
- strb r0, [r1, 0x17]
- bl BattleScriptPushCursor
- ldr r1, _0801DAEC @ =gUnknown_2023D74
- ldr r0, _0801DAF0 @ =gUnknown_81D8FC2
- b _0801DAFA
- .align 2, 0
-_0801DAE0: .4byte sBattler_AI
-_0801DAE4: .4byte 0x00000121
-_0801DAE8: .4byte gBattleScripting
-_0801DAEC: .4byte gUnknown_2023D74
-_0801DAF0: .4byte gUnknown_81D8FC2
-_0801DAF4:
- ldr r1, _0801DB0C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
-_0801DAFA:
- str r0, [r1]
-_0801DAFC:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801DB0C: .4byte gUnknown_2023D74
- thumb_func_end atk00_attackcanceler
-
- thumb_func_start JumpIfMoveFailed
-JumpIfMoveFailed: @ 801DB10
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r1, _0801DB5C @ =gUnknown_2023D74
- ldr r5, [r1]
- adds r4, r5, r0
- ldr r0, _0801DB60 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801DB70
- ldr r1, _0801DB64 @ =gUnknown_2023DA0
- ldr r3, _0801DB68 @ =gBattlerTarget
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801DB6C @ =gUnknown_2023DA8
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldrb r4, [r5, 0x1]
- ldrb r0, [r5, 0x2]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r5, 0x3]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r5, 0x4]
- lsls r0, 24
- orrs r4, r0
- b _0801DB8A
- .align 2, 0
-_0801DB5C: .4byte gUnknown_2023D74
-_0801DB60: .4byte gMoveResultFlags
-_0801DB64: .4byte gUnknown_2023DA0
-_0801DB68: .4byte gBattlerTarget
-_0801DB6C: .4byte gUnknown_2023DA8
-_0801DB70:
- bl TrySetDestinyBondToHappen
- ldr r0, _0801DB98 @ =gBattlerTarget
- ldrb r1, [r0]
- str r6, [sp]
- movs r0, 0x3
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _0801DB8E
-_0801DB8A:
- ldr r0, _0801DB9C @ =gUnknown_2023D74
- str r4, [r0]
-_0801DB8E:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801DB98: .4byte gBattlerTarget
-_0801DB9C: .4byte gUnknown_2023D74
- thumb_func_end JumpIfMoveFailed
-
- thumb_func_start atk40_jumpifaffectedbyprotect
-atk40_jumpifaffectedbyprotect: @ 801DBA0
- push {lr}
- ldr r1, _0801DBE8 @ =gUnknown_2023E8C
- ldr r0, _0801DBEC @ =gBattlerTarget
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _0801DC00
- ldr r2, _0801DBF0 @ =gBattleMoves
- ldr r0, _0801DBF4 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801DC00
- ldr r2, _0801DBF8 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x5
- movs r1, 0
- bl JumpIfMoveFailed
- ldr r1, _0801DBFC @ =gUnknown_2023E82
- movs r0, 0x1
- strb r0, [r1, 0x6]
- b _0801DC08
- .align 2, 0
-_0801DBE8: .4byte gUnknown_2023E8C
-_0801DBEC: .4byte gBattlerTarget
-_0801DBF0: .4byte gBattleMoves
-_0801DBF4: .4byte gCurrentMove
-_0801DBF8: .4byte gMoveResultFlags
-_0801DBFC: .4byte gUnknown_2023E82
-_0801DC00:
- ldr r1, _0801DC0C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0801DC08:
- pop {r0}
- bx r0
- .align 2, 0
-_0801DC0C: .4byte gUnknown_2023D74
- thumb_func_end atk40_jumpifaffectedbyprotect
-
- thumb_func_start JumpIfMoveAffectedByProtect
-JumpIfMoveAffectedByProtect: @ 801DC10
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r4, 0
- ldr r1, _0801DC64 @ =gUnknown_2023E8C
- ldr r0, _0801DC68 @ =gBattlerTarget
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _0801DC5C
- ldr r2, _0801DC6C @ =gBattleMoves
- ldr r0, _0801DC70 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801DC5C
- ldr r2, _0801DC74 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x7
- adds r1, r3, 0
- bl JumpIfMoveFailed
- ldr r1, _0801DC78 @ =gUnknown_2023E82
- movs r0, 0x1
- strb r0, [r1, 0x6]
- movs r4, 0x1
-_0801DC5C:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0801DC64: .4byte gUnknown_2023E8C
-_0801DC68: .4byte gBattlerTarget
-_0801DC6C: .4byte gBattleMoves
-_0801DC70: .4byte gCurrentMove
-_0801DC74: .4byte gMoveResultFlags
-_0801DC78: .4byte gUnknown_2023E82
- thumb_func_end JumpIfMoveAffectedByProtect
-
- thumb_func_start AccuracyCalcHelper
-AccuracyCalcHelper: @ 801DC7C
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r2, _0801DCDC @ =gStatuses3
- ldr r3, _0801DCE0 @ =gBattlerTarget
- ldrb r4, [r3]
- lsls r0, r4, 2
- adds r0, r2
- ldr r1, [r0]
- movs r0, 0x18
- ands r1, r0
- adds r6, r2, 0
- cmp r1, 0
- beq _0801DCAE
- ldr r1, _0801DCE4 @ =gDisableStructs
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, _0801DCE8 @ =sBattler_AI
- ldrb r0, [r0, 0x15]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0801DD98
-_0801DCAE:
- ldr r0, _0801DCEC @ =gUnknown_2023DD0
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 9
- ands r1, r2
- adds r2, r0, 0
- cmp r1, 0
- bne _0801DCF4
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801DCF4
-_0801DCCE:
- ldr r0, _0801DCF0 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _0801DD98
- .align 2, 0
-_0801DCDC: .4byte gStatuses3
-_0801DCE0: .4byte gBattlerTarget
-_0801DCE4: .4byte gDisableStructs
-_0801DCE8: .4byte sBattler_AI
-_0801DCEC: .4byte gUnknown_2023DD0
-_0801DCF0: .4byte gMoveResultFlags
-_0801DCF4:
- ldr r0, [r2]
- ldr r1, _0801DDA4 @ =0xfffeffff
- ands r0, r1
- str r0, [r2]
- movs r1, 0x80
- lsls r1, 10
- ands r0, r1
- cmp r0, 0
- bne _0801DD16
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0801DCCE
-_0801DD16:
- ldr r0, [r2]
- ldr r1, _0801DDA8 @ =0xfffdffff
- ands r0, r1
- str r0, [r2]
- movs r1, 0x80
- lsls r1, 11
- ands r0, r1
- cmp r0, 0
- bne _0801DD36
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- bne _0801DCCE
-_0801DD36:
- ldr r0, [r2]
- ldr r1, _0801DDAC @ =0xfffbffff
- ands r0, r1
- str r0, [r2]
- 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
- lsls r4, r5, 1
- cmp r0, 0
- bne _0801DD86
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _0801DD86
- ldr r0, _0801DDB0 @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0801DD86
- ldr r0, _0801DDB4 @ =gBattleMoves
- adds r1, r4, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x98
- beq _0801DD98
-_0801DD86:
- ldr r1, _0801DDB4 @ =gBattleMoves
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x11
- beq _0801DD98
- cmp r0, 0x4E
- bne _0801DDB8
-_0801DD98:
- movs r0, 0x7
- adds r1, r5, 0
- bl JumpIfMoveFailed
- movs r0, 0x1
- b _0801DDBA
- .align 2, 0
-_0801DDA4: .4byte 0xfffeffff
-_0801DDA8: .4byte 0xfffdffff
-_0801DDAC: .4byte 0xfffbffff
-_0801DDB0: .4byte gBattleWeather
-_0801DDB4: .4byte gBattleMoves
-_0801DDB8:
- movs r0, 0
-_0801DDBA:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end AccuracyCalcHelper
-
- thumb_func_start sub_801DDC4
-sub_801DDC4: @ 801DDC4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r0, _0801DE60 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r6, [r0, 0x5]
- ldrb r0, [r0, 0x6]
- lsls r0, 8
- orrs r6, r0
- ldr r0, _0801DE64 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0801DE48
- movs r0, 0x1
- bl sub_80EB2E0
- lsls r0, 24
- cmp r0, 0
- bne _0801DE12
- ldr r0, _0801DE68 @ =gBattleMoves
- lsls r1, r6, 1
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801DE12
- ldr r0, _0801DE6C @ =sBattler_AI
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0801DE56
-_0801DE12:
- ldr r0, _0801DE64 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0801DE48
- movs r0, 0x2
- bl sub_80EB2E0
- lsls r0, 24
- cmp r0, 0
- bne _0801DE48
- ldr r0, _0801DE68 @ =gBattleMoves
- lsls r1, r6, 1
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _0801DE48
- ldr r0, _0801DE6C @ =sBattler_AI
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0801DE56
-_0801DE48:
- ldr r0, _0801DE64 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 9
- ands r0, r1
- cmp r0, 0
- beq _0801DE70
-_0801DE56:
- movs r0, 0x7
- adds r1, r6, 0
- bl JumpIfMoveFailed
- b _0801E1C2
- .align 2, 0
-_0801DE60: .4byte gUnknown_2023D74
-_0801DE64: .4byte gBattleTypeFlags
-_0801DE68: .4byte gBattleMoves
-_0801DE6C: .4byte sBattler_AI
-_0801DE70:
- adds r0, r6, 0x2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0801DF0C
- ldr r2, _0801DED4 @ =gStatuses3
- ldr r3, _0801DED8 @ =gBattlerTarget
- ldrb r4, [r3]
- lsls r0, r4, 2
- adds r0, r2
- ldr r1, [r0]
- movs r0, 0x18
- ands r1, r0
- cmp r1, 0
- beq _0801DEA8
- ldr r0, _0801DEDC @ =0x0000ffff
- cmp r6, r0
- bne _0801DEA8
- ldr r1, _0801DEE0 @ =gDisableStructs
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, _0801DEE4 @ =sBattler_AI
- ldrb r0, [r0, 0x15]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0801DEFE
-_0801DEA8:
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ldr r1, _0801DEE8 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _0801DEF0
- ldr r3, _0801DEEC @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0801E1C2
- .align 2, 0
-_0801DED4: .4byte gStatuses3
-_0801DED8: .4byte gBattlerTarget
-_0801DEDC: .4byte 0x0000ffff
-_0801DEE0: .4byte gDisableStructs
-_0801DEE4: .4byte sBattler_AI
-_0801DEE8: .4byte 0x000400c0
-_0801DEEC: .4byte gUnknown_2023D74
-_0801DEF0:
- movs r0, 0
- bl JumpIfMoveAffectedByProtect
- lsls r0, 24
- cmp r0, 0
- beq _0801DEFE
- b _0801E1C2
-_0801DEFE:
- ldr r1, _0801DF08 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x7
- str r0, [r1]
- b _0801E1C2
- .align 2, 0
-_0801DF08: .4byte gUnknown_2023D74
-_0801DF0C:
- cmp r6, 0
- bne _0801DF14
- ldr r0, _0801DF2C @ =gCurrentMove
- ldrh r6, [r0]
-_0801DF14:
- ldr r0, _0801DF30 @ =gBattleStruct
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _0801DF34
- movs r1, 0x3F
- mov r10, r1
- mov r2, r10
- ands r2, r0
- mov r10, r2
- b _0801DF42
- .align 2, 0
-_0801DF2C: .4byte gCurrentMove
-_0801DF30: .4byte gBattleStruct
-_0801DF34:
- ldr r1, _0801DF88 @ =gBattleMoves
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- mov r10, r0
-_0801DF42:
- adds r0, r6, 0
- bl JumpIfMoveAffectedByProtect
- lsls r0, 24
- cmp r0, 0
- beq _0801DF50
- b _0801E1C2
-_0801DF50:
- adds r0, r6, 0
- bl AccuracyCalcHelper
- lsls r0, 24
- cmp r0, 0
- beq _0801DF5E
- b _0801E1C2
-_0801DF5E:
- ldr r3, _0801DF8C @ =gBattleMons
- ldr r0, _0801DF90 @ =gBattlerTarget
- ldrb r0, [r0]
- movs r2, 0x58
- adds r4, r0, 0
- muls r4, r2
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r4, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801DF98
- ldr r0, _0801DF94 @ =sBattler_AI
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- ldrb r5, [r0, 0x1E]
- b _0801DFAE
- .align 2, 0
-_0801DF88: .4byte gBattleMoves
-_0801DF8C: .4byte gBattleMons
-_0801DF90: .4byte gBattlerTarget
-_0801DF94: .4byte sBattler_AI
-_0801DF98:
- ldr r0, _0801E0FC @ =sBattler_AI
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- ldrb r0, [r0, 0x1E]
- adds r0, 0x6
- adds r1, r4, r3
- ldrb r1, [r1, 0x1F]
- subs r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
-_0801DFAE:
- lsls r0, r5, 24
- cmp r0, 0
- bge _0801DFB6
- movs r5, 0
-_0801DFB6:
- lsls r0, r5, 24
- asrs r0, 24
- cmp r0, 0xC
- ble _0801DFC0
- movs r5, 0xC
-_0801DFC0:
- ldr r1, _0801E100 @ =gBattleMoves
- lsls r4, r6, 1
- adds r0, r4, r6
- lsls r0, 2
- adds r7, r0, r1
- ldrb r3, [r7, 0x3]
- mov r8, r3
- 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
- str r4, [sp, 0x4]
- cmp r0, 0
- bne _0801E012
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _0801E012
- ldr r0, _0801E104 @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0801E012
- ldrb r0, [r7]
- cmp r0, 0x98
- bne _0801E012
- movs r0, 0x32
- mov r8, r0
-_0801E012:
- ldr r1, _0801E108 @ =gUnknown_82504FC
- lsls r0, r5, 24
- asrs r0, 22
- adds r0, r1
- ldrb r1, [r0]
- mov r4, r8
- muls r4, r1
- ldrb r1, [r0, 0x1]
- adds r0, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r7, _0801E10C @ =gBattleMons
- ldr r0, _0801E0FC @ =sBattler_AI
- ldrb r0, [r0]
- movs r5, 0x58
- muls r0, r5
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0xE
- bne _0801E050
- lsls r0, r4, 6
- adds r0, r4
- lsls r0, 1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801E050:
- 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 _0801E0A8
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _0801E0A8
- ldr r0, _0801E110 @ =gBattlerTarget
- ldrb r0, [r0]
- muls r0, r5
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _0801E0A8
- ldr r0, _0801E104 @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _0801E0A8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801E0A8:
- ldr r2, _0801E10C @ =gBattleMons
- ldr r0, _0801E0FC @ =sBattler_AI
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- mov r9, r2
- cmp r0, 0x37
- bne _0801E0D4
- mov r1, r10
- cmp r1, 0x8
- bhi _0801E0D4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801E0D4:
- ldr r2, _0801E110 @ =gBattlerTarget
- mov r8, r2
- ldrb r2, [r2]
- movs r7, 0x58
- adds r0, r2, 0
- muls r0, r7
- mov r3, r9
- adds r1, r0, r3
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0801E118
- ldr r1, _0801E114 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x7]
- ldrb r2, [r0, 0x1A]
- b _0801E134
- .align 2, 0
-_0801E0FC: .4byte sBattler_AI
-_0801E100: .4byte gBattleMoves
-_0801E104: .4byte gBattleWeather
-_0801E108: .4byte gUnknown_82504FC
-_0801E10C: .4byte gBattleMons
-_0801E110: .4byte gBattlerTarget
-_0801E114: .4byte gEnigmaBerries
-_0801E118:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r5, r0, 24
- mov r1, r8
- ldrb r0, [r1]
- muls r0, r7
- add r0, r9
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r2, r0, 24
-_0801E134:
- ldr r0, _0801E198 @ =gPotentialItemEffectBattler
- ldr r1, _0801E19C @ =gBattlerTarget
- ldrb r1, [r1]
- strb r1, [r0]
- cmp r5, 0x16
- bne _0801E150
- movs r0, 0x64
- subs r0, r2
- muls r0, r4
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801E150:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, 0x1
- cmp r0, r4
- ble _0801E1BA
- ldr r2, _0801E1A0 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0801E1A4 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0801E1B0
- ldr r1, _0801E1A8 @ =gBattleMoves
- ldr r2, [sp, 0x4]
- adds r0, r2, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x6]
- cmp r0, 0x8
- beq _0801E192
- cmp r0, 0x20
- bne _0801E1B0
-_0801E192:
- ldr r1, _0801E1AC @ =gUnknown_2023E82
- movs r0, 0x2
- b _0801E1B4
- .align 2, 0
-_0801E198: .4byte gPotentialItemEffectBattler
-_0801E19C: .4byte gBattlerTarget
-_0801E1A0: .4byte gMoveResultFlags
-_0801E1A4: .4byte gBattleTypeFlags
-_0801E1A8: .4byte gBattleMoves
-_0801E1AC: .4byte gUnknown_2023E82
-_0801E1B0:
- ldr r1, _0801E1D4 @ =gUnknown_2023E82
- movs r0, 0
-_0801E1B4:
- strb r0, [r1, 0x6]
- bl CheckWonderGuardAndLevitate
-_0801E1BA:
- movs r0, 0x7
- adds r1, r6, 0
- bl JumpIfMoveFailed
-_0801E1C2:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E1D4: .4byte gUnknown_2023E82
- thumb_func_end sub_801DDC4
-
- thumb_func_start atk02_attackstring
-atk02_attackstring: @ 801E1D8
- push {r4,r5,lr}
- ldr r0, _0801E218 @ =gUnknown_2023BC8
- ldr r5, [r0]
- cmp r5, 0
- bne _0801E210
- ldr r4, _0801E21C @ =gUnknown_2023DD0
- ldr r0, [r4]
- movs r1, 0xC0
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- bne _0801E204
- ldr r0, _0801E220 @ =sBattler_AI
- ldrb r1, [r0]
- movs r0, 0x4
- bl PrepareStringBattle
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 3
- orrs r0, r1
- str r0, [r4]
-_0801E204:
- ldr r0, _0801E224 @ =gUnknown_2023D74
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- ldr r0, _0801E228 @ =gUnknown_2023E82
- strb r5, [r0, 0x7]
-_0801E210:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E218: .4byte gUnknown_2023BC8
-_0801E21C: .4byte gUnknown_2023DD0
-_0801E220: .4byte sBattler_AI
-_0801E224: .4byte gUnknown_2023D74
-_0801E228: .4byte gUnknown_2023E82
- thumb_func_end atk02_attackstring
-
- thumb_func_start atk03_ppreduce
-atk03_ppreduce: @ 801E22C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r6, 0x1
- ldr r0, _0801E27C @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E244
- b _0801E3DE
-_0801E244:
- ldr r1, _0801E280 @ =gUnknown_2023ECC
- ldr r2, _0801E284 @ =sBattler_AI
- ldrb r3, [r2]
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r4, r0, 31
- mov r9, r2
- cmp r4, 0
- bne _0801E2E6
- ldr r2, _0801E288 @ =gBattleMoves
- ldr r0, _0801E28C @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- cmp r0, 0x20
- beq _0801E296
- cmp r0, 0x20
- bgt _0801E290
- cmp r0, 0x8
- beq _0801E2AC
- b _0801E2C6
- .align 2, 0
-_0801E27C: .4byte gUnknown_2023BC8
-_0801E280: .4byte gUnknown_2023ECC
-_0801E284: .4byte sBattler_AI
-_0801E288: .4byte gBattleMoves
-_0801E28C: .4byte gCurrentMove
-_0801E290:
- cmp r0, 0x40
- beq _0801E2AC
- b _0801E2C6
-_0801E296:
- str r4, [sp]
- movs r0, 0x12
- adds r1, r3, 0
- movs r2, 0x2E
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0x1
- b _0801E2E6
-_0801E2AC:
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x10
- movs r2, 0x2E
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0
- b _0801E2E6
-_0801E2C6:
- ldr r1, _0801E348 @ =gBattlerTarget
- mov r2, r9
- ldrb r0, [r2]
- ldrb r7, [r1]
- cmp r0, r7
- beq _0801E2E6
- ldr r2, _0801E34C @ =gBattleMons
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2E
- bne _0801E2E6
- adds r6, 0x1
-_0801E2E6:
- ldr r0, _0801E350 @ =gUnknown_2023DD0
- ldr r4, [r0]
- movs r0, 0xA0
- lsls r0, 4
- ands r4, r0
- cmp r4, 0
- bne _0801E3CC
- ldr r2, _0801E34C @ =gBattleMons
- ldr r3, _0801E354 @ =gUnknown_2023D48
- ldr r1, _0801E358 @ =sBattler_AI
- ldrb r5, [r1]
- movs r0, 0x58
- mov r8, r0
- mov r0, r8
- muls r0, r5
- ldrb r7, [r3]
- adds r0, r7
- movs r7, 0x24
- adds r7, r2
- mov r12, r7
- add r0, r12
- ldrb r0, [r0]
- mov r9, r1
- mov r10, r2
- adds r7, r3, 0
- cmp r0, 0
- beq _0801E3CC
- ldr r0, _0801E35C @ =gUnknown_2023E8C
- lsls r1, r5, 4
- adds r1, r0
- ldrb r0, [r1, 0x2]
- movs r2, 0x8
- orrs r0, r2
- strb r0, [r1, 0x2]
- mov r1, r9
- ldrb r0, [r1]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- ldrb r1, [r7]
- adds r0, r1
- mov r1, r12
- adds r2, r0, r1
- ldrb r0, [r2]
- cmp r0, r6
- ble _0801E360
- subs r0, r6
- strb r0, [r2]
- b _0801E362
- .align 2, 0
-_0801E348: .4byte gBattlerTarget
-_0801E34C: .4byte gBattleMons
-_0801E350: .4byte gUnknown_2023DD0
-_0801E354: .4byte gUnknown_2023D48
-_0801E358: .4byte sBattler_AI
-_0801E35C: .4byte gUnknown_2023E8C
-_0801E360:
- strb r4, [r2]
-_0801E362:
- mov r2, r9
- ldrb r3, [r2]
- movs r4, 0x58
- adds r0, r3, 0
- muls r0, r4
- mov r1, r10
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _0801E3CC
- ldr r1, _0801E3F0 @ =gDisableStructs
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0801E3F4 @ =gBitTable
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0801E3CC
- ldr r0, _0801E3F8 @ =gActiveBattler
- strb r3, [r0]
- ldrb r1, [r7]
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- mov r2, r9
- ldrb r0, [r2]
- muls r0, r4
- mov r2, r10
- adds r2, 0x24
- adds r0, r2
- ldrb r7, [r7]
- adds r0, r7
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl EmitSetMonData
- mov r7, r9
- ldrb r0, [r7]
- bl MarkBufferBankForExecution
-_0801E3CC:
- ldr r2, _0801E3FC @ =gUnknown_2023DD0
- ldr r0, [r2]
- ldr r1, _0801E400 @ =0xfffff7ff
- ands r0, r1
- str r0, [r2]
- ldr r1, _0801E404 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801E3DE:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E3F0: .4byte gDisableStructs
-_0801E3F4: .4byte gBitTable
-_0801E3F8: .4byte gActiveBattler
-_0801E3FC: .4byte gUnknown_2023DD0
-_0801E400: .4byte 0xfffff7ff
-_0801E404: .4byte gUnknown_2023D74
- thumb_func_end atk03_ppreduce
-
- thumb_func_start sub_801E408
-sub_801E408: @ 801E408
- push {r4-r7,lr}
- ldr r1, _0801E42C @ =gBattleMons
- ldr r0, _0801E430 @ =sBattler_AI
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- cmp r0, 0xAF
- bne _0801E438
- ldr r1, _0801E434 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x7]
- b _0801E440
- .align 2, 0
-_0801E42C: .4byte gBattleMons
-_0801E430: .4byte sBattler_AI
-_0801E434: .4byte gEnigmaBerries
-_0801E438:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r6, r0, 24
-_0801E440:
- ldr r1, _0801E4CC @ =gPotentialItemEffectBattler
- ldr r3, _0801E4D0 @ =sBattler_AI
- ldrb r0, [r3]
- strb r0, [r1]
- ldr r4, _0801E4D4 @ =gBattleMons
- ldrb r1, [r3]
- movs r0, 0x58
- adds r7, r1, 0
- muls r7, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r7, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- negs r0, r0
- asrs r5, r0, 31
- movs r0, 0x2
- ands r5, r0
- ldr r2, _0801E4D8 @ =gBattleMoves
- ldr r0, _0801E4DC @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- mov r12, r3
- cmp r1, 0x2B
- bne _0801E480
- adds r5, 0x1
-_0801E480:
- adds r0, r5, 0
- cmp r1, 0x4B
- bne _0801E488
- adds r0, 0x1
-_0801E488:
- cmp r1, 0xC8
- bne _0801E48E
- adds r0, 0x1
-_0801E48E:
- adds r2, r0, 0
- cmp r1, 0xD1
- bne _0801E496
- adds r2, 0x1
-_0801E496:
- movs r1, 0
- cmp r6, 0x3F
- bne _0801E4A6
- adds r0, r7, r4
- ldrh r0, [r0]
- cmp r0, 0x71
- bne _0801E4A6
- movs r1, 0x1
-_0801E4A6:
- lsls r5, r1, 1
- movs r3, 0
- cmp r6, 0x42
- bne _0801E4C0
- mov r0, r12
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0x53
- bne _0801E4C0
- movs r3, 0x1
-_0801E4C0:
- lsls r1, r3, 1
- cmp r6, 0x29
- bne _0801E4E0
- adds r0, r5, 0x1
- adds r0, r2, r0
- b _0801E4E2
- .align 2, 0
-_0801E4CC: .4byte gPotentialItemEffectBattler
-_0801E4D0: .4byte sBattler_AI
-_0801E4D4: .4byte gBattleMons
-_0801E4D8: .4byte gBattleMoves
-_0801E4DC: .4byte gCurrentMove
-_0801E4E0:
- adds r0, r2, r5
-_0801E4E2:
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- adds r5, r0, 0
- cmp r5, 0x4
- bls _0801E4F0
- movs r5, 0x4
-_0801E4F0:
- ldr r0, _0801E56C @ =gBattlerTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r4
- adds r0, 0x20
- ldrb r4, [r0]
- cmp r4, 0x4
- beq _0801E580
- cmp r4, 0x4B
- beq _0801E580
- ldr r1, _0801E570 @ =gStatuses3
- mov r2, r12
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- bne _0801E580
- ldr r4, _0801E574 @ =gBattleTypeFlags
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 2
- ands r0, r1
- cmp r0, 0
- bne _0801E580
- bl Random
- ldr r2, _0801E578 @ =gUnknown_8250530
- lsls r1, r5, 1
- adds r1, r2
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r1]
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _0801E580
- ldr r0, [r4]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0801E55A
- movs r0, 0x1
- bl sub_80EB2E0
- lsls r0, 24
- cmp r0, 0
- beq _0801E580
-_0801E55A:
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 9
- ands r0, r1
- cmp r0, 0
- bne _0801E580
- ldr r1, _0801E57C @ =gCritMultiplier
- movs r0, 0x2
- b _0801E584
- .align 2, 0
-_0801E56C: .4byte gBattlerTarget
-_0801E570: .4byte gStatuses3
-_0801E574: .4byte gBattleTypeFlags
-_0801E578: .4byte gUnknown_8250530
-_0801E57C: .4byte gCritMultiplier
-_0801E580:
- ldr r1, _0801E594 @ =gCritMultiplier
- movs r0, 0x1
-_0801E584:
- strb r0, [r1]
- ldr r1, _0801E598 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E594: .4byte gCritMultiplier
-_0801E598: .4byte gUnknown_2023D74
- thumb_func_end sub_801E408
-
- thumb_func_start atk05_damagecalc
-atk05_damagecalc: @ 801E59C
- push {r4-r7,lr}
- sub sp, 0x10
- ldr r4, _0801E654 @ =gSideAffecting
- ldr r5, _0801E658 @ =gBattlerTarget
- ldrb r0, [r5]
- bl GetBattlerPosition
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- ldr r6, _0801E65C @ =sBattler_AI
- ldrb r0, [r6]
- movs r4, 0x58
- muls r0, r4
- ldr r2, _0801E660 @ =gBattleMons
- adds r0, r2
- ldrb r1, [r5]
- muls r1, r4
- adds r1, r2
- ldr r7, _0801E664 @ =gCurrentMove
- ldrh r2, [r7]
- ldr r4, _0801E668 @ =gDynamicBasePower
- ldrh r4, [r4]
- str r4, [sp]
- ldr r4, _0801E66C @ =gBattleStruct
- ldr r4, [r4]
- ldrb r4, [r4, 0x13]
- str r4, [sp, 0x4]
- ldrb r4, [r6]
- str r4, [sp, 0x8]
- ldrb r4, [r5]
- str r4, [sp, 0xC]
- bl CalculateBaseDamage
- ldr r4, _0801E670 @ =gBattleMoveDamage
- ldr r1, _0801E674 @ =gCritMultiplier
- ldrb r1, [r1]
- muls r1, r0
- ldr r0, _0801E678 @ =gBattleScripting
- ldrb r0, [r0, 0xE]
- adds r3, r1, 0
- muls r3, r0
- str r3, [r4]
- ldr r1, _0801E67C @ =gStatuses3
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 2
- ands r0, r1
- cmp r0, 0
- beq _0801E620
- ldr r2, _0801E680 @ =gBattleMoves
- ldrh r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- cmp r0, 0xD
- bne _0801E620
- lsls r0, r3, 1
- str r0, [r4]
-_0801E620:
- ldr r1, _0801E684 @ =gUnknown_2023E8C
- ldr r0, _0801E65C @ =sBattler_AI
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _0801E642
- ldr r4, _0801E670 @ =gBattleMoveDamage
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_0801E642:
- ldr r1, _0801E688 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E654: .4byte gSideAffecting
-_0801E658: .4byte gBattlerTarget
-_0801E65C: .4byte sBattler_AI
-_0801E660: .4byte gBattleMons
-_0801E664: .4byte gCurrentMove
-_0801E668: .4byte gDynamicBasePower
-_0801E66C: .4byte gBattleStruct
-_0801E670: .4byte gBattleMoveDamage
-_0801E674: .4byte gCritMultiplier
-_0801E678: .4byte gBattleScripting
-_0801E67C: .4byte gStatuses3
-_0801E680: .4byte gBattleMoves
-_0801E684: .4byte gUnknown_2023E8C
-_0801E688: .4byte gUnknown_2023D74
- thumb_func_end atk05_damagecalc
-
- thumb_func_start AI_CalcDmg
-AI_CalcDmg: @ 801E68C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r5, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _0801E744 @ =gSideAffecting
- adds r0, r5, 0
- bl GetBattlerPosition
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- movs r1, 0x58
- adds r0, r7, 0
- muls r0, r1
- ldr r2, _0801E748 @ =gBattleMons
- adds r0, r2
- muls r1, r5
- adds r1, r2
- ldr r2, _0801E74C @ =gCurrentMove
- mov r8, r2
- ldrh r2, [r2]
- ldr r6, _0801E750 @ =gDynamicBasePower
- ldrh r4, [r6]
- str r4, [sp]
- ldr r4, _0801E754 @ =gBattleStruct
- ldr r4, [r4]
- ldrb r4, [r4, 0x13]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- str r5, [sp, 0xC]
- bl CalculateBaseDamage
- ldr r4, _0801E758 @ =gBattleMoveDamage
- movs r1, 0
- strh r1, [r6]
- ldr r1, _0801E75C @ =gCritMultiplier
- ldrb r1, [r1]
- muls r1, r0
- ldr r0, _0801E760 @ =gBattleScripting
- ldrb r0, [r0, 0xE]
- adds r3, r1, 0
- muls r3, r0
- str r3, [r4]
- ldr r1, _0801E764 @ =gStatuses3
- lsls r0, r7, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 2
- ands r0, r1
- cmp r0, 0
- beq _0801E71A
- ldr r2, _0801E768 @ =gBattleMoves
- mov r0, r8
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- cmp r0, 0xD
- bne _0801E71A
- lsls r0, r3, 1
- str r0, [r4]
-_0801E71A:
- ldr r0, _0801E76C @ =gUnknown_2023E8C
- lsls r1, r7, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 28
- cmp r0, 0
- bge _0801E738
- ldr r4, _0801E758 @ =gBattleMoveDamage
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_0801E738:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E744: .4byte gSideAffecting
-_0801E748: .4byte gBattleMons
-_0801E74C: .4byte gCurrentMove
-_0801E750: .4byte gDynamicBasePower
-_0801E754: .4byte gBattleStruct
-_0801E758: .4byte gBattleMoveDamage
-_0801E75C: .4byte gCritMultiplier
-_0801E760: .4byte gBattleScripting
-_0801E764: .4byte gStatuses3
-_0801E768: .4byte gBattleMoves
-_0801E76C: .4byte gUnknown_2023E8C
- thumb_func_end AI_CalcDmg
-
- thumb_func_start ModulateDmgByType
-ModulateDmgByType: @ 801E770
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _0801E7A0 @ =gBattleMoveDamage
- ldr r0, [r5]
- muls r0, r4
- movs r1, 0xA
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _0801E790
- cmp r4, 0
- beq _0801E790
- movs r0, 0x1
- str r0, [r5]
-_0801E790:
- cmp r4, 0x5
- beq _0801E7C0
- cmp r4, 0x5
- bgt _0801E7A4
- cmp r4, 0
- beq _0801E7AA
- b _0801E842
- .align 2, 0
-_0801E7A0: .4byte gBattleMoveDamage
-_0801E7A4:
- cmp r4, 0x14
- beq _0801E800
- b _0801E842
-_0801E7AA:
- ldr r2, _0801E7BC @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- movs r1, 0xFB
- ands r0, r1
- movs r1, 0xFD
- ands r0, r1
- b _0801E840
- .align 2, 0
-_0801E7BC: .4byte gMoveResultFlags
-_0801E7C0:
- ldr r2, _0801E7F0 @ =gBattleMoves
- ldr r0, _0801E7F4 @ =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 _0801E842
- ldr r2, _0801E7F8 @ =gMoveResultFlags
- ldrb r1, [r2]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801E842
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801E7FC
- movs r0, 0xFD
- ands r0, r1
- b _0801E840
- .align 2, 0
-_0801E7F0: .4byte gBattleMoves
-_0801E7F4: .4byte gCurrentMove
-_0801E7F8: .4byte gMoveResultFlags
-_0801E7FC:
- movs r0, 0x4
- b _0801E83E
-_0801E800:
- ldr r2, _0801E830 @ =gBattleMoves
- ldr r0, _0801E834 @ =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 _0801E842
- ldr r2, _0801E838 @ =gMoveResultFlags
- ldrb r1, [r2]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801E842
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801E83C
- movs r0, 0xFB
- ands r0, r1
- b _0801E840
- .align 2, 0
-_0801E830: .4byte gBattleMoves
-_0801E834: .4byte gCurrentMove
-_0801E838: .4byte gMoveResultFlags
-_0801E83C:
- movs r0, 0x2
-_0801E83E:
- orrs r0, r1
-_0801E840:
- strb r0, [r2]
-_0801E842:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ModulateDmgByType
-
- thumb_func_start atk06_typecalc
-atk06_typecalc: @ 801E848
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r3, 0
- ldr r1, _0801E870 @ =gCurrentMove
- ldrh r0, [r1]
- cmp r0, 0xA5
- bne _0801E85C
- b _0801EA70
-_0801E85C:
- ldr r0, _0801E874 @ =gBattleStruct
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _0801E878
- movs r1, 0x3F
- mov r8, r1
- ands r1, r0
- mov r8, r1
- b _0801E888
- .align 2, 0
-_0801E870: .4byte gCurrentMove
-_0801E874: .4byte gBattleStruct
-_0801E878:
- ldr r2, _0801E910 @ =gBattleMoves
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- mov r8, r0
-_0801E888:
- ldr r2, _0801E914 @ =gBattleMons
- ldr r0, _0801E918 @ =sBattler_AI
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- adds r5, r2, 0
- cmp r0, r8
- beq _0801E8AA
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r8
- bne _0801E8C0
-_0801E8AA:
- ldr r4, _0801E91C @ =gBattleMoveDamage
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- str r0, [r4]
- movs r1, 0xA
- str r3, [sp, 0x4]
- bl __divsi3
- str r0, [r4]
- ldr r3, [sp, 0x4]
-_0801E8C0:
- ldr r2, _0801E920 @ =gBattlerTarget
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- adds r4, r2, 0
- cmp r0, 0x1A
- bne _0801E938
- mov r1, r8
- cmp r1, 0x4
- bne _0801E938
- ldr r3, _0801E924 @ =gLastUsedAbility
- strb r0, [r3]
- ldr r2, _0801E928 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x9
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801E92C @ =gUnknown_2023DA0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801E930 @ =gUnknown_2023DA8
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldr r0, _0801E934 @ =gUnknown_2023E82
- mov r1, r8
- strb r1, [r0, 0x6]
- ldrb r0, [r4]
- ldrb r1, [r3]
- bl sub_80C71D0
- b _0801E9D4
- .align 2, 0
-_0801E910: .4byte gBattleMoves
-_0801E914: .4byte gBattleMons
-_0801E918: .4byte sBattler_AI
-_0801E91C: .4byte gBattleMoveDamage
-_0801E920: .4byte gBattlerTarget
-_0801E924: .4byte gLastUsedAbility
-_0801E928: .4byte gMoveResultFlags
-_0801E92C: .4byte gUnknown_2023DA0
-_0801E930: .4byte gUnknown_2023DA8
-_0801E934: .4byte gUnknown_2023E82
-_0801E938:
- ldr r1, _0801E944 @ =gUnknown_824F050
- adds r0, r3, r1
- ldrb r0, [r0]
- adds r2, r1, 0
- b _0801E9B4
- .align 2, 0
-_0801E944: .4byte gUnknown_824F050
-_0801E948:
- adds r3, 0x3
- b _0801E9B0
-_0801E94C:
- ldr r5, _0801EA84 @ =gUnknown_824F050
- adds r0, r3, r5
- ldrb r0, [r0]
- cmp r0, r8
- bne _0801E9A8
- adds r1, r3, 0x1
- adds r1, r5
- ldr r2, _0801EA88 @ =gBattleMons
- ldr r7, _0801EA8C @ =gBattlerTarget
- ldrb r0, [r7]
- movs r6, 0x58
- muls r0, r6
- adds r0, r2
- adds r0, 0x21
- ldrb r4, [r1]
- ldrb r0, [r0]
- cmp r4, r0
- bne _0801E982
- adds r0, r3, 0x2
- adds r0, r5
- ldrb r0, [r0]
- str r2, [sp]
- str r3, [sp, 0x4]
- bl ModulateDmgByType
- ldr r3, [sp, 0x4]
- ldr r2, [sp]
-_0801E982:
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r1, [r1]
- cmp r4, r1
- bne _0801E9A8
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r4
- beq _0801E9A8
- adds r0, r3, 0x2
- adds r0, r5
- ldrb r0, [r0]
- str r3, [sp, 0x4]
- bl ModulateDmgByType
- ldr r3, [sp, 0x4]
-_0801E9A8:
- adds r3, 0x3
- ldr r5, _0801EA88 @ =gBattleMons
- ldr r4, _0801EA8C @ =gBattlerTarget
- ldr r2, _0801EA84 @ =gUnknown_824F050
-_0801E9B0:
- adds r0, r3, r2
- ldrb r0, [r0]
-_0801E9B4:
- cmp r0, 0xFF
- beq _0801E9D4
- cmp r0, 0xFE
- bne _0801E94C
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r1, r5, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801E948
-_0801E9D4:
- ldr r2, _0801EA88 @ =gBattleMons
- ldr r5, _0801EA8C @ =gBattlerTarget
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r6, [r0]
- cmp r6, 0x19
- bne _0801EA52
- ldr r0, _0801EA90 @ =sBattler_AI
- ldrb r0, [r0]
- ldr r7, _0801EA94 @ =gCurrentMove
- ldrh r1, [r7]
- bl AttacksThisTurn
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0801EA52
- ldr r1, _0801EA98 @ =gMoveResultFlags
- mov r8, r1
- ldrb r4, [r1]
- ands r0, r4
- cmp r0, 0
- beq _0801EA10
- movs r0, 0x6
- ands r0, r4
- cmp r0, 0x6
- bne _0801EA52
-_0801EA10:
- ldr r2, _0801EA9C @ =gBattleMoves
- ldrh r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801EA52
- ldr r3, _0801EAA0 @ =gLastUsedAbility
- strb r6, [r3]
- movs r0, 0x1
- orrs r0, r4
- mov r1, r8
- strb r0, [r1]
- ldr r1, _0801EAA4 @ =gUnknown_2023DA0
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801EAA8 @ =gUnknown_2023DA8
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldr r1, _0801EAAC @ =gUnknown_2023E82
- movs r0, 0x3
- strb r0, [r1, 0x6]
- ldrb r0, [r5]
- ldrb r1, [r3]
- bl sub_80C71D0
-_0801EA52:
- ldr r0, _0801EA98 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801EA70
- ldr r2, _0801EAB0 @ =gUnknown_2023E8C
- ldr r0, _0801EA90 @ =sBattler_AI
- ldrb r1, [r0]
- lsls r1, 4
- adds r1, r2
- ldrb r0, [r1, 0x1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1, 0x1]
-_0801EA70:
- ldr r1, _0801EAB4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801EA84: .4byte gUnknown_824F050
-_0801EA88: .4byte gBattleMons
-_0801EA8C: .4byte gBattlerTarget
-_0801EA90: .4byte sBattler_AI
-_0801EA94: .4byte gCurrentMove
-_0801EA98: .4byte gMoveResultFlags
-_0801EA9C: .4byte gBattleMoves
-_0801EAA0: .4byte gLastUsedAbility
-_0801EAA4: .4byte gUnknown_2023DA0
-_0801EAA8: .4byte gUnknown_2023DA8
-_0801EAAC: .4byte gUnknown_2023E82
-_0801EAB0: .4byte gUnknown_2023E8C
-_0801EAB4: .4byte gUnknown_2023D74
- thumb_func_end atk06_typecalc
-
- thumb_func_start CheckWonderGuardAndLevitate
-CheckWonderGuardAndLevitate: @ 801EAB8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r6, 0
- movs r5, 0
- ldr r0, _0801EAF8 @ =gCurrentMove
- ldrh r1, [r0]
- mov r9, r0
- cmp r1, 0xA5
- bne _0801EAD0
- b _0801ED18
-_0801EAD0:
- ldr r2, _0801EAFC @ =gBattleMoves
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _0801EAE2
- b _0801ED18
-_0801EAE2:
- ldr r0, _0801EB00 @ =gBattleStruct
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _0801EB04
- movs r1, 0x3F
- mov r12, r1
- mov r2, r12
- ands r2, r0
- mov r12, r2
- b _0801EB08
- .align 2, 0
-_0801EAF8: .4byte gCurrentMove
-_0801EAFC: .4byte gBattleMoves
-_0801EB00: .4byte gBattleStruct
-_0801EB04:
- ldrb r1, [r1, 0x2]
- mov r12, r1
-_0801EB08:
- ldr r2, _0801EB3C @ =gBattleMons
- ldr r3, _0801EB40 @ =gBattlerTarget
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r1, [r0]
- adds r7, r2, 0
- mov r8, r3
- cmp r1, 0x1A
- bne _0801EB4C
- mov r0, r12
- cmp r0, 0x4
- bne _0801EB4C
- ldr r0, _0801EB44 @ =gLastUsedAbility
- strb r1, [r0]
- ldr r0, _0801EB48 @ =gUnknown_2023E82
- mov r1, r12
- strb r1, [r0, 0x6]
- ldrb r0, [r3]
- movs r1, 0x1A
- bl sub_80C71D0
- b _0801ED18
- .align 2, 0
-_0801EB3C: .4byte gBattleMons
-_0801EB40: .4byte gBattlerTarget
-_0801EB44: .4byte gLastUsedAbility
-_0801EB48: .4byte gUnknown_2023E82
-_0801EB4C:
- ldr r1, _0801EB58 @ =gUnknown_824F050
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r4, r1, 0
- b _0801EC9E
- .align 2, 0
-_0801EB58: .4byte gUnknown_824F050
-_0801EB5C:
- adds r0, r5, r4
- ldrb r0, [r0]
- cmp r0, r12
- beq _0801EB66
- b _0801EC98
-_0801EB66:
- adds r2, r5, 0x1
- adds r3, r2, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x21
- ldrb r1, [r3]
- adds r3, r2, 0
- ldrb r0, [r0]
- cmp r1, r0
- bne _0801EBA6
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0801EBA6
- ldr r2, _0801ED24 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801ED28 @ =gUnknown_2023E8C
- ldr r0, _0801ED2C @ =sBattler_AI
- ldrb r2, [r0]
- lsls r2, 4
- adds r2, r1
- ldrb r0, [r2, 0x1]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x1]
-_0801EBA6:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0801EBEC
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0801EBEC
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0801EBEC
- ldr r2, _0801ED24 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801ED28 @ =gUnknown_2023E8C
- ldr r0, _0801ED2C @ =sBattler_AI
- ldrb r2, [r0]
- lsls r2, 4
- adds r2, r1
- ldrb r0, [r2, 0x1]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x1]
-_0801EBEC:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x21
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0801EC10
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0801EC10
- movs r0, 0x1
- orrs r6, r0
-_0801EC10:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0801EC3E
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0801EC3E
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0801EC3E
- movs r0, 0x1
- orrs r6, r0
-_0801EC3E:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x21
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0801EC66
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _0801EC66
- movs r0, 0x2
- orrs r6, r0
- lsls r0, r6, 24
- lsrs r6, r0, 24
-_0801EC66:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0801EC98
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0801EC98
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _0801EC98
- movs r0, 0x2
- orrs r6, r0
- lsls r0, r6, 24
- lsrs r6, r0, 24
-_0801EC98:
- adds r5, 0x3
- adds r0, r5, r4
- ldrb r0, [r0]
-_0801EC9E:
- cmp r0, 0xFF
- beq _0801ECC2
- cmp r0, 0xFE
- beq _0801ECA8
- b _0801EB5C
-_0801ECA8:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- adds r1, r7, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801EC98
-_0801ECC2:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x20
- ldrb r4, [r0]
- cmp r4, 0x19
- bne _0801ED18
- ldr r0, _0801ED2C @ =sBattler_AI
- ldrb r0, [r0]
- mov r2, r9
- ldrh r1, [r2]
- bl AttacksThisTurn
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0801ED18
- movs r0, 0x3
- ands r6, r0
- cmp r6, 0x1
- beq _0801ED18
- ldr r2, _0801ED30 @ =gBattleMoves
- mov r0, r9
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801ED18
- ldr r0, _0801ED34 @ =gLastUsedAbility
- strb r4, [r0]
- ldr r1, _0801ED38 @ =gUnknown_2023E82
- movs r0, 0x3
- strb r0, [r1, 0x6]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x19
- bl sub_80C71D0
-_0801ED18:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801ED24: .4byte gMoveResultFlags
-_0801ED28: .4byte gUnknown_2023E8C
-_0801ED2C: .4byte sBattler_AI
-_0801ED30: .4byte gBattleMoves
-_0801ED34: .4byte gLastUsedAbility
-_0801ED38: .4byte gUnknown_2023E82
- thumb_func_end CheckWonderGuardAndLevitate
-
- thumb_func_start ModulateDmgByType2
-ModulateDmgByType2: @ 801ED3C
- push {r4-r7,lr}
- adds r6, r2, 0
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r7, _0801ED70 @ =gBattleMoveDamage
- ldr r0, [r7]
- muls r0, r4
- movs r1, 0xA
- bl __divsi3
- str r0, [r7]
- cmp r0, 0
- bne _0801ED62
- cmp r4, 0
- beq _0801ED62
- movs r0, 0x1
- str r0, [r7]
-_0801ED62:
- cmp r4, 0x5
- beq _0801ED8A
- cmp r4, 0x5
- bgt _0801ED74
- cmp r4, 0
- beq _0801ED7A
- b _0801EDEE
- .align 2, 0
-_0801ED70: .4byte gBattleMoveDamage
-_0801ED74:
- cmp r4, 0x14
- beq _0801EDBC
- b _0801EDEE
-_0801ED7A:
- ldrb r0, [r6]
- movs r1, 0x8
- orrs r0, r1
- movs r1, 0xFB
- ands r0, r1
- movs r1, 0xFD
- ands r0, r1
- b _0801EDEC
-_0801ED8A:
- ldr r0, _0801EDB4 @ =gBattleMoves
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801EDEE
- ldrb r1, [r6]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801EDEE
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801EDB8
- movs r0, 0xFD
- ands r0, r1
- b _0801EDEC
- .align 2, 0
-_0801EDB4: .4byte gBattleMoves
-_0801EDB8:
- movs r0, 0x4
- b _0801EDEA
-_0801EDBC:
- ldr r0, _0801EDE4 @ =gBattleMoves
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801EDEE
- ldrb r1, [r6]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801EDEE
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801EDE8
- movs r0, 0xFB
- ands r0, r1
- b _0801EDEC
- .align 2, 0
-_0801EDE4: .4byte gBattleMoves
-_0801EDE8:
- movs r0, 0x2
-_0801EDEA:
- orrs r0, r1
-_0801EDEC:
- strb r0, [r6]
-_0801EDEE:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ModulateDmgByType2
-
- thumb_func_start TypeCalc
-TypeCalc: @ 801EDF4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x4]
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- movs r0, 0
- mov r8, r0
- mov r0, sp
- mov r1, r8
- strb r1, [r0]
- mov r2, r10
- cmp r2, 0xA5
- bne _0801EE26
- movs r0, 0
- b _0801EFAE
-_0801EE26:
- ldr r1, _0801EE94 @ =gBattleMoves
- mov r3, r10
- lsls r2, r3, 1
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- str r0, [sp, 0x8]
- ldr r1, _0801EE98 @ =gBattleMons
- movs r0, 0x58
- ldr r3, [sp, 0x4]
- muls r0, r3
- adds r3, r0, r1
- adds r0, r3, 0
- adds r0, 0x21
- ldrb r0, [r0]
- str r2, [sp, 0xC]
- adds r5, r1, 0
- ldr r1, [sp, 0x8]
- cmp r0, r1
- beq _0801EE5A
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- bne _0801EE6C
-_0801EE5A:
- ldr r4, _0801EE9C @ =gBattleMoveDamage
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- str r0, [r4]
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_0801EE6C:
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- bne _0801EEA0
- ldr r3, [sp, 0x8]
- cmp r3, 0x4
- bne _0801EEA0
- movs r1, 0x9
- mov r0, sp
- ldrb r0, [r0]
- orrs r0, r1
- mov r1, sp
- strb r0, [r1]
- b _0801EF50
- .align 2, 0
-_0801EE94: .4byte gBattleMoves
-_0801EE98: .4byte gBattleMons
-_0801EE9C: .4byte gBattleMoveDamage
-_0801EEA0:
- ldr r1, _0801EEBC @ =gUnknown_824F050
- mov r2, r8
- adds r0, r2, r1
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0xFF
- beq _0801EF50
- cmp r0, 0xFE
- bne _0801EEC6
- movs r0, 0x58
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- b _0801EF3E
- .align 2, 0
-_0801EEBC: .4byte gUnknown_824F050
-_0801EEC0:
- movs r0, 0x3
- add r8, r0
- b _0801EF28
-_0801EEC6:
- ldr r7, _0801EFC0 @ =gUnknown_824F050
- mov r1, r8
- adds r0, r1, r7
- ldrb r0, [r0]
- ldr r2, [sp, 0x8]
- cmp r0, r2
- bne _0801EF20
- adds r1, 0x1
- adds r1, r7
- ldr r2, _0801EFC4 @ =gBattleMons
- movs r0, 0x58
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- adds r5, r0, r2
- adds r6, r5, 0
- adds r6, 0x21
- ldrb r4, [r1]
- ldrb r0, [r6]
- cmp r4, r0
- bne _0801EF00
- mov r0, r8
- adds r0, 0x2
- adds r0, r7
- ldrb r0, [r0]
- mov r1, r10
- mov r2, sp
- bl ModulateDmgByType2
-_0801EF00:
- adds r0, r5, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r4, r0
- bne _0801EF20
- ldrb r0, [r6]
- cmp r0, r4
- beq _0801EF20
- mov r0, r8
- adds r0, 0x2
- adds r0, r7
- ldrb r0, [r0]
- mov r1, r10
- mov r2, sp
- bl ModulateDmgByType2
-_0801EF20:
- movs r1, 0x3
- add r8, r1
- ldr r5, _0801EFC4 @ =gBattleMons
- ldr r2, _0801EFC0 @ =gUnknown_824F050
-_0801EF28:
- mov r3, r8
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _0801EF50
- cmp r0, 0xFE
- bne _0801EEC6
- movs r0, 0x58
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
-_0801EF3E:
- adds r1, r5, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801EEC0
-_0801EF50:
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x19
- bne _0801EFAA
- mov r0, sp
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0801EFAA
- ldr r0, [sp, 0x4]
- mov r1, r10
- bl AttacksThisTurn
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bne _0801EFAA
- mov r0, sp
- ldrb r3, [r0]
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0801EF92
- movs r0, 0x6
- ands r0, r3
- cmp r0, 0x6
- bne _0801EFAA
-_0801EF92:
- ldr r0, _0801EFC8 @ =gBattleMoves
- ldr r1, [sp, 0xC]
- add r1, r10
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801EFAA
- mov r0, sp
- movs r1, 0x1
- orrs r1, r3
- strb r1, [r0]
-_0801EFAA:
- mov r0, sp
- ldrb r0, [r0]
-_0801EFAE:
- 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
-_0801EFC0: .4byte gUnknown_824F050
-_0801EFC4: .4byte gBattleMons
-_0801EFC8: .4byte gBattleMoves
- thumb_func_end TypeCalc
-
- thumb_func_start AI_TypeCalc
-AI_TypeCalc: @ 801EFCC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4]
- movs r7, 0
- mov r0, sp
- strb r7, [r0]
- ldr r2, _0801F008 @ =gBaseStats
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x6]
- mov r9, r1
- ldrb r0, [r0, 0x7]
- mov r8, r0
- cmp r6, 0xA5
- bne _0801F00C
- movs r0, 0
- b _0801F0B0
- .align 2, 0
-_0801F008: .4byte gBaseStats
-_0801F00C:
- ldr r2, _0801F030 @ =gBattleMoves
- lsls r1, r6, 1
- adds r0, r1, r6
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- mov r10, r0
- str r1, [sp, 0x8]
- ldr r3, [sp, 0x4]
- cmp r3, 0x1A
- bne _0801F034
- cmp r0, 0x4
- bne _0801F034
- movs r1, 0x9
- mov r0, sp
- strb r1, [r0]
- b _0801F07A
- .align 2, 0
-_0801F030: .4byte gBattleMoves
-_0801F034:
- ldr r0, _0801F0C0 @ =gUnknown_824F050
- adds r1, r7, r0
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _0801F07A
- adds r4, r1, 0
-_0801F040:
- ldrb r0, [r4]
- cmp r0, 0xFE
- beq _0801F06C
- cmp r0, r10
- bne _0801F06C
- ldrb r5, [r4, 0x1]
- cmp r5, r9
- bne _0801F05A
- ldrb r0, [r4, 0x2]
- adds r1, r6, 0
- mov r2, sp
- bl ModulateDmgByType2
-_0801F05A:
- cmp r5, r8
- bne _0801F06C
- cmp r9, r8
- beq _0801F06C
- ldrb r0, [r4, 0x2]
- adds r1, r6, 0
- mov r2, sp
- bl ModulateDmgByType2
-_0801F06C:
- adds r4, 0x3
- adds r7, 0x3
- ldr r1, _0801F0C0 @ =gUnknown_824F050
- adds r0, r7, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _0801F040
-_0801F07A:
- ldr r3, [sp, 0x4]
- cmp r3, 0x19
- bne _0801F0AC
- mov r0, sp
- ldrb r2, [r0]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0801F094
- movs r0, 0x6
- ands r0, r2
- cmp r0, 0x6
- bne _0801F0AC
-_0801F094:
- ldr r0, _0801F0C4 @ =gBattleMoves
- ldr r3, [sp, 0x8]
- adds r1, r3, r6
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801F0AC
- mov r0, sp
- movs r1, 0x8
- orrs r1, r2
- strb r1, [r0]
-_0801F0AC:
- mov r0, sp
- ldrb r0, [r0]
-_0801F0B0:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801F0C0: .4byte gUnknown_824F050
-_0801F0C4: .4byte gBattleMoves
- thumb_func_end AI_TypeCalc
-
- thumb_func_start Unused_ApplyRandomDmgMultiplier
-Unused_ApplyRandomDmgMultiplier: @ 801F0C8
- push {r4,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x64
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0801F100 @ =gBattleMoveDamage
- ldr r0, [r4]
- cmp r0, 0
- beq _0801F0FA
- muls r0, r1
- str r0, [r4]
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801F0FA
- movs r0, 0x1
- str r0, [r4]
-_0801F0FA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801F100: .4byte gBattleMoveDamage
- thumb_func_end Unused_ApplyRandomDmgMultiplier
-
- thumb_func_start atk07_adjustnormaldamage
-atk07_adjustnormaldamage: @ 801F104
- push {r4-r7,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x64
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0801F15C @ =gBattleMoveDamage
- ldr r0, [r4]
- cmp r0, 0
- beq _0801F136
- muls r0, r1
- str r0, [r4]
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801F136
- movs r0, 0x1
- str r0, [r4]
-_0801F136:
- ldr r7, _0801F160 @ =gBattleMons
- ldr r6, _0801F164 @ =gBattlerTarget
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0801F16C
- ldr r1, _0801F168 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _0801F186
- .align 2, 0
-_0801F15C: .4byte gBattleMoveDamage
-_0801F160: .4byte gBattleMons
-_0801F164: .4byte gBattlerTarget
-_0801F168: .4byte gEnigmaBerries
-_0801F16C:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_0801F186:
- ldr r1, _0801F248 @ =gPotentialItemEffectBattler
- ldr r5, _0801F24C @ =gBattlerTarget
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _0801F1C4
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _0801F1C4
- ldrb r0, [r5]
- movs r1, 0x27
- bl sub_80C7208
- ldr r2, _0801F250 @ =gUnknown_2023ECC
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_0801F1C4:
- ldr r2, _0801F254 @ =gBattleMons
- ldr r3, _0801F24C @ =gBattlerTarget
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 17
- ands r1, r0
- adds r5, r2, 0
- cmp r1, 0
- bne _0801F294
- ldr r2, _0801F258 @ =gBattleMoves
- ldr r0, _0801F25C @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x65
- beq _0801F216
- ldr r0, _0801F260 @ =gUnknown_2023E8C
- lsls r1, r4, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- blt _0801F216
- ldr r0, _0801F250 @ =gUnknown_2023ECC
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801F294
-_0801F216:
- ldrb r0, [r3]
- movs r4, 0x58
- muls r0, r4
- adds r0, r5
- ldrh r1, [r0, 0x28]
- ldr r2, _0801F264 @ =gBattleMoveDamage
- ldr r0, [r2]
- cmp r1, r0
- bgt _0801F294
- subs r0, r1, 0x1
- str r0, [r2]
- ldr r1, _0801F260 @ =gUnknown_2023E8C
- ldrb r3, [r3]
- lsls r0, r3, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bge _0801F26C
- ldr r0, _0801F268 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _0801F294
- .align 2, 0
-_0801F248: .4byte gPotentialItemEffectBattler
-_0801F24C: .4byte gBattlerTarget
-_0801F250: .4byte gUnknown_2023ECC
-_0801F254: .4byte gBattleMons
-_0801F258: .4byte gBattleMoves
-_0801F25C: .4byte gCurrentMove
-_0801F260: .4byte gUnknown_2023E8C
-_0801F264: .4byte gBattleMoveDamage
-_0801F268: .4byte gMoveResultFlags
-_0801F26C:
- ldr r0, _0801F2A4 @ =gUnknown_2023ECC
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801F294
- ldr r2, _0801F2A8 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801F2AC @ =gUnknown_2023D68
- adds r0, r3, 0
- muls r0, r4
- adds r0, r5
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
-_0801F294:
- ldr r1, _0801F2B0 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801F2A4: .4byte gUnknown_2023ECC
-_0801F2A8: .4byte gMoveResultFlags
-_0801F2AC: .4byte gUnknown_2023D68
-_0801F2B0: .4byte gUnknown_2023D74
- thumb_func_end atk07_adjustnormaldamage
-
- thumb_func_start atk08_adjustnormaldamage2
-atk08_adjustnormaldamage2: @ 801F2B4
- push {r4-r7,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x64
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0801F30C @ =gBattleMoveDamage
- ldr r0, [r4]
- cmp r0, 0
- beq _0801F2E6
- muls r0, r1
- str r0, [r4]
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801F2E6
- movs r0, 0x1
- str r0, [r4]
-_0801F2E6:
- ldr r7, _0801F310 @ =gBattleMons
- ldr r6, _0801F314 @ =gBattlerTarget
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0801F31C
- ldr r1, _0801F318 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _0801F336
- .align 2, 0
-_0801F30C: .4byte gBattleMoveDamage
-_0801F310: .4byte gBattleMons
-_0801F314: .4byte gBattlerTarget
-_0801F318: .4byte gEnigmaBerries
-_0801F31C:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_0801F336:
- ldr r1, _0801F3DC @ =gPotentialItemEffectBattler
- ldr r5, _0801F3E0 @ =gBattlerTarget
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _0801F374
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _0801F374
- ldrb r0, [r5]
- movs r1, 0x27
- bl sub_80C7208
- ldr r2, _0801F3E4 @ =gUnknown_2023ECC
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_0801F374:
- ldr r4, _0801F3E8 @ =gBattleMons
- ldr r6, _0801F3E0 @ =gBattlerTarget
- ldrb r2, [r6]
- movs r7, 0x58
- adds r3, r2, 0
- muls r3, r7
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _0801F420
- ldr r5, _0801F3EC @ =gUnknown_2023E8C
- lsls r0, r2, 4
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- blt _0801F3B2
- ldr r0, _0801F3E4 @ =gUnknown_2023ECC
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801F420
-_0801F3B2:
- adds r0, r3, r4
- ldrh r1, [r0, 0x28]
- ldr r2, _0801F3F0 @ =gBattleMoveDamage
- ldr r0, [r2]
- cmp r1, r0
- bgt _0801F420
- subs r0, r1, 0x1
- str r0, [r2]
- ldrb r3, [r6]
- lsls r0, r3, 4
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bge _0801F3F8
- ldr r0, _0801F3F4 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _0801F420
- .align 2, 0
-_0801F3DC: .4byte gPotentialItemEffectBattler
-_0801F3E0: .4byte gBattlerTarget
-_0801F3E4: .4byte gUnknown_2023ECC
-_0801F3E8: .4byte gBattleMons
-_0801F3EC: .4byte gUnknown_2023E8C
-_0801F3F0: .4byte gBattleMoveDamage
-_0801F3F4: .4byte gMoveResultFlags
-_0801F3F8:
- ldr r0, _0801F430 @ =gUnknown_2023ECC
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801F420
- ldr r2, _0801F434 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801F438 @ =gUnknown_2023D68
- adds r0, r3, 0
- muls r0, r7
- adds r0, r4
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
-_0801F420:
- ldr r1, _0801F43C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801F430: .4byte gUnknown_2023ECC
-_0801F434: .4byte gMoveResultFlags
-_0801F438: .4byte gUnknown_2023D68
-_0801F43C: .4byte gUnknown_2023D74
- thumb_func_end atk08_adjustnormaldamage2
-
- thumb_func_start atk09_attackanimation
-atk09_attackanimation: @ 801F440
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- ldr r0, _0801F488 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- beq _0801F452
- b _0801F572
-_0801F452:
- ldr r0, _0801F48C @ =gUnknown_2023DD0
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- ldr r3, _0801F490 @ =gCurrentMove
- cmp r0, 0
- beq _0801F4A0
- ldrh r0, [r3]
- cmp r0, 0x90
- beq _0801F4A0
- cmp r0, 0xA4
- beq _0801F4A0
- ldr r4, _0801F494 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r0, _0801F498 @ =gUnknown_81D89F1
- str r0, [r4]
- ldr r1, _0801F49C @ =gBattleScripting
- ldrb r0, [r1, 0x18]
- adds r0, 0x1
- strb r0, [r1, 0x18]
- ldrb r0, [r1, 0x19]
- adds r0, 0x1
- strb r0, [r1, 0x19]
- b _0801F572
- .align 2, 0
-_0801F488: .4byte gUnknown_2023BC8
-_0801F48C: .4byte gUnknown_2023DD0
-_0801F490: .4byte gCurrentMove
-_0801F494: .4byte gUnknown_2023D74
-_0801F498: .4byte gUnknown_81D89F1
-_0801F49C: .4byte gBattleScripting
-_0801F4A0:
- ldr r2, _0801F53C @ =gBattleMoves
- ldrh r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x6]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0801F4C6
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0801F4C6
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0801F4CE
-_0801F4C6:
- ldr r0, _0801F540 @ =gBattleScripting
- ldrb r0, [r0, 0x19]
- cmp r0, 0
- bne _0801F530
-_0801F4CE:
- ldr r0, _0801F544 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801F564
- ldr r1, _0801F548 @ =gActiveBattler
- ldr r0, _0801F54C @ =sBattler_AI
- mov r8, r0
- ldrb r0, [r0]
- strb r0, [r1]
- ldrh r1, [r3]
- ldr r6, _0801F540 @ =gBattleScripting
- ldrb r2, [r6, 0x18]
- ldr r0, _0801F550 @ =gBattleMovePower
- ldrh r3, [r0]
- ldr r0, _0801F554 @ =gBattleMoveDamage
- ldr r0, [r0]
- str r0, [sp]
- ldr r5, _0801F558 @ =gBattleMons
- mov r0, r8
- ldrb r4, [r0]
- movs r0, 0x58
- muls r0, r4
- adds r0, r5
- adds r0, 0x2B
- ldrb r0, [r0]
- str r0, [sp, 0x4]
- mov r0, r8
- ldrb r4, [r0]
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r4, _0801F55C @ =gDisableStructs
- adds r0, r4
- str r0, [sp, 0x8]
- movs r0, 0
- bl EmitMoveAnimation
- ldrb r0, [r6, 0x18]
- adds r0, 0x1
- strb r0, [r6, 0x18]
- ldrb r0, [r6, 0x19]
- adds r0, 0x1
- strb r0, [r6, 0x19]
- mov r1, r8
- ldrb r0, [r1]
- bl MarkBufferBankForExecution
-_0801F530:
- ldr r1, _0801F560 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- b _0801F572
- .align 2, 0
-_0801F53C: .4byte gBattleMoves
-_0801F540: .4byte gBattleScripting
-_0801F544: .4byte gMoveResultFlags
-_0801F548: .4byte gActiveBattler
-_0801F54C: .4byte sBattler_AI
-_0801F550: .4byte gBattleMovePower
-_0801F554: .4byte gBattleMoveDamage
-_0801F558: .4byte gBattleMons
-_0801F55C: .4byte gDisableStructs
-_0801F560: .4byte gUnknown_2023D74
-_0801F564:
- ldr r4, _0801F580 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r0, _0801F584 @ =gUnknown_81D89F1
- str r0, [r4]
-_0801F572:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801F580: .4byte gUnknown_2023D74
-_0801F584: .4byte gUnknown_81D89F1
- thumb_func_end atk09_attackanimation
-
- thumb_func_start sub_801F588
-sub_801F588: @ 801F588
- push {lr}
- ldr r0, _0801F5A0 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- bne _0801F59A
- ldr r1, _0801F5A4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801F59A:
- pop {r0}
- bx r0
- .align 2, 0
-_0801F5A0: .4byte gUnknown_2023BC8
-_0801F5A4: .4byte gUnknown_2023D74
- thumb_func_end sub_801F588
-
- thumb_func_start atk0B_healthbarupdate
-atk0B_healthbarupdate: @ 801F5A8
- push {r4,lr}
- ldr r0, _0801F60C @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- bne _0801F66A
- ldr r0, _0801F610 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801F662
- ldr r0, _0801F614 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r2, _0801F618 @ =gActiveBattler
- strb r0, [r2]
- ldr r1, _0801F61C @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0801F628
- ldr r0, _0801F620 @ =gDisableStructs
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- beq _0801F628
- ldr r0, _0801F624 @ =gUnknown_2023DD0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- cmp r0, 0
- bne _0801F628
- movs r0, 0x80
- adds r1, r2, 0
- bl PrepareStringBattle
- b _0801F662
- .align 2, 0
-_0801F60C: .4byte gUnknown_2023BC8
-_0801F610: .4byte gMoveResultFlags
-_0801F614: .4byte gUnknown_2023D74
-_0801F618: .4byte gActiveBattler
-_0801F61C: .4byte gBattleMons
-_0801F620: .4byte gDisableStructs
-_0801F624: .4byte gUnknown_2023DD0
-_0801F628:
- ldr r0, _0801F670 @ =gBattleMoveDamage
- ldr r0, [r0]
- ldr r1, _0801F674 @ =0x00002710
- cmp r0, r1
- bgt _0801F636
- lsls r0, 16
- lsrs r1, r0, 16
-_0801F636:
- movs r0, 0
- bl EmitHealthBarUpdate
- ldr r4, _0801F678 @ =gActiveBattler
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0801F662
- ldr r0, _0801F670 @ =gBattleMoveDamage
- ldr r0, [r0]
- cmp r0, 0
- ble _0801F662
- ldr r0, _0801F67C @ =gBattleResults
- ldrb r1, [r0, 0x5]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x5]
-_0801F662:
- ldr r1, _0801F680 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0801F66A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801F670: .4byte gBattleMoveDamage
-_0801F674: .4byte 0x00002710
-_0801F678: .4byte gActiveBattler
-_0801F67C: .4byte gBattleResults
-_0801F680: .4byte gUnknown_2023D74
- thumb_func_end atk0B_healthbarupdate
-
- thumb_func_start atk0C_datahpupdate
-atk0C_datahpupdate: @ 801F684
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r0, _0801F6AC @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- beq _0801F692
- b _0801FA62
-_0801F692:
- ldr r0, _0801F6B0 @ =gBattleStruct
- ldr r0, [r0]
- ldrb r1, [r0, 0x13]
- cmp r1, 0
- beq _0801F6B4
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0801F6B4
- movs r6, 0x3F
- ands r6, r1
- b _0801F6C4
- .align 2, 0
-_0801F6AC: .4byte gUnknown_2023BC8
-_0801F6B0: .4byte gBattleStruct
-_0801F6B4:
- ldr r2, _0801F750 @ =gBattleMoves
- ldr r0, _0801F754 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r6, [r0, 0x2]
-_0801F6C4:
- ldr r0, _0801F758 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801F6D2
- b _0801FA34
-_0801F6D2:
- ldr r0, _0801F75C @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r7, _0801F760 @ =gActiveBattler
- strb r0, [r7]
- ldr r1, _0801F764 @ =gBattleMons
- ldrb r2, [r7]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0801F7E8
- ldr r0, _0801F768 @ =gDisableStructs
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r4, r1, r0
- ldrb r1, [r4, 0xA]
- mov r12, r0
- cmp r1, 0
- beq _0801F7E8
- ldr r0, _0801F76C @ =gUnknown_2023DD0
- ldr r3, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r3, r0
- cmp r3, 0
- bne _0801F7E8
- adds r5, r1, 0
- ldr r6, _0801F770 @ =gBattleMoveDamage
- ldr r4, [r6]
- cmp r5, r4
- blt _0801F77C
- ldr r0, _0801F774 @ =gUnknown_2023ECC
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- bne _0801F736
- str r4, [r1]
-_0801F736:
- ldrb r0, [r7]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r12
- ldr r2, [r6]
- ldrb r0, [r1, 0xA]
- subs r0, r2
- strb r0, [r1, 0xA]
- ldr r1, _0801F778 @ =gUnknown_2023D54
- ldr r0, [r6]
- str r0, [r1]
- b _0801F7AC
- .align 2, 0
-_0801F750: .4byte gBattleMoves
-_0801F754: .4byte gCurrentMove
-_0801F758: .4byte gMoveResultFlags
-_0801F75C: .4byte gUnknown_2023D74
-_0801F760: .4byte gActiveBattler
-_0801F764: .4byte gBattleMons
-_0801F768: .4byte gDisableStructs
-_0801F76C: .4byte gUnknown_2023DD0
-_0801F770: .4byte gBattleMoveDamage
-_0801F774: .4byte gUnknown_2023ECC
-_0801F778: .4byte gUnknown_2023D54
-_0801F77C:
- ldr r0, _0801F7D4 @ =gUnknown_2023ECC
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- bne _0801F790
- str r5, [r1]
-_0801F790:
- ldr r2, _0801F7D8 @ =gUnknown_2023D54
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r0, [r0, 0xA]
- str r0, [r2]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- strb r3, [r0, 0xA]
-_0801F7AC:
- ldr r0, _0801F7DC @ =gActiveBattler
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- beq _0801F7C0
- b _0801FA5A
-_0801F7C0:
- ldr r4, _0801F7E0 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- bl BattleScriptPushCursor
- ldr r0, _0801F7E4 @ =gUnknown_81D9526
- str r0, [r4]
- b _0801FA62
- .align 2, 0
-_0801F7D4: .4byte gUnknown_2023ECC
-_0801F7D8: .4byte gUnknown_2023D54
-_0801F7DC: .4byte gActiveBattler
-_0801F7E0: .4byte gUnknown_2023D74
-_0801F7E4: .4byte gUnknown_81D9526
-_0801F7E8:
- ldr r0, _0801F828 @ =gUnknown_2023DD0
- ldr r2, [r0]
- ldr r1, _0801F82C @ =0xfffffeff
- ands r2, r1
- str r2, [r0]
- ldr r1, _0801F830 @ =gBattleMoveDamage
- ldr r5, [r1]
- mov r12, r0
- adds r7, r1, 0
- cmp r5, 0
- bge _0801F83C
- ldr r4, _0801F834 @ =gBattleMons
- ldr r2, _0801F838 @ =gActiveBattler
- ldrb r0, [r2]
- movs r3, 0x58
- adds r1, r0, 0
- muls r1, r3
- adds r1, r4
- ldrh r0, [r1, 0x28]
- subs r0, r5
- strh r0, [r1, 0x28]
- ldrb r0, [r2]
- muls r0, r3
- adds r1, r0, r4
- ldrh r3, [r1, 0x2C]
- ldrh r0, [r1, 0x28]
- adds r5, r2, 0
- cmp r0, r3
- bhi _0801F824
- b _0801F9FA
-_0801F824:
- strh r3, [r1, 0x28]
- b _0801F9FA
- .align 2, 0
-_0801F828: .4byte gUnknown_2023DD0
-_0801F82C: .4byte 0xfffffeff
-_0801F830: .4byte gBattleMoveDamage
-_0801F834: .4byte gBattleMons
-_0801F838: .4byte gActiveBattler
-_0801F83C:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _0801F858
- movs r0, 0x21
- negs r0, r0
- ands r2, r0
- mov r0, r12
- str r2, [r0]
- ldr r5, _0801F854 @ =gActiveBattler
- b _0801F8A0
- .align 2, 0
-_0801F854: .4byte gActiveBattler
-_0801F858:
- ldr r0, _0801F880 @ =gUnknown_2023D58
- ldr r2, _0801F884 @ =gActiveBattler
- ldrb r1, [r2]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- adds r0, r5
- str r0, [r1]
- ldr r0, _0801F888 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- adds r5, r2, 0
- cmp r0, 0
- bne _0801F894
- ldr r1, _0801F88C @ =gUnknown_2023DD8
- ldrb r0, [r5]
- adds r0, r1
- ldr r1, _0801F890 @ =sBattler_AI
- b _0801F89C
- .align 2, 0
-_0801F880: .4byte gUnknown_2023D58
-_0801F884: .4byte gActiveBattler
-_0801F888: .4byte gUnknown_2023D74
-_0801F88C: .4byte gUnknown_2023DD8
-_0801F890: .4byte sBattler_AI
-_0801F894:
- ldr r1, _0801F8C0 @ =gUnknown_2023DD8
- ldrb r0, [r5]
- adds r0, r1
- ldr r1, _0801F8C4 @ =gBattlerTarget
-_0801F89C:
- ldrb r1, [r1]
- strb r1, [r0]
-_0801F8A0:
- ldr r4, _0801F8C8 @ =gBattleMons
- ldrb r0, [r5]
- movs r3, 0x58
- muls r0, r3
- adds r2, r0, r4
- ldrh r0, [r2, 0x28]
- ldr r1, [r7]
- cmp r0, r1
- ble _0801F8D0
- subs r0, r1
- strh r0, [r2, 0x28]
- ldr r0, _0801F8CC @ =gUnknown_2023D54
- str r1, [r0]
- adds r7, r0, 0
- b _0801F8E0
- .align 2, 0
-_0801F8C0: .4byte gUnknown_2023DD8
-_0801F8C4: .4byte gBattlerTarget
-_0801F8C8: .4byte gBattleMons
-_0801F8CC: .4byte gUnknown_2023D54
-_0801F8D0:
- ldr r2, _0801F954 @ =gUnknown_2023D54
- str r0, [r2]
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r4
- movs r1, 0
- strh r1, [r0, 0x28]
- adds r7, r2, 0
-_0801F8E0:
- ldr r2, _0801F958 @ =gUnknown_2023ECC
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r2, 0x4
- adds r3, r0, r1
- ldr r0, [r3]
- adds r4, r2, 0
- cmp r0, 0
- bne _0801F908
- mov r1, r12
- ldr r0, [r1]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- cmp r0, 0
- bne _0801F908
- ldr r0, [r7]
- str r0, [r3]
-_0801F908:
- cmp r6, 0x8
- bhi _0801F990
- mov r1, r12
- ldr r0, [r1]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- cmp r0, 0
- bne _0801F98C
- ldr r0, _0801F95C @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xDC
- beq _0801F98C
- ldr r3, _0801F960 @ =gUnknown_2023E8C
- ldrb r0, [r5]
- lsls r0, 4
- adds r1, r3, 0x4
- adds r0, r1
- ldr r2, [r7]
- str r2, [r0]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x8
- adds r0, r1
- str r2, [r0]
- ldr r0, _0801F964 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0801F96C
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801F968 @ =sBattler_AI
- b _0801F974
- .align 2, 0
-_0801F954: .4byte gUnknown_2023D54
-_0801F958: .4byte gUnknown_2023ECC
-_0801F95C: .4byte gCurrentMove
-_0801F960: .4byte gUnknown_2023E8C
-_0801F964: .4byte gUnknown_2023D74
-_0801F968: .4byte sBattler_AI
-_0801F96C:
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801F988 @ =gBattlerTarget
-_0801F974:
- ldrb r1, [r2]
- strb r1, [r0, 0xC]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r2]
- strb r1, [r0, 0x10]
- b _0801F9FA
- .align 2, 0
-_0801F988: .4byte gBattlerTarget
-_0801F98C:
- cmp r6, 0x8
- bls _0801F9FA
-_0801F990:
- mov r1, r12
- ldr r0, [r1]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- cmp r0, 0
- bne _0801F9FA
- ldr r3, _0801F9D4 @ =gUnknown_2023E8C
- ldrb r0, [r5]
- lsls r0, 4
- adds r1, r3, 0
- adds r1, 0x8
- adds r0, r1
- ldr r2, [r7]
- str r2, [r0]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0xC
- adds r0, r1
- str r2, [r0]
- ldr r0, _0801F9D8 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0801F9E0
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801F9DC @ =sBattler_AI
- b _0801F9E8
- .align 2, 0
-_0801F9D4: .4byte gUnknown_2023E8C
-_0801F9D8: .4byte gUnknown_2023D74
-_0801F9DC: .4byte sBattler_AI
-_0801F9E0:
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801FA28 @ =gBattlerTarget
-_0801F9E8:
- ldrb r1, [r2]
- strb r1, [r0, 0xD]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r2]
- strb r1, [r0, 0x11]
-_0801F9FA:
- mov r1, r12
- ldr r0, [r1]
- ldr r1, _0801FA2C @ =0xffefffff
- ands r0, r1
- mov r1, r12
- str r0, [r1]
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _0801FA30 @ =gUnknown_2023C0C
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2A
- movs r2, 0
- movs r3, 0x2
- bl EmitSetMonData
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- b _0801FA5A
- .align 2, 0
-_0801FA28: .4byte gBattlerTarget
-_0801FA2C: .4byte 0xffefffff
-_0801FA30: .4byte gUnknown_2023C0C
-_0801FA34:
- ldr r0, _0801FA6C @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r1, _0801FA70 @ =gActiveBattler
- strb r0, [r1]
- ldr r2, _0801FA74 @ =gUnknown_2023ECC
- ldrb r1, [r1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r1, r0, r2
- ldr r0, [r1]
- cmp r0, 0
- bne _0801FA5A
- ldr r0, _0801FA78 @ =0x0000ffff
- str r0, [r1]
-_0801FA5A:
- ldr r1, _0801FA6C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0801FA62:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FA6C: .4byte gUnknown_2023D74
-_0801FA70: .4byte gActiveBattler
-_0801FA74: .4byte gUnknown_2023ECC
-_0801FA78: .4byte 0x0000ffff
- thumb_func_end atk0C_datahpupdate
-
- thumb_func_start atk0D_critmessage
-atk0D_critmessage: @ 801FA7C
- push {lr}
- ldr r0, _0801FAB8 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- bne _0801FAB2
- ldr r0, _0801FABC @ =gCritMultiplier
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0801FAAA
- ldr r0, _0801FAC0 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801FAAA
- ldr r0, _0801FAC4 @ =sBattler_AI
- ldrb r1, [r0]
- movs r0, 0xD9
- bl PrepareStringBattle
- ldr r1, _0801FAC8 @ =gUnknown_2023E82
- movs r0, 0x1
- strb r0, [r1, 0x7]
-_0801FAAA:
- ldr r1, _0801FACC @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801FAB2:
- pop {r0}
- bx r0
- .align 2, 0
-_0801FAB8: .4byte gUnknown_2023BC8
-_0801FABC: .4byte gCritMultiplier
-_0801FAC0: .4byte gMoveResultFlags
-_0801FAC4: .4byte sBattler_AI
-_0801FAC8: .4byte gUnknown_2023E82
-_0801FACC: .4byte gUnknown_2023D74
- thumb_func_end atk0D_critmessage
-
- thumb_func_start atk0E_effectivenesssound
-atk0E_effectivenesssound: @ 801FAD0
- push {r4,lr}
- ldr r0, _0801FB08 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- bne _0801FB90
- ldr r4, _0801FB0C @ =gActiveBattler
- ldr r0, _0801FB10 @ =gBattlerTarget
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _0801FB14 @ =gMoveResultFlags
- ldrb r2, [r1]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _0801FB88
- movs r0, 0xFE
- ands r0, r2
- cmp r0, 0x10
- beq _0801FB42
- cmp r0, 0x10
- bgt _0801FB1E
- cmp r0, 0x4
- beq _0801FB32
- cmp r0, 0x4
- bgt _0801FB18
- cmp r0, 0x2
- beq _0801FB2C
- b _0801FB42
- .align 2, 0
-_0801FB08: .4byte gUnknown_2023BC8
-_0801FB0C: .4byte gActiveBattler
-_0801FB10: .4byte gBattlerTarget
-_0801FB14: .4byte gMoveResultFlags
-_0801FB18:
- cmp r0, 0x8
- beq _0801FB88
- b _0801FB42
-_0801FB1E:
- cmp r0, 0x40
- beq _0801FB42
- cmp r0, 0x40
- bgt _0801FB42
- cmp r0, 0x20
- beq _0801FB88
- b _0801FB42
-_0801FB2C:
- movs r0, 0
- movs r1, 0xE
- b _0801FB36
-_0801FB32:
- movs r0, 0
- movs r1, 0xC
-_0801FB36:
- bl EmitPlaySE
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _0801FB88
-_0801FB42:
- ldrb r1, [r1]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801FB52
- movs r0, 0
- movs r1, 0xE
- b _0801FB5E
-_0801FB52:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801FB70
- movs r0, 0
- movs r1, 0xC
-_0801FB5E:
- bl EmitPlaySE
- ldr r0, _0801FB6C @ =gActiveBattler
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- b _0801FB88
- .align 2, 0
-_0801FB6C: .4byte gActiveBattler
-_0801FB70:
- movs r0, 0x28
- ands r0, r1
- cmp r0, 0
- bne _0801FB88
- movs r0, 0
- movs r1, 0xD
- bl EmitPlaySE
- ldr r0, _0801FB98 @ =gActiveBattler
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
-_0801FB88:
- ldr r1, _0801FB9C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801FB90:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FB98: .4byte gActiveBattler
-_0801FB9C: .4byte gUnknown_2023D74
- thumb_func_end atk0E_effectivenesssound
-
- thumb_func_start atk0F_resultmessage
-atk0F_resultmessage: @ 801FBA0
- push {r4-r7,lr}
- movs r3, 0
- ldr r0, _0801FBDC @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- beq _0801FBAE
- b _0801FD40
-_0801FBAE:
- ldr r1, _0801FBE0 @ =gMoveResultFlags
- ldrb r2, [r1]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r2
- adds r6, r1, 0
- ldr r7, _0801FBE4 @ =gUnknown_2023E82
- cmp r0, 0
- beq _0801FBEC
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _0801FBCE
- ldrb r0, [r7, 0x6]
- cmp r0, 0x2
- bls _0801FBEC
-_0801FBCE:
- ldr r1, _0801FBE8 @ =gUnknown_83FE514
- ldrb r0, [r7, 0x6]
- lsls r0, 1
- adds r0, r1
- ldrh r3, [r0]
- strb r4, [r7, 0x7]
- b _0801FD2A
- .align 2, 0
-_0801FBDC: .4byte gUnknown_2023BC8
-_0801FBE0: .4byte gMoveResultFlags
-_0801FBE4: .4byte gUnknown_2023E82
-_0801FBE8: .4byte gUnknown_83FE514
-_0801FBEC:
- movs r0, 0x1
- strb r0, [r7, 0x7]
- ldrb r5, [r6]
- movs r0, 0xFE
- ands r0, r5
- cmp r0, 0x10
- beq _0801FC30
- cmp r0, 0x10
- bgt _0801FC12
- cmp r0, 0x4
- beq _0801FC2C
- cmp r0, 0x4
- bgt _0801FC0C
- cmp r0, 0x2
- beq _0801FC28
- b _0801FC78
-_0801FC0C:
- cmp r0, 0x8
- beq _0801FC84
- b _0801FC78
-_0801FC12:
- cmp r0, 0x40
- beq _0801FC34
- cmp r0, 0x40
- bgt _0801FC22
- cmp r0, 0x20
- bne _0801FC20
- b _0801FD24
-_0801FC20:
- b _0801FC78
-_0801FC22:
- cmp r0, 0x80
- beq _0801FC38
- b _0801FC78
-_0801FC28:
- movs r3, 0xDE
- b _0801FD2E
-_0801FC2C:
- movs r3, 0xDD
- b _0801FD2E
-_0801FC30:
- movs r3, 0xDA
- b _0801FD2E
-_0801FC34:
- movs r3, 0x99
- b _0801FD2E
-_0801FC38:
- ldr r4, _0801FC60 @ =gUnknown_2023D68
- ldr r2, _0801FC64 @ =gBattleMons
- ldr r3, _0801FC68 @ =gBattlerTarget
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- ldr r1, _0801FC6C @ =gPotentialItemEffectBattler
- ldrb r0, [r3]
- strb r0, [r1]
- movs r0, 0x3F
- ands r0, r5
- strb r0, [r6]
- bl BattleScriptPushCursor
- ldr r1, _0801FC70 @ =gUnknown_2023D74
- ldr r0, _0801FC74 @ =gUnknown_81D9641
- b _0801FD3E
- .align 2, 0
-_0801FC60: .4byte gUnknown_2023D68
-_0801FC64: .4byte gBattleMons
-_0801FC68: .4byte gBattlerTarget
-_0801FC6C: .4byte gPotentialItemEffectBattler
-_0801FC70: .4byte gUnknown_2023D74
-_0801FC74: .4byte gUnknown_81D9641
-_0801FC78:
- adds r2, r6, 0
- ldrb r5, [r2]
- movs r0, 0x8
- ands r0, r5
- cmp r0, 0
- beq _0801FC88
-_0801FC84:
- movs r3, 0x1B
- b _0801FD2E
-_0801FC88:
- movs r0, 0x10
- ands r0, r5
- cmp r0, 0
- beq _0801FCB0
- movs r0, 0xEF
- ands r0, r5
- movs r1, 0xFD
- ands r0, r1
- movs r1, 0xFB
- ands r0, r1
- strb r0, [r2]
- bl BattleScriptPushCursor
- ldr r1, _0801FCA8 @ =gUnknown_2023D74
- ldr r0, _0801FCAC @ =gUnknown_81D8FE4
- b _0801FD3E
- .align 2, 0
-_0801FCA8: .4byte gUnknown_2023D74
-_0801FCAC: .4byte gUnknown_81D8FE4
-_0801FCB0:
- movs r0, 0x40
- ands r0, r5
- cmp r0, 0
- beq _0801FCD0
- movs r0, 0x3F
- ands r0, r5
- strb r0, [r2]
- bl BattleScriptPushCursor
- ldr r1, _0801FCC8 @ =gUnknown_2023D74
- ldr r0, _0801FCCC @ =gUnknown_81D8FDD
- b _0801FD3E
- .align 2, 0
-_0801FCC8: .4byte gUnknown_2023D74
-_0801FCCC: .4byte gUnknown_81D8FDD
-_0801FCD0:
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- beq _0801FD18
- ldr r4, _0801FD00 @ =gUnknown_2023D68
- ldr r2, _0801FD04 @ =gBattleMons
- ldr r3, _0801FD08 @ =gBattlerTarget
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- ldr r1, _0801FD0C @ =gPotentialItemEffectBattler
- ldrb r0, [r3]
- strb r0, [r1]
- movs r0, 0x3F
- ands r0, r5
- strb r0, [r6]
- bl BattleScriptPushCursor
- ldr r1, _0801FD10 @ =gUnknown_2023D74
- ldr r0, _0801FD14 @ =gUnknown_81D9641
- b _0801FD3E
- .align 2, 0
-_0801FD00: .4byte gUnknown_2023D68
-_0801FD04: .4byte gBattleMons
-_0801FD08: .4byte gBattlerTarget
-_0801FD0C: .4byte gPotentialItemEffectBattler
-_0801FD10: .4byte gUnknown_2023D74
-_0801FD14: .4byte gUnknown_81D9641
-_0801FD18:
- movs r0, 0x20
- ands r0, r5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0801FD28
-_0801FD24:
- movs r3, 0xE5
- b _0801FD2E
-_0801FD28:
- strb r0, [r7, 0x7]
-_0801FD2A:
- cmp r3, 0
- beq _0801FD38
-_0801FD2E:
- adds r0, r3, 0
- ldr r1, _0801FD48 @ =sBattler_AI
- ldrb r1, [r1]
- bl PrepareStringBattle
-_0801FD38:
- ldr r1, _0801FD4C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
-_0801FD3E:
- str r0, [r1]
-_0801FD40:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FD48: .4byte sBattler_AI
-_0801FD4C: .4byte gUnknown_2023D74
- thumb_func_end atk0F_resultmessage
-
- thumb_func_start atk10_printstring
-atk10_printstring: @ 801FD50
- push {r4,lr}
- ldr r0, _0801FD80 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- bne _0801FD7A
- ldr r4, _0801FD84 @ =gUnknown_2023D74
- ldr r1, [r4]
- ldrb r0, [r1, 0x1]
- ldrb r1, [r1, 0x2]
- lsls r1, 8
- orrs r0, r1
- ldr r1, _0801FD88 @ =sBattler_AI
- ldrb r1, [r1]
- bl PrepareStringBattle
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- ldr r1, _0801FD8C @ =gUnknown_2023E82
- movs r0, 0x1
- strb r0, [r1, 0x7]
-_0801FD7A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FD80: .4byte gUnknown_2023BC8
-_0801FD84: .4byte gUnknown_2023D74
-_0801FD88: .4byte sBattler_AI
-_0801FD8C: .4byte gUnknown_2023E82
- thumb_func_end atk10_printstring
-
- thumb_func_start atk11_printselectionstring
-atk11_printselectionstring: @ 801FD90
- push {r4,r5,lr}
- ldr r5, _0801FDC4 @ =gActiveBattler
- ldr r0, _0801FDC8 @ =sBattler_AI
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r4, _0801FDCC @ =gUnknown_2023D74
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0
- bl EmitPrintSelectionString
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- ldr r1, _0801FDD0 @ =gUnknown_2023E82
- movs r0, 0x1
- strb r0, [r1, 0x7]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FDC4: .4byte gActiveBattler
-_0801FDC8: .4byte sBattler_AI
-_0801FDCC: .4byte gUnknown_2023D74
-_0801FDD0: .4byte gUnknown_2023E82
- thumb_func_end atk11_printselectionstring
-
- thumb_func_start atk12_waitmessage
-atk12_waitmessage: @ 801FDD4
- push {r4-r6,lr}
- ldr r0, _0801FDF0 @ =gUnknown_2023BC8
- ldr r4, [r0]
- cmp r4, 0
- bne _0801FE22
- ldr r6, _0801FDF4 @ =gUnknown_2023E82
- ldrb r0, [r6, 0x7]
- cmp r0, 0
- bne _0801FDFC
- ldr r1, _0801FDF8 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x3
- str r0, [r1]
- b _0801FE22
- .align 2, 0
-_0801FDF0: .4byte gUnknown_2023BC8
-_0801FDF4: .4byte gUnknown_2023E82
-_0801FDF8: .4byte gUnknown_2023D74
-_0801FDFC:
- ldr r5, _0801FE28 @ =gUnknown_2023D74
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r3, _0801FE2C @ =gUnknown_2023E7C
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r1
- bcc _0801FE22
- movs r1, 0
- strh r4, [r3]
- adds r0, r2, 0x3
- str r0, [r5]
- strb r1, [r6, 0x7]
-_0801FE22:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FE28: .4byte gUnknown_2023D74
-_0801FE2C: .4byte gUnknown_2023E7C
- thumb_func_end atk12_waitmessage
-
- thumb_func_start atk13_printfromtable
-atk13_printfromtable: @ 801FE30
- push {r4,r5,lr}
- ldr r0, _0801FE74 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- bne _0801FE6E
- ldr r4, _0801FE78 @ =gUnknown_2023D74
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r5, _0801FE7C @ =gUnknown_2023E82
- ldrb r0, [r5, 0x5]
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r1]
- ldr r1, _0801FE80 @ =sBattler_AI
- ldrb r1, [r1]
- bl PrepareStringBattle
- ldr r0, [r4]
- adds r0, 0x5
- str r0, [r4]
- movs r0, 0x1
- strb r0, [r5, 0x7]
-_0801FE6E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FE74: .4byte gUnknown_2023BC8
-_0801FE78: .4byte gUnknown_2023D74
-_0801FE7C: .4byte gUnknown_2023E82
-_0801FE80: .4byte sBattler_AI
- thumb_func_end atk13_printfromtable
-
- thumb_func_start atk14_printselectionstringfromtable
-atk14_printselectionstringfromtable: @ 801FE84
- push {r4-r6,lr}
- ldr r0, _0801FED4 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- bne _0801FECE
- ldr r5, _0801FED8 @ =gUnknown_2023D74
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r6, _0801FEDC @ =gUnknown_2023E82
- ldrb r0, [r6, 0x5]
- lsls r0, 1
- adds r1, r0
- ldr r4, _0801FEE0 @ =gActiveBattler
- ldr r0, _0801FEE4 @ =sBattler_AI
- ldrb r0, [r0]
- strb r0, [r4]
- ldrh r1, [r1]
- movs r0, 0
- bl EmitPrintSelectionString
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x5
- str r0, [r5]
- movs r0, 0x1
- strb r0, [r6, 0x7]
-_0801FECE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FED4: .4byte gUnknown_2023BC8
-_0801FED8: .4byte gUnknown_2023D74
-_0801FEDC: .4byte gUnknown_2023E82
-_0801FEE0: .4byte gActiveBattler
-_0801FEE4: .4byte sBattler_AI
- thumb_func_end atk14_printselectionstringfromtable
-
- thumb_func_start BankGetTurnOrder
-BankGetTurnOrder: @ 801FEE8
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r0, _0801FF18 @ =gBattlersCount
- ldrb r3, [r0]
- cmp r1, r3
- bge _0801FF0E
- ldr r4, _0801FF1C @ =gUnknown_2023BDE
- ldrb r0, [r4]
- cmp r0, r2
- beq _0801FF0E
-_0801FF00:
- adds r1, 0x1
- cmp r1, r3
- bge _0801FF0E
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r2
- bne _0801FF00
-_0801FF0E:
- lsls r0, r1, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0801FF18: .4byte gBattlersCount
-_0801FF1C: .4byte gUnknown_2023BDE
- thumb_func_end BankGetTurnOrder
-
- thumb_func_start sub_801FF20
-sub_801FF20: @ 801FF20
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- movs r0, 0
- mov r10, r0
- movs r7, 0
- movs r1, 0x1
- str r1, [sp, 0x4]
- ldr r1, _0801FF64 @ =gUnknown_2023E82
- ldrb r3, [r1, 0x3]
- movs r0, 0x40
- ands r0, r3
- adds r6, r1, 0
- cmp r0, 0
- beq _0801FF78
- ldr r2, _0801FF68 @ =gUnknown_2023D6E
- ldr r0, _0801FF6C @ =sBattler_AI
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0xBF
- ands r0, r3
- strb r0, [r6, 0x3]
- movs r7, 0x40
- ldr r1, _0801FF70 @ =gBattleScripting
- ldr r0, _0801FF74 @ =gBattlerTarget
- b _0801FF84
- .align 2, 0
-_0801FF64: .4byte gUnknown_2023E82
-_0801FF68: .4byte gUnknown_2023D6E
-_0801FF6C: .4byte sBattler_AI
-_0801FF70: .4byte gBattleScripting
-_0801FF74: .4byte gBattlerTarget
-_0801FF78:
- ldr r2, _08020094 @ =gUnknown_2023D6E
- ldr r0, _08020098 @ =gBattlerTarget
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r1, _0802009C @ =gBattleScripting
- ldr r0, _080200A0 @ =sBattler_AI
-_0801FF84:
- ldrb r0, [r0]
- strb r0, [r1, 0x17]
- mov r9, r2
- ldr r0, _080200A4 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 9
- ands r0, r1
- cmp r0, 0
- beq _0801FFB2
- ldrb r0, [r6, 0x3]
- cmp r0, 0x1
- beq _0801FFB2
- mov r2, r9
- ldrb r0, [r2]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0801FFB2
- bl _080210EC
-_0801FFB2:
- ldr r3, _080200A8 @ =gBattleMons
- ldr r2, _08020094 @ =gUnknown_2023D6E
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- mov r9, r2
- cmp r0, 0x13
- bne _0801FFE6
- ldr r0, _080200AC @ =gUnknown_2023DD0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- bne _0801FFE6
- cmp r4, 0
- bne _0801FFE6
- ldr r0, _080200B0 @ =gUnknown_2023E82
- ldrb r0, [r0, 0x3]
- cmp r0, 0x9
- bhi _0801FFE6
- bl _080210EC
-_0801FFE6:
- mov r3, r9
- ldrb r0, [r3]
- bl GetBattlerPosition
- ldr r2, _080200B4 @ =gSideAffecting
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r2
- ldrh r1, [r1]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08020020
- ldr r0, _080200AC @ =gUnknown_2023DD0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- bne _08020020
- cmp r4, 0
- bne _08020020
- ldr r0, _080200B0 @ =gUnknown_2023E82
- ldrb r0, [r0, 0x3]
- cmp r0, 0x7
- bhi _08020020
- bl _080210EC
-_08020020:
- ldr r3, _080200A8 @ =gBattleMons
- ldr r2, _08020094 @ =gUnknown_2023D6E
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- mov r9, r2
- mov r8, r3
- cmp r0, 0
- bne _08020046
- ldr r0, _080200B0 @ =gUnknown_2023E82
- ldrb r0, [r0, 0x3]
- cmp r0, 0xB
- beq _08020046
- cmp r0, 0x1F
- beq _08020046
- bl _080210EC
-_08020046:
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- mov r1, r8
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08020068
- cmp r7, 0x40
- beq _08020068
- bl _080210EC
-_08020068:
- ldr r0, _080200B0 @ =gUnknown_2023E82
- ldrb r1, [r0, 0x3]
- adds r6, r0, 0
- cmp r1, 0x6
- bls _08020074
- b _080206A2
-_08020074:
- ldr r1, _080200B8 @ =gUnknown_825053C
- ldrb r0, [r6, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x10
- bne _08020084
- b _08020270
-_08020084:
- cmp r0, 0x10
- bhi _080200BC
- cmp r0, 0x7
- beq _080200D6
- cmp r0, 0x8
- bne _08020092
- b _0802018C
-_08020092:
- b _08020570
- .align 2, 0
-_08020094: .4byte gUnknown_2023D6E
-_08020098: .4byte gBattlerTarget
-_0802009C: .4byte gBattleScripting
-_080200A0: .4byte sBattler_AI
-_080200A4: .4byte gBattleTypeFlags
-_080200A8: .4byte gBattleMons
-_080200AC: .4byte gUnknown_2023DD0
-_080200B0: .4byte gUnknown_2023E82
-_080200B4: .4byte gSideAffecting
-_080200B8: .4byte gUnknown_825053C
-_080200BC:
- cmp r0, 0x40
- bne _080200C2
- b _080203E4
-_080200C2:
- cmp r0, 0x40
- bhi _080200CE
- cmp r0, 0x20
- bne _080200CC
- b _08020346
-_080200CC:
- b _08020570
-_080200CE:
- cmp r0, 0x80
- bne _080200D4
- b _08020440
-_080200D4:
- b _08020570
-_080200D6:
- mov r2, r9
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- add r0, r8
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2B
- beq _08020138
- ldr r0, _08020130 @ =gActiveBattler
- movs r1, 0
- strb r1, [r0]
- ldr r1, _08020134 @ =gBattlersCount
- ldrb r3, [r1]
- adds r7, r0, 0
- mov r12, r1
- cmp r3, 0
- beq _08020144
- mov r4, r8
- ldr r0, [r4, 0x50]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- bne _08020144
- adds r1, r7, 0
- mov r6, r8
- adds r6, 0x50
- movs r5, 0x58
- movs r4, 0x70
-_08020110:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r3
- bcs _08020144
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r6
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _08020110
- b _08020144
- .align 2, 0
-_08020130: .4byte gActiveBattler
-_08020134: .4byte gBattlersCount
-_08020138:
- ldr r0, _08020184 @ =gActiveBattler
- ldr r2, _08020188 @ =gBattlersCount
- ldrb r1, [r2]
- strb r1, [r0]
- adds r7, r0, 0
- mov r12, r2
-_08020144:
- mov r0, r9
- ldrb r2, [r0]
- movs r0, 0x58
- adds r1, r2, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802015C
- b _08020570
-_0802015C:
- ldrb r0, [r7]
- mov r3, r12
- ldrb r3, [r3]
- cmp r0, r3
- beq _08020168
- b _08020570
-_08020168:
- mov r4, r8
- adds r0, r1, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x48
- bne _08020176
- b _08020570
-_08020176:
- cmp r0, 0xF
- bne _0802017C
- b _08020570
-_0802017C:
- adds r0, r2, 0
- bl CancelMultiTurnMoves
- b _08020560
- .align 2, 0
-_08020184: .4byte gActiveBattler
-_08020188: .4byte gBattlersCount
-_0802018C:
- mov r2, r9
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- add r0, r8
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x11
- bne _080201E4
- cmp r4, 0x1
- beq _080201A6
- cmp r5, 0x80
- bne _080201E4
-_080201A6:
- ldr r0, _080201D4 @ =gLastUsedAbility
- strb r1, [r0]
- mov r3, r9
- ldrb r0, [r3]
- movs r1, 0x11
- bl sub_80C71D0
- ldr r4, _080201D8 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r0, _080201DC @ =gUnknown_81D9438
-_080201C0:
- str r0, [r4]
- ldr r2, _080201E0 @ =gUnknown_2023DD0
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _080201D2
- b _08020484
-_080201D2:
- b _080204A8
- .align 2, 0
-_080201D4: .4byte gLastUsedAbility
-_080201D8: .4byte gUnknown_2023D74
-_080201DC: .4byte gUnknown_81D9438
-_080201E0: .4byte gUnknown_2023DD0
-_080201E4:
- mov r1, r9
- ldrb r0, [r1]
- movs r1, 0x58
- muls r0, r1
- add r0, r8
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r1, 0x3
- beq _08020208
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _08020208
- cmp r1, 0x8
- beq _08020208
- cmp r0, 0x8
- bne _08020222
-_08020208:
- ldr r0, _0802026C @ =gUnknown_2023DD0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _08020222
- cmp r4, 0x1
- bne _0802021C
- b _080204E8
-_0802021C:
- cmp r5, 0x80
- bne _08020222
- b _080204E8
-_08020222:
- mov r2, r9
- ldrb r1, [r2]
- movs r0, 0x58
- muls r1, r0
- mov r4, r8
- adds r3, r1, r4
- adds r0, r3, 0
- adds r0, 0x21
- ldrb r4, [r0]
- cmp r4, 0x3
- bne _0802023A
- b _08020570
-_0802023A:
- adds r0, 0x1
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08020244
- b _08020570
-_08020244:
- cmp r4, 0x8
- bne _0802024A
- b _08020570
-_0802024A:
- cmp r0, 0x8
- bne _08020250
- b _08020570
-_08020250:
- mov r0, r8
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802025E
- b _08020570
-_0802025E:
- adds r0, r3, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x11
- bne _0802026A
- b _08020570
-_0802026A:
- b _08020560
- .align 2, 0
-_0802026C: .4byte gUnknown_2023DD0
-_08020270:
- mov r2, r9
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- add r0, r8
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x29
- bne _080202B4
- cmp r4, 0x1
- beq _0802028A
- cmp r5, 0x80
- bne _080202B4
-_0802028A:
- ldr r0, _080202A8 @ =gLastUsedAbility
- strb r1, [r0]
- mov r3, r9
- ldrb r0, [r3]
- movs r1, 0x29
- bl sub_80C71D0
- ldr r4, _080202AC @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r0, _080202B0 @ =gUnknown_81D9420
- b _080201C0
- .align 2, 0
-_080202A8: .4byte gLastUsedAbility
-_080202AC: .4byte gUnknown_2023D74
-_080202B0: .4byte gUnknown_81D9420
-_080202B4:
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- mov r2, r8
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xA
- beq _080202D4
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xA
- bne _08020304
-_080202D4:
- ldr r0, _080202F8 @ =gUnknown_2023DD0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _08020304
- cmp r4, 0x1
- beq _080202EA
- cmp r5, 0x80
- bne _08020304
-_080202EA:
- ldr r4, _080202FC @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r0, _08020300 @ =gUnknown_81D9420
- b _080204F4
- .align 2, 0
-_080202F8: .4byte gUnknown_2023DD0
-_080202FC: .4byte gUnknown_2023D74
-_08020300: .4byte gUnknown_81D9420
-_08020304:
- mov r3, r9
- ldrb r0, [r3]
- movs r1, 0x58
- adds r2, r0, 0
- muls r2, r1
- mov r4, r8
- adds r1, r2, r4
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xA
- bne _0802031E
- b _08020570
-_0802031E:
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xA
- bne _0802032A
- b _08020570
-_0802032A:
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x29
- bne _08020336
- b _08020570
-_08020336:
- mov r0, r8
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _08020344
- b _08020570
-_08020344:
- b _08020560
-_08020346:
- 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 _08020382
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _08020382
- ldr r0, _080203D8 @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08020382
- movs r1, 0
- str r1, [sp, 0x4]
-_08020382:
- ldr r4, _080203DC @ =gBattleMons
- ldr r0, _080203E0 @ =gUnknown_2023D6E
- ldrb r3, [r0]
- movs r0, 0x58
- adds r2, r3, 0
- muls r2, r0
- adds r1, r2, r4
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xF
- bne _0802039C
- b _08020570
-_0802039C:
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xF
- bne _080203A8
- b _08020570
-_080203A8:
- adds r0, r4, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080203B6
- b _08020570
-_080203B6:
- ldr r2, [sp, 0x4]
- cmp r2, 0
- bne _080203BE
- b _08020570
-_080203BE:
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x28
- bne _080203CA
- b _08020570
-_080203CA:
- adds r0, r3, 0
- bl CancelMultiTurnMoves
- movs r3, 0x1
- mov r10, r3
- b _08020570
- .align 2, 0
-_080203D8: .4byte gBattleWeather
-_080203DC: .4byte gBattleMons
-_080203E0: .4byte gUnknown_2023D6E
-_080203E4:
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- mov r2, r8
- adds r0, r1, r2
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0x7
- bne _0802042C
- cmp r4, 0x1
- beq _08020402
- cmp r5, 0x80
- beq _08020402
- b _08020570
-_08020402:
- ldr r0, _08020420 @ =gLastUsedAbility
- strb r2, [r0]
- mov r3, r9
- ldrb r0, [r3]
- movs r1, 0x7
- bl sub_80C71D0
- ldr r4, _08020424 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r0, _08020428 @ =gUnknown_81D942C
- b _080201C0
- .align 2, 0
-_08020420: .4byte gLastUsedAbility
-_08020424: .4byte gUnknown_2023D74
-_08020428: .4byte gUnknown_81D942C
-_0802042C:
- mov r0, r8
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802043A
- b _08020570
-_0802043A:
- movs r4, 0x1
- mov r10, r4
- b _08020570
-_08020440:
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r8
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x11
- bne _080204AE
- cmp r4, 0x1
- beq _0802045A
- cmp r5, 0x80
- bne _080204AE
-_0802045A:
- ldr r0, _08020494 @ =gLastUsedAbility
- strb r1, [r0]
- mov r1, r9
- ldrb r0, [r1]
- movs r1, 0x11
- bl sub_80C71D0
- ldr r4, _08020498 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r0, _0802049C @ =gUnknown_81D9438
- str r0, [r4]
- ldr r2, _080204A0 @ =gUnknown_2023DD0
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _080204A8
-_08020484:
- movs r0, 0x1
- strb r0, [r6, 0x5]
- ldr r0, _080204A4 @ =0xffffdfff
- ands r1, r0
- str r1, [r2]
- bl _0802110A
- .align 2, 0
-_08020494: .4byte gLastUsedAbility
-_08020498: .4byte gUnknown_2023D74
-_0802049C: .4byte gUnknown_81D9438
-_080204A0: .4byte gUnknown_2023DD0
-_080204A4: .4byte 0xffffdfff
-_080204A8:
- strb r0, [r6, 0x5]
- bl _0802110A
-_080204AE:
- mov r2, r9
- ldrb r0, [r2]
- movs r1, 0x58
- muls r0, r1
- add r0, r8
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r1, 0x3
- beq _080204D2
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _080204D2
- cmp r1, 0x8
- beq _080204D2
- cmp r0, 0x8
- bne _08020510
-_080204D2:
- ldr r0, _08020500 @ =gUnknown_2023DD0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _08020510
- cmp r4, 0x1
- beq _080204E8
- cmp r5, 0x80
- bne _08020510
-_080204E8:
- ldr r4, _08020504 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r0, _08020508 @ =gUnknown_81D9438
-_080204F4:
- str r0, [r4]
- ldr r1, _0802050C @ =gUnknown_2023E82
- movs r0, 0x2
- strb r0, [r1, 0x5]
- bl _0802110A
- .align 2, 0
-_08020500: .4byte gUnknown_2023DD0
-_08020504: .4byte gUnknown_2023D74
-_08020508: .4byte gUnknown_81D9438
-_0802050C: .4byte gUnknown_2023E82
-_08020510:
- mov r3, r9
- ldrb r0, [r3]
- movs r6, 0x58
- muls r0, r6
- mov r2, r8
- adds r2, 0x4C
- adds r5, r0, r2
- ldr r4, [r5]
- cmp r4, 0
- bne _08020570
- mov r3, r8
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r3, [r0]
- cmp r3, 0x3
- beq _08020566
- adds r0, 0x1
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _08020566
- cmp r3, 0x8
- beq _08020566
- cmp r0, 0x8
- beq _08020566
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x11
- beq _08020570
- mov r4, r9
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x9
- negs r2, r2
- ands r0, r2
- str r0, [r1]
-_08020560:
- movs r0, 0x1
- mov r10, r0
- b _08020570
-_08020566:
- ldr r0, _080205B4 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
-_08020570:
- mov r1, r10
- cmp r1, 0x1
- beq _08020578
- b _08020694
-_08020578:
- ldr r0, _080205B8 @ =gUnknown_2023D74
- ldr r0, [r0]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r1, _080205BC @ =gUnknown_825053C
- ldr r0, _080205C0 @ =gUnknown_2023E82
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r3, [r0]
- cmp r3, 0x7
- bne _080205CC
- bl Random
- ldr r2, _080205C4 @ =gBattleMons
- ldr r1, _080205C8 @ =gUnknown_2023D6E
- ldrb r3, [r1]
- movs r1, 0x58
- muls r3, r1
- adds r2, 0x4C
- adds r3, r2
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x2
- ldr r0, [r3]
- orrs r0, r1
- str r0, [r3]
- b _080205E0
- .align 2, 0
-_080205B4: .4byte gMoveResultFlags
-_080205B8: .4byte gUnknown_2023D74
-_080205BC: .4byte gUnknown_825053C
-_080205C0: .4byte gUnknown_2023E82
-_080205C4: .4byte gBattleMons
-_080205C8: .4byte gUnknown_2023D6E
-_080205CC:
- ldr r2, _08020630 @ =gBattleMons
- ldr r0, _08020634 @ =gUnknown_2023D6E
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r2, 0x4C
- adds r1, r2
- ldr r0, [r1]
- orrs r0, r3
- str r0, [r1]
-_080205E0:
- ldr r2, _08020638 @ =gUnknown_2023D74
- ldr r1, _0802063C @ =gUnknown_825062C
- ldr r5, _08020640 @ =gUnknown_2023E82
- ldrb r0, [r5, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- ldr r4, _08020644 @ =gActiveBattler
- ldr r1, _08020634 @ =gUnknown_2023D6E
- ldrb r0, [r1]
- strb r0, [r4]
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _08020648 @ =gUnknown_2023C30
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetMonData
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r2, _0802064C @ =gUnknown_2023DD0
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _08020654
- movs r0, 0x1
- strb r0, [r5, 0x5]
- ldr r0, _08020650 @ =0xffffdfff
- ands r1, r0
- str r1, [r2]
- b _08020656
- .align 2, 0
-_08020630: .4byte gBattleMons
-_08020634: .4byte gUnknown_2023D6E
-_08020638: .4byte gUnknown_2023D74
-_0802063C: .4byte gUnknown_825062C
-_08020640: .4byte gUnknown_2023E82
-_08020644: .4byte gActiveBattler
-_08020648: .4byte gUnknown_2023C30
-_0802064C: .4byte gUnknown_2023DD0
-_08020650: .4byte 0xffffdfff
-_08020654:
- strb r0, [r5, 0x5]
-_08020656:
- ldr r0, _08020688 @ =gUnknown_2023E82
- ldrb r2, [r0, 0x3]
- adds r6, r0, 0
- cmp r2, 0x2
- beq _08020670
- cmp r2, 0x6
- beq _08020670
- cmp r2, 0x5
- beq _08020670
- cmp r2, 0x3
- beq _08020670
- bl _0802110A
-_08020670:
- ldr r0, _0802068C @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xB4
- ldrb r1, [r6, 0x3]
- strb r1, [r0]
- ldr r2, _08020690 @ =gUnknown_2023DD0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 7
- bl _08021008
- .align 2, 0
-_08020688: .4byte gUnknown_2023E82
-_0802068C: .4byte gBattleStruct
-_08020690: .4byte gUnknown_2023DD0
-_08020694:
- mov r2, r10
- cmp r2, 0
- beq _0802069E
- bl _0802110A
-_0802069E:
- bl _080210EC
-_080206A2:
- mov r3, r9
- ldrb r1, [r3]
- movs r0, 0x58
- muls r1, r0
- mov r0, r8
- adds r0, 0x50
- adds r1, r0
- ldr r2, _080206DC @ =gUnknown_825053C
- ldrb r3, [r6, 0x3]
- lsls r0, r3, 2
- adds r0, r2
- ldr r1, [r1]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080206C6
- bl _080210EC
-_080206C6:
- subs r0, r3, 0x7
- cmp r0, 0x34
- bls _080206D0
- bl _0802110A
-_080206D0:
- lsls r0, 2
- ldr r1, _080206E0 @ =_080206E4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080206DC: .4byte gUnknown_825053C
-_080206E0: .4byte _080206E4
- .align 2, 0
-_080206E4:
- .4byte _080207B8
- .4byte _0802082C
- .4byte _080209A0
- .4byte _080208B8
- .4byte _08020934
- .4byte _080209D8
- .4byte _08020A20
- .4byte _08020AEC
- .4byte _08020B30
- .4byte _08020B30
- .4byte _08020B30
- .4byte _08020B30
- .4byte _08020B30
- .4byte _08020B30
- .4byte _08020B30
- .4byte _08020B74
- .4byte _08020B74
- .4byte _08020B74
- .4byte _08020B74
- .4byte _08020B74
- .4byte _08020B74
- .4byte _08020B74
- .4byte _08020C40
- .4byte _08020C88
- .4byte _08020CA8
- .4byte _08020E78
- .4byte _08020EB4
- .4byte _08020ED0
- .4byte _08020EE8
- .4byte _08020F00
- .4byte _08020F60
- .4byte _08020F78
- .4byte _08020BB8
- .4byte _08020BB8
- .4byte _08020BB8
- .4byte _08020BB8
- .4byte _08020BB8
- .4byte _08020BB8
- .4byte _08020BB8
- .4byte _08020BFC
- .4byte _08020BFC
- .4byte _08020BFC
- .4byte _08020BFC
- .4byte _08020BFC
- .4byte _08020BFC
- .4byte _08020BFC
- .4byte _08020FBC
- .4byte _08021018
- .4byte _0802110A
- .4byte _0802110A
- .4byte _0802110A
- .4byte _0802110A
- .4byte _080210FC
-_080207B8:
- mov r4, r9
- ldrb r0, [r4]
- movs r5, 0x58
- adds r1, r0, 0
- muls r1, r5
- mov r2, r8
- adds r0, r1, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _080207D2
- bl _080210EC
-_080207D2:
- mov r4, r8
- adds r4, 0x50
- adds r0, r1, r4
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080207E6
- bl _080210EC
-_080207E6:
- bl Random
- mov r3, r9
- ldrb r1, [r3]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- lsrs r1, 16
- adds r1, 0x2
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r4, _08020820 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r1, _08020824 @ =gUnknown_825062C
- ldr r0, _08020828 @ =gUnknown_2023E82
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _08021108
- .align 2, 0
-_08020820: .4byte gUnknown_2023D74
-_08020824: .4byte gUnknown_825062C
-_08020828: .4byte gUnknown_2023E82
-_0802082C:
- mov r0, r9
- ldrb r2, [r0]
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- add r0, r8
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x27
- bne _08020870
- cmp r4, 0x1
- beq _0802084C
- cmp r5, 0x80
- beq _0802084C
- bl _080210EC
-_0802084C:
- ldr r0, _08020864 @ =gLastUsedAbility
- strb r1, [r0]
- mov r1, r9
- ldrb r0, [r1]
- movs r1, 0x27
- bl sub_80C71D0
- ldr r1, _08020868 @ =gUnknown_2023D74
- ldr r0, _0802086C @ =gUnknown_81D9452
- str r0, [r1]
- bl _0802110A
- .align 2, 0
-_08020864: .4byte gLastUsedAbility
-_08020868: .4byte gUnknown_2023D74
-_0802086C: .4byte gUnknown_81D9452
-_08020870:
- adds r0, r2, 0
- bl BankGetTurnOrder
- ldr r1, _080208AC @ =gUnknown_2023BE2
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bhi _08020886
- bl _080210EC
-_08020886:
- mov r2, r9
- ldrb r0, [r2]
- adds r2, r0, 0
- muls r2, r6
- mov r0, r8
- adds r0, 0x50
- adds r2, r0
- ldr r1, _080208B0 @ =gUnknown_825053C
- ldr r0, _080208B4 @ =gUnknown_2023E82
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- orrs r1, r0
- str r1, [r2]
- bl _080210EC
- .align 2, 0
-_080208AC: .4byte gUnknown_2023BE2
-_080208B0: .4byte gUnknown_825053C
-_080208B4: .4byte gUnknown_2023E82
-_080208B8:
- mov r3, r9
- ldrb r0, [r3]
- movs r5, 0x58
- muls r0, r5
- mov r4, r8
- adds r4, 0x50
- adds r2, r0, r4
- ldr r1, [r2]
- movs r0, 0x70
- ands r0, r1
- cmp r0, 0
- beq _080208D4
- bl _080210EC
-_080208D4:
- movs r0, 0x80
- lsls r0, 5
- orrs r1, r0
- str r1, [r2]
- ldr r1, _08020920 @ =gUnknown_2023DB8
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _08020924 @ =gCurrentMove
- ldrh r1, [r1]
- strh r1, [r0]
- bl Random
- mov r2, r9
- ldrb r1, [r2]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x2
- lsls r1, 4
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r4, _08020928 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r1, _0802092C @ =gUnknown_825062C
- ldr r0, _08020930 @ =gUnknown_2023E82
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _08021108
- .align 2, 0
-_08020920: .4byte gUnknown_2023DB8
-_08020924: .4byte gCurrentMove
-_08020928: .4byte gUnknown_2023D74
-_0802092C: .4byte gUnknown_825062C
-_08020930: .4byte gUnknown_2023E82
-_08020934:
- ldr r5, _08020984 @ =sBattler_AI
- ldrb r0, [r5]
- bl GetBattlerPosition
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _0802096C
- ldr r4, _08020988 @ =gUnknown_2023E7E
- ldrh r3, [r4]
- ldr r2, _0802098C @ =gBattleMons
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, r3, r0
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r3, r0
- bls _0802096C
- ldr r3, _08020990 @ =0x0000ffff
- adds r0, r3, 0
- strh r0, [r4]
-_0802096C:
- ldr r4, _08020994 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r1, _08020998 @ =gUnknown_825062C
- ldr r0, _0802099C @ =gUnknown_2023E82
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- b _08021108
- .align 2, 0
-_08020984: .4byte sBattler_AI
-_08020988: .4byte gUnknown_2023E7E
-_0802098C: .4byte gBattleMons
-_08020990: .4byte 0x0000ffff
-_08020994: .4byte gUnknown_2023D74
-_08020998: .4byte gUnknown_825062C
-_0802099C: .4byte gUnknown_2023E82
-_080209A0:
- mov r4, r9
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- mov r1, r8
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _080209B6
- b _080210EC
-_080209B6:
- bl Random
- ldr r4, _080209D4 @ =gUnknown_2023E82
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- adds r0, 0x3
- strb r0, [r4, 0x3]
- movs r0, 0
- movs r1, 0
- bl sub_801FF20
- b _0802110A
- .align 2, 0
-_080209D4: .4byte gUnknown_2023E82
-_080209D8:
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r8
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08020A14 @ =gUnknown_2023DB8
- mov r2, r9
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- ldr r1, _08020A18 @ =gCurrentMove
- ldrh r1, [r1]
- strh r1, [r0]
- ldr r0, _08020A1C @ =gUnknown_2023E8C
- ldrb r1, [r2]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x1]
- b _080210EC
- .align 2, 0
-_08020A14: .4byte gUnknown_2023DB8
-_08020A18: .4byte gCurrentMove
-_08020A1C: .4byte gUnknown_2023E8C
-_08020A20:
- mov r3, r9
- ldrb r0, [r3]
- movs r6, 0x58
- muls r0, r6
- mov r4, r8
- adds r4, 0x50
- adds r0, r4
- ldr r5, [r0]
- movs r0, 0xE0
- lsls r0, 8
- ands r5, r0
- cmp r5, 0
- beq _08020A3C
- b _080210EC
-_08020A3C:
- bl Random
- mov r2, r9
- ldrb r1, [r2]
- adds r2, r1, 0
- muls r2, r6
- adds r2, r4
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x3
- lsls r1, 13
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- mov r3, r9
- ldrb r1, [r3]
- ldr r2, _08020AD0 @ =gBattleStruct
- ldr r0, [r2]
- lsls r1, 1
- adds r1, r0
- ldr r6, _08020AD4 @ =gCurrentMove
- ldrh r0, [r6]
- strb r0, [r1, 0x4]
- ldrb r1, [r3]
- ldr r0, [r2]
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r6]
- lsrs r0, 8
- strb r0, [r1, 0x5]
- ldrb r1, [r3]
- ldr r0, [r2]
- adds r1, r0
- ldr r0, _08020AD8 @ =sBattler_AI
- ldrb r0, [r0]
- strb r0, [r1, 0x14]
- ldr r4, _08020ADC @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r1, _08020AE0 @ =gUnknown_825062C
- ldr r2, _08020AE4 @ =gUnknown_2023E82
- ldrb r0, [r2, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r4]
- strb r5, [r2, 0x5]
- ldr r3, _08020AE8 @ =gUnknown_83FE664
- ldrh r0, [r3]
- ldrh r4, [r6]
- cmp r0, r4
- bne _08020AAA
- b _0802110A
-_08020AAA:
- adds r1, r2, 0
- adds r2, r6, 0
-_08020AAE:
- ldrb r0, [r1, 0x5]
- adds r0, 0x1
- strb r0, [r1, 0x5]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _08020ABE
- b _0802110A
-_08020ABE:
- ldrb r0, [r1, 0x5]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- ldrh r4, [r2]
- cmp r0, r4
- bne _08020AAE
- b _0802110A
- .align 2, 0
-_08020AD0: .4byte gBattleStruct
-_08020AD4: .4byte gCurrentMove
-_08020AD8: .4byte sBattler_AI
-_08020ADC: .4byte gUnknown_2023D74
-_08020AE0: .4byte gUnknown_825062C
-_08020AE4: .4byte gUnknown_2023E82
-_08020AE8: .4byte gUnknown_83FE664
-_08020AEC:
- ldr r1, _08020B1C @ =gBattleMoveDamage
- ldr r0, _08020B20 @ =gUnknown_2023D54
- ldr r0, [r0]
- cmp r0, 0
- bge _08020AF8
- adds r0, 0x3
-_08020AF8:
- asrs r0, 2
- str r0, [r1]
- cmp r0, 0
- bne _08020B04
- movs r0, 0x1
- str r0, [r1]
-_08020B04:
- ldr r4, _08020B24 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r1, _08020B28 @ =gUnknown_825062C
- ldr r0, _08020B2C @ =gUnknown_2023E82
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- b _08021108
- .align 2, 0
-_08020B1C: .4byte gBattleMoveDamage
-_08020B20: .4byte gUnknown_2023D54
-_08020B24: .4byte gUnknown_2023D74
-_08020B28: .4byte gUnknown_825062C
-_08020B2C: .4byte gUnknown_2023E82
-_08020B30:
- ldrb r1, [r6, 0x3]
- adds r1, 0xF2
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x10
- adds r2, r7, 0
- movs r3, 0
- bl ChangeStatBuffs
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _08020B4C
- b _080210EC
-_08020B4C:
- ldr r2, _08020B68 @ =gBattleScripting
- ldrb r1, [r6, 0x3]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2, 0x10]
- strb r3, [r2, 0x11]
- ldr r4, _08020B6C @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r0, _08020B70 @ =gUnknown_81D6BD1
- b _08021108
- .align 2, 0
-_08020B68: .4byte gBattleScripting
-_08020B6C: .4byte gUnknown_2023D74
-_08020B70: .4byte gUnknown_81D6BD1
-_08020B74:
- movs r0, 0x70
- negs r0, r0
- ldrb r1, [r6, 0x3]
- adds r1, 0xEB
- lsls r1, 24
- lsrs r1, 24
- adds r2, r7, 0
- movs r3, 0
- bl ChangeStatBuffs
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _08020B92
- b _080210EC
-_08020B92:
- ldr r2, _08020BAC @ =gBattleScripting
- ldrb r1, [r6, 0x3]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2, 0x10]
- strb r3, [r2, 0x11]
- ldr r4, _08020BB0 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r0, _08020BB4 @ =gUnknown_81D6C62
- b _08021108
- .align 2, 0
-_08020BAC: .4byte gBattleScripting
-_08020BB0: .4byte gUnknown_2023D74
-_08020BB4: .4byte gUnknown_81D6C62
-_08020BB8:
- ldrb r1, [r6, 0x3]
- adds r1, 0xDA
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x20
- adds r2, r7, 0
- movs r3, 0
- bl ChangeStatBuffs
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _08020BD4
- b _080210EC
-_08020BD4:
- ldr r2, _08020BF0 @ =gBattleScripting
- ldrb r1, [r6, 0x3]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2, 0x10]
- strb r3, [r2, 0x11]
- ldr r4, _08020BF4 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r0, _08020BF8 @ =gUnknown_81D6BD1
- b _08021108
- .align 2, 0
-_08020BF0: .4byte gBattleScripting
-_08020BF4: .4byte gUnknown_2023D74
-_08020BF8: .4byte gUnknown_81D6BD1
-_08020BFC:
- movs r0, 0x60
- negs r0, r0
- ldrb r1, [r6, 0x3]
- adds r1, 0xD3
- lsls r1, 24
- lsrs r1, 24
- adds r2, r7, 0
- movs r3, 0
- bl ChangeStatBuffs
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _08020C1A
- b _080210EC
-_08020C1A:
- ldr r2, _08020C34 @ =gBattleScripting
- ldrb r1, [r6, 0x3]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2, 0x10]
- strb r3, [r2, 0x11]
- ldr r4, _08020C38 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r0, _08020C3C @ =gUnknown_81D6C62
- b _08021108
- .align 2, 0
-_08020C34: .4byte gBattleScripting
-_08020C38: .4byte gUnknown_2023D74
-_08020C3C: .4byte gUnknown_81D6C62
-_08020C40:
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r8
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 15
- orrs r0, r1
- str r0, [r2]
- ldr r2, _08020C7C @ =gDisableStructs
- mov r3, r9
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0, 0x19]
- ldr r1, _08020C80 @ =gUnknown_2023DB8
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _08020C84 @ =gCurrentMove
- ldrh r1, [r1]
- strh r1, [r0]
- b _080210EC
- .align 2, 0
-_08020C7C: .4byte gDisableStructs
-_08020C80: .4byte gUnknown_2023DB8
-_08020C84: .4byte gCurrentMove
-_08020C88:
- ldr r0, _08020CA4 @ =sBattler_AI
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r8
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 16
-_08020C9E:
- orrs r0, r1
- str r0, [r2]
- b _080210EC
- .align 2, 0
-_08020CA4: .4byte sBattler_AI
-_08020CA8:
- ldr r5, _08020D64 @ =gBattleTypeFlags
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- beq _08020CB8
- b _080210EC
-_08020CB8:
- ldr r4, _08020D68 @ =sBattler_AI
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08020CEA
- ldr r0, [r5]
- ldr r1, _08020D6C @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _08020D26
- ldr r0, _08020D70 @ =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _08020CEA
- b _080210EC
-_08020CEA:
- ldr r0, _08020D64 @ =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, _08020D6C @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _08020D26
- ldr r0, _08020D70 @ =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _08020D26
- ldr r0, _08020D74 @ =gUnknown_2023F20
- adds r0, 0x29
- adds r0, r6, r0
- ldrb r1, [r0]
- ldr r3, _08020D78 @ =gBitTable
- ldr r2, _08020D7C @ =gBattlerPartyIndexes
- ldr r0, _08020D68 @ =sBattler_AI
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08020D26
- b _080210EC
-_08020D26:
- ldr r2, _08020D80 @ =gBattleMons
- ldr r1, _08020D84 @ =gBattlerTarget
- ldrb r0, [r1]
- movs r3, 0x58
- muls r0, r3
- adds r4, r0, r2
- ldrh r0, [r4, 0x2E]
- adds r7, r1, 0
- mov r8, r2
- cmp r0, 0
- beq _08020D94
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3C
- bne _08020D94
- ldr r1, _08020D88 @ =gUnknown_2023D74
- ldr r0, _08020D8C @ =gUnknown_81D948E
- str r0, [r1]
- ldr r1, _08020D90 @ =gLastUsedAbility
- ldrb r0, [r7]
- muls r0, r3
- add r0, r8
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- ldrb r1, [r1]
- bl sub_80C71D0
- b _0802110A
- .align 2, 0
-_08020D64: .4byte gBattleTypeFlags
-_08020D68: .4byte sBattler_AI
-_08020D6C: .4byte 0x00000902
-_08020D70: .4byte gTrainerBattleOpponent_A
-_08020D74: .4byte gUnknown_2023F20
-_08020D78: .4byte gBitTable
-_08020D7C: .4byte gBattlerPartyIndexes
-_08020D80: .4byte gBattleMons
-_08020D84: .4byte gBattlerTarget
-_08020D88: .4byte gUnknown_2023D74
-_08020D8C: .4byte gUnknown_81D948E
-_08020D90: .4byte gLastUsedAbility
-_08020D94:
- ldr r4, _08020E60 @ =sBattler_AI
- mov r10, r4
- ldrb r2, [r4]
- movs r0, 0x58
- mov r9, r0
- mov r0, r9
- muls r0, r2
- add r0, r8
- ldrh r4, [r0, 0x2E]
- cmp r4, 0
- beq _08020DAC
- b _080210EC
-_08020DAC:
- ldrb r0, [r7]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- ldrh r3, [r0, 0x2E]
- adds r1, r3, 0
- cmp r1, 0xAF
- bne _08020DC0
- b _080210EC
-_08020DC0:
- adds r0, r3, 0
- subs r0, 0x79
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bhi _08020DCE
- b _080210EC
-_08020DCE:
- cmp r1, 0
- bne _08020DD4
- b _080210EC
-_08020DD4:
- ldr r5, _08020E64 @ =gBattleStruct
- lsls r0, r2, 1
- adds r0, 0xD0
- ldr r1, [r5]
- adds r1, r0
- ldr r2, _08020E68 @ =gUnknown_2023D68
- strh r3, [r1]
- strh r3, [r2]
- ldrb r0, [r7]
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- add r0, r8
- movs r6, 0
- strh r4, [r0, 0x2E]
- ldr r4, _08020E6C @ =gActiveBattler
- mov r1, r10
- ldrb r0, [r1]
- strb r0, [r4]
- str r2, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl EmitSetMonData
- mov r2, r10
- ldrb r0, [r2]
- bl MarkBufferBankForExecution
- ldrb r0, [r7]
- strb r0, [r4]
- ldrb r0, [r7]
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- mov r1, r8
- adds r1, 0x2E
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl EmitSetMonData
- ldrb r0, [r7]
- bl MarkBufferBankForExecution
- ldr r4, _08020E70 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r0, _08020E74 @ =gUnknown_81D9271
- str r0, [r4]
- ldrb r0, [r7]
- ldr r1, [r5]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC8
- strb r6, [r0]
- ldrb r0, [r7]
- ldr r1, [r5]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC9
- strb r6, [r0]
- b _0802110A
- .align 2, 0
-_08020E60: .4byte sBattler_AI
-_08020E64: .4byte gBattleStruct
-_08020E68: .4byte gUnknown_2023D68
-_08020E6C: .4byte gActiveBattler
-_08020E70: .4byte gUnknown_2023D74
-_08020E74: .4byte gUnknown_81D9271
-_08020E78:
- ldr r3, _08020EA8 @ =gBattlerTarget
- ldrb r1, [r3]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r8
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 19
- orrs r0, r1
- str r0, [r2]
- ldr r2, _08020EAC @ =gDisableStructs
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _08020EB0 @ =sBattler_AI
- ldrb r1, [r1]
- strb r1, [r0, 0x14]
- b _080210EC
- .align 2, 0
-_08020EA8: .4byte gBattlerTarget
-_08020EAC: .4byte gDisableStructs
-_08020EB0: .4byte sBattler_AI
-_08020EB4:
- ldr r0, _08020ECC @ =gBattlerTarget
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r8
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 20
- b _08020C9E
- .align 2, 0
-_08020ECC: .4byte gBattlerTarget
-_08020ED0:
- ldr r4, _08020EE0 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r0, _08020EE4 @ =gUnknown_81D8D55
- b _08021108
- .align 2, 0
-_08020EE0: .4byte gUnknown_2023D74
-_08020EE4: .4byte gUnknown_81D8D55
-_08020EE8:
- ldr r4, _08020EF8 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r0, _08020EFC @ =gUnknown_81D8DF1
- b _08021108
- .align 2, 0
-_08020EF8: .4byte gUnknown_2023D74
-_08020EFC: .4byte gUnknown_81D8DF1
-_08020F00:
- ldr r6, _08020F50 @ =gBattlerTarget
- ldrb r0, [r6]
- movs r2, 0x58
- muls r0, r2
- mov r1, r8
- adds r1, 0x4C
- adds r5, r0, r1
- ldr r4, [r5]
- movs r0, 0x40
- ands r0, r4
- cmp r0, 0
- bne _08020F1A
- b _080210EC
-_08020F1A:
- movs r0, 0x41
- negs r0, r0
- ands r4, r0
- str r4, [r5]
- ldr r4, _08020F54 @ =gActiveBattler
- ldrb r0, [r6]
- strb r0, [r4]
- ldrb r0, [r4]
- muls r0, r2
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetMonData
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r4, _08020F58 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r0, _08020F5C @ =gUnknown_81D9177
- b _08021108
- .align 2, 0
-_08020F50: .4byte gBattlerTarget
-_08020F54: .4byte gActiveBattler
-_08020F58: .4byte gUnknown_2023D74
-_08020F5C: .4byte gUnknown_81D9177
-_08020F60:
- ldr r4, _08020F70 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r0, _08020F74 @ =gUnknown_81D8F35
- b _08021108
- .align 2, 0
-_08020F70: .4byte gUnknown_2023D74
-_08020F74: .4byte gUnknown_81D8F35
-_08020F78:
- ldr r4, _08020FA8 @ =gBattleMoveDamage
- ldr r0, _08020FAC @ =gUnknown_2023D54
- ldr r0, [r0]
- movs r1, 0x3
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _08020F8E
- movs r0, 0x1
- str r0, [r4]
-_08020F8E:
- ldr r4, _08020FB0 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r1, _08020FB4 @ =gUnknown_825062C
- ldr r0, _08020FB8 @ =gUnknown_2023E82
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- b _08021108
- .align 2, 0
-_08020FA8: .4byte gBattleMoveDamage
-_08020FAC: .4byte gUnknown_2023D54
-_08020FB0: .4byte gUnknown_2023D74
-_08020FB4: .4byte gUnknown_825062C
-_08020FB8: .4byte gUnknown_2023E82
-_08020FBC:
- mov r4, r9
- ldrb r0, [r4]
- movs r5, 0x58
- muls r0, r5
- mov r4, r8
- adds r4, 0x50
- adds r2, r0, r4
- ldr r1, [r2]
- movs r0, 0xC0
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _08020FD8
- b _080210EC
-_08020FD8:
- movs r0, 0x80
- lsls r0, 5
- orrs r1, r0
- str r1, [r2]
- ldr r1, _08021010 @ =gUnknown_2023DB8
- mov r2, r9
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- ldr r1, _08021014 @ =gCurrentMove
- ldrh r1, [r1]
- strh r1, [r0]
- bl Random
- mov r3, r9
- ldrb r1, [r3]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- movs r1, 0x1
- ands r1, r0
- adds r1, 0x2
- lsls r1, 10
- ldr r0, [r2]
-_08021008:
- orrs r0, r1
- str r0, [r2]
- b _0802110A
- .align 2, 0
-_08021010: .4byte gUnknown_2023DB8
-_08021014: .4byte gCurrentMove
-_08021018:
- mov r5, r9
- ldrb r3, [r5]
- movs r4, 0x58
- adds r0, r3, 0
- muls r0, r4
- mov r2, r8
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0x3C
- bne _08021058
- ldrh r0, [r1, 0x2E]
- cmp r0, 0
- beq _080210EC
- ldr r0, _0802104C @ =gLastUsedAbility
- strb r2, [r0]
- ldr r1, _08021050 @ =gUnknown_2023D74
- ldr r0, _08021054 @ =gUnknown_81D948E
- str r0, [r1]
- ldrb r0, [r5]
- movs r1, 0x3C
- bl sub_80C71D0
- b _0802110A
- .align 2, 0
-_0802104C: .4byte gLastUsedAbility
-_08021050: .4byte gUnknown_2023D74
-_08021054: .4byte gUnknown_81D948E
-_08021058:
- ldrh r0, [r1, 0x2E]
- cmp r0, 0
- beq _080210EC
- adds r0, r3, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080210D0 @ =gUnknown_2023D68
- mov r3, r9
- ldrb r0, [r3]
- muls r0, r4
- add r0, r8
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
- ldrb r0, [r3]
- muls r0, r4
- add r0, r8
- movs r5, 0
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r2, _080210D4 @ =gUnknown_2023F20
- adds r2, 0x29
- adds r2, r6, r2
- ldr r3, _080210D8 @ =gBitTable
- ldr r1, _080210DC @ =gBattlerPartyIndexes
- mov r4, r9
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r4, _080210E0 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r0, _080210E4 @ =gUnknown_81D8F86
- str r0, [r4]
- mov r1, r9
- ldrb r0, [r1]
- ldr r2, _080210E8 @ =gBattleStruct
- ldr r1, [r2]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC8
- strb r5, [r0]
- mov r3, r9
- ldrb r0, [r3]
- ldr r1, [r2]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC9
- strb r5, [r0]
- b _0802110A
- .align 2, 0
-_080210D0: .4byte gUnknown_2023D68
-_080210D4: .4byte gUnknown_2023F20
-_080210D8: .4byte gBitTable
-_080210DC: .4byte gBattlerPartyIndexes
-_080210E0: .4byte gUnknown_2023D74
-_080210E4: .4byte gUnknown_81D8F86
-_080210E8: .4byte gBattleStruct
-_080210EC:
- ldr r1, _080210F8 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- b _0802110A
- .align 2, 0
-_080210F8: .4byte gUnknown_2023D74
-_080210FC:
- ldr r4, _0802111C @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r0, _08021120 @ =gUnknown_81D8FEB
-_08021108:
- str r0, [r4]
-_0802110A:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802111C: .4byte gUnknown_2023D74
-_08021120: .4byte gUnknown_81D8FEB
- thumb_func_end sub_801FF20
-
- thumb_func_start atk15_seteffectwithchance
-atk15_seteffectwithchance: @ 8021124
- push {r4,lr}
- ldr r2, _08021150 @ =gBattleMons
- ldr r0, _08021154 @ =sBattler_AI
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x20
- bne _08021160
- ldr r2, _08021158 @ =gBattleMoves
- ldr r0, _0802115C @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 1
- b _08021170
- .align 2, 0
-_08021150: .4byte gBattleMons
-_08021154: .4byte sBattler_AI
-_08021158: .4byte gBattleMoves
-_0802115C: .4byte gCurrentMove
-_08021160:
- ldr r2, _08021190 @ =gBattleMoves
- ldr r0, _08021194 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r4, [r0, 0x5]
-_08021170:
- ldr r3, _08021198 @ =gUnknown_2023E82
- ldrb r2, [r3, 0x3]
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080211A0
- ldr r0, _0802119C @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _080211A0
- movs r0, 0x7F
- ands r0, r2
- strb r0, [r3, 0x3]
- b _080211CE
- .align 2, 0
-_08021190: .4byte gBattleMoves
-_08021194: .4byte gCurrentMove
-_08021198: .4byte gUnknown_2023E82
-_0802119C: .4byte gMoveResultFlags
-_080211A0:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r4
- bhi _080211EA
- ldr r0, _080211D8 @ =gUnknown_2023E82
- ldrb r0, [r0, 0x3]
- cmp r0, 0
- beq _080211EA
- ldr r0, _080211DC @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _080211EA
- cmp r4, 0x63
- bls _080211E0
-_080211CE:
- movs r0, 0
- movs r1, 0x80
- bl sub_801FF20
- b _080211F2
- .align 2, 0
-_080211D8: .4byte gUnknown_2023E82
-_080211DC: .4byte gMoveResultFlags
-_080211E0:
- movs r0, 0
- movs r1, 0
- bl sub_801FF20
- b _080211F2
-_080211EA:
- ldr r1, _08021204 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_080211F2:
- ldr r0, _08021208 @ =gUnknown_2023E82
- movs r1, 0
- strb r1, [r0, 0x3]
- ldr r0, _0802120C @ =gBattleScripting
- strb r1, [r0, 0x16]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08021204: .4byte gUnknown_2023D74
-_08021208: .4byte gUnknown_2023E82
-_0802120C: .4byte gBattleScripting
- thumb_func_end atk15_seteffectwithchance
-
- thumb_func_start atk16_seteffectprimary
-atk16_seteffectprimary: @ 8021210
- push {lr}
- movs r0, 0x1
- movs r1, 0
- bl sub_801FF20
- pop {r0}
- bx r0
- thumb_func_end atk16_seteffectprimary
-
- thumb_func_start atk17_seteffectsecondary
-atk17_seteffectsecondary: @ 8021220
- push {lr}
- movs r0, 0
- movs r1, 0
- bl sub_801FF20
- pop {r0}
- bx r0
- thumb_func_end atk17_seteffectsecondary
-
- thumb_func_start atk18_clearstatusfromeffect
-atk18_clearstatusfromeffect: @ 8021230
- push {lr}
- ldr r0, _08021254 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r2, _08021258 @ =gActiveBattler
- strb r0, [r2]
- ldr r3, _0802125C @ =gUnknown_2023E82
- ldrb r0, [r3, 0x3]
- cmp r0, 0x6
- bhi _08021264
- ldr r1, _08021260 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x4C
- b _0802126E
- .align 2, 0
-_08021254: .4byte gUnknown_2023D74
-_08021258: .4byte gActiveBattler
-_0802125C: .4byte gUnknown_2023E82
-_08021260: .4byte gBattleMons
-_08021264:
- ldr r1, _08021298 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
-_0802126E:
- adds r2, r1
- ldr r1, _0802129C @ =gUnknown_825053C
- ldrb r0, [r3, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- ldr r0, _080212A0 @ =gUnknown_2023E82
- movs r2, 0
- strb r2, [r0, 0x3]
- ldr r1, _080212A4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- ldr r0, _080212A8 @ =gBattleScripting
- strb r2, [r0, 0x16]
- pop {r0}
- bx r0
- .align 2, 0
-_08021298: .4byte gBattleMons
-_0802129C: .4byte gUnknown_825053C
-_080212A0: .4byte gUnknown_2023E82
-_080212A4: .4byte gUnknown_2023D74
-_080212A8: .4byte gBattleScripting
- thumb_func_end atk18_clearstatusfromeffect
-
- thumb_func_start atk19_tryfaintmon
-atk19_tryfaintmon: @ 80212AC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r0, _08021318 @ =gUnknown_2023D74
- ldr r2, [r0]
- ldrb r1, [r2, 0x2]
- adds r6, r0, 0
- cmp r1, 0
- beq _08021330
- ldrb r0, [r2, 0x1]
- bl sub_8016E24
- ldr r5, _0802131C @ =gActiveBattler
- strb r0, [r5]
- ldr r2, _08021320 @ =gUnknown_2023DD0
- ldr r1, _08021324 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _080212E4
- b _0802158C
-_080212E4:
- ldr r1, [r6]
- ldrb r4, [r1, 0x3]
- ldrb r0, [r1, 0x4]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0x6]
- lsls r0, 24
- orrs r4, r0
- bl BattleScriptPop
- str r4, [r6]
- ldrb r0, [r5]
- bl GetBattlerSide
- ldr r1, _08021328 @ =gSideAffecting
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r2, [r0]
- ldr r1, _0802132C @ =0x0000fdff
- ands r1, r2
- strh r1, [r0]
- b _08021592
- .align 2, 0
-_08021318: .4byte gUnknown_2023D74
-_0802131C: .4byte gActiveBattler
-_08021320: .4byte gUnknown_2023DD0
-_08021324: .4byte gBitTable
-_08021328: .4byte gSideAffecting
-_0802132C: .4byte 0x0000fdff
-_08021330:
- ldrb r0, [r2, 0x1]
- cmp r0, 0x1
- bne _08021358
- ldr r1, _08021348 @ =gActiveBattler
- ldr r0, _0802134C @ =sBattler_AI
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _08021350 @ =gBattlerTarget
- ldrb r0, [r0]
- mov r9, r0
- ldr r4, _08021354 @ =gUnknown_81D8674
- b _08021368
- .align 2, 0
-_08021348: .4byte gActiveBattler
-_0802134C: .4byte sBattler_AI
-_08021350: .4byte gBattlerTarget
-_08021354: .4byte gUnknown_81D8674
-_08021358:
- ldr r1, _080213D0 @ =gActiveBattler
- ldr r0, _080213D4 @ =gBattlerTarget
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _080213D8 @ =sBattler_AI
- ldrb r0, [r0]
- mov r9, r0
- ldr r4, _080213DC @ =gUnknown_81D8684
-_08021368:
- mov r8, r1
- ldr r0, _080213E0 @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldr r2, _080213E4 @ =gBitTable
- mov r7, r8
- ldrb r3, [r7]
- lsls r0, r3, 2
- adds r0, r2
- ldr r2, [r0]
- ands r1, r2
- cmp r1, 0
- beq _08021382
- b _0802158C
-_08021382:
- ldr r1, _080213E8 @ =gBattleMons
- movs r0, 0x58
- muls r0, r3
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08021392
- b _0802158C
-_08021392:
- ldr r5, _080213EC @ =gUnknown_2023DD0
- lsls r1, r2, 28
- ldr r0, [r5]
- orrs r0, r1
- str r0, [r5]
- ldr r0, [r6]
- adds r0, 0x7
- bl BattleScriptPush
- str r4, [r6]
- ldrb r0, [r7]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080213F4
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 15
- orrs r0, r1
- str r0, [r5]
- ldr r1, _080213F0 @ =gBattleResults
- ldrb r0, [r1]
- cmp r0, 0xFE
- bhi _080213C8
- adds r0, 0x1
- strb r0, [r1]
-_080213C8:
- ldrb r0, [r7]
- bl sub_802E228
- b _0802142C
- .align 2, 0
-_080213D0: .4byte gActiveBattler
-_080213D4: .4byte gBattlerTarget
-_080213D8: .4byte sBattler_AI
-_080213DC: .4byte gUnknown_81D8684
-_080213E0: .4byte gAbsentBattlerFlags
-_080213E4: .4byte gBitTable
-_080213E8: .4byte gBattleMons
-_080213EC: .4byte gUnknown_2023DD0
-_080213F0: .4byte gBattleResults
-_080213F4:
- ldr r4, _0802154C @ =gBattleResults
- ldrb r0, [r4, 0x1]
- cmp r0, 0xFE
- bhi _08021400
- adds r0, 0x1
- strb r0, [r4, 0x1]
-_08021400:
- ldr r1, _08021550 @ =gBattlerPartyIndexes
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08021554 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- strh r0, [r4, 0x20]
- ldr r0, _08021558 @ =gBattleStruct
- ldr r0, [r0]
- movs r3, 0xC1
- lsls r3, 1
- adds r1, r0, r3
- ldr r0, _0802155C @ =sBattler_AI
- ldrb r0, [r0]
- strb r0, [r1]
-_0802142C:
- ldr r2, _08021560 @ =gUnknown_2023DD0
- ldr r1, [r2]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802146A
- ldr r6, _08021564 @ =gBattleMons
- ldr r0, _0802155C @ =sBattler_AI
- ldrb r0, [r0]
- movs r5, 0x58
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0802146A
- movs r0, 0x41
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- ldr r4, _08021568 @ =gUnknown_2023D74
- ldr r0, [r4]
- bl BattleScriptPush
- ldr r1, _0802156C @ =gBattleMoveDamage
- mov r0, r9
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x28]
- str r0, [r1]
- ldr r0, _08021570 @ =gUnknown_81D8C6C
- str r0, [r4]
-_0802146A:
- ldr r1, _08021574 @ =gStatuses3
- ldr r6, _08021578 @ =gBattlerTarget
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 7
- ands r0, r1
- cmp r0, 0
- bne _08021482
- b _08021592
-_08021482:
- ldr r0, _08021560 @ =gUnknown_2023DD0
- ldr r5, [r0]
- movs r0, 0x80
- lsls r0, 17
- ands r5, r0
- cmp r5, 0
- beq _08021492
- b _08021592
-_08021492:
- ldr r0, _0802155C @ =sBattler_AI
- mov r8, r0
- ldrb r0, [r0]
- bl GetBattlerSide
- adds r4, r0, 0
- ldrb r0, [r6]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _08021592
- ldr r1, _08021564 @ =gBattleMons
- mov r9, r1
- mov r2, r8
- ldrb r1, [r2]
- movs r7, 0x58
- adds r2, r1, 0
- muls r2, r7
- mov r3, r9
- adds r0, r2, r3
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08021592
- ldr r0, _0802157C @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xA5
- beq _08021592
- ldr r0, _08021558 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, r1, r0
- adds r0, 0x80
- ldrb r4, [r0]
- adds r0, r4, r2
- mov r6, r9
- adds r6, 0x24
- adds r0, r6
- strb r5, [r0]
- ldr r5, _08021568 @ =gUnknown_2023D74
- ldr r0, [r5]
- bl BattleScriptPush
- ldr r0, _08021580 @ =gUnknown_81D8FA3
- str r0, [r5]
- ldr r5, _08021584 @ =gActiveBattler
- mov r1, r8
- ldrb r0, [r1]
- strb r0, [r5]
- adds r1, r4, 0
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r5]
- muls r0, r7
- adds r0, r6
- adds r0, r4
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl EmitSetMonData
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r1, _08021588 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- lsls r4, 1
- mov r2, r8
- ldrb r0, [r2]
- muls r0, r7
- adds r0, r4, r0
- mov r2, r9
- adds r2, 0xC
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- mov r3, r8
- ldrb r0, [r3]
- muls r0, r7
- adds r4, r0
- adds r4, r2
- ldrh r0, [r4]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- b _08021592
- .align 2, 0
-_0802154C: .4byte gBattleResults
-_08021550: .4byte gBattlerPartyIndexes
-_08021554: .4byte gEnemyParty
-_08021558: .4byte gBattleStruct
-_0802155C: .4byte sBattler_AI
-_08021560: .4byte gUnknown_2023DD0
-_08021564: .4byte gBattleMons
-_08021568: .4byte gUnknown_2023D74
-_0802156C: .4byte gBattleMoveDamage
-_08021570: .4byte gUnknown_81D8C6C
-_08021574: .4byte gStatuses3
-_08021578: .4byte gBattlerTarget
-_0802157C: .4byte gCurrentMove
-_08021580: .4byte gUnknown_81D8FA3
-_08021584: .4byte gActiveBattler
-_08021588: .4byte gBattleTextBuff1
-_0802158C:
- ldr r0, [r6]
- adds r0, 0x7
- str r0, [r6]
-_08021592:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk19_tryfaintmon
-
- thumb_func_start atk1A_faint_animation
-atk1A_faint_animation: @ 80215A0
- push {r4,r5,lr}
- ldr r0, _080215D0 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- bne _080215CA
- ldr r5, _080215D4 @ =gUnknown_2023D74
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r4, _080215D8 @ =gActiveBattler
- strb r0, [r4]
- movs r0, 0
- bl EmitFaintAnimation
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_080215CA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080215D0: .4byte gUnknown_2023BC8
-_080215D4: .4byte gUnknown_2023D74
-_080215D8: .4byte gActiveBattler
- thumb_func_end atk1A_faint_animation
-
- thumb_func_start atk1B_faint_effects_clear
-atk1B_faint_effects_clear: @ 80215DC
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, _08021630 @ =gUnknown_2023BC8
- ldr r6, [r0]
- cmp r6, 0
- bne _08021628
- ldr r5, _08021634 @ =gUnknown_2023D74
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r4, _08021638 @ =gActiveBattler
- strb r0, [r4]
- ldr r1, _0802163C @ =gBattleMons
- ldrb r0, [r4]
- movs r2, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- str r6, [r0]
- ldrb r0, [r4]
- muls r0, r2
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetMonData
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- bl sub_8012BC8
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_08021628:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08021630: .4byte gUnknown_2023BC8
-_08021634: .4byte gUnknown_2023D74
-_08021638: .4byte gActiveBattler
-_0802163C: .4byte gBattleMons
- thumb_func_end atk1B_faint_effects_clear
-
- thumb_func_start atk1C_jumpifstatus
-atk1C_jumpifstatus: @ 8021640
- push {r4,r5,lr}
- ldr r5, _0802169C @ =gUnknown_2023D74
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [r5]
- ldrb r4, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- lsls r1, 8
- adds r4, r1
- ldrb r1, [r2, 0x4]
- lsls r1, 16
- adds r4, r1
- ldrb r1, [r2, 0x5]
- lsls r1, 24
- adds r4, r1
- ldrb r3, [r2, 0x6]
- ldrb r1, [r2, 0x7]
- lsls r1, 8
- adds r3, r1
- ldrb r1, [r2, 0x8]
- lsls r1, 16
- adds r3, r1
- ldrb r1, [r2, 0x9]
- lsls r1, 24
- adds r3, r1
- ldr r2, _080216A0 @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _080216A4
- adds r0, r1, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _080216A4
- str r3, [r5]
- b _080216AC
- .align 2, 0
-_0802169C: .4byte gUnknown_2023D74
-_080216A0: .4byte gBattleMons
-_080216A4:
- ldr r1, _080216B4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
-_080216AC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080216B4: .4byte gUnknown_2023D74
- thumb_func_end atk1C_jumpifstatus
-
- thumb_func_start atk1D_jumpifstatus2
-atk1D_jumpifstatus2: @ 80216B8
- push {r4,r5,lr}
- ldr r5, _08021714 @ =gUnknown_2023D74
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [r5]
- ldrb r4, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- lsls r1, 8
- adds r4, r1
- ldrb r1, [r2, 0x4]
- lsls r1, 16
- adds r4, r1
- ldrb r1, [r2, 0x5]
- lsls r1, 24
- adds r4, r1
- ldrb r3, [r2, 0x6]
- ldrb r1, [r2, 0x7]
- lsls r1, 8
- adds r3, r1
- ldrb r1, [r2, 0x8]
- lsls r1, 16
- adds r3, r1
- ldrb r1, [r2, 0x9]
- lsls r1, 24
- adds r3, r1
- ldr r2, _08021718 @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r0, r2, 0
- adds r0, 0x50
- adds r0, r1, r0
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _0802171C
- adds r0, r1, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0802171C
- str r3, [r5]
- b _08021724
- .align 2, 0
-_08021714: .4byte gUnknown_2023D74
-_08021718: .4byte gBattleMons
-_0802171C:
- ldr r1, _0802172C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
-_08021724:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802172C: .4byte gUnknown_2023D74
- thumb_func_end atk1D_jumpifstatus2
-
- thumb_func_start atk1E_jumpifability
-atk1E_jumpifability: @ 8021730
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r6, _08021784 @ =gUnknown_2023D74
- ldr r2, [r6]
- ldrb r5, [r2, 0x2]
- mov r8, r5
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- adds r7, r1, r0
- ldrb r0, [r2, 0x1]
- cmp r0, 0x8
- bne _08021790
- ldr r0, _08021788 @ =sBattler_AI
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xD
- adds r2, r5, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08021804
- ldr r1, _0802178C @ =gLastUsedAbility
- strb r5, [r1]
- str r7, [r6]
- subs r4, 0x1
- lsls r0, r4, 24
- lsrs r0, 24
- ldrb r1, [r1]
- b _080217EC
- .align 2, 0
-_08021784: .4byte gUnknown_2023D74
-_08021788: .4byte sBattler_AI
-_0802178C: .4byte gLastUsedAbility
-_08021790:
- cmp r0, 0x9
- bne _080217C8
- ldr r0, _080217C0 @ =sBattler_AI
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC
- adds r2, r5, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08021804
- ldr r1, _080217C4 @ =gLastUsedAbility
- strb r5, [r1]
- str r7, [r6]
- subs r4, 0x1
- lsls r0, r4, 24
- lsrs r0, 24
- ldrb r1, [r1]
- b _080217EC
- .align 2, 0
-_080217C0: .4byte sBattler_AI
-_080217C4: .4byte gLastUsedAbility
-_080217C8:
- ldrb r0, [r2, 0x1]
- bl sub_8016E24
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080217F8 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, r8
- bne _08021804
- ldr r0, _080217FC @ =gLastUsedAbility
- strb r1, [r0]
- str r7, [r6]
- ldrb r1, [r0]
- adds r0, r4, 0
-_080217EC:
- bl sub_80C71D0
- ldr r0, _08021800 @ =gBattleScripting
- strb r4, [r0, 0x15]
- b _0802180A
- .align 2, 0
-_080217F8: .4byte gBattleMons
-_080217FC: .4byte gLastUsedAbility
-_08021800: .4byte gBattleScripting
-_08021804:
- ldr r0, [r6]
- adds r0, 0x7
- str r0, [r6]
-_0802180A:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk1E_jumpifability
-
- thumb_func_start atk1F_jumpifsideaffecting
-atk1F_jumpifsideaffecting: @ 8021818
- push {r4-r6,lr}
- ldr r0, _08021830 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r4, [r0, 0x1]
- cmp r4, 0x1
- bne _08021838
- ldr r0, _08021834 @ =sBattler_AI
- ldrb r0, [r0]
- bl GetBattlerPosition
- b _08021842
- .align 2, 0
-_08021830: .4byte gUnknown_2023D74
-_08021834: .4byte sBattler_AI
-_08021838:
- ldr r0, _08021878 @ =gBattlerTarget
- ldrb r0, [r0]
- bl GetBattlerPosition
- movs r4, 0x1
-_08021842:
- ands r4, r0
- ldr r6, _0802187C @ =gUnknown_2023D74
- ldr r3, [r6]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r1, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 24
- adds r5, r1, r0
- ldr r1, _08021880 @ =gSideAffecting
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- ands r2, r0
- cmp r2, 0
- beq _08021884
- str r5, [r6]
- b _0802188A
- .align 2, 0
-_08021878: .4byte gBattlerTarget
-_0802187C: .4byte gUnknown_2023D74
-_08021880: .4byte gSideAffecting
-_08021884:
- adds r0, r3, 0
- adds r0, 0x8
- str r0, [r6]
-_0802188A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk1F_jumpifsideaffecting
-
- thumb_func_start atk20_jumpifstat
-atk20_jumpifstat: @ 8021890
- push {r4,r5,lr}
- movs r5, 0
- ldr r4, _080218C4 @ =gUnknown_2023D74
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080218C8 @ =gBattleMons
- ldr r3, [r4]
- movs r1, 0x58
- muls r0, r1
- ldrb r1, [r3, 0x3]
- adds r0, r1
- adds r2, 0x18
- adds r0, r2
- ldrb r2, [r0]
- ldrb r0, [r3, 0x2]
- cmp r0, 0x5
- bhi _0802194E
- lsls r0, 2
- ldr r1, _080218CC @ =_080218D0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080218C4: .4byte gUnknown_2023D74
-_080218C8: .4byte gBattleMons
-_080218CC: .4byte _080218D0
- .align 2, 0
-_080218D0:
- .4byte _080218E8
- .4byte _080218F8
- .4byte _08021908
- .4byte _08021918
- .4byte _08021928
- .4byte _0802193C
-_080218E8:
- ldr r0, _080218F4 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bne _0802194E
- b _08021948
- .align 2, 0
-_080218F4: .4byte gUnknown_2023D74
-_080218F8:
- ldr r0, _08021904 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- beq _0802194E
- b _08021948
- .align 2, 0
-_08021904: .4byte gUnknown_2023D74
-_08021908:
- ldr r0, _08021914 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bls _0802194E
- b _08021948
- .align 2, 0
-_08021914: .4byte gUnknown_2023D74
-_08021918:
- ldr r0, _08021924 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bcs _0802194E
- b _08021948
- .align 2, 0
-_08021924: .4byte gUnknown_2023D74
-_08021928:
- ldr r0, _08021938 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- ands r2, r0
- cmp r2, 0
- beq _0802194E
- b _08021948
- .align 2, 0
-_08021938: .4byte gUnknown_2023D74
-_0802193C:
- ldr r0, _08021970 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- ands r2, r0
- cmp r2, 0
- bne _0802194E
-_08021948:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0802194E:
- cmp r5, 0
- beq _08021974
- ldr r3, _08021970 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- b _0802197C
- .align 2, 0
-_08021970: .4byte gUnknown_2023D74
-_08021974:
- ldr r1, _08021984 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x9
- str r0, [r1]
-_0802197C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08021984: .4byte gUnknown_2023D74
- thumb_func_end atk20_jumpifstat
-
- thumb_func_start atk21_jumpifstatus3condition
-atk21_jumpifstatus3condition: @ 8021988
- push {r4-r6,lr}
- ldr r4, _080219DC @ =gUnknown_2023D74
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r5, _080219E0 @ =gActiveBattler
- strb r0, [r5]
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- adds r6, r1, r0
- ldrb r1, [r2, 0x7]
- ldrb r0, [r2, 0x8]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x9]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0xA]
- lsls r0, 24
- adds r3, r1, r0
- ldrb r0, [r2, 0x6]
- cmp r0, 0
- beq _080219E8
- ldr r0, _080219E4 @ =gStatuses3
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- ands r0, r6
- cmp r0, 0
- bne _08021A00
- b _080219F8
- .align 2, 0
-_080219DC: .4byte gUnknown_2023D74
-_080219E0: .4byte gActiveBattler
-_080219E4: .4byte gStatuses3
-_080219E8:
- ldr r0, _080219FC @ =gStatuses3
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- ands r0, r6
- cmp r0, 0
- beq _08021A00
-_080219F8:
- str r3, [r4]
- b _08021A06
- .align 2, 0
-_080219FC: .4byte gStatuses3
-_08021A00:
- adds r0, r2, 0
- adds r0, 0xB
- str r0, [r4]
-_08021A06:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk21_jumpifstatus3condition
-
- thumb_func_start atk22_jumpiftype
-atk22_jumpiftype: @ 8021A0C
- push {r4-r6,lr}
- ldr r4, _08021A54 @ =gUnknown_2023D74
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [r4]
- ldrb r5, [r3, 0x2]
- ldrb r2, [r3, 0x3]
- ldrb r1, [r3, 0x4]
- lsls r1, 8
- adds r2, r1
- ldrb r1, [r3, 0x5]
- lsls r1, 16
- adds r2, r1
- ldrb r1, [r3, 0x6]
- lsls r1, 24
- adds r6, r2, r1
- ldr r2, _08021A58 @ =gBattleMons
- movs r1, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r5
- beq _08021A50
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r5
- bne _08021A5C
-_08021A50:
- str r6, [r4]
- b _08021A60
- .align 2, 0
-_08021A54: .4byte gUnknown_2023D74
-_08021A58: .4byte gBattleMons
-_08021A5C:
- adds r0, r3, 0x7
- str r0, [r4]
-_08021A60:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk22_jumpiftype
-
- thumb_func_start sub_8021A68
-sub_8021A68: @ 8021A68
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r6, 0
- ldr r0, _08021AB0 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x50
- mov r9, r0
- ldr r0, _08021AB4 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r1, _08021AB8 @ =gUnknown_2023D6D
- strb r0, [r1]
- ldr r2, _08021ABC @ =gUnknown_2023F4E
- movs r1, 0x2
- ands r1, r0
- lsls r1, 24
- lsrs r1, 25
- adds r1, r2
- ldrb r1, [r1]
- mov r8, r1
- ldr r0, _08021AC0 @ =gBattleScripting
- ldrb r0, [r0, 0x1C]
- cmp r0, 0x6
- bls _08021AA4
- bl _080223DA
-_08021AA4:
- lsls r0, 2
- ldr r1, _08021AC4 @ =_08021AC8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08021AB0: .4byte gBattleStruct
-_08021AB4: .4byte gUnknown_2023D74
-_08021AB8: .4byte gUnknown_2023D6D
-_08021ABC: .4byte gUnknown_2023F4E
-_08021AC0: .4byte gBattleScripting
-_08021AC4: .4byte _08021AC8
- .align 2, 0
-_08021AC8:
- .4byte _08021AE4
- .4byte _08021B50
- .4byte _08021C6A
- .4byte _08021F78
- .4byte _0802207C
- .4byte _08022368
- .4byte _080223B0
-_08021AE4:
- ldr r4, _08021B34 @ =gUnknown_2023D6D
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08021AF8
- bl _080223A4
-_08021AF8:
- ldr r0, _08021B38 @ =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, _08021B3C @ =0x00080982
- ands r0, r1
- cmp r0, 0
- beq _08021B08
- bl _080223A4
-_08021B08:
- ldr r1, _08021B40 @ =gBattleScripting
- ldrb r0, [r1, 0x1C]
- adds r0, 0x1
- strb r0, [r1, 0x1C]
- ldr r0, _08021B44 @ =gBattleStruct
- ldr r2, [r0]
- adds r2, 0xDF
- ldr r3, _08021B48 @ =gBitTable
- ldr r1, _08021B4C @ =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- bl _080223DA
- .align 2, 0
-_08021B34: .4byte gUnknown_2023D6D
-_08021B38: .4byte gBattleTypeFlags
-_08021B3C: .4byte 0x00080982
-_08021B40: .4byte gBattleScripting
-_08021B44: .4byte gBattleStruct
-_08021B48: .4byte gBitTable
-_08021B4C: .4byte gBattlerPartyIndexes
-_08021B50:
- movs r5, 0
- movs r7, 0
-_08021B54:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _08021BA4 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08021BC2
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08021BC2
- ldr r0, _08021BA8 @ =gBitTable
- lsls r1, r7, 2
- adds r1, r0
- ldr r0, [r1]
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _08021B88
- adds r5, 0x1
-_08021B88:
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _08021BB4
- ldr r0, _08021BAC @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, _08021BB0 @ =0x0000311a
- adds r0, r2
- ldrb r4, [r0]
- b _08021BBC
- .align 2, 0
-_08021BA4: .4byte gPlayerParty
-_08021BA8: .4byte gBitTable
-_08021BAC: .4byte gSaveBlock1Ptr
-_08021BB0: .4byte 0x0000311a
-_08021BB4:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
-_08021BBC:
- cmp r4, 0x19
- bne _08021BC2
- adds r6, 0x1
-_08021BC2:
- adds r7, 0x1
- cmp r7, 0x5
- ble _08021B54
- ldr r3, _08021C28 @ =gBaseStats
- ldr r2, _08021C2C @ =gBattleMons
- ldr r0, _08021C30 @ =gUnknown_2023D6D
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0, 0x9]
- adds r1, 0x2A
- ldrb r0, [r1]
- muls r0, r2
- movs r1, 0x7
- bl __divsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r6, 0
- beq _08021C38
- lsrs r4, r0, 17
- adds r0, r4, 0
- adds r1, r5, 0
- bl __divsi3
- mov r1, r9
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _08021C0E
- movs r0, 0x1
- strh r0, [r1]
-_08021C0E:
- ldr r5, _08021C34 @ =gUnknown_2023F52
- adds r0, r4, 0
- adds r1, r6, 0
- bl __divsi3
- strh r0, [r5]
- lsls r0, 16
- cmp r0, 0
- bne _08021C52
- movs r0, 0x1
- strh r0, [r5]
- b _08021C52
- .align 2, 0
-_08021C28: .4byte gBaseStats
-_08021C2C: .4byte gBattleMons
-_08021C30: .4byte gUnknown_2023D6D
-_08021C34: .4byte gUnknown_2023F52
-_08021C38:
- adds r0, r1, 0
- adds r1, r5, 0
- bl __divsi3
- mov r2, r9
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bne _08021C4E
- movs r0, 0x1
- strh r0, [r2]
-_08021C4E:
- ldr r0, _08021C9C @ =gUnknown_2023F52
- strh r6, [r0]
-_08021C52:
- ldr r1, _08021CA0 @ =gBattleScripting
- ldrb r0, [r1, 0x1C]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1, 0x1C]
- ldr r1, _08021CA4 @ =gBattleStruct
- ldr r0, [r1]
- strb r2, [r0, 0x10]
- ldr r0, [r1]
- adds r0, 0x53
- mov r4, r8
- strb r4, [r0]
-_08021C6A:
- ldr r0, _08021CA8 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- beq _08021C74
- b _080223DA
-_08021C74:
- ldr r0, _08021CA4 @ =gBattleStruct
- ldr r0, [r0]
- ldrb r1, [r0, 0x10]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08021CAC @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _08021CB8
- ldr r0, _08021CB0 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08021CB4 @ =0x0000311a
- adds r0, r1
- ldrb r4, [r0]
- b _08021CC0
- .align 2, 0
-_08021C9C: .4byte gUnknown_2023F52
-_08021CA0: .4byte gBattleScripting
-_08021CA4: .4byte gBattleStruct
-_08021CA8: .4byte gUnknown_2023BC8
-_08021CAC: .4byte gPlayerParty
-_08021CB0: .4byte gSaveBlock1Ptr
-_08021CB4: .4byte 0x0000311a
-_08021CB8:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
-_08021CC0:
- ldr r5, _08021CE0 @ =gBattleStruct
- cmp r4, 0x19
- beq _08021CE8
- ldr r0, [r5]
- adds r1, r0, 0
- adds r1, 0x53
- ldrb r0, [r1]
- movs r2, 0x1
- ands r2, r0
- cmp r2, 0
- bne _08021CE8
- lsrs r0, 1
- strb r0, [r1]
- ldr r1, _08021CE4 @ =gBattleScripting
- b _08021D0C
- .align 2, 0
-_08021CE0: .4byte gBattleStruct
-_08021CE4: .4byte gBattleScripting
-_08021CE8:
- ldr r0, [r5]
- ldrb r1, [r0, 0x10]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08021D18 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x64
- bne _08021D24
- ldr r1, [r5]
- adds r1, 0x53
- ldrb r0, [r1]
- lsrs r0, 1
- strb r0, [r1]
- ldr r1, _08021D1C @ =gBattleScripting
- movs r2, 0
-_08021D0C:
- movs r0, 0x5
- strb r0, [r1, 0x1C]
- ldr r0, _08021D20 @ =gBattleMoveDamage
- str r2, [r0]
- b _080223DA
- .align 2, 0
-_08021D18: .4byte gPlayerParty
-_08021D1C: .4byte gBattleScripting
-_08021D20: .4byte gBattleMoveDamage
-_08021D24:
- ldr r0, _08021D88 @ =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, _08021D8C @ =0x00010008
- ands r0, r1
- cmp r0, 0
- bne _08021D52
- ldr r0, _08021D90 @ =gBattleMons
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08021D52
- ldr r0, [r5]
- ldrb r0, [r0, 0x12]
- cmp r0, 0
- bne _08021D52
- bl BattleStopLowHpSound
- ldr r0, _08021D94 @ =0x00000137
- bl PlayBGM
- ldr r1, [r5]
- ldrb r0, [r1, 0x12]
- adds r0, 0x1
- strb r0, [r1, 0x12]
-_08021D52:
- ldr r5, _08021D98 @ =gBattleStruct
- ldr r0, [r5]
- ldrb r1, [r0, 0x10]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08021D9C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _08021D6C
- b _08021F4C
-_08021D6C:
- ldr r0, [r5]
- adds r0, 0x53
- ldrb r0, [r0]
- movs r3, 0x1
- ands r3, r0
- cmp r3, 0
- beq _08021DA4
- ldr r1, _08021DA0 @ =gBattleMoveDamage
- mov r2, r9
- ldrh r0, [r2]
- str r0, [r1]
- mov r9, r1
- b _08021DAA
- .align 2, 0
-_08021D88: .4byte gBattleTypeFlags
-_08021D8C: .4byte 0x00010008
-_08021D90: .4byte gBattleMons
-_08021D94: .4byte 0x00000137
-_08021D98: .4byte gBattleStruct
-_08021D9C: .4byte gPlayerParty
-_08021DA0: .4byte gBattleMoveDamage
-_08021DA4:
- ldr r0, _08021E28 @ =gBattleMoveDamage
- str r3, [r0]
- mov r9, r0
-_08021DAA:
- cmp r4, 0x19
- bne _08021DBA
- ldr r0, _08021E2C @ =gUnknown_2023F52
- ldrh r1, [r0]
- mov r2, r9
- ldr r0, [r2]
- adds r0, r1
- str r0, [r2]
-_08021DBA:
- cmp r4, 0x28
- bne _08021DCE
- mov r4, r9
- ldr r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
-_08021DCE:
- ldr r5, _08021E30 @ =gBattleTypeFlags
- ldr r0, [r5]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08021DEA
- ldr r4, _08021E28 @ =gBattleMoveDamage
- ldr r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
-_08021DEA:
- ldr r0, _08021E34 @ =gBattleStruct
- ldr r0, [r0]
- ldrb r1, [r0, 0x10]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08021E38 @ =gPlayerParty
- adds r0, r1
- bl IsTradedMon
- lsls r0, 24
- cmp r0, 0
- beq _08021E3C
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 9
- ands r0, r1
- cmp r0, 0
- bne _08021E3C
- ldr r4, _08021E28 @ =gBattleMoveDamage
- ldr r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- movs r7, 0xA5
- lsls r7, 1
- mov r9, r4
- b _08021E42
- .align 2, 0
-_08021E28: .4byte gBattleMoveDamage
-_08021E2C: .4byte gUnknown_2023F52
-_08021E30: .4byte gBattleTypeFlags
-_08021E34: .4byte gBattleStruct
-_08021E38: .4byte gPlayerParty
-_08021E3C:
- ldr r7, _08021E78 @ =0x00000149
- ldr r0, _08021E7C @ =gBattleMoveDamage
- mov r9, r0
-_08021E42:
- ldr r0, _08021E80 @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08021EAE
- ldr r0, _08021E84 @ =gBattlerPartyIndexes
- ldr r1, _08021E88 @ =gBattleStruct
- ldr r4, [r1]
- ldrh r0, [r0, 0x4]
- adds r5, r1, 0
- ldr r3, _08021E8C @ =gBitTable
- ldr r2, _08021E90 @ =gAbsentBattlerFlags
- ldrb r1, [r4, 0x10]
- cmp r0, r1
- bne _08021E94
- ldrb r1, [r2]
- ldr r0, [r3, 0x8]
- ands r1, r0
- cmp r1, 0
- bne _08021E94
- adds r1, r4, 0
- adds r1, 0x8F
- movs r0, 0x2
- strb r0, [r1]
- b _08021EB6
- .align 2, 0
-_08021E78: .4byte 0x00000149
-_08021E7C: .4byte gBattleMoveDamage
-_08021E80: .4byte gBattleTypeFlags
-_08021E84: .4byte gBattlerPartyIndexes
-_08021E88: .4byte gBattleStruct
-_08021E8C: .4byte gBitTable
-_08021E90: .4byte gAbsentBattlerFlags
-_08021E94:
- ldrb r2, [r2]
- ldr r0, [r3]
- ands r2, r0
- cmp r2, 0
- bne _08021EA6
- ldr r0, [r5]
- adds r0, 0x8F
- strb r2, [r0]
- b _08021EB6
-_08021EA6:
- ldr r0, [r5]
- adds r0, 0x8F
- movs r1, 0x2
- b _08021EB4
-_08021EAE:
- ldr r0, _08021F5C @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x8F
-_08021EB4:
- strb r1, [r0]
-_08021EB6:
- ldr r1, _08021F60 @ =gBattleTextBuff1
- movs r2, 0
- mov r12, r2
- movs r3, 0xFD
- strb r3, [r1]
- movs r5, 0x4
- strb r5, [r1, 0x1]
- ldr r6, _08021F5C @ =gBattleStruct
- ldr r2, [r6]
- movs r4, 0x8F
- adds r4, r2
- mov r8, r4
- ldrb r0, [r4]
- strb r0, [r1, 0x2]
- ldrb r0, [r2, 0x10]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08021F64 @ =gBattleTextBuff2
- strb r3, [r1]
- mov r0, r12
- strb r0, [r1, 0x1]
- strb r7, [r1, 0x2]
- movs r4, 0xFF
- lsls r4, 8
- ands r7, r4
- asrs r0, r7, 8
- strb r0, [r1, 0x3]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x4]
- ldr r1, _08021F68 @ =gUnknown_2022AD8
- strb r3, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- strb r5, [r1, 0x2]
- movs r0, 0x5
- strb r0, [r1, 0x3]
- mov r0, r9
- ldr r2, [r0]
- strb r2, [r1, 0x4]
- adds r0, r2, 0
- ands r0, r4
- asrs r0, 8
- strb r0, [r1, 0x5]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r2
- asrs r0, 16
- strb r0, [r1, 0x6]
- lsrs r2, 24
- strb r2, [r1, 0x7]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x8]
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0xD
- bl PrepareStringBattle
- ldr r0, [r6]
- ldrb r1, [r0, 0x10]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08021F6C @ =gPlayerParty
- adds r0, r1
- ldr r3, _08021F70 @ =gBattleMons
- ldr r1, _08021F74 @ =gUnknown_2023D6D
- ldrb r2, [r1]
- movs r1, 0x58
- muls r1, r2
- adds r1, r3
- ldrh r1, [r1]
- bl MonGainEVs
-_08021F4C:
- ldr r0, _08021F5C @ =gBattleStruct
- ldr r1, [r0]
- adds r1, 0x53
- ldrb r0, [r1]
- lsrs r0, 1
- strb r0, [r1]
- b _08022052
- .align 2, 0
-_08021F5C: .4byte gBattleStruct
-_08021F60: .4byte gBattleTextBuff1
-_08021F64: .4byte gBattleTextBuff2
-_08021F68: .4byte gUnknown_2022AD8
-_08021F6C: .4byte gPlayerParty
-_08021F70: .4byte gBattleMons
-_08021F74: .4byte gUnknown_2023D6D
-_08021F78:
- ldr r0, _0802205C @ =gUnknown_2023BC8
- ldr r2, [r0]
- cmp r2, 0
- beq _08021F82
- b _080223DA
-_08021F82:
- ldr r1, _08022060 @ =gUnknown_20233C4
- ldr r7, _08022064 @ =gBattleStruct
- ldr r0, [r7]
- adds r0, 0x8F
- ldrb r0, [r0]
- lsls r0, 9
- adds r0, r1
- strb r2, [r0]
- ldr r0, [r7]
- ldrb r0, [r0, 0x10]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08022068 @ =gPlayerParty
- adds r0, r5
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08022052
- ldr r0, [r7]
- ldrb r0, [r0, 0x10]
- muls r0, r6
- adds r0, r5
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x64
- beq _08022052
- ldr r0, [r7]
- ldrb r0, [r0, 0x10]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3A
- bl GetMonData
- ldr r4, _0802206C @ =gBattleResources
- ldr r1, [r4]
- ldr r1, [r1, 0x10]
- strh r0, [r1]
- ldr r0, [r7]
- ldrb r0, [r0, 0x10]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3B
- bl GetMonData
- ldr r1, [r4]
- ldr r1, [r1, 0x10]
- strh r0, [r1, 0x2]
- ldr r0, [r7]
- ldrb r0, [r0, 0x10]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3C
- bl GetMonData
- ldr r1, [r4]
- ldr r1, [r1, 0x10]
- strh r0, [r1, 0x4]
- ldr r0, [r7]
- ldrb r0, [r0, 0x10]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3D
- bl GetMonData
- ldr r1, [r4]
- ldr r1, [r1, 0x10]
- strh r0, [r1, 0x6]
- ldr r0, [r7]
- ldrb r0, [r0, 0x10]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3E
- bl GetMonData
- ldr r1, [r4]
- ldr r1, [r1, 0x10]
- strh r0, [r1, 0x8]
- ldr r0, [r7]
- ldrb r0, [r0, 0x10]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3F
- bl GetMonData
- ldr r1, [r4]
- ldr r1, [r1, 0x10]
- strh r0, [r1, 0xA]
- ldr r4, _08022070 @ =gActiveBattler
- ldr r1, [r7]
- adds r0, r1, 0
- adds r0, 0x8F
- ldrb r0, [r0]
- strb r0, [r4]
- ldrb r1, [r1, 0x10]
- ldr r0, _08022074 @ =gBattleMoveDamage
- ldrh r2, [r0]
- movs r0, 0
- bl EmitExpUpdate
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_08022052:
- ldr r1, _08022078 @ =gBattleScripting
- ldrb r0, [r1, 0x1C]
- adds r0, 0x1
- strb r0, [r1, 0x1C]
- b _080223DA
- .align 2, 0
-_0802205C: .4byte gUnknown_2023BC8
-_08022060: .4byte gUnknown_20233C4
-_08022064: .4byte gBattleStruct
-_08022068: .4byte gPlayerParty
-_0802206C: .4byte gBattleResources
-_08022070: .4byte gActiveBattler
-_08022074: .4byte gBattleMoveDamage
-_08022078: .4byte gBattleScripting
-_0802207C:
- ldr r0, _08022314 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- beq _08022086
- b _080223DA
-_08022086:
- ldr r1, _08022318 @ =gActiveBattler
- ldr r0, _0802231C @ =gBattleStruct
- ldr r4, [r0]
- adds r0, r4, 0
- adds r0, 0x8F
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r3, _08022320 @ =gUnknown_20233C4
- ldrb r2, [r1]
- lsls r1, r2, 9
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0x21
- beq _080220A4
- b _08022350
-_080220A4:
- adds r0, r3, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0xB
- beq _080220B0
- b _08022350
-_080220B0:
- ldr r0, _08022324 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080220DA
- ldr r0, _08022328 @ =gBattlerPartyIndexes
- lsls r1, r2, 1
- adds r1, r0
- ldrh r0, [r1]
- ldrb r4, [r4, 0x10]
- cmp r0, r4
- bne _080220DA
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802232C @ =gPlayerParty
- adds r0, r1
- adds r1, r2, 0
- bl HandleLowHpMusicChange
-_080220DA:
- ldr r1, _08022330 @ =gBattleTextBuff1
- movs r3, 0xFD
- strb r3, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r6, _08022318 @ =gActiveBattler
- ldrb r0, [r6]
- strb r0, [r1, 0x2]
- ldr r4, _0802231C @ =gBattleStruct
- mov r9, r4
- ldr r2, [r4]
- ldrb r0, [r2, 0x10]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r4, _08022334 @ =gBattleTextBuff2
- strb r3, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- movs r0, 0x3
- strb r0, [r4, 0x3]
- ldrb r0, [r2, 0x10]
- movs r1, 0x64
- mov r8, r1
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- ldr r7, _0802232C @ =gPlayerParty
- adds r0, r7
- movs r1, 0x38
- bl GetMonData
- strb r0, [r4, 0x4]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r4, 0x5]
- bl BattleScriptPushCursor
- ldr r2, _08022338 @ =gUnknown_3004FD4
- ldr r1, _0802233C @ =gBitTable
- mov r4, r9
- ldr r5, [r4]
- ldrb r0, [r5, 0x10]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08022340 @ =gUnknown_2023D74
- ldr r0, _08022344 @ =gUnknown_81D89F5
- str r0, [r1]
- ldr r4, _08022348 @ =gBattleMoveDamage
- ldr r2, _08022320 @ =gUnknown_20233C4
- ldrb r1, [r6]
- lsls r1, 9
- adds r0, r2, 0x2
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r2, 0x3
- adds r1, r2
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- str r3, [r4]
- ldrb r0, [r5, 0x10]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0
- bl AdjustFriendship
- ldr r1, _08022328 @ =gBattlerPartyIndexes
- mov r2, r9
- ldr r0, [r2]
- ldrb r2, [r0, 0x10]
- ldrh r0, [r1]
- cmp r0, r2
- bne _08022246
- ldr r4, _0802234C @ =gBattleMons
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- beq _08022246
- mov r0, r8
- muls r0, r2
- adds r0, r7
- movs r1, 0x38
- bl GetMonData
- adds r1, r4, 0
- adds r1, 0x2A
- strb r0, [r1]
- mov r1, r9
- ldr r0, [r1]
- ldrb r0, [r0, 0x10]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x39
- bl GetMonData
- strh r0, [r4, 0x28]
- mov r1, r9
- ldr r0, [r1]
- ldrb r0, [r0, 0x10]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r4, 0x2C]
- mov r1, r9
- ldr r0, [r1]
- ldrb r0, [r0, 0x10]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3B
- bl GetMonData
- strh r0, [r4, 0x2]
- mov r1, r9
- ldr r0, [r1]
- ldrb r0, [r0, 0x10]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3C
- bl GetMonData
- strh r0, [r4, 0x4]
- mov r1, r9
- ldr r0, [r1]
- ldrb r0, [r0, 0x10]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3D
- bl GetMonData
- strh r0, [r4, 0x6]
- mov r1, r9
- ldr r0, [r1]
- ldrb r0, [r0, 0x10]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3D
- bl GetMonData
- strh r0, [r4, 0x6]
- mov r1, r9
- ldr r0, [r1]
- ldrb r0, [r0, 0x10]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3E
- bl GetMonData
- strh r0, [r4, 0x8]
- mov r1, r9
- ldr r0, [r1]
- ldrb r0, [r0, 0x10]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3F
- bl GetMonData
- strh r0, [r4, 0xA]
-_08022246:
- ldr r0, _08022328 @ =gBattlerPartyIndexes
- ldr r7, _0802231C @ =gBattleStruct
- ldr r1, [r7]
- ldrb r2, [r1, 0x10]
- ldrh r0, [r0, 0x4]
- cmp r0, r2
- beq _08022256
- b _08022356
-_08022256:
- ldr r6, _0802234C @ =gBattleMons
- movs r4, 0xD8
- adds r4, r6
- mov r8, r4
- ldrh r0, [r4]
- cmp r0, 0
- beq _08022356
- ldr r0, _08022324 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08022356
- movs r5, 0x64
- adds r0, r2, 0
- muls r0, r5
- ldr r4, _0802232C @ =gPlayerParty
- adds r0, r4
- movs r1, 0x38
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xDA
- strb r0, [r1]
- ldr r0, [r7]
- ldrb r0, [r0, 0x10]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- ldr r0, [r7]
- ldrb r0, [r0, 0x10]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xDC
- strh r0, [r1]
- ldr r0, [r7]
- ldrb r0, [r0, 0x10]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3B
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xB2
- strh r0, [r1]
- ldr r0, [r7]
- ldrb r0, [r0, 0x10]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3C
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xB4
- strh r0, [r1]
- ldr r0, [r7]
- ldrb r0, [r0, 0x10]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3D
- bl GetMonData
- movs r2, 0xB6
- adds r2, r6
- mov r8, r2
- strh r0, [r2]
- ldr r0, [r7]
- ldrb r0, [r0, 0x10]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3D
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- ldr r0, [r7]
- ldrb r0, [r0, 0x10]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3E
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xB8
- strh r0, [r1]
- b _08022356
- .align 2, 0
-_08022314: .4byte gUnknown_2023BC8
-_08022318: .4byte gActiveBattler
-_0802231C: .4byte gBattleStruct
-_08022320: .4byte gUnknown_20233C4
-_08022324: .4byte gBattleTypeFlags
-_08022328: .4byte gBattlerPartyIndexes
-_0802232C: .4byte gPlayerParty
-_08022330: .4byte gBattleTextBuff1
-_08022334: .4byte gBattleTextBuff2
-_08022338: .4byte gUnknown_3004FD4
-_0802233C: .4byte gBitTable
-_08022340: .4byte gUnknown_2023D74
-_08022344: .4byte gUnknown_81D89F5
-_08022348: .4byte gBattleMoveDamage
-_0802234C: .4byte gBattleMons
-_08022350:
- ldr r1, _08022360 @ =gBattleMoveDamage
- movs r0, 0
- str r0, [r1]
-_08022356:
- ldr r1, _08022364 @ =gBattleScripting
- movs r0, 0x5
- strb r0, [r1, 0x1C]
- b _080223DA
- .align 2, 0
-_08022360: .4byte gBattleMoveDamage
-_08022364: .4byte gBattleScripting
-_08022368:
- ldr r0, _08022378 @ =gBattleMoveDamage
- ldr r0, [r0]
- cmp r0, 0
- beq _08022380
- ldr r1, _0802237C @ =gBattleScripting
- movs r0, 0x3
- strb r0, [r1, 0x1C]
- b _080223DA
- .align 2, 0
-_08022378: .4byte gBattleMoveDamage
-_0802237C: .4byte gBattleScripting
-_08022380:
- ldr r2, _0802239C @ =gBattleStruct
- ldr r1, [r2]
- ldrb r0, [r1, 0x10]
- adds r0, 0x1
- strb r0, [r1, 0x10]
- ldr r0, [r2]
- ldrb r0, [r0, 0x10]
- cmp r0, 0x5
- bhi _080223A4
- ldr r1, _080223A0 @ =gBattleScripting
- movs r0, 0x2
- strb r0, [r1, 0x1C]
- b _080223DA
- .align 2, 0
-_0802239C: .4byte gBattleStruct
-_080223A0: .4byte gBattleScripting
-_080223A4:
- ldr r1, _080223AC @ =gBattleScripting
- movs r0, 0x6
- strb r0, [r1, 0x1C]
- b _080223DA
- .align 2, 0
-_080223AC: .4byte gBattleScripting
-_080223B0:
- ldr r0, _080223E8 @ =gUnknown_2023BC8
- ldr r5, [r0]
- cmp r5, 0
- bne _080223DA
- ldr r4, _080223EC @ =gBattleMons
- ldr r2, _080223F0 @ =gUnknown_2023D6D
- ldrb r0, [r2]
- movs r1, 0x58
- muls r0, r1
- adds r0, r4
- movs r3, 0
- strh r5, [r0, 0x2E]
- ldrb r0, [r2]
- muls r0, r1
- adds r0, r4
- adds r0, 0x20
- strb r3, [r0]
- ldr r1, _080223F4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_080223DA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080223E8: .4byte gUnknown_2023BC8
-_080223EC: .4byte gBattleMons
-_080223F0: .4byte gUnknown_2023D6D
-_080223F4: .4byte gUnknown_2023D74
- thumb_func_end sub_8021A68
-
- thumb_func_start sub_80223F8
-sub_80223F8: @ 80223F8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- ldr r0, _08022534 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- beq _0802240A
- b _0802258A
-_0802240A:
- movs r5, 0
-_0802240C:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08022538 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802243C
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0802243C
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
-_0802243C:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0802240C
- cmp r6, 0
- bne _08022450
- ldr r0, _0802253C @ =gBattleOutcome
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
-_08022450:
- movs r6, 0
- movs r5, 0
-_08022454:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08022540 @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08022484
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08022484
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
-_08022484:
- adds r5, 0x1
- cmp r5, 0x5
- ble _08022454
- ldr r2, _0802253C @ =gBattleOutcome
- cmp r6, 0
- bne _08022498
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_08022498:
- ldrb r0, [r2]
- cmp r0, 0
- bne _08022582
- ldr r0, _08022544 @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r2, 0x2
- ands r1, r2
- mov r8, r0
- cmp r1, 0
- beq _08022582
- movs r3, 0
- movs r5, 0
- ldr r0, _08022548 @ =gBattlersCount
- ldrb r1, [r0]
- mov r12, r0
- ldr r7, _0802254C @ =gUnknown_2023D74
- cmp r3, r1
- bge _080224E4
- ldr r0, _08022550 @ =gUnknown_2023DD0
- movs r6, 0x80
- lsls r6, 21
- ldr r4, [r0]
- adds r2, r1, 0
- ldr r1, _08022554 @ =gUnknown_2023ECC
-_080224C8:
- adds r0, r6, 0
- lsls r0, r5
- ands r0, r4
- cmp r0, 0
- beq _080224DC
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _080224DC
- adds r3, 0x1
-_080224DC:
- adds r1, 0x28
- adds r5, 0x2
- cmp r5, r2
- blt _080224C8
-_080224E4:
- movs r2, 0
- movs r5, 0x1
- mov r0, r12
- ldrb r1, [r0]
- cmp r5, r1
- bge _0802251E
- ldr r0, _08022550 @ =gUnknown_2023DD0
- movs r4, 0x80
- lsls r4, 21
- mov r12, r4
- ldr r6, [r0]
- ldr r0, _08022554 @ =gUnknown_2023ECC
- adds r4, r1, 0
- adds r1, r0, 0
- adds r1, 0x14
-_08022502:
- mov r0, r12
- lsls r0, r5
- ands r0, r6
- cmp r0, 0
- beq _08022516
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022516
- adds r2, 0x1
-_08022516:
- adds r1, 0x28
- adds r5, 0x2
- cmp r5, r4
- blt _08022502
-_0802251E:
- mov r1, r8
- ldr r0, [r1]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08022558
- adds r0, r2, r3
- cmp r0, 0x1
- bgt _08022560
- b _0802257A
- .align 2, 0
-_08022534: .4byte gUnknown_2023BC8
-_08022538: .4byte gPlayerParty
-_0802253C: .4byte gBattleOutcome
-_08022540: .4byte gEnemyParty
-_08022544: .4byte gBattleTypeFlags
-_08022548: .4byte gBattlersCount
-_0802254C: .4byte gUnknown_2023D74
-_08022550: .4byte gUnknown_2023DD0
-_08022554: .4byte gUnknown_2023ECC
-_08022558:
- cmp r2, 0
- beq _0802257A
- cmp r3, 0
- beq _0802257A
-_08022560:
- ldr r2, [r7]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- str r1, [r7]
- b _0802258A
-_0802257A:
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- b _0802258A
-_08022582:
- ldr r1, _08022594 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802258A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08022594: .4byte gUnknown_2023D74
- thumb_func_end sub_80223F8
-
- thumb_func_start MoveValuesCleanUp
-MoveValuesCleanUp: @ 8022598
- ldr r1, _080225C0 @ =gMoveResultFlags
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080225C4 @ =gBattleScripting
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0, 0xE]
- ldr r0, _080225C8 @ =gCritMultiplier
- strb r1, [r0]
- ldr r0, _080225CC @ =gUnknown_2023E82
- strb r2, [r0, 0x3]
- strb r2, [r0, 0x6]
- ldr r2, _080225D0 @ =gUnknown_2023DD0
- ldr r0, [r2]
- subs r1, 0x42
- ands r0, r1
- ldr r1, _080225D4 @ =0xffffbfff
- ands r0, r1
- str r0, [r2]
- bx lr
- .align 2, 0
-_080225C0: .4byte gMoveResultFlags
-_080225C4: .4byte gBattleScripting
-_080225C8: .4byte gCritMultiplier
-_080225CC: .4byte gUnknown_2023E82
-_080225D0: .4byte gUnknown_2023DD0
-_080225D4: .4byte 0xffffbfff
- thumb_func_end MoveValuesCleanUp
-
- thumb_func_start atk25_movevaluescleanup
-atk25_movevaluescleanup: @ 80225D8
- push {lr}
- bl MoveValuesCleanUp
- ldr r1, _080225EC @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080225EC: .4byte gUnknown_2023D74
- thumb_func_end atk25_movevaluescleanup
-
- thumb_func_start atk26_setmultihit
-atk26_setmultihit: @ 80225F0
- ldr r3, _08022600 @ =gUnknown_2023D72
- ldr r2, _08022604 @ =gUnknown_2023D74
- ldr r0, [r2]
- ldrb r1, [r0, 0x1]
- strb r1, [r3]
- adds r0, 0x2
- str r0, [r2]
- bx lr
- .align 2, 0
-_08022600: .4byte gUnknown_2023D72
-_08022604: .4byte gUnknown_2023D74
- thumb_func_end atk26_setmultihit
-
- thumb_func_start atk27_decrementmultihit
-atk27_decrementmultihit: @ 8022608
- push {lr}
- ldr r1, _08022624 @ =gUnknown_2023D72
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _0802262C
- ldr r1, _08022628 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08022646
- .align 2, 0
-_08022624: .4byte gUnknown_2023D72
-_08022628: .4byte gUnknown_2023D74
-_0802262C:
- ldr r3, _0802264C @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
-_08022646:
- pop {r0}
- bx r0
- .align 2, 0
-_0802264C: .4byte gUnknown_2023D74
- thumb_func_end atk27_decrementmultihit
-
- thumb_func_start atk28_goto
-atk28_goto: @ 8022650
- ldr r3, _0802266C @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- bx lr
- .align 2, 0
-_0802266C: .4byte gUnknown_2023D74
- thumb_func_end atk28_goto
-
- thumb_func_start atk29_jumpifbyte
-atk29_jumpifbyte: @ 8022670
- push {r4-r6,lr}
- ldr r3, _080226B4 @ =gUnknown_2023D74
- ldr r1, [r3]
- ldrb r6, [r1, 0x1]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x6]
- ldrb r2, [r1, 0x7]
- ldrb r0, [r1, 0x8]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x9]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 24
- adds r2, r0
- adds r1, 0xB
- str r1, [r3]
- cmp r6, 0x5
- bhi _08022708
- lsls r0, r6, 2
- ldr r1, _080226B8 @ =_080226BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080226B4: .4byte gUnknown_2023D74
-_080226B8: .4byte _080226BC
- .align 2, 0
-_080226BC:
- .4byte _080226D4
- .4byte _080226DC
- .4byte _080226E4
- .4byte _080226EC
- .4byte _080226F4
- .4byte _080226FE
-_080226D4:
- ldrb r0, [r5]
- cmp r0, r4
- bne _08022708
- b _08022706
-_080226DC:
- ldrb r0, [r5]
- cmp r0, r4
- beq _08022708
- b _08022706
-_080226E4:
- ldrb r0, [r5]
- cmp r0, r4
- bls _08022708
- b _08022706
-_080226EC:
- ldrb r0, [r5]
- cmp r0, r4
- bcs _08022708
- b _08022706
-_080226F4:
- ldrb r0, [r5]
- ands r4, r0
- cmp r4, 0
- beq _08022708
- b _08022706
-_080226FE:
- ldrb r0, [r5]
- ands r4, r0
- cmp r4, 0
- bne _08022708
-_08022706:
- str r2, [r3]
-_08022708:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk29_jumpifbyte
-
- thumb_func_start atk2A_jumpifhalfword
-atk2A_jumpifhalfword: @ 8022710
- push {r4-r6,lr}
- ldr r3, _0802275C @ =gUnknown_2023D74
- ldr r1, [r3]
- ldrb r6, [r1, 0x1]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x6]
- ldrb r0, [r1, 0x7]
- lsls r0, 8
- orrs r4, r0
- ldrb r2, [r1, 0x8]
- ldrb r0, [r1, 0x9]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 24
- adds r2, r0
- adds r1, 0xC
- str r1, [r3]
- cmp r6, 0x5
- bhi _080227B0
- lsls r0, r6, 2
- ldr r1, _08022760 @ =_08022764
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802275C: .4byte gUnknown_2023D74
-_08022760: .4byte _08022764
- .align 2, 0
-_08022764:
- .4byte _0802277C
- .4byte _08022784
- .4byte _0802278C
- .4byte _08022794
- .4byte _0802279C
- .4byte _080227A6
-_0802277C:
- ldrh r0, [r5]
- cmp r0, r4
- bne _080227B0
- b _080227AE
-_08022784:
- ldrh r0, [r5]
- cmp r0, r4
- beq _080227B0
- b _080227AE
-_0802278C:
- ldrh r0, [r5]
- cmp r0, r4
- bls _080227B0
- b _080227AE
-_08022794:
- ldrh r0, [r5]
- cmp r0, r4
- bcs _080227B0
- b _080227AE
-_0802279C:
- ldrh r0, [r5]
- ands r4, r0
- cmp r4, 0
- beq _080227B0
- b _080227AE
-_080227A6:
- ldrh r0, [r5]
- ands r4, r0
- cmp r4, 0
- bne _080227B0
-_080227AE:
- str r2, [r3]
-_080227B0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk2A_jumpifhalfword
-
- thumb_func_start atk2B_jumpifword
-atk2B_jumpifword: @ 80227B8
- push {r4-r6,lr}
- ldr r3, _08022810 @ =gUnknown_2023D74
- ldr r1, [r3]
- ldrb r6, [r1, 0x1]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x6]
- ldrb r0, [r1, 0x7]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0x9]
- lsls r0, 24
- orrs r4, r0
- ldrb r2, [r1, 0xA]
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- adds r2, r0
- adds r1, 0xE
- str r1, [r3]
- cmp r6, 0x5
- bhi _08022864
- lsls r0, r6, 2
- ldr r1, _08022814 @ =_08022818
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08022810: .4byte gUnknown_2023D74
-_08022814: .4byte _08022818
- .align 2, 0
-_08022818:
- .4byte _08022830
- .4byte _08022838
- .4byte _08022840
- .4byte _08022848
- .4byte _08022850
- .4byte _0802285A
-_08022830:
- ldr r0, [r5]
- cmp r0, r4
- bne _08022864
- b _08022862
-_08022838:
- ldr r0, [r5]
- cmp r0, r4
- beq _08022864
- b _08022862
-_08022840:
- ldr r0, [r5]
- cmp r0, r4
- bls _08022864
- b _08022862
-_08022848:
- ldr r0, [r5]
- cmp r0, r4
- bcs _08022864
- b _08022862
-_08022850:
- ldr r0, [r5]
- ands r0, r4
- cmp r0, 0
- beq _08022864
- b _08022862
-_0802285A:
- ldr r0, [r5]
- ands r0, r4
- cmp r0, 0
- bne _08022864
-_08022862:
- str r2, [r3]
-_08022864:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk2B_jumpifword
-
- thumb_func_start atk2C_jumpifarrayequal
-atk2C_jumpifarrayequal: @ 802286C
- push {r4-r7,lr}
- ldr r2, _080228C4 @ =gUnknown_2023D74
- ldr r3, [r2]
- ldrb r1, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 24
- adds r5, r1, r0
- ldrb r1, [r3, 0x5]
- ldrb r0, [r3, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 24
- adds r4, r1, r0
- ldrb r6, [r3, 0x9]
- ldrb r1, [r3, 0xA]
- ldrb r0, [r3, 0xB]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0xC]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0xD]
- lsls r0, 24
- adds r1, r0
- mov r12, r1
- movs r1, 0
- cmp r1, r6
- bcs _080228E4
- ldrb r0, [r5]
- ldrb r7, [r4]
- cmp r0, r7
- beq _080228C8
- adds r0, r3, 0
- b _080228E0
- .align 2, 0
-_080228C4: .4byte gUnknown_2023D74
-_080228C8:
- adds r5, 0x1
- adds r4, 0x1
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r6
- bcs _080228E4
- ldrb r0, [r5]
- ldrb r3, [r4]
- cmp r0, r3
- beq _080228C8
- ldr r0, [r2]
-_080228E0:
- adds r0, 0xE
- str r0, [r2]
-_080228E4:
- cmp r1, r6
- bne _080228EC
- mov r7, r12
- str r7, [r2]
-_080228EC:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk2C_jumpifarrayequal
-
- thumb_func_start atk2D_jumpifarraynotequal
-atk2D_jumpifarraynotequal: @ 80228F4
- push {r4-r7,lr}
- movs r7, 0
- ldr r3, _08022968 @ =gUnknown_2023D74
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r2, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 24
- adds r4, r2, r0
- ldrb r6, [r1, 0x9]
- ldrb r2, [r1, 0xA]
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- adds r2, r0
- mov r12, r2
- movs r1, 0
- cmp r7, r6
- bcs _0802295E
-_08022942:
- ldrb r0, [r5]
- ldrb r2, [r4]
- cmp r0, r2
- bne _08022950
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_08022950:
- adds r5, 0x1
- adds r4, 0x1
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r6
- bcc _08022942
-_0802295E:
- cmp r7, r6
- beq _0802296C
- mov r0, r12
- b _08022970
- .align 2, 0
-_08022968: .4byte gUnknown_2023D74
-_0802296C:
- ldr r0, [r3]
- adds r0, 0xE
-_08022970:
- str r0, [r3]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk2D_jumpifarraynotequal
-
- thumb_func_start atk2E_setbyte
-atk2E_setbyte: @ 8022978
- ldr r3, _0802299C @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r2, 0x5]
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_0802299C: .4byte gUnknown_2023D74
- thumb_func_end atk2E_setbyte
-
- thumb_func_start atk2F_addbyte
-atk2F_addbyte: @ 80229A0
- ldr r3, _080229C8 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r2, 0x5]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_080229C8: .4byte gUnknown_2023D74
- thumb_func_end atk2F_addbyte
-
- thumb_func_start atk30_subbyte
-atk30_subbyte: @ 80229CC
- ldr r3, _080229F4 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r1]
- ldrb r2, [r2, 0x5]
- subs r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_080229F4: .4byte gUnknown_2023D74
- thumb_func_end atk30_subbyte
-
- thumb_func_start atk31_copyarray
-atk31_copyarray: @ 80229F8
- push {r4-r6,lr}
- ldr r3, _08022A48 @ =gUnknown_2023D74
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- adds r6, r2, r0
- ldrb r2, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x9]
- movs r2, 0
- cmp r2, r4
- bge _08022A3C
-_08022A2E:
- adds r0, r6, r2
- adds r1, r5, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, r4
- blt _08022A2E
-_08022A3C:
- ldr r0, [r3]
- adds r0, 0xA
- str r0, [r3]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08022A48: .4byte gUnknown_2023D74
- thumb_func_end atk31_copyarray
-
- thumb_func_start atk32_copyarraywithindex
-atk32_copyarraywithindex: @ 8022A4C
- push {r4-r7,lr}
- ldr r3, _08022AB4 @ =gUnknown_2023D74
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- adds r7, r2, r0
- ldrb r2, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 24
- adds r6, r2, r0
- ldrb r2, [r1, 0x9]
- ldrb r0, [r1, 0xA]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0xD]
- movs r2, 0
- cmp r2, r4
- bge _08022AA8
-_08022A96:
- adds r0, r7, r2
- ldrb r1, [r5]
- adds r1, r2, r1
- adds r1, r6, r1
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, r4
- blt _08022A96
-_08022AA8:
- ldr r0, [r3]
- adds r0, 0xE
- str r0, [r3]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08022AB4: .4byte gUnknown_2023D74
- thumb_func_end atk32_copyarraywithindex
-
- thumb_func_start atk33_orbyte
-atk33_orbyte: @ 8022AB8
- ldr r3, _08022AE0 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r1]
- ldrb r2, [r2, 0x5]
- orrs r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_08022AE0: .4byte gUnknown_2023D74
- thumb_func_end atk33_orbyte
-
- thumb_func_start atk34_orhalfword
-atk34_orhalfword: @ 8022AE4
- push {r4,lr}
- ldr r4, _08022B18 @ =gUnknown_2023D74
- ldr r3, [r4]
- ldrb r2, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 24
- adds r2, r0
- ldrb r1, [r3, 0x5]
- ldrb r0, [r3, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrh r0, [r2]
- orrs r1, r0
- strh r1, [r2]
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08022B18: .4byte gUnknown_2023D74
- thumb_func_end atk34_orhalfword
-
- thumb_func_start atk35_orword
-atk35_orword: @ 8022B1C
- push {r4,lr}
- ldr r4, _08022B5C @ =gUnknown_2023D74
- ldr r2, [r4]
- ldrb r3, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r3, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r3, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r3, r0
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- adds r1, r0
- ldr r0, [r3]
- orrs r0, r1
- str r0, [r3]
- ldr r0, [r4]
- adds r0, 0x9
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08022B5C: .4byte gUnknown_2023D74
- thumb_func_end atk35_orword
-
- thumb_func_start atk36_bicbyte
-atk36_bicbyte: @ 8022B60
- ldr r3, _08022B88 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r2, [r2, 0x5]
- ldrb r0, [r1]
- bics r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_08022B88: .4byte gUnknown_2023D74
- thumb_func_end atk36_bicbyte
-
- thumb_func_start atk37_bichalfword
-atk37_bichalfword: @ 8022B8C
- push {r4,lr}
- ldr r4, _08022BC0 @ =gUnknown_2023D74
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r2, [r3, 0x5]
- ldrb r0, [r3, 0x6]
- lsls r0, 8
- orrs r2, r0
- ldrh r0, [r1]
- bics r0, r2
- strh r0, [r1]
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08022BC0: .4byte gUnknown_2023D74
- thumb_func_end atk37_bichalfword
-
- thumb_func_start atk38_bicword
-atk38_bicword: @ 8022BC4
- push {r4,lr}
- ldr r4, _08022C04 @ =gUnknown_2023D74
- ldr r2, [r4]
- ldrb r3, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r3, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r3, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r3, r0
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- adds r1, r0
- ldr r0, [r3]
- bics r0, r1
- str r0, [r3]
- ldr r0, [r4]
- adds r0, 0x9
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08022C04: .4byte gUnknown_2023D74
- thumb_func_end atk38_bicword
-
- thumb_func_start atk39_pause
-atk39_pause: @ 8022C08
- push {r4,r5,lr}
- ldr r0, _08022C3C @ =gUnknown_2023BC8
- ldr r4, [r0]
- cmp r4, 0
- bne _08022C34
- ldr r5, _08022C40 @ =gUnknown_2023D74
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r3, _08022C44 @ =gUnknown_2023E7C
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r1
- bcc _08022C34
- strh r4, [r3]
- adds r0, r2, 0x3
- str r0, [r5]
-_08022C34:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08022C3C: .4byte gUnknown_2023BC8
-_08022C40: .4byte gUnknown_2023D74
-_08022C44: .4byte gUnknown_2023E7C
- thumb_func_end atk39_pause
-
- thumb_func_start sub_8022C48
-sub_8022C48: @ 8022C48
- push {lr}
- ldr r0, _08022C60 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- bne _08022C5A
- ldr r1, _08022C64 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08022C5A:
- pop {r0}
- bx r0
- .align 2, 0
-_08022C60: .4byte gUnknown_2023BC8
-_08022C64: .4byte gUnknown_2023D74
- thumb_func_end sub_8022C48
-
- thumb_func_start atk3B_healthbar_update
-atk3B_healthbar_update: @ 8022C68
- push {lr}
- ldr r0, _08022C7C @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08022C88
- ldr r0, _08022C80 @ =gActiveBattler
- ldr r1, _08022C84 @ =gBattlerTarget
- b _08022C8C
- .align 2, 0
-_08022C7C: .4byte gUnknown_2023D74
-_08022C80: .4byte gActiveBattler
-_08022C84: .4byte gBattlerTarget
-_08022C88:
- ldr r0, _08022CB0 @ =gActiveBattler
- ldr r1, _08022CB4 @ =sBattler_AI
-_08022C8C:
- ldrb r1, [r1]
- strb r1, [r0]
- ldr r0, _08022CB8 @ =gBattleMoveDamage
- ldrh r1, [r0]
- movs r0, 0
- bl EmitHealthBarUpdate
- ldr r0, _08022CB0 @ =gActiveBattler
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r1, _08022CBC @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08022CB0: .4byte gActiveBattler
-_08022CB4: .4byte sBattler_AI
-_08022CB8: .4byte gBattleMoveDamage
-_08022CBC: .4byte gUnknown_2023D74
- thumb_func_end atk3B_healthbar_update
-
- thumb_func_start atk3C_return
-atk3C_return: @ 8022CC0
- push {lr}
- bl BattleScriptPop
- pop {r0}
- bx r0
- thumb_func_end atk3C_return
-
- thumb_func_start atk3D_end
-atk3D_end: @ 8022CCC
- ldr r0, _08022CE0 @ =gMoveResultFlags
- movs r1, 0
- strb r1, [r0]
- ldr r0, _08022CE4 @ =gActiveBattler
- strb r1, [r0]
- ldr r1, _08022CE8 @ =gUnknown_2023BE3
- movs r0, 0xB
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08022CE0: .4byte gMoveResultFlags
-_08022CE4: .4byte gActiveBattler
-_08022CE8: .4byte gUnknown_2023BE3
- thumb_func_end atk3D_end
-
- thumb_func_start atk3E_end2
-atk3E_end2: @ 8022CEC
- ldr r1, _08022CFC @ =gActiveBattler
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08022D00 @ =gUnknown_2023BE3
- movs r0, 0xB
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08022CFC: .4byte gActiveBattler
-_08022D00: .4byte gUnknown_2023BE3
- thumb_func_end atk3E_end2
-
- thumb_func_start atk3F_end3
-atk3F_end3: @ 8022D04
- push {lr}
- bl BattleScriptPop
- ldr r3, _08022D38 @ =gBattleResources
- ldr r0, [r3]
- ldr r0, [r0, 0xC]
- adds r1, r0, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0
- beq _08022D1E
- subs r0, 0x1
- strb r0, [r1]
-_08022D1E:
- ldr r2, _08022D3C @ =gUnknown_3004F84
- ldr r0, [r3]
- ldr r1, [r0, 0xC]
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_08022D38: .4byte gBattleResources
-_08022D3C: .4byte gUnknown_3004F84
- thumb_func_end atk3F_end3
-
- thumb_func_start atk41_call
-atk41_call: @ 8022D40
- push {r4,lr}
- ldr r4, _08022D6C @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x5
- bl BattleScriptPush
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08022D6C: .4byte gUnknown_2023D74
- thumb_func_end atk41_call
-
- thumb_func_start atk42_jumpiftype2
-atk42_jumpiftype2: @ 8022D70
- push {r4,lr}
- ldr r4, _08022DB8 @ =gUnknown_2023D74
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [r4]
- ldr r2, _08022DBC @ =gBattleMons
- movs r1, 0x58
- muls r0, r1
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r2, [r3, 0x2]
- ldrb r1, [r1]
- cmp r2, r1
- beq _08022D9E
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r2, r0
- bne _08022DC0
-_08022D9E:
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08022DC4
- .align 2, 0
-_08022DB8: .4byte gUnknown_2023D74
-_08022DBC: .4byte gBattleMons
-_08022DC0:
- adds r0, r3, 0x7
- str r0, [r4]
-_08022DC4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atk42_jumpiftype2
-
- thumb_func_start atk43_jumpifabilitypresent
-atk43_jumpifabilitypresent: @ 8022DCC
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08022E04 @ =gUnknown_2023D74
- ldr r0, [r4]
- ldrb r2, [r0, 0x1]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _08022E08
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08022E0E
- .align 2, 0
-_08022E04: .4byte gUnknown_2023D74
-_08022E08:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_08022E0E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atk43_jumpifabilitypresent
-
- thumb_func_start atk44_endselectionscript
-atk44_endselectionscript: @ 8022E18
- ldr r0, _08022E2C @ =sBattler_AI
- ldrb r0, [r0]
- ldr r1, _08022E30 @ =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- adds r0, 0x54
- movs r1, 0x1
- strb r1, [r0]
- bx lr
- .align 2, 0
-_08022E2C: .4byte sBattler_AI
-_08022E30: .4byte gBattleStruct
- thumb_func_end atk44_endselectionscript
-
- thumb_func_start sub_8022E34
-sub_8022E34: @ 8022E34
- push {r4-r6,lr}
- ldr r4, _08022E84 @ =gUnknown_2023D74
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r6, _08022E88 @ =gActiveBattler
- strb r0, [r6]
- ldr r2, [r4]
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- adds r3, r1, r0
- ldrb r5, [r2, 0x2]
- adds r0, r5, 0
- cmp r0, 0x1
- beq _08022E6E
- cmp r0, 0x11
- beq _08022E6E
- cmp r0, 0x2
- beq _08022E6E
- cmp r0, 0x19
- bne _08022E8C
-_08022E6E:
- ldr r4, _08022E84 @ =gUnknown_2023D74
- ldr r0, [r4]
- ldrb r1, [r0, 0x2]
- ldrh r2, [r3]
- movs r0, 0
- bl EmitBattleAnimation
- ldr r0, _08022E88 @ =gActiveBattler
- ldrb r0, [r0]
- b _08022EE4
- .align 2, 0
-_08022E84: .4byte gUnknown_2023D74
-_08022E88: .4byte gActiveBattler
-_08022E8C:
- ldr r0, _08022EA4 @ =gUnknown_2023DD0
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08022EAC
- adds r0, r2, 0x7
- bl BattleScriptPush
- ldr r0, _08022EA8 @ =gUnknown_81D89F1
- b _08022EEC
- .align 2, 0
-_08022EA4: .4byte gUnknown_2023DD0
-_08022EA8: .4byte gUnknown_81D89F1
-_08022EAC:
- adds r0, r5, 0
- subs r0, 0xA
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08022ED8
- ldr r1, _08022ED0 @ =gStatuses3
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08022ED4 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08022ED8
- adds r0, r2, 0x7
- b _08022EEC
- .align 2, 0
-_08022ED0: .4byte gStatuses3
-_08022ED4: .4byte 0x000400c0
-_08022ED8:
- ldrb r1, [r2, 0x2]
- ldrh r2, [r3]
- movs r0, 0
- bl EmitBattleAnimation
- ldrb r0, [r6]
-_08022EE4:
- bl MarkBufferBankForExecution
- ldr r0, [r4]
- adds r0, 0x7
-_08022EEC:
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8022E34
-
- thumb_func_start atk46_playanimation2
-atk46_playanimation2: @ 8022EF4
- push {r4-r7,lr}
- ldr r6, _08022F5C @ =gUnknown_2023D74
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r7, _08022F60 @ =gActiveBattler
- strb r0, [r7]
- ldr r2, [r6]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- adds r3, r1, r0
- ldrb r1, [r2, 0x6]
- ldrb r0, [r2, 0x7]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x9]
- lsls r0, 24
- adds r4, r1, r0
- ldrb r5, [r3]
- adds r0, r5, 0
- cmp r0, 0x1
- beq _08022F3E
- cmp r0, 0x11
- beq _08022F3E
- cmp r0, 0x2
- bne _08022F64
-_08022F3E:
- ldrb r1, [r3]
- ldrh r2, [r4]
- movs r0, 0
- bl EmitBattleAnimation
- ldr r0, _08022F60 @ =gActiveBattler
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r1, _08022F5C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
- b _08022FBA
- .align 2, 0
-_08022F5C: .4byte gUnknown_2023D74
-_08022F60: .4byte gActiveBattler
-_08022F64:
- ldr r0, _08022F74 @ =gUnknown_2023DD0
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08022F78
- adds r0, r2, 0
- b _08022FB6
- .align 2, 0
-_08022F74: .4byte gUnknown_2023DD0
-_08022F78:
- adds r0, r5, 0
- subs r0, 0xA
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08022FA4
- ldr r1, _08022F9C @ =gStatuses3
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08022FA0 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08022FA4
- adds r0, r2, 0
- b _08022FB6
- .align 2, 0
-_08022F9C: .4byte gStatuses3
-_08022FA0: .4byte 0x000400c0
-_08022FA4:
- ldrb r1, [r3]
- ldrh r2, [r4]
- movs r0, 0
- bl EmitBattleAnimation
- ldrb r0, [r7]
- bl MarkBufferBankForExecution
- ldr r0, [r6]
-_08022FB6:
- adds r0, 0xA
- str r0, [r6]
-_08022FBA:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk46_playanimation2
-
- thumb_func_start atk47_setgraphicalstatchangevalues
-atk47_setgraphicalstatchangevalues: @ 8022FC0
- push {r4,lr}
- movs r3, 0
- ldr r1, _08022FDC @ =gBattleScripting
- ldrb r0, [r1, 0x1A]
- movs r2, 0xF0
- ands r2, r0
- adds r4, r1, 0
- cmp r2, 0x20
- beq _08022FEE
- cmp r2, 0x20
- bgt _08022FE0
- cmp r2, 0x10
- beq _08022FEA
- b _08022FF8
- .align 2, 0
-_08022FDC: .4byte gBattleScripting
-_08022FE0:
- cmp r2, 0x90
- beq _08022FF2
- cmp r2, 0xA0
- beq _08022FF6
- b _08022FF8
-_08022FEA:
- movs r3, 0xF
- b _08022FF8
-_08022FEE:
- movs r3, 0x27
- b _08022FF8
-_08022FF2:
- movs r3, 0x16
- b _08022FF8
-_08022FF6:
- movs r3, 0x2E
-_08022FF8:
- ldrb r1, [r4, 0x1A]
- movs r0, 0xF
- ands r0, r1
- adds r0, r3, r0
- subs r0, 0x1
- movs r1, 0
- strb r0, [r4, 0x10]
- strb r1, [r4, 0x11]
- ldr r1, _08023018 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08023018: .4byte gUnknown_2023D74
- thumb_func_end atk47_setgraphicalstatchangevalues
-
- thumb_func_start atk48_playstatchangeanimation
-atk48_playstatchangeanimation: @ 802301C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r7, 0
- movs r0, 0
- mov r8, r0
- movs r3, 0
- ldr r5, _08023090 @ =gUnknown_2023D74
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- str r3, [sp]
- bl sub_8016E24
- ldr r2, _08023094 @ =gActiveBattler
- strb r0, [r2]
- ldr r0, [r5]
- ldrb r4, [r0, 0x2]
- ldrb r1, [r0, 0x3]
- movs r0, 0x1
- ands r0, r1
- ldr r3, [sp]
- cmp r0, 0
- beq _08023130
- movs r0, 0x2
- ands r0, r1
- movs r1, 0x15
- cmp r0, 0
- beq _0802305C
- movs r1, 0x2D
-_0802305C:
- cmp r4, 0
- beq _08023104
- movs r0, 0x1
- mov r10, r0
- ldr r0, _08023098 @ =gUnknown_2023BFC
- mov r9, r0
- lsls r5, r1, 16
-_0802306A:
- adds r0, r4, 0
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- beq _080230F6
- ldr r0, _08023090 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0802309C
- ldr r0, _08023094 @ =gActiveBattler
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7, r0
- b _080230E4
- .align 2, 0
-_08023090: .4byte gUnknown_2023D74
-_08023094: .4byte gActiveBattler
-_08023098: .4byte gUnknown_2023BFC
-_0802309C:
- ldr r6, _08023120 @ =gActiveBattler
- ldrb r0, [r6]
- str r3, [sp]
- bl GetBattlerPosition
- mov r1, r10
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08023124 @ =gSideTimers
- adds r0, r1
- ldrb r0, [r0, 0x4]
- ldr r3, [sp]
- cmp r0, 0
- bne _080230F6
- ldr r0, _08023128 @ =gBattleMons
- ldrb r2, [r6]
- movs r1, 0x58
- muls r2, r1
- adds r0, r2, r0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1D
- beq _080230F6
- cmp r0, 0x49
- beq _080230F6
- cmp r0, 0x33
- bne _080230DA
- cmp r7, 0x6
- beq _080230F6
-_080230DA:
- cmp r0, 0x34
- bne _080230E2
- cmp r7, 0x1
- beq _080230F6
-_080230E2:
- adds r0, r7, r2
-_080230E4:
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- ble _080230F6
- lsrs r0, r5, 16
- mov r8, r0
- adds r3, 0x1
-_080230F6:
- lsrs r4, 1
- movs r1, 0x80
- lsls r1, 9
- adds r5, r1
- adds r7, 0x1
- cmp r4, 0
- bne _0802306A
-_08023104:
- ldr r0, _0802312C @ =gUnknown_2023D74
- mov r9, r0
- cmp r3, 0x1
- ble _08023192
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x2
- ands r0, r1
- movs r1, 0x39
- mov r8, r1
- cmp r0, 0
- beq _08023192
- movs r0, 0x3A
- b _08023190
- .align 2, 0
-_08023120: .4byte gActiveBattler
-_08023124: .4byte gSideTimers
-_08023128: .4byte gBattleMons
-_0802312C: .4byte gUnknown_2023D74
-_08023130:
- movs r0, 0x2
- ands r0, r1
- movs r1, 0xE
- cmp r0, 0
- beq _0802313C
- movs r1, 0x26
-_0802313C:
- mov r9, r5
- cmp r4, 0
- beq _08023178
- ldr r6, _080231AC @ =gUnknown_2023BFC
- adds r5, r2, 0
- lsls r2, r1, 16
-_08023148:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0802316A
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7, r0
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xB
- bgt _0802316A
- lsrs r1, r2, 16
- mov r8, r1
- adds r3, 0x1
-_0802316A:
- lsrs r4, 1
- movs r0, 0x80
- lsls r0, 9
- adds r2, r0
- adds r7, 0x1
- cmp r4, 0
- bne _08023148
-_08023178:
- cmp r3, 0x1
- ble _08023192
- mov r1, r9
- ldr r0, [r1]
- ldrb r1, [r0, 0x3]
- movs r0, 0x2
- ands r0, r1
- movs r1, 0x37
- mov r8, r1
- cmp r0, 0
- beq _08023192
- movs r0, 0x38
-_08023190:
- mov r8, r0
-_08023192:
- mov r1, r9
- ldr r2, [r1]
- ldrb r1, [r2, 0x3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080231B0
- cmp r3, 0x1
- bgt _080231B0
- adds r0, r2, 0x4
- mov r1, r9
- b _080231FE
- .align 2, 0
-_080231AC: .4byte gUnknown_2023BFC
-_080231B0:
- cmp r3, 0
- beq _080231F8
- ldr r4, _080231EC @ =gBattleScripting
- ldrb r0, [r4, 0x1B]
- cmp r0, 0
- bne _080231F8
- movs r0, 0
- movs r1, 0x1
- mov r2, r8
- str r3, [sp]
- bl EmitBattleAnimation
- ldr r0, _080231F0 @ =gActiveBattler
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r0, _080231F4 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x4
- ands r0, r1
- ldr r3, [sp]
- cmp r0, 0
- beq _080231E8
- cmp r3, 0x1
- ble _080231E8
- movs r0, 0x1
- strb r0, [r4, 0x1B]
-_080231E8:
- ldr r1, _080231F4 @ =gUnknown_2023D74
- b _080231FA
- .align 2, 0
-_080231EC: .4byte gBattleScripting
-_080231F0: .4byte gActiveBattler
-_080231F4: .4byte gUnknown_2023D74
-_080231F8:
- mov r1, r9
-_080231FA:
- ldr r0, [r1]
- adds r0, 0x4
-_080231FE:
- str r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk48_playstatchangeanimation
-
- thumb_func_start atk49_moveend
-atk49_moveend: @ 8023210
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- movs r0, 0
- mov r10, r0
- ldr r2, _08023260 @ =gUnknown_2023D4C
- ldrh r1, [r2]
- ldr r0, _08023264 @ =0x0000ffff
- movs r3, 0
- str r3, [sp, 0x18]
- cmp r1, r0
- beq _08023232
- ldrh r2, [r2]
- str r2, [sp, 0x18]
-_08023232:
- ldr r0, _08023268 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r4, [r0, 0x1]
- str r4, [sp, 0x10]
- ldrb r0, [r0, 0x2]
- str r0, [sp, 0x14]
- ldr r1, _0802326C @ =gBattleMons
- ldr r0, _08023270 @ =sBattler_AI
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08023278
- ldr r1, _08023274 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x7]
- b _08023282
- .align 2, 0
-_08023260: .4byte gUnknown_2023D4C
-_08023264: .4byte 0x0000ffff
-_08023268: .4byte gUnknown_2023D74
-_0802326C: .4byte gBattleMons
-_08023270: .4byte sBattler_AI
-_08023274: .4byte gEnigmaBerries
-_08023278:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_08023282:
- str r0, [sp, 0x8]
- ldr r1, _080232A4 @ =gBattleStruct
- ldr r0, _080232A8 @ =sBattler_AI
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, 0xC8
- ldr r1, [r1]
- adds r0, r1, r0
- str r0, [sp, 0xC]
- ldrb r0, [r1, 0x13]
- cmp r0, 0
- beq _08023334
- movs r5, 0x3F
- ands r5, r0
- str r5, [sp, 0x4]
- b _08023346
- .align 2, 0
-_080232A4: .4byte gBattleStruct
-_080232A8: .4byte sBattler_AI
-_080232AC:
- ldr r4, _080232C0 @ =gActiveBattler
- strb r2, [r4]
- movs r0, 0
- movs r1, 0x1
- bl EmitSpriteInvisibility
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _0802379E
- .align 2, 0
-_080232C0: .4byte gActiveBattler
-_080232C4:
- ldr r4, _080232E8 @ =gActiveBattler
- strb r2, [r4]
- movs r0, 0
- movs r1, 0
- bl EmitSpriteInvisibility
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r5
- ldr r0, [r1]
- ldr r2, _080232EC @ =0xfffbff3f
- ands r0, r2
- str r0, [r1]
- b _0802379E
- .align 2, 0
-_080232E8: .4byte gActiveBattler
-_080232EC: .4byte 0xfffbff3f
-_080232F0:
- strb r2, [r7]
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- ldr r0, _08023324 @ =gBattleScripting
- strb r4, [r0, 0x14]
- bl MoveValuesCleanUp
- ldr r2, _08023328 @ =gUnknown_81D65A8
- mov r0, r8
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- bl BattleScriptPush
- ldr r1, _0802332C @ =gUnknown_2023D74
- ldr r0, _08023330 @ =gUnknown_81D96A8
- bl _08023BFC
- .align 2, 0
-_08023324: .4byte gBattleScripting
-_08023328: .4byte gUnknown_81D65A8
-_0802332C: .4byte gUnknown_2023D74
-_08023330: .4byte gUnknown_81D96A8
-_08023334:
- ldr r2, _0802334C @ =gBattleMoves
- ldr r0, _08023350 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- str r0, [sp, 0x4]
-_08023346:
- ldr r1, _08023354 @ =gBattleScripting
- mov r12, r1
- b _08023362
- .align 2, 0
-_0802334C: .4byte gBattleMoves
-_08023350: .4byte gCurrentMove
-_08023354: .4byte gBattleScripting
-_08023358:
- mov r2, r10
- cmp r2, 0
- beq _08023362
- bl _08023BE8
-_08023362:
- mov r3, r12
- ldrb r0, [r3, 0x14]
- cmp r0, 0x11
- bls _0802336E
- bl _08023BB4
-_0802336E:
- lsls r0, 2
- ldr r1, _08023378 @ =_0802337C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08023378: .4byte _0802337C
- .align 2, 0
-_0802337C:
- .4byte _080233C4
- .4byte _080234A0
- .4byte _0802355C
- .4byte _08023580
- .4byte _08023598
- .4byte _080235C0
- .4byte _080235E4
- .4byte _0802368C
- .4byte _08023702
- .4byte _08023738
- .4byte _080237D8
- .4byte _080236CC
- .4byte _080236EC
- .4byte _0802381C
- .4byte _08023860
- .4byte _08023A40
- .4byte _08023B28
- .4byte _08023BB4
-_080233C4:
- ldr r6, _0802347C @ =gBattleMons
- ldr r5, _08023480 @ =gBattlerTarget
- ldrb r3, [r5]
- movs r7, 0x58
- adds r2, r3, 0
- muls r2, r7
- adds r0, r6, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 16
- ands r0, r1
- cmp r0, 0
- bne _080233E4
- b _080237C8
-_080233E4:
- adds r0, r2, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _080233EE
- b _080237C8
-_080233EE:
- ldr r0, _08023484 @ =sBattler_AI
- ldrb r1, [r0]
- cmp r1, r3
- bne _080233F8
- b _080237C8
-_080233F8:
- adds r0, r1, 0
- bl GetBattlerSide
- adds r4, r0, 0
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _08023410
- b _080237C8
-_08023410:
- ldr r0, _08023488 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0802341E
- b _080237C8
-_0802341E:
- ldr r2, _0802348C @ =gUnknown_2023ECC
- ldrb r3, [r5]
- lsls r0, r3, 2
- adds r0, r3
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08023442
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08023442
- b _080237C8
-_08023442:
- ldr r2, _08023490 @ =gBattleMoves
- ldr r0, _08023494 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08023458
- b _080237C8
-_08023458:
- adds r0, r3, 0
- muls r0, r7
- adds r1, r0, r6
- ldrb r2, [r1, 0x19]
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _0802346A
- b _080237C8
-_0802346A:
- adds r0, r2, 0x1
- strb r0, [r1, 0x19]
- bl BattleScriptPushCursor
- ldr r1, _08023498 @ =gUnknown_2023D74
- ldr r0, _0802349C @ =gUnknown_81D8C48
- str r0, [r1]
- b _080236FC
- .align 2, 0
-_0802347C: .4byte gBattleMons
-_08023480: .4byte gBattlerTarget
-_08023484: .4byte sBattler_AI
-_08023488: .4byte gMoveResultFlags
-_0802348C: .4byte gUnknown_2023ECC
-_08023490: .4byte gBattleMoves
-_08023494: .4byte gCurrentMove
-_08023498: .4byte gUnknown_2023D74
-_0802349C: .4byte gUnknown_81D8C48
-_080234A0:
- ldr r4, _0802353C @ =gBattleMons
- ldr r6, _08023540 @ =gBattlerTarget
- ldrb r2, [r6]
- movs r5, 0x58
- mov r12, r5
- mov r1, r12
- muls r1, r2
- adds r7, r4, 0
- adds r7, 0x4C
- adds r5, r1, r7
- ldr r3, [r5]
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- bne _080234C0
- b _080237C8
-_080234C0:
- adds r0, r1, r4
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _080234CA
- b _080237C8
-_080234CA:
- ldr r0, _08023544 @ =sBattler_AI
- ldrb r0, [r0]
- cmp r0, r2
- bne _080234D4
- b _080237C8
-_080234D4:
- ldr r0, _08023548 @ =gUnknown_2023ECC
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r0, 0xC
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- bne _080234E8
- b _080237C8
-_080234E8:
- ldr r0, _0802354C @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _080234F6
- b _080237C8
-_080234F6:
- ldr r0, [sp, 0x4]
- cmp r0, 0xA
- beq _080234FE
- b _080237C8
-_080234FE:
- movs r0, 0x21
- negs r0, r0
- ands r3, r0
- str r3, [r5]
- ldr r4, _08023550 @ =gActiveBattler
- ldrb r0, [r6]
- strb r0, [r4]
- ldrb r0, [r6]
- mov r1, r12
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetMonData
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- bl BattleScriptPushCursor
- ldr r1, _08023554 @ =gUnknown_2023D74
- ldr r0, _08023558 @ =gUnknown_81D9098
- str r0, [r1]
- movs r2, 0x1
- mov r10, r2
- b _080237C8
- .align 2, 0
-_0802353C: .4byte gBattleMons
-_08023540: .4byte gBattlerTarget
-_08023544: .4byte sBattler_AI
-_08023548: .4byte gUnknown_2023ECC
-_0802354C: .4byte gMoveResultFlags
-_08023550: .4byte gActiveBattler
-_08023554: .4byte gUnknown_2023D74
-_08023558: .4byte gUnknown_81D9098
-_0802355C:
- ldr r0, _0802357C @ =gBattlerTarget
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x7
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _08023576
- b _080237C8
-_08023576:
- movs r3, 0x1
- mov r10, r3
- b _080237C8
- .align 2, 0
-_0802357C: .4byte gBattlerTarget
-_08023580:
- ldr r0, _08023594 @ =gBattlerTarget
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x4
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- b _080236F6
- .align 2, 0
-_08023594: .4byte gBattlerTarget
-_08023598:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x5
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _080235B0
- b _080237C8
-_080235B0:
- movs r5, 0x1
- mov r10, r5
- ldr r0, _080235BC @ =gBattleScripting
- mov r12, r0
- b _08023BB4
- .align 2, 0
-_080235BC: .4byte gBattleScripting
-_080235C0:
- ldr r0, _080235E0 @ =sBattler_AI
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x8
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _080235DA
- b _080237C8
-_080235DA:
- movs r1, 0x1
- mov r10, r1
- b _080237C8
- .align 2, 0
-_080235E0: .4byte sBattler_AI
-_080235E4:
- ldr r0, _08023674 @ =gUnknown_2023DD0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _08023628
- ldr r2, [sp, 0x8]
- cmp r2, 0x1D
- bne _08023628
- ldr r0, _08023678 @ =gUnknown_2023D4C
- ldrh r2, [r0]
- adds r3, r0, 0
- cmp r2, 0xA5
- beq _08023628
- ldr r4, [sp, 0xC]
- ldrh r1, [r4]
- cmp r1, 0
- beq _08023610
- ldr r0, _0802367C @ =0x0000ffff
- cmp r1, r0
- bne _08023628
-_08023610:
- cmp r2, 0xE2
- bne _08023622
- ldr r0, _08023680 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08023622
- b _08023AFA
-_08023622:
- ldrh r0, [r3]
- ldr r1, [sp, 0xC]
- strh r0, [r1]
-_08023628:
- movs r4, 0
- ldr r2, _08023684 @ =gBattleMons
- ldr r3, _08023688 @ =sBattler_AI
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r2, 0xC
- adds r0, r2
- ldrh r0, [r0]
- ldr r5, [sp, 0xC]
- ldrh r1, [r5]
- mov r9, r3
- cmp r0, r1
- beq _08023660
- mov r6, r9
- movs r3, 0x58
- adds r5, r1, 0
-_0802364A:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08023660
- lsls r0, r4, 1
- ldrb r1, [r6]
- muls r1, r3
- adds r0, r1
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r5
- bne _0802364A
-_08023660:
- cmp r4, 0x4
- bne _0802366A
- movs r0, 0
- ldr r1, [sp, 0xC]
- strh r0, [r1]
-_0802366A:
- mov r2, r12
- ldrb r0, [r2, 0x14]
- adds r0, 0x1
- strb r0, [r2, 0x14]
- b _08023BB4
- .align 2, 0
-_08023674: .4byte gUnknown_2023DD0
-_08023678: .4byte gUnknown_2023D4C
-_0802367C: .4byte 0x0000ffff
-_08023680: .4byte gMoveResultFlags
-_08023684: .4byte gBattleMons
-_08023688: .4byte sBattler_AI
-_0802368C:
- movs r4, 0
- ldr r0, _080236C0 @ =gBattlersCount
- ldrb r3, [r0]
- cmp r4, r3
- blt _08023698
- b _08023846
-_08023698:
- ldr r7, _080236C4 @ =gBattleStruct
- movs r6, 0
- movs r3, 0xD0
- adds r5, r0, 0
- ldr r2, _080236C8 @ =gBattleMons
-_080236A2:
- ldr r0, [r7]
- adds r0, r3
- ldrh r1, [r0]
- cmp r1, 0
- beq _080236B0
- strh r1, [r2, 0x2E]
- strh r6, [r0]
-_080236B0:
- adds r3, 0x2
- adds r2, 0x58
- adds r4, 0x1
- ldrb r0, [r5]
- cmp r4, r0
- blt _080236A2
- b _08023846
- .align 2, 0
-_080236C0: .4byte gBattlersCount
-_080236C4: .4byte gBattleStruct
-_080236C8: .4byte gBattleMons
-_080236CC:
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl sub_801BC68
- lsls r0, 24
- cmp r0, 0
- beq _080237C8
- movs r2, 0x1
- mov r10, r2
- ldr r3, _080236E8 @ =gBattleScripting
- mov r12, r3
- b _08023BB4
- .align 2, 0
-_080236E8: .4byte gBattleScripting
-_080236EC:
- movs r0, 0x4
- movs r1, 0
- movs r2, 0
- bl sub_801BC68
-_080236F6:
- lsls r0, 24
- cmp r0, 0
- beq _080237C8
-_080236FC:
- movs r4, 0x1
- mov r10, r4
- b _080237C8
-_08023702:
- ldr r1, _08023728 @ =gStatuses3
- ldr r0, _0802372C @ =sBattler_AI
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08023730 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08023718
- b _08023AFA
-_08023718:
- ldr r0, _08023734 @ =gUnknown_2023DD0
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023726
- b _080232AC
-_08023726:
- b _08023AFA
- .align 2, 0
-_08023728: .4byte gStatuses3
-_0802372C: .4byte sBattler_AI
-_08023730: .4byte 0x000400c0
-_08023734: .4byte gUnknown_2023DD0
-_08023738:
- ldr r0, _080237A8 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _08023764
- ldr r1, _080237AC @ =gStatuses3
- ldr r0, _080237B0 @ =sBattler_AI
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080237B4 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08023764
- adds r0, r2, 0
- bl WasUnableToUseMove
- lsls r0, 24
- cmp r0, 0
- beq _080237C8
-_08023764:
- ldr r4, _080237B8 @ =gActiveBattler
- ldr r5, _080237B0 @ =sBattler_AI
- ldrb r0, [r5]
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- bl EmitSpriteInvisibility
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, _080237AC @ =gStatuses3
- ldrb r2, [r5]
- lsls r2, 2
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _080237BC @ =0xfffbff3f
- ands r0, r1
- str r0, [r2]
- ldr r2, _080237C0 @ =gUnknown_2023ECC
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_0802379E:
- ldr r1, _080237C4 @ =gBattleScripting
- ldrb r0, [r1, 0x14]
- adds r0, 0x1
- strb r0, [r1, 0x14]
- b _08023BFE
- .align 2, 0
-_080237A8: .4byte gMoveResultFlags
-_080237AC: .4byte gStatuses3
-_080237B0: .4byte sBattler_AI
-_080237B4: .4byte 0x000400c0
-_080237B8: .4byte gActiveBattler
-_080237BC: .4byte 0xfffbff3f
-_080237C0: .4byte gUnknown_2023ECC
-_080237C4: .4byte gBattleScripting
-_080237C8:
- ldr r1, _080237D4 @ =gBattleScripting
- ldrb r0, [r1, 0x14]
- adds r0, 0x1
- strb r0, [r1, 0x14]
- mov r12, r1
- b _08023BB4
- .align 2, 0
-_080237D4: .4byte gBattleScripting
-_080237D8:
- ldr r0, _08023808 @ =gUnknown_2023ECC
- ldr r6, _0802380C @ =gBattlerTarget
- ldrb r2, [r6]
- lsls r3, r2, 2
- adds r1, r3, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- blt _08023846
- ldr r0, _08023810 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r2, r0
- bcs _08023846
- ldr r5, _08023814 @ =gStatuses3
- adds r0, r3, r5
- ldr r0, [r0]
- ldr r1, _08023818 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08023806
- b _080232C4
-_08023806:
- b _08023846
- .align 2, 0
-_08023808: .4byte gUnknown_2023ECC
-_0802380C: .4byte gBattlerTarget
-_08023810: .4byte gBattlersCount
-_08023814: .4byte gStatuses3
-_08023818: .4byte 0x000400c0
-_0802381C:
- movs r4, 0
- ldr r0, _08023850 @ =gBattlersCount
- ldrb r2, [r0]
- cmp r4, r2
- bge _08023846
- ldr r2, _08023854 @ =gDisableStructs
- ldr r5, _08023858 @ =0xfeffffff
- adds r3, r0, 0
- ldr r1, _0802385C @ =gUnknown_2023C34
-_0802382E:
- ldrb r0, [r2, 0xA]
- cmp r0, 0
- bne _0802383A
- ldr r0, [r1]
- ands r0, r5
- str r0, [r1]
-_0802383A:
- adds r2, 0x1C
- adds r1, 0x58
- adds r4, 0x1
- ldrb r0, [r3]
- cmp r4, r0
- blt _0802382E
-_08023846:
- mov r1, r12
- ldrb r0, [r1, 0x14]
- adds r0, 0x1
- strb r0, [r1, 0x14]
- b _08023BB4
- .align 2, 0
-_08023850: .4byte gBattlersCount
-_08023854: .4byte gDisableStructs
-_08023858: .4byte 0xfeffffff
-_0802385C: .4byte gUnknown_2023C34
-_08023860:
- ldr r1, _08023914 @ =gUnknown_2023DD0
- ldr r3, [r1]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r3
- ldr r2, _08023918 @ =sBattler_AI
- mov r9, r2
- adds r5, r1, 0
- cmp r0, 0
- beq _0802388A
- ldr r0, _0802391C @ =gActiveBattler
- ldrb r2, [r2]
- strb r2, [r0]
- ldr r1, _08023920 @ =gBattlerTarget
- ldrb r0, [r1]
- mov r4, r9
- strb r0, [r4]
- strb r2, [r1]
- ldr r0, _08023924 @ =0xffffefff
- ands r3, r0
- str r3, [r5]
-_0802388A:
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- beq _080238A6
- ldr r0, _08023928 @ =gUnknown_2023D90
- mov r2, r9
- ldrb r1, [r2]
- lsls r1, 1
- adds r1, r0
- ldr r0, _0802392C @ =gUnknown_2023D4C
- ldrh r0, [r0]
- strh r0, [r1]
-_080238A6:
- ldr r0, _08023930 @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldr r2, _08023934 @ =gBitTable
- mov r3, r9
- ldrb r4, [r3]
- lsls r0, r4, 2
- adds r0, r2
- ldr r3, [r0]
- ands r1, r3
- adds r6, r2, 0
- cmp r1, 0
- beq _080238C0
- b _08023A2C
-_080238C0:
- ldr r0, _08023938 @ =gBattleStruct
- ldr r1, [r0]
- adds r1, 0x91
- ldrb r1, [r1]
- ands r1, r3
- adds r7, r0, 0
- cmp r1, 0
- beq _080238D2
- b _08023A2C
-_080238D2:
- ldr r0, _0802393C @ =gBattleMoves
- ldr r2, [sp, 0x18]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r1, [r1]
- mov r8, r0
- cmp r1, 0x7F
- bne _080238E8
- b _08023A2C
-_080238E8:
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _0802394C
- ldr r0, _08023940 @ =gLastUsedMove
- lsls r1, r4, 1
- adds r1, r0
- ldr r0, _0802392C @ =gUnknown_2023D4C
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r0, _08023944 @ =gUnknown_2023DB0
- mov r3, r9
- ldrb r1, [r3]
- lsls r1, 1
- adds r1, r0
- ldr r0, _08023948 @ =gCurrentMove
- ldrh r0, [r0]
- strh r0, [r1]
- b _08023966
- .align 2, 0
-_08023914: .4byte gUnknown_2023DD0
-_08023918: .4byte sBattler_AI
-_0802391C: .4byte gActiveBattler
-_08023920: .4byte gBattlerTarget
-_08023924: .4byte 0xffffefff
-_08023928: .4byte gUnknown_2023D90
-_0802392C: .4byte gUnknown_2023D4C
-_08023930: .4byte gAbsentBattlerFlags
-_08023934: .4byte gBitTable
-_08023938: .4byte gBattleStruct
-_0802393C: .4byte gBattleMoves
-_08023940: .4byte gLastUsedMove
-_08023944: .4byte gUnknown_2023DB0
-_08023948: .4byte gCurrentMove
-_0802394C:
- ldr r1, _080239B4 @ =gLastUsedMove
- lsls r0, r4, 1
- adds r0, r1
- ldr r1, _080239B8 @ =0x0000ffff
- strh r1, [r0]
- ldr r1, _080239BC @ =gUnknown_2023DB0
- mov r4, r9
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0]
-_08023966:
- ldr r2, _080239C0 @ =gBattlerTarget
- ldrb r3, [r2]
- lsls r0, r3, 2
- adds r0, r6
- ldr r0, [r0]
- lsls r0, 28
- ldr r1, [r5]
- ands r1, r0
- cmp r1, 0
- bne _08023984
- ldr r0, _080239C4 @ =gUnknown_2023DC0
- adds r0, r3, r0
- mov r3, r9
- ldrb r1, [r3]
- strb r1, [r0]
-_08023984:
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _08023A20
- ldr r0, _080239C8 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _08023A20
- ldr r0, _080239CC @ =gUnknown_2023D4C
- ldrh r3, [r0]
- ldr r0, _080239B8 @ =0x0000ffff
- cmp r3, r0
- bne _080239D4
- ldr r1, _080239D0 @ =gUnknown_2023DA0
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- strh r3, [r0]
- b _08023A2C
- .align 2, 0
-_080239B4: .4byte gLastUsedMove
-_080239B8: .4byte 0x0000ffff
-_080239BC: .4byte gUnknown_2023DB0
-_080239C0: .4byte gBattlerTarget
-_080239C4: .4byte gUnknown_2023DC0
-_080239C8: .4byte gMoveResultFlags
-_080239CC: .4byte gUnknown_2023D4C
-_080239D0: .4byte gUnknown_2023DA0
-_080239D4:
- ldr r0, _080239F8 @ =gUnknown_2023DA0
- ldrb r1, [r2]
- lsls r1, 1
- adds r1, r0
- ldr r4, _080239FC @ =gCurrentMove
- ldrh r0, [r4]
- strh r0, [r1]
- ldr r0, [r7]
- ldrb r3, [r0, 0x13]
- cmp r3, 0
- beq _08023A04
- ldr r0, _08023A00 @ =gUnknown_2023DA8
- ldrb r1, [r2]
- lsls r1, 1
- adds r1, r0
- movs r0, 0x3F
- ands r0, r3
- b _08023A2A
- .align 2, 0
-_080239F8: .4byte gUnknown_2023DA0
-_080239FC: .4byte gCurrentMove
-_08023A00: .4byte gUnknown_2023DA8
-_08023A04:
- ldr r0, _08023A1C @ =gUnknown_2023DA8
- ldrb r2, [r2]
- lsls r2, 1
- adds r2, r0
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x2]
- strh r0, [r2]
- b _08023A2C
- .align 2, 0
-_08023A1C: .4byte gUnknown_2023DA8
-_08023A20:
- ldr r0, _08023A38 @ =gUnknown_2023DA0
- ldrb r1, [r2]
- lsls r1, 1
- adds r1, r0
- ldr r0, _08023A3C @ =0x0000ffff
-_08023A2A:
- strh r0, [r1]
-_08023A2C:
- mov r4, r12
- ldrb r0, [r4, 0x14]
- adds r0, 0x1
- strb r0, [r4, 0x14]
- b _08023BB4
- .align 2, 0
-_08023A38: .4byte gUnknown_2023DA0
-_08023A3C: .4byte 0x0000ffff
-_08023A40:
- ldr r0, _08023B04 @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldr r7, _08023B08 @ =gBitTable
- ldr r2, _08023B0C @ =sBattler_AI
- ldrb r3, [r2]
- lsls r0, r3, 2
- adds r0, r7
- ldr r4, [r0]
- ands r1, r4
- mov r9, r2
- cmp r1, 0
- bne _08023AFA
- ldr r6, _08023B10 @ =gBattleStruct
- ldr r5, [r6]
- adds r0, r5, 0
- adds r0, 0x91
- ldrb r0, [r0]
- ands r0, r4
- cmp r0, 0
- bne _08023AFA
- ldr r1, _08023B14 @ =gBattleMoves
- ldr r2, [sp, 0x18]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08023AFA
- ldr r0, _08023B18 @ =gUnknown_2023DD0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 18
- ands r0, r1
- cmp r0, 0
- beq _08023AFA
- ldr r4, _08023B1C @ =gBattlerTarget
- ldrb r0, [r4]
- cmp r3, r0
- beq _08023AFA
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r7
- ldr r0, [r0]
- lsls r0, 28
- ands r1, r0
- cmp r1, 0
- bne _08023AFA
- ldr r0, _08023B20 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _08023AFA
- lsls r1, r2, 1
- adds r1, r5
- adds r1, 0x98
- ldr r3, _08023B24 @ =gUnknown_2023D4C
- ldrh r0, [r3]
- strb r0, [r1]
- ldrb r1, [r4]
- ldr r0, [r6]
- lsls r1, 1
- adds r1, r0
- adds r1, 0x99
- ldrh r0, [r3]
- lsrs r0, 8
- strb r0, [r1]
- ldrb r0, [r4]
- mov r2, r9
- ldrb r1, [r2]
- ldr r2, [r6]
- lsls r0, 3
- lsls r1, 1
- adds r0, r1
- adds r0, r2
- adds r0, 0xE0
- ldrh r1, [r3]
- strb r1, [r0]
- ldrb r1, [r4]
- mov r4, r9
- ldrb r0, [r4]
- ldr r2, [r6]
- lsls r1, 3
- lsls r0, 1
- adds r1, r0
- adds r1, r2
- adds r1, 0xE1
- ldrh r0, [r3]
- lsrs r0, 8
- strb r0, [r1]
-_08023AFA:
- mov r5, r12
- ldrb r0, [r5, 0x14]
- adds r0, 0x1
- strb r0, [r5, 0x14]
- b _08023BB4
- .align 2, 0
-_08023B04: .4byte gAbsentBattlerFlags
-_08023B08: .4byte gBitTable
-_08023B0C: .4byte sBattler_AI
-_08023B10: .4byte gBattleStruct
-_08023B14: .4byte gBattleMoves
-_08023B18: .4byte gUnknown_2023DD0
-_08023B1C: .4byte gBattlerTarget
-_08023B20: .4byte gMoveResultFlags
-_08023B24: .4byte gUnknown_2023D4C
-_08023B28:
- ldr r5, _08023C10 @ =gUnknown_2023DD0
- ldr r2, [r5]
- movs r0, 0x80
- lsls r0, 12
- ands r0, r2
- cmp r0, 0
- bne _08023BAC
- ldr r0, _08023C14 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023BAC
- ldr r1, _08023C18 @ =gUnknown_2023E8C
- ldr r0, _08023C1C @ =sBattler_AI
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- cmp r0, 0
- blt _08023BAC
- ldr r0, _08023C20 @ =gBattleMoves
- mov r9, r0
- ldr r1, _08023C24 @ =gCurrentMove
- mov r8, r1
- ldrh r0, [r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- add r1, r9
- ldrb r0, [r1, 0x6]
- cmp r0, 0x8
- bne _08023BAC
- movs r6, 0x80
- lsls r6, 2
- adds r4, r6, 0
- ands r4, r2
- cmp r4, 0
- bne _08023BAC
- ldr r7, _08023C28 @ =gBattlerTarget
- ldrb r0, [r7]
- bl GetBattlerPosition
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08023C2C @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08023BA2
- bl _080232F0
-_08023BA2:
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- ldr r2, _08023C30 @ =gBattleScripting
- mov r12, r2
-_08023BAC:
- mov r3, r12
- ldrb r0, [r3, 0x14]
- adds r0, 0x1
- strb r0, [r3, 0x14]
-_08023BB4:
- ldr r4, [sp, 0x10]
- cmp r4, 0x1
- bne _08023BC6
- mov r5, r10
- cmp r5, 0
- bne _08023BC6
- movs r0, 0x11
- mov r1, r12
- strb r0, [r1, 0x14]
-_08023BC6:
- ldr r2, [sp, 0x10]
- cmp r2, 0x2
- bne _08023BDC
- ldr r4, [sp, 0x14]
- mov r3, r12
- ldrb r3, [r3, 0x14]
- cmp r4, r3
- bne _08023BDC
- movs r0, 0x11
- mov r4, r12
- strb r0, [r4, 0x14]
-_08023BDC:
- mov r5, r12
- ldrb r0, [r5, 0x14]
- cmp r0, 0x11
- beq _08023BE8
- bl _08023358
-_08023BE8:
- mov r1, r12
- ldrb r0, [r1, 0x14]
- cmp r0, 0x11
- bne _08023BFE
- mov r2, r10
- cmp r2, 0
- bne _08023BFE
- ldr r1, _08023C34 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x3
-_08023BFC:
- str r0, [r1]
-_08023BFE:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023C10: .4byte gUnknown_2023DD0
-_08023C14: .4byte gBattleTypeFlags
-_08023C18: .4byte gUnknown_2023E8C
-_08023C1C: .4byte sBattler_AI
-_08023C20: .4byte gBattleMoves
-_08023C24: .4byte gCurrentMove
-_08023C28: .4byte gBattlerTarget
-_08023C2C: .4byte gBattleMons
-_08023C30: .4byte gBattleScripting
-_08023C34: .4byte gUnknown_2023D74
- thumb_func_end atk49_moveend
-
- thumb_func_start atk4A_typecalc2
-atk4A_typecalc2: @ 8023C38
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- movs r5, 0
- ldr r2, _08023C9C @ =gBattleMoves
- ldr r0, _08023CA0 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- mov r8, r0
- ldr r2, _08023CA4 @ =gBattleMons
- ldr r3, _08023CA8 @ =gBattlerTarget
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- mov r12, r2
- adds r7, r3, 0
- cmp r0, 0x1A
- bne _08023CCC
- mov r1, r8
- cmp r1, 0x4
- bne _08023CCC
- ldr r3, _08023CAC @ =gLastUsedAbility
- strb r0, [r3]
- ldr r2, _08023CB0 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x9
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08023CB4 @ =gUnknown_2023DA0
- ldrb r0, [r7]
- lsls r0, 1
- adds r0, r1
- strh r4, [r0]
- ldr r0, _08023CB8 @ =gUnknown_2023E82
- mov r2, r8
- strb r2, [r0, 0x6]
- ldrb r0, [r7]
- ldrb r1, [r3]
- bl sub_80C71D0
- b _08023DAE
- .align 2, 0
-_08023C9C: .4byte gBattleMoves
-_08023CA0: .4byte gCurrentMove
-_08023CA4: .4byte gBattleMons
-_08023CA8: .4byte gBattlerTarget
-_08023CAC: .4byte gLastUsedAbility
-_08023CB0: .4byte gMoveResultFlags
-_08023CB4: .4byte gUnknown_2023DA0
-_08023CB8: .4byte gUnknown_2023E82
-_08023CBC:
- ldr r0, _08023CC8 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
- b _08023DAE
- .align 2, 0
-_08023CC8: .4byte gMoveResultFlags
-_08023CCC:
- ldr r1, _08023CD8 @ =gUnknown_824F050
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r6, r1, 0
- b _08023D8E
- .align 2, 0
-_08023CD8: .4byte gUnknown_824F050
-_08023CDC:
- adds r0, r5, r6
- ldrb r0, [r0]
- cmp r0, r8
- bne _08023D88
- adds r2, r5, 0x1
- adds r3, r2, r6
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r0, 0x21
- ldrb r1, [r3]
- adds r3, r2, 0
- ldrb r0, [r0]
- cmp r1, r0
- bne _08023D1A
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r1, [r0]
- cmp r1, 0
- beq _08023CBC
- cmp r1, 0x5
- bne _08023D0E
- movs r0, 0x4
- orrs r4, r0
-_08023D0E:
- cmp r1, 0x14
- bne _08023D1A
- movs r0, 0x2
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08023D1A:
- adds r2, r3, r6
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _08023D88
- adds r0, 0x21
- ldrb r1, [r0]
- cmp r1, r2
- beq _08023D42
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0
- beq _08023CBC
-_08023D42:
- cmp r1, r2
- beq _08023D58
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _08023D58
- movs r0, 0x4
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08023D58:
- adds r2, r3, r6
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _08023D88
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _08023D88
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _08023D88
- movs r0, 0x2
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08023D88:
- adds r5, 0x3
- adds r0, r5, r6
- ldrb r0, [r0]
-_08023D8E:
- cmp r0, 0xFF
- beq _08023DAE
- cmp r0, 0xFE
- bne _08023CDC
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- mov r1, r12
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _08023D88
-_08023DAE:
- ldr r2, _08023E5C @ =gBattleMons
- ldr r0, _08023E60 @ =gBattlerTarget
- mov r8, r0
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r6, [r0]
- cmp r6, 0x19
- bne _08023E2A
- movs r5, 0x29
- ands r5, r4
- cmp r5, 0
- bne _08023E2A
- ldr r0, _08023E64 @ =sBattler_AI
- ldrb r0, [r0]
- ldr r7, _08023E68 @ =gCurrentMove
- ldrh r1, [r7]
- bl AttacksThisTurn
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bne _08023E2A
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08023DF0
- movs r0, 0x6
- ands r4, r0
- cmp r4, 0x6
- bne _08023E2A
-_08023DF0:
- ldr r2, _08023E6C @ =gBattleMoves
- ldrh r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _08023E2A
- ldr r3, _08023E70 @ =gLastUsedAbility
- strb r6, [r3]
- ldr r2, _08023E74 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08023E78 @ =gUnknown_2023DA0
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- strh r5, [r0]
- ldr r1, _08023E7C @ =gUnknown_2023E82
- movs r0, 0x3
- strb r0, [r1, 0x6]
- ldrb r0, [r2]
- ldrb r1, [r3]
- bl sub_80C71D0
-_08023E2A:
- ldr r0, _08023E74 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08023E48
- ldr r2, _08023E80 @ =gUnknown_2023E8C
- ldr r0, _08023E64 @ =sBattler_AI
- ldrb r1, [r0]
- lsls r1, 4
- adds r1, r2
- ldrb r0, [r1, 0x1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1, 0x1]
-_08023E48:
- ldr r1, _08023E84 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023E5C: .4byte gBattleMons
-_08023E60: .4byte gBattlerTarget
-_08023E64: .4byte sBattler_AI
-_08023E68: .4byte gCurrentMove
-_08023E6C: .4byte gBattleMoves
-_08023E70: .4byte gLastUsedAbility
-_08023E74: .4byte gMoveResultFlags
-_08023E78: .4byte gUnknown_2023DA0
-_08023E7C: .4byte gUnknown_2023E82
-_08023E80: .4byte gUnknown_2023E8C
-_08023E84: .4byte gUnknown_2023D74
- thumb_func_end atk4A_typecalc2
-
- thumb_func_start atk4B_returnatktoball
-atk4B_returnatktoball: @ 8023E88
- push {r4,lr}
- ldr r4, _08023EC4 @ =gActiveBattler
- ldr r0, _08023EC8 @ =sBattler_AI
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r2, _08023ECC @ =gUnknown_2023DD0
- ldr r1, _08023ED0 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _08023EB6
- movs r0, 0
- movs r1, 0
- bl EmitReturnMonToBall
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_08023EB6:
- ldr r1, _08023ED4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08023EC4: .4byte gActiveBattler
-_08023EC8: .4byte sBattler_AI
-_08023ECC: .4byte gUnknown_2023DD0
-_08023ED0: .4byte gBitTable
-_08023ED4: .4byte gUnknown_2023D74
- thumb_func_end atk4B_returnatktoball
-
- thumb_func_start atk4C_getswitchedmondata
-atk4C_getswitchedmondata: @ 8023ED8
- push {r4,r5,lr}
- ldr r0, _08023F30 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- bne _08023F28
- ldr r5, _08023F34 @ =gUnknown_2023D74
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r4, _08023F38 @ =gActiveBattler
- strb r0, [r4]
- ldr r3, _08023F3C @ =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r2, r0, 1
- adds r2, r3
- ldr r1, _08023F40 @ =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- adds r0, 0x5C
- ldrb r0, [r0]
- strh r0, [r2]
- ldr r1, _08023F44 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0]
- movs r0, 0
- movs r1, 0
- bl BtlController_EmitGetMonData
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_08023F28:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08023F30: .4byte gUnknown_2023BC8
-_08023F34: .4byte gUnknown_2023D74
-_08023F38: .4byte gActiveBattler
-_08023F3C: .4byte gBattlerPartyIndexes
-_08023F40: .4byte gBattleStruct
-_08023F44: .4byte gBitTable
- thumb_func_end atk4C_getswitchedmondata
-
- thumb_func_start sub_8023F48
-sub_8023F48: @ 8023F48
- push {r4-r7,lr}
- sub sp, 0x58
- ldr r0, _080240A0 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- beq _08023F56
- b _08024098
-_08023F56:
- ldr r0, _080240A4 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r4, _080240A8 @ =gActiveBattler
- strb r0, [r4]
- ldr r6, _080240AC @ =gBattleMons
- ldrb r0, [r4]
- movs r5, 0x58
- adds r1, r0, 0
- muls r1, r5
- adds r1, r6
- mov r0, sp
- movs r2, 0x58
- bl memcpy
- ldrb r0, [r4]
- muls r0, r5
- adds r3, r0, r6
- movs r2, 0
- ldr r5, _080240B0 @ =gUnknown_20233C4
- adds r7, r4, 0
-_08023F84:
- adds r0, r3, r2
- ldrb r1, [r4]
- lsls r1, 9
- adds r1, 0x4
- adds r1, r2, r1
- adds r1, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x57
- bls _08023F84
- ldr r4, _080240AC @ =gBattleMons
- ldrb r0, [r7]
- movs r6, 0x58
- adds r2, r0, 0
- muls r2, r6
- adds r2, r4
- ldr r3, _080240B4 @ =gBaseStats
- ldrh r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x6]
- adds r2, 0x21
- strb r0, [r2]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r4
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x7]
- adds r1, 0x22
- strb r0, [r1]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r4
- ldrh r0, [r1]
- ldrb r1, [r1, 0x17]
- lsrs r1, 7
- bl GetAbilityBySpecies
- ldrb r1, [r7]
- muls r1, r6
- adds r1, r4
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r7]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080240B8 @ =gUnknown_2023F20
- adds r0, 0x29
- adds r0, r2, r0
- ldrb r1, [r0]
- ldr r3, _080240BC @ =gBitTable
- ldr r2, _080240C0 @ =gBattlerPartyIndexes
- ldrb r5, [r7]
- lsls r0, r5, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ands r1, r0
- mov r12, r4
- cmp r1, 0
- beq _08024022
- adds r0, r5, 0
- muls r0, r6
- add r0, r12
- movs r1, 0
- strh r1, [r0, 0x2E]
-_08024022:
- ldr r2, _080240C4 @ =gBattleMoves
- ldr r0, _080240C8 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7F
- bne _08024068
- movs r2, 0
- adds r4, r7, 0
- movs r6, 0x58
- mov r5, r12
- adds r5, 0x18
- add r3, sp, 0x18
-_08024042:
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r2, r1
- adds r1, r5
- adds r0, r3, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x7
- ble _08024042
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- mov r1, r12
- adds r1, 0x50
- adds r0, r1
- ldr r1, [sp, 0x50]
- str r1, [r0]
-_08024068:
- bl sub_8012760
- ldr r0, _080240CC @ =gBattleScripting
- ldr r3, _080240A8 @ =gActiveBattler
- ldrb r2, [r3]
- strb r2, [r0, 0x17]
- ldr r1, _080240D0 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- ldr r2, _080240C0 @ =gBattlerPartyIndexes
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _080240A4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08024098:
- add sp, 0x58
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080240A0: .4byte gUnknown_2023BC8
-_080240A4: .4byte gUnknown_2023D74
-_080240A8: .4byte gActiveBattler
-_080240AC: .4byte gBattleMons
-_080240B0: .4byte gUnknown_20233C4
-_080240B4: .4byte gBaseStats
-_080240B8: .4byte gUnknown_2023F20
-_080240BC: .4byte gBitTable
-_080240C0: .4byte gBattlerPartyIndexes
-_080240C4: .4byte gBattleMoves
-_080240C8: .4byte gCurrentMove
-_080240CC: .4byte gBattleScripting
-_080240D0: .4byte gBattleTextBuff1
- thumb_func_end sub_8023F48
-
- thumb_func_start sub_80240D4
-sub_80240D4: @ 80240D4
- push {r4-r6,lr}
- ldr r0, _08024168 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- bne _08024160
- ldr r0, _0802416C @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r6, _08024170 @ =gActiveBattler
- strb r0, [r6]
- ldrb r0, [r6]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0802412A
- ldr r0, _08024174 @ =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, _08024178 @ =0x0001aa02
- ands r0, r1
- cmp r0, 0
- bne _0802412A
- ldr r4, _0802417C @ =gBattleMons
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r0, r4
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r6]
- muls r1, r5
- adds r4, 0x48
- adds r1, r4
- ldr r2, [r1]
- movs r1, 0x2
- bl HandleSetPokedexFlag
-_0802412A:
- ldr r2, _08024180 @ =gAbsentBattlerFlags
- ldr r1, _08024184 @ =gBitTable
- ldr r5, _08024170 @ =gActiveBattler
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldrb r0, [r2]
- bics r0, r1
- strb r0, [r2]
- ldr r1, _08024188 @ =gBattlerPartyIndexes
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrb r1, [r0]
- ldr r4, _0802416C @ =gUnknown_2023D74
- ldr r0, [r4]
- ldrb r2, [r0, 0x2]
- movs r0, 0
- bl EmitSwitchInAnim
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
-_08024160:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08024168: .4byte gUnknown_2023BC8
-_0802416C: .4byte gUnknown_2023D74
-_08024170: .4byte gActiveBattler
-_08024174: .4byte gBattleTypeFlags
-_08024178: .4byte 0x0001aa02
-_0802417C: .4byte gBattleMons
-_08024180: .4byte gAbsentBattlerFlags
-_08024184: .4byte gBitTable
-_08024188: .4byte gBattlerPartyIndexes
- thumb_func_end sub_80240D4
-
- thumb_func_start sub_802418C
-sub_802418C: @ 802418C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _080241F0 @ =gUnknown_2023D74
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- movs r0, 0x7F
- ands r0, r1
- bl sub_8016E24
- ldr r3, _080241F4 @ =gActiveBattler
- strb r0, [r3]
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08024204
- ldr r1, _080241F8 @ =gBattleMons
- ldrb r3, [r3]
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080241FC @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- bne _080241D8
- ldr r1, _08024200 @ =gStatuses3
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- beq _08024204
-_080241D8:
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08024388
- .align 2, 0
-_080241F0: .4byte gUnknown_2023D74
-_080241F4: .4byte gActiveBattler
-_080241F8: .4byte gBattleMons
-_080241FC: .4byte 0x0400e000
-_08024200: .4byte gStatuses3
-_08024204:
- ldr r5, _08024290 @ =gBattleTypeFlags
- ldr r0, [r5]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080242A4
- ldr r4, _08024294 @ =gActiveBattler
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08024298 @ =gPlayerParty
- mov r8, r1
- cmp r0, 0x1
- bne _08024228
- ldr r0, _0802429C @ =gEnemyParty
- mov r8, r0
-_08024228:
- movs r5, 0
- ldrb r0, [r4]
- bl GetBankMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- bl GetLinkTrainerFlankId
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _08024242
- movs r5, 0x3
-_08024242:
- adds r6, r5, 0x3
- cmp r5, r6
- bge _0802428A
- ldr r7, _080242A0 @ =gBattlerPartyIndexes
-_0802424A:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08024284
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08024284
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08024284
- ldr r0, _08024294 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- cmp r0, r5
- bne _0802428A
-_08024284:
- adds r5, 0x1
- cmp r5, r6
- blt _0802424A
-_0802428A:
- cmp r5, r6
- beq _08024358
- b _08024380
- .align 2, 0
-_08024290: .4byte gBattleTypeFlags
-_08024294: .4byte gActiveBattler
-_08024298: .4byte gPlayerParty
-_0802429C: .4byte gEnemyParty
-_080242A0: .4byte gBattlerPartyIndexes
-_080242A4:
- ldr r0, _080242D4 @ =gActiveBattler
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _080242E4
- movs r0, 0x1
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, [r5]
- ands r0, r4
- cmp r0, 0
- beq _080242D8
- movs r0, 0x3
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r6, r0, 24
- b _080242DA
- .align 2, 0
-_080242D4: .4byte gActiveBattler
-_080242D8:
- adds r6, r7, 0
-_080242DA:
- ldr r0, _080242E0 @ =gEnemyParty
- mov r8, r0
- b _0802430A
- .align 2, 0
-_080242E0: .4byte gEnemyParty
-_080242E4:
- movs r0, 0
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, [r5]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08024304
- movs r0, 0x2
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r6, r0, 24
- b _08024306
-_08024304:
- adds r6, r7, 0
-_08024306:
- ldr r1, _08024374 @ =gPlayerParty
- mov r8, r1
-_0802430A:
- movs r5, 0
-_0802430C:
- 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 _0802434E
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802434E
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0802434E
- ldr r1, _08024378 @ =gBattlerPartyIndexes
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- beq _0802434E
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- bne _08024354
-_0802434E:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0802430C
-_08024354:
- cmp r5, 0x6
- bne _08024380
-_08024358:
- ldr r3, _0802437C @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08024388
- .align 2, 0
-_08024374: .4byte gPlayerParty
-_08024378: .4byte gBattlerPartyIndexes
-_0802437C: .4byte gUnknown_2023D74
-_08024380:
- ldr r1, _08024394 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
-_08024388:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024394: .4byte gUnknown_2023D74
- thumb_func_end sub_802418C
-
- thumb_func_start sub_8024398
-sub_8024398: @ 8024398
- push {r4,r5,lr}
- sub sp, 0x4
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r4, _080243E0 @ =gActiveBattler
- ldrb r0, [r4]
- ldr r5, _080243E4 @ =gBattleStruct
- ldr r1, [r5]
- adds r1, r0, r1
- adds r1, 0x58
- ldr r3, _080243E8 @ =gBattlerPartyIndexes
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- adds r1, 0x60
- ldr r0, [r5]
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl EmitChoosePokemon
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080243E0: .4byte gActiveBattler
-_080243E4: .4byte gBattleStruct
-_080243E8: .4byte gBattlerPartyIndexes
- thumb_func_end sub_8024398
-
- thumb_func_start sub_80243EC
-sub_80243EC: @ 80243EC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r7, 0
- movs r0, 0
- mov r9, r0
- ldr r6, _08024498 @ =gUnknown_2023D74
- ldr r2, [r6]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- mov r8, r1
- ldrb r1, [r2, 0x1]
- adds r0, r1, 0
- mov r12, r6
- cmp r0, 0x5
- beq _08024422
- b _080248B8
-_08024422:
- ldr r0, _0802449C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x41
- ands r1, r0
- cmp r1, 0x1
- beq _08024510
- ldr r1, _080244A0 @ =gActiveBattler
- strb r7, [r1]
- ldr r0, _080244A4 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r7, r0
- bcc _0802443C
- b _080248A6
-_0802443C:
- ldr r7, _080244A8 @ =gUnknown_2023DD0
- ldr r6, _080244AC @ =gBitTable
- adds r4, r1, 0
- ldr r2, _080244B0 @ =gAbsentBattlerFlags
- mov r8, r2
-_08024446:
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r7]
- ands r0, r1
- cmp r0, 0
- beq _080244E8
- adds r0, r2, 0
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8019C10
- lsls r0, 24
- cmp r0, 0
- beq _080244B4
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- mov r2, r8
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r7]
- bics r0, r1
- str r0, [r7]
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _080244F6
- .align 2, 0
-_08024498: .4byte gUnknown_2023D74
-_0802449C: .4byte gBattleTypeFlags
-_080244A0: .4byte gActiveBattler
-_080244A4: .4byte gBattlersCount
-_080244A8: .4byte gUnknown_2023DD0
-_080244AC: .4byte gBitTable
-_080244B0: .4byte gAbsentBattlerFlags
-_080244B4:
- ldr r5, _080244E4 @ =gUnknown_2023ECC
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _080244F6
- movs r0, 0x6
- bl sub_8024398
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _080244F6
- .align 2, 0
-_080244E4: .4byte gUnknown_2023ECC
-_080244E8:
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_080244F6:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _0802450C @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08024446
- b _080248A6
- .align 2, 0
-_0802450C: .4byte gBattlersCount
-_08024510:
- ands r0, r1
- cmp r0, 0
- bne _08024518
- b _080248A6
-_08024518:
- ldr r0, _08024570 @ =gUnknown_2023DD0
- mov r8, r0
- ldr r0, [r0]
- lsrs r5, r0, 28
- ldr r6, _08024574 @ =gBitTable
- ldr r0, [r6]
- ands r0, r5
- cmp r0, 0
- beq _080245CE
- ldr r4, _08024578 @ =gActiveBattler
- strb r7, [r4]
- movs r0, 0
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8019C10
- lsls r0, 24
- cmp r0, 0
- beq _08024580
- ldr r2, _0802457C @ =gAbsentBattlerFlags
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- mov r2, r8
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl EmitCmd42
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _080245CE
- .align 2, 0
-_08024570: .4byte gUnknown_2023DD0
-_08024574: .4byte gBitTable
-_08024578: .4byte gActiveBattler
-_0802457C: .4byte gAbsentBattlerFlags
-_08024580:
- ldr r6, _080245B4 @ =gUnknown_2023ECC
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _080245BC
- ldr r0, _080245B8 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x5E
- ldrb r0, [r0]
- bl sub_8024398
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _080245CE
- .align 2, 0
-_080245B4: .4byte gUnknown_2023ECC
-_080245B8: .4byte gBattleStruct
-_080245BC:
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- movs r0, 0x1
- mov r9, r0
-_080245CE:
- ldr r6, _08024628 @ =gBitTable
- ldr r0, [r6, 0x8]
- ands r0, r5
- cmp r0, 0
- beq _0802468C
- ldr r0, [r6]
- ands r0, r5
- cmp r0, 0
- bne _0802468C
- ldr r4, _0802462C @ =gActiveBattler
- movs r0, 0x2
- strb r0, [r4]
- movs r0, 0x2
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8019C10
- lsls r0, 24
- cmp r0, 0
- beq _08024638
- ldr r2, _08024630 @ =gAbsentBattlerFlags
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _08024634 @ =gUnknown_2023DD0
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl EmitCmd42
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _0802468C
- .align 2, 0
-_08024628: .4byte gBitTable
-_0802462C: .4byte gActiveBattler
-_08024630: .4byte gAbsentBattlerFlags
-_08024634: .4byte gUnknown_2023DD0
-_08024638:
- ldr r6, _0802466C @ =gUnknown_2023ECC
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08024674
- ldr r0, _08024670 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x5C
- ldrb r0, [r0]
- bl sub_8024398
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _0802468C
- .align 2, 0
-_0802466C: .4byte gUnknown_2023ECC
-_08024670: .4byte gBattleStruct
-_08024674:
- movs r0, 0x1
- mov r1, r9
- ands r0, r1
- cmp r0, 0
- bne _0802468C
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_0802468C:
- ldr r6, _080246DC @ =gBitTable
- ldr r0, [r6, 0x4]
- ands r0, r5
- cmp r0, 0
- beq _0802473E
- ldr r4, _080246E0 @ =gActiveBattler
- movs r0, 0x1
- strb r0, [r4]
- movs r0, 0x1
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8019C10
- lsls r0, 24
- cmp r0, 0
- beq _080246EC
- ldr r2, _080246E4 @ =gAbsentBattlerFlags
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _080246E8 @ =gUnknown_2023DD0
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl EmitCmd42
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _0802473E
- .align 2, 0
-_080246DC: .4byte gBitTable
-_080246E0: .4byte gActiveBattler
-_080246E4: .4byte gAbsentBattlerFlags
-_080246E8: .4byte gUnknown_2023DD0
-_080246EC:
- ldr r6, _08024720 @ =gUnknown_2023ECC
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08024728
- ldr r0, _08024724 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x5F
- ldrb r0, [r0]
- bl sub_8024398
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _0802473E
- .align 2, 0
-_08024720: .4byte gUnknown_2023ECC
-_08024724: .4byte gBattleStruct
-_08024728:
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- movs r0, 0x2
- mov r2, r9
- orrs r2, r0
- mov r9, r2
-_0802473E:
- ldr r6, _08024798 @ =gBitTable
- ldr r0, [r6, 0xC]
- ands r0, r5
- cmp r0, 0
- beq _080247FC
- ldr r0, [r6, 0x4]
- ands r0, r5
- cmp r0, 0
- bne _080247FC
- ldr r4, _0802479C @ =gActiveBattler
- movs r0, 0x3
- strb r0, [r4]
- movs r0, 0x3
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8019C10
- lsls r0, 24
- cmp r0, 0
- beq _080247A8
- ldr r2, _080247A0 @ =gAbsentBattlerFlags
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _080247A4 @ =gUnknown_2023DD0
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl EmitCmd42
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _080247FC
- .align 2, 0
-_08024798: .4byte gBitTable
-_0802479C: .4byte gActiveBattler
-_080247A0: .4byte gAbsentBattlerFlags
-_080247A4: .4byte gUnknown_2023DD0
-_080247A8:
- ldr r6, _080247DC @ =gUnknown_2023ECC
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _080247E4
- ldr r0, _080247E0 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x5D
- ldrb r0, [r0]
- bl sub_8024398
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _080247FC
- .align 2, 0
-_080247DC: .4byte gUnknown_2023ECC
-_080247E0: .4byte gBattleStruct
-_080247E4:
- movs r0, 0x2
- mov r1, r9
- ands r1, r0
- cmp r1, 0
- bne _080247FC
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_080247FC:
- ldr r1, _0802482C @ =gUnknown_2023ECC
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08024850
- adds r0, r1, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- blt _08024850
- cmp r5, 0
- beq _08024850
- ldr r0, _08024830 @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldr r0, _08024834 @ =gBitTable
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0802483C
- ldr r1, _08024838 @ =gActiveBattler
- movs r0, 0x2
- strb r0, [r1]
- b _08024840
- .align 2, 0
-_0802482C: .4byte gUnknown_2023ECC
-_08024830: .4byte gAbsentBattlerFlags
-_08024834: .4byte gBitTable
-_08024838: .4byte gActiveBattler
-_0802483C:
- ldr r0, _08024880 @ =gActiveBattler
- strb r1, [r0]
-_08024840:
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldr r0, _08024880 @ =gActiveBattler
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
-_08024850:
- ldr r1, _08024884 @ =gUnknown_2023ECC
- ldrb r0, [r1, 0x14]
- lsls r0, 25
- cmp r0, 0
- blt _080248A6
- adds r0, r1, 0
- adds r0, 0x3C
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- blt _080248A6
- cmp r5, 0
- beq _080248A6
- ldr r0, _08024888 @ =gAbsentBattlerFlags
- ldrb r0, [r0]
- ldr r1, _0802488C @ =gBitTable
- ldr r1, [r1, 0x4]
- ands r0, r1
- cmp r0, 0
- beq _08024890
- ldr r1, _08024880 @ =gActiveBattler
- movs r0, 0x3
- b _08024894
- .align 2, 0
-_08024880: .4byte gActiveBattler
-_08024884: .4byte gUnknown_2023ECC
-_08024888: .4byte gAbsentBattlerFlags
-_0802488C: .4byte gBitTable
-_08024890:
- ldr r1, _080248B0 @ =gActiveBattler
- movs r0, 0x1
-_08024894:
- strb r0, [r1]
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldr r0, _080248B0 @ =gActiveBattler
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
-_080248A6:
- ldr r1, _080248B4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
- b _08024C2E
- .align 2, 0
-_080248B0: .4byte gActiveBattler
-_080248B4: .4byte gUnknown_2023D74
-_080248B8:
- cmp r0, 0x6
- beq _080248BE
- b _08024AAC
-_080248BE:
- ldr r0, _08024934 @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080248CC
- b _08024A48
-_080248CC:
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- bne _080248D6
- b _08024A48
-_080248D6:
- ldr r7, _08024938 @ =gUnknown_2023DD0
- ldr r0, [r7]
- lsrs r5, r0, 28
- ldr r4, _0802493C @ =gBitTable
- ldr r0, [r4, 0x8]
- ands r0, r5
- cmp r0, 0
- beq _0802497E
- ldr r0, [r4]
- ands r0, r5
- cmp r0, 0
- beq _0802497E
- ldr r6, _08024940 @ =gActiveBattler
- movs r0, 0x2
- strb r0, [r6]
- ldr r0, _08024944 @ =gUnknown_20233C4
- ldrb r1, [r0, 0x1]
- movs r0, 0x2
- movs r2, 0x6
- bl sub_8019C10
- lsls r0, 24
- cmp r0, 0
- beq _0802494C
- ldr r2, _08024948 @ =gAbsentBattlerFlags
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r4
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r7]
- bics r0, r1
- str r0, [r7]
- movs r0, 0
- bl EmitCmd42
- ldrb r0, [r6]
- bl MarkBufferBankForExecution
- b _0802497E
- .align 2, 0
-_08024934: .4byte gBattleTypeFlags
-_08024938: .4byte gUnknown_2023DD0
-_0802493C: .4byte gBitTable
-_08024940: .4byte gActiveBattler
-_08024944: .4byte gUnknown_20233C4
-_08024948: .4byte gAbsentBattlerFlags
-_0802494C:
- ldr r4, _080249DC @ =gUnknown_2023ECC
- ldrb r0, [r6]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _0802497E
- ldr r0, _080249E0 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x5C
- ldrb r0, [r0]
- bl sub_8024398
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
-_0802497E:
- ldr r4, _080249E4 @ =gBitTable
- ldr r0, [r4, 0xC]
- ands r0, r5
- cmp r0, 0
- beq _08024A2E
- ldr r0, [r4, 0x4]
- ands r5, r0
- cmp r5, 0
- beq _08024A2E
- ldr r5, _080249E8 @ =gActiveBattler
- movs r0, 0x3
- strb r0, [r5]
- ldr r0, _080249EC @ =gUnknown_20233C4
- ldr r2, _080249F0 @ =0x00000201
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x3
- movs r2, 0x6
- bl sub_8019C10
- lsls r0, 24
- cmp r0, 0
- beq _080249FC
- ldr r2, _080249F4 @ =gAbsentBattlerFlags
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _080249F8 @ =gUnknown_2023DD0
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl EmitCmd42
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- b _08024A2E
- .align 2, 0
-_080249DC: .4byte gUnknown_2023ECC
-_080249E0: .4byte gBattleStruct
-_080249E4: .4byte gBitTable
-_080249E8: .4byte gActiveBattler
-_080249EC: .4byte gUnknown_20233C4
-_080249F0: .4byte 0x00000201
-_080249F4: .4byte gAbsentBattlerFlags
-_080249F8: .4byte gUnknown_2023DD0
-_080249FC:
- ldr r4, _08024A3C @ =gUnknown_2023ECC
- ldrb r0, [r5]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08024A2E
- ldr r0, _08024A40 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x5D
- ldrb r0, [r0]
- bl sub_8024398
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
-_08024A2E:
- ldr r1, _08024A44 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
- mov r12, r1
- b _08024A4C
- .align 2, 0
-_08024A3C: .4byte gUnknown_2023ECC
-_08024A40: .4byte gBattleStruct
-_08024A44: .4byte gUnknown_2023D74
-_08024A48:
- adds r0, r2, 0x6
- str r0, [r6]
-_08024A4C:
- ldr r0, _08024A9C @ =gUnknown_2023DD0
- ldr r0, [r0]
- lsrs r5, r0, 28
- ldr r1, _08024AA0 @ =gUnknown_2023D6D
- movs r0, 0
- strb r0, [r1]
- ldr r4, _08024AA4 @ =gBitTable
- ldr r2, [r4]
- ands r2, r5
- ldr r6, _08024AA8 @ =gBattlersCount
- cmp r2, 0
- bne _08024A88
- adds r7, r6, 0
- ldrb r0, [r6]
- cmp r2, r0
- bcs _08024A88
- adds r3, r1, 0
-_08024A6E:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- ldrb r2, [r3]
- lsls r0, r2, 2
- adds r0, r4
- ldr r0, [r0]
- ands r0, r5
- cmp r0, 0
- bne _08024A88
- ldrb r0, [r7]
- cmp r2, r0
- bcc _08024A6E
-_08024A88:
- ldrb r0, [r1]
- ldrb r6, [r6]
- cmp r0, r6
- beq _08024A92
- b _08024C2E
-_08024A92:
- mov r1, r8
- mov r2, r12
- str r1, [r2]
- b _08024C2E
- .align 2, 0
-_08024A9C: .4byte gUnknown_2023DD0
-_08024AA0: .4byte gUnknown_2023D6D
-_08024AA4: .4byte gBitTable
-_08024AA8: .4byte gBattlersCount
-_08024AAC:
- movs r0, 0x80
- ands r0, r1
- movs r5, 0x1
- cmp r0, 0
- beq _08024AB8
- movs r5, 0
-_08024AB8:
- movs r0, 0x7F
- ands r0, r1
- bl sub_8016E24
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08024AE0 @ =gUnknown_2023ECC
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- bge _08024AE4
- ldr r0, [r6]
- adds r0, 0x6
- str r0, [r6]
- b _08024C2E
- .align 2, 0
-_08024AE0: .4byte gUnknown_2023ECC
-_08024AE4:
- adds r0, r7, 0
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8019C10
- lsls r0, 24
- cmp r0, 0
- beq _08024B34
- ldr r2, _08024B24 @ =gActiveBattler
- strb r7, [r2]
- ldr r3, _08024B28 @ =gAbsentBattlerFlags
- ldr r4, _08024B2C @ =gBitTable
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldrb r1, [r3]
- orrs r0, r1
- strb r0, [r3]
- ldr r3, _08024B30 @ =gUnknown_2023DD0
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r4
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r3]
- bics r0, r1
- str r0, [r3]
- mov r0, r8
- str r0, [r6]
- b _08024C2E
- .align 2, 0
-_08024B24: .4byte gActiveBattler
-_08024B28: .4byte gAbsentBattlerFlags
-_08024B2C: .4byte gBitTable
-_08024B30: .4byte gUnknown_2023DD0
-_08024B34:
- ldr r4, _08024BD8 @ =gActiveBattler
- strb r7, [r4]
- ldrb r0, [r4]
- ldr r3, _08024BDC @ =gBattleStruct
- ldr r1, [r3]
- adds r1, r0, r1
- adds r1, 0x58
- ldr r2, _08024BE0 @ =gBattlerPartyIndexes
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- ldr r3, [r3]
- adds r0, r3
- adds r0, 0x5C
- ldrb r2, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- adds r0, 0x60
- adds r3, r0
- str r3, [sp]
- movs r0, 0
- adds r1, r5, 0
- movs r3, 0
- bl EmitChoosePokemon
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r6]
- adds r0, 0x6
- str r0, [r6]
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- cmp r0, 0
- bne _08024B94
- ldr r1, _08024BE4 @ =gBattleResults
- ldrb r0, [r1, 0x2]
- cmp r0, 0xFE
- bhi _08024B94
- adds r0, 0x1
- strb r0, [r1, 0x2]
-_08024B94:
- ldr r0, _08024BE8 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08024BF0
- ldr r1, _08024BD8 @ =gActiveBattler
- movs r0, 0
- strb r0, [r1]
- ldr r0, _08024BEC @ =gBattlersCount
- ldrb r0, [r0]
- cmp r0, 0
- beq _08024C2E
- adds r4, r1, 0
-_08024BB0:
- ldrb r0, [r4]
- cmp r0, r7
- beq _08024BC4
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_08024BC4:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08024BEC @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08024BB0
- b _08024C2E
- .align 2, 0
-_08024BD8: .4byte gActiveBattler
-_08024BDC: .4byte gBattleStruct
-_08024BE0: .4byte gBattlerPartyIndexes
-_08024BE4: .4byte gBattleResults
-_08024BE8: .4byte gBattleTypeFlags
-_08024BEC: .4byte gBattlersCount
-_08024BF0:
- adds r0, r7, 0
- bl GetBattlerPosition
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerAtPosition
- ldr r4, _08024C3C @ =gActiveBattler
- strb r0, [r4]
- ldr r0, _08024C40 @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldr r2, _08024C44 @ =gBitTable
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08024C20
- movs r0, 0x2
- eors r3, r0
- strb r3, [r4]
-_08024C20:
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_08024C2E:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024C3C: .4byte gActiveBattler
-_08024C40: .4byte gAbsentBattlerFlags
-_08024C44: .4byte gBitTable
- thumb_func_end sub_80243EC
-
- thumb_func_start sub_8024C48
-sub_8024C48: @ 8024C48
- push {r4-r7,lr}
- ldr r0, _08024C74 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- beq _08024C54
- b _08024E16
-_08024C54:
- ldr r4, _08024C78 @ =gUnknown_2023D74
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r7, _08024C7C @ =gActiveBattler
- strb r0, [r7]
- ldr r0, [r4]
- ldrb r0, [r0, 0x2]
- cmp r0, 0x1
- beq _08024CC4
- cmp r0, 0x1
- bgt _08024C80
- cmp r0, 0
- beq _08024C86
- b _08024E0E
- .align 2, 0
-_08024C74: .4byte gUnknown_2023BC8
-_08024C78: .4byte gUnknown_2023D74
-_08024C7C: .4byte gActiveBattler
-_08024C80:
- cmp r0, 0x2
- beq _08024CE0
- b _08024E0E
-_08024C86:
- movs r3, 0
- ldr r0, _08024CB8 @ =gBattlersCount
- ldrb r1, [r0]
- cmp r3, r1
- blt _08024C92
- b _08024E0E
-_08024C92:
- ldr r6, _08024CBC @ =gBattleStruct
- ldr r2, _08024CC0 @ =gUnknown_20233C4
- movs r5, 0x80
- lsls r5, 2
- adds r4, r0, 0
-_08024C9C:
- ldrb r0, [r2]
- cmp r0, 0x22
- bne _08024CAC
- ldr r0, [r6]
- adds r0, r3, r0
- adds r0, 0x5C
- ldrb r1, [r2, 0x1]
- strb r1, [r0]
-_08024CAC:
- adds r2, r5
- adds r3, 0x1
- ldrb r0, [r4]
- cmp r3, r0
- blt _08024C9C
- b _08024E0E
- .align 2, 0
-_08024CB8: .4byte gBattlersCount
-_08024CBC: .4byte gBattleStruct
-_08024CC0: .4byte gUnknown_20233C4
-_08024CC4:
- ldr r0, _08024CDC @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08024CD2
- b _08024E0E
-_08024CD2:
- ldrb r0, [r7]
- bl sub_8013F6C
- b _08024E0E
- .align 2, 0
-_08024CDC: .4byte gBattleTypeFlags
-_08024CE0:
- ldr r1, _08024DAC @ =gUnknown_2023E82
- ldr r4, _08024DB0 @ =gUnknown_20233C4
- ldrb r0, [r7]
- lsls r0, 9
- adds r2, r4, 0x1
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- ldr r6, _08024DB4 @ =gBattleStruct
- ldr r1, [r6]
- adds r1, r0, r1
- adds r1, 0x5C
- lsls r0, 9
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _08024DB8 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08024DBC
- ldrb r0, [r7]
- ldr r2, [r6]
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r2
- adds r1, 0x60
- ldrb r2, [r1]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- ldr r2, [r6]
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r2
- adds r1, 0x60
- lsls r0, 9
- adds r5, r4, 0x2
- adds r0, r5
- ldrb r2, [r0]
- movs r3, 0xF0
- adds r0, r3, 0
- ands r0, r2
- ldrb r2, [r1]
- orrs r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- ldr r2, [r6]
- lsls r0, r1, 1
- adds r0, r1
- adds r0, r2
- adds r0, 0x61
- lsls r1, 9
- adds r4, 0x3
- mov r12, r4
- add r1, r12
- ldrb r1, [r1]
- strb r1, [r0]
- ldrb r0, [r7]
- movs r4, 0x2
- eors r0, r4
- ldr r2, [r6]
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r2
- adds r1, 0x60
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- eors r0, r4
- ldr r2, [r6]
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r2
- adds r1, 0x60
- ldrb r0, [r7]
- lsls r0, 9
- adds r0, r5
- ldrb r0, [r0]
- ands r3, r0
- lsrs r3, 4
- ldrb r0, [r1]
- orrs r3, r0
- strb r3, [r1]
- ldrb r0, [r7]
- eors r4, r0
- ldr r0, [r6]
- lsls r1, r4, 1
- adds r1, r4
- adds r1, r0
- adds r1, 0x62
- ldrb r0, [r7]
- lsls r0, 9
- add r0, r12
- ldrb r0, [r0]
- strb r0, [r1]
- b _08024DC2
- .align 2, 0
-_08024DAC: .4byte gUnknown_2023E82
-_08024DB0: .4byte gUnknown_20233C4
-_08024DB4: .4byte gBattleStruct
-_08024DB8: .4byte gBattleTypeFlags
-_08024DBC:
- ldrb r0, [r7]
- bl sub_8013F6C
-_08024DC2:
- ldr r1, _08024E1C @ =gBattleTextBuff1
- movs r5, 0xFD
- strb r5, [r1]
- movs r0, 0x6
- strb r0, [r1, 0x1]
- ldr r4, _08024E20 @ =gBattleMons
- ldr r3, _08024E24 @ =sBattler_AI
- ldrb r0, [r3]
- movs r2, 0x58
- muls r0, r2
- adds r0, r4
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r3]
- muls r0, r2
- adds r0, r4
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r2, _08024E28 @ =gBattleTextBuff2
- strb r5, [r2]
- movs r0, 0x7
- strb r0, [r2, 0x1]
- ldr r3, _08024E2C @ =gActiveBattler
- ldrb r0, [r3]
- strb r0, [r2, 0x2]
- ldr r1, _08024E30 @ =gUnknown_20233C4
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2, 0x3]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r2, 0x4]
-_08024E0E:
- ldr r1, _08024E34 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x3
- str r0, [r1]
-_08024E16:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024E1C: .4byte gBattleTextBuff1
-_08024E20: .4byte gBattleMons
-_08024E24: .4byte sBattler_AI
-_08024E28: .4byte gBattleTextBuff2
-_08024E2C: .4byte gActiveBattler
-_08024E30: .4byte gUnknown_20233C4
-_08024E34: .4byte gUnknown_2023D74
- thumb_func_end sub_8024C48
-
- thumb_func_start sub_8024E38
-sub_8024E38: @ 8024E38
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r6, _08024F40 @ =gUnknown_2023D74
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r4, _08024F44 @ =gActiveBattler
- strb r0, [r4]
- ldrb r0, [r4]
- bl sub_80174B8
- ldr r2, _08024F48 @ =gUnknown_2023DD0
- ldr r1, _08024F4C @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- ldr r2, _08024F50 @ =gUnknown_2023ECC
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1]
- movs r0, 0x41
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- bl GetBattlerSide
- ldr r5, _08024F54 @ =gSideAffecting
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 2
- mov r8, r0
- ands r0, r1
- cmp r0, 0
- bne _08024F88
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08024F88
- ldr r1, _08024F58 @ =gBattleMons
- mov r9, r1
- ldrb r2, [r4]
- movs r7, 0x58
- adds r0, r2, 0
- muls r0, r7
- adds r1, r0, r1
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08024F88
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08024F88
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- beq _08024F88
- adds r0, r2, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r2, [r0]
- mov r1, r8
- orrs r1, r2
- strh r1, [r0]
- ldrb r0, [r4]
- bl GetBattlerSide
- ldr r2, _08024F5C @ =gSideTimers
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0xA]
- movs r1, 0x5
- subs r1, r0
- lsls r1, 25
- lsrs r1, 24
- ldr r5, _08024F60 @ =gBattleMoveDamage
- ldrb r0, [r4]
- muls r0, r7
- add r0, r9
- ldrh r0, [r0, 0x2C]
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _08024F28
- movs r0, 0x1
- str r0, [r5]
-_08024F28:
- ldr r0, _08024F64 @ =gBattleScripting
- ldrb r1, [r4]
- strb r1, [r0, 0x17]
- bl BattleScriptPushCursor
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08024F6C
- ldr r0, _08024F68 @ =gUnknown_81D8CBE
- str r0, [r6]
- b _080250C6
- .align 2, 0
-_08024F40: .4byte gUnknown_2023D74
-_08024F44: .4byte gActiveBattler
-_08024F48: .4byte gUnknown_2023DD0
-_08024F4C: .4byte gBitTable
-_08024F50: .4byte gUnknown_2023ECC
-_08024F54: .4byte gSideAffecting
-_08024F58: .4byte gBattleMons
-_08024F5C: .4byte gSideTimers
-_08024F60: .4byte gBattleMoveDamage
-_08024F64: .4byte gBattleScripting
-_08024F68: .4byte gUnknown_81D8CBE
-_08024F6C:
- cmp r0, 0x1
- bne _08024F7C
- ldr r0, _08024F78 @ =gUnknown_81D8C87
- str r0, [r6]
- b _080250C6
- .align 2, 0
-_08024F78: .4byte gUnknown_81D8C87
-_08024F7C:
- ldr r0, _08024F84 @ =gUnknown_81D8CF5
- str r0, [r6]
- b _080250C6
- .align 2, 0
-_08024F84: .4byte gUnknown_81D8CF5
-_08024F88:
- ldr r1, _08025064 @ =gBattleMons
- ldr r5, _08025068 @ =gActiveBattler
- ldrb r2, [r5]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x36
- bne _08024FAE
- ldr r1, _0802506C @ =gDisableStructs
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x18]
-_08024FAE:
- ldrb r1, [r5]
- movs r0, 0
- str r0, [sp]
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _08024FC4
- b _080250C6
-_08024FC4:
- ldrb r1, [r5]
- movs r0, 0
- movs r2, 0
- bl sub_801BC68
- lsls r0, 24
- cmp r0, 0
- bne _080250C6
- ldrb r0, [r5]
- bl GetBattlerSide
- ldr r1, _08025070 @ =gSideAffecting
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r2, [r0]
- ldr r1, _08025074 @ =0x0000fdff
- ands r1, r2
- strh r1, [r0]
- movs r4, 0
- ldr r0, _08025078 @ =gBattlersCount
- ldrb r3, [r0]
- cmp r4, r3
- bge _08025012
- ldr r6, _0802507C @ =gUnknown_2023BDE
- ldr r3, _08025080 @ =gUnknown_2023BDA
- movs r2, 0xC
- adds r1, r0, 0
-_08024FFC:
- adds r0, r4, r6
- ldrb r0, [r0]
- ldrb r7, [r5]
- cmp r0, r7
- bne _0802500A
- adds r0, r4, r3
- strb r2, [r0]
-_0802500A:
- adds r4, 0x1
- ldrb r0, [r1]
- cmp r4, r0
- blt _08024FFC
-_08025012:
- movs r4, 0
- ldr r0, _08025078 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r4, r0
- bge _08025046
- ldr r6, _08025084 @ =gBattleStruct
- ldr r5, _08025064 @ =gBattleMons
-_08025020:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 23
- adds r0, 0xA8
- ldr r1, [r6]
- adds r1, r0
- movs r0, 0x58
- muls r0, r4
- adds r0, r5
- ldrh r0, [r0, 0x28]
- strh r0, [r1]
- adds r4, 0x1
- ldr r0, _08025078 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r4, r0
- blt _08025020
-_08025046:
- ldr r0, _08025088 @ =gUnknown_2023D74
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x5
- bne _080250C0
- ldr r0, _0802508C @ =gUnknown_2023DD0
- ldr r0, [r0]
- lsrs r4, r0, 28
- ldr r1, _08025090 @ =gUnknown_2023D6D
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r2, _08025094 @ =gBitTable
- b _080250A6
- .align 2, 0
-_08025064: .4byte gBattleMons
-_08025068: .4byte gActiveBattler
-_0802506C: .4byte gDisableStructs
-_08025070: .4byte gSideAffecting
-_08025074: .4byte 0x0000fdff
-_08025078: .4byte gBattlersCount
-_0802507C: .4byte gUnknown_2023BDE
-_08025080: .4byte gUnknown_2023BDA
-_08025084: .4byte gBattleStruct
-_08025088: .4byte gUnknown_2023D74
-_0802508C: .4byte gUnknown_2023DD0
-_08025090: .4byte gUnknown_2023D6D
-_08025094: .4byte gBitTable
-_08025098:
- ldr r0, _080250D4 @ =gBattlersCount
- ldrb r3, [r1]
- ldrb r0, [r0]
- cmp r3, r0
- bcs _080250C0
- adds r0, r3, 0x1
- strb r0, [r1]
-_080250A6:
- ldrb r0, [r1]
- lsls r0, 2
- adds r0, r2
- ldr r3, [r0]
- adds r0, r4, 0
- ands r0, r3
- cmp r0, 0
- beq _08025098
- ldr r0, _080250D8 @ =gAbsentBattlerFlags
- ldrb r0, [r0]
- ands r0, r3
- cmp r0, 0
- bne _08025098
-_080250C0:
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_080250C6:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080250D4: .4byte gBattlersCount
-_080250D8: .4byte gAbsentBattlerFlags
- thumb_func_end sub_8024E38
-
- thumb_func_start atk53_trainer_slide
-atk53_trainer_slide: @ 80250DC
- push {lr}
- ldr r0, _080250EC @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _080250F0
- movs r0, 0
- b _080250F2
- .align 2, 0
-_080250EC: .4byte gUnknown_2023D74
-_080250F0:
- movs r0, 0x1
-_080250F2:
- bl GetBattlerAtPosition
- ldr r1, _08025114 @ =gActiveBattler
- strb r0, [r1]
- movs r0, 0
- bl EmitTrainerSlide
- ldr r0, _08025114 @ =gActiveBattler
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r1, _08025118 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08025114: .4byte gActiveBattler
-_08025118: .4byte gUnknown_2023D74
- thumb_func_end atk53_trainer_slide
-
- thumb_func_start atk54_playse
-atk54_playse: @ 802511C
- push {r4,r5,lr}
- ldr r5, _0802514C @ =gActiveBattler
- ldr r0, _08025150 @ =sBattler_AI
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r4, _08025154 @ =gUnknown_2023D74
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0
- bl EmitPlaySE
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802514C: .4byte gActiveBattler
-_08025150: .4byte sBattler_AI
-_08025154: .4byte gUnknown_2023D74
- thumb_func_end atk54_playse
-
- thumb_func_start atk55_play_sound
-atk55_play_sound: @ 8025158
- push {r4,r5,lr}
- ldr r5, _08025188 @ =gActiveBattler
- ldr r0, _0802518C @ =sBattler_AI
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r4, _08025190 @ =gUnknown_2023D74
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0
- bl Emitcmd44
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08025188: .4byte gActiveBattler
-_0802518C: .4byte sBattler_AI
-_08025190: .4byte gUnknown_2023D74
- thumb_func_end atk55_play_sound
-
- thumb_func_start atk56_playfaintcry
-atk56_playfaintcry: @ 8025194
- push {r4,r5,lr}
- ldr r5, _080251BC @ =gUnknown_2023D74
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r4, _080251C0 @ =gActiveBattler
- strb r0, [r4]
- movs r0, 0
- bl EmitFaintingCry
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080251BC: .4byte gUnknown_2023D74
-_080251C0: .4byte gActiveBattler
- thumb_func_end atk56_playfaintcry
-
- thumb_func_start atk57
-atk57: @ 80251C4
- push {r4,lr}
- movs r0, 0
- bl GetBattlerAtPosition
- ldr r4, _080251F0 @ =gActiveBattler
- strb r0, [r4]
- ldr r0, _080251F4 @ =gBattleOutcome
- ldrb r1, [r0]
- movs r0, 0
- bl EmitCmd55
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r1, _080251F8 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080251F0: .4byte gActiveBattler
-_080251F4: .4byte gBattleOutcome
-_080251F8: .4byte gUnknown_2023D74
- thumb_func_end atk57
-
- thumb_func_start atk58_returntoball
-atk58_returntoball: @ 80251FC
- push {r4,r5,lr}
- ldr r5, _08025228 @ =gUnknown_2023D74
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r4, _0802522C @ =gActiveBattler
- strb r0, [r4]
- movs r0, 0
- movs r1, 0x1
- bl EmitReturnMonToBall
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08025228: .4byte gUnknown_2023D74
-_0802522C: .4byte gActiveBattler
- thumb_func_end atk58_returntoball
-
- thumb_func_start atk59_handlelearnnewmove
-atk59_handlelearnnewmove: @ 8025230
- push {r4-r7,lr}
- ldr r0, _080252A4 @ =gUnknown_2023D74
- ldr r2, [r0]
- ldrb r6, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r6, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r6, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r6, r0
- ldrb r4, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r4, r0
- ldr r0, _080252A8 @ =gBattleStruct
- ldr r0, [r0]
- ldrb r1, [r0, 0x10]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080252AC @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r2, 0x9]
- bl MonTryLearningNewMove
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080252B0 @ =0x0000fffe
- cmp r5, r0
- bne _0802529A
- adds r7, r5, 0
-_0802527E:
- ldr r0, _080252A8 @ =gBattleStruct
- ldr r0, [r0]
- ldrb r1, [r0, 0x10]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080252AC @ =gPlayerParty
- adds r0, r1
- movs r1, 0
- bl MonTryLearningNewMove
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r7
- beq _0802527E
-_0802529A:
- cmp r5, 0
- bne _080252B4
- ldr r0, _080252A4 @ =gUnknown_2023D74
- str r4, [r0]
- b _0802535C
- .align 2, 0
-_080252A4: .4byte gUnknown_2023D74
-_080252A8: .4byte gBattleStruct
-_080252AC: .4byte gPlayerParty
-_080252B0: .4byte 0x0000fffe
-_080252B4:
- ldr r0, _080252C4 @ =0x0000ffff
- cmp r5, r0
- bne _080252CC
- ldr r1, _080252C8 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
- b _0802535C
- .align 2, 0
-_080252C4: .4byte 0x0000ffff
-_080252C8: .4byte gUnknown_2023D74
-_080252CC:
- movs r0, 0
- bl GetBattlerAtPosition
- ldr r1, _08025364 @ =gActiveBattler
- strb r0, [r1]
- ldr r2, _08025368 @ =gBattlerPartyIndexes
- ldrb r3, [r1]
- lsls r0, r3, 1
- adds r0, r2
- ldr r1, _0802536C @ =gBattleStruct
- ldr r1, [r1]
- ldrh r0, [r0]
- ldrb r1, [r1, 0x10]
- cmp r0, r1
- bne _0802530C
- ldr r4, _08025370 @ =gBattleMons
- movs r0, 0x58
- adds r2, r3, 0
- muls r2, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _0802530C
- adds r0, r2, r4
- adds r1, r5, 0
- bl GiveMoveToBattleMon
-_0802530C:
- ldr r0, _08025374 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08025358
- movs r0, 0x2
- bl GetBattlerAtPosition
- ldr r1, _08025364 @ =gActiveBattler
- strb r0, [r1]
- ldr r2, _08025368 @ =gBattlerPartyIndexes
- ldrb r3, [r1]
- lsls r0, r3, 1
- adds r0, r2
- ldr r1, _0802536C @ =gBattleStruct
- ldr r1, [r1]
- ldrh r0, [r0]
- ldrb r1, [r1, 0x10]
- cmp r0, r1
- bne _08025358
- ldr r4, _08025370 @ =gBattleMons
- movs r0, 0x58
- adds r2, r3, 0
- muls r2, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08025358
- adds r0, r2, r4
- adds r1, r5, 0
- bl GiveMoveToBattleMon
-_08025358:
- ldr r0, _08025378 @ =gUnknown_2023D74
- str r6, [r0]
-_0802535C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025364: .4byte gActiveBattler
-_08025368: .4byte gBattlerPartyIndexes
-_0802536C: .4byte gBattleStruct
-_08025370: .4byte gBattleMons
-_08025374: .4byte gBattleTypeFlags
-_08025378: .4byte gUnknown_2023D74
- thumb_func_end atk59_handlelearnnewmove
-
- thumb_func_start sub_802537C
-sub_802537C: @ 802537C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r0, _080253A0 @ =gActiveBattler
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080253A4 @ =gBattleScripting
- ldrb r1, [r0, 0x1F]
- adds r2, r0, 0
- cmp r1, 0x5
- bls _08025396
- b _080256D0
-_08025396:
- lsls r0, r1, 2
- ldr r1, _080253A8 @ =_080253AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080253A0: .4byte gActiveBattler
-_080253A4: .4byte gBattleScripting
-_080253A8: .4byte _080253AC
- .align 2, 0
-_080253AC:
- .4byte _080253C4
- .4byte _080253FC
- .4byte _080254A8
- .4byte _08025500
- .4byte _080256A4
- .4byte _080256C4
-_080253C4:
- movs r4, 0
- str r4, [sp]
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_802DB7C
- ldr r0, _080253F0 @ =gUnknown_83FE791
- movs r1, 0xE
- bl sub_80D87BC
- ldr r1, _080253F4 @ =gBattleScripting
- ldrb r0, [r1, 0x1F]
- adds r0, 0x1
- strb r0, [r1, 0x1F]
- ldr r0, _080253F8 @ =gUnknown_2023E82
- strb r4, [r0, 0x1]
- bl sub_802DCB8
- b _080256D0
- .align 2, 0
-_080253F0: .4byte gUnknown_83FE791
-_080253F4: .4byte gBattleScripting
-_080253F8: .4byte gUnknown_2023E82
-_080253FC:
- ldr r0, _08025484 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08025422
- ldr r4, _08025488 @ =gUnknown_2023E82
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08025422
- movs r0, 0x5
- bl PlaySE
- bl sub_802DCF8
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_802DCB8
-_08025422:
- ldr r0, _08025484 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08025448
- ldr r4, _08025488 @ =gUnknown_2023E82
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08025448
- movs r0, 0x5
- bl PlaySE
- bl sub_802DCF8
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802DCB8
-_08025448:
- ldr r0, _08025484 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r5, 0x1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _0802548C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08025488 @ =gUnknown_2023E82
- ldrb r4, [r0, 0x1]
- cmp r4, 0
- bne _0802549C
- str r5, [sp]
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_802DB7C
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _080254D8
- .align 2, 0
-_08025484: .4byte gMain
-_08025488: .4byte gUnknown_2023E82
-_0802548C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08025496
- b _080256D0
-_08025496:
- movs r0, 0x5
- bl PlaySE
-_0802549C:
- ldr r1, _080254A4 @ =gBattleScripting
- movs r0, 0x4
- strb r0, [r1, 0x1F]
- b _080256D0
- .align 2, 0
-_080254A4: .4byte gBattleScripting
-_080254A8:
- ldr r0, _080254E4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080254B6
- b _080256D0
-_080254B6:
- bl FreeAllWindowBuffers
- ldr r0, _080254E8 @ =gPlayerParty
- ldr r1, _080254EC @ =gBattleStruct
- ldr r1, [r1]
- ldrb r1, [r1, 0x10]
- ldr r2, _080254F0 @ =gPlayerPartyCount
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _080254F4 @ =sub_8077764
- ldr r4, _080254F8 @ =gMoveToLearn
- ldrh r4, [r4]
- str r4, [sp]
- bl sub_8134738
-_080254D8:
- ldr r1, _080254FC @ =gBattleScripting
- ldrb r0, [r1, 0x1F]
- adds r0, 0x1
- strb r0, [r1, 0x1F]
- b _080256D0
- .align 2, 0
-_080254E4: .4byte gPaletteFade
-_080254E8: .4byte gPlayerParty
-_080254EC: .4byte gBattleStruct
-_080254F0: .4byte gPlayerPartyCount
-_080254F4: .4byte sub_8077764
-_080254F8: .4byte gMoveToLearn
-_080254FC: .4byte gBattleScripting
-_08025500:
- ldr r0, _0802552C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802550E
- b _080256D0
-_0802550E:
- ldr r0, _08025530 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _08025534 @ =sub_8011100
- cmp r1, r0
- beq _0802551A
- b _080256D0
-_0802551A:
- bl sub_8138B2C
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bne _0802553C
- ldr r0, _08025538 @ =gBattleScripting
- strb r5, [r0, 0x1F]
- b _080256D0
- .align 2, 0
-_0802552C: .4byte gPaletteFade
-_08025530: .4byte gMain
-_08025534: .4byte sub_8011100
-_08025538: .4byte gBattleScripting
-_0802553C:
- ldr r6, _08025578 @ =gBattleStruct
- ldr r0, [r6]
- ldrb r0, [r0, 0x10]
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r7, _0802557C @ =gPlayerParty
- adds r0, r7
- adds r1, r5, 0
- adds r1, 0xD
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl IsHMMove2
- cmp r0, 0
- beq _0802558C
- ldr r0, _08025580 @ =0x0000013f
- ldr r1, _08025584 @ =gActiveBattler
- ldrb r1, [r1]
- bl PrepareStringBattle
- ldr r1, _08025588 @ =gBattleScripting
- movs r0, 0x5
- strb r0, [r1, 0x1F]
- b _080256D0
- .align 2, 0
-_08025578: .4byte gBattleStruct
-_0802557C: .4byte gPlayerParty
-_08025580: .4byte 0x0000013f
-_08025584: .4byte gActiveBattler
-_08025588: .4byte gBattleScripting
-_0802558C:
- ldr r3, _08025680 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- ldr r1, _08025684 @ =gBattleTextBuff2
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- strb r4, [r1, 0x2]
- lsrs r0, r4, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r0, [r6]
- ldrb r0, [r0, 0x10]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- adds r1, r5, 0
- bl RemoveMonPPBonus
- ldr r0, [r6]
- ldrb r0, [r0, 0x10]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- ldr r7, _08025688 @ =gMoveToLearn
- ldrh r1, [r7]
- adds r2, r5, 0
- bl SetMonMoveSlot
- ldr r0, _0802568C @ =gBattlerPartyIndexes
- ldr r1, [r6]
- ldrh r0, [r0]
- ldrb r1, [r1, 0x10]
- cmp r0, r1
- bne _08025622
- ldr r4, _08025690 @ =gBattleMons
- ldr r0, [r4, 0x50]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08025622
- ldr r0, _08025694 @ =gDisableStructs
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _08025698 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08025622
- adds r0, r4, 0
- adds r1, r5, 0
- bl RemoveBattleMonPPBonus
- ldrh r1, [r7]
- adds r0, r4, 0
- adds r2, r5, 0
- bl SetBattleMonMoveSlot
-_08025622:
- ldr r0, _0802569C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080256D0
- ldr r2, _0802568C @ =gBattlerPartyIndexes
- ldr r0, _080256A0 @ =gBattleStruct
- ldr r1, [r0]
- ldrh r0, [r2, 0x4]
- ldrb r1, [r1, 0x10]
- cmp r0, r1
- bne _080256D0
- ldr r4, _08025690 @ =gBattleMons
- movs r1, 0x80
- lsls r1, 1
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _080256D0
- ldr r0, _08025694 @ =gDisableStructs
- adds r0, 0x50
- ldrb r1, [r0]
- lsrs r1, 4
- ldr r2, _08025698 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080256D0
- adds r4, 0xB0
- adds r0, r4, 0
- adds r1, r5, 0
- bl RemoveBattleMonPPBonus
- ldr r0, _08025688 @ =gMoveToLearn
- ldrh r1, [r0]
- adds r0, r4, 0
- adds r2, r5, 0
- bl SetBattleMonMoveSlot
- b _080256D0
- .align 2, 0
-_08025680: .4byte gUnknown_2023D74
-_08025684: .4byte gBattleTextBuff2
-_08025688: .4byte gMoveToLearn
-_0802568C: .4byte gBattlerPartyIndexes
-_08025690: .4byte gBattleMons
-_08025694: .4byte gDisableStructs
-_08025698: .4byte gBitTable
-_0802569C: .4byte gBattleTypeFlags
-_080256A0: .4byte gBattleStruct
-_080256A4:
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_802DB7C
- ldr r1, _080256C0 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _080256D0
- .align 2, 0
-_080256C0: .4byte gUnknown_2023D74
-_080256C4:
- ldr r0, _080256DC @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- bne _080256D0
- movs r0, 0x2
- strb r0, [r2, 0x1F]
-_080256D0:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080256DC: .4byte gUnknown_2023BC8
- thumb_func_end sub_802537C
-
- thumb_func_start sub_80256E0
-sub_80256E0: @ 80256E0
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _080256F4 @ =gBattleScripting
- ldrb r4, [r5, 0x1F]
- cmp r4, 0
- beq _080256F8
- cmp r4, 0x1
- beq _08025728
- b _0802580E
- .align 2, 0
-_080256F4: .4byte gBattleScripting
-_080256F8:
- str r4, [sp]
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_802DB7C
- ldr r0, _08025720 @ =gUnknown_83FE791
- movs r1, 0xE
- bl sub_80D87BC
- ldrb r0, [r5, 0x1F]
- adds r0, 0x1
- strb r0, [r5, 0x1F]
- ldr r0, _08025724 @ =gUnknown_2023E82
- strb r4, [r0, 0x1]
- bl sub_802DCB8
- b _0802580E
- .align 2, 0
-_08025720: .4byte gUnknown_83FE791
-_08025724: .4byte gUnknown_2023E82
-_08025728:
- ldr r0, _080257AC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802574E
- ldr r4, _080257B0 @ =gUnknown_2023E82
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _0802574E
- movs r0, 0x5
- bl PlaySE
- bl sub_802DCF8
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_802DCB8
-_0802574E:
- ldr r0, _080257AC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08025774
- ldr r4, _080257B0 @ =gUnknown_2023E82
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08025774
- movs r0, 0x5
- bl PlaySE
- bl sub_802DCF8
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802DCB8
-_08025774:
- ldr r0, _080257AC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _080257D8
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080257B0 @ =gUnknown_2023E82
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080257B8
- ldr r3, _080257B4 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _080257C0
- .align 2, 0
-_080257AC: .4byte gMain
-_080257B0: .4byte gUnknown_2023E82
-_080257B4: .4byte gUnknown_2023D74
-_080257B8:
- ldr r1, _080257D4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_080257C0:
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_802DB7C
- b _0802580E
- .align 2, 0
-_080257D4: .4byte gUnknown_2023D74
-_080257D8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802580E
- movs r0, 0x5
- bl PlaySE
- ldr r3, _08025818 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- str r4, [sp]
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_802DB7C
-_0802580E:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08025818: .4byte gUnknown_2023D74
- thumb_func_end sub_80256E0
-
- thumb_func_start sub_802581C
-sub_802581C: @ 802581C
- push {r4,lr}
- ldr r4, _08025888 @ =gUnknown_2023D74
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r2, _0802588C @ =gActiveBattler
- strb r0, [r2]
- ldr r0, _08025890 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _080258A0
- ldr r0, _08025894 @ =gUnknown_2023DD0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- cmp r0, 0
- beq _0802586E
- ldr r1, _08025898 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0802586E
- ldr r0, _0802589C @ =gDisableStructs
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _080258A0
-_0802586E:
- movs r0, 0
- bl EmitHitAnimation
- ldr r0, _0802588C @ =gActiveBattler
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r1, _08025888 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- b _080258A6
- .align 2, 0
-_08025888: .4byte gUnknown_2023D74
-_0802588C: .4byte gActiveBattler
-_08025890: .4byte gMoveResultFlags
-_08025894: .4byte gUnknown_2023DD0
-_08025898: .4byte gBattleMons
-_0802589C: .4byte gDisableStructs
-_080258A0:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
-_080258A6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_802581C
-
- thumb_func_start sub_80258AC
-sub_80258AC: @ 80258AC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- movs r5, 0
- ldr r0, _080258F0 @ =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080258C0
- b _080259FA
-_080258C0:
- ldr r0, _080258F4 @ =gTrainerBattleOpponent_A
- ldrh r2, [r0]
- movs r1, 0x80
- lsls r1, 3
- cmp r2, r1
- bne _08025904
- ldr r0, _080258F8 @ =gBattleResources
- ldr r0, [r0]
- ldr r0, [r0]
- adds r0, 0x94
- ldrb r2, [r0]
- ldr r0, _080258FC @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x4A
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r4, r2, 0
- muls r4, r0
- ldr r0, _08025900 @ =gSaveBlock1Ptr
- mov r8, r0
- b _080259E8
- .align 2, 0
-_080258F0: .4byte gBattleOutcome
-_080258F4: .4byte gTrainerBattleOpponent_A
-_080258F8: .4byte gBattleResources
-_080258FC: .4byte gBattleStruct
-_08025900: .4byte gSaveBlock1Ptr
-_08025904:
- ldr r2, _08025920 @ =gTrainers
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r3, r0, 3
- adds r4, r3, r2
- ldrb r1, [r4]
- cmp r1, 0x1
- beq _0802595A
- cmp r1, 0x1
- bgt _08025924
- cmp r1, 0
- beq _0802592E
- b _08025970
- .align 2, 0
-_08025920: .4byte gTrainers
-_08025924:
- cmp r1, 0x2
- beq _08025944
- cmp r1, 0x3
- beq _0802595A
- b _08025970
-_0802592E:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r3, r0
- ldr r1, [r0]
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- subs r0, 0x8
- b _0802596E
-_08025944:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r3, r0
- ldr r1, [r0]
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- subs r0, 0x8
- b _0802596E
-_0802595A:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r3, r0
- ldr r1, [r0]
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- subs r0, 0x10
-_0802596E:
- ldrb r5, [r0, 0x2]
-_08025970:
- ldr r0, _080259CC @ =gUnknown_824F220
- lsls r1, r6, 2
- adds r3, r1, r0
- ldrb r1, [r3]
- ldr r7, _080259D0 @ =gBattleStruct
- mov r12, r0
- lsls r4, r5, 2
- ldr r5, _080259D4 @ =gBattleTypeFlags
- ldr r0, _080259D8 @ =gSaveBlock1Ptr
- mov r8, r0
- cmp r1, 0xFF
- beq _080259AA
- ldr r2, _080259DC @ =gTrainers
- ldr r0, _080259E0 @ =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r2, [r0, 0x1]
- adds r1, r3, 0
-_0802599A:
- ldrb r0, [r1]
- cmp r0, r2
- beq _080259AA
- adds r1, 0x4
- adds r6, 0x1
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0802599A
-_080259AA:
- ldr r0, [r7]
- adds r0, 0x4A
- ldrb r0, [r0]
- adds r3, r4, 0
- muls r3, r0
- lsls r0, r6, 2
- add r0, r12
- ldrb r2, [r0, 0x1]
- ldr r0, [r5]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080259E4
- lsls r0, r2, 1
- adds r4, r3, 0
- muls r4, r0
- b _080259E8
- .align 2, 0
-_080259CC: .4byte gUnknown_824F220
-_080259D0: .4byte gBattleStruct
-_080259D4: .4byte gBattleTypeFlags
-_080259D8: .4byte gSaveBlock1Ptr
-_080259DC: .4byte gTrainers
-_080259E0: .4byte gTrainerBattleOpponent_A
-_080259E4:
- adds r4, r3, 0
- muls r4, r2
-_080259E8:
- mov r1, r8
- ldr r0, [r1]
- movs r1, 0xA4
- lsls r1, 2
- adds r0, r1
- adds r1, r4, 0
- bl AddMoney
- b _08025A00
-_080259FA:
- bl sub_8054C04
- adds r4, r0, 0
-_08025A00:
- ldr r1, _08025A40 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r0, 0x4
- strb r0, [r1, 0x2]
- movs r0, 0x5
- strb r0, [r1, 0x3]
- strb r4, [r1, 0x4]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r4
- lsrs r0, 8
- strb r0, [r1, 0x5]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r4
- lsrs r0, 16
- strb r0, [r1, 0x6]
- lsrs r0, r4, 24
- strb r0, [r1, 0x7]
- movs r0, 0xFF
- strb r0, [r1, 0x8]
- cmp r4, 0
- beq _08025A48
- ldr r1, _08025A44 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08025A62
- .align 2, 0
-_08025A40: .4byte gBattleTextBuff1
-_08025A44: .4byte gUnknown_2023D74
-_08025A48:
- ldr r3, _08025A6C @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08025A62:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025A6C: .4byte gUnknown_2023D74
- thumb_func_end sub_80258AC
-
- thumb_func_start atk5E
-atk5E: @ 8025A70
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _08025A94 @ =gUnknown_2023D74
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r6, _08025A98 @ =gActiveBattler
- strb r0, [r6]
- ldr r5, _08025A9C @ =gUnknown_2023E82
- ldrb r0, [r5]
- mov r8, r4
- cmp r0, 0
- beq _08025AA0
- cmp r0, 0x1
- beq _08025AB8
- b _08025B0C
- .align 2, 0
-_08025A94: .4byte gUnknown_2023D74
-_08025A98: .4byte gActiveBattler
-_08025A9C: .4byte gUnknown_2023E82
-_08025AA0:
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl BtlController_EmitGetMonData
- ldrb r0, [r6]
- bl MarkBufferBankForExecution
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _08025B0C
-_08025AB8:
- ldr r0, _08025B18 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- bne _08025B0C
- ldrb r0, [r6]
- lsls r0, 9
- ldr r1, _08025B1C @ =gUnknown_20233C8
- adds r0, r1
- mov r12, r0
- movs r2, 0
- adds r4, r6, 0
- movs r5, 0x58
- ldr r6, _08025B20 @ =gUnknown_2023C08
- adds r7, r6, 0
- subs r7, 0x18
- mov r3, r12
- adds r3, 0xC
-_08025ADA:
- lsls r1, r2, 1
- ldrb r0, [r4]
- muls r0, r5
- adds r1, r0
- adds r1, r7
- ldrh r0, [r3]
- strh r0, [r1]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r2, r1
- adds r1, r6
- mov r0, r12
- adds r0, 0x24
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r3, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- ble _08025ADA
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08025B0C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025B18: .4byte gUnknown_2023BC8
-_08025B1C: .4byte gUnknown_20233C8
-_08025B20: .4byte gUnknown_2023C08
- thumb_func_end atk5E
-
- thumb_func_start atk5F
-atk5F: @ 8025B24
- push {lr}
- ldr r0, _08025B4C @ =gActiveBattler
- ldr r2, _08025B50 @ =sBattler_AI
- ldrb r3, [r2]
- strb r3, [r0]
- ldr r1, _08025B54 @ =gBattlerTarget
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- ldr r2, _08025B58 @ =gUnknown_2023DD0
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 5
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _08025B60
- ldr r0, _08025B5C @ =0xffffefff
- ands r1, r0
- b _08025B62
- .align 2, 0
-_08025B4C: .4byte gActiveBattler
-_08025B50: .4byte sBattler_AI
-_08025B54: .4byte gBattlerTarget
-_08025B58: .4byte gUnknown_2023DD0
-_08025B5C: .4byte 0xffffefff
-_08025B60:
- orrs r1, r3
-_08025B62:
- str r1, [r2]
- ldr r1, _08025B70 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08025B70: .4byte gUnknown_2023D74
- thumb_func_end atk5F
-
- thumb_func_start atk60_incrementgamestat
-atk60_incrementgamestat: @ 8025B74
- push {lr}
- ldr r0, _08025B9C @ =sBattler_AI
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08025B8E
- ldr r0, _08025BA0 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl IncrementGameStat
-_08025B8E:
- ldr r1, _08025BA0 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08025B9C: .4byte sBattler_AI
-_08025BA0: .4byte gUnknown_2023D74
- thumb_func_end atk60_incrementgamestat
-
- thumb_func_start atk61_drawpartystatussummary
-atk61_drawpartystatussummary: @ 8025BA4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x30
- ldr r0, _08025C08 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- bne _08025C58
- ldr r0, _08025C0C @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r1, _08025C10 @ =gActiveBattler
- strb r0, [r1]
- ldrb r0, [r1]
- bl GetBattlerSide
- lsls r0, 24
- ldr r1, _08025C14 @ =gEnemyParty
- mov r8, r1
- cmp r0, 0
- bne _08025BD6
- ldr r0, _08025C18 @ =gPlayerParty
- mov r8, r0
-_08025BD6:
- movs r7, 0
- add r6, sp, 0x4
- mov r5, sp
-_08025BDC:
- movs r0, 0x64
- muls r0, r7
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08025C00
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _08025C20
-_08025C00:
- ldr r0, _08025C1C @ =0x0000ffff
- strh r0, [r5]
- movs r0, 0
- b _08025C32
- .align 2, 0
-_08025C08: .4byte gUnknown_2023BC8
-_08025C0C: .4byte gUnknown_2023D74
-_08025C10: .4byte gActiveBattler
-_08025C14: .4byte gEnemyParty
-_08025C18: .4byte gPlayerParty
-_08025C1C: .4byte 0x0000ffff
-_08025C20:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
-_08025C32:
- str r0, [r6]
- adds r6, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _08025BDC
- movs r0, 0
- mov r1, sp
- movs r2, 0x1
- bl EmitDrawPartyStatusSummary
- ldr r0, _08025C64 @ =gActiveBattler
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r1, _08025C68 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08025C58:
- add sp, 0x30
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025C64: .4byte gActiveBattler
-_08025C68: .4byte gUnknown_2023D74
- thumb_func_end atk61_drawpartystatussummary
-
- thumb_func_start atk62
-atk62: @ 8025C6C
- push {r4,r5,lr}
- ldr r5, _08025C94 @ =gUnknown_2023D74
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r4, _08025C98 @ =gActiveBattler
- strb r0, [r4]
- movs r0, 0
- bl EmitCmd49
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08025C94: .4byte gUnknown_2023D74
-_08025C98: .4byte gActiveBattler
- thumb_func_end atk62
-
- thumb_func_start atk63_jumptorandomattack
-atk63_jumptorandomattack: @ 8025C9C
- push {r4,lr}
- ldr r0, _08025CB4 @ =gUnknown_2023D74
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0
- beq _08025CC0
- ldr r0, _08025CB8 @ =gCurrentMove
- ldr r1, _08025CBC @ =gUnknown_2023D4E
- ldrh r1, [r1]
- strh r1, [r0]
- b _08025CCE
- .align 2, 0
-_08025CB4: .4byte gUnknown_2023D74
-_08025CB8: .4byte gCurrentMove
-_08025CBC: .4byte gUnknown_2023D4E
-_08025CC0:
- ldr r2, _08025CEC @ =gUnknown_2023D4C
- ldr r1, _08025CF0 @ =gCurrentMove
- ldr r0, _08025CF4 @ =gUnknown_2023D4E
- ldrh r0, [r0]
- strh r0, [r1]
- strh r0, [r2]
- adds r0, r1, 0
-_08025CCE:
- ldr r3, _08025CF8 @ =gUnknown_81D65A8
- ldr r2, _08025CFC @ =gBattleMoves
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08025CEC: .4byte gUnknown_2023D4C
-_08025CF0: .4byte gCurrentMove
-_08025CF4: .4byte gUnknown_2023D4E
-_08025CF8: .4byte gUnknown_81D65A8
-_08025CFC: .4byte gBattleMoves
- thumb_func_end atk63_jumptorandomattack
-
- thumb_func_start atk64_statusanimation
-atk64_statusanimation: @ 8025D00
- push {r4,lr}
- ldr r0, _08025D70 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- bne _08025D68
- ldr r0, _08025D74 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r4, _08025D78 @ =gActiveBattler
- strb r0, [r4]
- ldr r1, _08025D7C @ =gStatuses3
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08025D80 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08025D60
- ldr r0, _08025D84 @ =gDisableStructs
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _08025D60
- ldr r0, _08025D88 @ =gUnknown_2023DD0
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08025D60
- ldr r1, _08025D8C @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- ldr r2, [r0]
- movs r0, 0
- movs r1, 0
- bl EmitStatusAnimation
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_08025D60:
- ldr r1, _08025D74 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08025D68:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08025D70: .4byte gUnknown_2023BC8
-_08025D74: .4byte gUnknown_2023D74
-_08025D78: .4byte gActiveBattler
-_08025D7C: .4byte gStatuses3
-_08025D80: .4byte 0x000400c0
-_08025D84: .4byte gDisableStructs
-_08025D88: .4byte gUnknown_2023DD0
-_08025D8C: .4byte gBattleMons
- thumb_func_end atk64_statusanimation
-
- thumb_func_start atk65_status2animation
-atk65_status2animation: @ 8025D90
- push {r4,r5,lr}
- ldr r0, _08025E18 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- bne _08025E10
- ldr r4, _08025E1C @ =gUnknown_2023D74
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r5, _08025E20 @ =gActiveBattler
- strb r0, [r5]
- ldr r1, [r4]
- ldrb r3, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- orrs r3, r0
- ldr r1, _08025E24 @ =gStatuses3
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08025E28 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08025E08
- ldr r0, _08025E2C @ =gDisableStructs
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _08025E08
- ldr r0, _08025E30 @ =gUnknown_2023DD0
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08025E08
- ldr r1, _08025E34 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r2, [r0]
- ands r2, r3
- movs r0, 0
- movs r1, 0x1
- bl EmitStatusAnimation
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
-_08025E08:
- ldr r1, _08025E1C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
-_08025E10:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08025E18: .4byte gUnknown_2023BC8
-_08025E1C: .4byte gUnknown_2023D74
-_08025E20: .4byte gActiveBattler
-_08025E24: .4byte gStatuses3
-_08025E28: .4byte 0x000400c0
-_08025E2C: .4byte gDisableStructs
-_08025E30: .4byte gUnknown_2023DD0
-_08025E34: .4byte gBattleMons
- thumb_func_end atk65_status2animation
-
- thumb_func_start atk66_chosenstatusanimation
-atk66_chosenstatusanimation: @ 8025E38
- push {r4,r5,lr}
- ldr r0, _08025EB0 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- bne _08025EAA
- ldr r4, _08025EB4 @ =gUnknown_2023D74
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r5, _08025EB8 @ =gActiveBattler
- strb r0, [r5]
- ldr r4, [r4]
- ldrb r2, [r4, 0x3]
- ldrb r0, [r4, 0x4]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r4, 0x5]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r4, 0x6]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _08025EBC @ =gStatuses3
- ldrb r3, [r5]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08025EC0 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08025EA2
- ldr r0, _08025EC4 @ =gDisableStructs
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _08025EA2
- ldr r0, _08025EC8 @ =gUnknown_2023DD0
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08025EA2
- ldrb r1, [r4, 0x2]
- movs r0, 0
- bl EmitStatusAnimation
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
-_08025EA2:
- ldr r1, _08025EB4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x7
- str r0, [r1]
-_08025EAA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08025EB0: .4byte gUnknown_2023BC8
-_08025EB4: .4byte gUnknown_2023D74
-_08025EB8: .4byte gActiveBattler
-_08025EBC: .4byte gStatuses3
-_08025EC0: .4byte 0x000400c0
-_08025EC4: .4byte gDisableStructs
-_08025EC8: .4byte gUnknown_2023DD0
- thumb_func_end atk66_chosenstatusanimation
-
- thumb_func_start atk67_yesnobox
-atk67_yesnobox: @ 8025ECC
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08025EE0 @ =gUnknown_2023E82
- ldrb r4, [r5]
- cmp r4, 0
- beq _08025EE4
- cmp r4, 0x1
- beq _08025F0C
- b _08025F9A
- .align 2, 0
-_08025EE0: .4byte gUnknown_2023E82
-_08025EE4:
- str r4, [sp]
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_802DB7C
- ldr r0, _08025F08 @ =gUnknown_83FE791
- movs r1, 0xE
- bl sub_80D87BC
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- strb r4, [r5, 0x1]
- bl sub_802DCB8
- b _08025F9A
- .align 2, 0
-_08025F08: .4byte gUnknown_83FE791
-_08025F0C:
- ldr r0, _08025F6C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08025F30
- ldrb r0, [r5, 0x1]
- cmp r0, 0
- beq _08025F30
- movs r0, 0x5
- bl PlaySE
- bl sub_802DCF8
- movs r0, 0
- strb r0, [r5, 0x1]
- bl sub_802DCB8
-_08025F30:
- ldr r0, _08025F6C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08025F56
- ldr r4, _08025F70 @ =gUnknown_2023E82
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08025F56
- movs r0, 0x5
- bl PlaySE
- bl sub_802DCF8
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802DCB8
-_08025F56:
- ldr r0, _08025F6C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08025F74
- ldr r0, _08025F70 @ =gUnknown_2023E82
- movs r4, 0x1
- strb r4, [r0, 0x1]
- b _08025F7E
- .align 2, 0
-_08025F6C: .4byte gMain
-_08025F70: .4byte gUnknown_2023E82
-_08025F74:
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08025F9A
-_08025F7E:
- movs r0, 0x5
- bl PlaySE
- str r4, [sp]
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_802DB7C
- ldr r1, _08025FA4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08025F9A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08025FA4: .4byte gUnknown_2023D74
- thumb_func_end atk67_yesnobox
-
- thumb_func_start atk68_cancelallactions
-atk68_cancelallactions: @ 8025FA8
- push {r4,r5,lr}
- movs r1, 0
- ldr r2, _08025FD4 @ =gBattlersCount
- ldr r5, _08025FD8 @ =gUnknown_2023D74
- ldrb r0, [r2]
- cmp r1, r0
- bge _08025FC6
- ldr r4, _08025FDC @ =gUnknown_2023BDA
- movs r3, 0xC
-_08025FBA:
- adds r0, r1, r4
- strb r3, [r0]
- adds r1, 0x1
- ldrb r0, [r2]
- cmp r1, r0
- blt _08025FBA
-_08025FC6:
- ldr r0, [r5]
- adds r0, 0x1
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08025FD4: .4byte gBattlersCount
-_08025FD8: .4byte gUnknown_2023D74
-_08025FDC: .4byte gUnknown_2023BDA
- thumb_func_end atk68_cancelallactions
-
- thumb_func_start atk69_adjustsetdamage
-atk69_adjustsetdamage: @ 8025FE0
- push {r4-r7,lr}
- ldr r7, _08026008 @ =gBattleMons
- ldr r6, _0802600C @ =gBattlerTarget
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08026014
- ldr r1, _08026010 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _0802602E
- .align 2, 0
-_08026008: .4byte gBattleMons
-_0802600C: .4byte gBattlerTarget
-_08026010: .4byte gEnigmaBerries
-_08026014:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_0802602E:
- ldr r1, _080260F0 @ =gPotentialItemEffectBattler
- ldr r5, _080260F4 @ =gBattlerTarget
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _0802606C
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _0802606C
- ldrb r0, [r5]
- movs r1, 0x27
- bl sub_80C7208
- ldr r2, _080260F8 @ =gUnknown_2023ECC
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_0802606C:
- ldr r2, _080260FC @ =gBattleMons
- ldr r3, _080260F4 @ =gBattlerTarget
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 17
- ands r1, r0
- adds r5, r2, 0
- cmp r1, 0
- bne _0802613C
- ldr r2, _08026100 @ =gBattleMoves
- ldr r0, _08026104 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x65
- beq _080260BE
- ldr r0, _08026108 @ =gUnknown_2023E8C
- lsls r1, r4, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- blt _080260BE
- ldr r0, _080260F8 @ =gUnknown_2023ECC
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0802613C
-_080260BE:
- ldrb r0, [r3]
- movs r4, 0x58
- muls r0, r4
- adds r0, r5
- ldrh r1, [r0, 0x28]
- ldr r2, _0802610C @ =gBattleMoveDamage
- ldr r0, [r2]
- cmp r1, r0
- bgt _0802613C
- subs r0, r1, 0x1
- str r0, [r2]
- ldr r1, _08026108 @ =gUnknown_2023E8C
- ldrb r3, [r3]
- lsls r0, r3, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bge _08026114
- ldr r0, _08026110 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _0802613C
- .align 2, 0
-_080260F0: .4byte gPotentialItemEffectBattler
-_080260F4: .4byte gBattlerTarget
-_080260F8: .4byte gUnknown_2023ECC
-_080260FC: .4byte gBattleMons
-_08026100: .4byte gBattleMoves
-_08026104: .4byte gCurrentMove
-_08026108: .4byte gUnknown_2023E8C
-_0802610C: .4byte gBattleMoveDamage
-_08026110: .4byte gMoveResultFlags
-_08026114:
- ldr r0, _0802614C @ =gUnknown_2023ECC
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0802613C
- ldr r2, _08026150 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08026154 @ =gUnknown_2023D68
- adds r0, r3, 0
- muls r0, r4
- adds r0, r5
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
-_0802613C:
- ldr r1, _08026158 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802614C: .4byte gUnknown_2023ECC
-_08026150: .4byte gMoveResultFlags
-_08026154: .4byte gUnknown_2023D68
-_08026158: .4byte gUnknown_2023D74
- thumb_func_end atk69_adjustsetdamage
-
- thumb_func_start atk6A_removeitem
-atk6A_removeitem: @ 802615C
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _080261BC @ =gUnknown_2023D74
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r5, _080261C0 @ =gActiveBattler
- strb r0, [r5]
- ldr r1, _080261C4 @ =gBattleStruct
- ldrb r4, [r5]
- lsls r0, r4, 1
- adds r0, 0xB8
- ldr r1, [r1]
- adds r1, r0
- ldr r2, _080261C8 @ =gBattleMons
- movs r3, 0x58
- adds r0, r4, 0
- muls r0, r3
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldrb r0, [r5]
- muls r0, r3
- adds r2, 0x2E
- adds r0, r2
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl EmitSetMonData
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r0, [r6]
- adds r0, 0x2
- str r0, [r6]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080261BC: .4byte gUnknown_2023D74
-_080261C0: .4byte gActiveBattler
-_080261C4: .4byte gBattleStruct
-_080261C8: .4byte gBattleMons
- thumb_func_end atk6A_removeitem
-
- thumb_func_start atk6B_atknameinbuff1
-atk6B_atknameinbuff1: @ 80261CC
- ldr r1, _080261F8 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- ldr r2, _080261FC @ =sBattler_AI
- ldrb r0, [r2]
- strb r0, [r1, 0x2]
- ldr r3, _08026200 @ =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, _08026204 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_080261F8: .4byte gBattleTextBuff1
-_080261FC: .4byte sBattler_AI
-_08026200: .4byte gBattlerPartyIndexes
-_08026204: .4byte gUnknown_2023D74
- thumb_func_end atk6B_atknameinbuff1
-
- thumb_func_start atk6C_drawlvlupbox
-atk6C_drawlvlupbox: @ 8026208
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08026224 @ =gBattleScripting
- ldrb r1, [r0, 0x1E]
- adds r4, r0, 0
- cmp r1, 0
- bne _0802622C
- bl IsMonGettingExpSentOut
- cmp r0, 0
- beq _08026228
- movs r0, 0x3
- b _0802622A
- .align 2, 0
-_08026224: .4byte gBattleScripting
-_08026228:
- movs r0, 0x1
-_0802622A:
- strb r0, [r4, 0x1E]
-_0802622C:
- ldrb r0, [r4, 0x1E]
- subs r0, 0x1
- cmp r0, 0x9
- bls _08026236
- b _080263F6
-_08026236:
- lsls r0, 2
- ldr r1, _08026240 @ =_08026244
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08026240: .4byte _08026244
- .align 2, 0
-_08026244:
- .4byte _0802626C
- .4byte _08026298
- .4byte _080262B0
- .4byte _08026304
- .4byte _08026318
- .4byte _08026330
- .4byte _08026318
- .4byte _08026350
- .4byte _08026380
- .4byte _080263C4
-_0802626C:
- ldr r1, _08026290 @ =gBattle_BG2_Y
- movs r0, 0x60
- strh r0, [r1]
- movs r0, 0x2
- movs r1, 0x7
- movs r2, 0
- bl SetBgAttribute
- movs r0, 0x2
- bl ShowBg
- bl sub_8026480
- ldr r1, _08026294 @ =gBattleScripting
- movs r0, 0x2
- strb r0, [r1, 0x1E]
- b _080263F6
- .align 2, 0
-_08026290: .4byte gBattle_BG2_Y
-_08026294: .4byte gBattleScripting
-_08026298:
- bl sub_80264D0
- lsls r0, 24
- cmp r0, 0
- beq _080262A4
- b _080263F6
-_080262A4:
- ldr r1, _080262AC @ =gBattleScripting
- movs r0, 0x3
- strb r0, [r1, 0x1E]
- b _080263F6
- .align 2, 0
-_080262AC: .4byte gBattleScripting
-_080262B0:
- ldr r1, _080262F8 @ =gBattle_BG1_X
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080262FC @ =gBattle_BG1_Y
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0x7
- movs r2, 0x1
- bl SetBgAttribute
- movs r0, 0x1
- movs r1, 0x7
- movs r2, 0
- bl SetBgAttribute
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x80
- str r0, [sp]
- movs r0, 0x12
- movs r1, 0x7
- movs r2, 0x1D
- movs r3, 0x13
- bl sub_802DB7C
- ldr r1, _08026300 @ =gBattleScripting
- movs r0, 0x4
- strb r0, [r1, 0x1E]
- b _080263F6
- .align 2, 0
-_080262F8: .4byte gBattle_BG1_X
-_080262FC: .4byte gBattle_BG1_Y
-_08026300: .4byte gBattleScripting
-_08026304:
- bl sub_8026404
- movs r0, 0xC
- bl PutWindowTilemap
- movs r0, 0xC
- movs r1, 0x3
- bl CopyWindowToVram
- b _0802636E
-_08026318:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080263F6
- ldr r0, _0802632C @ =gBattle_BG1_Y
- strh r1, [r0]
- b _0802636E
- .align 2, 0
-_0802632C: .4byte gBattle_BG1_Y
-_08026330:
- ldr r0, _0802634C @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- beq _080263F6
- movs r0, 0x5
- bl PlaySE
- bl sub_8026448
- movs r0, 0xC
- movs r1, 0x2
- bl CopyWindowToVram
- b _0802636E
- .align 2, 0
-_0802634C: .4byte gMain
-_08026350:
- ldr r0, _08026378 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- beq _080263F6
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x81
- str r0, [sp]
- movs r0, 0x12
- movs r1, 0x7
- movs r2, 0x1D
- movs r3, 0x13
- bl sub_802DB7C
-_0802636E:
- ldr r1, _0802637C @ =gBattleScripting
- ldrb r0, [r1, 0x1E]
- adds r0, 0x1
- strb r0, [r1, 0x1E]
- b _080263F6
- .align 2, 0
-_08026378: .4byte gMain
-_0802637C: .4byte gBattleScripting
-_08026380:
- bl sub_8026648
- lsls r0, 24
- cmp r0, 0
- bne _080263F6
- movs r0, 0xD
- bl ClearWindowTilemap
- movs r0, 0xD
- movs r1, 0x1
- bl CopyWindowToVram
- movs r0, 0xC
- bl ClearWindowTilemap
- movs r0, 0xC
- movs r1, 0x1
- bl CopyWindowToVram
- movs r0, 0x2
- movs r1, 0x7
- movs r2, 0x2
- bl SetBgAttribute
- movs r0, 0x2
- bl ShowBg
- ldr r1, _080263C0 @ =gBattleScripting
- movs r0, 0xA
- strb r0, [r1, 0x1E]
- b _080263F6
- .align 2, 0
-_080263C0: .4byte gBattleScripting
-_080263C4:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _080263F6
- movs r0, 0
- movs r1, 0x7
- movs r2, 0
- bl SetBgAttribute
- movs r0, 0x1
- movs r1, 0x7
- movs r2, 0x1
- bl SetBgAttribute
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- ldr r1, _08026400 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_080263F6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08026400: .4byte gUnknown_2023D74
- thumb_func_end atk6C_drawlvlupbox
-
- thumb_func_start sub_8026404
-sub_8026404: @ 8026404
- push {lr}
- sub sp, 0x14
- ldr r0, _0802643C @ =gBattleStruct
- ldr r0, [r0]
- ldrb r1, [r0, 0x10]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08026440 @ =gPlayerParty
- adds r0, r1
- add r1, sp, 0x8
- bl sub_811D130
- ldr r0, _08026444 @ =gBattleResources
- ldr r0, [r0]
- ldr r1, [r0, 0x10]
- movs r0, 0xD
- str r0, [sp]
- movs r0, 0xF
- str r0, [sp, 0x4]
- movs r0, 0xC
- add r2, sp, 0x8
- movs r3, 0xE
- bl sub_811E7F0
- add sp, 0x14
- pop {r0}
- bx r0
- .align 2, 0
-_0802643C: .4byte gBattleStruct
-_08026440: .4byte gPlayerParty
-_08026444: .4byte gBattleResources
- thumb_func_end sub_8026404
-
- thumb_func_start sub_8026448
-sub_8026448: @ 8026448
- push {lr}
- sub sp, 0x10
- ldr r0, _08026478 @ =gBattleStruct
- ldr r0, [r0]
- ldrb r1, [r0, 0x10]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802647C @ =gPlayerParty
- adds r0, r1
- add r1, sp, 0x4
- bl sub_811D130
- movs r0, 0xF
- str r0, [sp]
- movs r0, 0xC
- add r1, sp, 0x4
- movs r2, 0xE
- movs r3, 0xD
- bl sub_811E93C
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_08026478: .4byte gBattleStruct
-_0802647C: .4byte gPlayerParty
- thumb_func_end sub_8026448
-
- thumb_func_start sub_8026480
-sub_8026480: @ 8026480
- push {lr}
- ldr r1, _080264C0 @ =gBattle_BG2_Y
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080264C4 @ =gBattle_BG2_X
- movs r2, 0xD0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080264C8 @ =gUnknown_82506D0
- movs r1, 0x60
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _080264CC @ =gUnknown_82506F0
- movs r0, 0xD
- movs r2, 0
- movs r3, 0
- bl CopyToWindowPixelBuffer
- movs r0, 0xD
- bl PutWindowTilemap
- movs r0, 0xD
- movs r1, 0x3
- bl CopyWindowToVram
- bl PutMonIconOnLvlUpBox
- pop {r0}
- bx r0
- .align 2, 0
-_080264C0: .4byte gBattle_BG2_Y
-_080264C4: .4byte gBattle_BG2_X
-_080264C8: .4byte gUnknown_82506D0
-_080264CC: .4byte gUnknown_82506F0
- thumb_func_end sub_8026480
-
- thumb_func_start sub_80264D0
-sub_80264D0: @ 80264D0
- push {r4,r5,lr}
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- beq _080264E0
- movs r0, 0x1
- b _0802651A
-_080264E0:
- ldr r4, _080264F0 @ =gBattle_BG2_X
- ldrh r1, [r4]
- movs r5, 0x80
- lsls r5, 2
- cmp r1, r5
- bne _080264F4
- movs r0, 0
- b _0802651A
- .align 2, 0
-_080264F0: .4byte gBattle_BG2_X
-_080264F4:
- movs r0, 0xD0
- lsls r0, 1
- cmp r1, r0
- bne _08026500
- bl PutLevelAndGenderOnLvlUpBox
-_08026500:
- ldrh r0, [r4]
- adds r0, 0x8
- strh r0, [r4]
- lsls r0, 16
- ldr r1, _08026520 @ =0x01ff0000
- cmp r0, r1
- bls _08026510
- strh r5, [r4]
-_08026510:
- ldrh r1, [r4]
- eors r1, r5
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
-_0802651A:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08026520: .4byte 0x01ff0000
- thumb_func_end sub_80264D0
-
- thumb_func_start PutLevelAndGenderOnLvlUpBox
-PutLevelAndGenderOnLvlUpBox: @ 8026524
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- ldr r6, _080265F8 @ =gBattleStruct
- ldr r0, [r6]
- ldrb r0, [r0, 0x10]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _080265FC @ =gPlayerParty
- adds r0, r4
- movs r1, 0x38
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, [r6]
- ldrb r0, [r0, 0x10]
- muls r0, r5
- adds r0, r4
- bl GetMonGender
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, [r6]
- ldrb r0, [r0, 0x10]
- muls r0, r5
- adds r0, r4
- ldr r6, _08026600 @ =gStringVar4
- adds r1, r6, 0
- bl GetMonNickname
- str r6, [sp]
- mov r1, sp
- movs r4, 0
- movs r0, 0xD
- strb r0, [r1, 0x4]
- mov r0, sp
- strb r4, [r0, 0x5]
- movs r5, 0x20
- strb r5, [r0, 0x6]
- strb r4, [r0, 0x7]
- strb r5, [r0, 0x8]
- strb r4, [r0, 0x9]
- strb r4, [r0, 0xA]
- strb r4, [r0, 0xB]
- mov r3, sp
- ldrb r2, [r3, 0xC]
- movs r1, 0x10
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3, 0xC]
- mov r2, sp
- movs r0, 0x10
- strb r0, [r2, 0xC]
- ldrb r0, [r2, 0xD]
- ands r1, r0
- strb r1, [r2, 0xD]
- mov r0, sp
- strb r5, [r0, 0xD]
- movs r1, 0xFF
- movs r2, 0
- bl AddTextPrinter
- movs r0, 0xF9
- strb r0, [r6]
- adds r6, 0x1
- movs r0, 0x5
- strb r0, [r6]
- adds r6, 0x1
- strb r4, [r6]
- adds r6, 0x1
- adds r4, r6, 0
- adds r0, r4, 0
- mov r1, r8
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r6, r0, 0
- movs r1, 0
- movs r2, 0x5
- bl StringFill
- adds r6, r4, 0x4
- cmp r7, 0xFF
- beq _08026624
- cmp r7, 0
- bne _08026604
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0xC
- bl WriteColorChangeControlCode
- adds r6, r0, 0
- movs r1, 0x1
- movs r2, 0xD
- bl WriteColorChangeControlCode
- adds r6, r0, 0
- movs r0, 0xB5
- b _0802661C
- .align 2, 0
-_080265F8: .4byte gBattleStruct
-_080265FC: .4byte gPlayerParty
-_08026600: .4byte gStringVar4
-_08026604:
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0xE
- bl WriteColorChangeControlCode
- adds r6, r0, 0
- movs r1, 0x1
- movs r2, 0xF
- bl WriteColorChangeControlCode
- adds r6, r0, 0
- movs r0, 0xB6
-_0802661C:
- strb r0, [r6]
- adds r6, 0x1
- movs r0, 0xFF
- strb r0, [r6]
-_08026624:
- mov r0, sp
- movs r1, 0xA
- strb r1, [r0, 0x7]
- strb r1, [r0, 0x9]
- movs r1, 0xFF
- movs r2, 0
- bl AddTextPrinter
- movs r0, 0xD
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PutLevelAndGenderOnLvlUpBox
-
- thumb_func_start sub_8026648
-sub_8026648: @ 8026648
- push {lr}
- ldr r0, _0802665C @ =gBattle_BG2_X
- ldrh r1, [r0]
- movs r3, 0xD0
- lsls r3, 1
- adds r2, r0, 0
- cmp r1, r3
- bne _08026660
- movs r0, 0
- b _08026684
- .align 2, 0
-_0802665C: .4byte gBattle_BG2_X
-_08026660:
- ldrh r0, [r2]
- adds r1, r0, 0
- subs r1, 0x10
- ldr r0, _08026670 @ =0x0000019f
- cmp r1, r0
- bgt _08026674
- strh r3, [r2]
- b _08026676
- .align 2, 0
-_08026670: .4byte 0x0000019f
-_08026674:
- strh r1, [r2]
-_08026676:
- ldrh r1, [r2]
- movs r0, 0xD0
- lsls r0, 1
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
-_08026684:
- pop {r1}
- bx r1
- thumb_func_end sub_8026648
-
- thumb_func_start PutMonIconOnLvlUpBox
-PutMonIconOnLvlUpBox: @ 8026688
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x10
- ldr r0, _08026730 @ =gBattleStruct
- mov r8, r0
- ldr r0, [r0]
- ldrb r0, [r0, 0x10]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08026734 @ =gPlayerParty
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r1, r8
- ldr r0, [r1]
- ldrb r0, [r0, 0x10]
- muls r0, r6
- adds r0, r5
- movs r1, 0
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x1
- bl GetMonIconPtr
- str r0, [sp]
- ldr r5, _08026738 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r5
- movs r1, 0x80
- lsls r1, 2
- orrs r0, r1
- ldr r1, _0802673C @ =0x0000ffff
- ands r0, r1
- ldr r1, _08026740 @ =0xd75a0000
- orrs r0, r1
- str r0, [sp, 0x4]
- adds r0, r4, 0
- bl GetValidMonIconPalettePtr
- str r0, [sp, 0x8]
- add r4, sp, 0x8
- ldr r0, [r4, 0x4]
- ands r0, r5
- ldr r1, _08026744 @ =0x0000d75a
- orrs r0, r1
- str r0, [r4, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl LoadSpritePalette
- ldr r0, _08026748 @ =gUnknown_82507C8
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0xA
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0802674C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _08026750 @ =gBattle_BG2_X
- ldrh r0, [r0]
- strh r0, [r1, 0x30]
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08026730: .4byte gBattleStruct
-_08026734: .4byte gPlayerParty
-_08026738: .4byte 0xffff0000
-_0802673C: .4byte 0x0000ffff
-_08026740: .4byte 0xd75a0000
-_08026744: .4byte 0x0000d75a
-_08026748: .4byte gUnknown_82507C8
-_0802674C: .4byte gSprites
-_08026750: .4byte gBattle_BG2_X
- thumb_func_end PutMonIconOnLvlUpBox
-
- thumb_func_start SpriteCB_MonIconOnLvlUpBox
-SpriteCB_MonIconOnLvlUpBox: @ 8026754
- push {r4,lr}
- adds r2, r0, 0
- ldr r0, _08026770 @ =gBattle_BG2_X
- ldrh r1, [r2, 0x30]
- ldrh r0, [r0]
- subs r1, r0
- strh r1, [r2, 0x24]
- lsls r1, 16
- cmp r1, 0
- beq _08026774
- movs r0, 0x1
- strh r0, [r2, 0x2E]
- b _08026790
- .align 2, 0
-_08026770: .4byte gBattle_BG2_X
-_08026774:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _08026790
- adds r0, r2, 0
- bl DestroySprite
- ldr r4, _08026798 @ =0x0000d75a
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
-_08026790:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08026798: .4byte 0x0000d75a
- thumb_func_end SpriteCB_MonIconOnLvlUpBox
-
- thumb_func_start IsMonGettingExpSentOut
-IsMonGettingExpSentOut: @ 802679C
- push {lr}
- ldr r3, _080267C4 @ =gBattlerPartyIndexes
- ldr r0, _080267C8 @ =gBattleStruct
- ldr r0, [r0]
- ldrh r1, [r3]
- ldrb r2, [r0, 0x10]
- cmp r1, r2
- beq _080267BE
- ldr r0, _080267CC @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080267D0
- ldrh r0, [r3, 0x4]
- cmp r0, r2
- bne _080267D0
-_080267BE:
- movs r0, 0x1
- b _080267D2
- .align 2, 0
-_080267C4: .4byte gBattlerPartyIndexes
-_080267C8: .4byte gBattleStruct
-_080267CC: .4byte gBattleTypeFlags
-_080267D0:
- movs r0, 0
-_080267D2:
- pop {r1}
- bx r1
- thumb_func_end IsMonGettingExpSentOut
-
- thumb_func_start atk6D_resetsentmonsvalue
-atk6D_resetsentmonsvalue: @ 80267D8
- push {lr}
- bl ResetSentPokesToOpponentValue
- ldr r1, _080267EC @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080267EC: .4byte gUnknown_2023D74
- thumb_func_end atk6D_resetsentmonsvalue
-
- thumb_func_start atk6E_setatktoplayer0
-atk6E_setatktoplayer0: @ 80267F0
- push {lr}
- movs r0, 0
- bl GetBattlerAtPosition
- ldr r1, _08026808 @ =sBattler_AI
- strb r0, [r1]
- ldr r1, _0802680C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08026808: .4byte sBattler_AI
-_0802680C: .4byte gUnknown_2023D74
- thumb_func_end atk6E_setatktoplayer0
-
- thumb_func_start atk6F_makevisible
-atk6F_makevisible: @ 8026810
- push {r4,r5,lr}
- ldr r5, _0802683C @ =gUnknown_2023D74
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r4, _08026840 @ =gActiveBattler
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- bl EmitSpriteInvisibility
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802683C: .4byte gUnknown_2023D74
-_08026840: .4byte gActiveBattler
- thumb_func_end atk6F_makevisible
-
- thumb_func_start atk70_recordlastability
-atk70_recordlastability: @ 8026844
- push {r4,lr}
- ldr r4, _0802686C @ =gUnknown_2023D74
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r1, _08026870 @ =gActiveBattler
- strb r0, [r1]
- ldrb r0, [r1]
- ldr r1, _08026874 @ =gLastUsedAbility
- ldrb r1, [r1]
- bl sub_80C71D0
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802686C: .4byte gUnknown_2023D74
-_08026870: .4byte gActiveBattler
-_08026874: .4byte gLastUsedAbility
- thumb_func_end atk70_recordlastability
-
- thumb_func_start BufferMoveToLearnIntoBattleTextBuff2
-BufferMoveToLearnIntoBattleTextBuff2: @ 8026878
- ldr r2, _08026898 @ =gBattleTextBuff2
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x2
- strb r0, [r2, 0x1]
- ldr r0, _0802689C @ =gMoveToLearn
- ldrh r1, [r0]
- strb r1, [r2, 0x2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r2, 0x3]
- movs r0, 0xFF
- strb r0, [r2, 0x4]
- bx lr
- .align 2, 0
-_08026898: .4byte gBattleTextBuff2
-_0802689C: .4byte gMoveToLearn
- thumb_func_end BufferMoveToLearnIntoBattleTextBuff2
-
- thumb_func_start atk71_buffermovetolearn
-atk71_buffermovetolearn: @ 80268A0
- push {lr}
- bl BufferMoveToLearnIntoBattleTextBuff2
- ldr r1, _080268B4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080268B4: .4byte gUnknown_2023D74
- thumb_func_end atk71_buffermovetolearn
-
- thumb_func_start atk72_jumpifplayerran
-atk72_jumpifplayerran: @ 80268B8
- push {lr}
- ldr r0, _080268E4 @ =gUnknown_2023D6D
- ldrb r0, [r0]
- bl sub_8016748
- lsls r0, 24
- cmp r0, 0
- beq _080268EC
- ldr r3, _080268E8 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _080268F4
- .align 2, 0
-_080268E4: .4byte gUnknown_2023D6D
-_080268E8: .4byte gUnknown_2023D74
-_080268EC:
- ldr r1, _080268F8 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_080268F4:
- pop {r0}
- bx r0
- .align 2, 0
-_080268F8: .4byte gUnknown_2023D74
- thumb_func_end atk72_jumpifplayerran
-
- thumb_func_start atk73_hpthresholds
-atk73_hpthresholds: @ 80268FC
- push {r4-r6,lr}
- ldr r0, _0802694C @ =gBattleTypeFlags
- ldr r4, [r0]
- movs r6, 0x1
- ands r4, r6
- cmp r4, 0
- bne _08026992
- ldr r0, _08026950 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r1, _08026954 @ =gActiveBattler
- strb r0, [r1]
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08026958 @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r5, [r1, 0x28]
- movs r0, 0x64
- muls r0, r5
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- cmp r0, 0
- bne _0802693A
- movs r0, 0x1
-_0802693A:
- cmp r0, 0x45
- bgt _08026942
- cmp r5, 0
- bne _08026960
-_08026942:
- ldr r0, _0802695C @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xAD
- strb r4, [r0]
- b _08026992
- .align 2, 0
-_0802694C: .4byte gBattleTypeFlags
-_08026950: .4byte gUnknown_2023D74
-_08026954: .4byte gActiveBattler
-_08026958: .4byte gBattleMons
-_0802695C: .4byte gBattleStruct
-_08026960:
- cmp r0, 0x27
- ble _08026974
- ldr r0, _08026970 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xAD
- strb r6, [r0]
- b _08026992
- .align 2, 0
-_08026970: .4byte gBattleStruct
-_08026974:
- cmp r0, 0x9
- ble _08026988
- ldr r0, _08026984 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xAD
- movs r1, 0x2
- b _08026990
- .align 2, 0
-_08026984: .4byte gBattleStruct
-_08026988:
- ldr r0, _080269A0 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xAD
- movs r1, 0x3
-_08026990:
- strb r1, [r0]
-_08026992:
- ldr r1, _080269A4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080269A0: .4byte gBattleStruct
-_080269A4: .4byte gUnknown_2023D74
- thumb_func_end atk73_hpthresholds
-
- thumb_func_start atk74_hpthresholds2
-atk74_hpthresholds2: @ 80269A8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08026A0C @ =gBattleTypeFlags
- ldr r7, [r0]
- movs r0, 0x1
- mov r8, r0
- ands r7, r0
- cmp r7, 0
- bne _08026A42
- ldr r0, _08026A10 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- adds r4, r0, 0
- ldr r0, _08026A14 @ =gActiveBattler
- strb r4, [r0]
- movs r0, 0x1
- eors r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- ldr r1, _08026A18 @ =gBattleStruct
- ldr r6, [r1]
- lsrs r0, 23
- adds r0, r6
- adds r0, 0xA8
- ldrb r5, [r0]
- ldr r1, _08026A1C @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r4, [r0, 0x28]
- subs r1, r5, r4
- movs r0, 0x64
- muls r0, r1
- adds r1, r5, 0
- bl __divsi3
- adds r1, r0, 0
- cmp r4, r5
- bcc _08026A20
- adds r0, r6, 0
- adds r0, 0xAD
- strb r7, [r0]
- b _08026A42
- .align 2, 0
-_08026A0C: .4byte gBattleTypeFlags
-_08026A10: .4byte gUnknown_2023D74
-_08026A14: .4byte gActiveBattler
-_08026A18: .4byte gBattleStruct
-_08026A1C: .4byte gBattleMons
-_08026A20:
- cmp r0, 0x1D
- bgt _08026A2E
- adds r0, r6, 0
- adds r0, 0xAD
- mov r1, r8
- strb r1, [r0]
- b _08026A42
-_08026A2E:
- cmp r1, 0x45
- bgt _08026A3A
- adds r1, r6, 0
- adds r1, 0xAD
- movs r0, 0x2
- b _08026A40
-_08026A3A:
- adds r1, r6, 0
- adds r1, 0xAD
- movs r0, 0x3
-_08026A40:
- strb r0, [r1]
-_08026A42:
- ldr r1, _08026A54 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08026A54: .4byte gUnknown_2023D74
- thumb_func_end atk74_hpthresholds2
-
- thumb_func_start atk75_useitemonopponent
-atk75_useitemonopponent: @ 8026A58
- push {lr}
- sub sp, 0x4
- ldr r2, _08026A98 @ =gBattlerInMenuId
- ldr r1, _08026A9C @ =sBattler_AI
- ldrb r0, [r1]
- strb r0, [r2]
- ldr r2, _08026AA0 @ =gBattlerPartyIndexes
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r1, _08026AA4 @ =gEnemyParty
- adds r0, r1
- ldr r1, _08026AA8 @ =gUnknown_2023D68
- ldrh r1, [r1]
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0x1
- str r3, [sp]
- movs r3, 0
- bl PokemonUseItemEffects
- ldr r1, _08026AAC @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08026A98: .4byte gBattlerInMenuId
-_08026A9C: .4byte sBattler_AI
-_08026AA0: .4byte gBattlerPartyIndexes
-_08026AA4: .4byte gEnemyParty
-_08026AA8: .4byte gUnknown_2023D68
-_08026AAC: .4byte gUnknown_2023D74
- thumb_func_end atk75_useitemonopponent
-
- thumb_func_start sub_8026AB0
-sub_8026AB0: @ 8026AB0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- ldr r4, _08026ADC @ =gUnknown_2023D74
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r1, _08026AE0 @ =gActiveBattler
- strb r0, [r1]
- ldr r0, [r4]
- ldrb r0, [r0, 0x2]
- cmp r0, 0xC
- bls _08026AD2
- b _08026F4E
-_08026AD2:
- lsls r0, 2
- ldr r1, _08026AE4 @ =_08026AE8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08026ADC: .4byte gUnknown_2023D74
-_08026AE0: .4byte gActiveBattler
-_08026AE4: .4byte _08026AE8
- .align 2, 0
-_08026AE8:
- .4byte _08026B1C
- .4byte _08026B2C
- .4byte _08026B8C
- .4byte _08026B9C
- .4byte _08026BB4
- .4byte _08026BF0
- .4byte _08026C28
- .4byte _08026CB4
- .4byte _08026CF4
- .4byte _08026D50
- .4byte _08026D64
- .4byte _08026DA0
- .4byte _08026F44
-_08026B1C:
- ldr r0, _08026B28 @ =gActiveBattler
- ldrb r0, [r0]
- bl CancelMultiTurnMoves
- b _08026F4E
- .align 2, 0
-_08026B28: .4byte gActiveBattler
-_08026B2C:
- ldr r1, _08026B68 @ =sBattler_AI
- ldr r4, _08026B6C @ =gBattlerTarget
- ldrb r0, [r4]
- strb r0, [r1]
- ldrb r0, [r1]
- bl GetBattlerSide
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08026B70 @ =gSideTimers
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r2, r1, r2
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _08026B78
- ldr r1, _08026B74 @ =gBattleMons
- ldrb r2, [r2, 0x9]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08026B78
- strb r2, [r4]
- b _08026F4E
- .align 2, 0
-_08026B68: .4byte sBattler_AI
-_08026B6C: .4byte gBattlerTarget
-_08026B70: .4byte gSideTimers
-_08026B74: .4byte gBattleMons
-_08026B78:
- ldr r0, _08026B84 @ =gBattlerTarget
- ldr r1, _08026B88 @ =gActiveBattler
- ldrb r1, [r1]
- strb r1, [r0]
- b _08026F4E
- .align 2, 0
-_08026B84: .4byte gBattlerTarget
-_08026B88: .4byte gActiveBattler
-_08026B8C:
- bl IsRunningFromBattleImpossible
- ldr r1, _08026B98 @ =gUnknown_2023E82
- strb r0, [r1]
- b _08026F4E
- .align 2, 0
-_08026B98: .4byte gUnknown_2023E82
-_08026B9C:
- ldr r0, _08026BAC @ =gCurrentMove
- ldrh r0, [r0]
- movs r1, 0
- bl GetMoveTarget
- ldr r1, _08026BB0 @ =gBattlerTarget
- strb r0, [r1]
- b _08026F4E
- .align 2, 0
-_08026BAC: .4byte gCurrentMove
-_08026BB0: .4byte gBattlerTarget
-_08026BB4:
- ldr r2, _08026BD4 @ =gUnknown_2023DD0
- ldr r1, _08026BD8 @ =gBitTable
- ldr r0, _08026BDC @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r0, 28
- ldr r2, [r2]
- ands r2, r0
- cmp r2, 0
- beq _08026BE4
- ldr r1, _08026BE0 @ =gUnknown_2023E82
- movs r0, 0x1
- strb r0, [r1]
- b _08026F4E
- .align 2, 0
-_08026BD4: .4byte gUnknown_2023DD0
-_08026BD8: .4byte gBitTable
-_08026BDC: .4byte gActiveBattler
-_08026BE0: .4byte gUnknown_2023E82
-_08026BE4:
- ldr r0, _08026BEC @ =gUnknown_2023E82
- strb r2, [r0]
- b _08026F4E
- .align 2, 0
-_08026BEC: .4byte gUnknown_2023E82
-_08026BF0:
- ldr r4, _08026C20 @ =gUnknown_2023ECC
- ldr r3, _08026C24 @ =gActiveBattler
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- b _08026F4E
- .align 2, 0
-_08026C20: .4byte gUnknown_2023ECC
-_08026C24: .4byte gActiveBattler
-_08026C28:
- ldr r4, _08026C4C @ =gBattlerPartyIndexes
- ldr r1, _08026C50 @ =gBattleStruct
- ldr r0, [r1]
- ldrh r3, [r4]
- ldrb r2, [r0, 0x10]
- adds r5, r1, 0
- cmp r3, r2
- beq _08026C44
- ldrh r0, [r4, 0x4]
- cmp r0, r2
- beq _08026C40
- b _08026F4E
-_08026C40:
- cmp r3, r0
- bne _08026C58
-_08026C44:
- ldr r1, _08026C54 @ =gActiveBattler
- movs r0, 0
- b _08026C5C
- .align 2, 0
-_08026C4C: .4byte gBattlerPartyIndexes
-_08026C50: .4byte gBattleStruct
-_08026C54: .4byte gActiveBattler
-_08026C58:
- ldr r1, _08026CAC @ =gActiveBattler
- movs r0, 0x2
-_08026C5C:
- strb r0, [r1]
- mov r8, r1
- mov r0, r8
- ldrb r2, [r0]
- lsls r0, r2, 1
- adds r0, 0xC8
- ldr r1, [r5]
- adds r3, r1, r0
- movs r7, 0
- ldr r1, _08026CB0 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- ldrh r2, [r3]
- cmp r0, r2
- beq _08026C9E
- mov r5, r8
- movs r4, 0x58
- adds r2, r1, 0
-_08026C86:
- adds r7, 0x1
- cmp r7, 0x3
- bgt _08026C9E
- lsls r1, r7, 1
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- ldrh r1, [r3]
- cmp r0, r1
- bne _08026C86
-_08026C9E:
- cmp r7, 0x4
- beq _08026CA4
- b _08026F4E
-_08026CA4:
- movs r0, 0
- strh r0, [r3]
- b _08026F4E
- .align 2, 0
-_08026CAC: .4byte gActiveBattler
-_08026CB0: .4byte gBattleMons
-_08026CB4:
- ldr r0, _08026CE4 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0xB
- ands r0, r1
- cmp r0, 0x8
- beq _08026CC2
- b _08026F4E
-_08026CC2:
- ldr r1, _08026CE8 @ =gBattleMons
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- bne _08026CCC
- b _08026F4E
-_08026CCC:
- adds r0, r1, 0
- adds r0, 0x80
- ldrh r0, [r0]
- cmp r0, 0
- bne _08026CD8
- b _08026F4E
-_08026CD8:
- ldr r0, _08026CEC @ =gUnknown_2023DD0
- ldr r1, [r0]
- ldr r2, _08026CF0 @ =0xffbfffff
- ands r1, r2
- str r1, [r0]
- b _08026F4E
- .align 2, 0
-_08026CE4: .4byte gBattleTypeFlags
-_08026CE8: .4byte gBattleMons
-_08026CEC: .4byte gUnknown_2023DD0
-_08026CF0: .4byte 0xffbfffff
-_08026CF4:
- movs r7, 0
- ldr r2, _08026D3C @ =gUnknown_2023E82
- strb r7, [r2, 0x5]
- ldr r1, _08026D40 @ =gActiveBattler
- movs r0, 0x1
- strb r0, [r1]
- mov r8, r1
- ldr r0, _08026D44 @ =gBattlersCount
- mov r4, r8
- ldrb r5, [r0]
- ldr r6, _08026D48 @ =gBattleMons
- ldr r3, _08026D4C @ =gBitTable
-_08026D0C:
- ldrb r0, [r4]
- cmp r0, r5
- bcs _08026D2A
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08026D2A
- ldr r0, [r3]
- ldrb r1, [r2, 0x5]
- orrs r0, r1
- strb r0, [r2, 0x5]
-_08026D2A:
- adds r3, 0x4
- ldrb r0, [r4]
- adds r0, 0x2
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08026D0C
- b _08026F4E
- .align 2, 0
-_08026D3C: .4byte gUnknown_2023E82
-_08026D40: .4byte gActiveBattler
-_08026D44: .4byte gBattlersCount
-_08026D48: .4byte gBattleMons
-_08026D4C: .4byte gBitTable
-_08026D50:
- ldr r4, _08026D5C @ =gActiveBattler
- movs r0, 0x1
- strb r0, [r4]
- ldr r0, _08026D60 @ =gBattleMons
- adds r0, 0x58
- b _08026D7C
- .align 2, 0
-_08026D5C: .4byte gActiveBattler
-_08026D60: .4byte gBattleMons
-_08026D64:
- ldr r0, _08026D94 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r0, 0x3
- bhi _08026D6E
- b _08026F4E
-_08026D6E:
- ldr r4, _08026D98 @ =gActiveBattler
- movs r0, 0x3
- strb r0, [r4]
- ldr r0, _08026D9C @ =gBattleMons
- movs r1, 0x84
- lsls r1, 1
- adds r0, r1
-_08026D7C:
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08026D84
- b _08026F4E
-_08026D84:
- movs r0, 0
- movs r1, 0
- bl EmitReturnMonToBall
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _08026F4E
- .align 2, 0
-_08026D94: .4byte gBattlersCount
-_08026D98: .4byte gActiveBattler
-_08026D9C: .4byte gBattleMons
-_08026DA0:
- ldr r0, _08026F28 @ =gUnknown_2023E82
- movs r1, 0
- strb r1, [r0, 0x5]
- mov r8, r1
- movs r7, 0
- ldr r0, _08026F2C @ =gBattlersCount
- mov r12, r0
- ldrb r2, [r0]
- cmp r8, r2
- bge _08026DEE
- ldr r4, _08026F30 @ =gBattleMons
- adds r3, r4, 0
- adds r3, 0x50
- adds r6, r4, 0
- adds r6, 0x20
- movs r5, 0
-_08026DC0:
- ldrb r0, [r6]
- cmp r0, 0x2B
- beq _08026DDE
- adds r2, r4, 0
- adds r2, 0x4C
- adds r2, r5, r2
- ldr r0, [r2]
- movs r1, 0x8
- negs r1, r1
- ands r0, r1
- str r0, [r2]
- ldr r0, [r3]
- ldr r1, _08026F34 @ =0xf7ffffff
- ands r0, r1
- str r0, [r3]
-_08026DDE:
- adds r3, 0x58
- adds r6, 0x58
- adds r5, 0x58
- adds r7, 0x1
- mov r0, r12
- ldrb r0, [r0]
- cmp r7, r0
- blt _08026DC0
-_08026DEE:
- movs r7, 0
- movs r1, 0xCE
- lsls r1, 1
- mov r9, r1
-_08026DF6:
- movs r0, 0x64
- adds r4, r7, 0
- muls r4, r0
- ldr r0, _08026F38 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- str r1, [sp, 0x4]
- cmp r5, 0
- beq _08026E4E
- cmp r5, r9
- beq _08026E4E
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08026E4E
- adds r0, r5, 0
- adds r1, r6, 0
- bl GetAbilityBySpecies
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2B
- beq _08026E4E
- movs r0, 0x1
- lsls r0, r7
- mov r2, r8
- orrs r2, r0
- mov r8, r2
-_08026E4E:
- adds r7, 0x1
- cmp r7, 0x5
- ble _08026DF6
- mov r0, r8
- cmp r0, 0
- beq _08026E88
- movs r0, 0
- bl GetBattlerAtPosition
- ldr r4, _08026F3C @ =gActiveBattler
- strb r0, [r4]
- movs r0, 0
- str r0, [sp, 0x4]
- mov r1, r8
- lsls r2, r1, 24
- lsrs r2, 24
- add r0, sp, 0x4
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r3, 0x4
- bl EmitSetMonData
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r1, _08026F28 @ =gUnknown_2023E82
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_08026E88:
- movs r1, 0
- mov r8, r1
- movs r7, 0
- movs r2, 0xCE
- lsls r2, 1
- mov r9, r2
-_08026E94:
- movs r0, 0x64
- adds r4, r7, 0
- muls r4, r0
- ldr r0, _08026F40 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- str r1, [sp, 0x4]
- cmp r5, 0
- beq _08026EEC
- cmp r5, r9
- beq _08026EEC
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08026EEC
- adds r0, r5, 0
- adds r1, r6, 0
- bl GetAbilityBySpecies
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2B
- beq _08026EEC
- movs r0, 0x1
- lsls r0, r7
- mov r1, r8
- orrs r1, r0
- mov r8, r1
-_08026EEC:
- adds r7, 0x1
- cmp r7, 0x5
- ble _08026E94
- mov r2, r8
- cmp r2, 0
- beq _08026F4E
- movs r0, 0x1
- bl GetBattlerAtPosition
- ldr r4, _08026F3C @ =gActiveBattler
- strb r0, [r4]
- movs r0, 0
- str r0, [sp, 0x4]
- mov r0, r8
- lsls r2, r0, 24
- lsrs r2, 24
- add r1, sp, 0x4
- str r1, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r3, 0x4
- bl EmitSetMonData
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r1, _08026F28 @ =gUnknown_2023E82
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08026F4E
- .align 2, 0
-_08026F28: .4byte gUnknown_2023E82
-_08026F2C: .4byte gBattlersCount
-_08026F30: .4byte gBattleMons
-_08026F34: .4byte 0xf7ffffff
-_08026F38: .4byte gPlayerParty
-_08026F3C: .4byte gActiveBattler
-_08026F40: .4byte gEnemyParty
-_08026F44:
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _08026F56
-_08026F4E:
- ldr r1, _08026F64 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x3
- str r0, [r1]
-_08026F56:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08026F64: .4byte gUnknown_2023D74
- thumb_func_end sub_8026AB0
-
- thumb_func_start atk77_setprotectlike
-atk77_setprotectlike: @ 8026F68
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0x1
- ldr r2, _08027034 @ =gUnknown_2023DB0
- ldr r1, _08027038 @ =sBattler_AI
- ldrb r3, [r1]
- lsls r0, r3, 1
- adds r0, r2
- ldrh r0, [r0]
- mov r8, r1
- ldr r7, _0802703C @ =gDisableStructs
- cmp r0, 0xB6
- beq _08026F98
- cmp r0, 0xC5
- beq _08026F98
- cmp r0, 0xCB
- beq _08026F98
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r7
- movs r1, 0
- strb r1, [r0, 0x8]
-_08026F98:
- ldr r0, _08027040 @ =gUnknown_2023BE2
- ldrb r1, [r0]
- ldr r0, _08027044 @ =gBattlersCount
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _08026FA8
- movs r6, 0
-_08026FA8:
- ldr r2, _08027048 @ =gUnknown_82507E0
- mov r5, r8
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r4, [r0, 0x8]
- lsls r4, 1
- adds r4, r2
- bl Random
- ldrh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bcc _0802705C
- cmp r6, 0
- beq _0802705C
- ldr r4, _0802704C @ =gBattleMoves
- ldr r3, _08027050 @ =gCurrentMove
- ldrh r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- cmp r0, 0x6F
- bne _08026FF8
- ldr r0, _08027054 @ =gUnknown_2023E8C
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _08027058 @ =gUnknown_2023E82
- movs r0, 0
- strb r0, [r1, 0x5]
-_08026FF8:
- ldrh r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- cmp r0, 0x74
- bne _0802701E
- ldr r0, _08027054 @ =gUnknown_2023E8C
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _08027058 @ =gUnknown_2023E82
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_0802701E:
- mov r1, r8
- ldrb r0, [r1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r0, [r1, 0x8]
- adds r0, 0x1
- strb r0, [r1, 0x8]
- b _0802707E
- .align 2, 0
-_08027034: .4byte gUnknown_2023DB0
-_08027038: .4byte sBattler_AI
-_0802703C: .4byte gDisableStructs
-_08027040: .4byte gUnknown_2023BE2
-_08027044: .4byte gBattlersCount
-_08027048: .4byte gUnknown_82507E0
-_0802704C: .4byte gBattleMoves
-_08027050: .4byte gCurrentMove
-_08027054: .4byte gUnknown_2023E8C
-_08027058: .4byte gUnknown_2023E82
-_0802705C:
- ldr r2, _08027090 @ =gDisableStructs
- ldr r0, _08027094 @ =sBattler_AI
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x8]
- ldr r1, _08027098 @ =gUnknown_2023E82
- movs r0, 0x2
- strb r0, [r1, 0x5]
- ldr r2, _0802709C @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_0802707E:
- ldr r1, _080270A0 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027090: .4byte gDisableStructs
-_08027094: .4byte sBattler_AI
-_08027098: .4byte gUnknown_2023E82
-_0802709C: .4byte gMoveResultFlags
-_080270A0: .4byte gUnknown_2023D74
- thumb_func_end atk77_setprotectlike
-
- thumb_func_start atk78_faintifabilitynotdamp
-atk78_faintifabilitynotdamp: @ 80270A4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08027160 @ =gUnknown_2023BC8
- ldr r2, [r0]
- cmp r2, 0
- bne _080271A8
- ldr r1, _08027164 @ =gBattlerTarget
- strb r2, [r1]
- ldr r0, _08027168 @ =gBattlersCount
- ldrb r3, [r0]
- adds r5, r1, 0
- mov r8, r0
- ldr r6, _0802716C @ =gBattleMons
- cmp r2, r3
- bcs _080270F0
- adds r0, r6, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x6
- beq _080270F0
- adds r2, r3, 0
- adds r4, r6, 0
- movs r3, 0x58
-_080270D4:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r2
- bcs _080270F0
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _080270D4
-_080270F0:
- ldrb r0, [r5]
- mov r1, r8
- ldrb r1, [r1]
- cmp r0, r1
- bne _0802718C
- ldr r4, _08027170 @ =gActiveBattler
- ldr r7, _08027174 @ =sBattler_AI
- ldrb r0, [r7]
- strb r0, [r4]
- ldr r2, _08027178 @ =gBattleMoveDamage
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r6
- ldrh r0, [r0, 0x28]
- str r0, [r2]
- ldr r1, _0802717C @ =0x00007fff
- movs r0, 0
- bl EmitHealthBarUpdate
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r1, _08027180 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- movs r0, 0
- strb r0, [r5]
- mov r2, r8
- ldrb r0, [r2]
- cmp r0, 0
- beq _080271A8
- adds r3, r5, 0
- ldrb r5, [r7]
- ldr r7, _08027184 @ =gBitTable
- adds r4, r0, 0
- ldr r6, _08027188 @ =gAbsentBattlerFlags
-_0802713C:
- ldrb r2, [r3]
- cmp r2, r5
- beq _08027152
- ldrb r0, [r6]
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r7
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _080271A8
-_08027152:
- adds r0, r2, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcc _0802713C
- b _080271A8
- .align 2, 0
-_08027160: .4byte gUnknown_2023BC8
-_08027164: .4byte gBattlerTarget
-_08027168: .4byte gBattlersCount
-_0802716C: .4byte gBattleMons
-_08027170: .4byte gActiveBattler
-_08027174: .4byte sBattler_AI
-_08027178: .4byte gBattleMoveDamage
-_0802717C: .4byte 0x00007fff
-_08027180: .4byte gUnknown_2023D74
-_08027184: .4byte gBitTable
-_08027188: .4byte gAbsentBattlerFlags
-_0802718C:
- ldr r1, _080271B4 @ =gLastUsedAbility
- movs r0, 0x6
- strb r0, [r1]
- ldrb r0, [r5]
- movs r1, 0x58
- muls r1, r0
- adds r1, r6
- adds r1, 0x20
- ldrb r1, [r1]
- bl sub_80C71D0
- ldr r1, _080271B8 @ =gUnknown_2023D74
- ldr r0, _080271BC @ =gUnknown_81D93AF
- str r0, [r1]
-_080271A8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080271B4: .4byte gLastUsedAbility
-_080271B8: .4byte gUnknown_2023D74
-_080271BC: .4byte gUnknown_81D93AF
- thumb_func_end atk78_faintifabilitynotdamp
-
- thumb_func_start atk79_setatkhptozero
-atk79_setatkhptozero: @ 80271C0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0802720C @ =gUnknown_2023BC8
- ldr r3, [r0]
- cmp r3, 0
- bne _08027204
- ldr r4, _08027210 @ =gActiveBattler
- ldr r0, _08027214 @ =sBattler_AI
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _08027218 @ =gBattleMons
- ldrb r0, [r4]
- movs r2, 0x58
- muls r0, r2
- adds r0, r1
- strh r3, [r0, 0x28]
- ldrb r0, [r4]
- muls r0, r2
- adds r1, 0x28
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2A
- movs r2, 0
- movs r3, 0x2
- bl EmitSetMonData
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r1, _0802721C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08027204:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802720C: .4byte gUnknown_2023BC8
-_08027210: .4byte gActiveBattler
-_08027214: .4byte sBattler_AI
-_08027218: .4byte gBattleMons
-_0802721C: .4byte gUnknown_2023D74
- thumb_func_end atk79_setatkhptozero
-
- thumb_func_start atk7A_jumpifnexttargetvalid
-atk7A_jumpifnexttargetvalid: @ 8027220
- push {r4-r7,lr}
- ldr r3, _08027298 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r4, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r4, r0
- ldr r0, _0802729C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- adds r7, r3, 0
- cmp r0, 0
- beq _080272B8
- ldr r0, _080272A0 @ =gBattlerTarget
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r2, _080272A4 @ =sBattler_AI
- lsls r1, 24
- lsrs r1, 24
- adds r3, r0, 0
- ldr r6, _080272A8 @ =gAbsentBattlerFlags
- ldr r5, _080272AC @ =gBitTable
- ldr r0, _080272B0 @ =gBattlersCount
- mov r12, r0
- ldrb r0, [r2]
- cmp r1, r0
- bne _08027276
-_08027266:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r2]
- cmp r0, r1
- beq _08027266
-_08027276:
- ldrb r0, [r6]
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r5
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _08027266
- ldrb r0, [r3]
- mov r2, r12
- ldrb r2, [r2]
- cmp r0, r2
- bcc _080272B4
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- b _080272BC
- .align 2, 0
-_08027298: .4byte gUnknown_2023D74
-_0802729C: .4byte gBattleTypeFlags
-_080272A0: .4byte gBattlerTarget
-_080272A4: .4byte sBattler_AI
-_080272A8: .4byte gAbsentBattlerFlags
-_080272AC: .4byte gBitTable
-_080272B0: .4byte gBattlersCount
-_080272B4:
- str r4, [r7]
- b _080272BC
-_080272B8:
- adds r0, r2, 0x5
- str r0, [r3]
-_080272BC:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk7A_jumpifnexttargetvalid
-
- thumb_func_start atk7B_tryhealhalfhealth
-atk7B_tryhealhalfhealth: @ 80272C4
- push {r4-r6,lr}
- ldr r4, _08027320 @ =gUnknown_2023D74
- ldr r1, [r4]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r2, r0
- ldrb r0, [r1, 0x5]
- ldr r3, _08027324 @ =gBattlerTarget
- cmp r0, 0x1
- bne _080272EC
- ldr r0, _08027328 @ =sBattler_AI
- ldrb r0, [r0]
- strb r0, [r3]
-_080272EC:
- ldr r1, _0802732C @ =gBattleMoveDamage
- ldr r6, _08027330 @ =gBattleMons
- ldrb r0, [r3]
- movs r5, 0x58
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _08027306
- movs r0, 0x1
- str r0, [r1]
-_08027306:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldrb r0, [r3]
- muls r0, r5
- adds r0, r6
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- bne _08027334
- str r2, [r4]
- b _0802733A
- .align 2, 0
-_08027320: .4byte gUnknown_2023D74
-_08027324: .4byte gBattlerTarget
-_08027328: .4byte sBattler_AI
-_0802732C: .4byte gBattleMoveDamage
-_08027330: .4byte gBattleMons
-_08027334:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_0802733A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk7B_tryhealhalfhealth
-
- thumb_func_start atk7C_trymirrormove
-atk7C_trymirrormove: @ 8027340
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r2, _080273E0 @ =gBattlersCount
- ldr r0, _080273E4 @ =gBattleStruct
- mov r10, r0
- movs r1, 0
- add r0, sp, 0x4
-_08027356:
- strh r1, [r0]
- subs r0, 0x2
- cmp r0, sp
- bge _08027356
- movs r1, 0
- mov r8, r1
- movs r5, 0
- ldrb r1, [r2]
- cmp r5, r1
- bge _080273AC
- ldr r0, _080273E8 @ =sBattler_AI
- ldrb r6, [r0]
- ldr r2, _080273EC @ =0x0000ffff
- mov r9, r2
- lsls r4, r6, 3
- mov r2, sp
- ldr r0, _080273E4 @ =gBattleStruct
- mov r12, r0
- adds r7, r1, 0
-_0802737C:
- cmp r5, r6
- beq _080273A4
- mov r1, r12
- ldr r0, [r1]
- adds r0, r4, r0
- adds r1, r0, 0
- adds r1, 0xE0
- ldrb r3, [r1]
- adds r0, 0xE1
- ldrb r0, [r0]
- lsls r0, 8
- orrs r3, r0
- cmp r3, 0
- beq _080273A4
- cmp r3, r9
- beq _080273A4
- strh r3, [r2]
- adds r2, 0x2
- movs r0, 0x1
- add r8, r0
-_080273A4:
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, r7
- blt _0802737C
-_080273AC:
- ldr r1, _080273E8 @ =sBattler_AI
- ldrb r0, [r1]
- mov r2, r10
- ldr r1, [r2]
- lsls r0, 1
- adds r0, r1
- adds r1, r0, 0
- adds r1, 0x98
- ldrb r3, [r1]
- adds r0, 0x99
- ldrb r0, [r0]
- lsls r0, 8
- orrs r3, r0
- cmp r3, 0
- beq _080273FC
- ldr r0, _080273EC @ =0x0000ffff
- cmp r3, r0
- beq _080273FC
- ldr r2, _080273F0 @ =gUnknown_2023DD0
- ldr r0, [r2]
- ldr r1, _080273F4 @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _080273F8 @ =gCurrentMove
- strh r3, [r4]
- b _08027426
- .align 2, 0
-_080273E0: .4byte gBattlersCount
-_080273E4: .4byte gBattleStruct
-_080273E8: .4byte sBattler_AI
-_080273EC: .4byte 0x0000ffff
-_080273F0: .4byte gUnknown_2023DD0
-_080273F4: .4byte 0xfffffbff
-_080273F8: .4byte gCurrentMove
-_080273FC:
- mov r0, r8
- cmp r0, 0
- beq _0802746C
- ldr r2, _08027450 @ =gUnknown_2023DD0
- ldr r0, [r2]
- ldr r1, _08027454 @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- mov r1, r8
- bl __modsi3
- adds r5, r0, 0
- ldr r4, _08027458 @ =gCurrentMove
- lsls r0, r5, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4]
-_08027426:
- ldrh r0, [r4]
- movs r1, 0
- bl GetMoveTarget
- ldr r1, _0802745C @ =gBattlerTarget
- strb r0, [r1]
- ldr r5, _08027460 @ =gUnknown_2023D74
- ldr r3, _08027464 @ =gUnknown_81D65A8
- ldr r2, _08027468 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r5]
- b _0802748A
- .align 2, 0
-_08027450: .4byte gUnknown_2023DD0
-_08027454: .4byte 0xfffffbff
-_08027458: .4byte gCurrentMove
-_0802745C: .4byte gBattlerTarget
-_08027460: .4byte gUnknown_2023D74
-_08027464: .4byte gUnknown_81D65A8
-_08027468: .4byte gBattleMoves
-_0802746C:
- ldr r2, _0802749C @ =gUnknown_2023ECC
- ldr r0, _080274A0 @ =sBattler_AI
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _080274A4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0802748A:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802749C: .4byte gUnknown_2023ECC
-_080274A0: .4byte sBattler_AI
-_080274A4: .4byte gUnknown_2023D74
- thumb_func_end atk7C_trymirrormove
-
- thumb_func_start atk7D_setrain
-atk7D_setrain: @ 80274A8
- push {lr}
- ldr r2, _080274C8 @ =gBattleWeather
- ldrh r0, [r2]
- movs r1, 0x7
- ands r1, r0
- cmp r1, 0
- beq _080274D4
- ldr r2, _080274CC @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080274D0 @ =gUnknown_2023E82
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _080274E4
- .align 2, 0
-_080274C8: .4byte gBattleWeather
-_080274CC: .4byte gMoveResultFlags
-_080274D0: .4byte gUnknown_2023E82
-_080274D4:
- movs r0, 0x1
- strh r0, [r2]
- ldr r0, _080274F0 @ =gUnknown_2023E82
- strb r1, [r0, 0x5]
- ldr r0, _080274F4 @ =gUnknown_2023F20
- adds r0, 0x28
- movs r1, 0x5
- strb r1, [r0]
-_080274E4:
- ldr r1, _080274F8 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080274F0: .4byte gUnknown_2023E82
-_080274F4: .4byte gUnknown_2023F20
-_080274F8: .4byte gUnknown_2023D74
- thumb_func_end atk7D_setrain
-
- thumb_func_start atk7E_setreflect
-atk7E_setreflect: @ 80274FC
- push {r4-r6,lr}
- ldr r6, _0802752C @ =sBattler_AI
- ldrb r0, [r6]
- bl GetBattlerPosition
- ldr r4, _08027530 @ =gSideAffecting
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r1, [r1]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _0802753C
- ldr r2, _08027534 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08027538 @ =gUnknown_2023E82
- movs r0, 0
- b _080275B0
- .align 2, 0
-_0802752C: .4byte sBattler_AI
-_08027530: .4byte gSideAffecting
-_08027534: .4byte gMoveResultFlags
-_08027538: .4byte gUnknown_2023E82
-_0802753C:
- ldrb r0, [r6]
- bl GetBattlerPosition
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r6]
- bl GetBattlerPosition
- ldr r4, _080275A0 @ =gSideTimers
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x5
- strb r1, [r0]
- ldrb r0, [r6]
- bl GetBattlerPosition
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r6]
- strb r1, [r0, 0x1]
- ldr r0, _080275A4 @ =gBattleTypeFlags
- ldr r0, [r0]
- ands r0, r5
- cmp r0, 0
- beq _080275AC
- movs r0, 0x1
- bl CountAliveMonsInBattle
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bne _080275AC
- ldr r0, _080275A8 @ =gUnknown_2023E82
- strb r1, [r0, 0x5]
- b _080275B2
- .align 2, 0
-_080275A0: .4byte gSideTimers
-_080275A4: .4byte gBattleTypeFlags
-_080275A8: .4byte gUnknown_2023E82
-_080275AC:
- ldr r1, _080275C0 @ =gUnknown_2023E82
- movs r0, 0x1
-_080275B0:
- strb r0, [r1, 0x5]
-_080275B2:
- ldr r1, _080275C4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080275C0: .4byte gUnknown_2023E82
-_080275C4: .4byte gUnknown_2023D74
- thumb_func_end atk7E_setreflect
-
- thumb_func_start atk7F_setseeded
-atk7F_setseeded: @ 80275C8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r7, _08027608 @ =gMoveResultFlags
- ldrb r5, [r7]
- movs r0, 0x29
- ands r0, r5
- cmp r0, 0
- bne _080275FA
- ldr r0, _0802760C @ =gStatuses3
- mov r9, r0
- ldr r1, _08027610 @ =gBattlerTarget
- mov r8, r1
- ldrb r4, [r1]
- lsls r0, r4, 2
- mov r2, r9
- adds r6, r0, r2
- ldr r2, [r6]
- movs r0, 0x4
- mov r12, r0
- adds r3, r2, 0
- ands r3, r0
- cmp r3, 0
- beq _08027618
-_080275FA:
- movs r0, 0x1
- orrs r0, r5
- strb r0, [r7]
- ldr r1, _08027614 @ =gUnknown_2023E82
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08027668
- .align 2, 0
-_08027608: .4byte gMoveResultFlags
-_0802760C: .4byte gStatuses3
-_08027610: .4byte gBattlerTarget
-_08027614: .4byte gUnknown_2023E82
-_08027618:
- ldr r1, _08027644 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, r0, r1
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xC
- beq _08027634
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xC
- bne _0802764C
-_08027634:
- movs r0, 0x1
- orrs r0, r5
- strb r0, [r7]
- ldr r1, _08027648 @ =gUnknown_2023E82
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _08027668
- .align 2, 0
-_08027644: .4byte gBattleMons
-_08027648: .4byte gUnknown_2023E82
-_0802764C:
- ldr r0, _0802767C @ =sBattler_AI
- ldrb r0, [r0]
- orrs r2, r0
- str r2, [r6]
- mov r2, r8
- ldrb r1, [r2]
- lsls r1, 2
- add r1, r9
- ldr r0, [r1]
- mov r2, r12
- orrs r0, r2
- str r0, [r1]
- ldr r0, _08027680 @ =gUnknown_2023E82
- strb r3, [r0, 0x5]
-_08027668:
- ldr r1, _08027684 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802767C: .4byte sBattler_AI
-_08027680: .4byte gUnknown_2023E82
-_08027684: .4byte gUnknown_2023D74
- thumb_func_end atk7F_setseeded
-
- thumb_func_start atk80_manipulatedamage
-atk80_manipulatedamage: @ 8027688
- push {r4,lr}
- ldr r1, _080276A0 @ =gUnknown_2023D74
- ldr r0, [r1]
- ldrb r2, [r0, 0x1]
- adds r4, r1, 0
- cmp r2, 0x1
- beq _080276B8
- cmp r2, 0x1
- bgt _080276A4
- cmp r2, 0
- beq _080276AA
- b _080276F8
- .align 2, 0
-_080276A0: .4byte gUnknown_2023D74
-_080276A4:
- cmp r2, 0x2
- beq _080276F0
- b _080276F8
-_080276AA:
- ldr r1, _080276B4 @ =gBattleMoveDamage
- ldr r0, [r1]
- negs r0, r0
- b _080276F6
- .align 2, 0
-_080276B4: .4byte gBattleMoveDamage
-_080276B8:
- ldr r3, _080276E4 @ =gBattleMoveDamage
- ldr r0, [r3]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- str r0, [r3]
- cmp r0, 0
- bne _080276CA
- str r2, [r3]
-_080276CA:
- ldr r2, _080276E8 @ =gBattleMons
- ldr r0, _080276EC @ =gBattlerTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2C]
- lsrs r1, r0, 1
- ldr r0, [r3]
- cmp r1, r0
- bge _080276F8
- str r1, [r3]
- b _080276F8
- .align 2, 0
-_080276E4: .4byte gBattleMoveDamage
-_080276E8: .4byte gBattleMons
-_080276EC: .4byte gBattlerTarget
-_080276F0:
- ldr r1, _08027704 @ =gBattleMoveDamage
- ldr r0, [r1]
- lsls r0, 1
-_080276F6:
- str r0, [r1]
-_080276F8:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08027704: .4byte gBattleMoveDamage
- thumb_func_end atk80_manipulatedamage
-
- thumb_func_start atk81_trysetrest
-atk81_trysetrest: @ 8027708
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r0, _08027760 @ =gUnknown_2023D74
- mov r12, r0
- ldr r1, [r0]
- ldrb r6, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r6, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r6, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r6, r0
- ldr r5, _08027764 @ =gActiveBattler
- ldr r2, _08027768 @ =gBattlerTarget
- ldr r0, _0802776C @ =sBattler_AI
- ldrb r0, [r0]
- strb r0, [r2]
- strb r0, [r5]
- ldr r4, _08027770 @ =gBattleMoveDamage
- ldr r1, _08027774 @ =gBattleMons
- ldrb r0, [r2]
- movs r3, 0x58
- muls r0, r3
- adds r0, r1
- ldrh r0, [r0, 0x2C]
- negs r0, r0
- str r0, [r4]
- ldrb r0, [r2]
- adds r4, r0, 0
- muls r4, r3
- adds r0, r4, r1
- ldrh r3, [r0, 0x28]
- adds r7, r5, 0
- adds r5, r2, 0
- adds r2, r1, 0
- ldrh r0, [r0, 0x2C]
- cmp r3, r0
- bne _08027778
- mov r0, r12
- str r6, [r0]
- b _080277C8
- .align 2, 0
-_08027760: .4byte gUnknown_2023D74
-_08027764: .4byte gActiveBattler
-_08027768: .4byte gBattlerTarget
-_0802776C: .4byte sBattler_AI
-_08027770: .4byte gBattleMoveDamage
-_08027774: .4byte gBattleMons
-_08027778:
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r4, r0
- ldr r1, [r0]
- movs r0, 0xF8
- ands r1, r0
- cmp r1, 0
- beq _08027794
- ldr r1, _08027790 @ =gUnknown_2023E82
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08027798
- .align 2, 0
-_08027790: .4byte gUnknown_2023E82
-_08027794:
- ldr r0, _080277D0 @ =gUnknown_2023E82
- strb r1, [r0, 0x5]
-_08027798:
- ldrb r0, [r5]
- movs r3, 0x58
- muls r0, r3
- adds r2, 0x4C
- adds r0, r2
- movs r1, 0x3
- str r1, [r0]
- ldrb r0, [r7]
- muls r0, r3
- adds r0, r2
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetMonData
- ldrb r0, [r7]
- bl MarkBufferBankForExecution
- ldr r1, _080277D4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_080277C8:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080277D0: .4byte gUnknown_2023E82
-_080277D4: .4byte gUnknown_2023D74
- thumb_func_end atk81_trysetrest
-
- thumb_func_start atk82_jumpifnotfirstturn
-atk82_jumpifnotfirstturn: @ 80277D8
- push {r4,r5,lr}
- ldr r5, _0802780C @ =gUnknown_2023D74
- ldr r4, [r5]
- ldrb r3, [r4, 0x1]
- ldrb r0, [r4, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r4, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldr r2, _08027810 @ =gDisableStructs
- ldr r0, _08027814 @ =sBattler_AI
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x16]
- cmp r0, 0
- beq _08027818
- adds r0, r4, 0x5
- str r0, [r5]
- b _0802781A
- .align 2, 0
-_0802780C: .4byte gUnknown_2023D74
-_08027810: .4byte gDisableStructs
-_08027814: .4byte sBattler_AI
-_08027818:
- str r3, [r5]
-_0802781A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end atk82_jumpifnotfirstturn
-
- thumb_func_start atk83_nop
-atk83_nop: @ 8027820
- ldr r1, _0802782C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802782C: .4byte gUnknown_2023D74
- thumb_func_end atk83_nop
-
- thumb_func_start UproarWakeUpCheck
-UproarWakeUpCheck: @ 8027830
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r0, _08027888 @ =gBattlersCount
- ldrb r1, [r0]
- mov r8, r0
- cmp r2, r1
- bge _080278A4
- ldr r0, _0802788C @ =gBattleMons
- mov r12, r0
- movs r0, 0x58
- muls r0, r3
- add r0, r12
- adds r5, r0, 0
- adds r5, 0x20
- adds r4, r1, 0
- movs r3, 0
- ldr r6, _08027890 @ =gBattleScripting
- ldr r7, _08027894 @ =gUnknown_2023E82
-_0802785C:
- mov r0, r12
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- beq _0802789C
- ldrb r0, [r5]
- cmp r0, 0x2B
- beq _0802789C
- movs r3, 0
- strb r2, [r6, 0x17]
- ldr r1, _08027898 @ =gBattlerTarget
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _080278BC
- cmp r0, r2
- beq _080278B0
- movs r0, 0x1
- strb r0, [r7, 0x5]
- b _080278A4
- .align 2, 0
-_08027888: .4byte gBattlersCount
-_0802788C: .4byte gBattleMons
-_08027890: .4byte gBattleScripting
-_08027894: .4byte gUnknown_2023E82
-_08027898: .4byte gBattlerTarget
-_0802789C:
- adds r3, 0x58
- adds r2, 0x1
- cmp r2, r4
- blt _0802785C
-_080278A4:
- mov r1, r8
- ldrb r1, [r1]
- cmp r2, r1
- beq _080278C0
- movs r0, 0x1
- b _080278C2
-_080278B0:
- ldr r0, _080278B8 @ =gUnknown_2023E82
- strb r3, [r0, 0x5]
- b _080278A4
- .align 2, 0
-_080278B8: .4byte gUnknown_2023E82
-_080278BC:
- strb r2, [r1]
- b _080278A4
-_080278C0:
- movs r0, 0
-_080278C2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end UproarWakeUpCheck
-
- thumb_func_start atk84_jumpifcantmakeasleep
-atk84_jumpifcantmakeasleep: @ 80278CC
- push {r4-r6,lr}
- ldr r5, _080278F8 @ =gUnknown_2023D74
- ldr r1, [r5]
- ldrb r4, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r4, r0
- ldr r6, _080278FC @ =gBattlerTarget
- ldrb r0, [r6]
- bl UproarWakeUpCheck
- lsls r0, 24
- cmp r0, 0
- beq _08027900
- str r4, [r5]
- b _08027942
- .align 2, 0
-_080278F8: .4byte gUnknown_2023D74
-_080278FC: .4byte gBattlerTarget
-_08027900:
- ldr r1, _08027930 @ =gBattleMons
- ldrb r3, [r6]
- movs r0, 0x58
- muls r0, r3
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- adds r1, r0, 0
- cmp r1, 0xF
- beq _08027918
- cmp r1, 0x48
- bne _0802793C
-_08027918:
- ldr r2, _08027934 @ =gLastUsedAbility
- strb r0, [r2]
- ldr r1, _08027938 @ =gUnknown_2023E82
- movs r0, 0x2
- strb r0, [r1, 0x5]
- str r4, [r5]
- ldrb r1, [r2]
- adds r0, r3, 0
- bl sub_80C71D0
- b _08027942
- .align 2, 0
-_08027930: .4byte gBattleMons
-_08027934: .4byte gLastUsedAbility
-_08027938: .4byte gUnknown_2023E82
-_0802793C:
- ldr r0, [r5]
- adds r0, 0x5
- str r0, [r5]
-_08027942:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk84_jumpifcantmakeasleep
-
- thumb_func_start atk85_stockpile
-atk85_stockpile: @ 8027948
- push {r4,r5,lr}
- ldr r5, _08027970 @ =gDisableStructs
- ldr r4, _08027974 @ =sBattler_AI
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x9]
- cmp r0, 0x3
- bne _08027980
- ldr r2, _08027978 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802797C @ =gUnknown_2023E82
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _080279AA
- .align 2, 0
-_08027970: .4byte gDisableStructs
-_08027974: .4byte sBattler_AI
-_08027978: .4byte gMoveResultFlags
-_0802797C: .4byte gUnknown_2023E82
-_08027980:
- adds r0, 0x1
- movs r3, 0
- strb r0, [r1, 0x9]
- ldr r2, _080279B8 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x1
- strb r0, [r2, 0x1]
- strb r0, [r2, 0x2]
- strb r0, [r2, 0x3]
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x9]
- strb r0, [r2, 0x4]
- movs r0, 0xFF
- strb r0, [r2, 0x5]
- ldr r0, _080279BC @ =gUnknown_2023E82
- strb r3, [r0, 0x5]
-_080279AA:
- ldr r1, _080279C0 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080279B8: .4byte gBattleTextBuff1
-_080279BC: .4byte gUnknown_2023E82
-_080279C0: .4byte gUnknown_2023D74
- thumb_func_end atk85_stockpile
-
- thumb_func_start atk86_stockpiletobasedamage
-atk86_stockpiletobasedamage: @ 80279C4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- ldr r3, _080279FC @ =gUnknown_2023D74
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r2, r0
- ldr r7, _08027A00 @ =gDisableStructs
- ldr r6, _08027A04 @ =sBattler_AI
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x9]
- cmp r0, 0
- bne _08027A08
- str r2, [r3]
- b _08027AAA
- .align 2, 0
-_080279FC: .4byte gUnknown_2023D74
-_08027A00: .4byte gDisableStructs
-_08027A04: .4byte sBattler_AI
-_08027A08:
- ldr r0, _08027AB8 @ =gUnknown_2023E82
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- beq _08027A90
- ldr r0, _08027ABC @ =gBattleMoveDamage
- mov r8, r0
- ldr r4, _08027AC0 @ =gSideAffecting
- ldr r5, _08027AC4 @ =gBattlerTarget
- ldrb r0, [r5]
- bl GetBattlerPosition
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- ldrb r0, [r6]
- movs r4, 0x58
- muls r0, r4
- ldr r2, _08027AC8 @ =gBattleMons
- adds r0, r2
- ldrb r1, [r5]
- muls r1, r4
- adds r1, r2
- ldr r2, _08027ACC @ =gCurrentMove
- ldrh r2, [r2]
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- ldrb r4, [r6]
- str r4, [sp, 0x8]
- ldrb r4, [r5]
- str r4, [sp, 0xC]
- bl CalculateBaseDamage
- ldrb r2, [r6]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r7
- ldrb r1, [r1, 0x9]
- adds r3, r0, 0
- muls r3, r1
- mov r1, r8
- str r3, [r1]
- ldr r2, _08027AD0 @ =gBattleScripting
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x9]
- strb r0, [r2, 0x18]
- ldr r1, _08027AD4 @ =gUnknown_2023E8C
- ldrb r0, [r6]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _08027A90
- lsls r0, r3, 4
- subs r0, r3
- movs r1, 0xA
- bl __divsi3
- mov r1, r8
- str r0, [r1]
-_08027A90:
- ldr r2, _08027AD8 @ =gDisableStructs
- ldr r0, _08027ADC @ =sBattler_AI
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x9]
- ldr r1, _08027AE0 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08027AAA:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027AB8: .4byte gUnknown_2023E82
-_08027ABC: .4byte gBattleMoveDamage
-_08027AC0: .4byte gSideAffecting
-_08027AC4: .4byte gBattlerTarget
-_08027AC8: .4byte gBattleMons
-_08027ACC: .4byte gCurrentMove
-_08027AD0: .4byte gBattleScripting
-_08027AD4: .4byte gUnknown_2023E8C
-_08027AD8: .4byte gDisableStructs
-_08027ADC: .4byte sBattler_AI
-_08027AE0: .4byte gUnknown_2023D74
- thumb_func_end atk86_stockpiletobasedamage
-
- thumb_func_start atk87_stockpiletohpheal
-atk87_stockpiletohpheal: @ 8027AE4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _08027B24 @ =gUnknown_2023D74
- ldr r1, [r7]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r2, r0
- ldr r0, _08027B28 @ =gDisableStructs
- mov r8, r0
- ldr r6, _08027B2C @ =sBattler_AI
- ldrb r3, [r6]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- mov r1, r8
- adds r4, r0, r1
- ldrb r1, [r4, 0x9]
- cmp r1, 0
- bne _08027B34
- str r2, [r7]
- ldr r0, _08027B30 @ =gUnknown_2023E82
- strb r1, [r0, 0x5]
- b _08027BB0
- .align 2, 0
-_08027B24: .4byte gUnknown_2023D74
-_08027B28: .4byte gDisableStructs
-_08027B2C: .4byte sBattler_AI
-_08027B30: .4byte gUnknown_2023E82
-_08027B34:
- ldr r1, _08027B58 @ =gBattleMons
- movs r0, 0x58
- muls r0, r3
- adds r1, r0, r1
- ldrh r0, [r1, 0x2C]
- ldrh r3, [r1, 0x28]
- cmp r0, r3
- bne _08027B64
- movs r0, 0
- strb r0, [r4, 0x9]
- str r2, [r7]
- ldr r1, _08027B5C @ =gBattlerTarget
- ldrb r0, [r6]
- strb r0, [r1]
- ldr r1, _08027B60 @ =gUnknown_2023E82
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08027BB0
- .align 2, 0
-_08027B58: .4byte gBattleMons
-_08027B5C: .4byte gBattlerTarget
-_08027B60: .4byte gUnknown_2023E82
-_08027B64:
- ldr r5, _08027BBC @ =gBattleMoveDamage
- ldrh r0, [r1, 0x2C]
- ldrb r1, [r4, 0x9]
- movs r2, 0x3
- subs r2, r1
- movs r4, 0x1
- adds r1, r4, 0
- lsls r1, r2
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _08027B80
- str r4, [r5]
-_08027B80:
- ldr r0, [r5]
- negs r0, r0
- str r0, [r5]
- ldr r3, _08027BC0 @ =gBattleScripting
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x9]
- movs r2, 0
- strb r0, [r3, 0x18]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- strb r2, [r0, 0x9]
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- ldr r1, _08027BC4 @ =gBattlerTarget
- ldrb r0, [r6]
- strb r0, [r1]
-_08027BB0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027BBC: .4byte gBattleMoveDamage
-_08027BC0: .4byte gBattleScripting
-_08027BC4: .4byte gBattlerTarget
- thumb_func_end atk87_stockpiletohpheal
-
- thumb_func_start atk88_negativedamage
-atk88_negativedamage: @ 8027BC8
- push {lr}
- ldr r2, _08027BF0 @ =gBattleMoveDamage
- ldr r0, _08027BF4 @ =gUnknown_2023D54
- ldr r0, [r0]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- negs r0, r0
- str r0, [r2]
- cmp r0, 0
- bne _08027BE4
- movs r0, 0x1
- negs r0, r0
- str r0, [r2]
-_08027BE4:
- ldr r1, _08027BF8 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08027BF0: .4byte gBattleMoveDamage
-_08027BF4: .4byte gUnknown_2023D54
-_08027BF8: .4byte gUnknown_2023D74
- thumb_func_end atk88_negativedamage
-
- thumb_func_start ChangeStatBuffs
-ChangeStatBuffs: @ 8027BFC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r3
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r0, 0
- mov r9, r0
- mov r10, r0
- movs r0, 0x40
- ands r0, r5
- cmp r0, 0
- beq _08027C30
- ldr r0, _08027C28 @ =gActiveBattler
- ldr r1, _08027C2C @ =sBattler_AI
- b _08027C34
- .align 2, 0
-_08027C28: .4byte gActiveBattler
-_08027C2C: .4byte sBattler_AI
-_08027C30:
- ldr r0, _08027CD4 @ =gActiveBattler
- ldr r1, _08027CD8 @ =gBattlerTarget
-_08027C34:
- ldrb r1, [r1]
- strb r1, [r0]
- movs r0, 0xBF
- ands r5, r0
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- beq _08027C4E
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08027C4E:
- movs r0, 0x7F
- ands r5, r0
- movs r0, 0x20
- ands r0, r5
- cmp r0, 0
- beq _08027C64
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
-_08027C64:
- movs r0, 0xDF
- ands r5, r0
- ldr r1, _08027CDC @ =gBattleTextBuff1
- movs r4, 0
- movs r2, 0xFD
- strb r2, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- strb r7, [r1, 0x2]
- movs r3, 0x1
- negs r3, r3
- mov r12, r3
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- lsls r0, r6, 24
- cmp r0, 0
- blt _08027C88
- b _08027F6C
-_08027C88:
- ldr r4, _08027CE0 @ =gSideTimers
- ldr r1, _08027CD4 @ =gActiveBattler
- ldrb r0, [r1]
- bl GetBattlerPosition
- movs r1, 0x1
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _08027D28
- mov r2, r9
- cmp r2, 0
- bne _08027D28
- ldr r0, _08027CE4 @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xAE
- beq _08027D58
- cmp r5, 0x1
- bne _08027D48
- ldr r4, _08027CE8 @ =gUnknown_2023ECC
- ldr r3, _08027CD4 @ =gActiveBattler
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _08027CF0
- ldr r0, _08027CEC @ =gUnknown_2023D74
- mov r4, r8
- str r4, [r0]
- b _08027D48
- .align 2, 0
-_08027CD4: .4byte gActiveBattler
-_08027CD8: .4byte gBattlerTarget
-_08027CDC: .4byte gBattleTextBuff1
-_08027CE0: .4byte gSideTimers
-_08027CE4: .4byte gCurrentMove
-_08027CE8: .4byte gUnknown_2023ECC
-_08027CEC: .4byte gUnknown_2023D74
-_08027CF0:
- mov r0, r8
- bl BattleScriptPush
- ldr r1, _08027D18 @ =gBattleScripting
- ldr r6, _08027D1C @ =gActiveBattler
- ldrb r0, [r6]
- strb r0, [r1, 0x17]
- ldr r1, _08027D20 @ =gUnknown_2023D74
- ldr r0, _08027D24 @ =gUnknown_81D8C3E
- str r0, [r1]
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _08027D48
- .align 2, 0
-_08027D18: .4byte gBattleScripting
-_08027D1C: .4byte gActiveBattler
-_08027D20: .4byte gUnknown_2023D74
-_08027D24: .4byte gUnknown_81D8C3E
-_08027D28:
- ldr r0, _08027D4C @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xAE
- beq _08027D58
- mov r0, r10
- cmp r0, 0x1
- beq _08027D58
- movs r0, 0
- bl JumpIfMoveAffectedByProtect
- lsls r0, 24
- cmp r0, 0
- beq _08027D58
- ldr r1, _08027D50 @ =gUnknown_2023D74
- ldr r0, _08027D54 @ =gUnknown_81D7DF2
- str r0, [r1]
-_08027D48:
- movs r0, 0x1
- b _08028060
- .align 2, 0
-_08027D4C: .4byte gCurrentMove
-_08027D50: .4byte gUnknown_2023D74
-_08027D54: .4byte gUnknown_81D7DF2
-_08027D58:
- ldr r2, _08027DA0 @ =gBattleMons
- ldr r1, _08027DA4 @ =gActiveBattler
- ldrb r3, [r1]
- movs r4, 0x58
- adds r0, r3, 0
- muls r0, r4
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- mov r10, r2
- cmp r0, 0x1D
- beq _08027D74
- cmp r0, 0x49
- bne _08027E0C
-_08027D74:
- mov r0, r9
- cmp r0, 0
- bne _08027E0C
- ldr r0, _08027DA8 @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xAE
- beq _08027E0C
- cmp r5, 0x1
- bne _08027D48
- ldr r4, _08027DAC @ =gUnknown_2023ECC
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _08027DB4
- ldr r0, _08027DB0 @ =gUnknown_2023D74
- mov r1, r8
- str r1, [r0]
- b _08027D48
- .align 2, 0
-_08027DA0: .4byte gBattleMons
-_08027DA4: .4byte gActiveBattler
-_08027DA8: .4byte gCurrentMove
-_08027DAC: .4byte gUnknown_2023ECC
-_08027DB0: .4byte gUnknown_2023D74
-_08027DB4:
- mov r0, r8
- bl BattleScriptPush
- ldr r1, _08027DF8 @ =gBattleScripting
- ldr r2, _08027DFC @ =gActiveBattler
- ldrb r0, [r2]
- strb r0, [r1, 0x17]
- ldr r1, _08027E00 @ =gUnknown_2023D74
- ldr r0, _08027E04 @ =gUnknown_81D9416
- str r0, [r1]
- ldr r1, _08027E08 @ =gLastUsedAbility
- ldrb r0, [r2]
- movs r3, 0x58
- muls r0, r3
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r2]
- ldrb r1, [r1]
- bl sub_80C71D0
- ldr r6, _08027DFC @ =gActiveBattler
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _08027D48
- .align 2, 0
-_08027DF8: .4byte gBattleScripting
-_08027DFC: .4byte gActiveBattler
-_08027E00: .4byte gUnknown_2023D74
-_08027E04: .4byte gUnknown_81D9416
-_08027E08: .4byte gLastUsedAbility
-_08027E0C:
- ldr r1, _08027E58 @ =gActiveBattler
- ldrb r0, [r1]
- movs r4, 0x58
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x33
- bne _08027E6C
- mov r2, r9
- cmp r2, 0
- bne _08027E6C
- cmp r7, 0x6
- bne _08027E6C
- cmp r5, 0x1
- bne _08027D48
- mov r0, r8
- bl BattleScriptPush
- ldr r1, _08027E5C @ =gBattleScripting
- ldr r3, _08027E58 @ =gActiveBattler
- ldrb r0, [r3]
- strb r0, [r1, 0x17]
- ldr r1, _08027E60 @ =gUnknown_2023D74
- ldr r0, _08027E64 @ =gUnknown_81D947E
- str r0, [r1]
- ldr r1, _08027E68 @ =gLastUsedAbility
- ldrb r0, [r3]
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r3]
- ldrb r1, [r1]
- bl sub_80C71D0
- b _08027D48
- .align 2, 0
-_08027E58: .4byte gActiveBattler
-_08027E5C: .4byte gBattleScripting
-_08027E60: .4byte gUnknown_2023D74
-_08027E64: .4byte gUnknown_81D947E
-_08027E68: .4byte gLastUsedAbility
-_08027E6C:
- ldr r4, _08027EBC @ =gActiveBattler
- ldrb r0, [r4]
- movs r4, 0x58
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x34
- bne _08027ED0
- mov r0, r9
- cmp r0, 0
- bne _08027ED0
- cmp r7, 0x1
- bne _08027ED0
- cmp r5, 0x1
- beq _08027E8E
- b _08027D48
-_08027E8E:
- mov r0, r8
- bl BattleScriptPush
- ldr r1, _08027EC0 @ =gBattleScripting
- ldr r2, _08027EBC @ =gActiveBattler
- ldrb r0, [r2]
- strb r0, [r1, 0x17]
- ldr r1, _08027EC4 @ =gUnknown_2023D74
- ldr r0, _08027EC8 @ =gUnknown_81D947E
- str r0, [r1]
- ldr r1, _08027ECC @ =gLastUsedAbility
- ldrb r0, [r2]
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r2]
- ldrb r1, [r1]
- bl sub_80C71D0
- b _08027D48
- .align 2, 0
-_08027EBC: .4byte gActiveBattler
-_08027EC0: .4byte gBattleScripting
-_08027EC4: .4byte gUnknown_2023D74
-_08027EC8: .4byte gUnknown_81D947E
-_08027ECC: .4byte gLastUsedAbility
-_08027ED0:
- ldr r3, _08027F5C @ =gActiveBattler
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x13
- bne _08027EE8
- cmp r5, 0
- bne _08027EE8
- b _08027D48
-_08027EE8:
- lsls r0, r6, 24
- asrs r0, 28
- movs r1, 0x7
- ands r0, r1
- negs r0, r0
- lsls r0, 24
- ldr r3, _08027F60 @ =gBattleTextBuff2
- movs r4, 0
- movs r1, 0xFD
- strb r1, [r3]
- movs r2, 0x1
- lsrs r6, r0, 24
- asrs r0, 24
- subs r1, 0xFF
- cmp r0, r1
- bne _08027F12
- strb r4, [r3, 0x1]
- movs r0, 0xD3
- strb r0, [r3, 0x2]
- strb r4, [r3, 0x3]
- movs r2, 0x4
-_08027F12:
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- movs r0, 0xD4
- strb r0, [r1]
- adds r2, 0x1
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- movs r0, 0xFF
- strb r0, [r1]
- ldr r4, _08027F5C @ =gActiveBattler
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r0, r7, r0
- mov r1, r10
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _08027FC2
- movs r1, 0
- ldr r0, _08027F64 @ =gBattlerTarget
- ldrb r0, [r0]
- ldr r3, _08027F68 @ =gUnknown_2023E82
- mov r8, r3
- cmp r0, r2
- bne _08027F56
- movs r1, 0x1
-_08027F56:
- mov r4, r8
- strb r1, [r4, 0x5]
- b _08027FF0
- .align 2, 0
-_08027F5C: .4byte gActiveBattler
-_08027F60: .4byte gBattleTextBuff2
-_08027F64: .4byte gBattlerTarget
-_08027F68: .4byte gUnknown_2023E82
-_08027F6C:
- asrs r6, r0, 28
- movs r0, 0x7
- ands r6, r0
- ldr r3, _08027FCC @ =gBattleTextBuff2
- strb r2, [r3]
- movs r2, 0x1
- cmp r6, 0x2
- bne _08027F86
- strb r4, [r3, 0x1]
- movs r0, 0xD1
- strb r0, [r3, 0x2]
- strb r4, [r3, 0x3]
- movs r2, 0x4
-_08027F86:
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- movs r0, 0xD2
- strb r0, [r1]
- adds r2, 0x1
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- ldrb r0, [r1]
- mov r2, r12
- orrs r0, r2
- strb r0, [r1]
- ldr r2, _08027FD0 @ =gBattleMons
- ldr r4, _08027FD4 @ =gActiveBattler
- ldrb r3, [r4]
- movs r0, 0x58
- muls r0, r3
- adds r0, r7, r0
- adds r1, r2, 0
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- mov r10, r2
- cmp r0, 0xC
- bne _08027FDC
-_08027FC2:
- ldr r1, _08027FD8 @ =gUnknown_2023E82
- movs r0, 0x2
- strb r0, [r1, 0x5]
- mov r8, r1
- b _08027FF0
- .align 2, 0
-_08027FCC: .4byte gBattleTextBuff2
-_08027FD0: .4byte gBattleMons
-_08027FD4: .4byte gActiveBattler
-_08027FD8: .4byte gUnknown_2023E82
-_08027FDC:
- movs r1, 0
- ldr r0, _08028070 @ =gBattlerTarget
- ldrb r0, [r0]
- ldr r2, _08028074 @ =gUnknown_2023E82
- mov r8, r2
- cmp r0, r3
- bne _08027FEC
- movs r1, 0x1
-_08027FEC:
- mov r3, r8
- strb r1, [r3, 0x5]
-_08027FF0:
- ldr r2, _08028078 @ =gActiveBattler
- ldrb r0, [r2]
- movs r4, 0x58
- adds r1, r0, 0
- muls r1, r4
- adds r1, r7, r1
- mov r3, r10
- adds r3, 0x18
- adds r1, r3
- lsls r0, r6, 24
- asrs r0, 24
- ldrb r6, [r1]
- adds r0, r6
- strb r0, [r1]
- ldrb r0, [r2]
- muls r0, r4
- adds r0, r7, r0
- adds r1, r0, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bge _08028020
- movs r0, 0
- strb r0, [r1]
-_08028020:
- ldr r1, _08028078 @ =gActiveBattler
- ldrb r0, [r1]
- muls r0, r4
- adds r0, r7, r0
- adds r1, r0, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _08028036
- movs r0, 0xC
- strb r0, [r1]
-_08028036:
- mov r2, r8
- ldrb r0, [r2, 0x5]
- cmp r0, 0x2
- bne _0802805E
- movs r3, 0x1
- ands r3, r5
- cmp r3, 0
- beq _08028050
- ldr r0, _0802807C @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
-_08028050:
- mov r4, r8
- ldrb r0, [r4, 0x5]
- cmp r0, 0x2
- bne _0802805E
- cmp r3, 0
- bne _0802805E
- b _08027D48
-_0802805E:
- movs r0, 0
-_08028060:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08028070: .4byte gBattlerTarget
-_08028074: .4byte gUnknown_2023E82
-_08028078: .4byte gActiveBattler
-_0802807C: .4byte gMoveResultFlags
- thumb_func_end ChangeStatBuffs
-
- thumb_func_start atk89_statbuffchange
-atk89_statbuffchange: @ 8028080
- push {r4,r5,lr}
- ldr r5, _080280C4 @ =gUnknown_2023D74
- ldr r2, [r5]
- ldrb r3, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r3, r0
- ldr r0, _080280C8 @ =gBattleScripting
- ldrb r4, [r0, 0x1A]
- movs r0, 0xF0
- ands r0, r4
- lsls r0, 24
- asrs r0, 24
- movs r1, 0xF
- ands r1, r4
- ldrb r2, [r2, 0x1]
- bl ChangeStatBuffs
- lsls r0, 24
- cmp r0, 0
- bne _080280BC
- ldr r0, [r5]
- adds r0, 0x6
- str r0, [r5]
-_080280BC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080280C4: .4byte gUnknown_2023D74
-_080280C8: .4byte gBattleScripting
- thumb_func_end atk89_statbuffchange
-
- thumb_func_start atk8A_normalisebuffs
-atk8A_normalisebuffs: @ 80280CC
- push {r4-r7,lr}
- movs r2, 0
- ldr r0, _08028114 @ =gBattlersCount
- ldrb r1, [r0]
- ldr r0, _08028118 @ =gUnknown_2023D74
- mov r12, r0
- cmp r2, r1
- bge _08028104
- ldr r0, _0802811C @ =gBattleMons
- movs r4, 0x6
- adds r5, r1, 0
- movs r7, 0x58
- adds r6, r0, 0
- adds r6, 0x18
-_080280E8:
- adds r3, r2, 0x1
- movs r1, 0x7
- adds r0, r2, 0
- muls r0, r7
- adds r0, r6
- adds r0, 0x7
-_080280F4:
- strb r4, [r0]
- subs r0, 0x1
- subs r1, 0x1
- cmp r1, 0
- bge _080280F4
- adds r2, r3, 0
- cmp r2, r5
- blt _080280E8
-_08028104:
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028114: .4byte gBattlersCount
-_08028118: .4byte gUnknown_2023D74
-_0802811C: .4byte gBattleMons
- thumb_func_end atk8A_normalisebuffs
-
- thumb_func_start atk8B_setbide
-atk8B_setbide: @ 8028120
- push {r4,r5,lr}
- ldr r4, _08028178 @ =gBattleMons
- ldr r3, _0802817C @ =sBattler_AI
- ldrb r0, [r3]
- movs r5, 0x58
- adds r2, r0, 0
- muls r2, r5
- adds r4, 0x50
- adds r2, r4
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08028180 @ =gUnknown_2023DB8
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _08028184 @ =gCurrentMove
- ldrh r1, [r1]
- movs r2, 0
- strh r1, [r0]
- ldr r1, _08028188 @ =gUnknown_2023D58
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- str r2, [r0]
- ldrb r0, [r3]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 2
- orrs r0, r2
- str r0, [r1]
- ldr r1, _0802818C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08028178: .4byte gBattleMons
-_0802817C: .4byte sBattler_AI
-_08028180: .4byte gUnknown_2023DB8
-_08028184: .4byte gCurrentMove
-_08028188: .4byte gUnknown_2023D58
-_0802818C: .4byte gUnknown_2023D74
- thumb_func_end atk8B_setbide
-
- thumb_func_start atk8C_confuseifrepeatingattackends
-atk8C_confuseifrepeatingattackends: @ 8028190
- push {lr}
- ldr r1, _080281C0 @ =gBattleMons
- ldr r0, _080281C4 @ =sBattler_AI
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xC0
- lsls r1, 4
- ands r0, r1
- cmp r0, 0
- bne _080281B2
- ldr r1, _080281C8 @ =gUnknown_2023E82
- movs r0, 0x75
- strb r0, [r1, 0x3]
-_080281B2:
- ldr r1, _080281CC @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080281C0: .4byte gBattleMons
-_080281C4: .4byte sBattler_AI
-_080281C8: .4byte gUnknown_2023E82
-_080281CC: .4byte gUnknown_2023D74
- thumb_func_end atk8C_confuseifrepeatingattackends
-
- thumb_func_start atk8D_setmultihitcounter
-atk8D_setmultihitcounter: @ 80281D0
- push {r4,r5,lr}
- ldr r0, _080281E4 @ =gUnknown_2023D74
- ldr r0, [r0]
- ldrb r1, [r0, 0x1]
- cmp r1, 0
- beq _080281EC
- ldr r0, _080281E8 @ =gUnknown_2023D72
- strb r1, [r0]
- b _08028206
- .align 2, 0
-_080281E4: .4byte gUnknown_2023D74
-_080281E8: .4byte gUnknown_2023D72
-_080281EC:
- ldr r4, _08028214 @ =gUnknown_2023D72
- bl Random
- movs r5, 0x3
- ands r0, r5
- strb r0, [r4]
- cmp r0, 0x1
- bls _08028202
- bl Random
- ands r0, r5
-_08028202:
- adds r0, 0x2
- strb r0, [r4]
-_08028206:
- ldr r1, _08028218 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08028214: .4byte gUnknown_2023D72
-_08028218: .4byte gUnknown_2023D74
- thumb_func_end atk8D_setmultihitcounter
-
- thumb_func_start atk8E_initmultihitstring
-atk8E_initmultihitstring: @ 802821C
- ldr r1, _0802823C @ =gBattleScripting
- movs r2, 0
- movs r0, 0xFD
- strb r0, [r1, 0x8]
- movs r0, 0x1
- strb r0, [r1, 0x9]
- strb r0, [r1, 0xA]
- strb r0, [r1, 0xB]
- strb r2, [r1, 0xC]
- movs r0, 0xFF
- strb r0, [r1, 0xD]
- ldr r1, _08028240 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802823C: .4byte gBattleScripting
-_08028240: .4byte gUnknown_2023D74
- thumb_func_end atk8E_initmultihitstring
-
- thumb_func_start TryDoForceSwitchOut
-TryDoForceSwitchOut: @ 8028244
- push {r4-r7,lr}
- ldr r6, _08028278 @ =gBattleMons
- ldr r7, _0802827C @ =sBattler_AI
- ldrb r0, [r7]
- movs r5, 0x58
- adds r1, r0, 0
- muls r1, r5
- adds r1, r6
- adds r1, 0x2A
- ldr r4, _08028280 @ =gBattlerTarget
- ldrb r3, [r4]
- adds r0, r3, 0
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _0802828C
- ldr r0, _08028284 @ =gBattleStruct
- ldr r1, [r0]
- adds r1, r3, r1
- adds r1, 0x58
- ldr r2, _08028288 @ =gBattlerPartyIndexes
- lsls r0, r3, 1
- b _080282E8
- .align 2, 0
-_08028278: .4byte gBattleMons
-_0802827C: .4byte sBattler_AI
-_08028280: .4byte gBattlerTarget
-_08028284: .4byte gBattleStruct
-_08028288: .4byte gBattlerPartyIndexes
-_0802828C:
- bl Random
- movs r3, 0xFF
- ands r3, r0
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r2, [r0]
- ldrb r4, [r4]
- adds r0, r4, 0
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r1, [r0]
- adds r2, r1
- adds r0, r3, 0
- muls r0, r2
- asrs r0, 8
- adds r0, 0x1
- lsrs r1, 2
- cmp r0, r1
- bhi _080282DC
- ldr r3, _080282D8 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- movs r0, 0
- b _080282F6
- .align 2, 0
-_080282D8: .4byte gUnknown_2023D74
-_080282DC:
- ldr r0, _080282FC @ =gBattleStruct
- ldr r1, [r0]
- adds r1, r4, r1
- adds r1, 0x58
- ldr r2, _08028300 @ =gBattlerPartyIndexes
- lsls r0, r4, 1
-_080282E8:
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r1, _08028304 @ =gUnknown_2023D74
- ldr r0, _08028308 @ =gUnknown_81D8C10
- str r0, [r1]
- movs r0, 0x1
-_080282F6:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080282FC: .4byte gBattleStruct
-_08028300: .4byte gBattlerPartyIndexes
-_08028304: .4byte gUnknown_2023D74
-_08028308: .4byte gUnknown_81D8C10
- thumb_func_end TryDoForceSwitchOut
-
- thumb_func_start sub_802830C
-sub_802830C: @ 802830C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _080283A4 @ =gBattleTypeFlags
- ldr r0, [r4]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08028320
- b _080285F4
-_08028320:
- ldr r5, _080283A8 @ =gBattlerTarget
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- ldr r1, _080283AC @ =gEnemyParty
- mov r8, r1
- cmp r0, 0
- bne _08028336
- ldr r0, _080283B0 @ =gPlayerParty
- mov r8, r0
-_08028336:
- ldr r0, [r4]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080283B4
- movs r7, 0
- movs r6, 0
- ldrb r0, [r5]
- bl GetBankMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- bl GetLinkTrainerFlankId
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _0802835C
- movs r6, 0x3
-_0802835C:
- adds r5, r6, 0
- adds r0, r5, 0x3
- cmp r5, r0
- bge _080283F4
-_08028364:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08028396
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08028396
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08028396
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_08028396:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0x3
- cmp r5, r0
- blt _08028364
- b _080283F4
- .align 2, 0
-_080283A4: .4byte gBattleTypeFlags
-_080283A8: .4byte gBattlerTarget
-_080283AC: .4byte gEnemyParty
-_080283B0: .4byte gPlayerParty
-_080283B4:
- movs r7, 0
- movs r5, 0
-_080283B8:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080283EA
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080283EA
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080283EA
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_080283EA:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080283B8
-_080283F4:
- cmp r7, 0x1
- bhi _08028404
- ldr r0, _08028438 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x41
- ands r0, r1
- cmp r0, 0x1
- bne _0802841C
-_08028404:
- cmp r7, 0x2
- bhi _08028440
- ldr r0, _08028438 @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08028440
- movs r0, 0x40
- ands r1, r0
- cmp r1, 0
- bne _08028440
-_0802841C:
- ldr r3, _0802843C @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _080285F8
- .align 2, 0
-_08028438: .4byte gBattleTypeFlags
-_0802843C: .4byte gUnknown_2023D74
-_08028440:
- bl TryDoForceSwitchOut
- lsls r0, 24
- cmp r0, 0
- bne _0802844C
- b _080285F8
-_0802844C:
- ldr r0, _0802848C @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080284F0
-_08028458:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08028490 @ =gBattlerTarget
- ldrb r0, [r0]
- bl GetBankMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- bl GetLinkTrainerFlankId
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _08028494
- adds r0, r6, 0x3
- lsls r0, 24
- lsrs r5, r0, 24
- b _08028496
- .align 2, 0
-_0802848C: .4byte gBattleTypeFlags
-_08028490: .4byte gBattlerTarget
-_08028494:
- adds r5, r6, 0
-_08028496:
- ldr r4, _080284E8 @ =gBattlerPartyIndexes
- ldr r0, _080284EC @ =gBattlerTarget
- ldrb r2, [r0]
- lsls r1, r2, 1
- adds r1, r4
- lsls r0, r5, 16
- lsrs r3, r0, 16
- ldrh r1, [r1]
- cmp r3, r1
- beq _08028458
- movs r0, 0x2
- eors r2, r0
- lsls r0, r2, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r3, r0
- beq _08028458
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08028458
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _08028458
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08028458
- b _080285AE
- .align 2, 0
-_080284E8: .4byte gBattlerPartyIndexes
-_080284EC: .4byte gBattlerTarget
-_080284F0:
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08028560
- ldr r6, _08028558 @ =gBattlerPartyIndexes
-_080284FA:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0802855C @ =gBattlerTarget
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r6
- adds r2, r5, 0
- ldrh r0, [r0]
- cmp r2, r0
- beq _080284FA
- movs r0, 0x2
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r6
- ldrh r0, [r0]
- cmp r2, r0
- beq _080284FA
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080284FA
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _080284FA
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080284FA
- b _080285AE
- .align 2, 0
-_08028558: .4byte gBattlerPartyIndexes
-_0802855C: .4byte gBattlerTarget
-_08028560:
- ldr r6, _080285E8 @ =gBattlerPartyIndexes
-_08028562:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080285EC @ =gBattlerTarget
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- cmp r5, r0
- beq _08028562
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08028562
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _08028562
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08028562
-_080285AE:
- ldr r4, _080285EC @ =gBattlerTarget
- ldrb r0, [r4]
- ldr r1, _080285F0 @ =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- adds r0, 0x5C
- strb r5, [r0]
- bl sub_811FA20
- lsls r0, 24
- cmp r0, 0
- bne _080285CC
- ldrb r0, [r4]
- bl sub_8013F6C
-_080285CC:
- ldrb r0, [r4]
- adds r1, r5, 0
- movs r2, 0
- bl sub_8127EC4
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8127EC4
- b _080285F8
- .align 2, 0
-_080285E8: .4byte gBattlerPartyIndexes
-_080285EC: .4byte gBattlerTarget
-_080285F0: .4byte gBattleStruct
-_080285F4:
- bl TryDoForceSwitchOut
-_080285F8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_802830C
-
- thumb_func_start atk90_tryconversiontypechange
-atk90_tryconversiontypechange: @ 8028604
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- ldr r2, _08028698 @ =gBattleMons
- ldr r3, _0802869C @ =sBattler_AI
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r1, r2, 0
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- mov r8, r2
- cmp r0, 0
- beq _08028646
- movs r5, 0x58
- adds r2, r1, 0
-_0802862C:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bhi _08028646
- lsls r1, r6, 1
- ldrb r0, [r3]
- muls r0, r5
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- cmp r0, 0
- bne _0802862C
-_08028646:
- movs r3, 0
- cmp r3, r6
- bcs _080286C8
- ldr r0, _080286A0 @ =gBattleMoves
- mov r10, r0
- ldr r5, _08028698 @ =gBattleMons
- mov r12, r5
- ldr r7, _0802869C @ =sBattler_AI
- ldrb r0, [r7]
- movs r4, 0x58
- adds r5, r0, 0
- muls r5, r4
- movs r0, 0xC
- add r0, r12
- mov r9, r0
-_08028664:
- lsls r0, r3, 1
- adds r0, r5
- add r0, r9
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r10
- ldrb r2, [r0, 0x2]
- cmp r2, 0x9
- bne _080286A6
- mov r0, r8
- adds r1, r5, r0
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _08028692
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _080286A4
-_08028692:
- movs r2, 0x7
- b _080286A6
- .align 2, 0
-_08028698: .4byte gBattleMons
-_0802869C: .4byte sBattler_AI
-_080286A0: .4byte gBattleMoves
-_080286A4:
- movs r2, 0
-_080286A6:
- ldrb r0, [r7]
- muls r0, r4
- add r0, r12
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r2, r1
- beq _080286BE
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r2, r0
- bne _080286C8
-_080286BE:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r6
- bcc _08028664
-_080286C8:
- cmp r3, r6
- bne _080286EC
- ldr r3, _080286E8 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08028790
- .align 2, 0
-_080286E8: .4byte gUnknown_2023D74
-_080286EC:
- movs r7, 0x3
- ldr r5, _08028744 @ =gBattleMoves
- mov r9, r5
-_080286F2:
- bl Random
- adds r3, r0, 0
- ands r3, r7
- cmp r3, r6
- bcs _080286F2
- ldr r4, _08028748 @ =gBattleMons
- lsls r1, r3, 1
- ldr r3, _0802874C @ =sBattler_AI
- ldrb r2, [r3]
- movs r0, 0x58
- adds r5, r2, 0
- muls r5, r0
- adds r1, r5
- adds r0, r4, 0
- adds r0, 0xC
- adds r1, r0
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r2, [r0, 0x2]
- mov r8, r4
- adds r4, r3, 0
- cmp r2, 0x9
- bne _08028752
- mov r0, r8
- adds r2, r5, r0
- adds r0, r2, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _08028740
- adds r0, r2, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _08028750
-_08028740:
- movs r2, 0x7
- b _08028752
- .align 2, 0
-_08028744: .4byte gBattleMoves
-_08028748: .4byte gBattleMons
-_0802874C: .4byte sBattler_AI
-_08028750:
- movs r2, 0
-_08028752:
- ldrb r0, [r4]
- movs r3, 0x58
- muls r0, r3
- add r0, r8
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r5, [r1]
- cmp r2, r5
- beq _080286F2
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r2, r0
- beq _080286F2
- strb r2, [r1]
- ldrb r0, [r4]
- muls r0, r3
- add r0, r8
- adds r0, 0x22
- strb r2, [r0]
- ldr r1, _080287A0 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _080287A4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08028790:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080287A0: .4byte gBattleTextBuff1
-_080287A4: .4byte gUnknown_2023D74
- thumb_func_end atk90_tryconversiontypechange
-
- thumb_func_start atk91_givepaydaymoney
-atk91_givepaydaymoney: @ 80287A8
- push {r4,r5,lr}
- ldr r0, _0802880C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r5, 0x2
- ands r0, r5
- cmp r0, 0
- bne _08028828
- ldr r1, _08028810 @ =gUnknown_2023E7E
- ldrh r0, [r1]
- cmp r0, 0
- beq _08028828
- adds r1, r0, 0
- ldr r0, _08028814 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x4A
- ldrb r0, [r0]
- adds r4, r1, 0
- muls r4, r0
- ldr r0, _08028818 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xA4
- lsls r1, 2
- adds r0, r1
- adds r1, r4, 0
- bl AddMoney
- ldr r1, _0802881C @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- strb r5, [r1, 0x2]
- movs r0, 0x5
- strb r0, [r1, 0x3]
- strb r4, [r1, 0x4]
- movs r0, 0xFF
- lsls r0, 8
- ands r4, r0
- lsrs r4, 8
- strb r4, [r1, 0x5]
- movs r0, 0xFF
- strb r0, [r1, 0x6]
- ldr r4, _08028820 @ =gUnknown_2023D74
- ldr r0, [r4]
- adds r0, 0x1
- bl BattleScriptPush
- ldr r0, _08028824 @ =gUnknown_81D911D
- str r0, [r4]
- b _08028830
- .align 2, 0
-_0802880C: .4byte gBattleTypeFlags
-_08028810: .4byte gUnknown_2023E7E
-_08028814: .4byte gBattleStruct
-_08028818: .4byte gSaveBlock1Ptr
-_0802881C: .4byte gBattleTextBuff1
-_08028820: .4byte gUnknown_2023D74
-_08028824: .4byte gUnknown_81D911D
-_08028828:
- ldr r1, _08028838 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08028830:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08028838: .4byte gUnknown_2023D74
- thumb_func_end atk91_givepaydaymoney
-
- thumb_func_start atk92_setlightscreen
-atk92_setlightscreen: @ 802883C
- push {r4-r6,lr}
- ldr r5, _0802886C @ =sBattler_AI
- ldrb r0, [r5]
- bl GetBattlerPosition
- ldr r4, _08028870 @ =gSideAffecting
- movs r6, 0x1
- adds r1, r6, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r1, [r1]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802887C
- ldr r2, _08028874 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08028878 @ =gUnknown_2023E82
- movs r0, 0
- b _080288F0
- .align 2, 0
-_0802886C: .4byte sBattler_AI
-_08028870: .4byte gSideAffecting
-_08028874: .4byte gMoveResultFlags
-_08028878: .4byte gUnknown_2023E82
-_0802887C:
- ldrb r0, [r5]
- bl GetBattlerPosition
- adds r1, r6, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r5]
- bl GetBattlerPosition
- ldr r4, _080288E0 @ =gSideTimers
- adds r1, r6, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x5
- strb r1, [r0, 0x2]
- ldrb r0, [r5]
- bl GetBattlerPosition
- adds r1, r6, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r5]
- strb r1, [r0, 0x3]
- ldr r0, _080288E4 @ =gBattleTypeFlags
- ldr r0, [r0]
- ands r0, r6
- cmp r0, 0
- beq _080288EC
- movs r0, 0x1
- bl CountAliveMonsInBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080288EC
- ldr r1, _080288E8 @ =gUnknown_2023E82
- movs r0, 0x4
- b _080288F0
- .align 2, 0
-_080288E0: .4byte gSideTimers
-_080288E4: .4byte gBattleTypeFlags
-_080288E8: .4byte gUnknown_2023E82
-_080288EC:
- ldr r1, _08028900 @ =gUnknown_2023E82
- movs r0, 0x3
-_080288F0:
- strb r0, [r1, 0x5]
- ldr r1, _08028904 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08028900: .4byte gUnknown_2023E82
-_08028904: .4byte gUnknown_2023D74
- thumb_func_end atk92_setlightscreen
-
- thumb_func_start atk93_tryKO
-atk93_tryKO: @ 8028908
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r7, _08028934 @ =gBattleMons
- ldr r6, _08028938 @ =gBattlerTarget
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08028940
- ldr r1, _0802893C @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _0802895A
- .align 2, 0
-_08028934: .4byte gBattleMons
-_08028938: .4byte gBattlerTarget
-_0802893C: .4byte gEnigmaBerries
-_08028940:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_0802895A:
- ldr r1, _080289D4 @ =gPotentialItemEffectBattler
- ldr r5, _080289D8 @ =gBattlerTarget
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _08028998
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _08028998
- ldrb r0, [r5]
- movs r1, 0x27
- bl sub_80C7208
- ldr r2, _080289DC @ =gUnknown_2023ECC
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_08028998:
- ldr r1, _080289E0 @ =gBattleMons
- ldr r2, _080289D8 @ =gBattlerTarget
- ldrb r3, [r2]
- movs r6, 0x58
- adds r0, r3, 0
- muls r0, r6
- adds r5, r0, r1
- adds r0, r5, 0
- adds r0, 0x20
- ldrb r4, [r0]
- mov r8, r1
- mov r9, r2
- cmp r4, 0x5
- bne _080289F4
- ldr r2, _080289E4 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080289E8 @ =gLastUsedAbility
- strb r4, [r0]
- ldr r1, _080289EC @ =gUnknown_2023D74
- ldr r0, _080289F0 @ =gUnknown_81D93A1
- str r0, [r1]
- mov r1, r9
- ldrb r0, [r1]
- movs r1, 0x5
- bl sub_80C71D0
- b _08028C48
- .align 2, 0
-_080289D4: .4byte gPotentialItemEffectBattler
-_080289D8: .4byte gBattlerTarget
-_080289DC: .4byte gUnknown_2023ECC
-_080289E0: .4byte gBattleMons
-_080289E4: .4byte gMoveResultFlags
-_080289E8: .4byte gLastUsedAbility
-_080289EC: .4byte gUnknown_2023D74
-_080289F0: .4byte gUnknown_81D93A1
-_080289F4:
- ldr r1, _08028A68 @ =gStatuses3
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x18
- ands r0, r1
- cmp r0, 0
- bne _08028A78
- ldr r1, _08028A6C @ =gBattleMoves
- ldr r0, _08028A70 @ =gCurrentMove
- ldrh r0, [r0]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldr r7, _08028A74 @ =sBattler_AI
- ldrb r0, [r7]
- muls r0, r6
- add r0, r8
- adds r0, 0x2A
- ldrb r0, [r0]
- adds r1, r5, 0
- adds r1, 0x2A
- ldrb r1, [r1]
- subs r0, r1
- ldrb r2, [r2, 0x3]
- adds r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, 0x1
- cmp r0, r4
- blt _08028A48
- b _08028BE0
-_08028A48:
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- add r1, r8
- adds r1, 0x2A
- mov r2, r9
- ldrb r0, [r2]
- muls r0, r6
- add r0, r8
- adds r0, 0x2A
- ldrb r1, [r1]
- movs r4, 0x1
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08028B0E
- b _08028BE0
- .align 2, 0
-_08028A68: .4byte gStatuses3
-_08028A6C: .4byte gBattleMoves
-_08028A70: .4byte gCurrentMove
-_08028A74: .4byte sBattler_AI
-_08028A78:
- ldr r1, _08028B44 @ =gDisableStructs
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldr r1, _08028B48 @ =sBattler_AI
- ldrb r0, [r0, 0x15]
- adds r7, r1, 0
- ldrb r3, [r7]
- cmp r0, r3
- bne _08028AA2
- ldrb r0, [r7]
- muls r0, r6
- add r0, r8
- adds r0, 0x2A
- adds r1, r5, 0
- adds r1, 0x2A
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08028B1A
-_08028AA2:
- ldr r1, _08028B4C @ =gBattleMoves
- ldr r0, _08028B50 @ =gCurrentMove
- ldrh r0, [r0]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldr r6, _08028B54 @ =gBattleMons
- ldrb r0, [r7]
- movs r5, 0x58
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r1, [r0]
- ldr r0, _08028B58 @ =gBattlerTarget
- mov r8, r0
- ldrb r0, [r0]
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r0, [r0]
- subs r1, r0
- ldrb r2, [r2, 0x3]
- adds r1, r2
- lsls r1, 16
- lsrs r4, r1, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, 0x1
- cmp r0, r4
- bge _08028B0C
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r6
- adds r1, 0x2A
- mov r2, r8
- ldrb r0, [r2]
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r1, [r1]
- movs r4, 0x1
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08028B0E
-_08028B0C:
- movs r4, 0
-_08028B0E:
- ldr r3, _08028B54 @ =gBattleMons
- mov r8, r3
- ldr r0, _08028B58 @ =gBattlerTarget
- mov r9, r0
- cmp r4, 0
- beq _08028BE0
-_08028B1A:
- ldr r0, _08028B5C @ =gUnknown_2023E8C
- mov r1, r9
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- bge _08028B68
- ldr r1, _08028B60 @ =gBattleMoveDamage
- movs r0, 0x58
- muls r0, r2
- add r0, r8
- ldrh r0, [r0, 0x28]
- subs r0, 0x1
- str r0, [r1]
- ldr r2, _08028B64 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x40
- b _08028BC6
- .align 2, 0
-_08028B44: .4byte gDisableStructs
-_08028B48: .4byte sBattler_AI
-_08028B4C: .4byte gBattleMoves
-_08028B50: .4byte gCurrentMove
-_08028B54: .4byte gBattleMons
-_08028B58: .4byte gBattlerTarget
-_08028B5C: .4byte gUnknown_2023E8C
-_08028B60: .4byte gBattleMoveDamage
-_08028B64: .4byte gMoveResultFlags
-_08028B68:
- ldr r0, _08028BA4 @ =gUnknown_2023ECC
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _08028BB4
- ldr r1, _08028BA8 @ =gBattleMoveDamage
- movs r3, 0x58
- adds r0, r2, 0
- muls r0, r3
- add r0, r8
- ldrh r0, [r0, 0x28]
- subs r0, 0x1
- str r0, [r1]
- ldr r2, _08028BAC @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08028BB0 @ =gUnknown_2023D68
- mov r2, r9
- ldrb r0, [r2]
- muls r0, r3
- add r0, r8
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
- b _08028BCA
- .align 2, 0
-_08028BA4: .4byte gUnknown_2023ECC
-_08028BA8: .4byte gBattleMoveDamage
-_08028BAC: .4byte gMoveResultFlags
-_08028BB0: .4byte gUnknown_2023D68
-_08028BB4:
- ldr r1, _08028BD4 @ =gBattleMoveDamage
- movs r0, 0x58
- muls r0, r2
- add r0, r8
- ldrh r0, [r0, 0x28]
- str r0, [r1]
- ldr r2, _08028BD8 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x10
-_08028BC6:
- orrs r0, r1
- strb r0, [r2]
-_08028BCA:
- ldr r1, _08028BDC @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08028C48
- .align 2, 0
-_08028BD4: .4byte gBattleMoveDamage
-_08028BD8: .4byte gMoveResultFlags
-_08028BDC: .4byte gUnknown_2023D74
-_08028BE0:
- ldr r2, _08028C14 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r3, _08028C18 @ =gBattleMons
- ldr r0, _08028C1C @ =sBattler_AI
- ldrb r0, [r0]
- movs r2, 0x58
- adds r1, r0, 0
- muls r1, r2
- adds r1, r3
- adds r1, 0x2A
- ldr r0, _08028C20 @ =gBattlerTarget
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _08028C28
- ldr r1, _08028C24 @ =gUnknown_2023E82
- movs r0, 0
- b _08028C2C
- .align 2, 0
-_08028C14: .4byte gMoveResultFlags
-_08028C18: .4byte gBattleMons
-_08028C1C: .4byte sBattler_AI
-_08028C20: .4byte gBattlerTarget
-_08028C24: .4byte gUnknown_2023E82
-_08028C28:
- ldr r1, _08028C54 @ =gUnknown_2023E82
- movs r0, 0x1
-_08028C2C:
- strb r0, [r1, 0x5]
- ldr r3, _08028C58 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08028C48:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028C54: .4byte gUnknown_2023E82
-_08028C58: .4byte gUnknown_2023D74
- thumb_func_end atk93_tryKO
-
- thumb_func_start atk94_damagetohalftargethp
-atk94_damagetohalftargethp: @ 8028C5C
- push {lr}
- ldr r3, _08028C88 @ =gBattleMoveDamage
- ldr r2, _08028C8C @ =gBattleMons
- ldr r0, _08028C90 @ =gBattlerTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- lsrs r0, 1
- str r0, [r3]
- cmp r0, 0
- bne _08028C7A
- movs r0, 0x1
- str r0, [r3]
-_08028C7A:
- ldr r1, _08028C94 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08028C88: .4byte gBattleMoveDamage
-_08028C8C: .4byte gBattleMons
-_08028C90: .4byte gBattlerTarget
-_08028C94: .4byte gUnknown_2023D74
- thumb_func_end atk94_damagetohalftargethp
-
- thumb_func_start atk95_setsandstorm
-atk95_setsandstorm: @ 8028C98
- push {lr}
- ldr r2, _08028CB8 @ =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _08028CC4
- ldr r2, _08028CBC @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08028CC0 @ =gUnknown_2023E82
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _08028CD6
- .align 2, 0
-_08028CB8: .4byte gBattleWeather
-_08028CBC: .4byte gMoveResultFlags
-_08028CC0: .4byte gUnknown_2023E82
-_08028CC4:
- movs r0, 0x8
- strh r0, [r2]
- ldr r1, _08028CE4 @ =gUnknown_2023E82
- movs r0, 0x3
- strb r0, [r1, 0x5]
- ldr r0, _08028CE8 @ =gUnknown_2023F20
- adds r0, 0x28
- movs r1, 0x5
- strb r1, [r0]
-_08028CD6:
- ldr r1, _08028CEC @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08028CE4: .4byte gUnknown_2023E82
-_08028CE8: .4byte gUnknown_2023F20
-_08028CEC: .4byte gUnknown_2023D74
- thumb_func_end atk95_setsandstorm
-
- thumb_func_start sub_8028CF0
-sub_8028CF0: @ 8028CF0
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _08028DBC @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0xA0
- lsls r1, 8
- ands r0, r1
- movs r1, 0x80
- lsls r1, 8
- cmp r0, r1
- bne _08028D18
- ldr r0, _08028DC0 @ =sBattler_AI
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08028D18
- b _08028E64
-_08028D18:
- 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 _08028D32
- b _08028E48
-_08028D32:
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _08028D48
- b _08028E48
-_08028D48:
- ldr r2, _08028DC4 @ =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x18
- ands r0, r1
- ldr r5, _08028DC0 @ =sBattler_AI
- adds r4, r2, 0
- cmp r0, 0
- beq _08028DDA
- ldr r0, _08028DC8 @ =gBattleMons
- ldrb r2, [r5]
- movs r1, 0x58
- muls r1, r2
- adds r3, r1, r0
- adds r0, r3, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x5
- beq _08028DD4
- cmp r0, 0x8
- beq _08028DD4
- cmp r0, 0x4
- beq _08028DD4
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x5
- beq _08028DD4
- cmp r0, 0x8
- beq _08028DD4
- cmp r0, 0x4
- beq _08028DD4
- adds r0, r3, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x8
- beq _08028DD4
- ldr r0, _08028DCC @ =gStatuses3
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08028DD4
- movs r0, 0x80
- lsls r0, 11
- ands r1, r0
- cmp r1, 0
- bne _08028DD4
- ldr r1, _08028DD0 @ =gBattleMoveDamage
- ldrh r0, [r3, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08028DDA
- movs r0, 0x1
- b _08028DD8
- .align 2, 0
-_08028DBC: .4byte gBattleTypeFlags
-_08028DC0: .4byte sBattler_AI
-_08028DC4: .4byte gBattleWeather
-_08028DC8: .4byte gBattleMons
-_08028DCC: .4byte gStatuses3
-_08028DD0: .4byte gBattleMoveDamage
-_08028DD4:
- ldr r1, _08028E30 @ =gBattleMoveDamage
- movs r0, 0
-_08028DD8:
- str r0, [r1]
-_08028DDA:
- ldrh r1, [r4]
- movs r4, 0x80
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08028E50
- ldr r1, _08028E34 @ =gBattleMons
- ldrb r3, [r5]
- movs r0, 0x58
- muls r0, r3
- adds r2, r0, r1
- adds r0, r2, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xF
- beq _08028E3C
- adds r0, r2, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xF
- beq _08028E3C
- ldr r0, _08028E38 @ =gStatuses3
- lsls r1, r3, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r1, 0
- ands r0, r4
- cmp r0, 0
- bne _08028E3C
- movs r0, 0x80
- lsls r0, 11
- ands r1, r0
- cmp r1, 0
- bne _08028E3C
- ldr r1, _08028E30 @ =gBattleMoveDamage
- ldrh r0, [r2, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08028E50
- movs r0, 0x1
- str r0, [r1]
- b _08028E50
- .align 2, 0
-_08028E30: .4byte gBattleMoveDamage
-_08028E34: .4byte gBattleMons
-_08028E38: .4byte gStatuses3
-_08028E3C:
- ldr r1, _08028E44 @ =gBattleMoveDamage
- movs r0, 0
- str r0, [r1]
- b _08028E50
- .align 2, 0
-_08028E44: .4byte gBattleMoveDamage
-_08028E48:
- ldr r1, _08028E7C @ =gBattleMoveDamage
- movs r0, 0
- str r0, [r1]
- ldr r5, _08028E80 @ =sBattler_AI
-_08028E50:
- ldr r0, _08028E84 @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldr r2, _08028E88 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08028E6A
-_08028E64:
- ldr r1, _08028E7C @ =gBattleMoveDamage
- movs r0, 0
- str r0, [r1]
-_08028E6A:
- ldr r1, _08028E8C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08028E7C: .4byte gBattleMoveDamage
-_08028E80: .4byte sBattler_AI
-_08028E84: .4byte gAbsentBattlerFlags
-_08028E88: .4byte gBitTable
-_08028E8C: .4byte gUnknown_2023D74
- thumb_func_end sub_8028CF0
-
- thumb_func_start sub_8028E90
-sub_8028E90: @ 8028E90
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _08028EBC @ =sBattler_AI
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08028EC8
- ldr r1, _08028EC0 @ =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08028EC4 @ =gPlayerParty
- b _08028ED8
- .align 2, 0
-_08028EBC: .4byte sBattler_AI
-_08028EC0: .4byte gBattlerPartyIndexes
-_08028EC4: .4byte gPlayerParty
-_08028EC8:
- ldr r1, _08028EFC @ =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08028F00 @ =gEnemyParty
-_08028ED8:
- adds r5, r1, r0
- ldr r4, _08028F04 @ =gBattlerTarget
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08028F0C
- ldr r1, _08028EFC @ =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08028F08 @ =gPlayerParty
- b _08028F1C
- .align 2, 0
-_08028EFC: .4byte gBattlerPartyIndexes
-_08028F00: .4byte gEnemyParty
-_08028F04: .4byte gBattlerTarget
-_08028F08: .4byte gPlayerParty
-_08028F0C:
- ldr r1, _08028F78 @ =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08028F7C @ =gEnemyParty
-_08028F1C:
- adds r4, r1, r0
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- adds r0, r5, 0
- movs r1, 0
- bl GetMonData
- mov r9, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r7, r0, 0
- ldr r5, _08028F80 @ =gBattlerTarget
- ldrb r0, [r5]
- movs r6, 0x58
- muls r0, r6
- ldr r1, _08028F84 @ =gBattleMons
- adds r0, r1
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0xC
- bne _08028F94
- ldr r1, _08028F88 @ =gUnknown_2023D74
- ldr r0, _08028F8C @ =gUnknown_81D9444
- str r0, [r1]
- ldr r0, _08028F90 @ =gLastUsedAbility
- strb r2, [r0]
- ldrb r0, [r5]
- movs r1, 0xC
- bl sub_80C71D0
- b _0802902C
- .align 2, 0
-_08028F78: .4byte gBattlerPartyIndexes
-_08028F7C: .4byte gEnemyParty
-_08028F80: .4byte gBattlerTarget
-_08028F84: .4byte gBattleMons
-_08028F88: .4byte gUnknown_2023D74
-_08028F8C: .4byte gUnknown_81D9444
-_08028F90: .4byte gLastUsedAbility
-_08028F94:
- mov r0, r10
- mov r1, r9
- bl GetGenderFromSpeciesAndPersonality
- adds r4, r0, 0
- mov r0, r8
- adds r1, r7, 0
- bl GetGenderFromSpeciesAndPersonality
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _08028FE4
- ldrb r0, [r5]
- muls r0, r6
- ldr r4, _08029000 @ =gBattleMons
- adds r4, 0x50
- adds r0, r4
- ldr r0, [r0]
- movs r1, 0xF0
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- bne _08028FE4
- mov r0, r10
- mov r1, r9
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _08028FE4
- mov r0, r8
- adds r1, r7, 0
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _08029008
-_08028FE4:
- ldr r3, _08029004 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802902C
- .align 2, 0
-_08029000: .4byte gBattleMons
-_08029004: .4byte gUnknown_2023D74
-_08029008:
- ldrb r0, [r5]
- adds r2, r0, 0
- muls r2, r6
- adds r2, r4
- ldr r1, _0802903C @ =gBitTable
- ldr r0, _08029040 @ =sBattler_AI
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 16
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08029044 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802902C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802903C: .4byte gBitTable
-_08029040: .4byte sBattler_AI
-_08029044: .4byte gUnknown_2023D74
- thumb_func_end sub_8028E90
-
- thumb_func_start sub_8029048
-sub_8029048: @ 8029048
- push {r4-r7,lr}
- ldr r0, _080290B8 @ =gUnknown_2023BC8
- ldr r1, [r0]
- cmp r1, 0
- beq _08029054
- b _080291C0
-_08029054:
- ldr r5, _080290BC @ =gUnknown_2023D74
- ldr r2, [r5]
- ldrb r0, [r2, 0x1]
- cmp r0, 0xD
- bne _080290D4
- ldr r2, _080290C0 @ =gActiveBattler
- strb r1, [r2]
- ldr r0, _080290C4 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08029164
- ldr r7, _080290C8 @ =gBitTable
- adds r4, r2, 0
- ldr r5, _080290CC @ =gBattleMons
- adds r6, r5, 0
- adds r6, 0x50
-_08029074:
- ldr r0, _080290D0 @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r7
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080290A2
- movs r0, 0x58
- muls r2, r0
- adds r0, r5, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r1, [r0]
- adds r2, r6
- ldr r2, [r2]
- movs r0, 0
- bl EmitStatusIconUpdate
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_080290A2:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _080290C4 @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08029074
- b _08029164
- .align 2, 0
-_080290B8: .4byte gUnknown_2023BC8
-_080290BC: .4byte gUnknown_2023D74
-_080290C0: .4byte gActiveBattler
-_080290C4: .4byte gBattlersCount
-_080290C8: .4byte gBitTable
-_080290CC: .4byte gBattleMons
-_080290D0: .4byte gAbsentBattlerFlags
-_080290D4:
- cmp r0, 0x4
- bne _0802918C
- ldr r4, _08029170 @ =gActiveBattler
- ldr r5, _08029174 @ =sBattler_AI
- ldrb r0, [r5]
- strb r0, [r4]
- ldr r6, _08029178 @ =gAbsentBattlerFlags
- ldrb r1, [r6]
- ldr r7, _0802917C @ =gBitTable
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r7
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08029114
- ldr r3, _08029180 @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r1, [r0]
- adds r3, 0x50
- adds r2, r3
- ldr r2, [r2]
- movs r0, 0
- bl EmitStatusIconUpdate
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_08029114:
- ldr r0, _08029184 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08029164
- ldrb r0, [r5]
- bl GetBattlerPosition
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerAtPosition
- strb r0, [r4]
- ldrb r1, [r6]
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r7
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08029164
- ldr r3, _08029180 @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r1, [r0]
- adds r3, 0x50
- adds r2, r3
- ldr r2, [r2]
- movs r0, 0
- bl EmitStatusIconUpdate
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_08029164:
- ldr r1, _08029188 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- b _080291C0
- .align 2, 0
-_08029170: .4byte gActiveBattler
-_08029174: .4byte sBattler_AI
-_08029178: .4byte gAbsentBattlerFlags
-_0802917C: .4byte gBitTable
-_08029180: .4byte gBattleMons
-_08029184: .4byte gBattleTypeFlags
-_08029188: .4byte gUnknown_2023D74
-_0802918C:
- ldrb r0, [r2, 0x1]
- bl sub_8016E24
- ldr r4, _080291C8 @ =gActiveBattler
- strb r0, [r4]
- ldr r3, _080291CC @ =gBattleMons
- ldrb r1, [r4]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r1, [r0]
- adds r3, 0x50
- adds r2, r3
- ldr r2, [r2]
- movs r0, 0
- bl EmitStatusIconUpdate
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_080291C0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080291C8: .4byte gActiveBattler
-_080291CC: .4byte gBattleMons
- thumb_func_end sub_8029048
-
- thumb_func_start atk99_setmist
-atk99_setmist: @ 80291D0
- push {r4-r6,lr}
- ldr r6, _08029200 @ =gSideTimers
- ldr r4, _08029204 @ =sBattler_AI
- ldrb r0, [r4]
- bl GetBattlerPosition
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _08029210
- ldr r2, _08029208 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0802920C @ =gUnknown_2023E82
- strb r5, [r0, 0x5]
- b _0802925E
- .align 2, 0
-_08029200: .4byte gSideTimers
-_08029204: .4byte sBattler_AI
-_08029208: .4byte gMoveResultFlags
-_0802920C: .4byte gUnknown_2023E82
-_08029210:
- ldrb r0, [r4]
- bl GetBattlerPosition
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5
- strb r1, [r0, 0x4]
- ldrb r0, [r4]
- bl GetBattlerPosition
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r4]
- strb r1, [r0, 0x5]
- ldrb r0, [r4]
- bl GetBattlerPosition
- ldr r2, _0802926C @ =gSideAffecting
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3, 0
- movs r3, 0
- orrs r0, r2
- strh r0, [r1]
- ldr r0, _08029270 @ =gUnknown_2023E82
- strb r3, [r0, 0x5]
-_0802925E:
- ldr r1, _08029274 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802926C: .4byte gSideAffecting
-_08029270: .4byte gUnknown_2023E82
-_08029274: .4byte gUnknown_2023D74
- thumb_func_end atk99_setmist
-
- thumb_func_start atk9A_setfocusenergy
-atk9A_setfocusenergy: @ 8029278
- push {lr}
- ldr r1, _080292A8 @ =gBattleMons
- ldr r0, _080292AC @ =sBattler_AI
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r3, 0x80
- lsls r3, 13
- adds r2, r1, 0
- ands r2, r3
- cmp r2, 0
- beq _080292B8
- ldr r2, _080292B0 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080292B4 @ =gUnknown_2023E82
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _080292C0
- .align 2, 0
-_080292A8: .4byte gBattleMons
-_080292AC: .4byte sBattler_AI
-_080292B0: .4byte gMoveResultFlags
-_080292B4: .4byte gUnknown_2023E82
-_080292B8:
- orrs r1, r3
- str r1, [r0]
- ldr r0, _080292CC @ =gUnknown_2023E82
- strb r2, [r0, 0x5]
-_080292C0:
- ldr r1, _080292D0 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080292CC: .4byte gUnknown_2023E82
-_080292D0: .4byte gUnknown_2023D74
- thumb_func_end atk9A_setfocusenergy
-
- thumb_func_start atk9B_transformdataexecution
-atk9B_transformdataexecution: @ 80292D4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r1, _0802932C @ =gUnknown_2023D4C
- ldr r2, _08029330 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08029334 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r7, _08029338 @ =gBattleMons
- ldr r0, _0802933C @ =gBattlerTarget
- mov r12, r0
- ldrb r1, [r0]
- movs r6, 0x58
- adds r0, r1, 0
- muls r0, r6
- adds r5, r7, 0
- adds r5, 0x50
- adds r0, r5
- ldr r0, [r0]
- movs r4, 0x80
- lsls r4, 14
- ands r0, r4
- cmp r0, 0
- bne _0802931A
- ldr r0, _08029340 @ =gStatuses3
- lsls r1, 2
- adds r1, r0
- ldr r2, [r1]
- ldr r0, _08029344 @ =0x000400c0
- ands r2, r0
- cmp r2, 0
- beq _08029350
-_0802931A:
- ldr r2, _08029348 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802934C @ =gUnknown_2023E82
- movs r0, 0x1
- b _08029464
- .align 2, 0
-_0802932C: .4byte gUnknown_2023D4C
-_08029330: .4byte 0x0000ffff
-_08029334: .4byte gUnknown_2023D74
-_08029338: .4byte gBattleMons
-_0802933C: .4byte gBattlerTarget
-_08029340: .4byte gStatuses3
-_08029344: .4byte 0x000400c0
-_08029348: .4byte gMoveResultFlags
-_0802934C: .4byte gUnknown_2023E82
-_08029350:
- ldr r3, _08029424 @ =sBattler_AI
- ldrb r0, [r3]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- ldr r0, [r1]
- orrs r0, r4
- str r0, [r1]
- ldr r4, _08029428 @ =gDisableStructs
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x4]
- ldrb r0, [r3]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0xB]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xB]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- mov r2, r12
- ldrb r1, [r2]
- muls r1, r6
- adds r2, r7, 0
- adds r2, 0x48
- adds r1, r2
- ldr r1, [r1]
- str r1, [r0]
- ldrb r0, [r3]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x18]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1, 0x18]
- ldr r1, _0802942C @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x6
- strb r0, [r1, 0x1]
- mov r2, r12
- ldrb r0, [r2]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r2]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldrb r0, [r3]
- muls r0, r6
- adds r5, r0, r7
- ldrb r0, [r2]
- muls r0, r6
- adds r2, r0, r7
- movs r4, 0
- adds r6, r3, 0
- ldr r0, _08029430 @ =gActiveBattler
- mov r8, r0
-_080293E8:
- adds r0, r5, r4
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x23
- bls _080293E8
- movs r4, 0
- ldr r7, _08029434 @ =gBattleMoves
- ldr r3, _08029438 @ =gUnknown_2023BF0
- adds r5, r3, 0
- adds r5, 0x18
-_08029400:
- lsls r1, r4, 1
- ldrb r2, [r6]
- movs r0, 0x58
- muls r2, r0
- adds r1, r2
- adds r1, r3
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r1, [r0, 0x4]
- cmp r1, 0x4
- bhi _0802943C
- adds r0, r4, r2
- adds r0, r5
- b _08029442
- .align 2, 0
-_08029424: .4byte sBattler_AI
-_08029428: .4byte gDisableStructs
-_0802942C: .4byte gBattleTextBuff1
-_08029430: .4byte gActiveBattler
-_08029434: .4byte gBattleMoves
-_08029438: .4byte gUnknown_2023BF0
-_0802943C:
- adds r0, r4, r2
- adds r0, r5
- movs r1, 0x5
-_08029442:
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x3
- ble _08029400
- ldrb r0, [r6]
- mov r1, r8
- strb r0, [r1]
- movs r0, 0
- movs r1, 0x2
- bl EmitResetActionMoveSelection
- mov r2, r8
- ldrb r0, [r2]
- bl MarkBufferBankForExecution
- ldr r1, _08029470 @ =gUnknown_2023E82
- movs r0, 0
-_08029464:
- strb r0, [r1, 0x5]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029470: .4byte gUnknown_2023E82
- thumb_func_end atk9B_transformdataexecution
-
- thumb_func_start atk9C_setsubstitute
-atk9C_setsubstitute: @ 8029474
- push {r4-r7,lr}
- ldr r7, _080294A4 @ =gBattleMons
- ldr r6, _080294A8 @ =sBattler_AI
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r3, r0, r7
- ldrh r0, [r3, 0x2C]
- lsrs r1, r0, 2
- adds r2, r1, 0
- cmp r1, 0
- bne _0802948E
- movs r2, 0x1
-_0802948E:
- ldrh r0, [r3, 0x28]
- cmp r0, r2
- bhi _080294B4
- ldr r1, _080294AC @ =gBattleMoveDamage
- movs r0, 0
- str r0, [r1]
- ldr r1, _080294B0 @ =gUnknown_2023E82
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08029508
- .align 2, 0
-_080294A4: .4byte gBattleMons
-_080294A8: .4byte sBattler_AI
-_080294AC: .4byte gBattleMoveDamage
-_080294B0: .4byte gUnknown_2023E82
-_080294B4:
- ldr r4, _08029518 @ =gBattleMoveDamage
- str r1, [r4]
- cmp r1, 0
- bne _080294C0
- movs r0, 0x1
- str r0, [r4]
-_080294C0:
- ldrb r0, [r6]
- adds r2, r0, 0
- muls r2, r5
- adds r3, r7, 0
- adds r3, 0x50
- adds r2, r3
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 17
- orrs r0, r1
- str r0, [r2]
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r3
- ldr r0, [r1]
- ldr r2, _0802951C @ =0xffff1fff
- ands r0, r2
- str r0, [r1]
- ldr r2, _08029520 @ =gDisableStructs
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, [r4]
- movs r2, 0
- strb r1, [r0, 0xA]
- ldr r0, _08029524 @ =gUnknown_2023E82
- strb r2, [r0, 0x5]
- ldr r2, _08029528 @ =gUnknown_2023DD0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 1
- orrs r0, r1
- str r0, [r2]
-_08029508:
- ldr r1, _0802952C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029518: .4byte gBattleMoveDamage
-_0802951C: .4byte 0xffff1fff
-_08029520: .4byte gDisableStructs
-_08029524: .4byte gUnknown_2023E82
-_08029528: .4byte gUnknown_2023DD0
-_0802952C: .4byte gUnknown_2023D74
- thumb_func_end atk9C_setsubstitute
-
- thumb_func_start IsMoveUncopyableByMimic
-IsMoveUncopyableByMimic: @ 8029530
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r3, 0
- ldr r0, _08029570 @ =gUnknown_82507E8
- ldrh r1, [r0]
- ldr r4, _08029574 @ =0x0000fffe
- adds r5, r0, 0
- cmp r1, r4
- beq _08029558
- cmp r1, r2
- beq _08029558
- adds r1, r5, 0
-_0802954A:
- adds r1, 0x2
- adds r3, 0x1
- ldrh r0, [r1]
- cmp r0, r4
- beq _08029558
- cmp r0, r2
- bne _0802954A
-_08029558:
- lsls r0, r3, 1
- adds r0, r5
- ldrh r1, [r0]
- ldr r0, _08029574 @ =0x0000fffe
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08029570: .4byte gUnknown_82507E8
-_08029574: .4byte 0x0000fffe
- thumb_func_end IsMoveUncopyableByMimic
-
- thumb_func_start atk9D_mimicattackcopy
-atk9D_mimicattackcopy: @ 8029578
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _080295F0 @ =gUnknown_2023D4C
- ldr r1, _080295F4 @ =0x0000ffff
- adds r7, r1, 0
- strh r7, [r0]
- ldr r5, _080295F8 @ =gLastUsedMove
- ldr r6, _080295FC @ =gBattlerTarget
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- bl IsMoveUncopyableByMimic
- lsls r0, 24
- cmp r0, 0
- bne _080295D2
- ldr r3, _08029600 @ =gBattleMons
- ldr r2, _08029604 @ =sBattler_AI
- ldrb r1, [r2]
- movs r0, 0x58
- adds r4, r1, 0
- muls r4, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r4, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 14
- ands r1, r0
- mov r12, r3
- mov r9, r2
- cmp r1, 0
- bne _080295D2
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r5
- ldrh r1, [r0]
- cmp r1, 0
- beq _080295D2
- cmp r1, r7
- bne _0802960C
-_080295D2:
- ldr r3, _08029608 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08029744
- .align 2, 0
-_080295F0: .4byte gUnknown_2023D4C
-_080295F4: .4byte 0x0000ffff
-_080295F8: .4byte gLastUsedMove
-_080295FC: .4byte gBattlerTarget
-_08029600: .4byte gBattleMons
-_08029604: .4byte sBattler_AI
-_08029608: .4byte gUnknown_2023D74
-_0802960C:
- movs r2, 0
- mov r3, r12
- adds r3, 0xC
- adds r0, r4, r3
- ldrh r0, [r0]
- ldr r4, _0802969C @ =gUnknown_2023D74
- mov r10, r4
- cmp r0, r1
- beq _08029646
- mov r8, r3
- adds r7, r5, 0
- adds r5, r6, 0
- mov r4, r9
- movs r3, 0x58
-_08029628:
- adds r2, 0x1
- cmp r2, 0x3
- bgt _08029646
- lsls r1, r2, 1
- ldrb r0, [r4]
- muls r0, r3
- adds r1, r0
- add r1, r8
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r7
- ldrh r1, [r1]
- ldrh r0, [r0]
- cmp r1, r0
- bne _08029628
-_08029646:
- cmp r2, 0x4
- bne _08029728
- ldr r5, _080296A0 @ =gUnknown_2023D48
- ldrb r1, [r5]
- lsls r1, 1
- mov r2, r9
- ldrb r0, [r2]
- movs r6, 0x58
- muls r0, r6
- adds r1, r0
- mov r0, r12
- adds r0, 0xC
- adds r1, r0
- ldr r2, _080296A4 @ =gLastUsedMove
- ldr r3, _080296A8 @ =gBattlerTarget
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r4, _080296AC @ =gBattleMoves
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r4, [r0, 0x4]
- cmp r4, 0x4
- bhi _080296B0
- mov r1, r9
- ldrb r0, [r1]
- muls r0, r6
- ldrb r1, [r5]
- adds r0, r1
- mov r1, r12
- adds r1, 0x24
- adds r0, r1
- strb r4, [r0]
- b _080296C4
- .align 2, 0
-_0802969C: .4byte gUnknown_2023D74
-_080296A0: .4byte gUnknown_2023D48
-_080296A4: .4byte gLastUsedMove
-_080296A8: .4byte gBattlerTarget
-_080296AC: .4byte gBattleMoves
-_080296B0:
- mov r4, r9
- ldrb r0, [r4]
- muls r0, r6
- ldrb r1, [r5]
- adds r0, r1
- mov r1, r12
- adds r1, 0x24
- adds r0, r1
- movs r1, 0x5
- strb r1, [r0]
-_080296C4:
- ldr r1, _0802971C @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08029720 @ =gDisableStructs
- mov r2, r9
- ldrb r0, [r2]
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r4, [r2, 0x18]
- lsrs r3, r4, 4
- ldr r1, _08029724 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- orrs r1, r3
- lsls r1, 4
- movs r0, 0xF
- ands r0, r4
- orrs r0, r1
- strb r0, [r2, 0x18]
- mov r4, r10
- ldr r0, [r4]
- adds r0, 0x5
- str r0, [r4]
- b _08029744
- .align 2, 0
-_0802971C: .4byte gBattleTextBuff1
-_08029720: .4byte gDisableStructs
-_08029724: .4byte gBitTable
-_08029728:
- mov r0, r10
- ldr r2, [r0]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- mov r2, r10
- str r1, [r2]
-_08029744:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk9D_mimicattackcopy
-
- thumb_func_start atk9E_metronome
-atk9E_metronome: @ 8029754
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _080297D4 @ =gCurrentMove
- movs r6, 0xB1
- lsls r6, 1
- ldr r5, _080297D8 @ =gUnknown_82507E8
- ldr r0, _080297DC @ =gUnknown_2023D74
- mov r8, r0
-_08029766:
- bl Random
- ldr r2, _080297E0 @ =0x000001ff
- adds r1, r2, 0
- ands r0, r1
- adds r0, 0x1
- strh r0, [r7]
- cmp r0, r6
- bhi _08029766
- movs r0, 0x3
-_0802977A:
- subs r0, 0x1
- cmp r0, 0
- bge _0802977A
- ldr r4, _080297D4 @ =gCurrentMove
- ldrh r2, [r4]
- ldr r3, _080297E4 @ =0x0000ffff
- subs r0, r5, 0x2
-_08029788:
- adds r0, 0x2
- ldrh r1, [r0]
- cmp r1, r2
- beq _08029794
- cmp r1, r3
- bne _08029788
-_08029794:
- ldr r0, _080297E4 @ =0x0000ffff
- cmp r1, r0
- bne _08029766
- ldr r2, _080297E8 @ =gUnknown_2023DD0
- ldr r0, [r2]
- ldr r1, _080297EC @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r3, _080297F0 @ =gUnknown_81D65A8
- ldr r2, _080297F4 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- mov r1, r8
- str r0, [r1]
- ldrh r0, [r4]
- movs r1, 0
- bl GetMoveTarget
- ldr r1, _080297F8 @ =gBattlerTarget
- strb r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080297D4: .4byte gCurrentMove
-_080297D8: .4byte gUnknown_82507E8
-_080297DC: .4byte gUnknown_2023D74
-_080297E0: .4byte 0x000001ff
-_080297E4: .4byte 0x0000ffff
-_080297E8: .4byte gUnknown_2023DD0
-_080297EC: .4byte 0xfffffbff
-_080297F0: .4byte gUnknown_81D65A8
-_080297F4: .4byte gBattleMoves
-_080297F8: .4byte gBattlerTarget
- thumb_func_end atk9E_metronome
-
- thumb_func_start atk9F_dmgtolevel
-atk9F_dmgtolevel: @ 80297FC
- ldr r3, _0802981C @ =gBattleMoveDamage
- ldr r2, _08029820 @ =gBattleMons
- ldr r0, _08029824 @ =sBattler_AI
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r0, [r0]
- str r0, [r3]
- ldr r1, _08029828 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802981C: .4byte gBattleMoveDamage
-_08029820: .4byte gBattleMons
-_08029824: .4byte sBattler_AI
-_08029828: .4byte gUnknown_2023D74
- thumb_func_end atk9F_dmgtolevel
-
- thumb_func_start atkA0_psywavedamageeffect
-atkA0_psywavedamageeffect: @ 802982C
- push {r4,lr}
- movs r4, 0xF
-_08029830:
- bl Random
- adds r3, r4, 0
- ands r3, r0
- cmp r3, 0xA
- bgt _08029830
- lsls r0, r3, 2
- adds r0, r3
- lsls r3, r0, 1
- ldr r4, _08029870 @ =gBattleMoveDamage
- ldr r2, _08029874 @ =gBattleMons
- ldr r0, _08029878 @ =sBattler_AI
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r1, [r0]
- adds r0, r3, 0
- adds r0, 0x32
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- ldr r1, _0802987C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08029870: .4byte gBattleMoveDamage
-_08029874: .4byte gBattleMons
-_08029878: .4byte sBattler_AI
-_0802987C: .4byte gUnknown_2023D74
- thumb_func_end atkA0_psywavedamageeffect
-
- thumb_func_start atkA1_counterdamagecalculator
-atkA1_counterdamagecalculator: @ 8029880
- push {r4-r6,lr}
- ldr r4, _080298F0 @ =sBattler_AI
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _080298F4 @ =gUnknown_2023E8C
- ldrb r0, [r4]
- lsls r0, 4
- adds r0, r5
- ldrb r0, [r0, 0xC]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r0, r5, 0x4
- adds r0, r1, r0
- ldr r3, [r0]
- cmp r3, 0
- beq _08029934
- cmp r6, r2
- beq _08029934
- ldr r6, _080298F8 @ =gBattleMons
- adds r0, r1, r5
- ldrb r0, [r0, 0xC]
- movs r4, 0x58
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08029934
- ldr r1, _080298FC @ =gBattleMoveDamage
- lsls r0, r3, 1
- str r0, [r1]
- ldr r1, _08029900 @ =gSideTimers
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x8]
- cmp r0, 0
- beq _08029908
- ldrb r1, [r1, 0x9]
- adds r0, r1, 0
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08029908
- ldr r0, _08029904 @ =gBattlerTarget
- strb r1, [r0]
- b _08029918
- .align 2, 0
-_080298F0: .4byte sBattler_AI
-_080298F4: .4byte gUnknown_2023E8C
-_080298F8: .4byte gBattleMons
-_080298FC: .4byte gBattleMoveDamage
-_08029900: .4byte gSideTimers
-_08029904: .4byte gBattlerTarget
-_08029908:
- ldr r2, _08029924 @ =gBattlerTarget
- ldr r1, _08029928 @ =gUnknown_2023E8C
- ldr r0, _0802992C @ =sBattler_AI
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0xC]
- strb r0, [r2]
-_08029918:
- ldr r1, _08029930 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08029964
- .align 2, 0
-_08029924: .4byte gBattlerTarget
-_08029928: .4byte gUnknown_2023E8C
-_0802992C: .4byte sBattler_AI
-_08029930: .4byte gUnknown_2023D74
-_08029934:
- ldr r2, _0802996C @ =gUnknown_2023ECC
- ldr r0, _08029970 @ =sBattler_AI
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r3, _08029974 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08029964:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802996C: .4byte gUnknown_2023ECC
-_08029970: .4byte sBattler_AI
-_08029974: .4byte gUnknown_2023D74
- thumb_func_end atkA1_counterdamagecalculator
-
- thumb_func_start atkA2_mirrorcoatdamagecalculator
-atkA2_mirrorcoatdamagecalculator: @ 8029978
- push {r4-r6,lr}
- ldr r4, _080299E8 @ =sBattler_AI
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _080299EC @ =gUnknown_2023E8C
- ldrb r0, [r4]
- lsls r0, 4
- adds r0, r5
- ldrb r0, [r0, 0xD]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r0, r5, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r3, [r0]
- cmp r3, 0
- beq _08029A2C
- cmp r6, r2
- beq _08029A2C
- ldr r6, _080299F0 @ =gBattleMons
- adds r0, r1, r5
- ldrb r0, [r0, 0xD]
- movs r4, 0x58
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08029A2C
- ldr r1, _080299F4 @ =gBattleMoveDamage
- lsls r0, r3, 1
- str r0, [r1]
- ldr r1, _080299F8 @ =gSideTimers
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x8]
- cmp r0, 0
- beq _08029A00
- ldrb r1, [r1, 0x9]
- adds r0, r1, 0
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08029A00
- ldr r0, _080299FC @ =gBattlerTarget
- strb r1, [r0]
- b _08029A10
- .align 2, 0
-_080299E8: .4byte sBattler_AI
-_080299EC: .4byte gUnknown_2023E8C
-_080299F0: .4byte gBattleMons
-_080299F4: .4byte gBattleMoveDamage
-_080299F8: .4byte gSideTimers
-_080299FC: .4byte gBattlerTarget
-_08029A00:
- ldr r2, _08029A1C @ =gBattlerTarget
- ldr r1, _08029A20 @ =gUnknown_2023E8C
- ldr r0, _08029A24 @ =sBattler_AI
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0xD]
- strb r0, [r2]
-_08029A10:
- ldr r1, _08029A28 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08029A5C
- .align 2, 0
-_08029A1C: .4byte gBattlerTarget
-_08029A20: .4byte gUnknown_2023E8C
-_08029A24: .4byte sBattler_AI
-_08029A28: .4byte gUnknown_2023D74
-_08029A2C:
- ldr r2, _08029A64 @ =gUnknown_2023ECC
- ldr r0, _08029A68 @ =sBattler_AI
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r3, _08029A6C @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08029A5C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08029A64: .4byte gUnknown_2023ECC
-_08029A68: .4byte sBattler_AI
-_08029A6C: .4byte gUnknown_2023D74
- thumb_func_end atkA2_mirrorcoatdamagecalculator
-
- thumb_func_start atkA3_disablelastusedattack
-atkA3_disablelastusedattack: @ 8029A70
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r4, 0
- ldr r2, _08029B70 @ =gBattleMons
- ldr r3, _08029B74 @ =gBattlerTarget
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r7, r2, 0
- adds r7, 0xC
- adds r0, r7
- ldr r5, _08029B78 @ =gLastUsedMove
- lsls r1, 1
- adds r1, r5
- ldrh r0, [r0]
- mov r9, r2
- adds r6, r3, 0
- ldr r2, _08029B7C @ =gDisableStructs
- mov r8, r2
- ldrh r1, [r1]
- cmp r0, r1
- beq _08029AC4
- mov r12, r6
- movs r3, 0x58
-_08029AA4:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08029AC4
- lsls r2, r4, 1
- mov r0, r12
- ldrb r1, [r0]
- adds r0, r1, 0
- muls r0, r3
- adds r2, r0
- adds r2, r7
- lsls r1, 1
- adds r1, r5
- ldrh r0, [r2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _08029AA4
-_08029AC4:
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- ldrh r0, [r0, 0x4]
- cmp r0, 0
- bne _08029B88
- cmp r4, 0x4
- beq _08029B88
- movs r5, 0x58
- adds r0, r1, 0
- muls r0, r5
- adds r0, r4, r0
- mov r1, r9
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08029B88
- ldr r1, _08029B80 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- lsls r2, r4, 1
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r2, r0
- mov r3, r9
- adds r3, 0xC
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r2, r0
- adds r0, r3
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- muls r1, r5
- adds r2, r1
- adds r2, r3
- ldrh r1, [r2]
- strh r1, [r0, 0x4]
- bl Random
- ldrb r2, [r6]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r8
- movs r2, 0x3
- ands r2, r0
- adds r2, 0x2
- ldrb r3, [r1, 0xB]
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xB]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r3, [r1, 0xB]
- lsls r2, r3, 28
- lsrs r2, 24
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xB]
- ldr r1, _08029B84 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08029BA2
- .align 2, 0
-_08029B70: .4byte gBattleMons
-_08029B74: .4byte gBattlerTarget
-_08029B78: .4byte gLastUsedMove
-_08029B7C: .4byte gDisableStructs
-_08029B80: .4byte gBattleTextBuff1
-_08029B84: .4byte gUnknown_2023D74
-_08029B88:
- ldr r3, _08029BB0 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08029BA2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029BB0: .4byte gUnknown_2023D74
- thumb_func_end atkA3_disablelastusedattack
-
- thumb_func_start atkA4_trysetencore
-atkA4_trysetencore: @ 8029BB4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r5, 0
- ldr r3, _08029CA8 @ =gBattleMons
- ldr r4, _08029CAC @ =gBattlerTarget
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r6, r3, 0
- adds r6, 0xC
- adds r0, r6
- ldr r2, _08029CB0 @ =gLastUsedMove
- lsls r1, 1
- adds r1, r2
- ldrh r0, [r0]
- mov r10, r3
- mov r8, r2
- ldr r2, _08029CB4 @ =gDisableStructs
- mov r9, r2
- ldrh r1, [r1]
- cmp r0, r1
- beq _08029C0E
- mov r12, r4
- adds r7, r6, 0
- mov r6, r8
- movs r3, 0x58
-_08029BEE:
- adds r5, 0x1
- cmp r5, 0x3
- bgt _08029C0E
- lsls r2, r5, 1
- mov r0, r12
- ldrb r1, [r0]
- adds r0, r1, 0
- muls r0, r3
- adds r2, r0
- adds r2, r7
- lsls r1, 1
- adds r1, r6
- ldrh r0, [r2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _08029BEE
-_08029C0E:
- ldrb r0, [r4]
- lsls r0, 1
- add r0, r8
- ldrh r2, [r0]
- cmp r2, 0xA5
- beq _08029C22
- cmp r2, 0xE3
- beq _08029C22
- cmp r2, 0x77
- bne _08029C24
-_08029C22:
- movs r5, 0x4
-_08029C24:
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r2, r9
- adds r3, r0, r2
- ldrh r0, [r3, 0x6]
- cmp r0, 0
- bne _08029CBC
- cmp r5, 0x4
- beq _08029CBC
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- adds r0, r5, r2
- mov r1, r10
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08029CBC
- lsls r0, r5, 1
- adds r0, r2
- subs r1, 0x18
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3, 0x6]
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- strb r5, [r0, 0xC]
- bl Random
- ldrb r2, [r4]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r9
- movs r2, 0x3
- ands r2, r0
- adds r2, 0x3
- ldrb r3, [r1, 0xE]
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xE]
- ldrb r0, [r4]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r9
- ldrb r3, [r1, 0xE]
- lsls r2, r3, 28
- lsrs r2, 24
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xE]
- ldr r1, _08029CB8 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08029CD6
- .align 2, 0
-_08029CA8: .4byte gBattleMons
-_08029CAC: .4byte gBattlerTarget
-_08029CB0: .4byte gLastUsedMove
-_08029CB4: .4byte gDisableStructs
-_08029CB8: .4byte gUnknown_2023D74
-_08029CBC:
- ldr r3, _08029CE4 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08029CD6:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029CE4: .4byte gUnknown_2023D74
- thumb_func_end atkA4_trysetencore
-
- thumb_func_start atkA5_painsplitdmgcalc
-atkA5_painsplitdmgcalc: @ 8029CE8
- push {r4-r7,lr}
- ldr r6, _08029D68 @ =gBattleMons
- ldr r0, _08029D6C @ =gBattlerTarget
- mov r12, r0
- ldrb r0, [r0]
- movs r7, 0x58
- adds r2, r0, 0
- muls r2, r7
- adds r0, r6, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _08029D88
- ldr r5, _08029D70 @ =sBattler_AI
- ldrb r0, [r5]
- muls r0, r7
- adds r0, r6
- ldrh r3, [r0, 0x28]
- adds r0, r2, r6
- ldrh r1, [r0, 0x28]
- adds r3, r1
- asrs r3, 1
- ldr r4, _08029D74 @ =gBattleMoveDamage
- subs r1, r3
- str r1, [r4]
- ldr r2, _08029D78 @ =gBattleScripting
- strb r1, [r2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- asrs r0, 8
- strb r0, [r2, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- asrs r0, 16
- strb r0, [r2, 0x2]
- lsrs r1, 24
- strb r1, [r2, 0x3]
- ldrb r0, [r5]
- muls r0, r7
- adds r0, r6
- ldrh r0, [r0, 0x28]
- subs r0, r3
- str r0, [r4]
- ldr r2, _08029D7C @ =gUnknown_2023ECC
- mov r0, r12
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r0, r2
- ldr r1, _08029D80 @ =0x0000ffff
- str r1, [r0]
- ldr r1, _08029D84 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08029DA2
- .align 2, 0
-_08029D68: .4byte gBattleMons
-_08029D6C: .4byte gBattlerTarget
-_08029D70: .4byte sBattler_AI
-_08029D74: .4byte gBattleMoveDamage
-_08029D78: .4byte gBattleScripting
-_08029D7C: .4byte gUnknown_2023ECC
-_08029D80: .4byte 0x0000ffff
-_08029D84: .4byte gUnknown_2023D74
-_08029D88:
- ldr r3, _08029DA8 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08029DA2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029DA8: .4byte gUnknown_2023D74
- thumb_func_end atkA5_painsplitdmgcalc
-
- thumb_func_start atkA6_settypetorandomresistance
-atkA6_settypetorandomresistance: @ 8029DAC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, _08029E14 @ =gUnknown_2023DA0
- ldr r4, _08029E18 @ =sBattler_AI
- ldrb r0, [r4]
- lsls r0, 1
- adds r2, r0, r1
- ldrh r1, [r2]
- cmp r1, 0
- beq _08029DF6
- ldr r0, _08029E1C @ =0x0000ffff
- cmp r1, r0
- beq _08029DF6
- ldrh r0, [r2]
- bl IsTwoTurnsMove
- lsls r0, 24
- cmp r0, 0
- beq _08029E94
- ldr r1, _08029E20 @ =gBattleMons
- ldr r2, _08029E24 @ =gUnknown_2023DC0
- ldrb r0, [r4]
- adds r0, r2
- 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 _08029E94
-_08029DF6:
- ldr r3, _08029E28 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08029F80
- .align 2, 0
-_08029E14: .4byte gUnknown_2023DA0
-_08029E18: .4byte sBattler_AI
-_08029E1C: .4byte 0x0000ffff
-_08029E20: .4byte gBattleMons
-_08029E24: .4byte gUnknown_2023DC0
-_08029E28: .4byte gUnknown_2023D74
-_08029E2C:
- mov r0, r12
- strb r5, [r0]
- mov r1, r10
- ldrb r0, [r1]
- muls r0, r2
- adds r0, r7
- adds r0, 0x22
- strb r5, [r0]
- ldr r1, _08029E50 @ =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]
- ldr r1, _08029E54 @ =gUnknown_2023D74
- b _08029E82
- .align 2, 0
-_08029E50: .4byte gBattleTextBuff1
-_08029E54: .4byte gUnknown_2023D74
-_08029E58:
- mov r0, r8
- adds r0, 0x1
- adds r0, r3
- ldrb r2, [r0]
- strb r2, [r4]
- mov r4, r10
- ldrb r0, [r4]
- muls r0, r6
- ldr r7, _08029E8C @ =gBattleMons
- adds r0, r7
- adds r0, 0x22
- strb r2, [r0]
- ldr r1, _08029E90 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- mov r1, r12
-_08029E82:
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08029F80
- .align 2, 0
-_08029E8C: .4byte gBattleMons
-_08029E90: .4byte gBattleTextBuff1
-_08029E94:
- movs r4, 0
- mov r8, r4
- movs r7, 0x7F
- mov r9, r7
-_08029E9C:
- bl Random
- mov r4, r9
- ands r4, r0
- cmp r4, 0x70
- bhi _08029E9C
- lsls r0, r4, 1
- adds r4, r0, r4
- ldr r6, _08029F90 @ =gUnknown_824F050
- adds r3, r4, r6
- ldr r1, _08029F94 @ =gUnknown_2023DA8
- ldr r2, _08029F98 @ =sBattler_AI
- ldrb r5, [r2]
- lsls r0, r5, 1
- adds r0, r1
- ldrb r1, [r3]
- mov r10, r2
- ldrh r0, [r0]
- cmp r1, r0
- bne _08029EF8
- adds r0, r4, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _08029EF8
- ldr r7, _08029F9C @ =gBattleMons
- movs r2, 0x58
- adds r0, r5, 0
- muls r0, r2
- adds r3, r0, r7
- movs r0, 0x21
- adds r0, r3
- mov r12, r0
- adds r0, r4, 0x1
- adds r0, r6
- ldrb r5, [r0]
- mov r1, r12
- ldrb r0, [r1]
- adds r1, r5, 0
- cmp r0, r1
- beq _08029EF8
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- bne _08029E2C
-_08029EF8:
- movs r7, 0x1
- add r8, r7
- ldr r0, _08029FA0 @ =0x000003e7
- cmp r8, r0
- ble _08029E9C
- movs r0, 0
- mov r8, r0
- ldr r1, _08029FA4 @ =gUnknown_2023D74
- mov r12, r1
- ldr r3, _08029F90 @ =gUnknown_824F050
- adds r0, r4, 0x1
- adds r0, r3
- mov r9, r0
- adds r5, r3, 0
-_08029F14:
- ldrb r1, [r5]
- cmp r1, 0xFF
- bgt _08029F1E
- cmp r1, 0xFE
- bge _08029F58
-_08029F1E:
- mov r4, r10
- ldrb r2, [r4]
- lsls r0, r2, 1
- ldr r7, _08029F94 @ =gUnknown_2023DA8
- adds r0, r7
- ldrh r0, [r0]
- cmp r1, r0
- bne _08029F58
- ldrb r0, [r5, 0x2]
- cmp r0, 0x5
- bhi _08029F58
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- ldr r1, _08029F9C @ =gBattleMons
- adds r2, r0, r1
- adds r4, r2, 0
- adds r4, 0x21
- ldrb r0, [r4]
- mov r7, r9
- ldrb r1, [r7]
- cmp r0, r1
- beq _08029F58
- adds r0, r2, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- beq _08029F58
- b _08029E58
-_08029F58:
- adds r5, 0x3
- movs r0, 0x3
- add r8, r0
- ldr r0, _08029FA8 @ =0x0000014f
- cmp r8, r0
- bls _08029F14
- mov r1, r12
- ldr r2, [r1]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- mov r4, r12
- str r1, [r4]
-_08029F80:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029F90: .4byte gUnknown_824F050
-_08029F94: .4byte gUnknown_2023DA8
-_08029F98: .4byte sBattler_AI
-_08029F9C: .4byte gBattleMons
-_08029FA0: .4byte 0x000003e7
-_08029FA4: .4byte gUnknown_2023D74
-_08029FA8: .4byte 0x0000014f
- thumb_func_end atkA6_settypetorandomresistance
-
- thumb_func_start atkA7_setalwayshitflag
-atkA7_setalwayshitflag: @ 8029FAC
- push {r4,lr}
- ldr r4, _08029FF0 @ =gStatuses3
- ldr r3, _08029FF4 @ =gBattlerTarget
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x19
- negs r2, r2
- ands r0, r2
- str r0, [r1]
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x10
- orrs r0, r2
- str r0, [r1]
- ldr r2, _08029FF8 @ =gDisableStructs
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _08029FFC @ =sBattler_AI
- ldrb r1, [r1]
- strb r1, [r0, 0x15]
- ldr r1, _0802A000 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08029FF0: .4byte gStatuses3
-_08029FF4: .4byte gBattlerTarget
-_08029FF8: .4byte gDisableStructs
-_08029FFC: .4byte sBattler_AI
-_0802A000: .4byte gUnknown_2023D74
- thumb_func_end atkA7_setalwayshitflag
-
- thumb_func_start atkA8_copymovepermanently
-atkA8_copymovepermanently: @ 802A004
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- ldr r0, _0802A164 @ =gUnknown_2023D4C
- ldr r1, _0802A168 @ =0x0000ffff
- adds r5, r1, 0
- strh r5, [r0]
- ldr r3, _0802A16C @ =gBattleMons
- ldr r2, _0802A170 @ =sBattler_AI
- ldrb r1, [r2]
- movs r0, 0x58
- adds r4, r1, 0
- muls r4, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r4, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 14
- ands r1, r0
- mov r12, r3
- mov r10, r2
- cmp r1, 0
- beq _0802A03C
- b _0802A190
-_0802A03C:
- ldr r0, _0802A174 @ =gUnknown_2023D90
- ldr r2, _0802A178 @ =gBattlerTarget
- ldrb r1, [r2]
- lsls r1, 1
- adds r1, r0
- ldrh r1, [r1]
- mov r9, r0
- mov r8, r2
- cmp r1, 0xA5
- bne _0802A052
- b _0802A190
-_0802A052:
- cmp r1, 0
- bne _0802A058
- b _0802A190
-_0802A058:
- cmp r1, r5
- bne _0802A05E
- b _0802A190
-_0802A05E:
- cmp r1, 0xA6
- bne _0802A064
- b _0802A190
-_0802A064:
- movs r7, 0
- mov r5, r9
- mov r0, r12
- adds r0, 0xC
- adds r1, r4, r0
- mov r3, r8
-_0802A070:
- ldrh r2, [r1]
- cmp r2, 0xA6
- beq _0802A082
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802A08A
-_0802A082:
- adds r1, 0x2
- adds r7, 0x1
- cmp r7, 0x3
- ble _0802A070
-_0802A08A:
- cmp r7, 0x4
- beq _0802A090
- b _0802A190
-_0802A090:
- ldr r4, _0802A17C @ =gUnknown_2023D48
- ldrb r1, [r4]
- lsls r1, 1
- mov r2, r10
- ldrb r0, [r2]
- movs r3, 0x58
- muls r0, r3
- adds r1, r0
- mov r6, r12
- adds r6, 0xC
- adds r1, r6
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r1]
- mov r1, r10
- ldrb r0, [r1]
- adds r2, r0, 0
- muls r2, r3
- ldrb r4, [r4]
- adds r2, r4
- mov r5, r12
- adds r5, 0x24
- adds r2, r5
- ldr r4, _0802A180 @ =gBattleMoves
- mov r1, r8
- ldrb r0, [r1]
- lsls r0, 1
- add r0, r9
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x4]
- strb r0, [r2]
- ldr r1, _0802A184 @ =gActiveBattler
- mov r2, r10
- ldrb r0, [r2]
- strb r0, [r1]
- movs r7, 0
- ldrb r0, [r2]
- muls r0, r3
- adds r4, r0, r5
- adds r3, r0, 0
- add r2, sp, 0x4
- add r5, sp, 0xC
-_0802A0F2:
- adds r0, r3, r6
- ldrh r0, [r0]
- strh r0, [r2]
- adds r1, r5, r7
- ldrb r0, [r4]
- strb r0, [r1]
- adds r4, 0x1
- adds r3, 0x2
- adds r2, 0x2
- adds r7, 0x1
- cmp r7, 0x3
- ble _0802A0F2
- add r2, sp, 0x4
- mov r0, r10
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r0, 0x3B
- ldrb r0, [r0]
- strb r0, [r2, 0xC]
- str r2, [sp]
- movs r0, 0
- movs r1, 0x3
- movs r2, 0
- movs r3, 0x10
- bl EmitSetMonData
- ldr r0, _0802A184 @ =gActiveBattler
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r1, _0802A188 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldr r3, _0802A174 @ =gUnknown_2023D90
- ldr r2, _0802A178 @ =gBattlerTarget
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802A18C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A1AA
- .align 2, 0
-_0802A164: .4byte gUnknown_2023D4C
-_0802A168: .4byte 0x0000ffff
-_0802A16C: .4byte gBattleMons
-_0802A170: .4byte sBattler_AI
-_0802A174: .4byte gUnknown_2023D90
-_0802A178: .4byte gBattlerTarget
-_0802A17C: .4byte gUnknown_2023D48
-_0802A180: .4byte gBattleMoves
-_0802A184: .4byte gActiveBattler
-_0802A188: .4byte gBattleTextBuff1
-_0802A18C: .4byte gUnknown_2023D74
-_0802A190:
- ldr r3, _0802A1BC @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A1AA:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A1BC: .4byte gUnknown_2023D74
- thumb_func_end atkA8_copymovepermanently
-
- thumb_func_start IsTwoTurnsMove
-IsTwoTurnsMove: @ 802A1C0
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _0802A1F0 @ =gBattleMoves
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1]
- cmp r0, 0x91
- beq _0802A1EA
- cmp r0, 0x27
- beq _0802A1EA
- cmp r0, 0x4B
- beq _0802A1EA
- cmp r0, 0x97
- beq _0802A1EA
- cmp r0, 0x9B
- beq _0802A1EA
- cmp r0, 0x1A
- bne _0802A1F4
-_0802A1EA:
- movs r0, 0x1
- b _0802A1F6
- .align 2, 0
-_0802A1F0: .4byte gBattleMoves
-_0802A1F4:
- movs r0, 0
-_0802A1F6:
- pop {r1}
- bx r1
- thumb_func_end IsTwoTurnsMove
-
- thumb_func_start IsInvalidForSleepTalkOrAssist
-IsInvalidForSleepTalkOrAssist: @ 802A1FC
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0802A21A
- cmp r1, 0xD6
- beq _0802A21A
- movs r0, 0x89
- lsls r0, 1
- cmp r1, r0
- beq _0802A21A
- cmp r1, 0x77
- beq _0802A21A
- cmp r1, 0x76
- bne _0802A21E
-_0802A21A:
- movs r0, 0x1
- b _0802A220
-_0802A21E:
- movs r0, 0
-_0802A220:
- pop {r1}
- bx r1
- thumb_func_end IsInvalidForSleepTalkOrAssist
-
- thumb_func_start AttacksThisTurn
-AttacksThisTurn: @ 802A224
- push {lr}
- lsls r1, 16
- lsrs r2, r1, 16
- ldr r1, _0802A27C @ =gBattleMoves
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x97
- bne _0802A248
- ldr r0, _0802A280 @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- bne _0802A288
-_0802A248:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0x91
- beq _0802A26A
- cmp r0, 0x27
- beq _0802A26A
- cmp r0, 0x4B
- beq _0802A26A
- cmp r0, 0x97
- beq _0802A26A
- cmp r0, 0x9B
- beq _0802A26A
- cmp r0, 0x1A
- bne _0802A288
-_0802A26A:
- ldr r0, _0802A284 @ =gUnknown_2023DD0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 20
- ands r0, r1
- cmp r0, 0
- beq _0802A288
- movs r0, 0x1
- b _0802A28A
- .align 2, 0
-_0802A27C: .4byte gBattleMoves
-_0802A280: .4byte gBattleWeather
-_0802A284: .4byte gUnknown_2023DD0
-_0802A288:
- movs r0, 0x2
-_0802A28A:
- pop {r1}
- bx r1
- thumb_func_end AttacksThisTurn
-
- thumb_func_start atkA9_trychoosesleeptalkmove
-atkA9_trychoosesleeptalkmove: @ 802A290
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- movs r5, 0
- ldr r0, _0802A320 @ =sBattler_AI
- mov r9, r0
- movs r1, 0x58
- mov r8, r1
- ldr r7, _0802A324 @ =gUnknown_2023BF0
- movs r0, 0x84
- lsls r0, 1
- mov r10, r0
-_0802A2AE:
- lsls r4, r5, 1
- mov r1, r9
- ldrb r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r4, r0
- adds r0, r7
- ldrh r0, [r0]
- bl IsInvalidForSleepTalkOrAssist
- lsls r0, 24
- cmp r0, 0
- bne _0802A2EE
- mov r1, r9
- ldrb r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r4, r0
- adds r0, r7
- ldrh r1, [r0]
- cmp r1, r10
- beq _0802A2EE
- cmp r1, 0xFD
- beq _0802A2EE
- adds r0, r1, 0
- bl IsTwoTurnsMove
- lsls r0, 24
- cmp r0, 0
- beq _0802A2FC
-_0802A2EE:
- ldr r1, _0802A328 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r1
- ldr r0, [r0]
- orrs r6, r0
- lsls r0, r6, 24
- lsrs r6, r0, 24
-_0802A2FC:
- adds r5, 0x1
- cmp r5, 0x3
- ble _0802A2AE
- ldr r0, _0802A320 @ =sBattler_AI
- ldrb r0, [r0]
- adds r1, r6, 0
- movs r2, 0xFD
- bl CheckMoveLimitations
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xF
- bne _0802A330
- ldr r1, _0802A32C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A394
- .align 2, 0
-_0802A320: .4byte sBattler_AI
-_0802A324: .4byte gUnknown_2023BF0
-_0802A328: .4byte gBitTable
-_0802A32C: .4byte gUnknown_2023D74
-_0802A330:
- movs r7, 0x3
- ldr r4, _0802A3A4 @ =gBitTable
-_0802A334:
- bl Random
- adds r5, r7, 0
- ands r5, r0
- lsls r0, r5, 2
- adds r0, r4
- ldr r0, [r0]
- ands r0, r6
- cmp r0, 0
- bne _0802A334
- ldr r4, _0802A3A8 @ =gUnknown_2023D4E
- ldr r2, _0802A3AC @ =gBattleMons
- lsls r1, r5, 1
- ldr r0, _0802A3B0 @ =sBattler_AI
- ldrb r3, [r0]
- movs r0, 0x58
- muls r0, r3
- adds r1, r0
- adds r2, 0xC
- adds r1, r2
- ldrh r0, [r1]
- strh r0, [r4]
- ldr r0, _0802A3B4 @ =gUnknown_2023D48
- strb r5, [r0]
- ldr r2, _0802A3B8 @ =gUnknown_2023DD0
- ldr r0, [r2]
- ldr r1, _0802A3BC @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldrh r0, [r4]
- movs r1, 0
- bl GetMoveTarget
- ldr r1, _0802A3C0 @ =gBattlerTarget
- strb r0, [r1]
- ldr r3, _0802A3C4 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A394:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A3A4: .4byte gBitTable
-_0802A3A8: .4byte gUnknown_2023D4E
-_0802A3AC: .4byte gBattleMons
-_0802A3B0: .4byte sBattler_AI
-_0802A3B4: .4byte gUnknown_2023D48
-_0802A3B8: .4byte gUnknown_2023DD0
-_0802A3BC: .4byte 0xfffffbff
-_0802A3C0: .4byte gBattlerTarget
-_0802A3C4: .4byte gUnknown_2023D74
- thumb_func_end atkA9_trychoosesleeptalkmove
-
- thumb_func_start atkAA_setdestinybond
-atkAA_setdestinybond: @ 802A3C8
- ldr r1, _0802A3EC @ =gBattleMons
- ldr r0, _0802A3F0 @ =sBattler_AI
- ldrb r2, [r0]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 18
- orrs r0, r1
- str r0, [r2]
- ldr r1, _0802A3F4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802A3EC: .4byte gBattleMons
-_0802A3F0: .4byte sBattler_AI
-_0802A3F4: .4byte gUnknown_2023D74
- thumb_func_end atkAA_setdestinybond
-
- thumb_func_start TrySetDestinyBondToHappen
-TrySetDestinyBondToHappen: @ 802A3F8
- push {r4,r5,lr}
- ldr r0, _0802A448 @ =sBattler_AI
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _0802A44C @ =gBattlerTarget
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _0802A450 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _0802A442
- cmp r5, r3
- beq _0802A442
- ldr r2, _0802A454 @ =gUnknown_2023DD0
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 17
- ands r0, r1
- cmp r0, 0
- bne _0802A442
- movs r0, 0x40
- orrs r1, r0
- str r1, [r2]
-_0802A442:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A448: .4byte sBattler_AI
-_0802A44C: .4byte gBattlerTarget
-_0802A450: .4byte gBattleMons
-_0802A454: .4byte gUnknown_2023DD0
- thumb_func_end TrySetDestinyBondToHappen
-
- thumb_func_start atkAB_trysetdestinybondtohappen
-atkAB_trysetdestinybondtohappen: @ 802A458
- push {lr}
- bl TrySetDestinyBondToHappen
- ldr r1, _0802A46C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802A46C: .4byte gUnknown_2023D74
- thumb_func_end atkAB_trysetdestinybondtohappen
-
- thumb_func_start atkAC_remaininghptopower
-atkAC_remaininghptopower: @ 802A470
- push {lr}
- ldr r2, _0802A4C4 @ =gBattleMons
- ldr r0, _0802A4C8 @ =sBattler_AI
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- movs r2, 0x28
- ldrsh r0, [r1, r2]
- movs r2, 0x2C
- ldrsh r1, [r1, r2]
- movs r2, 0x30
- bl GetScaledHPFraction
- lsls r0, 24
- lsrs r1, r0, 24
- movs r3, 0
- ldr r0, _0802A4CC @ =gUnknown_8250810
- ldrb r2, [r0]
- cmp r1, r2
- ble _0802A4AA
- adds r2, r0, 0
-_0802A49C:
- adds r3, 0x2
- cmp r3, 0xB
- bgt _0802A4AA
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r1, r0
- bgt _0802A49C
-_0802A4AA:
- ldr r2, _0802A4D0 @ =gDynamicBasePower
- ldr r1, _0802A4CC @ =gUnknown_8250810
- adds r0, r3, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2]
- ldr r1, _0802A4D4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802A4C4: .4byte gBattleMons
-_0802A4C8: .4byte sBattler_AI
-_0802A4CC: .4byte gUnknown_8250810
-_0802A4D0: .4byte gDynamicBasePower
-_0802A4D4: .4byte gUnknown_2023D74
- thumb_func_end atkAC_remaininghptopower
-
- thumb_func_start atkAD_tryspiteppreduce
-atkAD_tryspiteppreduce: @ 802A4D8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, _0802A658 @ =gLastUsedMove
- ldr r1, _0802A65C @ =gBattlerTarget
- ldrb r3, [r1]
- lsls r0, r3, 1
- adds r0, r4
- ldrh r2, [r0]
- mov r8, r1
- cmp r2, 0
- bne _0802A4F8
- b _0802A680
-_0802A4F8:
- ldr r0, _0802A660 @ =0x0000ffff
- cmp r2, r0
- bne _0802A500
- b _0802A680
-_0802A500:
- movs r7, 0
- ldr r0, _0802A664 @ =gBattleMons
- movs r1, 0x58
- muls r1, r3
- adds r3, r0, 0
- adds r3, 0xC
- adds r1, r3
- ldrh r1, [r1]
- cmp r2, r1
- beq _0802A538
- adds r6, r4, 0
- mov r5, r8
- adds r4, r3, 0
- movs r3, 0x58
-_0802A51C:
- adds r7, 0x1
- cmp r7, 0x3
- bgt _0802A538
- ldrb r0, [r5]
- lsls r2, r0, 1
- adds r2, r6
- lsls r1, r7, 1
- muls r0, r3
- adds r1, r0
- adds r1, r4
- ldrh r0, [r2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _0802A51C
-_0802A538:
- cmp r7, 0x4
- bne _0802A53E
- b _0802A680
-_0802A53E:
- mov r4, r8
- ldrb r0, [r4]
- movs r1, 0x58
- mov r9, r1
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7, r0
- ldr r1, _0802A664 @ =gBattleMons
- adds r1, 0x24
- mov r10, r1
- add r0, r10
- ldrb r0, [r0]
- cmp r0, 0x1
- bhi _0802A55E
- b _0802A680
-_0802A55E:
- bl Random
- movs r1, 0x3
- ands r1, r0
- adds r6, r1, 0x2
- ldrb r0, [r4]
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7, r0
- add r0, r10
- ldrb r0, [r0]
- cmp r0, r6
- bge _0802A57C
- adds r6, r0, 0
-_0802A57C:
- ldr r1, _0802A668 @ =gBattleTextBuff1
- movs r5, 0xFD
- strb r5, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldr r2, _0802A658 @ =gLastUsedMove
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r4, _0802A66C @ =gBattleTextBuff2
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- strb r5, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x3]
- strb r6, [r4, 0x4]
- subs r0, 0x2
- strb r0, [r4, 0x5]
- mov r1, r8
- ldrb r0, [r1]
- mov r1, r9
- muls r1, r0
- adds r1, r7, r1
- add r1, r10
- ldrb r0, [r1]
- subs r0, r6
- strb r0, [r1]
- ldr r4, _0802A670 @ =gActiveBattler
- mov r3, r8
- ldrb r0, [r3]
- strb r0, [r4]
- ldr r1, _0802A674 @ =gDisableStructs
- ldrb r3, [r4]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0802A678 @ =gBitTable
- lsls r0, r7, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802A630
- mov r2, r9
- muls r2, r3
- ldr r0, _0802A664 @ =gBattleMons
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _0802A630
- adds r1, r7, 0
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- mov r3, r10
- adds r0, r2, r3
- adds r0, r7
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl EmitSetMonData
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_0802A630:
- ldr r1, _0802A67C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r1, _0802A664 @ =gBattleMons
- ldr r0, _0802A65C @ =gBattlerTarget
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r7, r0
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0802A69A
- adds r0, r2, 0
- bl CancelMultiTurnMoves
- b _0802A69A
- .align 2, 0
-_0802A658: .4byte gLastUsedMove
-_0802A65C: .4byte gBattlerTarget
-_0802A660: .4byte 0x0000ffff
-_0802A664: .4byte gBattleMons
-_0802A668: .4byte gBattleTextBuff1
-_0802A66C: .4byte gBattleTextBuff2
-_0802A670: .4byte gActiveBattler
-_0802A674: .4byte gDisableStructs
-_0802A678: .4byte gBitTable
-_0802A67C: .4byte gUnknown_2023D74
-_0802A680:
- ldr r3, _0802A6AC @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A69A:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A6AC: .4byte gUnknown_2023D74
- thumb_func_end atkAD_tryspiteppreduce
-
- thumb_func_start atkAE_healpartystatus
-atkAE_healpartystatus: @ 802A6B0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r4, 0
- str r4, [sp, 0x4]
- mov r8, r4
- ldr r0, _0802A720 @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xD7
- beq _0802A6CC
- b _0802A8B6
-_0802A6CC:
- ldr r6, _0802A724 @ =gUnknown_2023E82
- mov r0, r8
- strb r0, [r6, 0x5]
- ldr r5, _0802A728 @ =sBattler_AI
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- ldr r1, _0802A72C @ =gEnemyParty
- mov r10, r1
- cmp r0, 0
- bne _0802A6E8
- ldr r2, _0802A730 @ =gPlayerParty
- mov r10, r2
-_0802A6E8:
- ldr r4, _0802A734 @ =gBattleMons
- ldrb r3, [r5]
- movs r7, 0x58
- adds r2, r3, 0
- muls r2, r7
- adds r0, r2, r4
- adds r1, r0, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0x2B
- beq _0802A73C
- adds r0, r4, 0
- adds r0, 0x4C
- adds r0, r2, r0
- mov r1, r8
- str r1, [r0]
- ldrb r0, [r5]
- adds r2, r0, 0
- muls r2, r7
- adds r0, r4, 0
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _0802A738 @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- b _0802A74C
- .align 2, 0
-_0802A720: .4byte gCurrentMove
-_0802A724: .4byte gUnknown_2023E82
-_0802A728: .4byte sBattler_AI
-_0802A72C: .4byte gEnemyParty
-_0802A730: .4byte gPlayerParty
-_0802A734: .4byte gBattleMons
-_0802A738: .4byte 0xf7ffffff
-_0802A73C:
- ldrb r1, [r1]
- adds r0, r3, 0
- bl sub_80C71D0
- ldrb r0, [r6, 0x5]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r6, 0x5]
-_0802A74C:
- ldr r7, _0802A7C0 @ =gActiveBattler
- ldr r0, _0802A7C4 @ =sBattler_AI
- ldrb r0, [r0]
- bl GetBattlerPosition
- movs r2, 0x2
- mov r9, r2
- mov r1, r9
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerAtPosition
- ldr r1, _0802A7C8 @ =gBattleScripting
- strb r0, [r1, 0x17]
- strb r0, [r7]
- ldr r0, _0802A7CC @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802A7F2
- ldr r0, _0802A7D0 @ =gAbsentBattlerFlags
- ldrb r2, [r0]
- ldr r1, _0802A7D4 @ =gBitTable
- ldrb r3, [r7]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- bne _0802A7F2
- ldr r5, _0802A7D8 @ =gBattleMons
- movs r6, 0x58
- adds r4, r3, 0
- muls r4, r6
- adds r0, r4, r5
- adds r1, r0, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0x2B
- beq _0802A7E0
- adds r0, r5, 0
- adds r0, 0x4C
- adds r0, r4, r0
- str r2, [r0]
- ldrb r0, [r7]
- adds r2, r0, 0
- muls r2, r6
- adds r0, r5, 0
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _0802A7DC @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- b _0802A7F2
- .align 2, 0
-_0802A7C0: .4byte gActiveBattler
-_0802A7C4: .4byte sBattler_AI
-_0802A7C8: .4byte gBattleScripting
-_0802A7CC: .4byte gBattleTypeFlags
-_0802A7D0: .4byte gAbsentBattlerFlags
-_0802A7D4: .4byte gBitTable
-_0802A7D8: .4byte gBattleMons
-_0802A7DC: .4byte 0xf7ffffff
-_0802A7E0:
- ldrb r1, [r1]
- adds r0, r3, 0
- bl sub_80C71D0
- ldr r1, _0802A838 @ =gUnknown_2023E82
- ldrb r0, [r1, 0x5]
- mov r2, r9
- orrs r0, r2
- strb r0, [r1, 0x5]
-_0802A7F2:
- movs r6, 0
- ldr r7, _0802A83C @ =gBattleMons
-_0802A7F6:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- add r4, r10
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r5, 0
- beq _0802A8AE
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- beq _0802A8AE
- ldr r2, _0802A840 @ =gBattlerPartyIndexes
- ldr r0, _0802A844 @ =sBattler_AI
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r6
- bne _0802A848
- movs r0, 0x58
- muls r0, r1
- b _0802A878
- .align 2, 0
-_0802A838: .4byte gUnknown_2023E82
-_0802A83C: .4byte gBattleMons
-_0802A840: .4byte gBattlerPartyIndexes
-_0802A844: .4byte sBattler_AI
-_0802A848:
- ldr r0, _0802A880 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802A890
- ldr r0, _0802A884 @ =gActiveBattler
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r6
- bne _0802A890
- ldr r0, _0802A888 @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldr r2, _0802A88C @ =gBitTable
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802A890
- movs r0, 0x58
- muls r0, r3
-_0802A878:
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- b _0802A89C
- .align 2, 0
-_0802A880: .4byte gBattleTypeFlags
-_0802A884: .4byte gActiveBattler
-_0802A888: .4byte gAbsentBattlerFlags
-_0802A88C: .4byte gBitTable
-_0802A890:
- adds r0, r5, 0
- adds r1, r4, 0
- bl GetAbilityBySpecies
- lsls r0, 24
- lsrs r0, 24
-_0802A89C:
- cmp r0, 0x2B
- beq _0802A8AE
- movs r0, 0x1
- lsls r0, r6
- mov r1, r8
- orrs r1, r0
- lsls r0, r1, 24
- lsrs r0, 24
- mov r8, r0
-_0802A8AE:
- adds r6, 0x1
- cmp r6, 0x5
- ble _0802A7F6
- b _0802A934
-_0802A8B6:
- ldr r1, _0802A970 @ =gUnknown_2023E82
- movs r0, 0x4
- strb r0, [r1, 0x5]
- movs r2, 0x3F
- mov r8, r2
- ldr r3, _0802A974 @ =gBattleMons
- ldr r2, _0802A978 @ =sBattler_AI
- ldrb r0, [r2]
- movs r5, 0x58
- muls r0, r5
- movs r1, 0x4C
- adds r1, r3
- mov r9, r1
- add r0, r9
- str r4, [r0]
- ldrb r0, [r2]
- adds r1, r0, 0
- muls r1, r5
- adds r7, r3, 0
- adds r7, 0x50
- adds r1, r7
- ldr r0, [r1]
- ldr r6, _0802A97C @ =0xf7ffffff
- ands r0, r6
- str r0, [r1]
- ldrb r0, [r2]
- bl GetBattlerPosition
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerAtPosition
- ldr r4, _0802A980 @ =gActiveBattler
- strb r0, [r4]
- ldr r0, _0802A984 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802A934
- ldr r0, _0802A988 @ =gAbsentBattlerFlags
- ldrb r2, [r0]
- ldr r1, _0802A98C @ =gBitTable
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- bne _0802A934
- adds r0, r3, 0
- muls r0, r5
- add r0, r9
- str r2, [r0]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r7
- ldr r0, [r1]
- ands r0, r6
- str r0, [r1]
-_0802A934:
- mov r2, r8
- cmp r2, 0
- beq _0802A956
- ldr r4, _0802A980 @ =gActiveBattler
- ldr r0, _0802A978 @ =sBattler_AI
- ldrb r0, [r0]
- strb r0, [r4]
- add r0, sp, 0x4
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r3, 0x4
- bl EmitSetMonData
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_0802A956:
- ldr r1, _0802A990 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A970: .4byte gUnknown_2023E82
-_0802A974: .4byte gBattleMons
-_0802A978: .4byte sBattler_AI
-_0802A97C: .4byte 0xf7ffffff
-_0802A980: .4byte gActiveBattler
-_0802A984: .4byte gBattleTypeFlags
-_0802A988: .4byte gAbsentBattlerFlags
-_0802A98C: .4byte gBitTable
-_0802A990: .4byte gUnknown_2023D74
- thumb_func_end atkAE_healpartystatus
-
- thumb_func_start atkAF_cursetarget
-atkAF_cursetarget: @ 802A994
- push {r4,r5,lr}
- ldr r5, _0802A9D4 @ =gBattleMons
- ldr r0, _0802A9D8 @ =gBattlerTarget
- ldrb r0, [r0]
- movs r4, 0x58
- adds r1, r0, 0
- muls r1, r4
- adds r0, r5, 0
- adds r0, 0x50
- adds r1, r0
- ldr r2, [r1]
- movs r3, 0x80
- lsls r3, 21
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- beq _0802A9E0
- ldr r3, _0802A9DC @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802AA04
- .align 2, 0
-_0802A9D4: .4byte gBattleMons
-_0802A9D8: .4byte gBattlerTarget
-_0802A9DC: .4byte gUnknown_2023D74
-_0802A9E0:
- orrs r2, r3
- str r2, [r1]
- ldr r1, _0802AA0C @ =gBattleMoveDamage
- ldr r0, _0802AA10 @ =sBattler_AI
- ldrb r0, [r0]
- muls r0, r4
- adds r0, r5
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _0802A9FC
- movs r0, 0x1
- str r0, [r1]
-_0802A9FC:
- ldr r1, _0802AA14 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802AA04:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802AA0C: .4byte gBattleMoveDamage
-_0802AA10: .4byte sBattler_AI
-_0802AA14: .4byte gUnknown_2023D74
- thumb_func_end atkAF_cursetarget
-
- thumb_func_start atkB0_trysetspikes
-atkB0_trysetspikes: @ 802AA18
- push {r4,lr}
- ldr r4, _0802AA6C @ =sBattler_AI
- ldrb r0, [r4]
- bl GetBattlerSide
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0802AA70 @ =gSideTimers
- lsls r2, r0, 1
- adds r0, r2, r0
- lsls r0, 2
- adds r3, r0, r1
- ldrb r0, [r3, 0xA]
- cmp r0, 0x3
- bne _0802AA7C
- ldr r2, _0802AA74 @ =gUnknown_2023ECC
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r3, _0802AA78 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802AA96
- .align 2, 0
-_0802AA6C: .4byte sBattler_AI
-_0802AA70: .4byte gSideTimers
-_0802AA74: .4byte gUnknown_2023ECC
-_0802AA78: .4byte gUnknown_2023D74
-_0802AA7C:
- ldr r1, _0802AA9C @ =gSideAffecting
- adds r1, r2, r1
- ldrh r2, [r1]
- movs r0, 0x10
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r3, 0xA]
- adds r0, 0x1
- strb r0, [r3, 0xA]
- ldr r1, _0802AAA0 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802AA96:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802AA9C: .4byte gSideAffecting
-_0802AAA0: .4byte gUnknown_2023D74
- thumb_func_end atkB0_trysetspikes
-
- thumb_func_start atkB1_setforesight
-atkB1_setforesight: @ 802AAA4
- ldr r1, _0802AAC8 @ =gBattleMons
- ldr r0, _0802AACC @ =gBattlerTarget
- ldrb r2, [r0]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 22
- orrs r0, r1
- str r0, [r2]
- ldr r1, _0802AAD0 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802AAC8: .4byte gBattleMons
-_0802AACC: .4byte gBattlerTarget
-_0802AAD0: .4byte gUnknown_2023D74
- thumb_func_end atkB1_setforesight
-
- thumb_func_start atkB2_trysetperishsong
-atkB2_trysetperishsong: @ 802AAD4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r6, 0
- movs r3, 0
- ldr r0, _0802AB18 @ =gBattlersCount
- adds r7, r0, 0
- ldr r0, _0802AB1C @ =sBattler_AI
- mov r8, r0
- ldrb r1, [r7]
- cmp r6, r1
- bge _0802AB40
- movs r5, 0x20
- ldr r0, _0802AB20 @ =gBattleMons
- mov r12, r0
- ldr r0, _0802AB24 @ =gDisableStructs
- adds r4, r0, 0
- adds r4, 0xF
- ldr r2, _0802AB28 @ =gStatuses3
-_0802AAFC:
- ldr r1, [r2]
- adds r0, r1, 0
- ands r0, r5
- cmp r0, 0
- bne _0802AB14
- movs r0, 0x58
- muls r0, r3
- add r0, r12
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2B
- bne _0802AB2C
-_0802AB14:
- adds r6, 0x1
- b _0802AB34
- .align 2, 0
-_0802AB18: .4byte gBattlersCount
-_0802AB1C: .4byte sBattler_AI
-_0802AB20: .4byte gBattleMons
-_0802AB24: .4byte gDisableStructs
-_0802AB28: .4byte gStatuses3
-_0802AB2C:
- orrs r1, r5
- str r1, [r2]
- movs r0, 0x33
- strb r0, [r4]
-_0802AB34:
- adds r4, 0x1C
- adds r2, 0x4
- adds r3, 0x1
- ldrb r0, [r7]
- cmp r3, r0
- blt _0802AAFC
-_0802AB40:
- mov r1, r8
- ldrb r0, [r1]
- bl PressurePPLoseOnUsingPerishSong
- ldr r0, _0802AB6C @ =gBattlersCount
- ldrb r0, [r0]
- cmp r6, r0
- bne _0802AB74
- ldr r3, _0802AB70 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802AB7C
- .align 2, 0
-_0802AB6C: .4byte gBattlersCount
-_0802AB70: .4byte gUnknown_2023D74
-_0802AB74:
- ldr r1, _0802AB88 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802AB7C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802AB88: .4byte gUnknown_2023D74
- thumb_func_end atkB2_trysetperishsong
-
- thumb_func_start atkB3_rolloutdamagecalculation
-atkB3_rolloutdamagecalculation: @ 802AB8C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _0802ABB0 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0802ABC0
- ldr r0, _0802ABB4 @ =sBattler_AI
- ldrb r0, [r0]
- bl CancelMultiTurnMoves
- ldr r1, _0802ABB8 @ =gUnknown_2023D74
- ldr r0, _0802ABBC @ =gUnknown_81D6960
- str r0, [r1]
- b _0802ACD8
- .align 2, 0
-_0802ABB0: .4byte gMoveResultFlags
-_0802ABB4: .4byte sBattler_AI
-_0802ABB8: .4byte gUnknown_2023D74
-_0802ABBC: .4byte gUnknown_81D6960
-_0802ABC0:
- ldr r2, _0802ACE4 @ =gBattleMons
- ldr r1, _0802ACE8 @ =sBattler_AI
- ldrb r3, [r1]
- movs r5, 0x58
- adds r0, r3, 0
- muls r0, r5
- adds r4, r2, 0
- adds r4, 0x50
- adds r0, r4
- ldr r0, [r0]
- movs r7, 0x80
- lsls r7, 5
- ands r0, r7
- adds r6, r1, 0
- mov r9, r2
- ldr r1, _0802ACEC @ =gDisableStructs
- mov r12, r1
- ldr r2, _0802ACF0 @ =gCurrentMove
- mov r8, r2
- cmp r0, 0
- bne _0802AC32
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- add r0, r12
- ldrb r2, [r0, 0x11]
- movs r1, 0x10
- negs r1, r1
- ands r1, r2
- movs r2, 0x5
- orrs r1, r2
- strb r1, [r0, 0x11]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r2, [r0, 0x11]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x50
- orrs r1, r2
- strb r1, [r0, 0x11]
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r4
- ldr r0, [r1]
- orrs r0, r7
- str r0, [r1]
- ldr r1, _0802ACF4 @ =gUnknown_2023DB8
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r1
- mov r2, r8
- ldrh r1, [r2]
- strh r1, [r0]
-_0802AC32:
- ldrb r0, [r6]
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- add r2, r12
- ldrb r3, [r2, 0x11]
- lsls r1, r3, 28
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x11]
- cmp r1, 0
- bne _0802AC66
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r4
- ldr r0, [r1]
- ldr r2, _0802ACF8 @ =0xffffefff
- ands r0, r2
- str r0, [r1]
-_0802AC66:
- ldr r3, _0802ACFC @ =gDynamicBasePower
- ldr r2, _0802AD00 @ =gBattleMoves
- mov r0, r8
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- strh r0, [r3]
- movs r2, 0x1
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r1, r12
- adds r4, r0, r1
- ldrb r0, [r4, 0x11]
- lsls r0, 28
- lsrs r0, 28
- movs r1, 0x5
- subs r1, r0
- ldr r7, _0802AD04 @ =gUnknown_2023D74
- adds r5, r3, 0
- cmp r2, r1
- bge _0802ACB4
- adds r1, r5, 0
- adds r3, r4, 0
- movs r4, 0x5
-_0802ACA0:
- ldrh r0, [r1]
- lsls r0, 1
- strh r0, [r1]
- adds r2, 0x1
- ldrb r0, [r3, 0x11]
- lsls r0, 28
- lsrs r0, 28
- subs r0, r4, r0
- cmp r2, r0
- blt _0802ACA0
-_0802ACB4:
- ldrb r1, [r6]
- movs r0, 0x58
- muls r0, r1
- mov r1, r9
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 23
- ands r0, r1
- cmp r0, 0
- beq _0802ACD2
- ldrh r0, [r5]
- lsls r0, 1
- strh r0, [r5]
-_0802ACD2:
- ldr r0, [r7]
- adds r0, 0x1
- str r0, [r7]
-_0802ACD8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802ACE4: .4byte gBattleMons
-_0802ACE8: .4byte sBattler_AI
-_0802ACEC: .4byte gDisableStructs
-_0802ACF0: .4byte gCurrentMove
-_0802ACF4: .4byte gUnknown_2023DB8
-_0802ACF8: .4byte 0xffffefff
-_0802ACFC: .4byte gDynamicBasePower
-_0802AD00: .4byte gBattleMoves
-_0802AD04: .4byte gUnknown_2023D74
- thumb_func_end atkB3_rolloutdamagecalculation
-
- thumb_func_start atkB4_jumpifconfusedandstatmaxed
-atkB4_jumpifconfusedandstatmaxed: @ 802AD08
- push {r4,r5,lr}
- ldr r5, _0802AD58 @ =gBattleMons
- ldr r0, _0802AD5C @ =gBattlerTarget
- ldrb r1, [r0]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r5, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- ldr r4, _0802AD60 @ =gUnknown_2023D74
- cmp r0, 0
- beq _0802AD64
- ldr r2, [r4]
- ldrb r0, [r2, 0x1]
- adds r0, r3
- adds r1, r5, 0
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xC
- bne _0802AD64
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0802AD6A
- .align 2, 0
-_0802AD58: .4byte gBattleMons
-_0802AD5C: .4byte gBattlerTarget
-_0802AD60: .4byte gUnknown_2023D74
-_0802AD64:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_0802AD6A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end atkB4_jumpifconfusedandstatmaxed
-
- thumb_func_start atkB5_furycuttercalc
-atkB5_furycuttercalc: @ 802AD70
- push {r4,r5,lr}
- ldr r0, _0802AD98 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0802ADAC
- ldr r2, _0802AD9C @ =gDisableStructs
- ldr r0, _0802ADA0 @ =sBattler_AI
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x10]
- ldr r1, _0802ADA4 @ =gUnknown_2023D74
- ldr r0, _0802ADA8 @ =gUnknown_81D6960
- str r0, [r1]
- b _0802AE04
- .align 2, 0
-_0802AD98: .4byte gMoveResultFlags
-_0802AD9C: .4byte gDisableStructs
-_0802ADA0: .4byte sBattler_AI
-_0802ADA4: .4byte gUnknown_2023D74
-_0802ADA8: .4byte gUnknown_81D6960
-_0802ADAC:
- ldr r5, _0802AE0C @ =gDisableStructs
- ldr r4, _0802AE10 @ =sBattler_AI
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x10]
- cmp r0, 0x5
- beq _0802ADC4
- adds r0, 0x1
- strb r0, [r1, 0x10]
-_0802ADC4:
- ldr r3, _0802AE14 @ =gDynamicBasePower
- ldr r2, _0802AE18 @ =gBattleMoves
- ldr r0, _0802AE1C @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- strh r0, [r3]
- movs r2, 0x1
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r4, _0802AE20 @ =gUnknown_2023D74
- ldrb r1, [r0, 0x10]
- cmp r2, r1
- bge _0802ADFE
- adds r1, r3, 0
- adds r3, r0, 0
-_0802ADF0:
- ldrh r0, [r1]
- lsls r0, 1
- strh r0, [r1]
- adds r2, 0x1
- ldrb r0, [r3, 0x10]
- cmp r2, r0
- blt _0802ADF0
-_0802ADFE:
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
-_0802AE04:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802AE0C: .4byte gDisableStructs
-_0802AE10: .4byte sBattler_AI
-_0802AE14: .4byte gDynamicBasePower
-_0802AE18: .4byte gBattleMoves
-_0802AE1C: .4byte gCurrentMove
-_0802AE20: .4byte gUnknown_2023D74
- thumb_func_end atkB5_furycuttercalc
-
- thumb_func_start atkB6_happinesstodamagecalculation
-atkB6_happinesstodamagecalculation: @ 802AE24
- push {r4,lr}
- ldr r2, _0802AE50 @ =gBattleMoves
- ldr r0, _0802AE54 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x79
- bne _0802AE64
- ldr r4, _0802AE58 @ =gDynamicBasePower
- ldr r2, _0802AE5C @ =gBattleMons
- ldr r0, _0802AE60 @ =sBattler_AI
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2B
- ldrb r1, [r0]
- b _0802AE7A
- .align 2, 0
-_0802AE50: .4byte gBattleMoves
-_0802AE54: .4byte gCurrentMove
-_0802AE58: .4byte gDynamicBasePower
-_0802AE5C: .4byte gBattleMons
-_0802AE60: .4byte sBattler_AI
-_0802AE64:
- ldr r4, _0802AE98 @ =gDynamicBasePower
- ldr r2, _0802AE9C @ =gBattleMons
- ldr r0, _0802AEA0 @ =sBattler_AI
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2B
- ldrb r0, [r0]
- movs r1, 0xFF
- subs r1, r0
-_0802AE7A:
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- movs r1, 0x19
- bl __divsi3
- strh r0, [r4]
- ldr r1, _0802AEA4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802AE98: .4byte gDynamicBasePower
-_0802AE9C: .4byte gBattleMons
-_0802AEA0: .4byte sBattler_AI
-_0802AEA4: .4byte gUnknown_2023D74
- thumb_func_end atkB6_happinesstodamagecalculation
-
- thumb_func_start atkB7_presentdamagecalculation
-atkB7_presentdamagecalculation: @ 802AEA8
- push {r4,lr}
- bl Random
- movs r4, 0xFF
- ands r4, r0
- cmp r4, 0x65
- bgt _0802AEC4
- ldr r1, _0802AEC0 @ =gDynamicBasePower
- movs r0, 0x28
- strh r0, [r1]
- b _0802AF06
- .align 2, 0
-_0802AEC0: .4byte gDynamicBasePower
-_0802AEC4:
- cmp r4, 0xB1
- bgt _0802AED4
- ldr r1, _0802AED0 @ =gDynamicBasePower
- movs r0, 0x50
- strh r0, [r1]
- b _0802AF06
- .align 2, 0
-_0802AED0: .4byte gDynamicBasePower
-_0802AED4:
- cmp r4, 0xCB
- bgt _0802AEE4
- ldr r1, _0802AEE0 @ =gDynamicBasePower
- movs r0, 0x78
- strh r0, [r1]
- b _0802AF06
- .align 2, 0
-_0802AEE0: .4byte gDynamicBasePower
-_0802AEE4:
- ldr r3, _0802AF10 @ =gBattleMoveDamage
- ldr r2, _0802AF14 @ =gBattleMons
- ldr r0, _0802AF18 @ =gBattlerTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2C]
- lsrs r0, 2
- str r0, [r3]
- cmp r0, 0
- bne _0802AF00
- movs r0, 0x1
- str r0, [r3]
-_0802AF00:
- ldr r0, [r3]
- negs r0, r0
- str r0, [r3]
-_0802AF06:
- cmp r4, 0xCB
- bgt _0802AF24
- ldr r1, _0802AF1C @ =gUnknown_2023D74
- ldr r0, _0802AF20 @ =gUnknown_81D6930
- b _0802AF5E
- .align 2, 0
-_0802AF10: .4byte gBattleMoveDamage
-_0802AF14: .4byte gBattleMons
-_0802AF18: .4byte gBattlerTarget
-_0802AF1C: .4byte gUnknown_2023D74
-_0802AF20: .4byte gUnknown_81D6930
-_0802AF24:
- ldr r2, _0802AF40 @ =gBattleMons
- ldr r0, _0802AF44 @ =gBattlerTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0, 0x2C]
- ldrh r0, [r0, 0x28]
- cmp r1, r0
- bne _0802AF50
- ldr r1, _0802AF48 @ =gUnknown_2023D74
- ldr r0, _0802AF4C @ =gUnknown_81D7DD1
- b _0802AF5E
- .align 2, 0
-_0802AF40: .4byte gBattleMons
-_0802AF44: .4byte gBattlerTarget
-_0802AF48: .4byte gUnknown_2023D74
-_0802AF4C: .4byte gUnknown_81D7DD1
-_0802AF50:
- ldr r2, _0802AF68 @ =gMoveResultFlags
- ldrb r1, [r2]
- movs r0, 0xF7
- ands r0, r1
- strb r0, [r2]
- ldr r1, _0802AF6C @ =gUnknown_2023D74
- ldr r0, _0802AF70 @ =gUnknown_81D7DB7
-_0802AF5E:
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802AF68: .4byte gMoveResultFlags
-_0802AF6C: .4byte gUnknown_2023D74
-_0802AF70: .4byte gUnknown_81D7DB7
- thumb_func_end atkB7_presentdamagecalculation
-
- thumb_func_start atkB8_setsafeguard
-atkB8_setsafeguard: @ 802AF74
- push {r4-r7,lr}
- ldr r7, _0802AFA8 @ =sBattler_AI
- ldrb r0, [r7]
- bl GetBattlerPosition
- ldr r4, _0802AFAC @ =gSideAffecting
- movs r6, 0x1
- adds r1, r6, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r1, [r1]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0802AFB8
- ldr r2, _0802AFB0 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802AFB4 @ =gUnknown_2023E82
- movs r0, 0
- strb r0, [r1, 0x5]
- b _0802B000
- .align 2, 0
-_0802AFA8: .4byte sBattler_AI
-_0802AFAC: .4byte gSideAffecting
-_0802AFB0: .4byte gMoveResultFlags
-_0802AFB4: .4byte gUnknown_2023E82
-_0802AFB8:
- ldrb r0, [r7]
- bl GetBattlerPosition
- adds r1, r6, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r0, [r1]
- movs r2, 0x20
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r7]
- bl GetBattlerPosition
- ldr r5, _0802B010 @ =gSideTimers
- adds r1, r6, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r4, 0x5
- strb r4, [r0, 0x6]
- ldrb r0, [r7]
- bl GetBattlerPosition
- adds r1, r6, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r7]
- strb r1, [r0, 0x7]
- ldr r0, _0802B014 @ =gUnknown_2023E82
- strb r4, [r0, 0x5]
-_0802B000:
- ldr r1, _0802B018 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B010: .4byte gSideTimers
-_0802B014: .4byte gUnknown_2023E82
-_0802B018: .4byte gUnknown_2023D74
- thumb_func_end atkB8_setsafeguard
-
- thumb_func_start atkB9_magnitudedamagecalculation
-atkB9_magnitudedamagecalculation: @ 802B01C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x4
- bgt _0802B048
- ldr r1, _0802B044 @ =gDynamicBasePower
- movs r0, 0xA
- strh r0, [r1]
- movs r3, 0x4
- b _0802B0B4
- .align 2, 0
-_0802B044: .4byte gDynamicBasePower
-_0802B048:
- cmp r3, 0xE
- bgt _0802B05C
- ldr r1, _0802B058 @ =gDynamicBasePower
- movs r0, 0x1E
- strh r0, [r1]
- movs r3, 0x5
- b _0802B0B4
- .align 2, 0
-_0802B058: .4byte gDynamicBasePower
-_0802B05C:
- cmp r3, 0x22
- bgt _0802B070
- ldr r1, _0802B06C @ =gDynamicBasePower
- movs r0, 0x32
- strh r0, [r1]
- movs r3, 0x6
- b _0802B0B4
- .align 2, 0
-_0802B06C: .4byte gDynamicBasePower
-_0802B070:
- cmp r3, 0x40
- bgt _0802B084
- ldr r1, _0802B080 @ =gDynamicBasePower
- movs r0, 0x46
- strh r0, [r1]
- movs r3, 0x7
- b _0802B0B4
- .align 2, 0
-_0802B080: .4byte gDynamicBasePower
-_0802B084:
- cmp r3, 0x54
- bgt _0802B098
- ldr r1, _0802B094 @ =gDynamicBasePower
- movs r0, 0x5A
- strh r0, [r1]
- movs r3, 0x8
- b _0802B0B4
- .align 2, 0
-_0802B094: .4byte gDynamicBasePower
-_0802B098:
- cmp r3, 0x5E
- bgt _0802B0AC
- ldr r1, _0802B0A8 @ =gDynamicBasePower
- movs r0, 0x6E
- strh r0, [r1]
- movs r3, 0x9
- b _0802B0B4
- .align 2, 0
-_0802B0A8: .4byte gDynamicBasePower
-_0802B0AC:
- ldr r1, _0802B120 @ =gDynamicBasePower
- movs r0, 0x96
- strh r0, [r1]
- movs r3, 0xA
-_0802B0B4:
- ldr r1, _0802B124 @ =gBattleTextBuff1
- movs r2, 0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- strb r0, [r1, 0x2]
- movs r0, 0x2
- strb r0, [r1, 0x3]
- strb r3, [r1, 0x4]
- movs r0, 0xFF
- strb r0, [r1, 0x5]
- ldr r1, _0802B128 @ =gBattlerTarget
- strb r2, [r1]
- ldr r0, _0802B12C @ =gBattlersCount
- ldrb r3, [r0]
- adds r6, r1, 0
- ldr r0, _0802B130 @ =gUnknown_2023D74
- mov r8, r0
- cmp r2, r3
- bcs _0802B10C
- adds r4, r6, 0
- ldr r0, _0802B134 @ =sBattler_AI
- ldrb r5, [r0]
- ldr r1, _0802B138 @ =gBitTable
- mov r12, r1
- ldr r7, _0802B13C @ =gAbsentBattlerFlags
-_0802B0EA:
- ldrb r2, [r4]
- cmp r2, r5
- beq _0802B100
- ldrb r0, [r7]
- ldrb r1, [r6]
- lsls r1, 2
- add r1, r12
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _0802B10C
-_0802B100:
- adds r0, r2, 0x1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r3
- bcc _0802B0EA
-_0802B10C:
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B120: .4byte gDynamicBasePower
-_0802B124: .4byte gBattleTextBuff1
-_0802B128: .4byte gBattlerTarget
-_0802B12C: .4byte gBattlersCount
-_0802B130: .4byte gUnknown_2023D74
-_0802B134: .4byte sBattler_AI
-_0802B138: .4byte gBitTable
-_0802B13C: .4byte gAbsentBattlerFlags
- thumb_func_end atkB9_magnitudedamagecalculation
-
- thumb_func_start atkBA_jumpifnopursuitswitchdmg
-atkBA_jumpifnopursuitswitchdmg: @ 802B140
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0802B164 @ =gUnknown_2023D72
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0802B170
- ldr r0, _0802B168 @ =sBattler_AI
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0802B16C
- movs r0, 0x1
- b _0802B18A
- .align 2, 0
-_0802B164: .4byte gUnknown_2023D72
-_0802B168: .4byte sBattler_AI
-_0802B16C:
- movs r0, 0
- b _0802B18A
-_0802B170:
- ldr r0, _0802B184 @ =sBattler_AI
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0802B188
- movs r0, 0x3
- b _0802B18A
- .align 2, 0
-_0802B184: .4byte sBattler_AI
-_0802B188:
- movs r0, 0x2
-_0802B18A:
- bl GetBattlerAtPosition
- ldr r1, _0802B264 @ =gBattlerTarget
- strb r0, [r1]
- ldr r0, _0802B268 @ =gUnknown_2023D7C
- ldr r1, _0802B264 @ =gBattlerTarget
- ldrb r3, [r1]
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802B1A2
- b _0802B2A8
-_0802B1A2:
- ldr r5, _0802B26C @ =sBattler_AI
- ldr r0, _0802B270 @ =gBattleStruct
- ldr r1, [r0]
- adds r1, r3, r1
- ldrb r2, [r5]
- ldrb r1, [r1, 0xC]
- cmp r2, r1
- bne _0802B2A8
- ldr r4, _0802B274 @ =gBattleMons
- movs r2, 0x58
- adds r0, r3, 0
- muls r0, r2
- adds r1, r4, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x27
- ands r0, r1
- cmp r0, 0
- bne _0802B2A8
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r4
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0802B2A8
- ldr r0, _0802B278 @ =gDisableStructs
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x18]
- lsls r0, 31
- cmp r0, 0
- bne _0802B2A8
- ldr r0, _0802B27C @ =gUnknown_2023DC4
- lsls r1, r3, 1
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0xE4
- bne _0802B2A8
- movs r1, 0
- ldr r0, _0802B280 @ =gBattlersCount
- ldr r2, _0802B284 @ =gCurrentMove
- mov r8, r2
- ldr r7, _0802B288 @ =gUnknown_2023D48
- mov r10, r7
- ldr r2, _0802B28C @ =gUnknown_2023D49
- mov r9, r2
- ldr r7, _0802B290 @ =gUnknown_2023DD0
- mov r12, r7
- ldrb r2, [r0]
- cmp r1, r2
- bge _0802B22E
- ldr r6, _0802B294 @ =gUnknown_2023BDE
- ldr r5, _0802B264 @ =gBattlerTarget
- ldr r4, _0802B298 @ =gUnknown_2023BDA
- movs r3, 0xB
- adds r2, r0, 0
-_0802B218:
- adds r0, r1, r6
- ldrb r0, [r0]
- ldrb r7, [r5]
- cmp r0, r7
- bne _0802B226
- adds r0, r1, r4
- strb r3, [r0]
-_0802B226:
- adds r1, 0x1
- ldrb r0, [r2]
- cmp r1, r0
- blt _0802B218
-_0802B22E:
- movs r0, 0xE4
- mov r1, r8
- strh r0, [r1]
- ldr r2, _0802B264 @ =gBattlerTarget
- ldrb r0, [r2]
- ldr r7, _0802B270 @ =gBattleStruct
- ldr r1, [r7]
- adds r0, r1
- adds r0, 0x80
- ldrb r0, [r0]
- mov r1, r9
- strb r0, [r1]
- mov r2, r10
- strb r0, [r2]
- ldr r7, _0802B29C @ =gUnknown_2023D74
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- movs r0, 0x1
- ldr r1, _0802B2A0 @ =gBattleScripting
- strb r0, [r1, 0x18]
- mov r2, r12
- ldr r0, [r2]
- ldr r1, _0802B2A4 @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- b _0802B2C2
- .align 2, 0
-_0802B264: .4byte gBattlerTarget
-_0802B268: .4byte gUnknown_2023D7C
-_0802B26C: .4byte sBattler_AI
-_0802B270: .4byte gBattleStruct
-_0802B274: .4byte gBattleMons
-_0802B278: .4byte gDisableStructs
-_0802B27C: .4byte gUnknown_2023DC4
-_0802B280: .4byte gBattlersCount
-_0802B284: .4byte gCurrentMove
-_0802B288: .4byte gUnknown_2023D48
-_0802B28C: .4byte gUnknown_2023D49
-_0802B290: .4byte gUnknown_2023DD0
-_0802B294: .4byte gUnknown_2023BDE
-_0802B298: .4byte gUnknown_2023BDA
-_0802B29C: .4byte gUnknown_2023D74
-_0802B2A0: .4byte gBattleScripting
-_0802B2A4: .4byte 0xfffffbff
-_0802B2A8:
- ldr r3, _0802B2D0 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802B2C2:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B2D0: .4byte gUnknown_2023D74
- thumb_func_end atkBA_jumpifnopursuitswitchdmg
-
- thumb_func_start atkBB_setsunny
-atkBB_setsunny: @ 802B2D4
- push {lr}
- ldr r2, _0802B2F4 @ =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0802B300
- ldr r2, _0802B2F8 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802B2FC @ =gUnknown_2023E82
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _0802B312
- .align 2, 0
-_0802B2F4: .4byte gBattleWeather
-_0802B2F8: .4byte gMoveResultFlags
-_0802B2FC: .4byte gUnknown_2023E82
-_0802B300:
- movs r0, 0x20
- strh r0, [r2]
- ldr r1, _0802B320 @ =gUnknown_2023E82
- movs r0, 0x4
- strb r0, [r1, 0x5]
- ldr r0, _0802B324 @ =gUnknown_2023F20
- adds r0, 0x28
- movs r1, 0x5
- strb r1, [r0]
-_0802B312:
- ldr r1, _0802B328 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802B320: .4byte gUnknown_2023E82
-_0802B324: .4byte gUnknown_2023F20
-_0802B328: .4byte gUnknown_2023D74
- thumb_func_end atkBB_setsunny
-
- thumb_func_start atkBC_maxattackhalvehp
-atkBC_maxattackhalvehp: @ 802B32C
- push {r4,r5,lr}
- ldr r5, _0802B378 @ =gBattleMons
- ldr r4, _0802B37C @ =sBattler_AI
- ldrb r0, [r4]
- movs r3, 0x58
- muls r0, r3
- adds r2, r0, r5
- ldrh r0, [r2, 0x2C]
- lsrs r1, r0, 1
- cmp r1, 0
- bne _0802B344
- movs r1, 0x1
-_0802B344:
- movs r0, 0x19
- ldrsb r0, [r2, r0]
- cmp r0, 0xB
- bgt _0802B388
- ldrh r0, [r2, 0x28]
- cmp r0, r1
- bls _0802B388
- movs r0, 0xC
- strb r0, [r2, 0x19]
- ldr r1, _0802B380 @ =gBattleMoveDamage
- ldrb r0, [r4]
- muls r0, r3
- adds r0, r5
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _0802B36C
- movs r0, 0x1
- str r0, [r1]
-_0802B36C:
- ldr r1, _0802B384 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802B3A2
- .align 2, 0
-_0802B378: .4byte gBattleMons
-_0802B37C: .4byte sBattler_AI
-_0802B380: .4byte gBattleMoveDamage
-_0802B384: .4byte gUnknown_2023D74
-_0802B388:
- ldr r3, _0802B3A8 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802B3A2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B3A8: .4byte gUnknown_2023D74
- thumb_func_end atkBC_maxattackhalvehp
-
- thumb_func_start atkBD_copyfoestats
-atkBD_copyfoestats: @ 802B3AC
- push {r4-r7,lr}
- movs r2, 0
- ldr r7, _0802B3E4 @ =gUnknown_2023D74
- ldr r6, _0802B3E8 @ =sBattler_AI
- movs r4, 0x58
- ldr r3, _0802B3EC @ =gUnknown_2023BFC
- ldr r5, _0802B3F0 @ =gBattlerTarget
-_0802B3BA:
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r4
- adds r1, r2, r1
- adds r1, r3
- ldrb r0, [r5]
- muls r0, r4
- adds r0, r2, r0
- adds r0, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x7
- ble _0802B3BA
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B3E4: .4byte gUnknown_2023D74
-_0802B3E8: .4byte sBattler_AI
-_0802B3EC: .4byte gUnknown_2023BFC
-_0802B3F0: .4byte gBattlerTarget
- thumb_func_end atkBD_copyfoestats
-
- thumb_func_start atkBE_rapidspinfree
-atkBE_rapidspinfree: @ 802B3F4
- push {r4-r6,lr}
- ldr r1, _0802B464 @ =gBattleMons
- ldr r5, _0802B468 @ =sBattler_AI
- ldrb r2, [r5]
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- adds r4, r1, 0
- adds r4, 0x50
- adds r0, r4
- ldr r0, [r0]
- movs r1, 0xE0
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0802B488
- ldr r1, _0802B46C @ =gBattleScripting
- ldr r3, _0802B470 @ =gBattlerTarget
- ldrb r0, [r3]
- strb r0, [r1, 0x17]
- ldrb r0, [r5]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r4
- ldr r0, [r1]
- ldr r2, _0802B474 @ =0xffff1fff
- ands r0, r2
- str r0, [r1]
- ldrb r0, [r5]
- ldr r1, _0802B478 @ =gBattleStruct
- ldr r2, [r1]
- adds r0, r2
- ldrb r0, [r0, 0x14]
- strb r0, [r3]
- ldr r1, _0802B47C @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r2
- ldrb r0, [r0, 0x4]
- strb r0, [r1, 0x2]
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r2
- ldrb r0, [r0, 0x5]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- bl BattleScriptPushCursor
- ldr r1, _0802B480 @ =gUnknown_2023D74
- ldr r0, _0802B484 @ =gUnknown_81D8DF3
- b _0802B532
- .align 2, 0
-_0802B464: .4byte gBattleMons
-_0802B468: .4byte sBattler_AI
-_0802B46C: .4byte gBattleScripting
-_0802B470: .4byte gBattlerTarget
-_0802B474: .4byte 0xffff1fff
-_0802B478: .4byte gBattleStruct
-_0802B47C: .4byte gBattleTextBuff1
-_0802B480: .4byte gUnknown_2023D74
-_0802B484: .4byte gUnknown_81D8DF3
-_0802B488:
- ldr r4, _0802B4BC @ =gStatuses3
- lsls r0, r2, 2
- adds r3, r0, r4
- ldr r1, [r3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0802B4C8
- movs r0, 0x5
- negs r0, r0
- ands r1, r0
- str r1, [r3]
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x4
- negs r2, r2
- ands r0, r2
- str r0, [r1]
- bl BattleScriptPushCursor
- ldr r1, _0802B4C0 @ =gUnknown_2023D74
- ldr r0, _0802B4C4 @ =gUnknown_81D8E04
- b _0802B532
- .align 2, 0
-_0802B4BC: .4byte gStatuses3
-_0802B4C0: .4byte gUnknown_2023D74
-_0802B4C4: .4byte gUnknown_81D8E04
-_0802B4C8:
- adds r0, r2, 0
- bl GetBattlerSide
- ldr r4, _0802B518 @ =gSideAffecting
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrh r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802B52C
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrh r2, [r0]
- ldr r1, _0802B51C @ =0x0000ffef
- ands r1, r2
- movs r4, 0
- strh r1, [r0]
- ldrb r0, [r5]
- bl GetBattlerSide
- ldr r2, _0802B520 @ =gSideTimers
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- strb r4, [r1, 0xA]
- bl BattleScriptPushCursor
- ldr r1, _0802B524 @ =gUnknown_2023D74
- ldr r0, _0802B528 @ =gUnknown_81D8E0B
- b _0802B532
- .align 2, 0
-_0802B518: .4byte gSideAffecting
-_0802B51C: .4byte 0x0000ffef
-_0802B520: .4byte gSideTimers
-_0802B524: .4byte gUnknown_2023D74
-_0802B528: .4byte gUnknown_81D8E0B
-_0802B52C:
- ldr r1, _0802B53C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
-_0802B532:
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B53C: .4byte gUnknown_2023D74
- thumb_func_end atkBE_rapidspinfree
-
- thumb_func_start atkBF_setdefensecurlbit
-atkBF_setdefensecurlbit: @ 802B540
- ldr r1, _0802B564 @ =gBattleMons
- ldr r0, _0802B568 @ =sBattler_AI
- ldrb r2, [r0]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 23
- orrs r0, r1
- str r0, [r2]
- ldr r1, _0802B56C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802B564: .4byte gBattleMons
-_0802B568: .4byte sBattler_AI
-_0802B56C: .4byte gUnknown_2023D74
- thumb_func_end atkBF_setdefensecurlbit
-
- thumb_func_start atkC0_recoverbasedonsunlight
-atkC0_recoverbasedonsunlight: @ 802B570
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _0802B5DC @ =gBattlerTarget
- ldr r5, _0802B5E0 @ =sBattler_AI
- ldrb r0, [r5]
- strb r0, [r1]
- ldr r7, _0802B5E4 @ =gBattleMons
- ldrb r0, [r5]
- movs r6, 0x58
- muls r0, r6
- adds r0, r7
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- beq _0802B650
- ldr r4, _0802B5E8 @ =gBattleWeather
- ldrh r0, [r4]
- cmp r0, 0
- beq _0802B5C2
- 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 _0802B5C2
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _0802B5F0
-_0802B5C2:
- ldr r3, _0802B5EC @ =gBattleMoveDamage
- ldr r2, _0802B5E4 @ =gBattleMons
- ldr r0, _0802B5E0 @ =sBattler_AI
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r3]
- adds r1, r3, 0
- b _0802B62A
- .align 2, 0
-_0802B5DC: .4byte gBattlerTarget
-_0802B5E0: .4byte sBattler_AI
-_0802B5E4: .4byte gBattleMons
-_0802B5E8: .4byte gBattleWeather
-_0802B5EC: .4byte gBattleMoveDamage
-_0802B5F0:
- ldrh r1, [r4]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0802B61C
- ldr r4, _0802B618 @ =gBattleMoveDamage
- ldrb r0, [r5]
- muls r0, r6
- adds r0, r7
- ldrh r1, [r0, 0x2C]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- movs r1, 0x1E
- bl __divsi3
- str r0, [r4]
- adds r1, r4, 0
- b _0802B62A
- .align 2, 0
-_0802B618: .4byte gBattleMoveDamage
-_0802B61C:
- ldr r1, _0802B648 @ =gBattleMoveDamage
- ldrb r0, [r5]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0, 0x2C]
- lsrs r0, 2
- str r0, [r1]
-_0802B62A:
- adds r2, r1, 0
- ldr r0, [r2]
- cmp r0, 0
- bne _0802B636
- movs r0, 0x1
- str r0, [r2]
-_0802B636:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldr r1, _0802B64C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802B66A
- .align 2, 0
-_0802B648: .4byte gBattleMoveDamage
-_0802B64C: .4byte gUnknown_2023D74
-_0802B650:
- ldr r3, _0802B674 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802B66A:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B674: .4byte gUnknown_2023D74
- thumb_func_end atkC0_recoverbasedonsunlight
-
- thumb_func_start sub_802B678
-sub_802B678: @ 802B678
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _0802B760 @ =gBattleMons
- ldr r0, _0802B764 @ =sBattler_AI
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrb r0, [r1, 0x14]
- mov r9, r0
- mov r7, r9
- lsls r7, 27
- adds r0, r7, 0
- lsrs r0, 27
- mov r9, r0
- movs r4, 0x2
- mov r2, r9
- ands r2, r4
- asrs r2, 1
- ldrh r7, [r1, 0x14]
- mov r8, r7
- mov r0, r8
- lsls r0, 22
- lsrs r0, 27
- mov r8, r0
- ands r0, r4
- orrs r2, r0
- ldrb r6, [r1, 0x15]
- lsls r6, 25
- lsrs r6, 27
- adds r0, r6, 0
- ands r0, r4
- lsls r0, 1
- orrs r2, r0
- ldr r5, [r1, 0x14]
- lsls r5, 12
- lsrs r5, 27
- adds r0, r5, 0
- ands r0, r4
- lsls r0, 2
- orrs r2, r0
- ldrh r3, [r1, 0x16]
- lsls r3, 23
- lsrs r3, 27
- adds r0, r3, 0
- ands r0, r4
- lsls r0, 3
- orrs r2, r0
- ldrb r1, [r1, 0x17]
- lsls r1, 26
- lsrs r1, 27
- adds r0, r1, 0
- ands r0, r4
- lsls r0, 4
- orrs r2, r0
- movs r0, 0x1
- adds r4, r0, 0
- mov r7, r9
- ands r4, r7
- mov r7, r8
- ands r7, r0
- lsls r7, 1
- orrs r4, r7
- ands r6, r0
- lsls r6, 2
- orrs r4, r6
- ands r5, r0
- lsls r5, 3
- orrs r4, r5
- ands r3, r0
- lsls r3, 4
- orrs r4, r3
- ands r1, r0
- lsls r1, 5
- orrs r4, r1
- ldr r5, _0802B768 @ =gDynamicBasePower
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- movs r1, 0x3F
- bl __divsi3
- adds r0, 0x1E
- strh r0, [r5]
- ldr r6, _0802B76C @ =gBattleStruct
- ldr r5, [r6]
- lsls r0, r4, 4
- subs r0, r4
- movs r1, 0x3F
- bl __divsi3
- adds r0, 0x1
- strb r0, [r5, 0x13]
- ldr r1, [r6]
- ldrb r0, [r1, 0x13]
- cmp r0, 0x8
- bls _0802B742
- adds r0, 0x1
- strb r0, [r1, 0x13]
-_0802B742:
- ldr r2, [r6]
- ldrb r0, [r2, 0x13]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r2, 0x13]
- ldr r1, _0802B770 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B760: .4byte gBattleMons
-_0802B764: .4byte sBattler_AI
-_0802B768: .4byte gDynamicBasePower
-_0802B76C: .4byte gBattleStruct
-_0802B770: .4byte gUnknown_2023D74
- thumb_func_end sub_802B678
-
- thumb_func_start atkC2_selectfirstvalidtarget
-atkC2_selectfirstvalidtarget: @ 802B774
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0802B7D0 @ =gBattlerTarget
- movs r1, 0
- strb r1, [r0]
- ldr r1, _0802B7D4 @ =gBattlersCount
- ldrb r1, [r1]
- adds r6, r0, 0
- ldr r0, _0802B7D8 @ =gUnknown_2023D74
- mov r8, r0
- cmp r1, 0
- beq _0802B7BE
- adds r3, r6, 0
- ldr r0, _0802B7DC @ =sBattler_AI
- ldrb r5, [r0]
- ldr r0, _0802B7E0 @ =gBitTable
- mov r12, r0
- adds r4, r1, 0
- ldr r7, _0802B7E4 @ =gAbsentBattlerFlags
-_0802B79C:
- ldrb r2, [r3]
- cmp r2, r5
- beq _0802B7B2
- ldrb r0, [r7]
- ldrb r1, [r6]
- lsls r1, 2
- add r1, r12
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _0802B7BE
-_0802B7B2:
- adds r0, r2, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcc _0802B79C
-_0802B7BE:
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B7D0: .4byte gBattlerTarget
-_0802B7D4: .4byte gBattlersCount
-_0802B7D8: .4byte gUnknown_2023D74
-_0802B7DC: .4byte sBattler_AI
-_0802B7E0: .4byte gBitTable
-_0802B7E4: .4byte gAbsentBattlerFlags
- thumb_func_end atkC2_selectfirstvalidtarget
-
- thumb_func_start atkC3_trysetfutureattack
-atkC3_trysetfutureattack: @ 802B7E8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r0, _0802B820 @ =gUnknown_2023F20
- mov r8, r0
- ldr r7, _0802B824 @ =gBattlerTarget
- ldrb r1, [r7]
- adds r0, r1, r0
- ldrb r6, [r0]
- cmp r6, 0
- beq _0802B82C
- ldr r3, _0802B828 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802B8F6
- .align 2, 0
-_0802B820: .4byte gUnknown_2023F20
-_0802B824: .4byte gBattlerTarget
-_0802B828: .4byte gUnknown_2023D74
-_0802B82C:
- lsls r1, 1
- mov r0, r8
- adds r0, 0x18
- adds r1, r0
- ldr r2, _0802B8CC @ =gCurrentMove
- mov r9, r2
- ldrh r0, [r2]
- strh r0, [r1]
- mov r0, r8
- adds r0, 0x4
- ldrb r4, [r7]
- adds r0, r4
- ldr r5, _0802B8D0 @ =sBattler_AI
- ldrb r1, [r5]
- strb r1, [r0]
- ldrb r0, [r7]
- add r0, r8
- movs r1, 0x3
- strb r1, [r0]
- ldr r4, _0802B8D4 @ =gSideAffecting
- ldrb r0, [r7]
- bl GetBattlerPosition
- movs r1, 0x1
- mov r10, r1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- ldr r2, _0802B8D8 @ =gBattleMons
- adds r0, r2
- ldrb r1, [r7]
- muls r1, r4
- adds r1, r2
- mov r4, r9
- ldrh r2, [r4]
- str r6, [sp]
- str r6, [sp, 0x4]
- ldrb r4, [r5]
- str r4, [sp, 0x8]
- ldrb r4, [r7]
- str r4, [sp, 0xC]
- bl CalculateBaseDamage
- ldrb r1, [r7]
- lsls r1, 2
- mov r2, r8
- adds r2, 0x8
- adds r1, r2
- str r0, [r1]
- ldr r1, _0802B8DC @ =gUnknown_2023E8C
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _0802B8BA
- ldrb r4, [r7]
- lsls r4, 2
- adds r4, r2
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_0802B8BA:
- mov r0, r9
- ldrh r1, [r0]
- ldr r0, _0802B8E0 @ =0x00000161
- cmp r1, r0
- bne _0802B8E8
- ldr r0, _0802B8E4 @ =gUnknown_2023E82
- mov r1, r10
- strb r1, [r0, 0x5]
- b _0802B8EE
- .align 2, 0
-_0802B8CC: .4byte gCurrentMove
-_0802B8D0: .4byte sBattler_AI
-_0802B8D4: .4byte gSideAffecting
-_0802B8D8: .4byte gBattleMons
-_0802B8DC: .4byte gUnknown_2023E8C
-_0802B8E0: .4byte 0x00000161
-_0802B8E4: .4byte gUnknown_2023E82
-_0802B8E8:
- ldr r1, _0802B908 @ =gUnknown_2023E82
- movs r0, 0
- strb r0, [r1, 0x5]
-_0802B8EE:
- ldr r1, _0802B90C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802B8F6:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B908: .4byte gUnknown_2023E82
-_0802B90C: .4byte gUnknown_2023D74
- thumb_func_end atkC3_trysetfutureattack
-
- thumb_func_start atkC4_trydobeatup
-atkC4_trydobeatup: @ 802B910
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _0802B954 @ =sBattler_AI
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- ldr r7, _0802B958 @ =gEnemyParty
- cmp r0, 0
- bne _0802B92A
- ldr r7, _0802B95C @ =gPlayerParty
-_0802B92A:
- ldr r2, _0802B960 @ =gBattleMons
- ldr r0, _0802B964 @ =gBattlerTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0802B96C
- ldr r3, _0802B968 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- b _0802BB08
- .align 2, 0
-_0802B954: .4byte sBattler_AI
-_0802B958: .4byte gEnemyParty
-_0802B95C: .4byte gPlayerParty
-_0802B960: .4byte gBattleMons
-_0802B964: .4byte gBattlerTarget
-_0802B968: .4byte gUnknown_2023D74
-_0802B96C:
- ldr r6, _0802BAA8 @ =gUnknown_2023E82
- ldrb r0, [r6]
- mov r8, r0
- cmp r0, 0x5
- bls _0802B978
- b _0802BAD4
-_0802B978:
- adds r4, r6, 0
- movs r5, 0x64
-_0802B97C:
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802B9C0
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _0802B9C0
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0802B9C0
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x37
- bl GetMonData
- cmp r0, 0
- beq _0802B9D0
-_0802B9C0:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r6, r4, 0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bls _0802B97C
-_0802B9D0:
- ldr r1, _0802BAA8 @ =gUnknown_2023E82
- mov r9, r1
- ldrb r2, [r1]
- cmp r2, 0x5
- bhi _0802BAD4
- ldr r1, _0802BAAC @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r6, _0802BAB0 @ =sBattler_AI
- ldrb r0, [r6]
- strb r0, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802BAB4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x9
- str r0, [r1]
- ldr r2, _0802BAB8 @ =gBattleMoveDamage
- mov r8, r2
- ldr r5, _0802BABC @ =gBaseStats
- mov r1, r9
- ldrb r0, [r1]
- movs r4, 0x64
- muls r0, r4
- adds r0, r7, r0
- movs r1, 0xB
- bl GetMonData
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r3, [r1, 0x1]
- mov r2, r8
- str r3, [r2]
- ldr r2, _0802BAC0 @ =gBattleMoves
- ldr r0, _0802BAC4 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- muls r0, r3
- mov r1, r8
- str r0, [r1]
- mov r2, r9
- ldrb r0, [r2]
- muls r0, r4
- adds r0, r7, r0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 1
- movs r1, 0x5
- bl __udivsi3
- adds r0, 0x2
- mov r2, r8
- ldr r1, [r2]
- muls r0, r1
- str r0, [r2]
- ldr r3, _0802BAC8 @ =gBattleMons
- ldr r1, _0802BACC @ =gBattlerTarget
- ldrb r2, [r1]
- movs r1, 0x58
- muls r1, r2
- adds r1, r3
- ldrh r2, [r1]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r5
- ldrb r1, [r1, 0x2]
- bl __divsi3
- mov r1, r8
- str r0, [r1]
- movs r1, 0x32
- bl __divsi3
- adds r2, r0, 0x2
- mov r0, r8
- str r2, [r0]
- ldr r1, _0802BAD0 @ =gUnknown_2023E8C
- ldrb r0, [r6]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _0802BA9C
- lsls r0, r2, 4
- subs r0, r2
- movs r1, 0xA
- bl __divsi3
- mov r1, r8
- str r0, [r1]
-_0802BA9C:
- mov r2, r9
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- b _0802BB0E
- .align 2, 0
-_0802BAA8: .4byte gUnknown_2023E82
-_0802BAAC: .4byte gBattleTextBuff1
-_0802BAB0: .4byte sBattler_AI
-_0802BAB4: .4byte gUnknown_2023D74
-_0802BAB8: .4byte gBattleMoveDamage
-_0802BABC: .4byte gBaseStats
-_0802BAC0: .4byte gBattleMoves
-_0802BAC4: .4byte gCurrentMove
-_0802BAC8: .4byte gBattleMons
-_0802BACC: .4byte gBattlerTarget
-_0802BAD0: .4byte gUnknown_2023E8C
-_0802BAD4:
- mov r0, r8
- cmp r0, 0
- beq _0802BAF4
- ldr r3, _0802BAF0 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- b _0802BB08
- .align 2, 0
-_0802BAF0: .4byte gUnknown_2023D74
-_0802BAF4:
- ldr r3, _0802BB1C @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
-_0802BB08:
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802BB0E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BB1C: .4byte gUnknown_2023D74
- thumb_func_end atkC4_trydobeatup
-
- thumb_func_start atkC5_setsemiinvulnerablebit
-atkC5_setsemiinvulnerablebit: @ 802BB20
- push {lr}
- ldr r0, _0802BB34 @ =gCurrentMove
- ldrh r1, [r0]
- cmp r1, 0x5B
- beq _0802BB60
- cmp r1, 0x5B
- bgt _0802BB38
- cmp r1, 0x13
- beq _0802BB44
- b _0802BB8C
- .align 2, 0
-_0802BB34: .4byte gCurrentMove
-_0802BB38:
- ldr r0, _0802BB54 @ =0x00000123
- cmp r1, r0
- beq _0802BB78
- adds r0, 0x31
- cmp r1, r0
- bne _0802BB8C
-_0802BB44:
- ldr r2, _0802BB58 @ =gStatuses3
- ldr r0, _0802BB5C @ =sBattler_AI
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x40
- b _0802BB88
- .align 2, 0
-_0802BB54: .4byte 0x00000123
-_0802BB58: .4byte gStatuses3
-_0802BB5C: .4byte sBattler_AI
-_0802BB60:
- ldr r2, _0802BB70 @ =gStatuses3
- ldr r0, _0802BB74 @ =sBattler_AI
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x80
- b _0802BB88
- .align 2, 0
-_0802BB70: .4byte gStatuses3
-_0802BB74: .4byte sBattler_AI
-_0802BB78:
- ldr r2, _0802BB98 @ =gStatuses3
- ldr r0, _0802BB9C @ =sBattler_AI
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 11
-_0802BB88:
- orrs r0, r2
- str r0, [r1]
-_0802BB8C:
- ldr r1, _0802BBA0 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802BB98: .4byte gStatuses3
-_0802BB9C: .4byte sBattler_AI
-_0802BBA0: .4byte gUnknown_2023D74
- thumb_func_end atkC5_setsemiinvulnerablebit
-
- thumb_func_start atkC6_clearsemiinvulnerablebit
-atkC6_clearsemiinvulnerablebit: @ 802BBA4
- push {lr}
- ldr r0, _0802BBB8 @ =gCurrentMove
- ldrh r1, [r0]
- cmp r1, 0x5B
- beq _0802BBE8
- cmp r1, 0x5B
- bgt _0802BBBC
- cmp r1, 0x13
- beq _0802BBC8
- b _0802BC16
- .align 2, 0
-_0802BBB8: .4byte gCurrentMove
-_0802BBBC:
- ldr r0, _0802BBDC @ =0x00000123
- cmp r1, r0
- beq _0802BC04
- adds r0, 0x31
- cmp r1, r0
- bne _0802BC16
-_0802BBC8:
- ldr r2, _0802BBE0 @ =gStatuses3
- ldr r0, _0802BBE4 @ =sBattler_AI
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x41
- negs r2, r2
- b _0802BC12
- .align 2, 0
-_0802BBDC: .4byte 0x00000123
-_0802BBE0: .4byte gStatuses3
-_0802BBE4: .4byte sBattler_AI
-_0802BBE8:
- ldr r2, _0802BBFC @ =gStatuses3
- ldr r0, _0802BC00 @ =sBattler_AI
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x81
- negs r2, r2
- b _0802BC12
- .align 2, 0
-_0802BBFC: .4byte gStatuses3
-_0802BC00: .4byte sBattler_AI
-_0802BC04:
- ldr r2, _0802BC24 @ =gStatuses3
- ldr r0, _0802BC28 @ =sBattler_AI
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- ldr r2, _0802BC2C @ =0xfffbffff
-_0802BC12:
- ands r0, r2
- str r0, [r1]
-_0802BC16:
- ldr r1, _0802BC30 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802BC24: .4byte gStatuses3
-_0802BC28: .4byte sBattler_AI
-_0802BC2C: .4byte 0xfffbffff
-_0802BC30: .4byte gUnknown_2023D74
- thumb_func_end atkC6_clearsemiinvulnerablebit
-
- thumb_func_start atkC7_setminimize
-atkC7_setminimize: @ 802BC34
- push {lr}
- ldr r0, _0802BC64 @ =gUnknown_2023DD0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _0802BC58
- ldr r2, _0802BC68 @ =gStatuses3
- ldr r0, _0802BC6C @ =sBattler_AI
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 1
- orrs r0, r2
- str r0, [r1]
-_0802BC58:
- ldr r1, _0802BC70 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802BC64: .4byte gUnknown_2023DD0
-_0802BC68: .4byte gStatuses3
-_0802BC6C: .4byte sBattler_AI
-_0802BC70: .4byte gUnknown_2023D74
- thumb_func_end atkC7_setminimize
-
- thumb_func_start atkC8_sethail
-atkC8_sethail: @ 802BC74
- push {lr}
- ldr r3, _0802BC98 @ =gBattleWeather
- ldrh r1, [r3]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0802BCA4
- ldr r2, _0802BC9C @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802BCA0 @ =gUnknown_2023E82
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _0802BCB2
- .align 2, 0
-_0802BC98: .4byte gBattleWeather
-_0802BC9C: .4byte gMoveResultFlags
-_0802BCA0: .4byte gUnknown_2023E82
-_0802BCA4:
- strh r2, [r3]
- ldr r0, _0802BCC0 @ =gUnknown_2023E82
- movs r1, 0x5
- strb r1, [r0, 0x5]
- ldr r0, _0802BCC4 @ =gUnknown_2023F20
- adds r0, 0x28
- strb r1, [r0]
-_0802BCB2:
- ldr r1, _0802BCC8 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802BCC0: .4byte gUnknown_2023E82
-_0802BCC4: .4byte gUnknown_2023F20
-_0802BCC8: .4byte gUnknown_2023D74
- thumb_func_end atkC8_sethail
-
- thumb_func_start atkC9_jumpifattackandspecialattackcannotfall
-atkC9_jumpifattackandspecialattackcannotfall: @ 802BCCC
- push {r4,lr}
- ldr r2, _0802BD10 @ =gBattleMons
- ldr r0, _0802BD14 @ =gBattlerTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- adds r3, r2, 0
- cmp r0, 0
- bne _0802BD20
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bne _0802BD20
- ldr r0, _0802BD18 @ =gUnknown_2023E82
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- beq _0802BD20
- ldr r3, _0802BD1C @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802BD4C
- .align 2, 0
-_0802BD10: .4byte gBattleMons
-_0802BD14: .4byte gBattlerTarget
-_0802BD18: .4byte gUnknown_2023E82
-_0802BD1C: .4byte gUnknown_2023D74
-_0802BD20:
- ldr r4, _0802BD54 @ =gActiveBattler
- ldr r0, _0802BD58 @ =sBattler_AI
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r2, _0802BD5C @ =gBattleMoveDamage
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- str r0, [r2]
- ldr r1, _0802BD60 @ =0x00007fff
- movs r0, 0
- bl EmitHealthBarUpdate
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r1, _0802BD64 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802BD4C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BD54: .4byte gActiveBattler
-_0802BD58: .4byte sBattler_AI
-_0802BD5C: .4byte gBattleMoveDamage
-_0802BD60: .4byte 0x00007fff
-_0802BD64: .4byte gUnknown_2023D74
- thumb_func_end atkC9_jumpifattackandspecialattackcannotfall
-
- thumb_func_start atkCA_setforcedtarget
-atkCA_setforcedtarget: @ 802BD68
- push {r4,r5,lr}
- ldr r4, _0802BDA8 @ =sBattler_AI
- ldrb r0, [r4]
- bl GetBattlerSide
- ldr r5, _0802BDAC @ =gSideTimers
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r0, 0x1
- strb r0, [r1, 0x8]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r4]
- strb r0, [r1, 0x9]
- ldr r1, _0802BDB0 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BDA8: .4byte sBattler_AI
-_0802BDAC: .4byte gSideTimers
-_0802BDB0: .4byte gUnknown_2023D74
- thumb_func_end atkCA_setforcedtarget
-
- thumb_func_start atkCB_setcharge
-atkCB_setcharge: @ 802BDB4
- push {r4,lr}
- ldr r0, _0802BE08 @ =gStatuses3
- ldr r3, _0802BE0C @ =sBattler_AI
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 2
- orrs r0, r2
- str r0, [r1]
- ldr r4, _0802BE10 @ =gDisableStructs
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x12]
- movs r1, 0x10
- negs r1, r1
- ands r1, r2
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0, 0x12]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x12]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x12]
- ldr r1, _0802BE14 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BE08: .4byte gStatuses3
-_0802BE0C: .4byte sBattler_AI
-_0802BE10: .4byte gDisableStructs
-_0802BE14: .4byte gUnknown_2023D74
- thumb_func_end atkCB_setcharge
-
- thumb_func_start atkCC_callterrainattack
-atkCC_callterrainattack: @ 802BE18
- push {r4,lr}
- ldr r2, _0802BE68 @ =gUnknown_2023DD0
- ldr r0, [r2]
- ldr r1, _0802BE6C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _0802BE70 @ =gCurrentMove
- ldr r1, _0802BE74 @ =gUnknown_825081C
- ldr r0, _0802BE78 @ =gUnknown_2022B50
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0
- bl GetMoveTarget
- ldr r1, _0802BE7C @ =gBattlerTarget
- strb r0, [r1]
- ldr r3, _0802BE80 @ =gUnknown_81D65A8
- ldr r2, _0802BE84 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- bl BattleScriptPush
- ldr r1, _0802BE88 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BE68: .4byte gUnknown_2023DD0
-_0802BE6C: .4byte 0xfffffbff
-_0802BE70: .4byte gCurrentMove
-_0802BE74: .4byte gUnknown_825081C
-_0802BE78: .4byte gUnknown_2022B50
-_0802BE7C: .4byte gBattlerTarget
-_0802BE80: .4byte gUnknown_81D65A8
-_0802BE84: .4byte gBattleMoves
-_0802BE88: .4byte gUnknown_2023D74
- thumb_func_end atkCC_callterrainattack
-
- thumb_func_start atkCD_cureifburnedparalysedorpoisoned
-atkCD_cureifburnedparalysedorpoisoned: @ 802BE8C
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r1, _0802BED8 @ =gBattleMons
- ldr r3, _0802BEDC @ =sBattler_AI
- ldrb r0, [r3]
- movs r6, 0x58
- muls r0, r6
- adds r5, r1, 0
- adds r5, 0x4C
- adds r2, r0, r5
- ldr r0, [r2]
- movs r1, 0xD8
- ands r0, r1
- cmp r0, 0
- beq _0802BEE8
- movs r0, 0
- str r0, [r2]
- ldr r1, _0802BEE0 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r4, _0802BEE4 @ =gActiveBattler
- ldrb r0, [r3]
- strb r0, [r4]
- ldrb r0, [r4]
- muls r0, r6
- adds r0, r5
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetMonData
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _0802BF02
- .align 2, 0
-_0802BED8: .4byte gBattleMons
-_0802BEDC: .4byte sBattler_AI
-_0802BEE0: .4byte gUnknown_2023D74
-_0802BEE4: .4byte gActiveBattler
-_0802BEE8:
- ldr r3, _0802BF0C @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802BF02:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BF0C: .4byte gUnknown_2023D74
- thumb_func_end atkCD_cureifburnedparalysedorpoisoned
-
- thumb_func_start atkCE_settorment
-atkCE_settorment: @ 802BF10
- push {lr}
- ldr r1, _0802BF48 @ =gBattleMons
- ldr r0, _0802BF4C @ =gBattlerTarget
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 24
- cmp r1, 0
- bge _0802BF54
- ldr r3, _0802BF50 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802BF60
- .align 2, 0
-_0802BF48: .4byte gBattleMons
-_0802BF4C: .4byte gBattlerTarget
-_0802BF50: .4byte gUnknown_2023D74
-_0802BF54:
- orrs r1, r2
- str r1, [r0]
- ldr r1, _0802BF64 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802BF60:
- pop {r0}
- bx r0
- .align 2, 0
-_0802BF64: .4byte gUnknown_2023D74
- thumb_func_end atkCE_settorment
-
- thumb_func_start atkCF_jumpifnodamage
-atkCF_jumpifnodamage: @ 802BF68
- push {lr}
- ldr r2, _0802BF94 @ =gUnknown_2023E8C
- ldr r0, _0802BF98 @ =sBattler_AI
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0802BF88
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802BFA0
-_0802BF88:
- ldr r1, _0802BF9C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802BFBA
- .align 2, 0
-_0802BF94: .4byte gUnknown_2023E8C
-_0802BF98: .4byte sBattler_AI
-_0802BF9C: .4byte gUnknown_2023D74
-_0802BFA0:
- ldr r3, _0802BFC0 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802BFBA:
- pop {r0}
- bx r0
- .align 2, 0
-_0802BFC0: .4byte gUnknown_2023D74
- thumb_func_end atkCF_jumpifnodamage
-
- thumb_func_start atkD0_settaunt
-atkD0_settaunt: @ 802BFC4
- push {r4,lr}
- ldr r4, _0802C008 @ =gDisableStructs
- ldr r3, _0802C00C @ =gBattlerTarget
- ldrb r0, [r3]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r2, r1, r4
- ldrb r1, [r2, 0x13]
- lsls r0, r1, 28
- cmp r0, 0
- bne _0802C014
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x13]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x13]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x13]
- ldr r1, _0802C010 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802C02E
- .align 2, 0
-_0802C008: .4byte gDisableStructs
-_0802C00C: .4byte gBattlerTarget
-_0802C010: .4byte gUnknown_2023D74
-_0802C014:
- ldr r3, _0802C034 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802C02E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C034: .4byte gUnknown_2023D74
- thumb_func_end atkD0_settaunt
-
- thumb_func_start atkD1_trysethelpinghand
-atkD1_trysethelpinghand: @ 802C038
- push {r4,lr}
- ldr r4, _0802C0A0 @ =sBattler_AI
- ldrb r0, [r4]
- bl GetBattlerPosition
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerAtPosition
- ldr r3, _0802C0A4 @ =gBattlerTarget
- strb r0, [r3]
- ldr r0, _0802C0A8 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802C0BC
- ldr r0, _0802C0AC @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldr r2, _0802C0B0 @ =gBitTable
- ldrb r3, [r3]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802C0BC
- ldr r1, _0802C0B4 @ =gUnknown_2023E8C
- ldrb r0, [r4]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- blt _0802C0BC
- lsls r0, r3, 4
- adds r2, r0, r1
- ldrb r1, [r2]
- lsls r0, r1, 28
- cmp r0, 0
- blt _0802C0BC
- movs r0, 0x8
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802C0B8 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802C0D6
- .align 2, 0
-_0802C0A0: .4byte sBattler_AI
-_0802C0A4: .4byte gBattlerTarget
-_0802C0A8: .4byte gBattleTypeFlags
-_0802C0AC: .4byte gAbsentBattlerFlags
-_0802C0B0: .4byte gBitTable
-_0802C0B4: .4byte gUnknown_2023E8C
-_0802C0B8: .4byte gUnknown_2023D74
-_0802C0BC:
- ldr r3, _0802C0DC @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802C0D6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C0DC: .4byte gUnknown_2023D74
- thumb_func_end atkD1_trysethelpinghand
-
- thumb_func_start sub_802C0E0
-sub_802C0E0: @ 802C0E0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, _0802C1FC @ =gBattleTypeFlags
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- bne _0802C1DE
- ldr r0, _0802C200 @ =sBattler_AI
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0802C120
- ldr r0, [r4]
- ldr r1, _0802C204 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0802C120
- ldr r0, _0802C208 @ =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _0802C1DE
-_0802C120:
- ldr r6, _0802C200 @ =sBattler_AI
- ldrb r0, [r6]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r7, _0802C20C @ =gBattlerTarget
- ldrb r0, [r7]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0802C1FC @ =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, _0802C204 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0802C18A
- ldr r0, _0802C208 @ =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0802C18A
- ldr r0, _0802C210 @ =gUnknown_2023F20
- adds r2, r0, 0
- adds r2, 0x29
- adds r0, r4, r2
- ldrb r1, [r0]
- ldr r4, _0802C214 @ =gBitTable
- ldr r3, _0802C218 @ =gBattlerPartyIndexes
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802C1DE
- adds r0, r5, r2
- ldrb r1, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802C1DE
-_0802C18A:
- ldr r0, _0802C21C @ =gBattleMons
- mov r8, r0
- ldr r1, _0802C200 @ =sBattler_AI
- ldrb r4, [r1]
- movs r5, 0x58
- adds r0, r4, 0
- muls r0, r5
- add r0, r8
- mov r9, r0
- ldrh r3, [r0, 0x2E]
- adds r1, r3, 0
- cmp r1, 0
- bne _0802C1B2
- ldr r0, _0802C20C @ =gBattlerTarget
- ldrb r0, [r0]
- muls r0, r5
- add r0, r8
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- beq _0802C1DE
-_0802C1B2:
- cmp r1, 0xAF
- beq _0802C1DE
- ldr r7, _0802C20C @ =gBattlerTarget
- ldrb r0, [r7]
- muls r0, r5
- mov r2, r8
- adds r1, r0, r2
- ldrh r2, [r1, 0x2E]
- cmp r2, 0xAF
- beq _0802C1DE
- adds r0, r3, 0
- subs r0, 0x79
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bls _0802C1DE
- adds r0, r2, 0
- subs r0, 0x79
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bhi _0802C224
-_0802C1DE:
- ldr r3, _0802C220 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802C37A
- .align 2, 0
-_0802C1FC: .4byte gBattleTypeFlags
-_0802C200: .4byte sBattler_AI
-_0802C204: .4byte 0x00000902
-_0802C208: .4byte gTrainerBattleOpponent_A
-_0802C20C: .4byte gBattlerTarget
-_0802C210: .4byte gUnknown_2023F20
-_0802C214: .4byte gBitTable
-_0802C218: .4byte gBattlerPartyIndexes
-_0802C21C: .4byte gBattleMons
-_0802C220: .4byte gUnknown_2023D74
-_0802C224:
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3C
- bne _0802C258
- ldr r1, _0802C24C @ =gUnknown_2023D74
- ldr r0, _0802C250 @ =gUnknown_81D948E
- str r0, [r1]
- ldr r1, _0802C254 @ =gLastUsedAbility
- ldrb r0, [r7]
- muls r0, r5
- add r0, r8
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- ldrb r1, [r1]
- bl sub_80C71D0
- b _0802C37A
- .align 2, 0
-_0802C24C: .4byte gUnknown_2023D74
-_0802C250: .4byte gUnknown_81D948E
-_0802C254: .4byte gLastUsedAbility
-_0802C258:
- ldr r3, _0802C344 @ =gBattleStruct
- mov r10, r3
- lsls r0, r4, 1
- adds r0, 0xD0
- ldr r1, [r3]
- adds r6, r1, r0
- mov r0, r9
- ldrh r0, [r0, 0x2E]
- mov r9, r0
- strh r2, [r6]
- ldr r1, _0802C348 @ =sBattler_AI
- ldrb r0, [r1]
- muls r0, r5
- add r0, r8
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- muls r0, r5
- add r0, r8
- mov r2, r9
- strh r2, [r0, 0x2E]
- ldr r4, _0802C34C @ =gActiveBattler
- ldr r3, _0802C348 @ =sBattler_AI
- ldrb r0, [r3]
- strb r0, [r4]
- str r6, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl EmitSetMonData
- ldr r1, _0802C348 @ =sBattler_AI
- ldrb r0, [r1]
- bl MarkBufferBankForExecution
- ldrb r0, [r7]
- strb r0, [r4]
- ldrb r0, [r7]
- muls r0, r5
- mov r1, r8
- adds r1, 0x2E
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl EmitSetMonData
- ldrb r0, [r7]
- bl MarkBufferBankForExecution
- ldrb r0, [r7]
- mov r2, r10
- ldr r1, [r2]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC8
- movs r3, 0
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC9
- strb r3, [r0]
- ldr r1, _0802C348 @ =sBattler_AI
- ldrb r0, [r1]
- ldr r1, [r2]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC8
- strb r3, [r0]
- ldr r2, _0802C348 @ =sBattler_AI
- ldrb r0, [r2]
- mov r3, r10
- ldr r1, [r3]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC9
- movs r1, 0
- strb r1, [r0]
- ldr r1, _0802C350 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r1, _0802C354 @ =gBattleTextBuff1
- movs r3, 0xFD
- strb r3, [r1]
- movs r2, 0xA
- strb r2, [r1, 0x1]
- ldrh r0, [r6]
- strb r0, [r1, 0x2]
- ldrh r0, [r6]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802C358 @ =gBattleTextBuff2
- strb r3, [r1]
- strb r2, [r1, 0x1]
- mov r2, r9
- strb r2, [r1, 0x2]
- mov r3, r9
- lsrs r0, r3, 8
- strb r0, [r1, 0x3]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x4]
- cmp r3, 0
- beq _0802C360
- ldrh r0, [r6]
- cmp r0, 0
- beq _0802C374
- ldr r1, _0802C35C @ =gUnknown_2023E82
- movs r0, 0x2
- b _0802C378
- .align 2, 0
-_0802C344: .4byte gBattleStruct
-_0802C348: .4byte sBattler_AI
-_0802C34C: .4byte gActiveBattler
-_0802C350: .4byte gUnknown_2023D74
-_0802C354: .4byte gBattleTextBuff1
-_0802C358: .4byte gBattleTextBuff2
-_0802C35C: .4byte gUnknown_2023E82
-_0802C360:
- ldrh r0, [r6]
- cmp r0, 0
- beq _0802C374
- ldr r0, _0802C370 @ =gUnknown_2023E82
- movs r1, 0
- strb r1, [r0, 0x5]
- b _0802C37A
- .align 2, 0
-_0802C370: .4byte gUnknown_2023E82
-_0802C374:
- ldr r1, _0802C38C @ =gUnknown_2023E82
- movs r0, 0x1
-_0802C378:
- strb r0, [r1, 0x5]
-_0802C37A:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C38C: .4byte gUnknown_2023E82
- thumb_func_end sub_802C0E0
-
- thumb_func_start atkD3_trycopyability
-atkD3_trycopyability: @ 802C390
- push {r4,lr}
- ldr r3, _0802C3D0 @ =gBattleMons
- ldr r4, _0802C3D4 @ =gBattlerTarget
- ldrb r0, [r4]
- movs r2, 0x58
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r1, [r0]
- adds r0, r1, 0
- cmp r0, 0
- beq _0802C3E4
- cmp r0, 0x19
- beq _0802C3E4
- ldr r0, _0802C3D8 @ =sBattler_AI
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- strb r1, [r0]
- ldr r1, _0802C3DC @ =gLastUsedAbility
- ldrb r0, [r4]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _0802C3E0 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802C3FE
- .align 2, 0
-_0802C3D0: .4byte gBattleMons
-_0802C3D4: .4byte gBattlerTarget
-_0802C3D8: .4byte sBattler_AI
-_0802C3DC: .4byte gLastUsedAbility
-_0802C3E0: .4byte gUnknown_2023D74
-_0802C3E4:
- ldr r3, _0802C404 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802C3FE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C404: .4byte gUnknown_2023D74
- thumb_func_end atkD3_trycopyability
-
- thumb_func_start atkD4_trywish
-atkD4_trywish: @ 802C408
- push {r4-r7,lr}
- ldr r7, _0802C41C @ =gUnknown_2023D74
- ldr r2, [r7]
- ldrb r3, [r2, 0x1]
- cmp r3, 0
- beq _0802C420
- cmp r3, 0x1
- beq _0802C458
- b _0802C4D4
- .align 2, 0
-_0802C41C: .4byte gUnknown_2023D74
-_0802C420:
- ldr r1, _0802C44C @ =gUnknown_2023F20
- ldr r4, _0802C450 @ =sBattler_AI
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r5, [r4]
- adds r3, r0, r5
- ldrb r0, [r3]
- cmp r0, 0
- bne _0802C4A4
- movs r0, 0x2
- strb r0, [r3]
- ldrb r0, [r4]
- adds r1, 0x24
- adds r1, r0, r1
- ldr r2, _0802C454 @ =gBattlerPartyIndexes
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r0, [r7]
- adds r0, 0x6
- b _0802C4D2
- .align 2, 0
-_0802C44C: .4byte gUnknown_2023F20
-_0802C450: .4byte sBattler_AI
-_0802C454: .4byte gBattlerPartyIndexes
-_0802C458:
- ldr r1, _0802C4BC @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r4, _0802C4C0 @ =gBattlerTarget
- ldrb r0, [r4]
- strb r0, [r1, 0x2]
- ldr r0, _0802C4C4 @ =gUnknown_2023F20
- adds r0, 0x24
- ldrb r5, [r4]
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802C4C8 @ =gBattleMoveDamage
- ldr r6, _0802C4CC @ =gBattleMons
- ldrb r0, [r4]
- movs r5, 0x58
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _0802C490
- str r3, [r1]
-_0802C490:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r6
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- bne _0802C4D0
-_0802C4A4:
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r7]
- b _0802C4D4
- .align 2, 0
-_0802C4BC: .4byte gBattleTextBuff1
-_0802C4C0: .4byte gBattlerTarget
-_0802C4C4: .4byte gUnknown_2023F20
-_0802C4C8: .4byte gBattleMoveDamage
-_0802C4CC: .4byte gBattleMons
-_0802C4D0:
- adds r0, r2, 0x6
-_0802C4D2:
- str r0, [r7]
-_0802C4D4:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atkD4_trywish
-
- thumb_func_start atkD5_trysetroots
-atkD5_trysetroots: @ 802C4DC
- push {lr}
- ldr r1, _0802C514 @ =gStatuses3
- ldr r0, _0802C518 @ =sBattler_AI
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 3
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0802C520
- ldr r3, _0802C51C @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802C52C
- .align 2, 0
-_0802C514: .4byte gStatuses3
-_0802C518: .4byte sBattler_AI
-_0802C51C: .4byte gUnknown_2023D74
-_0802C520:
- orrs r1, r3
- str r1, [r2]
- ldr r1, _0802C530 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802C52C:
- pop {r0}
- bx r0
- .align 2, 0
-_0802C530: .4byte gUnknown_2023D74
- thumb_func_end atkD5_trysetroots
-
- thumb_func_start atkD6_doubledamagedealtifdamaged
-atkD6_doubledamagedealtifdamaged: @ 802C534
- push {lr}
- ldr r3, _0802C580 @ =gUnknown_2023E8C
- ldr r0, _0802C584 @ =sBattler_AI
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r0, r3, 0x4
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802C554
- adds r0, r2, r3
- ldr r1, _0802C588 @ =gBattlerTarget
- ldrb r0, [r0, 0xC]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0802C56C
-_0802C554:
- adds r0, r3, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802C572
- adds r0, r2, r3
- ldr r1, _0802C588 @ =gBattlerTarget
- ldrb r0, [r0, 0xD]
- ldrb r1, [r1]
- cmp r0, r1
- bne _0802C572
-_0802C56C:
- ldr r1, _0802C58C @ =gBattleScripting
- movs r0, 0x2
- strb r0, [r1, 0xE]
-_0802C572:
- ldr r1, _0802C590 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802C580: .4byte gUnknown_2023E8C
-_0802C584: .4byte sBattler_AI
-_0802C588: .4byte gBattlerTarget
-_0802C58C: .4byte gBattleScripting
-_0802C590: .4byte gUnknown_2023D74
- thumb_func_end atkD6_doubledamagedealtifdamaged
-
- thumb_func_start atkD7_setyawn
-atkD7_setyawn: @ 802C594
- push {r4,lr}
- ldr r1, _0802C5D8 @ =gStatuses3
- ldr r0, _0802C5DC @ =gBattlerTarget
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r4, r0, r1
- ldr r2, [r4]
- movs r0, 0xC0
- lsls r0, 5
- ands r0, r2
- cmp r0, 0
- bne _0802C5BC
- ldr r1, _0802C5E0 @ =gBattleMons
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x4C
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802C5E8
-_0802C5BC:
- ldr r3, _0802C5E4 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802C5F8
- .align 2, 0
-_0802C5D8: .4byte gStatuses3
-_0802C5DC: .4byte gBattlerTarget
-_0802C5E0: .4byte gBattleMons
-_0802C5E4: .4byte gUnknown_2023D74
-_0802C5E8:
- movs r0, 0x80
- lsls r0, 5
- orrs r2, r0
- str r2, [r4]
- ldr r1, _0802C600 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802C5F8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C600: .4byte gUnknown_2023D74
- thumb_func_end atkD7_setyawn
-
- thumb_func_start atkD8_setdamagetohealthdifference
-atkD8_setdamagetohealthdifference: @ 802C604
- push {lr}
- ldr r2, _0802C640 @ =gBattleMons
- ldr r0, _0802C644 @ =gBattlerTarget
- ldrb r0, [r0]
- movs r1, 0x58
- muls r0, r1
- adds r3, r0, r2
- ldr r0, _0802C648 @ =sBattler_AI
- ldrb r0, [r0]
- muls r0, r1
- adds r1, r0, r2
- ldrh r0, [r3, 0x28]
- ldrh r2, [r1, 0x28]
- cmp r0, r2
- bhi _0802C650
- ldr r3, _0802C64C @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802C662
- .align 2, 0
-_0802C640: .4byte gBattleMons
-_0802C644: .4byte gBattlerTarget
-_0802C648: .4byte sBattler_AI
-_0802C64C: .4byte gUnknown_2023D74
-_0802C650:
- ldr r2, _0802C668 @ =gBattleMoveDamage
- ldrh r0, [r3, 0x28]
- ldrh r1, [r1, 0x28]
- subs r0, r1
- str r0, [r2]
- ldr r1, _0802C66C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802C662:
- pop {r0}
- bx r0
- .align 2, 0
-_0802C668: .4byte gBattleMoveDamage
-_0802C66C: .4byte gUnknown_2023D74
- thumb_func_end atkD8_setdamagetohealthdifference
-
- thumb_func_start atkD9_scaledamagebyhealthratio
-atkD9_scaledamagebyhealthratio: @ 802C670
- push {r4,lr}
- ldr r4, _0802C6BC @ =gDynamicBasePower
- ldrh r0, [r4]
- cmp r0, 0
- bne _0802C6AC
- ldr r2, _0802C6C0 @ =gBattleMoves
- ldr r0, _0802C6C4 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r3, [r0, 0x1]
- ldr r2, _0802C6C8 @ =gBattleMons
- ldr r0, _0802C6CC @ =sBattler_AI
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r0, [r1, 0x28]
- muls r0, r3
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- strh r0, [r4]
- lsls r0, 16
- cmp r0, 0
- bne _0802C6AC
- movs r0, 0x1
- strh r0, [r4]
-_0802C6AC:
- ldr r1, _0802C6D0 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C6BC: .4byte gDynamicBasePower
-_0802C6C0: .4byte gBattleMoves
-_0802C6C4: .4byte gCurrentMove
-_0802C6C8: .4byte gBattleMons
-_0802C6CC: .4byte sBattler_AI
-_0802C6D0: .4byte gUnknown_2023D74
- thumb_func_end atkD9_scaledamagebyhealthratio
-
- thumb_func_start atkDA_tryswapabilities
-atkDA_tryswapabilities: @ 802C6D4
- push {r4-r6,lr}
- ldr r5, _0802C738 @ =gBattleMons
- ldr r0, _0802C73C @ =sBattler_AI
- ldrb r0, [r0]
- movs r4, 0x58
- muls r0, r4
- adds r0, r5
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r1, [r2]
- cmp r1, 0
- bne _0802C6FC
- ldr r0, _0802C740 @ =gBattlerTarget
- ldrb r0, [r0]
- muls r0, r4
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802C71C
-_0802C6FC:
- cmp r1, 0x19
- beq _0802C71C
- ldr r6, _0802C740 @ =gBattlerTarget
- ldrb r0, [r6]
- muls r0, r4
- adds r0, r5
- adds r0, 0x20
- ldrb r3, [r0]
- cmp r3, 0x19
- beq _0802C71C
- ldr r0, _0802C744 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0802C74C
-_0802C71C:
- ldr r3, _0802C748 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802C762
- .align 2, 0
-_0802C738: .4byte gBattleMons
-_0802C73C: .4byte sBattler_AI
-_0802C740: .4byte gBattlerTarget
-_0802C744: .4byte gMoveResultFlags
-_0802C748: .4byte gUnknown_2023D74
-_0802C74C:
- ldrb r1, [r2]
- strb r3, [r2]
- ldrb r0, [r6]
- muls r0, r4
- adds r0, r5
- adds r0, 0x20
- strb r1, [r0]
- ldr r1, _0802C768 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802C762:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C768: .4byte gUnknown_2023D74
- thumb_func_end atkDA_tryswapabilities
-
- thumb_func_start atkDB_tryimprision
-atkDB_tryimprision: @ 802C76C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r1, _0802C78C @ =gStatuses3
- ldr r4, _0802C790 @ =sBattler_AI
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0802C7BC
- b _0802C83E
- .align 2, 0
-_0802C78C: .4byte gStatuses3
-_0802C790: .4byte sBattler_AI
-_0802C794:
- ldr r0, _0802C7B4 @ =gStatuses3
- mov r2, r9
- ldrb r1, [r2]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 6
- orrs r0, r2
- str r0, [r1]
- ldr r1, _0802C7B8 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802C836
- .align 2, 0
-_0802C7B4: .4byte gStatuses3
-_0802C7B8: .4byte gUnknown_2023D74
-_0802C7BC:
- adds r0, r2, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrb r0, [r4]
- bl PressurePPLoseOnUsingImprision
- movs r6, 0
- b _0802C82E
-_0802C7D2:
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r8, r0
- beq _0802C828
- movs r4, 0
- ldr r7, _0802C864 @ =sBattler_AI
- mov r9, r7
- ldr r0, _0802C868 @ =gBattleMons
- mov r12, r0
- mov r1, r9
- ldrb r0, [r1]
- mov r2, r12
- adds r2, 0xC
- movs r1, 0x58
- muls r0, r1
- adds r3, r0, r2
- adds r5, r6, 0
- muls r5, r1
-_0802C7FC:
- movs r2, 0
- ldrh r1, [r3]
- mov r0, r12
- adds r0, 0xC
- adds r0, r5, r0
-_0802C806:
- ldrh r7, [r0]
- cmp r1, r7
- bne _0802C810
- cmp r1, 0
- bne _0802C818
-_0802C810:
- adds r0, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- ble _0802C806
-_0802C818:
- cmp r2, 0x4
- bne _0802C824
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0802C7FC
-_0802C824:
- cmp r4, 0x4
- bne _0802C794
-_0802C828:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0802C82E:
- ldr r0, _0802C86C @ =gBattlersCount
- ldrb r0, [r0]
- cmp r6, r0
- bcc _0802C7D2
-_0802C836:
- ldr r0, _0802C86C @ =gBattlersCount
- ldrb r0, [r0]
- cmp r6, r0
- bne _0802C858
-_0802C83E:
- ldr r3, _0802C870 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802C858:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C864: .4byte sBattler_AI
-_0802C868: .4byte gBattleMons
-_0802C86C: .4byte gBattlersCount
-_0802C870: .4byte gUnknown_2023D74
- thumb_func_end atkDB_tryimprision
-
- thumb_func_start atkDC_trysetgrudge
-atkDC_trysetgrudge: @ 802C874
- push {lr}
- ldr r1, _0802C8AC @ =gStatuses3
- ldr r0, _0802C8B0 @ =sBattler_AI
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 7
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0802C8B8
- ldr r3, _0802C8B4 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802C8C4
- .align 2, 0
-_0802C8AC: .4byte gStatuses3
-_0802C8B0: .4byte sBattler_AI
-_0802C8B4: .4byte gUnknown_2023D74
-_0802C8B8:
- orrs r1, r3
- str r1, [r2]
- ldr r1, _0802C8C8 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802C8C4:
- pop {r0}
- bx r0
- .align 2, 0
-_0802C8C8: .4byte gUnknown_2023D74
- thumb_func_end atkDC_trysetgrudge
-
- thumb_func_start atkDD_weightdamagecalculation
-atkDD_weightdamagecalculation: @ 802C8CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r2, _0802C930 @ =gUnknown_8250830
- ldrh r0, [r2]
- ldr r1, _0802C934 @ =0x0000ffff
- cmp r0, r1
- beq _0802C944
- adds r6, r2, 0
- ldr r0, _0802C938 @ =gBattleMons
- mov r8, r0
- adds r7, r1, 0
- adds r4, r6, 0
-_0802C8E8:
- ldr r0, _0802C93C @ =gBattlerTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r8
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetPokedexHeightWeight
- ldrh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0802C916
- adds r4, 0x4
- adds r5, 0x2
- ldrh r0, [r4]
- cmp r0, r7
- bne _0802C8E8
-_0802C916:
- lsls r0, r5, 1
- adds r0, r6
- ldrh r1, [r0]
- ldr r0, _0802C934 @ =0x0000ffff
- cmp r1, r0
- beq _0802C944
- ldr r0, _0802C940 @ =gDynamicBasePower
- adds r1, r5, 0x1
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- strh r1, [r0]
- b _0802C94A
- .align 2, 0
-_0802C930: .4byte gUnknown_8250830
-_0802C934: .4byte 0x0000ffff
-_0802C938: .4byte gBattleMons
-_0802C93C: .4byte gBattlerTarget
-_0802C940: .4byte gDynamicBasePower
-_0802C944:
- ldr r1, _0802C95C @ =gDynamicBasePower
- movs r0, 0x78
- strh r0, [r1]
-_0802C94A:
- ldr r1, _0802C960 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C95C: .4byte gDynamicBasePower
-_0802C960: .4byte gUnknown_2023D74
- thumb_func_end atkDD_weightdamagecalculation
-
- thumb_func_start atkDE_asistattackselect
-atkDE_asistattackselect: @ 802C964
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- movs r0, 0
- mov r10, r0
- ldr r0, _0802CA84 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x18
- str r0, [sp, 0x4]
- ldr r0, _0802CA88 @ =sBattler_AI
- ldrb r0, [r0]
- bl GetBattlerPosition
- movs r1, 0x1
- ands r1, r0
- ldr r0, _0802CA8C @ =gPlayerParty
- str r0, [sp]
- cmp r1, 0
- beq _0802C994
- ldr r1, _0802CA90 @ =gEnemyParty
- str r1, [sp]
-_0802C994:
- movs r2, 0
-_0802C996:
- ldr r1, _0802CA94 @ =gBattlerPartyIndexes
- ldr r0, _0802CA88 @ =sBattler_AI
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- adds r1, r2, 0x1
- str r1, [sp, 0x8]
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802CA3C
- movs r0, 0x64
- adds r6, r2, 0
- muls r6, r0
- ldr r0, [sp]
- adds r4, r0, r6
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _0802CA3C
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0802CA3C
- movs r5, 0
- ldr r1, _0802CA98 @ =0x0000ffff
- mov r8, r1
- mov r9, r6
- mov r1, r10
- lsls r0, r1, 1
- ldr r1, [sp, 0x4]
- adds r6, r0, r1
-_0802C9E0:
- movs r7, 0
- adds r1, r5, 0
- adds r1, 0xD
- ldr r0, [sp]
- add r0, r9
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl IsInvalidForSleepTalkOrAssist
- lsls r0, 24
- adds r1, r5, 0x1
- cmp r0, 0
- bne _0802CA36
- ldr r0, _0802CA9C @ =gUnknown_82507E8
- ldrh r2, [r0]
- adds r3, r0, 0
- cmp r2, r8
- beq _0802CA2A
- cmp r4, r2
- beq _0802CA20
- ldr r5, _0802CA98 @ =0x0000ffff
- adds r2, r3, 0
-_0802CA12:
- adds r2, 0x2
- adds r7, 0x1
- ldrh r0, [r2]
- cmp r0, r5
- beq _0802CA2A
- cmp r4, r0
- bne _0802CA12
-_0802CA20:
- lsls r0, r7, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r8
- bne _0802CA36
-_0802CA2A:
- cmp r4, 0
- beq _0802CA36
- strh r4, [r6]
- adds r6, 0x2
- movs r0, 0x1
- add r10, r0
-_0802CA36:
- adds r5, r1, 0
- cmp r5, 0x3
- ble _0802C9E0
-_0802CA3C:
- ldr r2, [sp, 0x8]
- cmp r2, 0x5
- ble _0802C996
- mov r1, r10
- cmp r1, 0
- beq _0802CAB4
- ldr r2, _0802CAA0 @ =gUnknown_2023DD0
- ldr r0, [r2]
- ldr r1, _0802CAA4 @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _0802CAA8 @ =gUnknown_2023D4E
- bl Random
- movs r1, 0xFF
- ands r1, r0
- mov r0, r10
- muls r0, r1
- asrs r0, 8
- lsls r0, 1
- ldr r1, [sp, 0x4]
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0
- bl GetMoveTarget
- ldr r1, _0802CAAC @ =gBattlerTarget
- strb r0, [r1]
- ldr r1, _0802CAB0 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802CACE
- .align 2, 0
-_0802CA84: .4byte gBattleStruct
-_0802CA88: .4byte sBattler_AI
-_0802CA8C: .4byte gPlayerParty
-_0802CA90: .4byte gEnemyParty
-_0802CA94: .4byte gBattlerPartyIndexes
-_0802CA98: .4byte 0x0000ffff
-_0802CA9C: .4byte gUnknown_82507E8
-_0802CAA0: .4byte gUnknown_2023DD0
-_0802CAA4: .4byte 0xfffffbff
-_0802CAA8: .4byte gUnknown_2023D4E
-_0802CAAC: .4byte gBattlerTarget
-_0802CAB0: .4byte gUnknown_2023D74
-_0802CAB4:
- ldr r3, _0802CAE0 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802CACE:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802CAE0: .4byte gUnknown_2023D74
- thumb_func_end atkDE_asistattackselect
-
- thumb_func_start atkDF_trysetmagiccoat
-atkDF_trysetmagiccoat: @ 802CAE4
- push {lr}
- ldr r1, _0802CB2C @ =gBattlerTarget
- ldr r3, _0802CB30 @ =sBattler_AI
- ldrb r0, [r3]
- strb r0, [r1]
- ldr r2, _0802CB34 @ =gUnknown_2023ECC
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0802CB38 @ =gUnknown_2023BE2
- ldrb r1, [r0]
- ldr r0, _0802CB3C @ =gBattlersCount
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _0802CB44
- ldr r3, _0802CB40 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802CB5C
- .align 2, 0
-_0802CB2C: .4byte gBattlerTarget
-_0802CB30: .4byte sBattler_AI
-_0802CB34: .4byte gUnknown_2023ECC
-_0802CB38: .4byte gUnknown_2023BE2
-_0802CB3C: .4byte gBattlersCount
-_0802CB40: .4byte gUnknown_2023D74
-_0802CB44:
- ldr r0, _0802CB60 @ =gUnknown_2023E8C
- ldrb r1, [r3]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x10
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _0802CB64 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802CB5C:
- pop {r0}
- bx r0
- .align 2, 0
-_0802CB60: .4byte gUnknown_2023E8C
-_0802CB64: .4byte gUnknown_2023D74
- thumb_func_end atkDF_trysetmagiccoat
-
- thumb_func_start atkE0_trysetsnatch
-atkE0_trysetsnatch: @ 802CB68
- push {lr}
- ldr r2, _0802CBAC @ =gUnknown_2023ECC
- ldr r3, _0802CBB0 @ =sBattler_AI
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0802CBB4 @ =gUnknown_2023BE2
- ldrb r1, [r0]
- ldr r0, _0802CBB8 @ =gBattlersCount
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _0802CBC0
- ldr r3, _0802CBBC @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802CBD6
- .align 2, 0
-_0802CBAC: .4byte gUnknown_2023ECC
-_0802CBB0: .4byte sBattler_AI
-_0802CBB4: .4byte gUnknown_2023BE2
-_0802CBB8: .4byte gBattlersCount
-_0802CBBC: .4byte gUnknown_2023D74
-_0802CBC0:
- ldr r0, _0802CBDC @ =gUnknown_2023E8C
- ldrb r1, [r3]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _0802CBE0 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802CBD6:
- pop {r0}
- bx r0
- .align 2, 0
-_0802CBDC: .4byte gUnknown_2023E8C
-_0802CBE0: .4byte gUnknown_2023D74
- thumb_func_end atkE0_trysetsnatch
-
- thumb_func_start atkE1_trygetintimidatetarget
-atkE1_trygetintimidatetarget: @ 802CBE4
- push {r4-r6,lr}
- ldr r4, _0802CC88 @ =gBattleScripting
- ldr r0, _0802CC8C @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xD8
- ldrb r0, [r0]
- strb r0, [r4, 0x17]
- ldrb r0, [r4, 0x17]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _0802CC90 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x9
- strb r0, [r2, 0x1]
- ldr r3, _0802CC94 @ =gBattleMons
- ldrb r1, [r4, 0x17]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r2, _0802CC98 @ =gBattlerTarget
- ldr r1, _0802CC9C @ =gBattlersCount
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0802CC6A
- adds r4, r2, 0
- ldr r6, _0802CCA0 @ =gBitTable
-_0802CC2A:
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- beq _0802CC4C
- ldr r0, _0802CCA4 @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ands r1, r0
- ldr r2, _0802CC9C @ =gBattlersCount
- cmp r1, 0
- beq _0802CC60
-_0802CC4C:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _0802CC9C @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- adds r2, r1, 0
- ldrb r1, [r2]
- cmp r0, r1
- bcc _0802CC2A
-_0802CC60:
- ldr r0, _0802CC98 @ =gBattlerTarget
- ldrb r0, [r0]
- ldrb r2, [r2]
- cmp r0, r2
- bcc _0802CCAC
-_0802CC6A:
- ldr r3, _0802CCA8 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802CCB4
- .align 2, 0
-_0802CC88: .4byte gBattleScripting
-_0802CC8C: .4byte gBattleStruct
-_0802CC90: .4byte gBattleTextBuff1
-_0802CC94: .4byte gBattleMons
-_0802CC98: .4byte gBattlerTarget
-_0802CC9C: .4byte gBattlersCount
-_0802CCA0: .4byte gBitTable
-_0802CCA4: .4byte gAbsentBattlerFlags
-_0802CCA8: .4byte gUnknown_2023D74
-_0802CCAC:
- ldr r1, _0802CCBC @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802CCB4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802CCBC: .4byte gUnknown_2023D74
- thumb_func_end atkE1_trygetintimidatetarget
-
- thumb_func_start atkE2_switchoutabilities
-atkE2_switchoutabilities: @ 802CCC0
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r5, _0802CD28 @ =gUnknown_2023D74
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r4, _0802CD2C @ =gActiveBattler
- strb r0, [r4]
- ldr r3, _0802CD30 @ =gBattleMons
- ldrb r0, [r4]
- movs r6, 0x58
- adds r1, r0, 0
- muls r1, r6
- adds r0, r1, r3
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1E
- bne _0802CD1A
- adds r3, 0x4C
- adds r1, r3
- movs r0, 0
- str r0, [r1]
- ldr r2, _0802CD34 @ =gBitTable
- ldrb r1, [r4]
- ldr r0, _0802CD38 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, r1, r0
- adds r0, 0x58
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0]
- adds r0, r1, 0
- muls r0, r6
- adds r0, r3
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r3, 0x4
- bl EmitSetMonData
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_0802CD1A:
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802CD28: .4byte gUnknown_2023D74
-_0802CD2C: .4byte gActiveBattler
-_0802CD30: .4byte gBattleMons
-_0802CD34: .4byte gBitTable
-_0802CD38: .4byte gBattleStruct
- thumb_func_end atkE2_switchoutabilities
-
- thumb_func_start atkE3_jumpifhasnohp
-atkE3_jumpifhasnohp: @ 802CD3C
- push {r4,lr}
- ldr r4, _0802CD78 @ =gUnknown_2023D74
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8016E24
- ldr r1, _0802CD7C @ =gActiveBattler
- strb r0, [r1]
- ldr r2, _0802CD80 @ =gBattleMons
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0802CD84
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0802CD8A
- .align 2, 0
-_0802CD78: .4byte gUnknown_2023D74
-_0802CD7C: .4byte gActiveBattler
-_0802CD80: .4byte gBattleMons
-_0802CD84:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_0802CD8A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atkE3_jumpifhasnohp
-
- thumb_func_start atkE4_getsecretpowereffect
-atkE4_getsecretpowereffect: @ 802CD90
- push {lr}
- ldr r0, _0802CDA4 @ =gUnknown_2022B50
- ldrb r0, [r0]
- cmp r0, 0x7
- bhi _0802CE2C
- lsls r0, 2
- ldr r1, _0802CDA8 @ =_0802CDAC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802CDA4: .4byte gUnknown_2022B50
-_0802CDA8: .4byte _0802CDAC
- .align 2, 0
-_0802CDAC:
- .4byte _0802CDCC
- .4byte _0802CDD8
- .4byte _0802CDE4
- .4byte _0802CDF0
- .4byte _0802CDFC
- .4byte _0802CE08
- .4byte _0802CE14
- .4byte _0802CE20
-_0802CDCC:
- ldr r1, _0802CDD4 @ =gUnknown_2023E82
- movs r0, 0x2
- b _0802CE30
- .align 2, 0
-_0802CDD4: .4byte gUnknown_2023E82
-_0802CDD8:
- ldr r1, _0802CDE0 @ =gUnknown_2023E82
- movs r0, 0x1
- b _0802CE30
- .align 2, 0
-_0802CDE0: .4byte gUnknown_2023E82
-_0802CDE4:
- ldr r1, _0802CDEC @ =gUnknown_2023E82
- movs r0, 0x1B
- b _0802CE30
- .align 2, 0
-_0802CDEC: .4byte gUnknown_2023E82
-_0802CDF0:
- ldr r1, _0802CDF8 @ =gUnknown_2023E82
- movs r0, 0x17
- b _0802CE30
- .align 2, 0
-_0802CDF8: .4byte gUnknown_2023E82
-_0802CDFC:
- ldr r1, _0802CE04 @ =gUnknown_2023E82
- movs r0, 0x16
- b _0802CE30
- .align 2, 0
-_0802CE04: .4byte gUnknown_2023E82
-_0802CE08:
- ldr r1, _0802CE10 @ =gUnknown_2023E82
- movs r0, 0x18
- b _0802CE30
- .align 2, 0
-_0802CE10: .4byte gUnknown_2023E82
-_0802CE14:
- ldr r1, _0802CE1C @ =gUnknown_2023E82
- movs r0, 0x7
- b _0802CE30
- .align 2, 0
-_0802CE1C: .4byte gUnknown_2023E82
-_0802CE20:
- ldr r1, _0802CE28 @ =gUnknown_2023E82
- movs r0, 0x8
- b _0802CE30
- .align 2, 0
-_0802CE28: .4byte gUnknown_2023E82
-_0802CE2C:
- ldr r1, _0802CE40 @ =gUnknown_2023E82
- movs r0, 0x5
-_0802CE30:
- strb r0, [r1, 0x3]
- ldr r1, _0802CE44 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802CE40: .4byte gUnknown_2023E82
-_0802CE44: .4byte gUnknown_2023D74
- thumb_func_end atkE4_getsecretpowereffect
-
- thumb_func_start sub_802CE48
-sub_802CE48: @ 802CE48
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r7, 0
- ldr r0, _0802CE90 @ =gBaseStats
- mov r8, r0
-_0802CE54:
- movs r0, 0x64
- adds r4, r7, 0
- muls r4, r0
- ldr r0, _0802CE94 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- cmp r0, 0
- beq _0802CE98
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x17]
- b _0802CEA2
- .align 2, 0
-_0802CE90: .4byte gBaseStats
-_0802CE94: .4byte gPlayerParty
-_0802CE98:
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x16]
-_0802CEA2:
- adds r4, r7, 0x1
- cmp r0, 0x35
- bne _0802CF0A
- cmp r5, 0
- beq _0802CF0A
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- beq _0802CF0A
- cmp r6, 0
- bne _0802CF0A
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _0802CF0A
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r1, _0802CEE4 @ =gUnknown_8250848
- b _0802CEF0
- .align 2, 0
-_0802CEE4: .4byte gUnknown_8250848
-_0802CEE8:
- adds r1, 0x4
- adds r2, 0x1
- cmp r2, 0xE
- bhi _0802CEF6
-_0802CEF0:
- ldrb r0, [r1, 0x2]
- cmp r0, r3
- ble _0802CEE8
-_0802CEF6:
- movs r0, 0x64
- muls r0, r7
- ldr r1, _0802CF24 @ =gPlayerParty
- adds r0, r1
- lsls r2, 2
- ldr r1, _0802CF28 @ =gUnknown_8250848
- adds r2, r1
- movs r1, 0xC
- bl SetMonData
-_0802CF0A:
- adds r7, r4, 0
- cmp r7, 0x5
- ble _0802CE54
- ldr r1, _0802CF2C @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802CF24: .4byte gPlayerParty
-_0802CF28: .4byte gUnknown_8250848
-_0802CF2C: .4byte gUnknown_2023D74
- thumb_func_end sub_802CE48
-
- thumb_func_start atkE6_docastformchangeanimation
-atkE6_docastformchangeanimation: @ 802CF30
- push {r4,lr}
- ldr r4, _0802CF84 @ =gActiveBattler
- ldr r0, _0802CF88 @ =gBattleScripting
- ldrb r0, [r0, 0x17]
- strb r0, [r4]
- ldr r1, _0802CF8C @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- ldr r3, _0802CF90 @ =gBattleStruct
- cmp r0, 0
- beq _0802CF60
- ldr r0, [r3]
- adds r0, 0x7F
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_0802CF60:
- ldr r0, [r3]
- adds r0, 0x7F
- ldrb r2, [r0]
- movs r0, 0
- movs r1, 0
- bl EmitBattleAnimation
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r1, _0802CF94 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802CF84: .4byte gActiveBattler
-_0802CF88: .4byte gBattleScripting
-_0802CF8C: .4byte gBattleMons
-_0802CF90: .4byte gBattleStruct
-_0802CF94: .4byte gUnknown_2023D74
- thumb_func_end atkE6_docastformchangeanimation
-
- thumb_func_start atkE7_trycastformdatachange
-atkE7_trycastformdatachange: @ 802CF98
- push {r4,lr}
- ldr r1, _0802CFC8 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, _0802CFCC @ =gBattleScripting
- ldrb r0, [r0, 0x17]
- bl sub_8019DAC
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0802CFC2
- ldr r0, _0802CFD0 @ =gUnknown_81D92F8
- bl BattleScriptPushCursorAndCallback
- ldr r0, _0802CFD4 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x7F
- subs r1, r4, 0x1
- strb r1, [r0]
-_0802CFC2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802CFC8: .4byte gUnknown_2023D74
-_0802CFCC: .4byte gBattleScripting
-_0802CFD0: .4byte gUnknown_81D92F8
-_0802CFD4: .4byte gBattleStruct
- thumb_func_end atkE7_trycastformdatachange
-
- thumb_func_start atkE8_settypebasedhalvers
-atkE8_settypebasedhalvers: @ 802CFD8
- push {r4,lr}
- movs r4, 0
- ldr r2, _0802D014 @ =gBattleMoves
- ldr r0, _0802D018 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0xC9
- bne _0802D028
- ldr r1, _0802D01C @ =gStatuses3
- ldr r0, _0802D020 @ =sBattler_AI
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 9
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _0802D04C
- orrs r1, r3
- str r1, [r2]
- ldr r0, _0802D024 @ =gUnknown_2023E82
- strb r4, [r0, 0x5]
- b _0802D050
- .align 2, 0
-_0802D014: .4byte gBattleMoves
-_0802D018: .4byte gCurrentMove
-_0802D01C: .4byte gStatuses3
-_0802D020: .4byte sBattler_AI
-_0802D024: .4byte gUnknown_2023E82
-_0802D028:
- ldr r1, _0802D05C @ =gStatuses3
- ldr r0, _0802D060 @ =sBattler_AI
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 10
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _0802D04C
- orrs r1, r3
- str r1, [r2]
- ldr r1, _0802D064 @ =gUnknown_2023E82
- movs r0, 0x1
- strb r0, [r1, 0x5]
- movs r4, 0x1
-_0802D04C:
- cmp r4, 0
- beq _0802D06C
-_0802D050:
- ldr r1, _0802D068 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802D086
- .align 2, 0
-_0802D05C: .4byte gStatuses3
-_0802D060: .4byte sBattler_AI
-_0802D064: .4byte gUnknown_2023E82
-_0802D068: .4byte gUnknown_2023D74
-_0802D06C:
- ldr r3, _0802D08C @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802D086:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D08C: .4byte gUnknown_2023D74
- thumb_func_end atkE8_settypebasedhalvers
-
- thumb_func_start atkE9_setweatherballtype
-atkE9_setweatherballtype: @ 802D090
- push {lr}
- sub sp, 0x4
- 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 _0802D130
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _0802D130
- ldr r2, _0802D0E0 @ =gBattleWeather
- ldrb r0, [r2]
- cmp r0, 0
- beq _0802D0CE
- ldr r1, _0802D0E4 @ =gBattleScripting
- movs r0, 0x2
- strb r0, [r1, 0xE]
-_0802D0CE:
- ldrh r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0802D0EC
- ldr r0, _0802D0E8 @ =gBattleStruct
- ldr r1, [r0]
- movs r0, 0x8B
- b _0802D12E
- .align 2, 0
-_0802D0E0: .4byte gBattleWeather
-_0802D0E4: .4byte gBattleScripting
-_0802D0E8: .4byte gBattleStruct
-_0802D0EC:
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _0802D100
- ldr r0, _0802D0FC @ =gBattleStruct
- ldr r1, [r0]
- movs r0, 0x85
- b _0802D12E
- .align 2, 0
-_0802D0FC: .4byte gBattleStruct
-_0802D100:
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0802D114
- ldr r0, _0802D110 @ =gBattleStruct
- ldr r1, [r0]
- movs r0, 0x8A
- b _0802D12E
- .align 2, 0
-_0802D110: .4byte gBattleStruct
-_0802D114:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802D128
- ldr r0, _0802D124 @ =gBattleStruct
- ldr r1, [r0]
- movs r0, 0x8F
- b _0802D12E
- .align 2, 0
-_0802D124: .4byte gBattleStruct
-_0802D128:
- ldr r0, _0802D140 @ =gBattleStruct
- ldr r1, [r0]
- movs r0, 0x80
-_0802D12E:
- strb r0, [r1, 0x13]
-_0802D130:
- ldr r1, _0802D144 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0802D140: .4byte gBattleStruct
-_0802D144: .4byte gUnknown_2023D74
- thumb_func_end atkE9_setweatherballtype
-
- thumb_func_start atkEA_tryrecycleitem
-atkEA_tryrecycleitem: @ 802D148
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r7, _0802D1B0 @ =gActiveBattler
- ldr r0, _0802D1B4 @ =sBattler_AI
- ldrb r0, [r0]
- strb r0, [r7]
- ldr r1, _0802D1B8 @ =gBattleStruct
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, 0xB8
- ldr r1, [r1]
- adds r6, r1, r0
- ldrh r5, [r6]
- cmp r5, 0
- beq _0802D1C8
- ldr r4, _0802D1BC @ =gBattleMons
- movs r3, 0x58
- adds r0, r2, 0
- muls r0, r3
- adds r0, r4
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- bne _0802D1C8
- ldr r1, _0802D1C0 @ =gUnknown_2023D68
- strh r5, [r1]
- strh r0, [r6]
- ldrb r0, [r7]
- muls r0, r3
- adds r0, r4
- ldrh r1, [r1]
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- muls r0, r3
- adds r1, r4, 0
- adds r1, 0x2E
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl EmitSetMonData
- ldrb r0, [r7]
- bl MarkBufferBankForExecution
- ldr r1, _0802D1C4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802D1E2
- .align 2, 0
-_0802D1B0: .4byte gActiveBattler
-_0802D1B4: .4byte sBattler_AI
-_0802D1B8: .4byte gBattleStruct
-_0802D1BC: .4byte gBattleMons
-_0802D1C0: .4byte gUnknown_2023D68
-_0802D1C4: .4byte gUnknown_2023D74
-_0802D1C8:
- ldr r3, _0802D1EC @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802D1E2:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D1EC: .4byte gUnknown_2023D74
- thumb_func_end atkEA_tryrecycleitem
-
- thumb_func_start atkEB_settypetoterrain
-atkEB_settypetoterrain: @ 802D1F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0802D260 @ =gBattleMons
- mov r8, r0
- ldr r7, _0802D264 @ =sBattler_AI
- ldrb r0, [r7]
- movs r6, 0x58
- muls r0, r6
- mov r1, r8
- adds r3, r0, r1
- movs r0, 0x21
- adds r0, r3
- mov r12, r0
- ldr r5, _0802D268 @ =gUnknown_8250888
- ldr r4, _0802D26C @ =gUnknown_2022B50
- ldrb r0, [r4]
- adds r0, r5
- ldrb r2, [r0]
- mov r1, r12
- ldrb r0, [r1]
- adds r1, r2, 0
- cmp r0, r1
- beq _0802D278
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- beq _0802D278
- mov r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- add r1, r8
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- adds r1, 0x22
- strb r0, [r1]
- ldr r1, _0802D270 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _0802D274 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802D292
- .align 2, 0
-_0802D260: .4byte gBattleMons
-_0802D264: .4byte sBattler_AI
-_0802D268: .4byte gUnknown_8250888
-_0802D26C: .4byte gUnknown_2022B50
-_0802D270: .4byte gBattleTextBuff1
-_0802D274: .4byte gUnknown_2023D74
-_0802D278:
- ldr r3, _0802D29C @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802D292:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D29C: .4byte gUnknown_2023D74
- thumb_func_end atkEB_settypetoterrain
-
- thumb_func_start atkEC_pursuitrelated
-atkEC_pursuitrelated: @ 802D2A0
- push {r4-r6,lr}
- ldr r5, _0802D314 @ =sBattler_AI
- ldrb r0, [r5]
- bl GetBattlerPosition
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerAtPosition
- ldr r4, _0802D318 @ =gActiveBattler
- strb r0, [r4]
- ldr r0, _0802D31C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r6, 0x1
- ands r0, r6
- cmp r0, 0
- beq _0802D340
- ldr r0, _0802D320 @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldr r2, _0802D324 @ =gBitTable
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802D340
- ldr r0, _0802D328 @ =gUnknown_2023D7C
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _0802D340
- ldr r1, _0802D32C @ =gUnknown_2023DC4
- lsls r0, r3, 1
- adds r0, r1
- ldrh r2, [r0]
- cmp r2, 0xE4
- bne _0802D340
- ldr r0, _0802D330 @ =gUnknown_2023BDA
- adds r0, r3, r0
- movs r1, 0xB
- strb r1, [r0]
- ldr r0, _0802D334 @ =gCurrentMove
- strh r2, [r0]
- ldr r1, _0802D338 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r0, _0802D33C @ =gBattleScripting
- strb r6, [r0, 0x18]
- ldrb r1, [r5]
- adds r0, 0x20
- strb r1, [r0]
- ldrb r0, [r4]
- strb r0, [r5]
- b _0802D35A
- .align 2, 0
-_0802D314: .4byte sBattler_AI
-_0802D318: .4byte gActiveBattler
-_0802D31C: .4byte gBattleTypeFlags
-_0802D320: .4byte gAbsentBattlerFlags
-_0802D324: .4byte gBitTable
-_0802D328: .4byte gUnknown_2023D7C
-_0802D32C: .4byte gUnknown_2023DC4
-_0802D330: .4byte gUnknown_2023BDA
-_0802D334: .4byte gCurrentMove
-_0802D338: .4byte gUnknown_2023D74
-_0802D33C: .4byte gBattleScripting
-_0802D340:
- ldr r3, _0802D360 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802D35A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D360: .4byte gUnknown_2023D74
- thumb_func_end atkEC_pursuitrelated
-
- thumb_func_start atkEF_snatchsetbanks
-atkEF_snatchsetbanks: @ 802D364
- push {r4,lr}
- ldr r1, _0802D388 @ =gUnknown_2023D6E
- ldr r3, _0802D38C @ =sBattler_AI
- ldrb r0, [r3]
- strb r0, [r1]
- ldr r2, _0802D390 @ =gBattlerTarget
- lsls r0, 24
- lsrs r0, 24
- adds r4, r1, 0
- ldrb r1, [r2]
- cmp r0, r1
- bne _0802D398
- ldr r1, _0802D394 @ =gBattleScripting
- ldrb r0, [r1, 0x17]
- strb r0, [r2]
- strb r0, [r3]
- b _0802D39E
- .align 2, 0
-_0802D388: .4byte gUnknown_2023D6E
-_0802D38C: .4byte sBattler_AI
-_0802D390: .4byte gBattlerTarget
-_0802D394: .4byte gBattleScripting
-_0802D398:
- ldr r1, _0802D3B0 @ =gBattleScripting
- ldrb r0, [r1, 0x17]
- strb r0, [r2]
-_0802D39E:
- ldrb r0, [r4]
- strb r0, [r1, 0x17]
- ldr r1, _0802D3B4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D3B0: .4byte gBattleScripting
-_0802D3B4: .4byte gUnknown_2023D74
- thumb_func_end atkEF_snatchsetbanks
-
- thumb_func_start atkEE_removelightscreenreflect
-atkEE_removelightscreenreflect: @ 802D3B8
- push {r4,lr}
- ldr r0, _0802D400 @ =sBattler_AI
- ldrb r0, [r0]
- bl GetBattlerSide
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0802D404 @ =gSideTimers
- lsls r3, r0, 1
- adds r0, r3, r0
- lsls r0, 2
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- bne _0802D3E0
- ldrb r1, [r4, 0x2]
- cmp r1, 0
- beq _0802D418
-_0802D3E0:
- ldr r2, _0802D408 @ =gSideAffecting
- adds r2, r3, r2
- ldrh r1, [r2]
- ldr r0, _0802D40C @ =0x0000fffe
- ands r0, r1
- movs r3, 0
- ldr r1, _0802D410 @ =0x0000fffd
- ands r0, r1
- strh r0, [r2]
- strb r3, [r4]
- strb r3, [r4, 0x2]
- ldr r1, _0802D414 @ =gBattleScripting
- movs r0, 0x1
- strb r0, [r1, 0x18]
- strb r0, [r1, 0x19]
- b _0802D41E
- .align 2, 0
-_0802D400: .4byte sBattler_AI
-_0802D404: .4byte gSideTimers
-_0802D408: .4byte gSideAffecting
-_0802D40C: .4byte 0x0000fffe
-_0802D410: .4byte 0x0000fffd
-_0802D414: .4byte gBattleScripting
-_0802D418:
- ldr r0, _0802D42C @ =gBattleScripting
- strb r1, [r0, 0x18]
- strb r1, [r0, 0x19]
-_0802D41E:
- ldr r1, _0802D430 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D42C: .4byte gBattleScripting
-_0802D430: .4byte gUnknown_2023D74
- thumb_func_end atkEE_removelightscreenreflect
-
- thumb_func_start sub_802D434
-sub_802D434: @ 802D434
- push {r4-r6,lr}
- movs r4, 0
- ldr r0, _0802D474 @ =gUnknown_2023BC8
- ldr r0, [r0]
- cmp r0, 0
- beq _0802D442
- b _0802D7EE
-_0802D442:
- ldr r5, _0802D478 @ =gActiveBattler
- ldr r0, _0802D47C @ =sBattler_AI
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r6, _0802D480 @ =gBattlerTarget
- movs r1, 0x1
- eors r0, r1
- strb r0, [r6]
- ldr r0, _0802D484 @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _0802D490
- movs r0, 0
- movs r1, 0x6
- bl EmitBallThrowAnim
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r1, _0802D488 @ =gUnknown_2023D74
- ldr r0, _0802D48C @ =gUnknown_81D9AD1
- b _0802D7EC
- .align 2, 0
-_0802D474: .4byte gUnknown_2023BC8
-_0802D478: .4byte gActiveBattler
-_0802D47C: .4byte sBattler_AI
-_0802D480: .4byte gBattlerTarget
-_0802D484: .4byte gBattleTypeFlags
-_0802D488: .4byte gUnknown_2023D74
-_0802D48C: .4byte gUnknown_81D9AD1
-_0802D490:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0802D4B4
- movs r0, 0
- movs r1, 0x5
- bl EmitBallThrowAnim
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r1, _0802D4AC @ =gUnknown_2023D74
- ldr r0, _0802D4B0 @ =gUnknown_81D9AC1
- b _0802D7EC
- .align 2, 0
-_0802D4AC: .4byte gUnknown_2023D74
-_0802D4B0: .4byte gUnknown_81D9AC1
-_0802D4B4:
- movs r0, 0x81
- lsls r0, 9
- ands r1, r0
- cmp r1, 0
- beq _0802D4DC
- movs r0, 0
- movs r1, 0x4
- bl EmitBallThrowAnim
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r1, _0802D4D4 @ =gUnknown_2023D74
- ldr r0, _0802D4D8 @ =gUnknown_81D9A88
- b _0802D7EC
- .align 2, 0
-_0802D4D4: .4byte gUnknown_2023D74
-_0802D4D8: .4byte gUnknown_81D9A88
-_0802D4DC:
- ldr r0, _0802D500 @ =gUnknown_2023D68
- ldrh r0, [r0]
- cmp r0, 0x5
- bne _0802D508
- ldr r0, _0802D504 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x7C
- ldrb r0, [r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 8
- subs r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 24
- lsrs r5, r0, 24
- b _0802D520
- .align 2, 0
-_0802D500: .4byte gUnknown_2023D68
-_0802D504: .4byte gBattleStruct
-_0802D508:
- ldr r3, _0802D53C @ =gBaseStats
- ldr r2, _0802D540 @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r5, [r0, 0x8]
-_0802D520:
- ldr r2, _0802D544 @ =gUnknown_2023D68
- ldrh r0, [r2]
- cmp r0, 0x5
- bhi _0802D52A
- b _0802D620
-_0802D52A:
- subs r0, 0x6
- cmp r0, 0x6
- bls _0802D532
- b _0802D62A
-_0802D532:
- lsls r0, 2
- ldr r1, _0802D548 @ =_0802D54C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802D53C: .4byte gBaseStats
-_0802D540: .4byte gBattleMons
-_0802D544: .4byte gUnknown_2023D68
-_0802D548: .4byte _0802D54C
- .align 2, 0
-_0802D54C:
- .4byte _0802D568
- .4byte _0802D598
- .4byte _0802D5AA
- .4byte _0802D5D8
- .4byte _0802D608
- .4byte _0802D5CA
- .4byte _0802D5CA
-_0802D568:
- ldr r2, _0802D590 @ =gBattleMons
- ldr r0, _0802D594 @ =gBattlerTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r1, 0xB
- beq _0802D5FC
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xB
- beq _0802D5FC
- cmp r1, 0x6
- beq _0802D5FC
- cmp r0, 0x6
- beq _0802D5FC
- b _0802D5CA
- .align 2, 0
-_0802D590: .4byte gBattleMons
-_0802D594: .4byte gBattlerTarget
-_0802D598:
- bl sav1_map_get_light_level
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0xA
- cmp r0, 0x5
- bne _0802D62A
- movs r4, 0x23
- b _0802D62A
-_0802D5AA:
- ldr r2, _0802D5D0 @ =gBattleMons
- ldr r0, _0802D5D4 @ =gBattlerTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r1, [r0]
- cmp r1, 0x27
- bhi _0802D5CA
- movs r0, 0x28
- subs r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bhi _0802D62A
-_0802D5CA:
- movs r4, 0xA
- b _0802D62A
- .align 2, 0
-_0802D5D0: .4byte gBattleMons
-_0802D5D4: .4byte gBattlerTarget
-_0802D5D8:
- ldr r2, _0802D600 @ =gBattleMons
- ldr r0, _0802D604 @ =gBattlerTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetSetPokedexFlag
- lsls r0, 24
- movs r4, 0xA
- cmp r0, 0
- beq _0802D62A
-_0802D5FC:
- movs r4, 0x1E
- b _0802D62A
- .align 2, 0
-_0802D600: .4byte gBattleMons
-_0802D604: .4byte gBattlerTarget
-_0802D608:
- ldr r0, _0802D61C @ =gBattleResults
- ldrb r0, [r0, 0x13]
- adds r0, 0xA
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x28
- bls _0802D62A
- movs r4, 0x28
- b _0802D62A
- .align 2, 0
-_0802D61C: .4byte gBattleResults
-_0802D620:
- ldr r1, _0802D694 @ =gUnknown_8250892
- ldrh r0, [r2]
- subs r0, 0x2
- adds r0, r1
- ldrb r4, [r0]
-_0802D62A:
- adds r0, r5, 0
- muls r0, r4
- movs r1, 0xA
- bl __divsi3
- ldr r5, _0802D698 @ =gBattleMons
- ldr r1, _0802D69C @ =gBattlerTarget
- ldrb r2, [r1]
- movs r1, 0x58
- adds r4, r2, 0
- muls r4, r1
- adds r3, r4, r5
- ldrh r2, [r3, 0x2C]
- lsls r1, r2, 1
- adds r1, r2
- ldrh r2, [r3, 0x28]
- lsls r2, 1
- subs r2, r1, r2
- muls r0, r2
- bl __divsi3
- adds r6, r0, 0
- adds r5, 0x4C
- adds r4, r5
- ldr r4, [r4]
- movs r0, 0x27
- ands r0, r4
- cmp r0, 0
- beq _0802D666
- lsls r6, 1
-_0802D666:
- movs r0, 0xD8
- ands r4, r0
- cmp r4, 0
- beq _0802D67A
- lsls r0, r6, 4
- subs r0, r6
- movs r1, 0xA
- bl __udivsi3
- adds r6, r0, 0
-_0802D67A:
- ldr r1, _0802D6A0 @ =gUnknown_2023D68
- ldrh r0, [r1]
- cmp r0, 0x5
- beq _0802D6BC
- cmp r0, 0x1
- bne _0802D6A8
- ldr r0, _0802D6A4 @ =gBattleResults
- ldrb r1, [r0, 0x5]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0, 0x5]
- b _0802D6BC
- .align 2, 0
-_0802D694: .4byte gUnknown_8250892
-_0802D698: .4byte gBattleMons
-_0802D69C: .4byte gBattlerTarget
-_0802D6A0: .4byte gUnknown_2023D68
-_0802D6A4: .4byte gBattleResults
-_0802D6A8:
- ldr r0, _0802D700 @ =gBattleResults
- ldrh r1, [r1]
- adds r0, r1
- adds r1, r0, 0
- adds r1, 0x34
- ldrb r0, [r1]
- cmp r0, 0xFE
- bhi _0802D6BC
- adds r0, 0x1
- strb r0, [r1]
-_0802D6BC:
- cmp r6, 0xFE
- bls _0802D720
- movs r0, 0
- movs r1, 0x4
- bl EmitBallThrowAnim
- ldr r0, _0802D704 @ =gActiveBattler
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r1, _0802D708 @ =gUnknown_2023D74
- ldr r0, _0802D70C @ =gUnknown_81D9A42
- str r0, [r1]
- ldr r1, _0802D710 @ =gBattlerPartyIndexes
- ldr r0, _0802D714 @ =gBattlerTarget
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802D718 @ =gEnemyParty
- adds r0, r1
- ldr r2, _0802D71C @ =gUnknown_2023D68
- movs r1, 0x26
- bl SetMonData
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- beq _0802D7AE
- b _0802D7D8
- .align 2, 0
-_0802D700: .4byte gBattleResults
-_0802D704: .4byte gActiveBattler
-_0802D708: .4byte gUnknown_2023D74
-_0802D70C: .4byte gUnknown_81D9A42
-_0802D710: .4byte gBattlerPartyIndexes
-_0802D714: .4byte gBattlerTarget
-_0802D718: .4byte gEnemyParty
-_0802D71C: .4byte gUnknown_2023D68
-_0802D720:
- movs r0, 0xFF
- lsls r0, 16
- adds r1, r6, 0
- bl __udivsi3
- bl Sqrt
- lsls r0, 16
- lsrs r0, 16
- bl Sqrt
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _0802D748 @ =0x000ffff0
- adds r1, r6, 0
- bl __udivsi3
- adds r6, r0, 0
- movs r4, 0
- b _0802D752
- .align 2, 0
-_0802D748: .4byte 0x000ffff0
-_0802D74C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0802D752:
- cmp r4, 0x3
- bhi _0802D762
- bl Random
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcc _0802D74C
-_0802D762:
- ldr r5, _0802D7B8 @ =gUnknown_2023D68
- ldrh r0, [r5]
- cmp r0, 0x1
- bne _0802D76C
- movs r4, 0x4
-_0802D76C:
- movs r0, 0
- adds r1, r4, 0
- bl EmitBallThrowAnim
- ldr r0, _0802D7BC @ =gActiveBattler
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- cmp r4, 0x4
- bne _0802D7E4
- ldr r1, _0802D7C0 @ =gUnknown_2023D74
- ldr r0, _0802D7C4 @ =gUnknown_81D9A42
- str r0, [r1]
- ldr r1, _0802D7C8 @ =gBattlerPartyIndexes
- ldr r0, _0802D7CC @ =gBattlerTarget
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802D7D0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x26
- adds r2, r5, 0
- bl SetMonData
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _0802D7D8
-_0802D7AE:
- ldr r1, _0802D7D4 @ =gUnknown_2023E82
- movs r0, 0
- strb r0, [r1, 0x5]
- b _0802D7EE
- .align 2, 0
-_0802D7B8: .4byte gUnknown_2023D68
-_0802D7BC: .4byte gActiveBattler
-_0802D7C0: .4byte gUnknown_2023D74
-_0802D7C4: .4byte gUnknown_81D9A42
-_0802D7C8: .4byte gBattlerPartyIndexes
-_0802D7CC: .4byte gBattlerTarget
-_0802D7D0: .4byte gEnemyParty
-_0802D7D4: .4byte gUnknown_2023E82
-_0802D7D8:
- ldr r1, _0802D7E0 @ =gUnknown_2023E82
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _0802D7EE
- .align 2, 0
-_0802D7E0: .4byte gUnknown_2023E82
-_0802D7E4:
- ldr r0, _0802D7F4 @ =gUnknown_2023E82
- strb r4, [r0, 0x5]
- ldr r1, _0802D7F8 @ =gUnknown_2023D74
- ldr r0, _0802D7FC @ =gUnknown_81D9A93
-_0802D7EC:
- str r0, [r1]
-_0802D7EE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D7F4: .4byte gUnknown_2023E82
-_0802D7F8: .4byte gUnknown_2023D74
-_0802D7FC: .4byte gUnknown_81D9A93
- thumb_func_end sub_802D434
-
- thumb_func_start sub_802D800
-sub_802D800: @ 802D800
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _0802D870 @ =gBattlerPartyIndexes
- mov r9, r0
- ldr r5, _0802D874 @ =sBattler_AI
- ldrb r0, [r5]
- movs r6, 0x1
- eors r0, r6
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- movs r7, 0x64
- muls r0, r7
- ldr r1, _0802D878 @ =gEnemyParty
- mov r8, r1
- add r0, r8
- bl GiveMonToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _0802D8EA
- bl sub_80CC7B4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0802D88C
- ldr r0, _0802D87C @ =gUnknown_2023E82
- strb r1, [r0, 0x5]
- ldr r4, _0802D880 @ =gStringVar1
- ldr r0, _0802D884 @ =0x00004037
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- bl GetBoxNamePtr
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldrb r0, [r5]
- eors r0, r6
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- muls r0, r7
- add r0, r8
- ldr r2, _0802D888 @ =gStringVar2
- movs r1, 0x2
- bl GetMonData
- b _0802D8D6
- .align 2, 0
-_0802D870: .4byte gBattlerPartyIndexes
-_0802D874: .4byte sBattler_AI
-_0802D878: .4byte gEnemyParty
-_0802D87C: .4byte gUnknown_2023E82
-_0802D880: .4byte gStringVar1
-_0802D884: .4byte 0x00004037
-_0802D888: .4byte gStringVar2
-_0802D88C:
- ldr r4, _0802D92C @ =gStringVar1
- ldr r0, _0802D930 @ =0x00004037
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- bl GetBoxNamePtr
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldrb r0, [r5]
- eors r0, r6
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- muls r0, r7
- add r0, r8
- ldr r2, _0802D934 @ =gStringVar2
- movs r1, 0x2
- bl GetMonData
- ldr r4, _0802D938 @ =gStringVar3
- bl get_unknown_box_id
- lsls r0, 24
- lsrs r0, 24
- bl GetBoxNamePtr
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldr r1, _0802D93C @ =gUnknown_2023E82
- movs r0, 0x2
- strb r0, [r1, 0x5]
-_0802D8D6:
- ldr r0, _0802D940 @ =0x00000834
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0802D8EA
- ldr r1, _0802D93C @ =gUnknown_2023E82
- ldrb r0, [r1, 0x5]
- adds r0, 0x1
- strb r0, [r1, 0x5]
-_0802D8EA:
- ldr r2, _0802D944 @ =gBattleResults
- ldr r3, _0802D948 @ =gBattleMons
- ldr r0, _0802D94C @ =sBattler_AI
- ldrb r0, [r0]
- movs r1, 0x1
- eors r1, r0
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r2, 0x28]
- ldr r0, _0802D950 @ =gBattlerPartyIndexes
- lsls r1, 1
- adds r1, r0
- ldrh r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802D954 @ =gEnemyParty
- adds r0, r1
- adds r2, 0x2A
- movs r1, 0x2
- bl GetMonData
- ldr r1, _0802D958 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D92C: .4byte gStringVar1
-_0802D930: .4byte 0x00004037
-_0802D934: .4byte gStringVar2
-_0802D938: .4byte gStringVar3
-_0802D93C: .4byte gUnknown_2023E82
-_0802D940: .4byte 0x00000834
-_0802D944: .4byte gBattleResults
-_0802D948: .4byte gBattleMons
-_0802D94C: .4byte sBattler_AI
-_0802D950: .4byte gBattlerPartyIndexes
-_0802D954: .4byte gEnemyParty
-_0802D958: .4byte gUnknown_2023D74
- thumb_func_end sub_802D800
-
- thumb_func_start sub_802D95C
-sub_802D95C: @ 802D95C
- push {r4,r5,lr}
- ldr r4, _0802D9AC @ =gEnemyParty
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- adds r0, r5, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetSetPokedexFlag
- lsls r0, 24
- cmp r0, 0
- beq _0802D9B4
- ldr r3, _0802D9B0 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802D9CE
- .align 2, 0
-_0802D9AC: .4byte gEnemyParty
-_0802D9B0: .4byte gUnknown_2023D74
-_0802D9B4:
- adds r0, r5, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- adds r2, r4, 0
- bl HandleSetPokedexFlag
- ldr r1, _0802D9D4 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802D9CE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D9D4: .4byte gUnknown_2023D74
- thumb_func_end sub_802D95C
-
- thumb_func_start sub_802D9D8
-sub_802D9D8: @ 802D9D8
- push {r4,r5,lr}
- sub sp, 0x18
- ldr r0, _0802DA00 @ =gEnemyParty
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _0802DA04 @ =gUnknown_2023E82
- ldrb r0, [r0]
- cmp r0, 0x5
- bls _0802D9F4
- b _0802DB6C
-_0802D9F4:
- lsls r0, 2
- ldr r1, _0802DA08 @ =_0802DA0C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802DA00: .4byte gEnemyParty
-_0802DA04: .4byte gUnknown_2023E82
-_0802DA08: .4byte _0802DA0C
- .align 2, 0
-_0802DA0C:
- .4byte _0802DA24
- .4byte _0802DA3C
- .4byte _0802DA64
- .4byte _0802DAC8
- .4byte _0802DAE0
- .4byte _0802DB58
-_0802DA24:
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0802DA38 @ =0x00007fff
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0802DB34
- .align 2, 0
-_0802DA38: .4byte 0x00007fff
-_0802DA3C:
- ldr r0, _0802DA5C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802DA4A
- b _0802DB6C
-_0802DA4A:
- bl FreeAllWindowBuffers
- adds r0, r5, 0
- bl sub_8106B60
- ldr r1, _0802DA60 @ =gUnknown_2023E82
- strb r0, [r1, 0x1]
- b _0802DB36
- .align 2, 0
-_0802DA5C: .4byte gPaletteFade
-_0802DA60: .4byte gUnknown_2023E82
-_0802DA64:
- ldr r0, _0802DAAC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802DA72
- b _0802DB6C
-_0802DA72:
- ldr r0, _0802DAB0 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0802DAB4 @ =sub_8011100
- cmp r1, r0
- bne _0802DB6C
- ldr r2, _0802DAB8 @ =gTasks
- ldr r4, _0802DABC @ =gUnknown_2023E82
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _0802DB6C
- str r0, [sp, 0x10]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _0802DAC0 @ =0x05006000
- add r0, sp, 0x10
- bl CpuSet
- ldr r0, _0802DAC4 @ =sub_80116F4
- bl SetVBlankCallback
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0802DB6C
- .align 2, 0
-_0802DAAC: .4byte gPaletteFade
-_0802DAB0: .4byte gMain
-_0802DAB4: .4byte sub_8011100
-_0802DAB8: .4byte gTasks
-_0802DABC: .4byte gUnknown_2023E82
-_0802DAC0: .4byte 0x05006000
-_0802DAC4: .4byte sub_80116F4
-_0802DAC8:
- bl sub_800F34C
- bl LoadBattleTextboxAndBackground
- ldr r1, _0802DADC @ =gBattle_BG3_X
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- b _0802DB34
- .align 2, 0
-_0802DADC: .4byte gBattle_BG3_X
-_0802DAE0:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0802DB6C
- ldr r0, _0802DB40 @ =gBattleMons
- adds r1, r0, 0
- adds r1, 0xAC
- ldr r1, [r1]
- adds r0, 0xA0
- ldr r2, [r0]
- movs r0, 0x78
- str r0, [sp]
- movs r0, 0x40
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r0, _0802DB44 @ =0x0000ffff
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r3, 0x1
- bl CreateMonPicSprite_HandleDeoxys
- str r4, [sp, 0x14]
- add r0, sp, 0x14
- ldr r1, _0802DB48 @ =gPlttBufferFaded
- ldr r2, _0802DB4C @ =0x05000080
- bl CpuSet
- ldr r0, _0802DB50 @ =0x0001ffff
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r0, 0
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
-_0802DB34:
- ldr r1, _0802DB54 @ =gUnknown_2023E82
-_0802DB36:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0802DB6C
- .align 2, 0
-_0802DB40: .4byte gBattleMons
-_0802DB44: .4byte 0x0000ffff
-_0802DB48: .4byte gPlttBufferFaded
-_0802DB4C: .4byte 0x05000080
-_0802DB50: .4byte 0x0001ffff
-_0802DB54: .4byte gUnknown_2023E82
-_0802DB58:
- ldr r0, _0802DB74 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802DB6C
- ldr r1, _0802DB78 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0802DB6C:
- add sp, 0x18
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DB74: .4byte gPaletteFade
-_0802DB78: .4byte gUnknown_2023D74
- thumb_func_end sub_802D9D8
-
- thumb_func_start sub_802DB7C
-sub_802DB7C: @ 802DB7C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- ldr r4, [sp, 0x40]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x10]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x1C]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x14]
- lsls r4, 24
- lsrs r4, 24
- mov r10, r4
- movs r1, 0
- add r0, sp, 0xC
- strh r1, [r0]
- ldr r6, [sp, 0x10]
- cmp r6, r3
- ble _0802DBB6
- b _0802DCA2
-_0802DBB6:
- mov r4, r8
- adds r0, r6, 0x1
- str r0, [sp, 0x18]
- ldr r2, [sp, 0x1C]
- cmp r4, r2
- bgt _0802DC98
- add r5, sp, 0xC
- lsls r7, r6, 24
- mov r9, r7
-_0802DBC8:
- ldr r0, [sp, 0x10]
- cmp r6, r0
- bne _0802DBF4
- cmp r4, r8
- bne _0802DBDC
- ldr r0, _0802DBD8 @ =0x00001022
- b _0802DC3E
- .align 2, 0
-_0802DBD8: .4byte 0x00001022
-_0802DBDC:
- ldr r2, [sp, 0x1C]
- cmp r4, r2
- bne _0802DBEC
- ldr r0, _0802DBE8 @ =0x00001024
- b _0802DC3E
- .align 2, 0
-_0802DBE8: .4byte 0x00001024
-_0802DBEC:
- ldr r0, _0802DBF0 @ =0x00001023
- b _0802DC3E
- .align 2, 0
-_0802DBF0: .4byte 0x00001023
-_0802DBF4:
- ldr r7, [sp, 0x14]
- cmp r6, r7
- bne _0802DC20
- cmp r4, r8
- bne _0802DC08
- ldr r0, _0802DC04 @ =0x00001028
- b _0802DC3E
- .align 2, 0
-_0802DC04: .4byte 0x00001028
-_0802DC08:
- ldr r0, [sp, 0x1C]
- cmp r4, r0
- bne _0802DC18
- ldr r0, _0802DC14 @ =0x0000102a
- b _0802DC3E
- .align 2, 0
-_0802DC14: .4byte 0x0000102a
-_0802DC18:
- ldr r0, _0802DC1C @ =0x00001029
- b _0802DC3E
- .align 2, 0
-_0802DC1C: .4byte 0x00001029
-_0802DC20:
- cmp r4, r8
- bne _0802DC2C
- ldr r0, _0802DC28 @ =0x00001025
- b _0802DC3E
- .align 2, 0
-_0802DC28: .4byte 0x00001025
-_0802DC2C:
- ldr r2, [sp, 0x1C]
- cmp r4, r2
- bne _0802DC3C
- ldr r0, _0802DC38 @ =0x00001027
- b _0802DC3E
- .align 2, 0
-_0802DC38: .4byte 0x00001027
-_0802DC3C:
- ldr r0, _0802DC74 @ =0x00001026
-_0802DC3E:
- strh r0, [r5]
- movs r1, 0x1
- mov r0, r10
- ands r0, r1
- cmp r0, 0
- beq _0802DC4E
- movs r0, 0
- strh r0, [r5]
-_0802DC4E:
- movs r0, 0x80
- mov r7, r10
- ands r0, r7
- cmp r0, 0
- beq _0802DC78
- lsls r2, r4, 24
- lsrs r2, 24
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0x1
- add r1, sp, 0xC
- mov r7, r9
- lsrs r3, r7, 24
- bl CopyToBgTilemapBufferRect_ChangePalette
- b _0802DC90
- .align 2, 0
-_0802DC74: .4byte 0x00001026
-_0802DC78:
- lsls r2, r4, 24
- lsrs r2, 24
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0
- add r1, sp, 0xC
- mov r7, r9
- lsrs r3, r7, 24
- bl CopyToBgTilemapBufferRect_ChangePalette
-_0802DC90:
- adds r4, 0x1
- ldr r0, [sp, 0x1C]
- cmp r4, r0
- ble _0802DBC8
-_0802DC98:
- ldr r6, [sp, 0x18]
- ldr r2, [sp, 0x14]
- cmp r6, r2
- bgt _0802DCA2
- b _0802DBB6
-_0802DCA2:
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_802DB7C
-
- thumb_func_start sub_802DCB8
-sub_802DCB8: @ 802DCB8
- push {lr}
- sub sp, 0x10
- add r0, sp, 0xC
- movs r2, 0x1
- strh r2, [r0]
- movs r1, 0x2
- strh r1, [r0, 0x2]
- ldr r0, _0802DCF4 @ =gUnknown_2023E82
- ldrb r3, [r0, 0x1]
- lsls r3, 25
- movs r0, 0x90
- lsls r0, 20
- adds r3, r0
- lsrs r3, 24
- str r2, [sp]
- str r1, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0
- add r1, sp, 0xC
- movs r2, 0x18
- bl CopyToBgTilemapBufferRect_ChangePalette
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_0802DCF4: .4byte gUnknown_2023E82
- thumb_func_end sub_802DCB8
-
- thumb_func_start sub_802DCF8
-sub_802DCF8: @ 802DCF8
- push {lr}
- sub sp, 0x10
- add r0, sp, 0xC
- movs r1, 0x20
- strh r1, [r0]
- strh r1, [r0, 0x2]
- ldr r0, _0802DD34 @ =gUnknown_2023E82
- ldrb r3, [r0, 0x1]
- lsls r3, 25
- movs r0, 0x90
- lsls r0, 20
- adds r3, r0
- lsrs r3, 24
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0
- add r1, sp, 0xC
- movs r2, 0x18
- bl CopyToBgTilemapBufferRect_ChangePalette
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_0802DD34: .4byte gUnknown_2023E82
- thumb_func_end sub_802DCF8
-
- thumb_func_start sub_802DD38
-sub_802DD38: @ 802DD38
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r0, _0802DD5C @ =gUnknown_2023E82
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x4
- bls _0802DD50
- b _0802DFA6
-_0802DD50:
- lsls r0, r1, 2
- ldr r1, _0802DD60 @ =_0802DD64
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802DD5C: .4byte gUnknown_2023E82
-_0802DD60: .4byte _0802DD64
- .align 2, 0
-_0802DD64:
- .4byte _0802DD78
- .4byte _0802DDA8
- .4byte _0802DE40
- .4byte _0802DF18
- .4byte _0802DF70
-_0802DD78:
- movs r4, 0
- str r4, [sp]
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_802DB7C
- ldr r0, _0802DDA0 @ =gUnknown_83FE791
- movs r1, 0xE
- bl sub_80D87BC
- ldr r1, _0802DDA4 @ =gUnknown_2023E82
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- strb r4, [r1, 0x1]
- bl sub_802DCB8
- b _0802DFA6
- .align 2, 0
-_0802DDA0: .4byte gUnknown_83FE791
-_0802DDA4: .4byte gUnknown_2023E82
-_0802DDA8:
- ldr r0, _0802DE1C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802DDCC
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _0802DDCC
- movs r0, 0x5
- bl PlaySE
- bl sub_802DCF8
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_802DCB8
-_0802DDCC:
- ldr r0, _0802DE1C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802DDF2
- ldr r4, _0802DE20 @ =gUnknown_2023E82
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _0802DDF2
- movs r0, 0x5
- bl PlaySE
- bl sub_802DCF8
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802DCB8
-_0802DDF2:
- ldr r0, _0802DE1C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802DE24
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802DE20 @ =gUnknown_2023E82
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _0802DE36
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0x3
- bl BeginFastPaletteFade
- b _0802DFA6
- .align 2, 0
-_0802DE1C: .4byte gMain
-_0802DE20: .4byte gUnknown_2023E82
-_0802DE24:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0802DE2E
- b _0802DFA6
-_0802DE2E:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802DE3C @ =gUnknown_2023E82
-_0802DE36:
- movs r0, 0x4
- strb r0, [r1]
- b _0802DFA6
- .align 2, 0
-_0802DE3C: .4byte gUnknown_2023E82
-_0802DE40:
- ldr r0, _0802DEFC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802DE4E
- b _0802DFA6
-_0802DE4E:
- ldr r7, _0802DF00 @ =gBattlerPartyIndexes
- ldr r0, _0802DF04 @ =sBattler_AI
- mov r10, r0
- ldrb r0, [r0]
- movs r4, 0x1
- eors r0, r4
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r1, 0x64
- mov r9, r1
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- ldr r1, _0802DF08 @ =gEnemyParty
- mov r8, r1
- add r0, r8
- ldr r1, _0802DF0C @ =gBattleStruct
- ldr r2, [r1]
- adds r2, 0x6D
- movs r1, 0x2
- bl GetMonData
- bl FreeAllWindowBuffers
- mov r2, r10
- ldrb r0, [r2]
- eors r0, r4
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- movs r1, 0xB
- bl GetMonData
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- mov r2, r10
- ldrb r0, [r2]
- eors r0, r4
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- bl GetMonGender
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- mov r2, r10
- ldrb r0, [r2]
- eors r4, r0
- lsls r4, 1
- adds r4, r7
- ldrh r0, [r4]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- movs r1, 0
- movs r2, 0
- bl GetMonData
- ldr r2, _0802DF0C @ =gBattleStruct
- ldr r1, [r2]
- adds r1, 0x6D
- str r0, [sp]
- ldr r0, _0802DF10 @ =sub_8011100
- str r0, [sp, 0x4]
- movs r0, 0x2
- adds r2, r6, 0
- adds r3, r5, 0
- bl DoNamingScreen
- ldr r1, _0802DF14 @ =gUnknown_2023E82
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0802DFA6
- .align 2, 0
-_0802DEFC: .4byte gPaletteFade
-_0802DF00: .4byte gBattlerPartyIndexes
-_0802DF04: .4byte sBattler_AI
-_0802DF08: .4byte gEnemyParty
-_0802DF0C: .4byte gBattleStruct
-_0802DF10: .4byte sub_8011100
-_0802DF14: .4byte gUnknown_2023E82
-_0802DF18:
- ldr r0, _0802DF54 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0802DF58 @ =sub_8011100
- cmp r1, r0
- bne _0802DFA6
- ldr r0, _0802DF5C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802DFA6
- ldr r2, _0802DF60 @ =gBattlerPartyIndexes
- ldr r0, _0802DF64 @ =sBattler_AI
- ldrb r1, [r0]
- movs r0, 0x1
- eors r0, r1
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802DF68 @ =gEnemyParty
- adds r0, r1
- ldr r1, _0802DF6C @ =gBattleStruct
- ldr r2, [r1]
- adds r2, 0x6D
- movs r1, 0x2
- bl SetMonData
- b _0802DF8C
- .align 2, 0
-_0802DF54: .4byte gMain
-_0802DF58: .4byte sub_8011100
-_0802DF5C: .4byte gPaletteFade
-_0802DF60: .4byte gBattlerPartyIndexes
-_0802DF64: .4byte sBattler_AI
-_0802DF68: .4byte gEnemyParty
-_0802DF6C: .4byte gBattleStruct
-_0802DF70:
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _0802DF8C
- ldr r1, _0802DF88 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802DFA6
- .align 2, 0
-_0802DF88: .4byte gUnknown_2023D74
-_0802DF8C:
- ldr r3, _0802DFB8 @ =gUnknown_2023D74
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802DFA6:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DFB8: .4byte gUnknown_2023D74
- thumb_func_end sub_802DD38
-
- thumb_func_start atkF4_subattackerhpbydmg
-atkF4_subattackerhpbydmg: @ 802DFBC
- ldr r2, _0802DFDC @ =gBattleMons
- ldr r0, _0802DFE0 @ =sBattler_AI
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldr r0, _0802DFE4 @ =gBattleMoveDamage
- ldr r2, [r0]
- ldrh r0, [r1, 0x28]
- subs r0, r2
- strh r0, [r1, 0x28]
- ldr r1, _0802DFE8 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802DFDC: .4byte gBattleMons
-_0802DFE0: .4byte sBattler_AI
-_0802DFE4: .4byte gBattleMoveDamage
-_0802DFE8: .4byte gUnknown_2023D74
- thumb_func_end atkF4_subattackerhpbydmg
-
- thumb_func_start atkF5_removeattackerstatus1
-atkF5_removeattackerstatus1: @ 802DFEC
- ldr r1, _0802E008 @ =gBattleMons
- ldr r0, _0802E00C @ =sBattler_AI
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- ldr r1, _0802E010 @ =gUnknown_2023D74
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802E008: .4byte gBattleMons
-_0802E00C: .4byte sBattler_AI
-_0802E010: .4byte gUnknown_2023D74
- thumb_func_end atkF5_removeattackerstatus1
-
- thumb_func_start sub_802E014
-sub_802E014: @ 802E014
- ldr r1, _0802E01C @ =gUnknown_2023BE3
- movs r0, 0xC
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0802E01C: .4byte gUnknown_2023BE3
- thumb_func_end sub_802E014
-
- thumb_func_start sub_802E020
-sub_802E020: @ 802E020
- ldr r1, _0802E030 @ =gUnknown_2023BE3
- movs r0, 0xC
- strb r0, [r1]
- ldr r1, _0802E034 @ =gUnknown_2023BE2
- ldr r0, _0802E038 @ =gBattlersCount
- ldrb r0, [r0]
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0802E030: .4byte gUnknown_2023BE3
-_0802E034: .4byte gUnknown_2023BE2
-_0802E038: .4byte gBattlersCount
- thumb_func_end sub_802E020
-
- .align 2, 0 @ Don't pad with nop.