diff options
Diffstat (limited to 'asm/battle_link_817C95C.s')
-rw-r--r-- | asm/battle_link_817C95C.s | 4984 |
1 files changed, 4984 insertions, 0 deletions
diff --git a/asm/battle_link_817C95C.s b/asm/battle_link_817C95C.s new file mode 100644 index 000000000..a08d34cad --- /dev/null +++ b/asm/battle_link_817C95C.s @@ -0,0 +1,4984 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_817C95C +sub_817C95C: @ 817C95C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp] + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + bne _0817C988 + ldr r0, [sp] + cmp r0, 0x1B + beq _0817C988 + cmp r0, 0xDD + beq _0817C988 + bl _0817E0A6 +_0817C988: + ldr r0, =gBattleStruct + ldr r0, [r0] + movs r1, 0x81 + lsls r1, 2 + adds r7, r0, r1 + ldr r5, =gBankAttacker + ldrb r0, [r5] + bl GetBankSide + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gBankTarget + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, =gUnknown_0202420E + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r0, =gStringInfo + ldr r0, [r0] + ldrb r0, [r0, 0x7] + bl GetBankSide + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + cmp r4, 0 + bne _0817CA00 + ldr r2, =gBattlePartyID + ldrb r0, [r5] + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + b _0817CA10 + .pool +_0817CA00: + ldr r2, =gBattlePartyID + ldrb r0, [r5] + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gEnemyParty +_0817CA10: + adds r1, r0 + str r1, [sp, 0x8] + cmp r6, 0 + bne _0817CA3C + ldr r0, =gBankTarget + ldrb r0, [r0] + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + b _0817CA4C + .pool +_0817CA3C: + ldr r0, =gBankTarget + ldrb r0, [r0] + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gEnemyParty +_0817CA4C: + adds r1, r0 + str r1, [sp, 0xC] + ldr r0, =gBankAttacker + ldrb r0, [r0] + ldr r1, =gStringInfo + ldr r1, [r1] + ldrh r1, [r1] + bl sub_817F33C + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + cmp r0, 0x3 + bls _0817CA9C + ldr r0, [sp] + bl sub_817E0B8 + lsls r0, 24 + cmp r0, 0 + beq _0817CA9C + ldr r2, [sp] + cmp r2, 0xC + bls _0817CA9C + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r0, r7, r0 + adds r0, 0x57 + ldrb r1, [r0] + movs r2, 0x1E + bl _0817E0A2 + .pool +_0817CA9C: + ldr r0, =gBankAttacker + ldrb r0, [r0] + bl GetBankIdentity + lsls r0, 24 + lsrs r0, 25 + mov r8, r0 + ldr r0, =gBankTarget + ldrb r0, [r0] + bl GetBankIdentity + lsls r0, 24 + lsrs r5, r0, 25 + ldr r0, =gUnknown_0202420E + ldrb r0, [r0] + bl GetBankIdentity + lsls r0, 24 + lsrs r3, r0, 25 + ldr r1, [sp] + subs r1, 0x2 + movs r0, 0xB0 + lsls r0, 1 + cmp r1, r0 + bls _0817CAD2 + bl _0817E0A6 +_0817CAD2: + lsls r0, r1, 2 + ldr r1, =_0817CAEC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0817CAEC: + .4byte _0817DD7A + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817D070 + .4byte _0817DD74 + .4byte _0817DD80 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817DA68 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817D7D8 + .4byte _0817E0A6 + .4byte _0817D8A4 + .4byte _0817E0A6 + .4byte _0817D838 + .4byte _0817E0A6 + .4byte _0817D704 + .4byte _0817E0A6 + .4byte _0817D76C + .4byte _0817DB24 + .4byte _0817E0A6 + .4byte _0817DB90 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817D9C2 + .4byte _0817E0A6 + .4byte _0817DA24 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817DBD4 + .4byte _0817E0A6 + .4byte _0817D94C + .4byte _0817E0A6 + .4byte _0817D994 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E040 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817DE10 + .4byte _0817DDC8 + .4byte _0817DEDC + .4byte _0817DF24 + .4byte _0817DF4E + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817D65E + .4byte _0817D65E + .4byte _0817D65E + .4byte _0817D65E + .4byte _0817D698 + .4byte _0817E0A6 + .4byte _0817E08E + .4byte _0817DF70 + .4byte _0817DFBC + .4byte _0817E0A6 + .4byte _0817E08E + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817D53C + .4byte _0817E0A6 + .4byte _0817D584 + .4byte _0817DACC + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817D3A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817D296 + .4byte _0817D2E4 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817D5CE + .4byte _0817D608 + .4byte _0817D498 + .4byte _0817D4E0 + .4byte _0817DC62 + .4byte _0817DC98 + .4byte _0817E0A6 + .4byte _0817D1B8 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817DCDC + .4byte _0817E0A6 + .4byte _0817D0DC + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817D1E0 + .4byte _0817D314 + .4byte _0817D354 + .4byte _0817D372 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817D216 + .4byte _0817D260 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817D3C0 + .4byte _0817D3F2 + .4byte _0817D440 + .4byte _0817D45C + .4byte _0817D3B8 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817D098 + .4byte _0817D0D4 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817DC20 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817D16C + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817DD38 + .4byte _0817DCFC + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817D65E + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817D124 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817E0A6 + .4byte _0817DE58 + .4byte _0817DDC8 + .4byte _0817DE10 + .4byte _0817DFE6 +_0817D070: + movs r0, 0x1 + mov r1, r10 + movs r2, 0x2 + movs r3, 0 + bl sub_817E684 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0817D08C + bl _0817E0A6 +_0817D08C: + bl sub_817EECC + bl _0817E0A6 + .pool +_0817D098: + movs r0, 0x1 + mov r1, r10 + movs r2, 0x1 + movs r3, 0 + bl sub_817E684 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0817D0B4 + bl _0817E0A6 +_0817D0B4: + ldr r0, [sp, 0xC] + movs r1, 0x39 + movs r2, 0 + bl GetMonData + cmp r0, 0 + bne _0817D0C6 + bl _0817E0A6 +_0817D0C6: + bl sub_817EECC + bl _0817E0A6 + .pool +_0817D0D4: + movs r0, 0x1 + mov r1, r10 + movs r2, 0 + b _0817D48E +_0817D0DC: + lsls r3, r4, 1 + adds r3, r4 + lsls r3, 2 + adds r3, r7, r3 + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + adds r0, 0x1 + movs r1, 0x7 + ands r0, r1 + lsls r0, 15 + ldr r1, [r3, 0x50] + ldr r2, =0xfffc7fff + ands r1, r2 + orrs r1, r0 + str r1, [r3, 0x50] + adds r3, 0x55 + movs r0, 0x3 + mov r1, r10 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0xD + negs r0, r0 + bl _0817DC0C + .pool +_0817D124: + lsls r2, r4, 1 + adds r2, r4 + lsls r2, 2 + adds r2, r7, r2 + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + adds r4, r2, 0 + adds r4, 0x52 + movs r0, 0x7 + ands r1, r0 + lsls r1, 2 + ldrb r3, [r4] + movs r0, 0x1D + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, 0x55 + movs r0, 0x3 + mov r1, r10 + ands r1, r0 + lsls r1, 4 + ldrb r3, [r2] + movs r0, 0x31 + negs r0, r0 + bl _0817DFAA + .pool +_0817D16C: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r5, r7, r0 + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + adds r3, r5, 0 + adds r3, 0x52 + lsls r1, 5 + ldrb r2, [r3] + movs r0, 0x1F + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r4, r5, 0 + adds r4, 0x55 + mov r0, r10 + lsls r2, r0, 6 + ldrb r1, [r4] + movs r0, 0x3F + ands r0, r1 + orrs r0, r2 + strb r0, [r4] + adds r2, r5, 0 + adds r2, 0x58 + ldrb r0, [r2] + movs r1, 0x40 + bl _0817DFAC + .pool +_0817D1B8: + ldr r1, =gUnknown_02022F5C + ldrb r0, [r1] + cmp r0, 0 + beq _0817D1C4 + bl _0817E0A6 +_0817D1C4: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r0, r7, r0 + adds r0, 0x57 + ldrb r2, [r0] + movs r1, 0x1F + negs r1, r1 + ands r1, r2 + movs r2, 0x14 + bl _0817E0A2 + .pool +_0817D1E0: + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + adds r3, r7, r0 + adds r0, r3, 0 + adds r0, 0x53 + ldrb r0, [r0] + lsls r0, 29 + lsrs r0, 29 + cmp r0, 0 + bne _0817D1FA + bl _0817E0A6 +_0817D1FA: + adds r2, r6, 0 + subs r1, r0, 0x1 + lsls r1, 2 + adds r0, r3, 0 + adds r0, 0x56 + ldrb r3, [r0] + lsls r3, 30 + lsrs r3, 30 + adds r3, r1 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x2 + bl _0817DB10 +_0817D216: + lsls r2, r4, 1 + adds r2, r4 + lsls r2, 2 + adds r2, r7, r2 + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + adds r4, r2, 0 + adds r4, 0x53 + movs r0, 0x7 + ands r1, r0 + lsls r1, 3 + ldrb r3, [r4] + movs r0, 0x39 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, 0x56 + movs r0, 0x3 + mov r1, r10 + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0xD + negs r0, r0 + bl _0817DFAA + .pool +_0817D260: + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + adds r3, r7, r0 + adds r0, r3, 0 + adds r0, 0x53 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 29 + cmp r0, 0 + bne _0817D27A + bl _0817E0A6 +_0817D27A: + adds r2, r6, 0 + subs r1, r0, 0x1 + lsls r1, 2 + adds r0, r3, 0 + adds r0, 0x56 + ldrb r3, [r0] + lsls r3, 28 + lsrs r3, 30 + adds r3, r1 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x2 + bl _0817DBC2 +_0817D296: + lsls r2, r4, 1 + adds r2, r4 + lsls r2, 2 + adds r2, r7, r2 + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + adds r2, 0x56 + movs r0, 0x7 + ands r1, r0 + lsls r1, 4 + ldrb r3, [r2] + movs r0, 0x71 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x3 + mov r1, r10 + ands r1, r0 + lsls r1, 7 + ldrh r3, [r2] + ldr r0, =0xfffffe7f + ands r0, r3 + orrs r0, r1 + strh r0, [r2] + bl _0817E0A6 + .pool +_0817D2E4: + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + adds r0, r7, r0 + adds r0, 0x56 + ldrb r0, [r0] + lsls r0, 25 + lsrs r0, 29 + cmp r0, 0 + bne _0817D2FC + bl _0817E0A6 +_0817D2FC: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r0, r7, r0 + adds r0, 0x57 + ldrb r2, [r0] + movs r1, 0x1F + negs r1, r1 + ands r1, r2 + movs r2, 0x16 + bl _0817E0A2 +_0817D314: + mov r2, r8 + lsls r3, r2, 3 + lsls r0, r4, 4 + adds r3, r0 + adds r3, r7, r3 + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + adds r3, 0x35 + movs r0, 0x7 + ands r1, r0 + ldrb r2, [r3] + movs r0, 0x8 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + movs r2, 0x3 + mov r1, r10 + ands r1, r2 + lsls r1, 3 + movs r2, 0x19 + negs r2, r2 + bl _0817DC0C + .pool +_0817D354: + mov r1, r8 + lsls r0, r1, 3 + lsls r1, r4, 4 + adds r0, r1 + adds r0, r7, r0 + adds r0, 0x35 + ldrb r1, [r0] + lsls r0, r1, 29 + lsrs r0, 29 + cmp r0, 0 + bne _0817D36E + bl _0817E0A6 +_0817D36E: + adds r2, r4, 0 + b _0817D38C +_0817D372: + lsls r0, r5, 3 + lsls r1, r6, 4 + adds r0, r1 + adds r0, r7, r0 + adds r0, 0x35 + ldrb r1, [r0] + lsls r0, r1, 29 + lsrs r0, 29 + cmp r0, 0 + bne _0817D38A + bl _0817E0A6 +_0817D38A: + adds r2, r6, 0 +_0817D38C: + subs r0, 0x1 + lsls r0, 2 + lsls r3, r1, 27 + lsrs r3, 30 + adds r3, r0 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x2 + movs r1, 0x6 + bl sub_817E684 + bl _0817E0A6 +_0817D3A6: + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, 0xB3 + movs r1, 0x1 + bl _0817E0A4 + .pool +_0817D3B8: + movs r0, 0x12 + mov r1, r10 + movs r2, 0 + b _0817D48E +_0817D3C0: + ldr r0, =gBattleTextBuff1 + ldrb r2, [r0, 0x2] + cmp r2, 0 + bne _0817D3CC + bl _0817E0A6 +_0817D3CC: + ldr r1, =gUnknown_02022F6A + ldrh r0, [r1] + cmp r0, 0xD1 + bne _0817D3E8 + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0x17 + b _0817D48C + .pool +_0817D3E8: + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0x16 + b _0817D48C +_0817D3F2: + ldr r0, =gBattleTextBuff1 + ldrb r2, [r0, 0x2] + cmp r2, 0 + bne _0817D3FE + bl _0817E0A6 +_0817D3FE: + ldr r0, =gBankAttacker + ldr r1, =gBankTarget + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _0817D436 + ldr r1, =gUnknown_02022F6A + ldrh r0, [r1] + cmp r0, 0xD1 + bne _0817D42C + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0x17 + b _0817D48C + .pool +_0817D42C: + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0x16 + b _0817D48C +_0817D436: + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0x1B + b _0817D48C +_0817D440: + ldr r0, =gBattleTextBuff1 + ldrb r2, [r0, 0x2] + cmp r2, 0 + bne _0817D44C + bl _0817E0A6 +_0817D44C: + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0x18 + b _0817D48C + .pool +_0817D45C: + ldr r0, =gBattleTextBuff1 + ldrb r2, [r0, 0x2] + cmp r2, 0 + bne _0817D468 + bl _0817E0A6 +_0817D468: + ldr r1, =gUnknown_02022F6A + ldrh r0, [r1] + cmp r0, 0xD3 + bne _0817D484 + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0x1A + b _0817D48C + .pool +_0817D484: + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0x19 +_0817D48C: + mov r1, r10 +_0817D48E: + movs r3, 0 + bl sub_817E684 + bl _0817E0A6 +_0817D498: + lsls r2, r5, 3 + lsls r0, r6, 4 + adds r2, r0 + adds r2, r7, r2 + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + adds r4, r2, 0 + adds r4, 0x30 + movs r0, 0x7 + ands r1, r0 + ldrb r3, [r4] + movs r0, 0x8 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, 0x32 + movs r0, 0x3 + mov r1, r10 + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0xD + negs r0, r0 + bl _0817DFAA + .pool +_0817D4E0: + ldr r0, [sp, 0x8] + movs r1, 0x39 + movs r2, 0 + bl GetMonData + cmp r0, 0 + bne _0817D4F2 + bl _0817E0A6 +_0817D4F2: + mov r2, r8 + lsls r0, r2, 3 + lsls r1, r4, 4 + adds r0, r1 + adds r1, r7, r0 + adds r0, r1, 0 + adds r0, 0x30 + ldrb r0, [r0] + lsls r0, 29 + lsrs r0, 29 + cmp r0, 0 + bne _0817D50E + bl _0817E0A6 +_0817D50E: + subs r2, r0, 0x1 + lsls r2, 24 + lsrs r2, 24 + adds r0, r1, 0 + adds r0, 0x32 + ldrb r3, [r0] + lsls r3, 28 + lsrs r3, 30 + movs r0, 0x8 + movs r1, 0 + bl sub_817E684 + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 2 + adds r1, r7, r1 + adds r1, 0x57 + ldrb r2, [r1] + movs r0, 0x1F + negs r0, r0 + ands r0, r2 + movs r2, 0x2 + b _0817D6F2 +_0817D53C: + lsls r2, r5, 3 + lsls r0, r6, 4 + adds r2, r0 + adds r2, r7, r2 + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + adds r4, r2, 0 + adds r4, 0x30 + movs r0, 0x7 + ands r1, r0 + lsls r1, 3 + ldrb r3, [r4] + movs r0, 0x39 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, 0x32 + movs r0, 0x3 + mov r1, r10 + ands r1, r0 + lsls r1, 4 + ldrb r3, [r2] + movs r0, 0x31 + negs r0, r0 + bl _0817DFAA + .pool +_0817D584: + mov r1, r8 + lsls r0, r1, 3 + lsls r1, r4, 4 + adds r0, r1 + adds r1, r7, r0 + adds r0, r1, 0 + adds r0, 0x30 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 29 + cmp r0, 0 + bne _0817D5A0 + bl _0817E0A6 +_0817D5A0: + subs r2, r0, 0x1 + lsls r2, 24 + lsrs r2, 24 + adds r0, r1, 0 + adds r0, 0x32 + ldrb r3, [r0] + lsls r3, 26 + lsrs r3, 30 + movs r0, 0x8 + movs r1, 0x1 + bl sub_817E684 + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 2 + adds r1, r7, r1 + adds r1, 0x57 + ldrb r2, [r1] + movs r0, 0x1F + negs r0, r0 + ands r0, r2 + movs r2, 0x4 + b _0817D6F2 +_0817D5CE: + lsls r2, r5, 3 + lsls r0, r6, 4 + adds r2, r0 + adds r2, r7, r2 + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + movs r0, 0x7 + ands r1, r0 + lsls r1, 6 + ldrh r3, [r2, 0x30] + ldr r0, =0xfffffe3f + ands r0, r3 + orrs r0, r1 + strh r0, [r2, 0x30] + adds r2, 0x32 + bl _0817DF0A + .pool +_0817D608: + ldr r0, [sp, 0x8] + movs r1, 0x39 + movs r2, 0 + bl GetMonData + cmp r0, 0 + bne _0817D61A + bl _0817E0A6 +_0817D61A: + mov r1, r8 + lsls r0, r1, 3 + lsls r1, r4, 4 + adds r0, r1 + adds r1, r7, r0 + ldrh r0, [r1, 0x30] + lsls r0, 23 + lsrs r0, 29 + cmp r0, 0 + bne _0817D632 + bl _0817E0A6 +_0817D632: + subs r2, r0, 0x1 + lsls r2, 24 + lsrs r2, 24 + adds r0, r1, 0 + adds r0, 0x32 + ldrb r3, [r0] + lsrs r3, 6 + movs r0, 0x8 + movs r1, 0x5 + bl sub_817E684 + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 2 + adds r1, r7, r1 + adds r1, 0x57 + ldrb r2, [r1] + movs r0, 0x1F + negs r0, r0 + ands r0, r2 + movs r2, 0xA + b _0817D6F2 +_0817D65E: + lsls r2, r5, 3 + lsls r0, r6, 4 + adds r2, r0 + adds r2, r7, r2 + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + adds r4, r2, 0 + adds r4, 0x31 + movs r0, 0x7 + ands r1, r0 + lsls r1, 1 + ldrb r3, [r4] + movs r0, 0xF + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, 0x33 + bl _0817DF9E + .pool +_0817D698: + ldr r0, [sp, 0x8] + movs r1, 0x39 + movs r2, 0 + bl GetMonData + cmp r0, 0 + bne _0817D6AA + bl _0817E0A6 +_0817D6AA: + mov r1, r8 + lsls r0, r1, 3 + lsls r1, r4, 4 + adds r0, r1 + adds r1, r7, r0 + adds r0, r1, 0 + adds r0, 0x31 + ldrb r0, [r0] + lsls r0, 28 + lsrs r0, 29 + cmp r0, 0 + bne _0817D6C6 + bl _0817E0A6 +_0817D6C6: + subs r2, r0, 0x1 + lsls r2, 24 + lsrs r2, 24 + adds r0, r1, 0 + adds r0, 0x33 + ldrb r3, [r0] + lsls r3, 30 + lsrs r3, 30 + movs r0, 0x8 + movs r1, 0x6 + bl sub_817E684 + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 2 + adds r1, r7, r1 + adds r1, 0x57 + ldrb r2, [r1] + movs r0, 0x1F + negs r0, r0 + ands r0, r2 + movs r2, 0xC +_0817D6F2: + orrs r0, r2 + mov r2, r8 + lsls r3, r2, 5 + movs r2, 0x1F + ands r0, r2 + orrs r0, r3 + strb r0, [r1] + bl _0817E0A6 +_0817D704: + ldr r5, =gBattlePartyID + ldr r6, =gUnknown_0202420E + ldrb r0, [r6] + lsls r0, 1 + adds r0, r5 + ldrh r2, [r0] + lsls r2, 2 + mov r0, r9 + lsls r4, r0, 1 + add r4, r9 + lsls r4, 3 + adds r2, r4 + adds r2, r7, r2 + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r5 + ldrh r1, [r0] + adds r1, 0x1 + movs r0, 0x7 + ands r1, r0 + lsls r1, 6 + ldrh r3, [r2] + ldr r0, =0xfffffe3f + ands r0, r3 + orrs r0, r1 + strh r0, [r2] + ldrb r0, [r6] + lsls r0, 1 + adds r0, r5 + ldrh r1, [r0] + lsls r1, 2 + adds r1, r4 + adds r1, r7, r1 + mov r2, r10 + lsls r3, r2, 6 + ldrb r2, [r1, 0x2] + movs r0, 0x3F + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x2] + bl _0817E0A6 + .pool +_0817D76C: + ldr r0, [sp, 0x8] + movs r1, 0x39 + movs r2, 0 + bl GetMonData + cmp r0, 0 + bne _0817D77E + bl _0817E0A6 +_0817D77E: + ldr r6, =gBattlePartyID + ldr r5, =gBankAttacker + ldrb r0, [r5] + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + lsls r0, 2 + lsls r1, r4, 1 + adds r4, r1, r4 + lsls r1, r4, 3 + adds r0, r1 + adds r1, r7, r0 + ldrh r0, [r1] + lsls r0, 23 + lsrs r0, 29 + cmp r0, 0 + beq _0817D7B2 + subs r2, r0, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r1, 0x2] + lsrs r3, 6 + movs r0, 0x8 + movs r1, 0x4 + bl sub_817E684 +_0817D7B2: + lsls r3, r4, 2 + adds r3, r7, r3 + adds r3, 0x57 + ldrb r0, [r3] + movs r1, 0x1F + negs r1, r1 + ands r1, r0 + movs r0, 0x8 + orrs r1, r0 + strb r1, [r3] + ldrb r0, [r5] + lsls r0, 1 + adds r0, r6 + b _0817D934 + .pool +_0817D7D8: + ldr r5, =gBattlePartyID + ldr r6, =gUnknown_0202420E + ldrb r0, [r6] + lsls r0, 1 + adds r0, r5 + ldrh r2, [r0] + lsls r2, 2 + mov r0, r9 + lsls r4, r0, 1 + add r4, r9 + lsls r4, 3 + adds r2, r4 + adds r2, r7, r2 + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r5 + ldrh r1, [r0] + adds r1, 0x1 + movs r0, 0x7 + ands r1, r0 + ldrb r3, [r2] + movs r0, 0x8 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r6] + lsls r0, 1 + adds r0, r5 + ldrh r1, [r0] + lsls r1, 2 + adds r1, r4 + adds r1, r7, r1 + movs r0, 0x3 + mov r2, r10 + ands r2, r0 + lsls r2, 2 + ldrb r3, [r1, 0x2] + movs r0, 0xD + negs r0, r0 + b _0817D88C + .pool +_0817D838: + ldr r5, =gBattlePartyID + ldr r6, =gUnknown_0202420E + ldrb r0, [r6] + lsls r0, 1 + adds r0, r5 + ldrh r2, [r0] + lsls r2, 2 + mov r1, r9 + lsls r4, r1, 1 + add r4, r9 + lsls r4, 3 + adds r2, r4 + adds r2, r7, r2 + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r5 + ldrh r1, [r0] + adds r1, 0x1 + movs r0, 0x7 + ands r1, r0 + lsls r1, 3 + ldrb r3, [r2] + movs r0, 0x39 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r6] + lsls r0, 1 + adds r0, r5 + ldrh r1, [r0] + lsls r1, 2 + adds r1, r4 + adds r1, r7, r1 + movs r0, 0x3 + mov r2, r10 + ands r2, r0 + lsls r2, 4 + ldrb r3, [r1, 0x2] + movs r0, 0x31 + negs r0, r0 +_0817D88C: + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x2] + bl _0817E0A6 + .pool +_0817D8A4: + ldr r0, [sp, 0x8] + movs r1, 0x39 + movs r2, 0 + bl GetMonData + cmp r0, 0 + bne _0817D8B6 + bl _0817E0A6 +_0817D8B6: + ldr r2, =gBattlePartyID + mov r8, r2 + ldr r6, =gBankAttacker + ldrb r0, [r6] + lsls r0, 1 + add r0, r8 + ldrh r0, [r0] + lsls r0, 2 + lsls r1, r4, 1 + adds r5, r1, r4 + lsls r4, r5, 3 + adds r0, r4 + adds r1, r7, r0 + ldrb r0, [r1] + lsls r0, 29 + lsrs r0, 29 + cmp r0, 0 + beq _0817D8EE + subs r2, r0, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r1, 0x2] + lsls r3, 28 + lsrs r3, 30 + movs r0, 0x8 + movs r1, 0x2 + bl sub_817E684 +_0817D8EE: + ldrb r0, [r6] + lsls r0, 1 + add r0, r8 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r4 + adds r1, r7, r0 + ldrb r0, [r1] + lsls r0, 26 + lsrs r0, 29 + cmp r0, 0 + beq _0817D91A + subs r2, r0, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r1, 0x2] + lsls r3, 26 + lsrs r3, 30 + movs r0, 0x8 + movs r1, 0x3 + bl sub_817E684 +_0817D91A: + lsls r3, r5, 2 + adds r3, r7, r3 + adds r3, 0x57 + ldrb r0, [r3] + movs r1, 0x1F + negs r1, r1 + ands r1, r0 + movs r0, 0x6 + orrs r1, r0 + strb r1, [r3] + ldrb r0, [r6] + lsls r0, 1 + add r0, r8 +_0817D934: + ldrh r0, [r0] + lsls r0, 5 + movs r2, 0x1F + ands r1, r2 + orrs r1, r0 + strb r1, [r3] + b _0817E0A6 + .pool +_0817D94C: + lsls r2, r5, 3 + lsls r0, r6, 4 + adds r2, r0 + adds r2, r7, r2 + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + adds r4, r2, 0 + adds r4, 0x31 + movs r0, 0x7 + ands r1, r0 + lsls r1, 4 + ldrb r3, [r4] + movs r0, 0x71 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, 0x33 + movs r0, 0x3 + mov r1, r10 + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0xD + negs r0, r0 + b _0817DFAA + .pool +_0817D994: + mov r1, r8 + lsls r0, r1, 3 + lsls r1, r4, 4 + adds r0, r1 + adds r1, r7, r0 + adds r0, r1, 0 + adds r0, 0x31 + ldrb r0, [r0] + lsls r0, 25 + lsrs r0, 29 + cmp r0, 0 + bne _0817D9AE + b _0817E0A6 +_0817D9AE: + subs r2, r0, 0x1 + lsls r2, 24 + lsrs r2, 24 + adds r0, r1, 0 + adds r0, 0x33 + ldrb r3, [r0] + lsls r3, 28 + lsrs r3, 30 + movs r0, 0x9 + b _0817E086 +_0817D9C2: + ldr r5, =gBattlePartyID + ldr r6, =gUnknown_0202420E + ldrb r0, [r6] + lsls r0, 1 + adds r0, r5 + ldrh r2, [r0] + lsls r2, 2 + mov r0, r9 + lsls r4, r0, 1 + add r4, r9 + lsls r4, 3 + adds r2, r4 + adds r2, r7, r2 + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r5 + ldrh r1, [r0] + adds r1, 0x1 + movs r0, 0x7 + ands r1, r0 + lsls r1, 1 + ldrb r3, [r2, 0x1] + movs r0, 0xF + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x1] + ldrb r0, [r6] + lsls r0, 1 + adds r0, r5 + ldrh r1, [r0] + lsls r1, 2 + adds r1, r4 + adds r1, r7, r1 + movs r0, 0x3 + mov r2, r10 + ands r2, r0 + ldrb r3, [r1, 0x3] + movs r0, 0x4 + negs r0, r0 + b _0817DB76 + .pool +_0817DA24: + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 2 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + adds r1, r0 + adds r1, r7, r1 + ldrb r0, [r1, 0x1] + lsls r0, 28 + lsrs r0, 29 + cmp r0, 0 + bne _0817DA48 + b _0817E0A6 +_0817DA48: + subs r2, r0, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r1, 0x3] + lsls r3, 30 + lsrs r3, 30 + movs r0, 0x9 + movs r1, 0x2 + bl sub_817E684 + b _0817E0A6 + .pool +_0817DA68: + ldr r5, =gBattlePartyID + ldr r6, =gUnknown_0202420E + ldrb r0, [r6] + lsls r0, 1 + adds r0, r5 + ldrh r2, [r0] + lsls r2, 2 + mov r1, r9 + lsls r4, r1, 1 + add r4, r9 + lsls r4, 3 + adds r2, r4 + adds r2, r7, r2 + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r5 + ldrh r1, [r0] + adds r1, 0x1 + movs r0, 0x7 + ands r1, r0 + lsls r1, 4 + ldrb r3, [r2, 0x1] + movs r0, 0x71 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x1] + ldrb r0, [r6] + lsls r0, 1 + adds r0, r5 + ldrh r1, [r0] + lsls r1, 2 + adds r1, r4 + adds r1, r7, r1 + movs r0, 0x3 + mov r2, r10 + ands r2, r0 + lsls r2, 2 + ldrb r3, [r1, 0x3] + movs r0, 0xD + negs r0, r0 + b _0817DB76 + .pool +_0817DACC: + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 2 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + adds r1, r0 + adds r1, r7, r1 + ldrb r0, [r1, 0x1] + lsls r0, 25 + lsrs r2, r0, 29 + cmp r2, 0 + bne _0817DAF0 + b _0817E0A6 +_0817DAF0: + ldr r0, =gStringInfo + ldr r0, [r0] + ldrh r0, [r0] + cmp r0, 0xAD + bne _0817DAFC + b _0817E0A6 +_0817DAFC: + cmp r0, 0xD6 + bne _0817DB02 + b _0817E0A6 +_0817DB02: + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r1, 0x3] + lsls r3, 28 + lsrs r3, 30 + movs r0, 0x9 +_0817DB10: + movs r1, 0x3 + bl sub_817E684 + b _0817E0A6 + .pool +_0817DB24: + ldr r5, =gBattlePartyID + ldr r6, =gUnknown_0202420E + ldrb r0, [r6] + lsls r0, 1 + adds r0, r5 + ldrh r3, [r0] + lsls r3, 2 + mov r2, r9 + lsls r4, r2, 1 + add r4, r9 + lsls r4, 3 + adds r3, r4 + adds r3, r7, r3 + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + adds r0, 0x1 + movs r1, 0x7 + ands r0, r1 + lsls r0, 15 + ldr r1, [r3] + ldr r2, =0xfffc7fff + ands r1, r2 + orrs r1, r0 + str r1, [r3] + ldrb r0, [r6] + lsls r0, 1 + adds r0, r5 + ldrh r1, [r0] + lsls r1, 2 + adds r1, r4 + adds r1, r7, r1 + movs r0, 0x3 + mov r2, r10 + ands r2, r0 + lsls r2, 4 + ldrb r3, [r1, 0x3] + movs r0, 0x31 + negs r0, r0 +_0817DB76: + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x3] + b _0817E0A6 + .pool +_0817DB90: + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 2 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + adds r1, r0 + adds r1, r7, r1 + ldr r0, [r1] + lsls r0, 14 + lsrs r0, 29 + cmp r0, 0 + bne _0817DBB4 + b _0817E0A6 +_0817DBB4: + subs r2, r0, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r1, 0x3] + lsls r3, 26 + lsrs r3, 30 + movs r0, 0x9 +_0817DBC2: + movs r1, 0x4 + bl sub_817E684 + b _0817E0A6 + .pool +_0817DBD4: + lsls r3, 3 + mov r1, r9 + lsls r0, r1, 4 + adds r3, r0 + adds r3, r7, r3 + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + adds r0, 0x1 + movs r1, 0x7 + ands r0, r1 + lsls r0, 15 + ldr r1, [r3, 0x30] + ldr r2, =0xfffc7fff + ands r1, r2 + orrs r1, r0 + str r1, [r3, 0x30] + adds r3, 0x33 + movs r0, 0x3 + mov r1, r10 + ands r1, r0 + lsls r1, 4 + ldrb r2, [r3] + movs r0, 0x31 + negs r0, r0 +_0817DC0C: + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _0817E0A6 + .pool +_0817DC20: + mov r2, r8 + lsls r0, r2, 3 + lsls r1, r4, 4 + adds r0, r1 + adds r3, r7, r0 + ldr r0, [r3, 0x30] + lsls r0, 14 + lsrs r0, 29 + cmp r0, 0 + beq _0817DC4C + subs r2, r0, 0x1 + lsls r2, 24 + lsrs r2, 24 + adds r0, r3, 0 + adds r0, 0x33 + ldrb r3, [r0] + lsls r3, 26 + lsrs r3, 30 + movs r0, 0x9 + movs r1, 0x1 + bl sub_817E684 +_0817DC4C: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r0, r7, r0 + adds r0, 0x57 + ldrb r2, [r0] + movs r1, 0x1F + negs r1, r1 + ands r1, r2 + movs r2, 0x18 + b _0817E0A2 +_0817DC62: + lsls r2, r6, 1 + adds r2, r6 + lsls r2, 2 + adds r2, r7, r2 + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + adds r4, r2, 0 + adds r4, 0x50 + movs r0, 0x7 + ands r1, r0 + ldrb r3, [r4] + movs r0, 0x8 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, 0x54 + b _0817DF9E + .pool +_0817DC98: + ldr r1, [sp, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r4, r7, r0 + adds r0, r4, 0 + adds r0, 0x50 + ldrb r0, [r0] + lsls r0, 29 + lsrs r2, r0, 29 + cmp r2, 0 + bne _0817DCB2 + b _0817E0A6 +_0817DCB2: + movs r0, 0x1 + eors r1, r0 + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + adds r0, 0x54 + ldrb r3, [r0] + lsls r3, 30 + lsrs r3, 30 + movs r0, 0xA + bl sub_817E684 + adds r2, r4, 0 + adds r2, 0x57 + ldrb r1, [r2] + movs r0, 0x1F + negs r0, r0 + ands r0, r1 + movs r1, 0xE + b _0817DFAC +_0817DCDC: + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 2 + adds r1, r7, r1 + adds r3, r1, 0 + adds r3, 0x50 + ldrb r2, [r3] + movs r0, 0x8 + negs r0, r0 + ands r0, r2 + strb r0, [r3] + adds r1, 0x54 + ldrb r2, [r1] + movs r0, 0x4 + negs r0, r0 + b _0817DF6A +_0817DCFC: + mov r0, r8 + lsls r2, r0, 3 + lsls r0, r4, 4 + adds r2, r0 + adds r2, r7, r2 + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + adds r4, r2, 0 + adds r4, 0x34 + movs r0, 0x7 + ands r1, r0 + ldrb r3, [r4] + movs r0, 0x8 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, 0x33 + mov r1, r10 + lsls r3, r1, 6 + b _0817DF0E + .pool +_0817DD38: + mov r0, r8 + lsls r2, r0, 3 + lsls r0, r4, 4 + adds r2, r0 + adds r2, r7, r2 + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + adds r2, 0x34 + movs r0, 0x7 + ands r1, r0 + lsls r1, 3 + ldrb r3, [r2] + movs r0, 0x39 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + mov r1, r10 + lsls r3, r1, 6 + movs r1, 0x3F + b _0817DF12 + .pool +_0817DD74: + movs r0, 0 + bl sub_817EA80 +_0817DD7A: + mov r2, r8 + lsls r0, r2, 3 + b _0817DD88 +_0817DD80: + movs r0, 0x1 + bl sub_817EA80 + lsls r0, r5, 3 +_0817DD88: + lsls r1, r4, 4 + adds r0, r1 + adds r1, r7, r0 + adds r4, r1, 0 + adds r4, 0x34 + ldrb r5, [r4] + lsls r0, r5, 29 + cmp r0, 0 + beq _0817DDAE + movs r0, 0x8 + negs r0, r0 + ands r0, r5 + strb r0, [r4] + adds r2, r1, 0 + adds r2, 0x33 + ldrb r1, [r2] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2] +_0817DDAE: + ldrb r1, [r4] + lsls r0, r1, 26 + lsrs r0, 29 + cmp r0, 0 + bne _0817DDBA + b _0817E0A6 +_0817DDBA: + movs r0, 0x39 + negs r0, r0 + ands r0, r1 + movs r1, 0x3F + ands r0, r1 + strb r0, [r4] + b _0817E0A6 +_0817DDC8: + lsls r2, r4, 1 + adds r2, r4 + lsls r2, 2 + adds r2, r7, r2 + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + adds r4, r2, 0 + adds r4, 0x50 + movs r0, 0x7 + ands r1, r0 + lsls r1, 3 + ldrb r3, [r4] + movs r0, 0x39 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, 0x54 + movs r0, 0x3 + mov r1, r10 + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0xD + negs r0, r0 + b _0817DFAA + .pool +_0817DE10: + lsls r2, r4, 1 + adds r2, r4 + lsls r2, 2 + adds r2, r7, r2 + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + adds r4, r2, 0 + adds r4, 0x50 + movs r0, 0x7 + ands r1, r0 + lsls r1, 6 + ldrh r3, [r4] + ldr r0, =0xfffffe3f + ands r0, r3 + orrs r0, r1 + strh r0, [r4] + adds r2, 0x54 + movs r0, 0x3 + mov r1, r10 + ands r1, r0 + lsls r1, 4 + ldrb r3, [r2] + movs r0, 0x31 + negs r0, r0 + b _0817DFAA + .pool +_0817DE58: + ldr r1, =gUnknown_02022F5A + ldrh r0, [r1] + cmp r0, 0x73 + bne _0817DE82 + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 2 + adds r1, r7, r1 + adds r3, r1, 0 + adds r3, 0x50 + ldrb r2, [r3] + movs r0, 0x39 + negs r0, r0 + ands r0, r2 + strb r0, [r3] + adds r1, 0x54 + ldrb r2, [r1] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + strb r0, [r1] +_0817DE82: + ldr r2, =gUnknown_02022F5A + ldrh r0, [r2] + cmp r0, 0x71 + bne _0817DEAA + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 2 + adds r1, r7, r1 + adds r3, r1, 0 + adds r3, 0x50 + ldrh r2, [r3] + ldr r0, =0xfffffe3f + ands r0, r2 + strh r0, [r3] + adds r1, 0x54 + ldrb r2, [r1] + movs r0, 0x31 + negs r0, r0 + ands r0, r2 + strb r0, [r1] +_0817DEAA: + ldr r1, =gUnknown_02022F5A + ldrh r0, [r1] + cmp r0, 0x36 + beq _0817DEB4 + b _0817E0A6 +_0817DEB4: + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 2 + adds r1, r7, r1 + adds r4, r1, 0 + adds r4, 0x51 + ldrb r2, [r4] + movs r0, 0x71 + negs r0, r0 + ands r0, r2 + strb r0, [r4] + adds r1, 0x55 + ldrb r2, [r1] + movs r0, 0x4 + negs r0, r0 + b _0817DF6A + .pool +_0817DEDC: + lsls r2, r4, 1 + adds r2, r4 + lsls r2, 2 + adds r2, r7, r2 + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + adds r4, r2, 0 + adds r4, 0x51 + movs r0, 0x7 + ands r1, r0 + lsls r1, 1 + ldrb r3, [r4] + movs r0, 0xF + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, 0x54 +_0817DF0A: + mov r0, r10 + lsls r3, r0, 6 +_0817DF0E: + ldrb r1, [r2] + movs r0, 0x3F +_0817DF12: + ands r0, r1 + orrs r0, r3 + strb r0, [r2] + b _0817E0A6 + .pool +_0817DF24: + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + adds r1, r7, r0 + adds r0, r1, 0 + adds r0, 0x51 + ldrb r0, [r0] + lsls r0, 28 + lsrs r0, 29 + cmp r0, 0 + bne _0817DF3C + b _0817E0A6 +_0817DF3C: + subs r2, r0, 0x1 + lsls r2, 24 + lsrs r2, 24 + adds r0, r1, 0 + adds r0, 0x54 + ldrb r3, [r0] + lsrs r3, 6 + movs r0, 0xF + b _0817E086 +_0817DF4E: + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 2 + adds r1, r7, r1 + adds r4, r1, 0 + adds r4, 0x51 + ldrb r2, [r4] + movs r0, 0xF + negs r0, r0 + ands r0, r2 + strb r0, [r4] + adds r1, 0x54 + ldrb r2, [r1] + movs r0, 0x3F +_0817DF6A: + ands r0, r2 + strb r0, [r1] + b _0817E0A6 +_0817DF70: + lsls r2, r4, 1 + adds r2, r4 + lsls r2, 2 + adds r2, r7, r2 + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + adds r4, r2, 0 + adds r4, 0x51 + movs r0, 0x7 + ands r1, r0 + lsls r1, 4 + ldrb r3, [r4] + movs r0, 0x71 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + adds r2, 0x55 +_0817DF9E: + movs r0, 0x3 + mov r1, r10 + ands r1, r0 + ldrb r3, [r2] + movs r0, 0x4 + negs r0, r0 +_0817DFAA: + ands r0, r3 +_0817DFAC: + orrs r0, r1 + strb r0, [r2] + b _0817E0A6 + .pool +_0817DFBC: + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + adds r1, r7, r0 + adds r0, r1, 0 + adds r0, 0x51 + ldrb r0, [r0] + lsls r0, 25 + lsrs r0, 29 + cmp r0, 0 + beq _0817E0A6 + subs r2, r0, 0x1 + lsls r2, 24 + lsrs r2, 24 + adds r0, r1, 0 + adds r0, 0x55 + ldrb r3, [r0] + lsls r3, 30 + lsrs r3, 30 + movs r0, 0x10 + b _0817E086 +_0817DFE6: + lsls r1, r6, 1 + adds r1, r6 + lsls r1, 2 + adds r1, r7, r1 + adds r3, r1, 0 + adds r3, 0x50 + ldrb r2, [r3] + movs r0, 0x39 + negs r0, r0 + ands r0, r2 + strb r0, [r3] + adds r1, 0x54 + ldrb r2, [r1] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldrh r2, [r3] + ldr r0, =0xfffffe3f + ands r0, r2 + strh r0, [r3] + ldrb r2, [r1] + movs r0, 0x31 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrb r2, [r0] + movs r0, 0x11 + movs r1, 0 + mov r3, r10 + bl sub_817E684 + b _0817E0A6 + .pool +_0817E040: + lsls r0, r4, 4 + adds r4, r7, r0 + adds r0, r4, 0 + adds r0, 0x35 + ldrb r0, [r0] + lsrs r0, 5 + cmp r0, 0 + beq _0817E068 + subs r2, r0, 0x1 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + adds r0, 0x36 + ldrb r3, [r0] + lsls r3, 30 + lsrs r3, 30 + movs r0, 0x15 + movs r1, 0 + bl sub_817E684 +_0817E068: + adds r0, r4, 0 + adds r0, 0x3D + ldrb r0, [r0] + lsrs r0, 5 + cmp r0, 0 + beq _0817E0A6 + subs r2, r0, 0x1 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + adds r0, 0x3E + ldrb r3, [r0] + lsls r3, 30 + lsrs r3, 30 + movs r0, 0x15 +_0817E086: + movs r1, 0 + bl sub_817E684 + b _0817E0A6 +_0817E08E: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r0, r7, r0 + adds r0, 0x57 + ldrb r2, [r0] + movs r1, 0x1F + negs r1, r1 + ands r1, r2 + movs r2, 0x1C +_0817E0A2: + orrs r1, r2 +_0817E0A4: + strb r1, [r0] +_0817E0A6: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_817C95C + + thumb_func_start sub_817E0B8 +sub_817E0B8: @ 817E0B8 + push {r4-r6,lr} + lsls r0, 16 + lsrs r5, r0, 16 + movs r3, 0 + ldr r4, =gUnknown_0860A8A4 + ldr r6, =0x0000ffff + adds r2, r4, 0 + adds r1, r4, 0 +_0817E0C8: + ldrh r0, [r1] + cmp r0, r5 + beq _0817E0DA + adds r2, 0x2 + adds r1, 0x2 + adds r3, 0x1 + ldrh r0, [r2] + cmp r0, r6 + bne _0817E0C8 +_0817E0DA: + lsls r0, r3, 1 + adds r0, r4 + ldrh r1, [r0] + ldr r0, =0x0000ffff + cmp r1, r0 + beq _0817E0F4 + movs r0, 0 + b _0817E0F6 + .pool +_0817E0F4: + movs r0, 0x1 +_0817E0F6: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_817E0B8 + + thumb_func_start sub_817E0FC +sub_817E0FC: @ 817E0FC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + str r2, [sp, 0x4] + lsls r0, 16 + lsrs r7, r0, 16 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + bne _0817E122 + b _0817E310 +_0817E122: + ldr r0, =gBattleStruct + ldr r0, [r0] + movs r1, 0x81 + lsls r1, 2 + adds r1, r0, r1 + str r1, [sp, 0x8] + ldr r2, =gBankAttacker + mov r10, r2 + ldrb r0, [r2] + bl GetBankSide + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r0, =gBankTarget + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + lsrs r4, r0, 24 + mov r1, r10 + ldrb r0, [r1] + adds r1, r7, 0 + bl sub_817F33C + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bls _0817E184 + mov r2, r9 + lsls r0, r2, 1 + add r0, r9 + lsls r0, 2 + ldr r1, [sp, 0x8] + adds r0, r1, r0 + adds r0, 0x57 + ldrb r1, [r0] + movs r2, 0x1E + orrs r1, r2 + strb r1, [r0] + b _0817E310 + .pool +_0817E184: + mov r2, r10 + ldrb r0, [r2] + bl GetBankIdentity + lsls r0, 24 + lsrs r0, 25 + lsls r0, 3 + lsls r4, 4 + adds r0, r4 + ldr r1, [sp, 0x8] + adds r0, r1, r0 + mov r2, r10 + ldrb r1, [r2] + lsls r1, 1 + ldr r2, =gBattlePartyID + adds r1, r2 + ldrh r2, [r1] + adds r2, 0x1 + adds r0, 0x35 + lsls r2, 5 + ldrb r3, [r0] + movs r1, 0x1F + ands r1, r3 + orrs r1, r2 + strb r1, [r0] + mov r1, r10 + ldrb r0, [r1] + bl GetBankIdentity + lsls r0, 24 + lsrs r0, 25 + lsls r0, 3 + adds r0, r4 + ldr r2, [sp, 0x8] + adds r0, r2, r0 + adds r0, 0x36 + movs r1, 0x3 + mov r8, r6 + mov r2, r8 + ands r2, r1 + mov r8, r2 + ldrb r2, [r0] + movs r1, 0x4 + negs r1, r1 + ands r1, r2 + mov r2, r8 + orrs r1, r2 + strb r1, [r0] + mov r1, r9 + lsls r0, r1, 1 + add r0, r9 + lsls r0, 2 + ldr r2, [sp, 0x8] + adds r0, r2, r0 + str r0, [sp, 0xC] + adds r5, r0, 0 + adds r5, 0x53 + lsls r2, r6, 6 + ldrb r1, [r5] + movs r0, 0x3F + ands r0, r1 + orrs r0, r2 + strb r0, [r5] + ldr r1, =gBattleMoves + lsls r4, r7, 1 + adds r0, r4, r7 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0] + movs r0, 0 + adds r1, r6, 0 + movs r3, 0 + bl sub_817E684 + ldr r0, [sp] + adds r1, r7, 0 + adds r2, r6, 0 + bl sub_817F394 + ldr r0, [sp, 0x4] + ldrb r1, [r0, 0x12] + movs r0, 0xF + ands r0, r1 + str r4, [sp, 0x10] + cmp r0, 0 + beq _0817E23C + movs r0, 0x7 + adds r1, r7, 0 + adds r2, r6, 0 + movs r3, 0 + bl sub_817E684 +_0817E23C: + ldr r0, =0x00000111 + cmp r7, r0 + bne _0817E272 + mov r1, r10 + ldrb r0, [r1] + lsls r0, 1 + ldr r2, =gBattlePartyID + adds r0, r2 + ldrh r1, [r0] + adds r1, 0x1 + movs r0, 0x7 + ands r1, r0 + ldrb r2, [r5] + movs r0, 0x8 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5] + ldr r2, [sp, 0xC] + adds r2, 0x56 + ldrb r1, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + mov r1, r8 + orrs r0, r1 + strb r0, [r2] +_0817E272: + cmp r7, 0x78 + beq _0817E27A + cmp r7, 0x99 + bne _0817E2D2 +_0817E27A: + movs r0, 0x1 + mov r2, r9 + eors r0, r2 + lsls r2, r0, 1 + adds r2, r0 + lsls r2, 2 + ldr r0, [sp, 0x8] + adds r2, r0, r2 + mov r1, r10 + ldrb r0, [r1] + lsls r0, 1 + ldr r1, =gBattlePartyID + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + adds r4, r2, 0 + adds r4, 0x58 + movs r0, 0x7 + ands r1, r0 + lsls r1, 3 + ldrb r3, [r4] + movs r0, 0x39 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + mov r1, r8 + lsls r3, r1, 1 + movs r1, 0x7 + negs r1, r1 + ands r0, r1 + orrs r0, r3 + strb r0, [r4] + adds r2, 0x57 + ldrb r1, [r2] + movs r0, 0x1F + negs r0, r0 + ands r0, r1 + movs r1, 0x1A + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4] +_0817E2D2: + ldr r1, =gBattleMoves + ldr r2, [sp, 0x10] + adds r0, r2, r7 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x2] + ldrb r5, [r0, 0x1] + movs r0, 0xD + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0 + bl sub_817E684 + movs r0, 0xE + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0 + bl sub_817E684 + movs r0, 0xB + adds r1, r4, 0 + movs r2, 0 + movs r3, 0 + bl sub_817E684 + movs r0, 0xC + adds r1, r4, 0 + movs r2, 0 + movs r3, 0 + bl sub_817E684 +_0817E310: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_817E0FC + + thumb_func_start sub_817E32C +sub_817E32C: @ 817E32C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0817E3EE + ldr r0, =gBattleStruct + ldr r0, [r0] + movs r1, 0x81 + lsls r1, 2 + adds r4, r0, r1 + ldr r0, =gBankAttacker + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + lsrs r2, r0, 24 + cmp r5, 0x12 + beq _0817E36C + cmp r5, 0x13 + beq _0817E3AA + b _0817E3EE + .pool +_0817E36C: + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r4, r0 + ldr r0, [r4, 0x50] + lsls r0, 14 + lsrs r0, 29 + cmp r0, 0 + beq _0817E3EE + subs r0, 0x1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x55 + ldrb r3, [r1] + lsls r3, 28 + lsrs r3, 30 + adds r3, r0 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x2 + movs r1, 0 + bl sub_817E684 + adds r2, r4, 0 + adds r2, 0x57 + ldrb r1, [r2] + movs r0, 0x1F + negs r0, r0 + ands r0, r1 + movs r1, 0x10 + b _0817E3EA +_0817E3AA: + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r4, r0 + adds r0, r4, 0 + adds r0, 0x52 + ldrb r0, [r0] + lsls r0, 27 + lsrs r0, 29 + cmp r0, 0 + beq _0817E3EE + subs r0, 0x1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x55 + ldrb r3, [r1] + lsls r3, 26 + lsrs r3, 30 + adds r3, r0 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x2 + movs r1, 0x1 + bl sub_817E684 + adds r2, r4, 0 + adds r2, 0x57 + ldrb r1, [r2] + movs r0, 0x1F + negs r0, r0 + ands r0, r1 + movs r1, 0x12 +_0817E3EA: + orrs r0, r1 + strb r0, [r2] +_0817E3EE: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_817E32C + + thumb_func_start sub_817E3F4 +sub_817E3F4: @ 817E3F4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + movs r0, 0 + str r0, [sp] + movs r1, 0 + str r1, [sp, 0x4] + movs r2, 0 + str r2, [sp, 0x8] + ldr r3, =0x00007fff + str r3, [sp, 0xC] + movs r4, 0 + str r4, [sp, 0x10] + movs r7, 0 + str r7, [sp, 0x14] + mov r8, r0 + ldr r0, =gBattleStruct + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0xB3 + ldrb r0, [r0] + cmp r0, 0 + beq _0817E42A + b _0817E670 +_0817E42A: + movs r2, 0xD2 + lsls r2, 1 + adds r2, r1 + mov r10, r2 + movs r6, 0 +_0817E434: + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r0, r4, r0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + cmp r0, 0 + beq _0817E454 + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 +_0817E454: + ldr r5, =gEnemyParty + adds r0, r4, r5 + movs r1, 0xB + movs r2, 0 + bl GetMonData + cmp r0, 0 + beq _0817E46A + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_0817E46A: + adds r6, 0x1 + cmp r6, 0x5 + ble _0817E434 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + bne _0817E47E + b _0817E670 +_0817E47E: + cmp r8, r7 + beq _0817E484 + b _0817E670 +_0817E484: + movs r6, 0 + lsls r3, r6, 1 + str r3, [sp, 0x18] + movs r4, 0x64 + mov r8, r4 +_0817E48E: + mov r1, r8 + muls r1, r6 + ldr r0, =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r7, r0, 16 + adds r0, r6, 0x1 + mov r9, r0 + cmp r7, 0 + beq _0817E4EE + adds r0, r4, 0 + movs r1, 0x2D + movs r2, 0 + bl GetMonData + cmp r0, 0 + bne _0817E4EE + movs r4, 0 + lsls r0, r6, 3 + mov r2, r10 + adds r1, r0, r2 + movs r3, 0x3 +_0817E4C4: + lsls r0, r4, 16 + asrs r0, 16 + ldrh r4, [r1] + adds r0, r4 + lsls r0, 16 + lsrs r4, r0, 16 + adds r1, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _0817E4C4 + ldr r1, [sp, 0x8] + lsls r0, r1, 16 + lsls r1, r4, 16 + cmp r0, r1 + bge _0817E4EE + lsls r0, r6, 24 + lsrs r0, 24 + str r0, [sp, 0x10] + lsrs r1, 16 + str r1, [sp, 0x8] + str r7, [sp] +_0817E4EE: + mov r0, r8 + muls r0, r6 + ldr r2, =gEnemyParty + adds r4, r0, r2 + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r7, r0, 16 + ldr r3, [sp, 0x8] + lsls r3, 16 + str r3, [sp, 0x1C] + cmp r7, 0 + beq _0817E5A0 + adds r0, r4, 0 + movs r1, 0x2D + movs r2, 0 + bl GetMonData + cmp r0, 0 + bne _0817E5A0 + movs r4, 0 + ldr r0, [sp, 0xC] + lsls r2, r0, 16 + movs r3, 0x1 + lsls r1, r3, 1 + adds r1, 0x1 + lsls r1, 4 + lsls r0, r6, 3 + adds r0, r1 + mov r3, r10 + adds r1, r0, r3 + movs r3, 0x3 +_0817E534: + lsls r0, r4, 16 + asrs r0, 16 + ldrh r4, [r1] + adds r0, r4 + lsls r0, 16 + lsrs r4, r0, 16 + adds r1, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _0817E534 + asrs r1, r2, 16 + lsls r5, r4, 16 + asrs r0, r5, 16 + cmp r1, r0 + bne _0817E590 + mov r0, r8 + muls r0, r6 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x19 + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + ldr r2, [sp, 0x14] + mov r0, r8 + muls r0, r2 + ldr r3, =gEnemyParty + adds r0, r3 + movs r1, 0x19 + movs r2, 0 + bl GetMonData + cmp r4, r0 + bls _0817E5A0 + b _0817E594 + .pool +_0817E590: + cmp r1, r0 + ble _0817E5A0 +_0817E594: + lsls r0, r6, 24 + lsrs r0, 24 + str r0, [sp, 0x14] + lsrs r5, 16 + str r5, [sp, 0xC] + str r7, [sp, 0x4] +_0817E5A0: + mov r6, r9 + cmp r6, 0x5 + bgt _0817E5A8 + b _0817E48E +_0817E5A8: + movs r4, 0 + movs r6, 0 + movs r3, 0 + ldr r5, =gPlayerParty + ldr r7, [sp, 0x10] + lsls r0, r7, 3 + mov r1, r10 + adds r2, r0, r1 +_0817E5B8: + lsls r0, r4, 16 + asrs r0, 16 + movs r7, 0 + ldrsh r1, [r2, r7] + cmp r0, r1 + bge _0817E5C8 + ldrh r4, [r2] + adds r6, r3, 0 +_0817E5C8: + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x3 + ble _0817E5B8 + movs r0, 0x64 + ldr r1, [sp, 0x10] + muls r0, r1 + adds r0, r5 + adds r1, r6, 0 + adds r1, 0xD + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + ldr r2, [sp, 0x1C] + cmp r2, 0 + beq _0817E670 + cmp r4, 0 + beq _0817E670 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0817E65C + ldr r3, [sp, 0x10] + cmp r3, 0x2 + bhi _0817E620 + ldr r0, =gBattleScripting + adds r0, 0x25 + ldrb r0, [r0] + bl sub_806D82C + lsls r0, 16 + cmp r0, 0 + beq _0817E630 + b _0817E670 + .pool +_0817E620: + ldr r0, =gBattleScripting + adds r0, 0x25 + ldrb r0, [r0] + bl sub_806D82C + lsls r0, 16 + cmp r0, 0 + beq _0817E670 +_0817E630: + movs r3, 0 + ldr r7, [sp, 0x14] + cmp r7, 0x2 + bls _0817E63A + movs r3, 0x1 +_0817E63A: + lsls r0, r3, 24 + lsrs r0, 24 + ldr r1, =gBattleScripting + adds r1, 0x25 + ldrb r1, [r1] + bl sub_806EF84 + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + ldr r2, [sp] + ldr r3, [sp, 0x4] + bl sub_80ECB00 + b _0817E670 + .pool +_0817E65C: + ldr r0, =gBattleScripting + adds r0, 0x25 + ldrb r1, [r0] + movs r0, 0x1 + eors r0, r1 + adds r1, r4, 0 + ldr r2, [sp] + ldr r3, [sp, 0x4] + bl sub_80ECB00 +_0817E670: + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_817E3F4 + + thumb_func_start sub_817E684 +sub_817E684: @ 817E684 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 24 + lsrs r5, r2, 24 + lsls r3, 24 + lsrs r3, 24 + mov r9, r3 + ldr r0, =gBattleStruct + ldr r0, [r0] + movs r1, 0xD2 + lsls r1, 1 + adds r1, r0 + mov r8, r1 + movs r2, 0x81 + lsls r2, 2 + adds r7, r0, r2 + ldr r0, =gBankAttacker + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gBankTarget + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + lsrs r3, r0, 24 + mov r0, r10 + cmp r0, 0x1B + bls _0817E6D4 + b _0817EA6C +_0817E6D4: + lsls r0, 2 + ldr r1, =_0817E6F0 + adds r1, r0, r1 + ldr r1, [r1] + mov r12, r0 + mov pc, r1 + .pool + .align 2, 0 +_0817E6F0: + .4byte _0817E760 + .4byte _0817E760 + .4byte _0817E85C + .4byte _0817E79C + .4byte _0817E79C + .4byte _0817E79C + .4byte _0817E79C + .4byte _0817E79C + .4byte _0817E8A0 + .4byte _0817E8A0 + .4byte _0817E8CC + .4byte _0817E8F0 + .4byte _0817E978 + .4byte _0817E9E0 + .4byte _0817EA28 + .4byte _0817E8A0 + .4byte _0817E8A0 + .4byte _0817E880 + .4byte _0817E760 + .4byte _0817E80A + .4byte _0817E848 + .4byte _0817E8A0 + .4byte _0817E760 + .4byte _0817E760 + .4byte _0817E760 + .4byte _0817E760 + .4byte _0817E760 + .4byte _0817E760 +_0817E760: + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 2 + adds r1, r6 + lsls r1, 1 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 4 + adds r1, r0 + add r1, r8 + ldr r0, =gUnknown_0860A834 + add r0, r12 + ldr r2, [r0] + lsls r0, r5, 1 + adds r0, r2 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r2 + b _0817EA6A + .pool +_0817E79C: + ldr r1, =gUnknown_0860A834 + add r1, r12 + ldr r7, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r4 + lsls r2, r0, 4 + ldr r4, =0x0000ffff + ldr r1, [r1] + ldr r3, =gBankAttacker + ldrh r0, [r1] + cmp r6, r0 + bne _0817E7E0 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r5 + lsls r0, 1 + adds r0, r2 + add r0, r8 + ldrh r1, [r1, 0x2] + ldrh r2, [r0] + adds r1, r2 + strh r1, [r0] + b _0817EA6C + .pool +_0817E7E0: + adds r1, 0x4 + ldrh r0, [r1] + cmp r0, r4 + bne _0817E7EA + b _0817EA6C +_0817E7EA: + cmp r6, r0 + bne _0817E7E0 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r5 + lsls r0, 1 + adds r0, r2 + add r0, r8 + ldrh r1, [r1, 0x2] + ldrh r5, [r0] + adds r1, r5 + strh r1, [r0] + b _0817EA6C +_0817E80A: + movs r0, 0x1 + adds r1, r5, 0 + eors r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r7, r0 + adds r0, 0x57 + ldrb r2, [r0] + movs r1, 0x1F + negs r1, r1 + ands r1, r2 + strb r1, [r0] + mov r0, r9 + lsls r1, r0, 1 + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 4 + adds r1, r0 + add r1, r8 + ldr r0, =gUnknown_0860A834 + add r0, r12 + ldr r2, [r0] + lsls r0, r6, 1 + adds r0, r2 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r2 + b _0817EA6A + .pool +_0817E848: + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 2 + adds r0, r7, r0 + adds r0, 0x57 + ldrb r2, [r0] + movs r1, 0x1F + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_0817E85C: + mov r0, r9 + lsls r1, r0, 1 + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 4 + adds r1, r0 + add r1, r8 + ldr r0, =gUnknown_0860A834 + add r0, r12 + ldr r2, [r0] + lsls r0, r6, 1 + adds r0, r2 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r2 + b _0817EA6A + .pool +_0817E880: + lsls r1, r5, 2 + add r1, r9 + lsls r1, 1 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 4 + adds r1, r0 + add r1, r8 + ldr r0, =gUnknown_0860A834 + add r0, r12 + ldr r2, [r0] + lsls r0, r6, 1 + adds r0, r2 + b _0817EA64 + .pool +_0817E8A0: + lsls r2, r5, 2 + add r2, r9 + lsls r2, 1 + movs r1, 0x1 + eors r1, r4 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 4 + adds r2, r0 + add r2, r8 + ldr r0, =gUnknown_0860A834 + add r0, r12 + ldr r1, [r0] + lsls r0, r6, 1 + adds r0, r1 + ldrh r0, [r0] + ldrh r1, [r2] + adds r0, r1 + strh r0, [r2] + b _0817EA6C + .pool +_0817E8CC: + lsls r1, r5, 2 + add r1, r9 + lsls r1, 1 + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 4 + adds r1, r0 + add r1, r8 + ldr r0, =gUnknown_0860A834 + add r0, r12 + ldr r0, [r0] + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r2 + b _0817EA6A + .pool +_0817E8F0: + lsls r0, r3, 4 + adds r2, r7, r0 + adds r0, r2, 0 + adds r0, 0x34 + ldrb r0, [r0] + lsls r0, 29 + lsrs r1, r0, 29 + adds r4, r2, 0 + adds r4, 0x3C + ldrb r0, [r4] + lsls r0, 29 + lsrs r0, 29 + cmn r1, r0 + bne _0817E90E + b _0817EA6C +_0817E90E: + cmp r6, 0xA + beq _0817E914 + b _0817EA6C +_0817E914: + cmp r1, 0 + beq _0817E940 + subs r1, 0x1 + lsls r1, 2 + adds r0, r2, 0 + adds r0, 0x33 + ldrb r0, [r0] + lsrs r0, 6 + adds r1, r0 + lsls r1, 1 + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 4 + adds r1, r0 + add r1, r8 + ldr r0, =gUnknown_0860A834 + add r0, r12 + ldr r0, [r0] + ldrh r0, [r0] + ldrh r5, [r1] + adds r0, r5 + strh r0, [r1] +_0817E940: + ldrb r0, [r4] + lsls r0, 29 + lsrs r0, 29 + cmp r0, 0 + bne _0817E94C + b _0817EA6C +_0817E94C: + subs r1, r0, 0x1 + lsls r1, 2 + adds r0, r2, 0 + adds r0, 0x3B + ldrb r0, [r0] + lsrs r0, 6 + adds r1, r0 + lsls r1, 1 + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 4 + adds r1, r0 + add r1, r8 + ldr r0, =gUnknown_0860A834 + add r0, r12 + ldr r0, [r0] + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r2 + b _0817EA6A + .pool +_0817E978: + lsls r1, r3, 4 + adds r1, r7, r1 + adds r0, r1, 0 + adds r0, 0x34 + ldrb r4, [r0] + lsls r0, r4, 26 + lsrs r2, r0, 29 + adds r5, r1, 0 + adds r5, 0x3C + ldrb r0, [r5] + lsls r0, 26 + lsrs r0, 29 + cmn r2, r0 + beq _0817EA6C + cmp r6, 0xD + bne _0817EA6C + cmp r2, 0 + beq _0817E9BE + subs r1, r2, 0x1 + lsls r1, 2 + lsrs r0, r4, 6 + adds r1, r0 + lsls r1, 1 + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 4 + adds r1, r0 + add r1, r8 + ldr r0, =gUnknown_0860A834 + add r0, r12 + ldr r0, [r0] + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] +_0817E9BE: + ldrb r2, [r5] + lsls r0, r2, 26 + lsrs r0, 29 + cmp r0, 0 + beq _0817EA6C + subs r1, r0, 0x1 + lsls r1, 2 + lsrs r0, r2, 6 + adds r1, r0 + lsls r1, 1 + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 4 + b _0817EA5A + .pool +_0817E9E0: + cmp r6, 0x8 + bhi _0817EA6C + cmp r5, 0 + beq _0817EA6C + lsls r0, r3, 1 + adds r3, r0, r3 + lsls r0, r3, 2 + adds r2, r7, r0 + adds r0, r2, 0 + adds r0, 0x50 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 29 + cmp r0, 0 + beq _0817EA6C + subs r1, r0, 0x1 + lsls r1, 2 + adds r0, r2, 0 + adds r0, 0x54 + ldrb r0, [r0] + lsls r0, 28 + lsrs r0, 30 + adds r1, r0 + lsls r1, 1 + lsls r0, r3, 4 + adds r1, r0 + add r1, r8 + ldr r0, =gUnknown_0860A834 + add r0, r12 + ldr r0, [r0] + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r2 + b _0817EA6A + .pool +_0817EA28: + cmp r6, 0x8 + bls _0817EA6C + cmp r5, 0 + beq _0817EA6C + lsls r0, r3, 1 + adds r3, r0, r3 + lsls r0, r3, 2 + adds r2, r7, r0 + adds r0, r2, 0 + adds r0, 0x50 + ldrh r0, [r0] + lsls r0, 23 + lsrs r0, 29 + cmp r0, 0 + beq _0817EA6C + subs r1, r0, 0x1 + lsls r1, 2 + adds r0, r2, 0 + adds r0, 0x54 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 30 + adds r1, r0 + lsls r1, 1 + lsls r0, r3, 4 +_0817EA5A: + adds r1, r0 + add r1, r8 + ldr r0, =gUnknown_0860A834 + add r0, r12 + ldr r0, [r0] +_0817EA64: + ldrh r0, [r0] + ldrh r5, [r1] + adds r0, r5 +_0817EA6A: + strh r0, [r1] +_0817EA6C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_817E684 + + thumb_func_start sub_817EA80 +sub_817EA80: @ 817EA80 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =gBattleStruct + ldr r0, [r0] + movs r1, 0x81 + lsls r1, 2 + adds r5, r0, r1 + ldr r3, =gBankAttacker + mov r8, r3 + ldrb r0, [r3] + bl GetBankSide + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gBankTarget + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r6, r5, r0 + adds r0, r6, 0 + adds r0, 0x57 + ldrb r0, [r0] + lsrs r3, r0, 5 + lsls r0, 27 + lsrs r0, 28 + cmp r0, 0 + bne _0817EAC8 + b _0817EE50 +_0817EAC8: + subs r0, 0x1 + cmp r0, 0xE + bls _0817EAD0 + b _0817EEBC +_0817EAD0: + lsls r0, 2 + ldr r1, =_0817EAEC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0817EAEC: + .4byte _0817EB28 + .4byte _0817EB54 + .4byte _0817EB80 + .4byte _0817EBD4 + .4byte _0817EBFE + .4byte _0817EC26 + .4byte _0817EC4E + .4byte _0817EC6C + .4byte _0817EC9A + .4byte _0817ECCC + .4byte _0817ED54 + .4byte _0817ED82 + .4byte _0817EDC2 + .4byte _0817EE1C + .4byte _0817EEBC +_0817EB28: + lsls r0, r3, 3 + lsls r1, r4, 4 + adds r0, r1 + adds r3, r5, r0 + adds r0, r3, 0 + adds r0, 0x30 + ldrb r0, [r0] + lsls r0, 29 + lsrs r1, r0, 29 + cmp r1, 0 + bne _0817EB40 + b _0817EEBC +_0817EB40: + movs r0, 0x1 + adds r2, r4, 0 + eors r2, r0 + subs r1, 0x1 + lsls r1, 2 + adds r0, r3, 0 + adds r0, 0x32 + ldrb r3, [r0] + lsls r3, 28 + b _0817EE84 +_0817EB54: + lsls r0, r3, 3 + lsls r1, r4, 4 + adds r0, r1 + adds r3, r5, r0 + adds r0, r3, 0 + adds r0, 0x30 + ldrb r0, [r0] + lsls r0, 26 + lsrs r1, r0, 29 + cmp r1, 0 + bne _0817EB6C + b _0817EEBC +_0817EB6C: + movs r0, 0x1 + adds r2, r4, 0 + eors r2, r0 + subs r1, 0x1 + lsls r1, 2 + adds r0, r3, 0 + adds r0, 0x32 + ldrb r3, [r0] + lsls r3, 26 + b _0817EE84 +_0817EB80: + lsls r0, r3, 2 + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 3 + adds r0, r1 + adds r5, r0 + ldrb r0, [r5] + lsls r0, 29 + lsrs r1, r0, 29 + cmp r1, 0 + beq _0817EBB4 + movs r0, 0x1 + adds r2, r4, 0 + eors r2, r0 + subs r0, r1, 0x1 + lsls r0, 2 + ldrb r3, [r5, 0x2] + lsls r3, 28 + lsrs r3, 30 + adds r3, r0 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x13 + movs r1, 0 + bl sub_817E684 +_0817EBB4: + ldrb r0, [r5] + lsls r0, 26 + lsrs r1, r0, 29 + cmp r1, 0 + bne _0817EBC0 + b _0817EEBC +_0817EBC0: + movs r0, 0x1 + adds r2, r4, 0 + eors r2, r0 + subs r0, r1, 0x1 + lsls r0, 2 + ldrb r3, [r5, 0x2] + lsls r3, 26 + lsrs r3, 30 + adds r3, r0 + b _0817EE88 +_0817EBD4: + lsls r0, r3, 2 + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 3 + adds r0, r1 + adds r1, r5, r0 + ldrh r0, [r1] + lsls r0, 23 + lsrs r3, r0, 29 + cmp r3, 0 + bne _0817EBEC + b _0817EEBC +_0817EBEC: + movs r0, 0x1 + adds r2, r4, 0 + eors r2, r0 + subs r0, r3, 0x1 + lsls r0, 2 + ldrb r3, [r1, 0x2] + lsrs r3, 6 + adds r3, r0 + b _0817EE88 +_0817EBFE: + lsls r0, r3, 3 + lsls r1, r4, 4 + adds r0, r1 + adds r3, r5, r0 + ldrh r0, [r3, 0x30] + lsls r0, 23 + lsrs r1, r0, 29 + cmp r1, 0 + bne _0817EC12 + b _0817EEBC +_0817EC12: + movs r0, 0x1 + adds r2, r4, 0 + eors r2, r0 + subs r1, 0x1 + lsls r1, 2 + adds r0, r3, 0 + adds r0, 0x32 + ldrb r3, [r0] + lsrs r3, 6 + b _0817EE86 +_0817EC26: + lsls r0, r3, 3 + lsls r1, r4, 4 + adds r0, r1 + adds r3, r5, r0 + adds r0, r3, 0 + adds r0, 0x31 + ldrb r0, [r0] + lsls r0, 28 + lsrs r1, r0, 29 + cmp r1, 0 + bne _0817EC3E + b _0817EEBC +_0817EC3E: + movs r0, 0x1 + adds r2, r4, 0 + eors r2, r0 + subs r1, 0x1 + lsls r1, 2 + adds r0, r3, 0 + adds r0, 0x33 + b _0817EE80 +_0817EC4E: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r3, r5, r0 + adds r0, r3, 0 + adds r0, 0x50 + ldrb r0, [r0] + lsls r0, 29 + lsrs r1, r0, 29 + cmp r1, 0 + bne _0817EC66 + b _0817EEBC +_0817EC66: + movs r0, 0x1 + adds r2, r4, 0 + b _0817EE76 +_0817EC6C: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r3, r5, r0 + ldr r0, [r3, 0x50] + lsls r0, 14 + lsrs r0, 29 + cmp r0, 0 + bne _0817EC80 + b _0817EEBC +_0817EC80: + adds r2, r4, 0 + subs r1, r0, 0x1 + lsls r1, 2 + adds r0, r3, 0 + adds r0, 0x55 + ldrb r3, [r0] + lsls r3, 28 + lsrs r3, 30 + adds r3, r1 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x14 + b _0817EE8E +_0817EC9A: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r3, r5, r0 + adds r0, r3, 0 + adds r0, 0x52 + ldrb r0, [r0] + lsls r0, 27 + lsrs r0, 29 + cmp r0, 0 + bne _0817ECB2 + b _0817EEBC +_0817ECB2: + adds r2, r4, 0 + subs r1, r0, 0x1 + lsls r1, 2 + adds r0, r3, 0 + adds r0, 0x55 + ldrb r3, [r0] + lsls r3, 26 + lsrs r3, 30 + adds r3, r1 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x14 + b _0817EE8E +_0817ECCC: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r3, r5, r0 + adds r0, r3, 0 + adds r0, 0x58 + ldrb r0, [r0] + lsls r0, 25 + cmp r0, 0 + bge _0817ED14 + adds r0, r3, 0 + adds r0, 0x52 + ldrb r0, [r0] + lsrs r0, 5 + subs r6, r0, 0x1 + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r6, r0 + beq _0817ED14 + adds r2, r4, 0 + lsls r1, r6, 2 + adds r0, r3, 0 + adds r0, 0x55 + ldrb r3, [r0] + lsrs r3, 6 + adds r3, r1 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x13 + movs r1, 0 + bl sub_817E684 +_0817ED14: + movs r1, 0x1 + eors r1, r4 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r1, r5, r0 + adds r0, r1, 0 + adds r0, 0x58 + ldrb r0, [r0] + lsls r0, 25 + cmp r0, 0 + blt _0817ED2E + b _0817EEBC +_0817ED2E: + movs r0, 0x1 + adds r2, r4, 0 + eors r2, r0 + adds r0, r1, 0 + adds r0, 0x52 + ldrb r0, [r0] + lsrs r0, 5 + subs r0, 0x1 + lsls r0, 2 + adds r1, 0x55 + ldrb r3, [r1] + lsrs r3, 6 + adds r3, r0 + b _0817EE88 + .pool +_0817ED54: + movs r0, 0x1 + eors r0, r4 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r5, r1 + adds r1, 0x56 + ldrb r0, [r1] + lsls r0, 25 + lsrs r5, r0, 29 + cmp r5, 0 + bne _0817ED6E + b _0817EEBC +_0817ED6E: + movs r0, 0x1 + adds r2, r4, 0 + eors r2, r0 + subs r0, r5, 0x1 + lsls r0, 2 + ldrh r3, [r1] + lsls r3, 23 + lsrs r3, 30 + adds r3, r0 + b _0817EE88 +_0817ED82: + lsls r2, r4, 4 + movs r1, 0x1 + adds r0, r4, 0 + eors r0, r1 + lsls r6, r0, 24 + adds r0, r5, 0 + adds r0, 0x30 + adds r4, r2, r0 + movs r5, 0x1 +_0817ED94: + ldr r0, [r4] + lsls r0, 14 + lsrs r0, 29 + cmp r0, 0 + beq _0817EDB8 + subs r0, 0x1 + lsls r0, 2 + ldrb r3, [r4, 0x3] + lsls r3, 26 + lsrs r3, 30 + adds r3, r0 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x13 + movs r1, 0 + lsrs r2, r6, 24 + bl sub_817E684 +_0817EDB8: + adds r4, 0x8 + subs r5, 0x1 + cmp r5, 0 + bge _0817ED94 + b _0817EEBC +_0817EDC2: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r0, r5, r0 + adds r0, 0x58 + ldrb r3, [r0] + lsls r0, r3, 31 + cmp r0, 0 + beq _0817EDF0 + adds r2, r4, 0 + lsls r0, r3, 26 + lsrs r0, 29 + subs r0, 0x1 + lsls r0, 2 + lsls r3, 29 + lsrs r3, 30 + adds r3, r0 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x13 + movs r1, 0 + bl sub_817E684 +_0817EDF0: + movs r0, 0x1 + eors r0, r4 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r5, r1 + adds r1, 0x58 + ldrb r1, [r1] + lsls r0, r1, 31 + cmp r0, 0 + beq _0817EEBC + movs r0, 0x1 + adds r2, r4, 0 + eors r2, r0 + lsls r0, r1, 26 + lsrs r0, 29 + subs r0, 0x1 + lsls r0, 2 + lsls r3, r1, 29 + lsrs r3, 30 + adds r3, r0 + b _0817EE88 +_0817EE1C: + cmp r7, 0x1 + bne _0817EEBC + adds r2, r4, 0 + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 2 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r5, r0 + adds r0, 0x53 + ldrb r3, [r0] + lsrs r3, 6 + adds r3, r1 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x14 + b _0817EE8E + .pool +_0817EE50: + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r3, r5, r0 + adds r0, r3, 0 + adds r0, 0x57 + ldrb r0, [r0] + lsls r0, 27 + lsrs r0, 28 + cmp r0, 0x7 + bne _0817EE96 + adds r0, r3, 0 + adds r0, 0x50 + ldrb r0, [r0] + lsls r0, 29 + lsrs r1, r0, 29 + cmp r1, 0 + beq _0817EEBC + movs r0, 0x1 +_0817EE76: + eors r2, r0 + subs r1, 0x1 + lsls r1, 2 + adds r0, r3, 0 + adds r0, 0x54 +_0817EE80: + ldrb r3, [r0] + lsls r3, 30 +_0817EE84: + lsrs r3, 30 +_0817EE86: + adds r3, r1 +_0817EE88: + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x13 +_0817EE8E: + movs r1, 0 + bl sub_817E684 + b _0817EEBC +_0817EE96: + adds r2, r4, 0 + ldr r1, =gBattlePartyID + mov r3, r8 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 2 + adds r0, r6, 0 + adds r0, 0x53 + ldrb r3, [r0] + lsrs r3, 6 + adds r3, r1 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x14 + movs r1, 0 + bl sub_817E684 +_0817EEBC: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_817EA80 + + thumb_func_start sub_817EECC +sub_817EECC: @ 817EECC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + ldr r7, =gBattleTypeFlags + ldr r0, [r7] + ldr r1, =0x02000003 + ands r0, r1 + cmp r0, 0 + beq _0817EEE6 + b _0817F1FA +_0817EEE6: + ldr r4, =gBankAttacker + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0817EEF8 + b _0817F1FA +_0817EEF8: + ldr r5, =gBattleMons + ldrb r4, [r4] + movs r1, 0x58 + adds r6, r4, 0 + muls r6, r1 + adds r0, r6, r5 + ldrb r0, [r0, 0x1E] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x5 + bgt _0817EF10 + b _0817F1FA +_0817EF10: + ldr r0, =gBankTarget + ldrb r0, [r0] + muls r0, r1 + adds r0, r5 + ldrb r0, [r0, 0x1F] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x6 + ble _0817EF24 + b _0817F1FA +_0817EF24: + ldr r0, =gCurrentMove + ldrh r1, [r0] + cmp r1, 0xED + bne _0817EF2E + b _0817F1FA +_0817EF2E: + ldr r0, =0x00000137 + cmp r1, r0 + bne _0817EF36 + b _0817F1FA +_0817EF36: + ldr r0, [r7] + movs r1, 0xC8 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + beq _0817EF44 + b _0817F1FA +_0817EF44: + ldr r3, =gBattleMoves + ldr r2, =gUnknown_020244B0 + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r6 + 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, r3 + ldrb r0, [r0, 0x1] + adds r6, r2, 0 + cmp r0, 0 + bne _0817EF6A + b _0817F1FA +_0817EF6A: + movs r5, 0 + str r1, [sp, 0x24] + ldr r1, =gUnknown_0860A4AC + ldr r4, =0x0000ffff + adds r3, r1, 0 + adds r2, r1, 0 +_0817EF76: + ldr r0, [sp, 0x24] + ldrh r7, [r2] + cmp r0, r7 + beq _0817EF8A + adds r3, 0x2 + adds r2, 0x2 + adds r5, 0x1 + ldrh r0, [r3] + cmp r0, r4 + bne _0817EF76 +_0817EF8A: + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + ldr r0, =0x0000ffff + cmp r1, r0 + beq _0817EF98 + b _0817F1FA +_0817EF98: + ldr r2, =gBankAttacker + ldrb r0, [r2] + adds r0, r6 + ldrb r0, [r0] + lsls r0, 2 + mov r1, sp + adds r1, r0 + adds r1, 0x10 + ldr r0, =gBattleMoveDamage + ldr r0, [r0] + str r0, [r1] + ldr r0, =gCurrentMove + ldrh r1, [r0] + str r1, [sp, 0x24] + movs r5, 0 + add r3, sp, 0x20 + mov r10, r3 + mov r8, r0 + add r7, sp, 0x10 + ldr r4, =gBankTarget + mov r9, r4 +_0817EFC2: + lsls r1, r5, 1 + ldr r6, =gBankAttacker + ldrb r0, [r6] + movs r2, 0x58 + muls r0, r2 + adds r1, r0 + ldr r0, =gBattleMons + adds r0, 0xC + adds r1, r0 + ldrh r0, [r1] + mov r3, r8 + strh r0, [r3] + movs r6, 0 + mov r4, r10 + strh r6, [r4] + ldrh r0, [r3] + adds r1, r7, 0 + mov r2, r10 + bl sub_817F21C + lsls r0, 24 + cmp r0, 0 + beq _0817F0B4 + ldr r4, =gSideAffecting + mov r1, r9 + ldrb r0, [r1] + bl GetBankIdentity + movs r1, 0x1 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r3, [r1] + ldr r2, =gBankAttacker + ldrb r0, [r2] + movs r4, 0x58 + muls r0, r4 + ldr r6, =gBattleMons + adds r0, r6 + mov r2, r9 + ldrb r1, [r2] + muls r1, r4 + adds r1, r6 + mov r4, r8 + ldrh r2, [r4] + mov r6, r10 + ldrh r4, [r6] + str r4, [sp] + movs r4, 0 + str r4, [sp, 0x4] + ldr r6, =gBankAttacker + ldrb r4, [r6] + str r4, [sp, 0x8] + mov r6, r9 + ldrb r4, [r6] + str r4, [sp, 0xC] + bl CalculateBaseDamage + adds r3, r0, 0 + ldr r4, =gBattleMoveDamage + str r3, [r4] + ldr r1, =gStatuses3 + ldr r2, =gBankAttacker + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 2 + ands r0, r1 + cmp r0, 0 + beq _0817F06A + ldr r2, =gBattleMoves + mov r6, r8 + ldrh r1, [r6] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + cmp r0, 0xD + bne _0817F06A + lsls r0, r3, 1 + str r0, [r4] +_0817F06A: + ldr r0, =gProtectStructs + ldr r6, =gBankAttacker + ldrb r1, [r6] + lsls r1, 4 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 28 + cmp r0, 0 + bge _0817F08C + ldr r4, =gBattleMoveDamage + ldr r1, [r4] + lsls r0, r1, 4 + subs r0, r1 + movs r1, 0xA + bl __divsi3 + str r0, [r4] +_0817F08C: + mov r1, r8 + ldrh r0, [r1] + ldrb r1, [r6] + mov r3, r9 + ldrb r2, [r3] + bl TypeCalc + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, =gBattleMoveDamage + ldr r0, [r0] + str r0, [r7] + cmp r0, 0 + bne _0817F0B4 + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0817F0B4 + movs r0, 0x1 + str r0, [r7] +_0817F0B4: + adds r7, 0x4 + adds r5, 0x1 + cmp r5, 0x3 + ble _0817EFC2 + movs r5, 0 + ldr r3, =gBankAttacker + ldr r6, =gUnknown_020244B0 + ldr r4, =gBattlePartyID + mov r8, r4 + movs r7, 0x64 + mov r9, r7 + mov r10, r6 +_0817F0CC: + ldrb r0, [r3] + adds r0, r6 + ldrb r2, [r0] + cmp r5, r2 + bne _0817F0D8 + b _0817F1D4 +_0817F0D8: + lsls r0, r5, 2 + mov r1, sp + adds r1, r0 + adds r1, 0x10 + lsls r0, r2, 2 + add r0, sp + adds r0, 0x10 + ldr r1, [r1] + ldr r0, [r0] + cmp r1, r0 + ble _0817F1D4 + movs r7, 0x1 + cmp r2, 0 + beq _0817F0F6 + movs r7, 0 +_0817F0F6: + movs r5, 0 + ldr r4, =gBankTarget + ldr r6, =gEnemyParty + ldr r0, =gBankAttacker + ldrb r0, [r0] + add r0, r10 + ldrb r3, [r0] + add r2, sp, 0x10 +_0817F106: + cmp r5, r3 + beq _0817F11A + lsls r0, r7, 2 + add r0, sp + adds r0, 0x10 + ldr r1, [r2] + ldr r0, [r0] + cmp r1, r0 + ble _0817F11A + adds r7, r5, 0 +_0817F11A: + adds r2, 0x4 + adds r5, 0x1 + cmp r5, 0x3 + ble _0817F106 + ldrb r0, [r4] + lsls r0, 1 + add r0, r8 + ldrh r0, [r0] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + movs r1, 0xB + movs r2, 0 + bl GetMonData + adds r6, r0, 0 + lsls r6, 16 + lsrs r6, 16 + ldr r2, =gBankAttacker + ldrb r0, [r2] + lsls r0, 1 + add r0, r8 + ldrh r0, [r0] + mov r3, r9 + muls r3, r0 + adds r0, r3, 0 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + movs r2, 0 + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + ldr r4, =gBankAttacker + ldrb r3, [r4] + mov r2, r10 + adds r0, r3, r2 + ldrb r2, [r0] + movs r0, 0x58 + adds r4, r3, 0 + muls r4, r0 + ldr r5, =gBattleMons + 0xC + adds r3, r4, r5 + lsls r0, r7, 1 + adds r0, r4 + adds r0, r5 + ldrh r0, [r0] + str r0, [sp] + adds r0, r6, 0 + bl sub_80EE35C + b _0817F1DC + .pool +_0817F1D4: + adds r5, 0x1 + cmp r5, 0x3 + bgt _0817F1DC + b _0817F0CC +_0817F1DC: + ldr r2, =gBattleMoveDamage + ldr r1, =gUnknown_020244B0 + ldr r0, =gBankAttacker + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + lsls r0, 2 + add r0, sp + adds r0, 0x10 + ldr r0, [r0] + str r0, [r2] + ldr r0, =gCurrentMove + mov r3, sp + ldrh r3, [r3, 0x24] + strh r3, [r0] +_0817F1FA: + add sp, 0x28 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_817EECC + + thumb_func_start sub_817F21C +sub_817F21C: @ 817F21C + push {r4-r7,lr} + adds r6, r1, 0 + mov r12, r2 + lsls r0, 16 + lsrs r2, r0, 16 + ldr r1, =gBattleMoves + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _0817F286 + movs r4, 0 + ldr r5, =gUnknown_0860A4AC + ldr r7, =0x0000ffff + adds r3, r5, 0 + adds r1, r5, 0 +_0817F240: + ldrh r0, [r1] + cmp r2, r0 + beq _0817F252 + adds r3, 0x2 + adds r1, 0x2 + adds r4, 0x1 + ldrh r0, [r3] + cmp r0, r7 + bne _0817F240 +_0817F252: + lsls r0, r4, 1 + adds r0, r5 + ldrh r1, [r0] + ldr r0, =0x0000ffff + cmp r1, r0 + beq _0817F270 + movs r0, 0 + str r0, [r6] + b _0817F2A0 + .pool +_0817F270: + cmp r2, 0x95 + bne _0817F294 + ldr r2, =gBattleMons + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x2A + ldrb r0, [r0] + asrs r0, 1 +_0817F286: + str r0, [r6] + movs r0, 0 + b _0817F2A0 + .pool +_0817F294: + cmp r2, 0xDE + bne _0817F29E + movs r0, 0xA + mov r1, r12 + strh r0, [r1] +_0817F29E: + movs r0, 0x1 +_0817F2A0: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_817F21C + + thumb_func_start sub_817F2A8 +sub_817F2A8: @ 817F2A8 + push {r4,r5,lr} + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0817F324 + ldr r0, =gBattleStruct + ldr r3, [r0] + ldr r0, =0x0000025b + adds r4, r3, r0 + ldrb r2, [r4] + subs r1, 0x21 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r4] + ldr r0, =0x00000267 + adds r2, r3, r0 + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + ldrb r5, [r4] + movs r1, 0x1F + adds r0, r1, 0 + ands r0, r5 + strb r0, [r4] + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + movs r0, 0x97 + lsls r0, 2 + adds r4, r3, r0 + ldrb r2, [r4] + movs r1, 0x39 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r4] + movs r0, 0x9A + lsls r0, 2 + adds r3, r0 + ldrb r0, [r3] + ands r1, r0 + strb r1, [r3] + ldrb r2, [r4] + movs r1, 0x7 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r4] + ldrb r0, [r3] + ands r1, r0 + strb r1, [r3] + ldrb r2, [r4] + movs r1, 0x2 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r4] + ldrb r0, [r3] + ands r1, r0 + strb r1, [r3] +_0817F324: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_817F2A8 + + thumb_func_start sub_817F33C +sub_817F33C: @ 817F33C + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 16 + lsrs r7, r1, 16 + adds r0, r5, 0 + bl GetBankSide + lsls r0, 24 + ldr r6, =gEnemyParty + cmp r0, 0 + bne _0817F356 + ldr r6, =gPlayerParty +_0817F356: + movs r4, 0 + ldr r1, =gBattlePartyID + lsls r0, r5, 1 + adds r5, r0, r1 + b _0817F36E + .pool +_0817F36C: + adds r4, 0x1 +_0817F36E: + cmp r4, 0x3 + bgt _0817F388 + ldrh r1, [r5] + movs r0, 0x64 + muls r0, r1 + adds r0, r6, r0 + adds r1, r4, 0 + adds r1, 0xD + movs r2, 0 + bl GetMonData + cmp r0, r7 + bne _0817F36C +_0817F388: + lsls r0, r4, 24 + lsrs r0, 24 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_817F33C + + thumb_func_start sub_817F394 +sub_817F394: @ 817F394 + push {r4-r6,lr} + lsls r0, 16 + lsrs r3, r0, 16 + adds r4, r3, 0 + lsls r1, 16 + lsrs r1, 16 + adds r6, r1, 0 + lsls r2, 24 + lsrs r2, 24 + adds r5, r2, 0 + movs r0, 0x7 + ands r0, r3 + cmp r0, 0 + beq _0817F3B4 + movs r0, 0x3 + b _0817F3CA +_0817F3B4: + movs r0, 0x60 + ands r0, r3 + cmp r0, 0 + beq _0817F3C0 + movs r0, 0x4 + b _0817F3CA +_0817F3C0: + movs r0, 0x18 + ands r0, r3 + cmp r0, 0 + beq _0817F3D2 + movs r0, 0x5 +_0817F3CA: + movs r3, 0 + bl sub_817E684 + b _0817F3E6 +_0817F3D2: + movs r0, 0x80 + ands r4, r0 + cmp r4, 0 + beq _0817F3E6 + movs r0, 0x6 + adds r1, r6, 0 + adds r2, r5, 0 + movs r3, 0 + bl sub_817E684 +_0817F3E6: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_817F394 + + thumb_func_start nullsub_69 +nullsub_69: @ 817F3EC + bx lr + thumb_func_end nullsub_69 + + thumb_func_start sub_817F3F0 +sub_817F3F0: @ 817F3F0 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + mov r9, r0 + mov r8, r1 + adds r5, r2, 0 + adds r4, r3, 0 + lsls r5, 16 + negs r5, r5 + lsls r4, 16 + negs r4, r4 + lsrs r4, 16 + mov r0, r8 + lsls r0, 16 + asrs r0, 16 + mov r8, r0 + asrs r5, 16 + adds r1, r5, 0 + bl Cos + adds r6, r0, 0 + lsls r4, 16 + asrs r4, 16 + mov r0, r8 + adds r1, r4, 0 + bl Sin + subs r6, r0 + lsls r6, 16 + lsrs r6, 16 + mov r0, r8 + adds r1, r4, 0 + bl Cos + adds r2, r0, 0 + mov r0, r8 + adds r1, r5, 0 + str r2, [sp] + bl Sin + ldr r2, [sp] + adds r2, r0 + negs r5, r5 + negs r4, r4 + lsls r6, 16 + asrs r6, 16 + lsls r5, 16 + asrs r5, 16 + adds r6, r5 + mov r0, r9 + strh r6, [r0, 0x24] + lsls r2, 16 + asrs r2, 16 + lsls r4, 16 + asrs r4, 16 + adds r2, r4 + strh r2, [r0, 0x26] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_817F3F0 + + thumb_func_start GetSpeciesBackAnimId +GetSpeciesBackAnimId: @ 817F474 + push {lr} + lsls r0, 16 + lsrs r0, 16 + ldr r1, =gUnknown_0860A8C8 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0817F48C + movs r0, 0 + b _0817F492 + .pool +_0817F48C: + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 +_0817F492: + pop {r1} + bx r1 + thumb_func_end GetSpeciesBackAnimId + + .align 2, 0 @ Don't pad with nop. |