summaryrefslogtreecommitdiff
path: root/asm/calculate_base_damage.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/calculate_base_damage.s')
-rw-r--r--asm/calculate_base_damage.s1045
1 files changed, 0 insertions, 1045 deletions
diff --git a/asm/calculate_base_damage.s b/asm/calculate_base_damage.s
deleted file mode 100644
index 5aabfc4c3..000000000
--- a/asm/calculate_base_damage.s
+++ /dev/null
@@ -1,1045 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_806957C
-sub_806957C: @ 806957C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x30
- adds r6, r0, 0
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r0, [sp, 0x50]
- ldr r1, [sp, 0x54]
- ldr r2, [sp, 0x58]
- ldr r4, [sp, 0x5C]
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0xC]
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x10]
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x14]
- movs r5, 0
- cmp r3, 0
- bne _080695D4
- ldr r2, =gBattleMovePower
- ldr r1, =gBattleMoves
- ldr r3, [sp, 0x8]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x1]
- strh r0, [r2]
- b _080695D8
- .pool
-_080695D4:
- ldr r0, =gBattleMovePower
- strh r3, [r0]
-_080695D8:
- cmp r7, 0
- bne _080695F8
- ldr r1, =gBattleMoves
- ldr r7, [sp, 0x8]
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- mov r10, r0
- b _08069602
- .pool
-_080695F8:
- movs r0, 0x3F
- mov r10, r0
- mov r1, r10
- ands r1, r7
- mov r10, r1
-_08069602:
- ldrh r7, [r6, 0x2]
- ldr r2, [sp, 0x4]
- ldrh r2, [r2, 0x4]
- str r2, [sp, 0x18]
- ldrh r3, [r6, 0x8]
- mov r8, r3
- ldr r0, [sp, 0x4]
- ldrh r0, [r0, 0xA]
- str r0, [sp, 0x1C]
- ldrh r0, [r6, 0x2E]
- cmp r0, 0xAF
- bne _08069634
- ldr r1, =gEnigmaBerries
- ldr r2, [sp, 0x10]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x7]
- mov r9, r3
- ldrb r0, [r0, 0x1A]
- b _0806964A
- .pool
-_08069634:
- ldrh r0, [r6, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldrh r0, [r6, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r0, 24
-_0806964A:
- str r0, [sp, 0x24]
- ldr r1, [sp, 0x4]
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0806967E
- ldr r1, =gEnigmaBerries
- ldr r2, [sp, 0x14]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x7]
- str r0, [sp, 0x20]
- b _08069694
- .pool
-_0806966C:
- ldr r0, [sp, 0x24]
- adds r0, 0x64
- muls r0, r7
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
- b _0806977C
-_0806967E:
- ldr r3, [sp, 0x4]
- ldrh r0, [r3, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x20]
- ldr r1, [sp, 0x4]
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffectParam
-_08069694:
- adds r0, r6, 0
- adds r0, 0x20
- ldrb r1, [r0]
- str r0, [sp, 0x28]
- cmp r1, 0x25
- beq _080696A4
- cmp r1, 0x4A
- bne _080696A8
-_080696A4:
- lsls r0, r7, 17
- lsrs r7, r0, 16
-_080696A8:
- ldr r0, =0x00000867
- ldr r1, [sp, 0x10]
- bl sub_8069ED8
- lsls r0, 24
- cmp r0, 0
- beq _080696C4
- movs r0, 0x6E
- muls r0, r7
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
-_080696C4:
- ldr r0, =0x0000086b
- ldr r1, [sp, 0x14]
- bl sub_8069ED8
- lsls r0, 24
- cmp r0, 0
- beq _080696E4
- movs r0, 0x6E
- ldr r2, [sp, 0x18]
- muls r0, r2
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
-_080696E4:
- ldr r4, =0x0000086d
- adds r0, r4, 0
- ldr r1, [sp, 0x10]
- bl sub_8069ED8
- lsls r0, 24
- cmp r0, 0
- beq _08069708
- movs r0, 0x6E
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_08069708:
- adds r0, r4, 0
- ldr r1, [sp, 0x14]
- bl sub_8069ED8
- lsls r0, 24
- cmp r0, 0
- beq _08069728
- movs r0, 0x6E
- ldr r1, [sp, 0x1C]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x1C]
-_08069728:
- movs r2, 0
- ldr r4, =gHoldEffectToType
- ldr r3, [sp, 0x4]
- adds r3, 0x20
- str r3, [sp, 0x2C]
- adds r3, r4, 0
-_08069734:
- lsls r1, r2, 1
- ldrb r0, [r3]
- cmp r9, r0
- bne _08069774
- adds r0, r4, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r10, r0
- bne _08069774
- mov r1, r10
- cmp r1, 0x8
- bls _0806966C
- ldr r0, [sp, 0x24]
- adds r0, 0x64
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- b _0806977C
- .pool
-_08069774:
- adds r3, 0x2
- adds r2, 0x1
- cmp r2, 0x10
- bls _08069734
-_0806977C:
- mov r3, r9
- cmp r3, 0x1D
- bne _08069790
- movs r0, 0x96
- muls r0, r7
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
-_08069790:
- mov r0, r9
- cmp r0, 0x22
- bne _080697C6
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, =0x003f0100
- ands r0, r1
- cmp r0, 0
- bne _080697C6
- ldr r1, =0xfffffe69
- adds r0, r1, 0
- ldrh r2, [r6]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080697C6
- movs r0, 0x96
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_080697C6:
- ldr r0, [sp, 0x20]
- cmp r0, 0x22
- bne _080697FC
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, =0x003f0100
- ands r0, r1
- cmp r0, 0
- bne _080697FC
- ldr r1, =0xfffffe69
- adds r0, r1, 0
- ldr r2, [sp, 0x4]
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080697FC
- movs r0, 0x96
- ldr r3, [sp, 0x1C]
- muls r0, r3
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x1C]
-_080697FC:
- mov r0, r9
- cmp r0, 0x23
- bne _08069812
- ldrh r1, [r6]
- ldr r0, =0x00000175
- cmp r1, r0
- bne _08069812
- mov r1, r8
- lsls r0, r1, 17
- lsrs r0, 16
- mov r8, r0
-_08069812:
- ldr r2, [sp, 0x20]
- cmp r2, 0x24
- bne _0806982A
- ldr r3, [sp, 0x4]
- ldrh r1, [r3]
- ldr r0, =0x00000175
- cmp r1, r0
- bne _0806982A
- ldr r1, [sp, 0x1C]
- lsls r0, r1, 17
- lsrs r0, 16
- str r0, [sp, 0x1C]
-_0806982A:
- mov r2, r9
- cmp r2, 0x2D
- bne _0806983E
- ldrh r0, [r6]
- cmp r0, 0x19
- bne _0806983E
- mov r3, r8
- lsls r0, r3, 17
- lsrs r0, 16
- mov r8, r0
-_0806983E:
- ldr r0, [sp, 0x20]
- cmp r0, 0x40
- bne _08069854
- ldr r1, [sp, 0x4]
- ldrh r0, [r1]
- cmp r0, 0x84
- bne _08069854
- ldr r2, [sp, 0x18]
- lsls r0, r2, 17
- lsrs r0, 16
- str r0, [sp, 0x18]
-_08069854:
- mov r3, r9
- cmp r3, 0x41
- bne _0806986A
- ldrh r0, [r6]
- subs r0, 0x68
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0806986A
- lsls r0, r7, 17
- lsrs r7, r0, 16
-_0806986A:
- ldr r1, [sp, 0x2C]
- ldrb r0, [r1]
- cmp r0, 0x2F
- bne _08069882
- mov r2, r10
- cmp r2, 0xA
- beq _0806987C
- cmp r2, 0xF
- bne _08069882
-_0806987C:
- mov r3, r8
- lsrs r3, 1
- mov r8, r3
-_08069882:
- ldr r0, [sp, 0x28]
- ldrb r4, [r0]
- cmp r4, 0x37
- bne _08069898
- movs r0, 0x96
- muls r0, r7
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
-_08069898:
- cmp r4, 0x39
- bne _080698C6
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x3A
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _080698C6
- movs r0, 0x96
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_080698C6:
- ldr r2, [sp, 0x28]
- ldrb r0, [r2]
- cmp r0, 0x3A
- bne _080698F8
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x39
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _080698F8
- movs r0, 0x96
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_080698F8:
- ldr r1, [sp, 0x28]
- ldrb r0, [r1]
- cmp r0, 0x3E
- bne _08069914
- ldr r0, [r6, 0x4C]
- cmp r0, 0
- beq _08069914
- movs r0, 0x96
- muls r0, r7
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
-_08069914:
- ldr r2, [sp, 0x2C]
- ldrb r0, [r2]
- cmp r0, 0x3F
- bne _08069936
- ldr r3, [sp, 0x4]
- ldr r0, [r3, 0x4C]
- cmp r0, 0
- beq _08069936
- movs r0, 0x96
- ldr r1, [sp, 0x18]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
-_08069936:
- mov r2, r10
- cmp r2, 0xD
- bne _0806995A
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0
- movs r3, 0xFD
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _0806995A
- ldr r1, =gBattleMovePower
- ldrh r0, [r1]
- lsrs r0, 1
- strh r0, [r1]
-_0806995A:
- mov r3, r10
- cmp r3, 0xA
- bne _0806997E
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0
- movs r3, 0xFE
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _0806997E
- ldr r1, =gBattleMovePower
- ldrh r0, [r1]
- lsrs r0, 1
- strh r0, [r1]
-_0806997E:
- mov r0, r10
- cmp r0, 0xC
- bne _080699AE
- ldr r1, [sp, 0x28]
- ldrb r0, [r1]
- cmp r0, 0x41
- bne _080699AE
- ldrh r0, [r6, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r6, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _080699AE
- ldr r4, =gBattleMovePower
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_080699AE:
- mov r2, r10
- cmp r2, 0xA
- bne _080699DE
- ldr r3, [sp, 0x28]
- ldrb r0, [r3]
- cmp r0, 0x42
- bne _080699DE
- ldrh r0, [r6, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r6, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _080699DE
- ldr r4, =gBattleMovePower
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_080699DE:
- mov r0, r10
- cmp r0, 0xB
- bne _08069A0E
- ldr r1, [sp, 0x28]
- ldrb r0, [r1]
- cmp r0, 0x43
- bne _08069A0E
- ldrh r0, [r6, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r6, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _08069A0E
- ldr r4, =gBattleMovePower
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_08069A0E:
- mov r2, r10
- cmp r2, 0x6
- bne _08069A3E
- ldr r3, [sp, 0x28]
- ldrb r0, [r3]
- cmp r0, 0x44
- bne _08069A3E
- ldrh r0, [r6, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r6, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _08069A3E
- ldr r4, =gBattleMovePower
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_08069A3E:
- ldr r2, =gBattleMoves
- ldr r0, =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _08069A58
- ldr r0, [sp, 0x18]
- lsrs r0, 1
- str r0, [sp, 0x18]
-_08069A58:
- mov r1, r10
- cmp r1, 0x8
- bls _08069A60
- b _08069BC2
-_08069A60:
- ldr r0, =gCritMultiplier
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x2
- bne _08069AA0
- movs r0, 0x19
- ldrsb r0, [r6, r0]
- cmp r0, 0x6
- ble _08069A9C
- ldr r2, =gUnknown_08329D2E
- b _08069AA6
- .pool
-_08069A9C:
- adds r5, r7, 0
- b _08069ABE
-_08069AA0:
- ldr r2, =gUnknown_08329D2E
- movs r0, 0x19
- ldrsb r0, [r6, r0]
-_08069AA6:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- adds r5, r7, 0
- muls r5, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl __divsi3
- adds r5, r0, 0
-_08069ABE:
- ldr r0, =gBattleMovePower
- ldrh r0, [r0]
- muls r5, r0
- adds r0, r6, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x5
- bl __divsi3
- adds r0, 0x2
- muls r5, r0
- ldrb r0, [r4]
- cmp r0, 0x2
- bne _08069AFC
- ldr r2, [sp, 0x4]
- movs r0, 0x1A
- ldrsb r0, [r2, r0]
- cmp r0, 0x5
- bgt _08069AF8
- ldr r2, =gUnknown_08329D2E
- ldr r3, [sp, 0x4]
- movs r0, 0x1A
- ldrsb r0, [r3, r0]
- b _08069B04
- .pool
-_08069AF8:
- ldr r3, [sp, 0x18]
- b _08069B1E
-_08069AFC:
- ldr r2, =gUnknown_08329D2E
- ldr r1, [sp, 0x4]
- movs r0, 0x1A
- ldrsb r0, [r1, r0]
-_08069B04:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- ldr r7, [sp, 0x18]
- adds r3, r7, 0
- muls r3, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- bl __divsi3
- adds r3, r0, 0
-_08069B1E:
- adds r0, r5, 0
- adds r1, r3, 0
- bl __divsi3
- adds r5, r0, 0
- movs r1, 0x32
- bl __divsi3
- adds r5, r0, 0
- ldr r0, [r6, 0x4C]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08069B48
- ldr r1, [sp, 0x28]
- ldrb r0, [r1]
- cmp r0, 0x3E
- beq _08069B48
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_08069B48:
- movs r0, 0x1
- ldr r2, [sp, 0xC]
- ands r0, r2
- cmp r0, 0
- beq _08069B8A
- ldrb r1, [r4]
- cmp r1, 0x1
- bne _08069B8A
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- beq _08069B84
- movs r0, 0x2
- bl sub_8069DEC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08069B84
- adds r0, r5, 0
- movs r1, 0x3
- bl __divsi3
- lsls r5, r0, 1
- b _08069B8A
- .pool
-_08069B84:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_08069B8A:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08069BBC
- ldr r0, =gBattleMoves
- ldr r3, [sp, 0x8]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x6]
- cmp r0, 0x8
- bne _08069BBC
- movs r0, 0x2
- bl sub_8069DEC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08069BBC
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_08069BBC:
- cmp r5, 0
- bne _08069BC2
- movs r5, 0x1
-_08069BC2:
- mov r7, r10
- cmp r7, 0x9
- bne _08069BCA
- movs r5, 0
-_08069BCA:
- mov r0, r10
- cmp r0, 0x9
- bhi _08069BD2
- b _08069DD4
-_08069BD2:
- ldr r0, =gCritMultiplier
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x2
- bne _08069BFC
- movs r0, 0x1C
- ldrsb r0, [r6, r0]
- cmp r0, 0x6
- ble _08069BF8
- ldr r2, =gUnknown_08329D2E
- b _08069C02
- .pool
-_08069BF8:
- mov r5, r8
- b _08069C1A
-_08069BFC:
- ldr r2, =gUnknown_08329D2E
- movs r0, 0x1C
- ldrsb r0, [r6, r0]
-_08069C02:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- mov r5, r8
- muls r5, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl __divsi3
- adds r5, r0, 0
-_08069C1A:
- ldr r0, =gBattleMovePower
- ldrh r0, [r0]
- muls r5, r0
- adds r0, r6, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x5
- bl __divsi3
- adds r0, 0x2
- muls r5, r0
- ldrb r0, [r4]
- cmp r0, 0x2
- bne _08069C54
- ldr r1, [sp, 0x4]
- movs r0, 0x1D
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _08069C50
- ldr r2, =gUnknown_08329D2E
- b _08069C5C
- .pool
-_08069C50:
- ldr r3, [sp, 0x1C]
- b _08069C76
-_08069C54:
- ldr r2, =gUnknown_08329D2E
- ldr r7, [sp, 0x4]
- movs r0, 0x1D
- ldrsb r0, [r7, r0]
-_08069C5C:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- ldr r6, [sp, 0x1C]
- adds r3, r6, 0
- muls r3, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- bl __divsi3
- adds r3, r0, 0
-_08069C76:
- adds r0, r5, 0
- adds r1, r3, 0
- bl __divsi3
- adds r5, r0, 0
- movs r1, 0x32
- bl __divsi3
- adds r5, r0, 0
- movs r0, 0x2
- ldr r7, [sp, 0xC]
- ands r0, r7
- cmp r0, 0
- beq _08069CCA
- ldrb r1, [r4]
- cmp r1, 0x1
- bne _08069CCA
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- beq _08069CC4
- movs r0, 0x2
- bl sub_8069DEC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08069CC4
- adds r0, r5, 0
- movs r1, 0x3
- bl __divsi3
- lsls r5, r0, 1
- b _08069CCA
- .pool
-_08069CC4:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_08069CCA:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08069CFC
- ldr r0, =gBattleMoves
- ldr r2, [sp, 0x8]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x6]
- cmp r0, 0x8
- bne _08069CFC
- movs r0, 0x2
- bl sub_8069DEC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08069CFC
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_08069CFC:
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08069DAC
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _08069DAC
- ldr r2, =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x1
- ands r0, r1
- adds r4, r2, 0
- cmp r0, 0
- beq _08069D64
- mov r3, r10
- cmp r3, 0xA
- beq _08069D50
- cmp r3, 0xB
- beq _08069D58
- b _08069D64
- .pool
-_08069D50:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
- b _08069D64
-_08069D58:
- lsls r0, r5, 4
- subs r0, r5
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
-_08069D64:
- ldrh r1, [r4]
- movs r0, 0x9F
- ands r0, r1
- cmp r0, 0
- beq _08069D7C
- ldr r0, =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0x4C
- bne _08069D7C
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_08069D7C:
- ldrh r1, [r4]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08069DAC
- mov r6, r10
- cmp r6, 0xA
- beq _08069D98
- cmp r6, 0xB
- beq _08069DA6
- b _08069DAC
- .pool
-_08069D98:
- lsls r0, r5, 4
- subs r0, r5
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
- b _08069DAC
-_08069DA6:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_08069DAC:
- ldr r0, =gBattleResources
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- ldr r7, [sp, 0x10]
- lsls r1, r7, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08069DD4
- mov r0, r10
- cmp r0, 0xA
- bne _08069DD4
- lsls r0, r5, 4
- subs r0, r5
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
-_08069DD4:
- adds r0, r5, 0x2
- add sp, 0x30
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_806957C
-
- .align 2, 0 @ Don't pad with nop.