summaryrefslogtreecommitdiff
path: root/asm/battle_ai.s
diff options
context:
space:
mode:
authorProjectRevoTPP <projectrevotpp@hotmail.com>2016-11-14 22:28:20 -0500
committerYamaArashi <YamaArashi@users.noreply.github.com>2016-11-14 19:28:20 -0800
commita07e8aa2f473ffe4217e0d48c20c14c67b9e9d99 (patch)
treecbf6e3e9bb51a3495df47a93ebb8dbb0bf744e4d /asm/battle_ai.s
parentc293f7966e4e991e404631dd445d29ce1f43542b (diff)
Start decompiling battle_ai.c cmd functions (#100)
* begin decompiling battle AI macros * decompile more battle AI macros * nonmatching function * decompile BattleAICmd_get_ability * current nonmatching work * get BattleAICmd_unk_30 a bit closer * get battle_ai.c into a mergable state.
Diffstat (limited to 'asm/battle_ai.s')
-rw-r--r--asm/battle_ai.s2943
1 files changed, 95 insertions, 2848 deletions
diff --git a/asm/battle_ai.s b/asm/battle_ai.s
index 3efe87815..78e928ac7 100644
--- a/asm/battle_ai.s
+++ b/asm/battle_ai.s
@@ -5,2760 +5,7 @@
.syntax unified
.text
-
- thumb_func_start BattleAICmd_if_random
-BattleAICmd_if_random: @ 810752C
- push {lr}
- bl Random
- lsls r0, 16
- movs r1, 0xFF
- lsls r1, 16
- ldr r3, _08107560 @ =gUnknown_02039238
- ldr r2, [r3]
- ands r1, r0
- lsrs r1, 16
- ldrb r0, [r2, 0x1]
- cmp r1, r0
- bcs _08107564
- 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 _08107568
- .align 2, 0
-_08107560: .4byte gUnknown_02039238
-_08107564:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107568:
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_random
-
- thumb_func_start BattleAICmd_if_not_random
-BattleAICmd_if_not_random: @ 810756C
- push {lr}
- bl Random
- lsls r0, 16
- movs r1, 0xFF
- lsls r1, 16
- ldr r3, _081075A0 @ =gUnknown_02039238
- ldr r2, [r3]
- ands r1, r0
- lsrs r1, 16
- ldrb r0, [r2, 0x1]
- cmp r1, r0
- bls _081075A4
- 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 _081075A8
- .align 2, 0
-_081075A0: .4byte gUnknown_02039238
-_081075A4:
- adds r0, r2, 0x6
- str r0, [r3]
-_081075A8:
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_not_random
-
- thumb_func_start BattleAICmd_if_random_1
-BattleAICmd_if_random_1: @ 81075AC
- push {lr}
- bl Random
- lsls r0, 16
- movs r1, 0xFF
- lsls r1, 16
- ldr r3, _081075E0 @ =gUnknown_02039238
- ldr r2, [r3]
- ands r1, r0
- lsrs r1, 16
- ldrb r0, [r2, 0x1]
- cmp r1, r0
- bne _081075E4
- 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 _081075E8
- .align 2, 0
-_081075E0: .4byte gUnknown_02039238
-_081075E4:
- adds r0, r2, 0x6
- str r0, [r3]
-_081075E8:
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_random_1
-
- thumb_func_start BattleAICmd_if_not_random_1
-BattleAICmd_if_not_random_1: @ 81075EC
- push {lr}
- bl Random
- lsls r0, 16
- movs r1, 0xFF
- lsls r1, 16
- ldr r3, _08107620 @ =gUnknown_02039238
- ldr r2, [r3]
- ands r1, r0
- lsrs r1, 16
- ldrb r0, [r2, 0x1]
- cmp r1, r0
- beq _08107624
- 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 _08107628
- .align 2, 0
-_08107620: .4byte gUnknown_02039238
-_08107624:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107628:
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_not_random_1
-
- thumb_func_start BattleAICmd_score
-BattleAICmd_score: @ 810762C
- push {r4,r5,lr}
- ldr r2, _08107660 @ =0x02016800
- ldrb r1, [r2, 0x1]
- adds r3, r2, 0x4
- adds r1, r3
- ldr r4, _08107664 @ =gUnknown_02039238
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- ldrb r5, [r1]
- adds r0, r5
- strb r0, [r1]
- ldrb r0, [r2, 0x1]
- adds r1, r0, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bge _08107652
- movs r0, 0
- strb r0, [r1]
-_08107652:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08107660: .4byte 0x02016800
-_08107664: .4byte gUnknown_02039238
- thumb_func_end BattleAICmd_score
-
- thumb_func_start BattleAICmd_if_hp_less_than
-BattleAICmd_if_hp_less_than: @ 8107668
- push {r4,lr}
- ldr r0, _0810767C @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08107684
- ldr r0, _08107680 @ =gUnknown_02024C07
- b _08107686
- .align 2, 0
-_0810767C: .4byte gUnknown_02039238
-_08107680: .4byte gUnknown_02024C07
-_08107684:
- ldr r0, _081076BC @ =gUnknown_02024C08
-_08107686:
- ldrb r1, [r0]
- ldr r2, _081076C0 @ =gBattleMons
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1, 0x28]
- movs r0, 0x64
- muls r0, r2
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- cmp r0, r1
- bcs _081076C4
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _081076C8
- .align 2, 0
-_081076BC: .4byte gUnknown_02024C08
-_081076C0: .4byte gBattleMons
-_081076C4:
- adds r0, r2, 0x7
- str r0, [r4]
-_081076C8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_hp_less_than
-
- thumb_func_start BattleAICmd_if_hp_more_than
-BattleAICmd_if_hp_more_than: @ 81076D0
- push {r4,lr}
- ldr r0, _081076E4 @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _081076EC
- ldr r0, _081076E8 @ =gUnknown_02024C07
- b _081076EE
- .align 2, 0
-_081076E4: .4byte gUnknown_02039238
-_081076E8: .4byte gUnknown_02024C07
-_081076EC:
- ldr r0, _08107724 @ =gUnknown_02024C08
-_081076EE:
- ldrb r1, [r0]
- ldr r2, _08107728 @ =gBattleMons
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1, 0x28]
- movs r0, 0x64
- muls r0, r2
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- cmp r0, r1
- bls _0810772C
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107730
- .align 2, 0
-_08107724: .4byte gUnknown_02024C08
-_08107728: .4byte gBattleMons
-_0810772C:
- adds r0, r2, 0x7
- str r0, [r4]
-_08107730:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_hp_more_than
-
- thumb_func_start BattleAICmd_if_hp_equal
-BattleAICmd_if_hp_equal: @ 8107738
- push {r4,lr}
- ldr r0, _0810774C @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08107754
- ldr r0, _08107750 @ =gUnknown_02024C07
- b _08107756
- .align 2, 0
-_0810774C: .4byte gUnknown_02039238
-_08107750: .4byte gUnknown_02024C07
-_08107754:
- ldr r0, _0810778C @ =gUnknown_02024C08
-_08107756:
- ldrb r1, [r0]
- ldr r2, _08107790 @ =gBattleMons
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1, 0x28]
- movs r0, 0x64
- muls r0, r2
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- cmp r0, r1
- bne _08107794
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107798
- .align 2, 0
-_0810778C: .4byte gUnknown_02024C08
-_08107790: .4byte gBattleMons
-_08107794:
- adds r0, r2, 0x7
- str r0, [r4]
-_08107798:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_hp_equal
-
- thumb_func_start BattleAICmd_if_hp_not_equal
-BattleAICmd_if_hp_not_equal: @ 81077A0
- push {r4,lr}
- ldr r0, _081077B4 @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _081077BC
- ldr r0, _081077B8 @ =gUnknown_02024C07
- b _081077BE
- .align 2, 0
-_081077B4: .4byte gUnknown_02039238
-_081077B8: .4byte gUnknown_02024C07
-_081077BC:
- ldr r0, _081077F4 @ =gUnknown_02024C08
-_081077BE:
- ldrb r1, [r0]
- ldr r2, _081077F8 @ =gBattleMons
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1, 0x28]
- movs r0, 0x64
- muls r0, r2
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- cmp r0, r1
- beq _081077FC
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107800
- .align 2, 0
-_081077F4: .4byte gUnknown_02024C08
-_081077F8: .4byte gBattleMons
-_081077FC:
- adds r0, r2, 0x7
- str r0, [r4]
-_08107800:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_hp_not_equal
-
- thumb_func_start BattleAICmd_if_status
-BattleAICmd_if_status: @ 8107808
- push {r4,r5,lr}
- ldr r0, _0810781C @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _08107824
- ldr r0, _08107820 @ =gUnknown_02024C07
- b _08107826
- .align 2, 0
-_0810781C: .4byte gUnknown_02039238
-_08107820: .4byte gUnknown_02024C07
-_08107824:
- ldr r0, _08107868 @ =gUnknown_02024C08
-_08107826:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _0810786C @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- beq _08107870
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _08107876
- .align 2, 0
-_08107868: .4byte gUnknown_02024C08
-_0810786C: .4byte gBattleMons
-_08107870:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_08107876:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_status
-
- thumb_func_start BattleAICmd_if_not_status
-BattleAICmd_if_not_status: @ 810787C
- push {r4,r5,lr}
- ldr r0, _08107890 @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _08107898
- ldr r0, _08107894 @ =gUnknown_02024C07
- b _0810789A
- .align 2, 0
-_08107890: .4byte gUnknown_02039238
-_08107894: .4byte gUnknown_02024C07
-_08107898:
- ldr r0, _081078DC @ =gUnknown_02024C08
-_0810789A:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _081078E0 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- bne _081078E4
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _081078EA
- .align 2, 0
-_081078DC: .4byte gUnknown_02024C08
-_081078E0: .4byte gBattleMons
-_081078E4:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_081078EA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_not_status
-
- thumb_func_start BattleAICmd_if_status2
-BattleAICmd_if_status2: @ 81078F0
- push {r4,r5,lr}
- ldr r0, _08107904 @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _0810790C
- ldr r0, _08107908 @ =gUnknown_02024C07
- b _0810790E
- .align 2, 0
-_08107904: .4byte gUnknown_02039238
-_08107908: .4byte gUnknown_02024C07
-_0810790C:
- ldr r0, _08107950 @ =gUnknown_02024C08
-_0810790E:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _08107954 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- beq _08107958
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _0810795E
- .align 2, 0
-_08107950: .4byte gUnknown_02024C08
-_08107954: .4byte gBattleMons
-_08107958:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_0810795E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_status2
-
- thumb_func_start BattleAICmd_if_not_status2
-BattleAICmd_if_not_status2: @ 8107964
- push {r4,r5,lr}
- ldr r0, _08107978 @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _08107980
- ldr r0, _0810797C @ =gUnknown_02024C07
- b _08107982
- .align 2, 0
-_08107978: .4byte gUnknown_02039238
-_0810797C: .4byte gUnknown_02024C07
-_08107980:
- ldr r0, _081079C4 @ =gUnknown_02024C08
-_08107982:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _081079C8 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- bne _081079CC
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _081079D2
- .align 2, 0
-_081079C4: .4byte gUnknown_02024C08
-_081079C8: .4byte gBattleMons
-_081079CC:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_081079D2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_not_status2
-
- thumb_func_start BattleAICmd_if_status3
-BattleAICmd_if_status3: @ 81079D8
- push {r4,r5,lr}
- ldr r0, _081079EC @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _081079F4
- ldr r0, _081079F0 @ =gUnknown_02024C07
- b _081079F6
- .align 2, 0
-_081079EC: .4byte gUnknown_02039238
-_081079F0: .4byte gUnknown_02024C07
-_081079F4:
- ldr r0, _08107A34 @ =gUnknown_02024C08
-_081079F6:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- ldr r2, _08107A38 @ =gUnknown_02024C98
- lsls r0, r4, 2
- adds r0, r2
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- beq _08107A3C
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _08107A42
- .align 2, 0
-_08107A34: .4byte gUnknown_02024C08
-_08107A38: .4byte gUnknown_02024C98
-_08107A3C:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_08107A42:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_status3
-
- thumb_func_start BattleAICmd_if_not_status3
-BattleAICmd_if_not_status3: @ 8107A48
- push {r4,r5,lr}
- ldr r0, _08107A5C @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _08107A64
- ldr r0, _08107A60 @ =gUnknown_02024C07
- b _08107A66
- .align 2, 0
-_08107A5C: .4byte gUnknown_02039238
-_08107A60: .4byte gUnknown_02024C07
-_08107A64:
- ldr r0, _08107AA4 @ =gUnknown_02024C08
-_08107A66:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- ldr r2, _08107AA8 @ =gUnknown_02024C98
- lsls r0, r4, 2
- adds r0, r2
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- bne _08107AAC
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _08107AB2
- .align 2, 0
-_08107AA4: .4byte gUnknown_02024C08
-_08107AA8: .4byte gUnknown_02024C98
-_08107AAC:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_08107AB2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_not_status3
-
- thumb_func_start BattleAICmd_if_status4
-BattleAICmd_if_status4: @ 8107AB8
- push {r4,lr}
- ldr r0, _08107AC8 @ =gUnknown_02039238
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _08107AD0
- ldr r0, _08107ACC @ =gUnknown_02024C07
- b _08107AD2
- .align 2, 0
-_08107AC8: .4byte gUnknown_02039238
-_08107ACC: .4byte gUnknown_02024C07
-_08107AD0:
- ldr r0, _08107B1C @ =gUnknown_02024C08
-_08107AD2:
- ldrb r0, [r0]
- bl battle_get_per_side_status
- movs r2, 0x1
- ands r2, r0
- ldr r4, _08107B20 @ =gUnknown_02039238
- ldr r3, [r4]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- ldr r0, _08107B24 @ =gUnknown_02024C7A
- lsls r2, 1
- adds r2, r0
- ldrh r0, [r2]
- ands r0, r1
- cmp r0, 0
- beq _08107B28
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107B2E
- .align 2, 0
-_08107B1C: .4byte gUnknown_02024C08
-_08107B20: .4byte gUnknown_02039238
-_08107B24: .4byte gUnknown_02024C7A
-_08107B28:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r4]
-_08107B2E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_status4
-
- thumb_func_start BattleAICmd_if_not_status4
-BattleAICmd_if_not_status4: @ 8107B34
- push {r4,lr}
- ldr r0, _08107B44 @ =gUnknown_02039238
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _08107B4C
- ldr r0, _08107B48 @ =gUnknown_02024C07
- b _08107B4E
- .align 2, 0
-_08107B44: .4byte gUnknown_02039238
-_08107B48: .4byte gUnknown_02024C07
-_08107B4C:
- ldr r0, _08107B98 @ =gUnknown_02024C08
-_08107B4E:
- ldrb r0, [r0]
- bl battle_get_per_side_status
- movs r2, 0x1
- ands r2, r0
- ldr r4, _08107B9C @ =gUnknown_02039238
- ldr r3, [r4]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- ldr r0, _08107BA0 @ =gUnknown_02024C7A
- lsls r2, 1
- adds r2, r0
- ldrh r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _08107BA4
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107BAA
- .align 2, 0
-_08107B98: .4byte gUnknown_02024C08
-_08107B9C: .4byte gUnknown_02039238
-_08107BA0: .4byte gUnknown_02024C7A
-_08107BA4:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r4]
-_08107BAA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_not_status4
-
- thumb_func_start BattleAICmd_if_less_than
-BattleAICmd_if_less_than: @ 8107BB0
- push {lr}
- ldr r0, _08107BD8 @ =0x02016800
- ldr r3, _08107BDC @ =gUnknown_02039238
- ldr r2, [r3]
- ldr r0, [r0, 0x8]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bcs _08107BE0
- 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 _08107BE4
- .align 2, 0
-_08107BD8: .4byte 0x02016800
-_08107BDC: .4byte gUnknown_02039238
-_08107BE0:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107BE4:
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_less_than
-
- thumb_func_start BattleAICmd_if_more_than
-BattleAICmd_if_more_than: @ 8107BE8
- push {lr}
- ldr r0, _08107C10 @ =0x02016800
- ldr r3, _08107C14 @ =gUnknown_02039238
- ldr r2, [r3]
- ldr r0, [r0, 0x8]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bls _08107C18
- 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 _08107C1C
- .align 2, 0
-_08107C10: .4byte 0x02016800
-_08107C14: .4byte gUnknown_02039238
-_08107C18:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107C1C:
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_more_than
-
- thumb_func_start BattleAICmd_if_equal
-BattleAICmd_if_equal: @ 8107C20
- push {lr}
- ldr r0, _08107C48 @ =0x02016800
- ldr r3, _08107C4C @ =gUnknown_02039238
- ldr r2, [r3]
- ldr r0, [r0, 0x8]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bne _08107C50
- 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 _08107C54
- .align 2, 0
-_08107C48: .4byte 0x02016800
-_08107C4C: .4byte gUnknown_02039238
-_08107C50:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107C54:
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_equal
-
- thumb_func_start BattleAICmd_if_not_equal
-BattleAICmd_if_not_equal: @ 8107C58
- push {lr}
- ldr r0, _08107C80 @ =0x02016800
- ldr r3, _08107C84 @ =gUnknown_02039238
- ldr r2, [r3]
- ldr r0, [r0, 0x8]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- beq _08107C88
- 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 _08107C8C
- .align 2, 0
-_08107C80: .4byte 0x02016800
-_08107C84: .4byte gUnknown_02039238
-_08107C88:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107C8C:
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_not_equal
-
- thumb_func_start BattleAICmd_if_less_than_32
-BattleAICmd_if_less_than_32: @ 8107C90
- push {lr}
- ldr r3, _08107CCC @ =gUnknown_02039238
- 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
- ldr r0, _08107CD0 @ =0x02016800
- ldr r0, [r0, 0x8]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08107CD4
- 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]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107CDA
- .align 2, 0
-_08107CCC: .4byte gUnknown_02039238
-_08107CD0: .4byte 0x02016800
-_08107CD4:
- adds r0, r2, 0
- adds r0, 0x9
- str r0, [r3]
-_08107CDA:
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_less_than_32
-
- thumb_func_start BattleAICmd_if_more_than_32
-BattleAICmd_if_more_than_32: @ 8107CE0
- push {lr}
- ldr r3, _08107D1C @ =gUnknown_02039238
- 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
- ldr r0, _08107D20 @ =0x02016800
- ldr r0, [r0, 0x8]
- ldrb r1, [r1]
- cmp r0, r1
- bls _08107D24
- 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]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107D2A
- .align 2, 0
-_08107D1C: .4byte gUnknown_02039238
-_08107D20: .4byte 0x02016800
-_08107D24:
- adds r0, r2, 0
- adds r0, 0x9
- str r0, [r3]
-_08107D2A:
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_more_than_32
-
- thumb_func_start BattleAICmd_if_equal_32
-BattleAICmd_if_equal_32: @ 8107D30
- push {lr}
- ldr r3, _08107D6C @ =gUnknown_02039238
- 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
- ldr r0, _08107D70 @ =0x02016800
- ldr r0, [r0, 0x8]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08107D74
- 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]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107D7A
- .align 2, 0
-_08107D6C: .4byte gUnknown_02039238
-_08107D70: .4byte 0x02016800
-_08107D74:
- adds r0, r2, 0
- adds r0, 0x9
- str r0, [r3]
-_08107D7A:
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_equal_32
-
- thumb_func_start BattleAICmd_if_not_equal_32
-BattleAICmd_if_not_equal_32: @ 8107D80
- push {lr}
- ldr r3, _08107DBC @ =gUnknown_02039238
- 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
- ldr r0, _08107DC0 @ =0x02016800
- ldr r0, [r0, 0x8]
- ldrb r1, [r1]
- cmp r0, r1
- beq _08107DC4
- 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]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107DCA
- .align 2, 0
-_08107DBC: .4byte gUnknown_02039238
-_08107DC0: .4byte 0x02016800
-_08107DC4:
- adds r0, r2, 0
- adds r0, 0x9
- str r0, [r3]
-_08107DCA:
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_not_equal_32
-
- thumb_func_start BattleAICmd_if_move
-BattleAICmd_if_move: @ 8107DD0
- push {lr}
- ldr r3, _08107E00 @ =gUnknown_02039238
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r0, _08107E04 @ =0x02016800
- ldrh r0, [r0, 0x2]
- cmp r0, r1
- bne _08107E08
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107E0C
- .align 2, 0
-_08107E00: .4byte gUnknown_02039238
-_08107E04: .4byte 0x02016800
-_08107E08:
- adds r0, r2, 0x7
- str r0, [r3]
-_08107E0C:
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_move
-
- thumb_func_start BattleAICmd_if_not_move
-BattleAICmd_if_not_move: @ 8107E10
- push {lr}
- ldr r3, _08107E40 @ =gUnknown_02039238
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r0, _08107E44 @ =0x02016800
- ldrh r0, [r0, 0x2]
- cmp r0, r1
- beq _08107E48
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107E4C
- .align 2, 0
-_08107E40: .4byte gUnknown_02039238
-_08107E44: .4byte 0x02016800
-_08107E48:
- adds r0, r2, 0x7
- str r0, [r3]
-_08107E4C:
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_not_move
-
- thumb_func_start BattleAICmd_if_in_bytes
-BattleAICmd_if_in_bytes: @ 8107E50
- push {r4,lr}
- ldr r2, _08107E98 @ =gUnknown_02039238
- ldr r1, [r2]
- ldrb r3, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldrb r0, [r3]
- cmp r0, 0xFF
- beq _08107EA8
- ldr r0, _08107E9C @ =0x02016800
- ldr r1, [r0, 0x8]
- adds r4, r2, 0
-_08107E76:
- ldrb r0, [r3]
- cmp r1, r0
- bne _08107EA0
- ldr r2, [r4]
- 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]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107EAE
- .align 2, 0
-_08107E98: .4byte gUnknown_02039238
-_08107E9C: .4byte 0x02016800
-_08107EA0:
- adds r3, 0x1
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _08107E76
-_08107EA8:
- ldr r0, [r2]
- adds r0, 0x9
- str r0, [r2]
-_08107EAE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_in_bytes
-
- thumb_func_start BattleAICmd_if_not_in_bytes
-BattleAICmd_if_not_in_bytes: @ 8107EB4
- push {r4,lr}
- ldr r2, _08107EEC @ =gUnknown_02039238
- ldr r1, [r2]
- ldrb r3, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldrb r0, [r3]
- adds r4, r2, 0
- cmp r0, 0xFF
- beq _08107EFC
- ldr r0, _08107EF0 @ =0x02016800
- ldr r2, [r0, 0x8]
- adds r1, r4, 0
-_08107EDC:
- ldrb r0, [r3]
- cmp r2, r0
- bne _08107EF4
- ldr r0, [r1]
- adds r0, 0x9
- str r0, [r1]
- b _08107F14
- .align 2, 0
-_08107EEC: .4byte gUnknown_02039238
-_08107EF0: .4byte 0x02016800
-_08107EF4:
- adds r3, 0x1
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _08107EDC
-_08107EFC:
- ldr r2, [r4]
- 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]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
-_08107F14:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_not_in_bytes
-
- thumb_func_start BattleAICmd_if_in_words
-BattleAICmd_if_in_words: @ 8107F1C
- push {r4,r5,lr}
- ldr r2, _08107F64 @ =gUnknown_02039238
- ldr r1, [r2]
- ldrb r3, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldrh r0, [r3]
- ldr r5, _08107F68 @ =0x0000ffff
- cmp r0, r5
- beq _08107F78
- ldr r0, _08107F6C @ =0x02016800
- ldr r1, [r0, 0x8]
- adds r4, r2, 0
-_08107F44:
- ldrh r0, [r3]
- cmp r1, r0
- bne _08107F70
- ldr r2, [r4]
- 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]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107F7E
- .align 2, 0
-_08107F64: .4byte gUnknown_02039238
-_08107F68: .4byte 0x0000ffff
-_08107F6C: .4byte 0x02016800
-_08107F70:
- adds r3, 0x2
- ldrh r0, [r3]
- cmp r0, r5
- bne _08107F44
-_08107F78:
- ldr r0, [r2]
- adds r0, 0x9
- str r0, [r2]
-_08107F7E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_in_words
-
- thumb_func_start BattleAICmd_if_not_in_words
-BattleAICmd_if_not_in_words: @ 8107F84
- push {r4,r5,lr}
- ldr r2, _08107FBC @ =gUnknown_02039238
- ldr r1, [r2]
- ldrb r3, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldrh r0, [r3]
- ldr r4, _08107FC0 @ =0x0000ffff
- adds r5, r2, 0
- cmp r0, r4
- beq _08107FD0
- ldr r0, _08107FC4 @ =0x02016800
- ldr r2, [r0, 0x8]
- adds r1, r5, 0
-_08107FAE:
- ldrh r0, [r3]
- cmp r2, r0
- bne _08107FC8
- ldr r0, [r1]
- adds r0, 0x9
- str r0, [r1]
- b _08107FE8
- .align 2, 0
-_08107FBC: .4byte gUnknown_02039238
-_08107FC0: .4byte 0x0000ffff
-_08107FC4: .4byte 0x02016800
-_08107FC8:
- adds r3, 0x2
- ldrh r0, [r3]
- cmp r0, r4
- bne _08107FAE
-_08107FD0:
- ldr r2, [r5]
- 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]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
-_08107FE8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_not_in_words
-
- thumb_func_start BattleAICmd_if_user_can_damage
-BattleAICmd_if_user_can_damage: @ 8107FF0
- push {r4,r5,lr}
- movs r3, 0
- ldr r4, _08108030 @ =gUnknown_02039238
- ldr r1, _08108034 @ =gBattleMons
- ldr r0, _08108038 @ =gUnknown_02024C07
- ldrb r2, [r0]
- ldr r5, _0810803C @ =gBattleMoves
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r2, r0, r1
-_08108006:
- ldrh r0, [r2]
- cmp r0, 0
- beq _0810801A
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08108022
-_0810801A:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _08108006
-_08108022:
- cmp r3, 0x4
- bne _08108040
- ldr r0, [r4]
- adds r0, 0x5
- str r0, [r4]
- b _08108058
- .align 2, 0
-_08108030: .4byte gUnknown_02039238
-_08108034: .4byte gBattleMons
-_08108038: .4byte gUnknown_02024C07
-_0810803C: .4byte gBattleMoves
-_08108040:
- 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]
-_08108058:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_user_can_damage
-
- thumb_func_start BattleAICmd_if_user_cant_damage
-BattleAICmd_if_user_cant_damage: @ 8108060
- push {r4,r5,lr}
- movs r3, 0
- ldr r4, _081080A0 @ =gUnknown_02039238
- ldr r1, _081080A4 @ =gBattleMons
- ldr r0, _081080A8 @ =gUnknown_02024C07
- ldrb r2, [r0]
- ldr r5, _081080AC @ =gBattleMoves
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r2, r0, r1
-_08108076:
- ldrh r0, [r2]
- cmp r0, 0
- beq _0810808A
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08108092
-_0810808A:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _08108076
-_08108092:
- cmp r3, 0x4
- beq _081080B0
- ldr r0, [r4]
- adds r0, 0x5
- str r0, [r4]
- b _081080C8
- .align 2, 0
-_081080A0: .4byte gUnknown_02039238
-_081080A4: .4byte gBattleMons
-_081080A8: .4byte gUnknown_02024C07
-_081080AC: .4byte gBattleMoves
-_081080B0:
- 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]
-_081080C8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_user_cant_damage
-
- thumb_func_start BattleAICmd_unk_21
-BattleAICmd_unk_21: @ 81080D0
- ldr r1, _081080E4 @ =0x02016800
- ldr r0, _081080E8 @ =gUnknown_030042E0
- ldrb r0, [r0, 0x13]
- str r0, [r1, 0x8]
- ldr r1, _081080EC @ =gUnknown_02039238
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_081080E4: .4byte 0x02016800
-_081080E8: .4byte gUnknown_030042E0
-_081080EC: .4byte gUnknown_02039238
- thumb_func_end BattleAICmd_unk_21
-
- thumb_func_start BattleAICmd_get_type
-BattleAICmd_get_type: @ 81080F0
- push {r4,lr}
- ldr r1, _08108108 @ =gUnknown_02039238
- ldr r0, [r1]
- ldrb r0, [r0, 0x1]
- adds r4, r1, 0
- cmp r0, 0x4
- bhi _081081B6
- lsls r0, 2
- ldr r1, _0810810C @ =_08108110
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08108108: .4byte gUnknown_02039238
-_0810810C: .4byte _08108110
- .align 2, 0
-_08108110:
- .4byte _08108144
- .4byte _08108124
- .4byte _08108184
- .4byte _08108164
- .4byte _081081A4
-_08108124:
- ldr r3, _08108138 @ =0x02016800
- ldr r2, _0810813C @ =gBattleMons
- ldr r0, _08108140 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x21
- ldrb r0, [r0]
- b _081081B4
- .align 2, 0
-_08108138: .4byte 0x02016800
-_0810813C: .4byte gBattleMons
-_08108140: .4byte gUnknown_02024C07
-_08108144:
- ldr r3, _08108158 @ =0x02016800
- ldr r2, _0810815C @ =gBattleMons
- ldr r0, _08108160 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x21
- ldrb r0, [r0]
- b _081081B4
- .align 2, 0
-_08108158: .4byte 0x02016800
-_0810815C: .4byte gBattleMons
-_08108160: .4byte gUnknown_02024C08
-_08108164:
- ldr r3, _08108178 @ =0x02016800
- ldr r2, _0810817C @ =gBattleMons
- ldr r0, _08108180 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x22
- ldrb r0, [r0]
- b _081081B4
- .align 2, 0
-_08108178: .4byte 0x02016800
-_0810817C: .4byte gBattleMons
-_08108180: .4byte gUnknown_02024C07
-_08108184:
- ldr r3, _08108198 @ =0x02016800
- ldr r2, _0810819C @ =gBattleMons
- ldr r0, _081081A0 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x22
- ldrb r0, [r0]
- b _081081B4
- .align 2, 0
-_08108198: .4byte 0x02016800
-_0810819C: .4byte gBattleMons
-_081081A0: .4byte gUnknown_02024C08
-_081081A4:
- ldr r3, _081081C4 @ =0x02016800
- ldr r2, _081081C8 @ =gBattleMoves
- ldrh r1, [r3, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
-_081081B4:
- str r0, [r3, 0x8]
-_081081B6:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081081C4: .4byte 0x02016800
-_081081C8: .4byte gBattleMoves
- thumb_func_end BattleAICmd_get_type
-
- thumb_func_start BattleAICmd_unk_23
-BattleAICmd_unk_23: @ 81081CC
- ldr r3, _081081E8 @ =0x02016800
- ldr r2, _081081EC @ =gBattleMoves
- ldrh r1, [r3, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- str r0, [r3, 0x8]
- ldr r1, _081081F0 @ =gUnknown_02039238
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_081081E8: .4byte 0x02016800
-_081081EC: .4byte gBattleMoves
-_081081F0: .4byte gUnknown_02039238
- thumb_func_end BattleAICmd_unk_23
-
- thumb_func_start BattleAICmd_unk_24
-BattleAICmd_unk_24: @ 81081F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- movs r3, 0
- ldr r0, _08108328 @ =gUnknown_083F62BC
- ldrh r1, [r0]
- ldr r4, _0810832C @ =0x0000ffff
- ldr r6, _08108330 @ =gBattleMoves
- ldr r5, _08108334 @ =0x02016800
- cmp r1, r4
- beq _0810822E
- ldrh r1, [r5, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r2, [r0]
- ldr r1, _08108328 @ =gUnknown_083F62BC
-_0810821E:
- ldrh r0, [r1]
- cmp r2, r0
- beq _0810822E
- adds r1, 0x2
- adds r3, 0x1
- ldrh r0, [r1]
- cmp r0, r4
- bne _0810821E
-_0810822E:
- ldrh r0, [r5, 0x2]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1, 0x1]
- cmp r0, 0x1
- bhi _08108240
- b _081083B2
-_08108240:
- lsls r0, r3, 1
- ldr r1, _08108328 @ =gUnknown_083F62BC
- adds r0, r1
- ldrh r3, [r0]
- ldr r0, _0810832C @ =0x0000ffff
- cmp r3, r0
- beq _08108250
- b _081083B2
-_08108250:
- ldr r0, _08108338 @ =gUnknown_02024DEC
- movs r1, 0
- strh r1, [r0]
- ldr r2, _0810833C @ =0xfffff81c
- adds r0, r5, r2
- strb r1, [r0]
- adds r2, 0x3
- adds r0, r5, r2
- movs r2, 0x1
- strb r2, [r0]
- ldr r0, _08108340 @ =gUnknown_02024C68
- strb r1, [r0]
- ldr r0, _08108344 @ =gCritMultiplier
- strb r2, [r0]
- movs r6, 0
- mov r9, r3
- ldr r0, _08108328 @ =gUnknown_083F62BC
- ldrh r0, [r0]
- str r0, [sp, 0x10]
-_08108276:
- movs r3, 0
- ldr r5, _08108348 @ =gBattleMons
- lsls r4, r6, 1
- ldr r7, _0810834C @ =gUnknown_02024C07
- lsls r1, r6, 2
- mov r8, r1
- adds r2, r6, 0x1
- mov r10, r2
- ldr r0, [sp, 0x10]
- cmp r0, r9
- beq _081082BA
- ldr r2, _08108330 @ =gBattleMoves
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- adds r0, r4, r0
- adds r1, r5, 0
- adds r1, 0xC
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0]
- ldr r1, _08108328 @ =gUnknown_083F62BC
-_081082AA:
- ldrh r0, [r1]
- cmp r2, r0
- beq _081082BA
- adds r1, 0x2
- adds r3, 0x1
- ldrh r0, [r1]
- cmp r0, r9
- bne _081082AA
-_081082BA:
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- adds r0, r4, r0
- adds r1, r5, 0
- adds r1, 0xC
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, 0
- beq _0810835C
- lsls r0, r3, 1
- ldr r2, _08108328 @ =gUnknown_083F62BC
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r9
- bne _0810835C
- ldr r0, _08108330 @ =gBattleMoves
- ldrh r2, [r1]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0x1
- bls _0810835C
- ldr r5, _08108350 @ =gUnknown_02024BE6
- strh r2, [r5]
- ldrb r0, [r7]
- ldr r4, _08108354 @ =gUnknown_02024C08
- ldrb r1, [r4]
- bl sub_801CAF8
- ldrh r0, [r5]
- ldrb r1, [r7]
- ldrb r2, [r4]
- bl move_effectiveness_something
- mov r4, sp
- add r4, r8
- ldr r2, _08108358 @ =gUnknown_02024BEC
- ldr r0, _08108334 @ =0x02016800
- adds r0, 0x18
- adds r0, r6, r0
- ldrb r1, [r0]
- ldr r0, [r2]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _08108364
- movs r0, 0x1
- str r0, [r4]
- b _08108364
- .align 2, 0
-_08108328: .4byte gUnknown_083F62BC
-_0810832C: .4byte 0x0000ffff
-_08108330: .4byte gBattleMoves
-_08108334: .4byte 0x02016800
-_08108338: .4byte gUnknown_02024DEC
-_0810833C: .4byte 0xfffff81c
-_08108340: .4byte gUnknown_02024C68
-_08108344: .4byte gCritMultiplier
-_08108348: .4byte gBattleMons
-_0810834C: .4byte gUnknown_02024C07
-_08108350: .4byte gUnknown_02024BE6
-_08108354: .4byte gUnknown_02024C08
-_08108358: .4byte gUnknown_02024BEC
-_0810835C:
- mov r1, sp
- add r1, r8
- movs r0, 0
- str r0, [r1]
-_08108364:
- mov r6, r10
- cmp r6, 0x3
- ble _08108276
- movs r6, 0
- ldr r1, _081083A4 @ =0x02016800
- ldrb r0, [r1, 0x1]
- lsls r0, 2
- add r0, sp
- ldr r2, [sp]
- ldr r0, [r0]
- adds r5, r1, 0
- ldr r4, _081083A8 @ =gUnknown_02039238
- cmp r2, r0
- bgt _0810839A
- adds r3, r5, 0
- mov r2, sp
-_08108384:
- adds r2, 0x4
- adds r6, 0x1
- cmp r6, 0x3
- bgt _0810839A
- ldrb r0, [r3, 0x1]
- lsls r0, 2
- add r0, sp
- ldr r1, [r2]
- ldr r0, [r0]
- cmp r1, r0
- ble _08108384
-_0810839A:
- cmp r6, 0x4
- bne _081083AC
- movs r0, 0x2
- str r0, [r5, 0x8]
- b _081083B8
- .align 2, 0
-_081083A4: .4byte 0x02016800
-_081083A8: .4byte gUnknown_02039238
-_081083AC:
- movs r0, 0x1
- str r0, [r5, 0x8]
- b _081083B8
-_081083B2:
- movs r0, 0
- str r0, [r5, 0x8]
- ldr r4, _081083D0 @ =gUnknown_02039238
-_081083B8:
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- 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
-_081083D0: .4byte gUnknown_02039238
- thumb_func_end BattleAICmd_unk_24
-
- thumb_func_start BattleAICmd_get_move
-BattleAICmd_get_move: @ 81083D4
- push {lr}
- ldr r0, _081083EC @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r3, r0, 0
- cmp r1, 0x1
- bne _081083FC
- ldr r2, _081083F0 @ =0x02016800
- ldr r1, _081083F4 @ =gUnknown_02024C34
- ldr r0, _081083F8 @ =gUnknown_02024C07
- b _08108402
- .align 2, 0
-_081083EC: .4byte gUnknown_02039238
-_081083F0: .4byte 0x02016800
-_081083F4: .4byte gUnknown_02024C34
-_081083F8: .4byte gUnknown_02024C07
-_081083FC:
- ldr r2, _08108418 @ =0x02016800
- ldr r1, _0810841C @ =gUnknown_02024C34
- ldr r0, _08108420 @ =gUnknown_02024C08
-_08108402:
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- str r0, [r2, 0x8]
- ldr r0, [r3]
- adds r0, 0x2
- str r0, [r3]
- pop {r0}
- bx r0
- .align 2, 0
-_08108418: .4byte 0x02016800
-_0810841C: .4byte gUnknown_02024C34
-_08108420: .4byte gUnknown_02024C08
- thumb_func_end BattleAICmd_get_move
-
- thumb_func_start BattleAICmd_if_type
-BattleAICmd_if_type: @ 8108424
- push {lr}
- ldr r3, _0810844C @ =gUnknown_02039238
- ldr r2, [r3]
- ldrb r0, [r2, 0x1]
- ldr r1, _08108450 @ =0x02016800
- ldr r1, [r1, 0x8]
- cmp r0, r1
- bne _08108454
- 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 _08108458
- .align 2, 0
-_0810844C: .4byte gUnknown_02039238
-_08108450: .4byte 0x02016800
-_08108454:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108458:
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_type
-
- thumb_func_start BattleAICmd_unk_27
-BattleAICmd_unk_27: @ 810845C
- push {lr}
- ldr r3, _08108484 @ =gUnknown_02039238
- ldr r2, [r3]
- ldrb r0, [r2, 0x1]
- ldr r1, _08108488 @ =0x02016800
- ldr r1, [r1, 0x8]
- cmp r0, r1
- beq _0810848C
- 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 _08108490
- .align 2, 0
-_08108484: .4byte gUnknown_02039238
-_08108488: .4byte 0x02016800
-_0810848C:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108490:
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_unk_27
-
- thumb_func_start BattleAICmd_if_would_go_first
-BattleAICmd_if_would_go_first: @ 8108494
- push {lr}
- ldr r0, _081084CC @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r1, _081084D0 @ =gUnknown_02024C08
- ldrb r1, [r1]
- movs r2, 0x1
- bl b_first_side
- ldr r3, _081084D4 @ =gUnknown_02039238
- ldr r2, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bne _081084D8
- 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 _081084DC
- .align 2, 0
-_081084CC: .4byte gUnknown_02024C07
-_081084D0: .4byte gUnknown_02024C08
-_081084D4: .4byte gUnknown_02039238
-_081084D8:
- adds r0, r2, 0x6
- str r0, [r3]
-_081084DC:
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_would_go_first
-
- thumb_func_start BattleAICmd_if_would_not_go_first
-BattleAICmd_if_would_not_go_first: @ 81084E0
- push {lr}
- ldr r0, _08108518 @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r1, _0810851C @ =gUnknown_02024C08
- ldrb r1, [r1]
- movs r2, 0x1
- bl b_first_side
- ldr r3, _08108520 @ =gUnknown_02039238
- ldr r2, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- beq _08108524
- 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 _08108528
- .align 2, 0
-_08108518: .4byte gUnknown_02024C07
-_0810851C: .4byte gUnknown_02024C08
-_08108520: .4byte gUnknown_02039238
-_08108524:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108528:
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_would_not_go_first
-
- thumb_func_start BattleAICmd_unk_2A
-BattleAICmd_unk_2A: @ 810852C
- bx lr
- thumb_func_end BattleAICmd_unk_2A
-
- thumb_func_start BattleAICmd_unk_2B
-BattleAICmd_unk_2B: @ 8108530
- bx lr
- thumb_func_end BattleAICmd_unk_2B
-
- thumb_func_start BattleAICmd_count_alive_pokemon
-BattleAICmd_count_alive_pokemon: @ 8108534
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r1, _08108550 @ =0x02016800
- movs r0, 0
- str r0, [r1, 0x8]
- ldr r0, _08108554 @ =gUnknown_02039238
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _0810855C
- ldr r0, _08108558 @ =gUnknown_02024C07
- b _0810855E
- .align 2, 0
-_08108550: .4byte 0x02016800
-_08108554: .4byte gUnknown_02039238
-_08108558: .4byte gUnknown_02024C07
-_0810855C:
- ldr r0, _081085A8 @ =gUnknown_02024C08
-_0810855E:
- ldrb r5, [r0]
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _081085AC @ =gEnemyParty
- mov r9, r1
- cmp r0, 0
- bne _08108574
- ldr r0, _081085B0 @ =gPlayerParty
- mov r9, r0
-_08108574:
- ldr r0, _081085B4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081085BC
- ldr r4, _081085B8 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r4
- ldrb r0, [r0]
- mov r8, r0
- adds r0, r5, 0
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrb r6, [r0]
- b _081085C6
- .align 2, 0
-_081085A8: .4byte gUnknown_02024C08
-_081085AC: .4byte gEnemyParty
-_081085B0: .4byte gPlayerParty
-_081085B4: .4byte gUnknown_020239F8
-_081085B8: .4byte gUnknown_02024A6A
-_081085BC:
- ldr r1, _08108624 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrb r6, [r0]
- mov r8, r6
-_081085C6:
- movs r5, 0
- ldr r7, _08108628 @ =0x02016800
-_081085CA:
- cmp r5, r8
- beq _08108608
- cmp r5, r6
- beq _08108608
- movs r0, 0x64
- muls r0, r5
- mov r1, r9
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08108608
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08108608
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08108608
- ldr r0, [r7, 0x8]
- adds r0, 0x1
- str r0, [r7, 0x8]
-_08108608:
- adds r5, 0x1
- cmp r5, 0x5
- ble _081085CA
- ldr r1, _0810862C @ =gUnknown_02039238
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108624: .4byte gUnknown_02024A6A
-_08108628: .4byte 0x02016800
-_0810862C: .4byte gUnknown_02039238
- thumb_func_end BattleAICmd_count_alive_pokemon
-
- thumb_func_start BattleAICmd_unk_2D
-BattleAICmd_unk_2D: @ 8108630
- ldr r1, _08108640 @ =0x02016800
- ldrh r0, [r1, 0x2]
- str r0, [r1, 0x8]
- ldr r1, _08108644 @ =gUnknown_02039238
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08108640: .4byte 0x02016800
-_08108644: .4byte gUnknown_02039238
- thumb_func_end BattleAICmd_unk_2D
-
- thumb_func_start BattleAICmd_unk_2E
-BattleAICmd_unk_2E: @ 8108648
- ldr r3, _08108664 @ =0x02016800
- ldr r2, _08108668 @ =gBattleMoves
- ldrh r1, [r3, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- str r0, [r3, 0x8]
- ldr r1, _0810866C @ =gUnknown_02039238
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08108664: .4byte 0x02016800
-_08108668: .4byte gBattleMoves
-_0810866C: .4byte gUnknown_02039238
- thumb_func_end BattleAICmd_unk_2E
-
- thumb_func_start BattleAICmd_get_ability
-BattleAICmd_get_ability: @ 8108670
- push {r4-r7,lr}
- ldr r0, _08108680 @ =gUnknown_02039238
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _08108688
- ldr r0, _08108684 @ =gUnknown_02024C07
- b _0810868A
- .align 2, 0
-_08108680: .4byte gUnknown_02039238
-_08108684: .4byte gUnknown_02024C07
-_08108688:
- ldr r0, _081086BC @ =gUnknown_02024C08
-_0810868A:
- ldrb r4, [r0]
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08108774
- adds r0, r4, 0
- bl battle_get_per_side_status
- movs r7, 0x1
- adds r1, r7, 0
- ands r1, r0
- ldr r6, _081086C0 @ =0x02016a00
- adds r0, r6, 0
- adds r0, 0x20
- adds r3, r1, r0
- ldrb r0, [r3]
- cmp r0, 0
- beq _081086C8
- ldr r0, _081086C4 @ =0xfffffe00
- adds r1, r6, r0
- ldrb r0, [r3]
- str r0, [r1, 0x8]
- b _08108784
- .align 2, 0
-_081086BC: .4byte gUnknown_02024C08
-_081086C0: .4byte 0x02016a00
-_081086C4: .4byte 0xfffffe00
-_081086C8:
- ldr r1, _081086F4 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r5, r0, r1
- adds r0, r5, 0
- adds r0, 0x20
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x17
- beq _081086E4
- cmp r0, 0x2A
- beq _081086E4
- cmp r0, 0x47
- bne _081086FC
-_081086E4:
- ldr r1, _081086F8 @ =0x02016800
- movs r0, 0x58
- muls r0, r4
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- str r0, [r1, 0x8]
- b _08108784
- .align 2, 0
-_081086F4: .4byte gBattleMons
-_081086F8: .4byte 0x02016800
-_081086FC:
- ldr r4, _08108734 @ =gBaseStats
- ldrh r0, [r5]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r3, r1, r4
- ldrb r0, [r3, 0x16]
- cmp r0, 0
- beq _08108764
- ldrb r0, [r3, 0x17]
- cmp r0, 0
- beq _08108754
- bl Random
- adds r1, r7, 0
- ands r1, r0
- cmp r1, 0
- beq _0810873C
- ldr r0, _08108738 @ =0xfffffe00
- adds r2, r6, r0
- ldrh r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x16]
- b _08108782
- .align 2, 0
-_08108734: .4byte gBaseStats
-_08108738: .4byte 0xfffffe00
-_0810873C:
- ldr r0, _08108750 @ =0xfffffe00
- adds r2, r6, r0
- ldrh r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x17]
- b _08108782
- .align 2, 0
-_08108750: .4byte 0xfffffe00
-_08108754:
- ldr r0, _08108760 @ =0xfffffe00
- adds r1, r6, r0
- ldrb r0, [r3, 0x16]
- str r0, [r1, 0x8]
- b _08108784
- .align 2, 0
-_08108760: .4byte 0xfffffe00
-_08108764:
- ldr r0, _08108770 @ =0xfffffe00
- adds r1, r6, r0
- ldrb r0, [r3, 0x17]
- str r0, [r1, 0x8]
- b _08108784
- .align 2, 0
-_08108770: .4byte 0xfffffe00
-_08108774:
- ldr r2, _08108794 @ =0x02016800
- ldr r1, _08108798 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
-_08108782:
- str r0, [r2, 0x8]
-_08108784:
- ldr r1, _0810879C @ =gUnknown_02039238
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108794: .4byte 0x02016800
-_08108798: .4byte gBattleMons
-_0810879C: .4byte gUnknown_02039238
- thumb_func_end BattleAICmd_get_ability
-
- thumb_func_start BattleAICmd_unk_30
-BattleAICmd_unk_30: @ 81087A0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0810885C @ =gUnknown_02024DEC
- movs r2, 0
- strh r2, [r0]
- ldr r1, _08108860 @ =0x02000000
- ldr r3, _08108864 @ =0x0001601c
- adds r0, r1, r3
- movs r4, 0
- strb r2, [r0]
- adds r3, 0x3
- adds r0, r1, r3
- movs r3, 0x1
- strb r3, [r0]
- ldr r0, _08108868 @ =gUnknown_02024C68
- strb r2, [r0]
- ldr r0, _0810886C @ =gCritMultiplier
- strb r3, [r0]
- movs r0, 0xB4
- lsls r0, 9
- adds r1, r0
- str r4, [r1, 0x8]
- movs r5, 0
- ldr r4, _08108870 @ =gUnknown_02024BEC
- ldr r7, _08108874 @ =gUnknown_02024BE6
- ldr r3, _08108878 @ =gUnknown_02024A8C
- mov r8, r3
- ldr r6, _0810887C @ =gUnknown_02024C07
-_081087DA:
- movs r0, 0x28
- str r0, [r4]
- lsls r1, r5, 1
- ldrb r2, [r6]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0
- add r1, r8
- ldrh r0, [r1]
- strh r0, [r7]
- lsls r0, 16
- cmp r0, 0
- beq _08108844
- ldrh r0, [r7]
- ldrb r1, [r6]
- ldr r2, _08108880 @ =gUnknown_02024C08
- ldrb r2, [r2]
- bl move_effectiveness_something
- ldr r0, [r4]
- cmp r0, 0x78
- bne _0810880A
- movs r0, 0x50
- str r0, [r4]
-_0810880A:
- ldr r0, [r4]
- cmp r0, 0xF0
- bne _08108814
- movs r0, 0xA0
- str r0, [r4]
-_08108814:
- ldr r0, [r4]
- cmp r0, 0x1E
- bne _0810881E
- movs r0, 0x14
- str r0, [r4]
-_0810881E:
- ldr r0, [r4]
- cmp r0, 0xF
- bne _08108828
- movs r0, 0xA
- str r0, [r4]
-_08108828:
- ldr r0, _08108868 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08108838
- movs r0, 0
- str r0, [r4]
-_08108838:
- ldr r2, _08108884 @ =0x02016800
- ldr r0, [r2, 0x8]
- ldr r1, [r4]
- cmp r0, r1
- bcs _08108844
- str r1, [r2, 0x8]
-_08108844:
- adds r5, 0x1
- cmp r5, 0x3
- ble _081087DA
- ldr r1, _08108888 @ =gUnknown_02039238
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810885C: .4byte gUnknown_02024DEC
-_08108860: .4byte 0x02000000
-_08108864: .4byte 0x0001601c
-_08108868: .4byte gUnknown_02024C68
-_0810886C: .4byte gCritMultiplier
-_08108870: .4byte gUnknown_02024BEC
-_08108874: .4byte gUnknown_02024BE6
-_08108878: .4byte gUnknown_02024A8C
-_0810887C: .4byte gUnknown_02024C07
-_08108880: .4byte gUnknown_02024C08
-_08108884: .4byte 0x02016800
-_08108888: .4byte gUnknown_02039238
- thumb_func_end BattleAICmd_unk_30
-
- thumb_func_start BattleAICmd_if_damage_bonus
-BattleAICmd_if_damage_bonus: @ 810888C
- push {r4,r5,lr}
- ldr r0, _08108928 @ =gUnknown_02024DEC
- movs r1, 0
- strh r1, [r0]
- ldr r2, _0810892C @ =0x02000000
- ldr r3, _08108930 @ =0x0001601c
- adds r0, r2, r3
- strb r1, [r0]
- adds r3, 0x3
- adds r0, r2, r3
- movs r3, 0x1
- strb r3, [r0]
- ldr r5, _08108934 @ =gUnknown_02024C68
- strb r1, [r5]
- ldr r0, _08108938 @ =gCritMultiplier
- strb r3, [r0]
- ldr r4, _0810893C @ =gUnknown_02024BEC
- movs r0, 0x28
- str r0, [r4]
- ldr r1, _08108940 @ =gUnknown_02024BE6
- movs r0, 0xB4
- lsls r0, 9
- adds r2, r0
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- ldrh r0, [r1]
- ldr r1, _08108944 @ =gUnknown_02024C07
- ldrb r1, [r1]
- ldr r2, _08108948 @ =gUnknown_02024C08
- ldrb r2, [r2]
- bl move_effectiveness_something
- ldr r0, [r4]
- cmp r0, 0x78
- bne _081088D6
- movs r0, 0x50
- str r0, [r4]
-_081088D6:
- ldr r0, [r4]
- cmp r0, 0xF0
- bne _081088E0
- movs r0, 0xA0
- str r0, [r4]
-_081088E0:
- ldr r0, [r4]
- cmp r0, 0x1E
- bne _081088EA
- movs r0, 0x14
- str r0, [r4]
-_081088EA:
- ldr r0, [r4]
- cmp r0, 0xF
- bne _081088F4
- movs r0, 0xA
- str r0, [r4]
-_081088F4:
- ldrb r1, [r5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08108902
- movs r0, 0
- str r0, [r4]
-_08108902:
- ldrb r0, [r4]
- ldr r3, _0810894C @ =gUnknown_02039238
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bne _08108950
- 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 _08108954
- .align 2, 0
-_08108928: .4byte gUnknown_02024DEC
-_0810892C: .4byte 0x02000000
-_08108930: .4byte 0x0001601c
-_08108934: .4byte gUnknown_02024C68
-_08108938: .4byte gCritMultiplier
-_0810893C: .4byte gUnknown_02024BEC
-_08108940: .4byte gUnknown_02024BE6
-_08108944: .4byte gUnknown_02024C07
-_08108948: .4byte gUnknown_02024C08
-_0810894C: .4byte gUnknown_02039238
-_08108950:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108954:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_damage_bonus
-
- thumb_func_start BattleAICmd_unk_32
-BattleAICmd_unk_32: @ 810895C
- bx lr
- thumb_func_end BattleAICmd_unk_32
-
- thumb_func_start BattleAICmd_unk_33
-BattleAICmd_unk_33: @ 8108960
- bx lr
- thumb_func_end BattleAICmd_unk_33
-
+
thumb_func_start BattleAICmd_if_status_in_party
BattleAICmd_if_status_in_party: @ 8108964
push {r4-r7,lr}
@@ -2766,7 +13,7 @@ BattleAICmd_if_status_in_party: @ 8108964
mov r6, r9
mov r5, r8
push {r5-r7}
- ldr r0, _0810897C @ =gUnknown_02039238
+ ldr r0, _0810897C @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
cmp r1, 0x1
@@ -2774,10 +21,10 @@ BattleAICmd_if_status_in_party: @ 8108964
ldr r1, _08108980 @ =gEnemyParty
b _081089A6
.align 2, 0
-_0810897C: .4byte gUnknown_02039238
+_0810897C: .4byte gAIScriptPtr
_08108980: .4byte gEnemyParty
_08108984:
- ldr r3, _081089A0 @ =gUnknown_02039238
+ ldr r3, _081089A0 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2, 0x6]
ldrb r0, [r2, 0x7]
@@ -2792,7 +39,7 @@ _08108984:
str r1, [r3]
b _08108A12
.align 2, 0
-_081089A0: .4byte gUnknown_02039238
+_081089A0: .4byte gAIScriptPtr
_081089A4:
ldr r1, _08108A20 @ =gPlayerParty
_081089A6:
@@ -2845,7 +92,7 @@ _08108A00:
mov r1, r8
cmp r1, 0x5
ble _081089C8
- ldr r1, _08108A24 @ =gUnknown_02039238
+ ldr r1, _08108A24 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0xA
str r0, [r1]
@@ -2859,7 +106,7 @@ _08108A12:
bx r0
.align 2, 0
_08108A20: .4byte gPlayerParty
-_08108A24: .4byte gUnknown_02039238
+_08108A24: .4byte gAIScriptPtr
thumb_func_end BattleAICmd_if_status_in_party
thumb_func_start BattleAICmd_if_status_not_in_party
@@ -2869,7 +116,7 @@ BattleAICmd_if_status_not_in_party: @ 8108A28
mov r6, r9
mov r5, r8
push {r5-r7}
- ldr r0, _08108A44 @ =gUnknown_02039238
+ ldr r0, _08108A44 @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
adds r2, r0, 0
@@ -2879,7 +126,7 @@ BattleAICmd_if_status_not_in_party: @ 8108A28
mov r10, r0
b _08108A50
.align 2, 0
-_08108A44: .4byte gUnknown_02039238
+_08108A44: .4byte gAIScriptPtr
_08108A48: .4byte gEnemyParty
_08108A4C:
ldr r1, _08108AE4 @ =gPlayerParty
@@ -2937,7 +184,7 @@ _08108AB0:
mov r1, r8
cmp r1, 0x5
ble _08108A6C
- ldr r3, _08108AE8 @ =gUnknown_02039238
+ ldr r3, _08108AE8 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2, 0x6]
ldrb r0, [r2, 0x7]
@@ -2959,7 +206,7 @@ _08108AB0:
bx r0
.align 2, 0
_08108AE4: .4byte gPlayerParty
-_08108AE8: .4byte gUnknown_02039238
+_08108AE8: .4byte gAIScriptPtr
thumb_func_end BattleAICmd_if_status_not_in_party
thumb_func_start BattleAICmd_unk_36
@@ -3001,7 +248,7 @@ _08108B20:
movs r0, 0x3
str r0, [r1, 0x8]
_08108B2E:
- ldr r1, _08108B44 @ =gUnknown_02039238
+ ldr r1, _08108B44 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -3010,7 +257,7 @@ _08108B2E:
.align 2, 0
_08108B3C: .4byte word_2024DB8
_08108B40: .4byte 0x02016800
-_08108B44: .4byte gUnknown_02039238
+_08108B44: .4byte gAIScriptPtr
thumb_func_end BattleAICmd_unk_36
thumb_func_start BattleAICmd_if_effect
@@ -3023,7 +270,7 @@ BattleAICmd_if_effect: @ 8108B48
adds r0, r1
lsls r0, 2
adds r0, r2
- ldr r3, _08108B84 @ =gUnknown_02039238
+ ldr r3, _08108B84 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r0, [r0]
ldrb r1, [r2, 0x1]
@@ -3044,7 +291,7 @@ BattleAICmd_if_effect: @ 8108B48
.align 2, 0
_08108B7C: .4byte gBattleMoves
_08108B80: .4byte 0x02016800
-_08108B84: .4byte gUnknown_02039238
+_08108B84: .4byte gAIScriptPtr
_08108B88:
adds r0, r2, 0x6
str r0, [r3]
@@ -3063,7 +310,7 @@ BattleAICmd_if_not_effect: @ 8108B90
adds r0, r1
lsls r0, 2
adds r0, r2
- ldr r3, _08108BCC @ =gUnknown_02039238
+ ldr r3, _08108BCC @ =gAIScriptPtr
ldr r2, [r3]
ldrb r0, [r0]
ldrb r1, [r2, 0x1]
@@ -3084,7 +331,7 @@ BattleAICmd_if_not_effect: @ 8108B90
.align 2, 0
_08108BC4: .4byte gBattleMoves
_08108BC8: .4byte 0x02016800
-_08108BCC: .4byte gUnknown_02039238
+_08108BCC: .4byte gAIScriptPtr
_08108BD0:
adds r0, r2, 0x6
str r0, [r3]
@@ -3096,7 +343,7 @@ _08108BD4:
thumb_func_start BattleAICmd_if_stat_level_less_than
BattleAICmd_if_stat_level_less_than: @ 8108BD8
push {r4,lr}
- ldr r0, _08108BEC @ =gUnknown_02039238
+ ldr r0, _08108BEC @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
adds r4, r0, 0
@@ -3105,7 +352,7 @@ BattleAICmd_if_stat_level_less_than: @ 8108BD8
ldr r0, _08108BF0 @ =gUnknown_02024C07
b _08108BF6
.align 2, 0
-_08108BEC: .4byte gUnknown_02039238
+_08108BEC: .4byte gAIScriptPtr
_08108BF0: .4byte gUnknown_02024C07
_08108BF4:
ldr r0, _08108C2C @ =gUnknown_02024C08
@@ -3153,7 +400,7 @@ _08108C3A:
thumb_func_start BattleAICmd_if_stat_level_more_than
BattleAICmd_if_stat_level_more_than: @ 8108C40
push {r4,lr}
- ldr r0, _08108C54 @ =gUnknown_02039238
+ ldr r0, _08108C54 @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
adds r4, r0, 0
@@ -3162,7 +409,7 @@ BattleAICmd_if_stat_level_more_than: @ 8108C40
ldr r0, _08108C58 @ =gUnknown_02024C07
b _08108C5E
.align 2, 0
-_08108C54: .4byte gUnknown_02039238
+_08108C54: .4byte gAIScriptPtr
_08108C58: .4byte gUnknown_02024C07
_08108C5C:
ldr r0, _08108C94 @ =gUnknown_02024C08
@@ -3210,7 +457,7 @@ _08108CA2:
thumb_func_start BattleAICmd_if_stat_level_equal
BattleAICmd_if_stat_level_equal: @ 8108CA8
push {r4,lr}
- ldr r0, _08108CBC @ =gUnknown_02039238
+ ldr r0, _08108CBC @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
adds r4, r0, 0
@@ -3219,7 +466,7 @@ BattleAICmd_if_stat_level_equal: @ 8108CA8
ldr r0, _08108CC0 @ =gUnknown_02024C07
b _08108CC6
.align 2, 0
-_08108CBC: .4byte gUnknown_02039238
+_08108CBC: .4byte gAIScriptPtr
_08108CC0: .4byte gUnknown_02024C07
_08108CC4:
ldr r0, _08108CFC @ =gUnknown_02024C08
@@ -3267,7 +514,7 @@ _08108D0A:
thumb_func_start BattleAICmd_if_stat_level_not_equal
BattleAICmd_if_stat_level_not_equal: @ 8108D10
push {r4,lr}
- ldr r0, _08108D24 @ =gUnknown_02039238
+ ldr r0, _08108D24 @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
adds r4, r0, 0
@@ -3276,7 +523,7 @@ BattleAICmd_if_stat_level_not_equal: @ 8108D10
ldr r0, _08108D28 @ =gUnknown_02024C07
b _08108D2E
.align 2, 0
-_08108D24: .4byte gUnknown_02039238
+_08108D24: .4byte gAIScriptPtr
_08108D28: .4byte gUnknown_02024C07
_08108D2C:
ldr r0, _08108D64 @ =gUnknown_02024C08
@@ -3389,7 +636,7 @@ _08108DEE:
ldr r0, [r4]
cmp r1, r0
bgt _08108E4C
- ldr r3, _08108E48 @ =gUnknown_02039238
+ ldr r3, _08108E48 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2, 0x1]
ldrb r0, [r2, 0x2]
@@ -3415,9 +662,9 @@ _08108E38: .4byte gUnknown_02024C07
_08108E3C: .4byte gUnknown_02024C08
_08108E40: .4byte gUnknown_02024BEC
_08108E44: .4byte gBattleMons
-_08108E48: .4byte gUnknown_02039238
+_08108E48: .4byte gAIScriptPtr
_08108E4C:
- ldr r1, _08108E60 @ =gUnknown_02039238
+ ldr r1, _08108E60 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x5
str r0, [r1]
@@ -3428,7 +675,7 @@ _08108E54:
pop {r0}
bx r0
.align 2, 0
-_08108E60: .4byte gUnknown_02039238
+_08108E60: .4byte gAIScriptPtr
thumb_func_end BattleAICmd_if_can_faint
thumb_func_start BattleAICmd_if_cant_faint
@@ -3489,7 +736,7 @@ BattleAICmd_if_cant_faint: @ 8108E64
ldrh r1, [r1, 0x28]
cmp r1, r0
ble _08108F28
- ldr r3, _08108F24 @ =gUnknown_02039238
+ ldr r3, _08108F24 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2, 0x1]
ldrb r0, [r2, 0x2]
@@ -3515,9 +762,9 @@ _08108F14: .4byte gUnknown_02024C07
_08108F18: .4byte gUnknown_02024C08
_08108F1C: .4byte gUnknown_02024BEC
_08108F20: .4byte gBattleMons
-_08108F24: .4byte gUnknown_02039238
+_08108F24: .4byte gAIScriptPtr
_08108F28:
- ldr r1, _08108F38 @ =gUnknown_02039238
+ ldr r1, _08108F38 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x5
str r0, [r1]
@@ -3526,13 +773,13 @@ _08108F30:
pop {r0}
bx r0
.align 2, 0
-_08108F38: .4byte gUnknown_02039238
+_08108F38: .4byte gAIScriptPtr
thumb_func_end BattleAICmd_if_cant_faint
thumb_func_start BattleAICmd_unk_3F
BattleAICmd_unk_3F: @ 8108F3C
push {r4-r7,lr}
- ldr r1, _08108F58 @ =gUnknown_02039238
+ ldr r1, _08108F58 @ =gAIScriptPtr
ldr r0, [r1]
adds r6, r0, 0x2
ldrb r0, [r0, 0x1]
@@ -3545,7 +792,7 @@ BattleAICmd_unk_3F: @ 8108F3C
beq _08108FA8
b _08109008
.align 2, 0
-_08108F58: .4byte gUnknown_02039238
+_08108F58: .4byte gAIScriptPtr
_08108F5C:
cmp r0, 0x2
beq _08108FA8
@@ -3647,7 +894,7 @@ _08109008:
thumb_func_start BattleAICmd_unk_40
BattleAICmd_unk_40: @ 8109010
push {r4-r7,lr}
- ldr r1, _0810902C @ =gUnknown_02039238
+ ldr r1, _0810902C @ =gAIScriptPtr
ldr r0, [r1]
adds r6, r0, 0x2
ldrb r0, [r0, 0x1]
@@ -3660,7 +907,7 @@ BattleAICmd_unk_40: @ 8109010
beq _0810907C
b _081090DC
.align 2, 0
-_0810902C: .4byte gUnknown_02039238
+_0810902C: .4byte gAIScriptPtr
_08109030:
cmp r0, 0x2
beq _0810907C
@@ -3762,7 +1009,7 @@ _081090DC:
thumb_func_start BattleAICmd_if_move_effect
BattleAICmd_if_move_effect: @ 81090E4
push {r4-r7,lr}
- ldr r1, _081090FC @ =gUnknown_02039238
+ ldr r1, _081090FC @ =gAIScriptPtr
ldr r0, [r1]
ldrb r0, [r0, 0x1]
adds r4, r1, 0
@@ -3774,7 +1021,7 @@ BattleAICmd_if_move_effect: @ 81090E4
beq _0810915C
b _081091B8
.align 2, 0
-_081090FC: .4byte gUnknown_02039238
+_081090FC: .4byte gAIScriptPtr
_08109100:
cmp r0, 0x2
beq _0810915C
@@ -3790,7 +1037,7 @@ _08109108:
muls r0, r2
adds r1, 0xC
adds r2, r0, r1
- ldr r5, _08109158 @ =gUnknown_02039238
+ ldr r5, _08109158 @ =gAIScriptPtr
_0810911C:
ldrh r0, [r2]
cmp r0, 0
@@ -3821,7 +1068,7 @@ _0810913E:
_0810914C: .4byte gBattleMons
_08109150: .4byte gUnknown_02024C07
_08109154: .4byte gBattleMoves
-_08109158: .4byte gUnknown_02039238
+_08109158: .4byte gAIScriptPtr
_0810915C:
movs r3, 0
ldr r1, _081091C0 @ =gBattleMons
@@ -3887,7 +1134,7 @@ _081091D0: .4byte gUnknown_02024C08
thumb_func_start BattleAICmd_if_not_move_effect
BattleAICmd_if_not_move_effect: @ 81091D4
push {r4-r6,lr}
- ldr r1, _081091EC @ =gUnknown_02039238
+ ldr r1, _081091EC @ =gAIScriptPtr
ldr r0, [r1]
ldrb r0, [r0, 0x1]
adds r4, r1, 0
@@ -3899,7 +1146,7 @@ BattleAICmd_if_not_move_effect: @ 81091D4
beq _0810925C
b _08109294
.align 2, 0
-_081091EC: .4byte gUnknown_02039238
+_081091EC: .4byte gAIScriptPtr
_081091F0:
cmp r0, 0x2
beq _0810925C
@@ -3915,7 +1162,7 @@ _081091F8:
muls r0, r2
adds r1, 0xC
adds r2, r0, r1
- ldr r5, _08109258 @ =gUnknown_02039238
+ ldr r5, _08109258 @ =gAIScriptPtr
_0810920C:
ldrh r0, [r2]
cmp r0, 0
@@ -3955,7 +1202,7 @@ _0810922E:
_0810924C: .4byte gBattleMons
_08109250: .4byte gUnknown_02024C07
_08109254: .4byte gBattleMoves
-_08109258: .4byte gUnknown_02039238
+_08109258: .4byte gAIScriptPtr
_0810925C:
movs r3, 0
ldr r1, _0810929C @ =0x02016a00
@@ -4001,7 +1248,7 @@ _081092A4: .4byte gBattleMoves
thumb_func_start BattleAICmd_if_last_move_did_damage
BattleAICmd_if_last_move_did_damage: @ 81092A8
push {r4,r5,lr}
- ldr r0, _081092BC @ =gUnknown_02039238
+ ldr r0, _081092BC @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
adds r5, r0, 0
@@ -4010,7 +1257,7 @@ BattleAICmd_if_last_move_did_damage: @ 81092A8
ldr r0, _081092C0 @ =gUnknown_02024C07
b _081092C6
.align 2, 0
-_081092BC: .4byte gUnknown_02039238
+_081092BC: .4byte gAIScriptPtr
_081092C0: .4byte gUnknown_02024C07
_081092C4:
ldr r0, _081092E4 @ =gUnknown_02024C08
@@ -4076,7 +1323,7 @@ _08109328:
thumb_func_start BattleAICmd_if_encored
BattleAICmd_if_encored: @ 8109330
push {r4,lr}
- ldr r4, _08109344 @ =gUnknown_02039238
+ ldr r4, _08109344 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r0, [r3, 0x1]
cmp r0, 0
@@ -4085,7 +1332,7 @@ BattleAICmd_if_encored: @ 8109330
beq _08109370
b _081093AC
.align 2, 0
-_08109344: .4byte gUnknown_02039238
+_08109344: .4byte gAIScriptPtr
_08109348:
ldr r2, _08109364 @ =gUnknown_02024CA8
ldr r0, _08109368 @ =gUnknown_02024A60
@@ -4175,7 +1422,7 @@ BattleAICmd_if_random_2: @ 81093C8
lsrs r0, 24
cmp r0, r4
bcs _08109418
- ldr r3, _08109414 @ =gUnknown_02039238
+ ldr r3, _08109414 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2, 0x1]
ldrb r0, [r2, 0x2]
@@ -4192,9 +1439,9 @@ BattleAICmd_if_random_2: @ 81093C8
.align 2, 0
_0810940C: .4byte 0x02000000
_08109410: .4byte 0x00016088
-_08109414: .4byte gUnknown_02039238
+_08109414: .4byte gAIScriptPtr
_08109418:
- ldr r1, _08109428 @ =gUnknown_02039238
+ ldr r1, _08109428 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x5
str r0, [r1]
@@ -4203,7 +1450,7 @@ _08109420:
pop {r0}
bx r0
.align 2, 0
-_08109428: .4byte gUnknown_02039238
+_08109428: .4byte gAIScriptPtr
thumb_func_end BattleAICmd_if_random_2
thumb_func_start BattleAICmd_unk_47
@@ -4221,7 +1468,7 @@ _08109438: .4byte 0x02016800
thumb_func_start BattleAICmd_get_hold_effect
BattleAICmd_get_hold_effect: @ 810943C
push {r4,lr}
- ldr r0, _0810944C @ =gUnknown_02039238
+ ldr r0, _0810944C @ =gAIScriptPtr
ldr r0, [r0]
ldrb r0, [r0, 0x1]
cmp r0, 0x1
@@ -4229,7 +1476,7 @@ BattleAICmd_get_hold_effect: @ 810943C
ldr r0, _08109450 @ =gUnknown_02024C07
b _08109456
.align 2, 0
-_0810944C: .4byte gUnknown_02039238
+_0810944C: .4byte gAIScriptPtr
_08109450: .4byte gUnknown_02024C07
_08109454:
ldr r0, _0810947C @ =gUnknown_02024C08
@@ -4267,7 +1514,7 @@ _08109488:
lsrs r0, 24
str r0, [r1, 0x8]
_0810949E:
- ldr r1, _081094B4 @ =gUnknown_02039238
+ ldr r1, _081094B4 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x2
str r0, [r1]
@@ -4277,13 +1524,13 @@ _0810949E:
.align 2, 0
_081094AC: .4byte gBattleMons
_081094B0: .4byte 0x02016800
-_081094B4: .4byte gUnknown_02039238
+_081094B4: .4byte gAIScriptPtr
thumb_func_end BattleAICmd_get_hold_effect
thumb_func_start BattleAICmd_get_gender
BattleAICmd_get_gender: @ 81094B8
push {lr}
- ldr r0, _081094C8 @ =gUnknown_02039238
+ ldr r0, _081094C8 @ =gAIScriptPtr
ldr r0, [r0]
ldrb r0, [r0, 0x1]
cmp r0, 0x1
@@ -4291,7 +1538,7 @@ BattleAICmd_get_gender: @ 81094B8
ldr r0, _081094CC @ =gUnknown_02024C07
b _081094D2
.align 2, 0
-_081094C8: .4byte gUnknown_02039238
+_081094C8: .4byte gAIScriptPtr
_081094CC: .4byte gUnknown_02024C07
_081094D0:
ldr r0, _081094FC @ =gUnknown_02024C08
@@ -4310,7 +1557,7 @@ _081094D2:
lsls r0, 24
lsrs r0, 24
str r0, [r1, 0x8]
- ldr r1, _08109508 @ =gUnknown_02039238
+ ldr r1, _08109508 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x2
str r0, [r1]
@@ -4320,13 +1567,13 @@ _081094D2:
_081094FC: .4byte gUnknown_02024C08
_08109500: .4byte gBattleMons
_08109504: .4byte 0x02016800
-_08109508: .4byte gUnknown_02039238
+_08109508: .4byte gAIScriptPtr
thumb_func_end BattleAICmd_get_gender
thumb_func_start BattleAICmd_is_first_turn
BattleAICmd_is_first_turn: @ 810950C
push {r4,lr}
- ldr r0, _08109520 @ =gUnknown_02039238
+ ldr r0, _08109520 @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
adds r4, r0, 0
@@ -4335,7 +1582,7 @@ BattleAICmd_is_first_turn: @ 810950C
ldr r0, _08109524 @ =gUnknown_02024C07
b _0810952A
.align 2, 0
-_08109520: .4byte gUnknown_02039238
+_08109520: .4byte gAIScriptPtr
_08109524: .4byte gUnknown_02024C07
_08109528:
ldr r0, _08109548 @ =gUnknown_02024C08
@@ -4364,7 +1611,7 @@ _08109550: .4byte gUnknown_02024CA8
thumb_func_start BattleAICmd_get_stockpile_count
BattleAICmd_get_stockpile_count: @ 8109554
push {r4,lr}
- ldr r0, _08109568 @ =gUnknown_02039238
+ ldr r0, _08109568 @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
adds r4, r0, 0
@@ -4373,7 +1620,7 @@ BattleAICmd_get_stockpile_count: @ 8109554
ldr r0, _0810956C @ =gUnknown_02024C07
b _08109572
.align 2, 0
-_08109568: .4byte gUnknown_02039238
+_08109568: .4byte gAIScriptPtr
_0810956C: .4byte gUnknown_02024C07
_08109570:
ldr r0, _08109590 @ =gUnknown_02024C08
@@ -4407,7 +1654,7 @@ BattleAICmd_unk_4C: @ 810959C
movs r0, 0x1
ands r0, r1
str r0, [r2, 0x8]
- ldr r1, _081095BC @ =gUnknown_02039238
+ ldr r1, _081095BC @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -4415,13 +1662,13 @@ BattleAICmd_unk_4C: @ 810959C
.align 2, 0
_081095B4: .4byte 0x02016800
_081095B8: .4byte gUnknown_020239F8
-_081095BC: .4byte gUnknown_02039238
+_081095BC: .4byte gAIScriptPtr
thumb_func_end BattleAICmd_unk_4C
thumb_func_start BattleAICmd_get_item
BattleAICmd_get_item: @ 81095C0
push {lr}
- ldr r0, _081095D4 @ =gUnknown_02039238
+ ldr r0, _081095D4 @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
adds r2, r0, 0
@@ -4430,7 +1677,7 @@ BattleAICmd_get_item: @ 81095C0
ldr r0, _081095D8 @ =gUnknown_02024C07
b _081095DE
.align 2, 0
-_081095D4: .4byte gUnknown_02039238
+_081095D4: .4byte gAIScriptPtr
_081095D8: .4byte gUnknown_02024C07
_081095DC:
ldr r0, _081095F8 @ =gUnknown_02024C08
@@ -4465,7 +1712,7 @@ BattleAICmd_unk_4E: @ 8109604
adds r0, r2
ldrb r0, [r0, 0x2]
str r0, [r3, 0x8]
- ldr r1, _08109628 @ =gUnknown_02039238
+ ldr r1, _08109628 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -4473,7 +1720,7 @@ BattleAICmd_unk_4E: @ 8109604
.align 2, 0
_08109620: .4byte 0x02016800
_08109624: .4byte gBattleMoves
-_08109628: .4byte gUnknown_02039238
+_08109628: .4byte gAIScriptPtr
thumb_func_end BattleAICmd_unk_4E
thumb_func_start BattleAICmd_unk_4F
@@ -4487,7 +1734,7 @@ BattleAICmd_unk_4F: @ 810962C
adds r0, r2
ldrb r0, [r0, 0x1]
str r0, [r3, 0x8]
- ldr r1, _08109650 @ =gUnknown_02039238
+ ldr r1, _08109650 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -4495,7 +1742,7 @@ BattleAICmd_unk_4F: @ 810962C
.align 2, 0
_08109648: .4byte 0x02016800
_0810964C: .4byte gBattleMoves
-_08109650: .4byte gUnknown_02039238
+_08109650: .4byte gAIScriptPtr
thumb_func_end BattleAICmd_unk_4F
thumb_func_start BattleAICmd_unk_50
@@ -4509,7 +1756,7 @@ BattleAICmd_unk_50: @ 8109654
adds r0, r2
ldrb r0, [r0]
str r0, [r3, 0x8]
- ldr r1, _08109678 @ =gUnknown_02039238
+ ldr r1, _08109678 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -4517,13 +1764,13 @@ BattleAICmd_unk_50: @ 8109654
.align 2, 0
_08109670: .4byte 0x02016800
_08109674: .4byte gBattleMoves
-_08109678: .4byte gUnknown_02039238
+_08109678: .4byte gAIScriptPtr
thumb_func_end BattleAICmd_unk_50
thumb_func_start BattleAICmd_get_protect_count
BattleAICmd_get_protect_count: @ 810967C
push {r4,lr}
- ldr r0, _08109690 @ =gUnknown_02039238
+ ldr r0, _08109690 @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
adds r4, r0, 0
@@ -4532,7 +1779,7 @@ BattleAICmd_get_protect_count: @ 810967C
ldr r0, _08109694 @ =gUnknown_02024C07
b _0810969A
.align 2, 0
-_08109690: .4byte gUnknown_02039238
+_08109690: .4byte gAIScriptPtr
_08109694: .4byte gUnknown_02024C07
_08109698:
ldr r0, _081096B8 @ =gUnknown_02024C08
@@ -4591,7 +1838,7 @@ BattleAICmd_unk_57: @ 81096D8
thumb_func_start BattleAICmd_call
BattleAICmd_call: @ 81096DC
push {r4,lr}
- ldr r4, _08109708 @ =gUnknown_02039238
+ ldr r4, _08109708 @ =gAIScriptPtr
ldr r0, [r4]
adds r0, 0x5
bl sub_81098C4
@@ -4611,12 +1858,12 @@ BattleAICmd_call: @ 81096DC
pop {r0}
bx r0
.align 2, 0
-_08109708: .4byte gUnknown_02039238
+_08109708: .4byte gAIScriptPtr
thumb_func_end BattleAICmd_call
thumb_func_start BattleAICmd_jump
BattleAICmd_jump: @ 810970C
- ldr r3, _08109728 @ =gUnknown_02039238
+ ldr r3, _08109728 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2, 0x1]
ldrb r0, [r2, 0x2]
@@ -4631,7 +1878,7 @@ BattleAICmd_jump: @ 810970C
str r1, [r3]
bx lr
.align 2, 0
-_08109728: .4byte gUnknown_02039238
+_08109728: .4byte gAIScriptPtr
thumb_func_end BattleAICmd_jump
thumb_func_start BattleAICmd_unk_5A
@@ -4656,7 +1903,7 @@ _08109748: .4byte 0x02016800
thumb_func_start BattleAICmd_if_level_cond
BattleAICmd_if_level_cond: @ 810974C
push {r4,r5,lr}
- ldr r5, _08109764 @ =gUnknown_02039238
+ ldr r5, _08109764 @ =gAIScriptPtr
ldr r4, [r5]
ldrb r0, [r4, 0x1]
cmp r0, 0x1
@@ -4667,7 +1914,7 @@ BattleAICmd_if_level_cond: @ 810974C
beq _0810976E
b _0810981C
.align 2, 0
-_08109764: .4byte gUnknown_02039238
+_08109764: .4byte gAIScriptPtr
_08109768:
cmp r0, 0x2
beq _081097D0
@@ -4776,7 +2023,7 @@ BattleAICmd_if_taunted: @ 8109824
lsls r0, 28
cmp r0, 0
beq _08109864
- ldr r3, _08109860 @ =gUnknown_02039238
+ ldr r3, _08109860 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2, 0x1]
ldrb r0, [r2, 0x2]
@@ -4793,9 +2040,9 @@ BattleAICmd_if_taunted: @ 8109824
.align 2, 0
_08109858: .4byte gUnknown_02024CA8
_0810985C: .4byte gUnknown_02024C08
-_08109860: .4byte gUnknown_02039238
+_08109860: .4byte gAIScriptPtr
_08109864:
- ldr r1, _08109870 @ =gUnknown_02039238
+ ldr r1, _08109870 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x5
str r0, [r1]
@@ -4803,7 +2050,7 @@ _0810986C:
pop {r0}
bx r0
.align 2, 0
-_08109870: .4byte gUnknown_02039238
+_08109870: .4byte gAIScriptPtr
thumb_func_end BattleAICmd_if_taunted
thumb_func_start BattleAICmd_if_not_taunted
@@ -4820,7 +2067,7 @@ BattleAICmd_if_not_taunted: @ 8109874
lsls r0, 28
cmp r0, 0
bne _081098B4
- ldr r3, _081098B0 @ =gUnknown_02039238
+ ldr r3, _081098B0 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2, 0x1]
ldrb r0, [r2, 0x2]
@@ -4837,9 +2084,9 @@ BattleAICmd_if_not_taunted: @ 8109874
.align 2, 0
_081098A8: .4byte gUnknown_02024CA8
_081098AC: .4byte gUnknown_02024C08
-_081098B0: .4byte gUnknown_02039238
+_081098B0: .4byte gAIScriptPtr
_081098B4:
- ldr r1, _081098C0 @ =gUnknown_02039238
+ ldr r1, _081098C0 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x5
str r0, [r1]
@@ -4847,7 +2094,7 @@ _081098BC:
pop {r0}
bx r0
.align 2, 0
-_081098C0: .4byte gUnknown_02039238
+_081098C0: .4byte gAIScriptPtr
thumb_func_end BattleAICmd_if_not_taunted
thumb_func_start sub_81098C4
@@ -4881,13 +2128,13 @@ unref_sub_81098E4: @ 81098E4
lsls r0, 24
lsrs r0, 22
adds r0, r3
- ldr r1, _08109904 @ =gUnknown_02039238
+ ldr r1, _08109904 @ =gAIScriptPtr
ldr r1, [r1]
str r1, [r0]
bx lr
.align 2, 0
_08109900: .4byte 0x02016c00
-_08109904: .4byte gUnknown_02039238
+_08109904: .4byte gAIScriptPtr
thumb_func_end unref_sub_81098E4
thumb_func_start sub_8109908
@@ -4906,7 +2153,7 @@ _0810991C: .4byte 0x02016c00
_08109920:
subs r0, 0x1
strb r0, [r2]
- ldr r1, _08109938 @ =gUnknown_02039238
+ ldr r1, _08109938 @ =gAIScriptPtr
ldrb r0, [r2]
lsls r0, 2
adds r0, r3
@@ -4917,7 +2164,7 @@ _08109932:
pop {r1}
bx r1
.align 2, 0
-_08109938: .4byte gUnknown_02039238
+_08109938: .4byte gAIScriptPtr
thumb_func_end sub_8109908
.align 2, 0 @ Don't pad with nop.