diff options
author | Diegoisawesome <diego@domoreaweso.me> | 2016-11-01 12:20:17 -0500 |
---|---|---|
committer | Diegoisawesome <diego@domoreaweso.me> | 2016-11-01 12:20:17 -0500 |
commit | b4a39100c0e052bdab3cfa2da707072c2ee18115 (patch) | |
tree | dcea69ec49430f004c17ff71b77587cafd78c69a /asm/calculate_base_damage.s | |
parent | f09f9cef752c37e3cc0686573c1fdb29da842772 (diff) | |
parent | 6f0e42a91aeeedd64725ce57e3dad6a38421d8e9 (diff) |
Merge https://github.com/pret/pokeemerald
Diffstat (limited to 'asm/calculate_base_damage.s')
-rw-r--r-- | asm/calculate_base_damage.s | 1045 |
1 files changed, 1045 insertions, 0 deletions
diff --git a/asm/calculate_base_damage.s b/asm/calculate_base_damage.s new file mode 100644 index 000000000..d82db8d09 --- /dev/null +++ b/asm/calculate_base_damage.s @@ -0,0 +1,1045 @@ + .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, =0x020244e0 + 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, =0x020244e0 + 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, =0x02024404 + 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_get_x12 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldrh r0, [r6, 0x2E] + bl itemid_get_quality + 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, =0x02024404 + 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_get_x12 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x20] + ldr r1, [sp, 0x4] + ldrh r0, [r1, 0x2E] + bl itemid_get_quality +_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, =gUnknown_08329D74 + 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, =0x02022fec + 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, =0x02022fec + 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 ability_something + 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 ability_something + 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 ability_something + lsls r0, 24 + cmp r0, 0 + beq _0806995A + ldr r1, =0x020244e0 + 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 ability_something + lsls r0, 24 + cmp r0, 0 + beq _0806997E + ldr r1, =0x020244e0 + 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, =0x020244e0 + 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, =0x020244e0 + 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, =0x020244e0 + 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, =0x020244e0 + ldrh r1, [r4] + movs r0, 0x96 + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + strh r0, [r4] +_08069A3E: + ldr r2, =gBattleMoves + ldr r0, =0x020241ea + 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, =0x02024211 + 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, =0x020244e0 + 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, =0x02022fec + 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, =0x02022fec + 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, =0x02024211 + 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, =0x020244e0 + 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, =0x02022fec + 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, =0x02022fec + 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 ability_something + 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 ability_something + lsls r0, 24 + cmp r0, 0 + bne _08069DAC + ldr r2, =0x020243cc + 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, =0x020241ea + 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, =0x020244a8 + 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. |