.include "constants/gba_constants.inc" .include "include/macros.inc" .syntax unified .text thumb_func_start sub_812F474 sub_812F474: @ 812F474 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _0812F4A8 @ =gTasks adds r6, r0, r1 ldrb r0, [r6, 0x12] bl GetBattlerPosition_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812F4B4 ldr r0, _0812F4AC @ =gBattle_BG1_X ldrh r0, [r0] str r0, [sp, 0x4] ldr r0, _0812F4B0 @ =gBattle_BG1_Y b _0812F4BC .align 2, 0 _0812F4A8: .4byte gTasks _0812F4AC: .4byte gBattle_BG1_X _0812F4B0: .4byte gBattle_BG1_Y _0812F4B4: ldr r0, _0812F4D4 @ =gBattle_BG2_X ldrh r0, [r0] str r0, [sp, 0x4] ldr r0, _0812F4D8 @ =gBattle_BG2_Y _0812F4BC: ldrh r0, [r0] str r0, [sp, 0x8] movs r1, 0x8 ldrsh r0, [r6, r1] cmp r0, 0x1 bne _0812F4CA b _0812F6A6 _0812F4CA: cmp r0, 0x1 bgt _0812F4DC cmp r0, 0 beq _0812F4EA b _0812F712 .align 2, 0 _0812F4D4: .4byte gBattle_BG2_X _0812F4D8: .4byte gBattle_BG2_Y _0812F4DC: cmp r0, 0x2 bne _0812F4E2 b _0812F6C4 _0812F4E2: cmp r0, 0x3 bne _0812F4E8 b _0812F70C _0812F4E8: b _0812F712 _0812F4EA: movs r2, 0x24 ldrsh r0, [r6, r2] lsls r0, 17 lsrs r5, r0, 16 movs r3, 0 str r3, [sp] mov r9, r3 movs r4, 0 ldrh r0, [r6, 0xA] adds r0, 0x2 movs r1, 0xFF ands r0, r1 strh r0, [r6, 0xA] ldrh r7, [r6, 0xA] mov r8, r7 movs r0, 0x14 ldrsh r1, [r6, r0] movs r0, 0xFC lsls r0, 3 bl __divsi3 strh r0, [r6, 0x1A] movs r1, 0x16 ldrsh r0, [r6, r1] lsls r0, 1 movs r2, 0x1A ldrsh r1, [r6, r2] bl __divsi3 negs r0, r0 strh r0, [r6, 0x1C] ldrh r0, [r6, 0x16] strh r0, [r6, 0x1E] lsls r0, 16 asrs r0, 21 lsls r0, 16 lsrs r7, r0, 16 strh r7, [r6, 0x20] ldrh r2, [r6, 0x24] lsls r3, r2, 16 mov r12, r3 asrs r1, r3, 16 movs r3, 0x22 ldrsh r0, [r6, r3] cmp r1, r0 ble _0812F60A ldr r0, _0812F660 @ =gScanlineEffect mov r10, r0 ldr r1, [sp, 0x4] lsls r0, r1, 16 asrs r0, 16 str r0, [sp, 0x10] ldr r2, [sp, 0x8] lsls r0, r2, 16 asrs r0, 16 str r0, [sp, 0xC] _0812F55A: lsls r5, 16 asrs r5, 16 adds r2, r5, 0x1 lsls r2, 1 mov r3, r10 ldrb r1, [r3, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 ldr r0, _0812F664 @ =gScanlineEffectRegBuffers adds r2, r0 lsls r4, 16 asrs r4, 16 mov r1, r9 lsls r0, r1, 16 asrs r0, 16 subs r0, r4, r0 ldr r3, [sp, 0xC] adds r0, r3, r0 strh r0, [r2] lsls r3, r5, 1 mov r0, r10 ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r3, r0 ldr r1, _0812F664 @ =gScanlineEffectRegBuffers adds r3, r1 lsls r1, r7, 16 asrs r1, 16 ldr r2, [sp, 0x10] adds r1, r2, r1 mov r7, r8 lsls r2, r7, 16 asrs r2, 16 lsls r0, r2, 1 ldr r7, _0812F668 @ =gSineTable adds r0, r7 ldrh r0, [r0] lsls r0, 16 asrs r0, 21 adds r1, r0 strh r1, [r3] adds r2, 0xA mov r8, r2 movs r0, 0xFF mov r1, r8 ands r1, r0 mov r8, r1 ldrh r0, [r6, 0x1C] ldrh r2, [r6, 0x1E] adds r0, r2 strh r0, [r6, 0x1E] lsls r0, 16 asrs r0, 21 lsls r0, 16 lsrs r7, r0, 16 strh r7, [r6, 0x20] adds r4, 0x1 lsls r4, 16 lsrs r4, 16 subs r5, 0x2 lsls r5, 16 lsrs r5, 16 ldr r3, [sp] lsls r0, r3, 16 asrs r0, 16 ldrh r1, [r6, 0x14] adds r0, r1 lsls r0, 16 lsrs r2, r0, 16 str r2, [sp] asrs r0, 21 lsls r0, 16 lsrs r0, 16 mov r9, r0 ldr r0, _0812F66C @ =0xffff0000 add r0, r12 lsrs r2, r0, 16 lsls r3, r2, 16 mov r12, r3 asrs r1, r3, 16 movs r3, 0x22 ldrsh r0, [r6, r3] cmp r1, r0 bgt _0812F55A _0812F60A: lsls r1, r2, 17 cmp r1, 0 blt _0812F636 ldr r4, _0812F664 @ =gScanlineEffectRegBuffers ldr r7, [sp, 0x4] lsls r0, r7, 16 asrs r0, 16 adds r3, r0, 0 adds r3, 0xF0 movs r0, 0xF0 lsls r0, 3 adds r5, r4, r0 _0812F622: asrs r2, r1, 16 lsls r1, r2, 1 adds r0, r1, r4 strh r3, [r0] adds r1, r5 strh r3, [r1] subs r2, 0x2 lsls r1, r2, 16 cmp r1, 0 bge _0812F622 _0812F636: ldrh r0, [r6, 0x14] adds r0, 0x1 strh r0, [r6, 0x14] lsls r0, 16 asrs r0, 16 cmp r0, 0x3F ble _0812F69C movs r0, 0x40 strh r0, [r6, 0x14] ldrh r0, [r6, 0xC] adds r0, 0x1 strh r0, [r6, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0812F670 ldrh r0, [r6, 0xE] subs r0, 0x1 strh r0, [r6, 0xE] b _0812F676 .align 2, 0 _0812F660: .4byte gScanlineEffect _0812F664: .4byte gScanlineEffectRegBuffers _0812F668: .4byte gSineTable _0812F66C: .4byte 0xffff0000 _0812F670: ldrh r0, [r6, 0x10] adds r0, 0x1 strh r0, [r6, 0x10] _0812F676: ldr r0, _0812F698 @ =REG_BLDALPHA ldrh r1, [r6, 0x10] lsls r1, 8 ldrh r2, [r6, 0xE] orrs r1, r2 strh r1, [r0] movs r2, 0xE ldrsh r1, [r6, r2] cmp r1, 0 bne _0812F712 movs r3, 0x10 ldrsh r0, [r6, r3] cmp r0, 0x10 bne _0812F712 strh r1, [r6, 0xC] strh r1, [r6, 0xE] b _0812F700 .align 2, 0 _0812F698: .4byte REG_BLDALPHA _0812F69C: ldrh r0, [r6, 0x18] ldrh r7, [r6, 0x16] adds r0, r7 strh r0, [r6, 0x16] b _0812F712 _0812F6A6: ldrh r0, [r6, 0xC] adds r0, 0x1 strh r0, [r6, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0xC ble _0812F712 ldr r1, _0812F6C0 @ =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] movs r0, 0 strh r0, [r6, 0xC] b _0812F700 .align 2, 0 _0812F6C0: .4byte gScanlineEffect _0812F6C4: ldrh r0, [r6, 0xC] adds r0, 0x1 strh r0, [r6, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0812F6DA ldrh r0, [r6, 0xE] adds r0, 0x1 strh r0, [r6, 0xE] b _0812F6E0 _0812F6DA: ldrh r0, [r6, 0x10] subs r0, 0x1 strh r0, [r6, 0x10] _0812F6E0: ldr r2, _0812F708 @ =REG_BLDALPHA ldrh r0, [r6, 0x10] lsls r0, 8 ldrh r1, [r6, 0xE] orrs r0, r1 strh r0, [r2] movs r1, 0xE ldrsh r0, [r6, r1] cmp r0, 0x10 bne _0812F712 movs r2, 0x10 ldrsh r0, [r6, r2] cmp r0, 0 bne _0812F712 strh r0, [r6, 0xC] strh r0, [r6, 0xE] _0812F700: ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] b _0812F712 .align 2, 0 _0812F708: .4byte REG_BLDALPHA _0812F70C: adds r0, r4, 0 bl DestroyAnimVisualTask _0812F712: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_812F474 thumb_func_start sub_812F724 sub_812F724: @ 812F724 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _0812F75C @ =gTasks adds r4, r0 movs r0, 0 strh r0, [r4, 0x8] ldr r0, _0812F760 @ =gBattleAnimArgs ldrb r0, [r0] bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 strh r1, [r4, 0x26] ldr r2, _0812F764 @ =gUnknown_08402750 adds r0, r4, 0 bl sub_80798F4 ldr r0, _0812F768 @ =sub_812F76C str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812F75C: .4byte gTasks _0812F760: .4byte gBattleAnimArgs _0812F764: .4byte gUnknown_08402750 _0812F768: .4byte sub_812F76C thumb_func_end sub_812F724 thumb_func_start sub_812F76C sub_812F76C: @ 812F76C push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r2, _0812F7C4 @ =gTasks adds r3, r0, r2 ldrh r0, [r3, 0x8] adds r1, r0, 0x1 movs r5, 0 strh r1, [r3, 0x8] subs r0, 0x14 lsls r0, 16 lsrs r0, 16 adds r6, r2, 0 cmp r0, 0x16 bhi _0812F7D0 ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _0812F7E0 strh r5, [r3, 0xA] ldrh r0, [r3, 0xC] adds r0, 0x1 strh r0, [r3, 0xC] movs r5, 0x1 ands r0, r5 cmp r0, 0 bne _0812F7D0 ldr r2, _0812F7C8 @ =gSprites movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _0812F7CC @ =0x0000ffff strh r1, [r0, 0x24] b _0812F7E0 .align 2, 0 _0812F7C4: .4byte gTasks _0812F7C8: .4byte gSprites _0812F7CC: .4byte 0x0000ffff _0812F7D0: ldr r2, _0812F800 @ =gSprites movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r5, [r0, 0x24] _0812F7E0: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r6 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _0812F7F8 adds r0, r4, 0 bl DestroyAnimVisualTask _0812F7F8: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812F800: .4byte gSprites thumb_func_end sub_812F76C thumb_func_start sub_812F804 sub_812F804: @ 812F804 push {r4-r6,lr} mov r6, r8 push {r6} mov r8, r0 adds r5, r2, 0 adds r0, r3, 0 ldr r4, [sp, 0x14] ldr r6, [sp, 0x18] lsls r1, 16 lsrs r1, 16 lsls r5, 16 lsrs r5, 16 lsls r4, 16 lsrs r4, 16 lsls r6, 16 lsrs r6, 16 mov r2, r8 strh r1, [r2, 0x20] strh r5, [r2, 0x22] lsls r1, 16 asrs r1, 16 lsls r2, r1, 4 mov r3, r8 strh r2, [r3, 0x36] lsls r5, 16 asrs r5, 16 lsls r2, r5, 4 strh r2, [r3, 0x38] lsls r0, 16 asrs r0, 16 subs r0, r1 lsls r0, 4 adds r1, r6, 0 bl __divsi3 mov r1, r8 strh r0, [r1, 0x3A] lsls r4, 16 asrs r4, 16 subs r4, r5 lsls r4, 4 adds r0, r4, 0 adds r1, r6, 0 bl __divsi3 mov r2, r8 strh r0, [r2, 0x3C] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_812F804 thumb_func_start sub_812F86C sub_812F86C: @ 812F86C ldrh r1, [r0, 0x3A] ldrh r2, [r0, 0x36] adds r1, r2 strh r1, [r0, 0x36] ldrh r2, [r0, 0x3C] ldrh r3, [r0, 0x38] adds r2, r3 strh r2, [r0, 0x38] lsls r1, 16 asrs r1, 20 strh r1, [r0, 0x20] lsls r2, 16 asrs r2, 20 strh r2, [r0, 0x22] bx lr thumb_func_end sub_812F86C thumb_func_start sub_812F88C sub_812F88C: @ 812F88C push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 ldrh r6, [r4, 0x20] ldrh r5, [r4, 0x22] bl sub_8078650 ldr r0, _0812F8D4 @ =gBattleAnimArgs ldrb r1, [r0] adds r0, r4, 0 bl StartSpriteAffineAnim movs r0, 0x20 ldrsh r1, [r4, r0] movs r0, 0x22 ldrsh r2, [r4, r0] lsls r6, 16 asrs r6, 16 lsls r5, 16 asrs r5, 16 str r5, [sp] movs r0, 0x40 str r0, [sp, 0x4] adds r0, r4, 0 adds r3, r6, 0 bl sub_812F804 movs r0, 0 strh r0, [r4, 0x2E] ldr r0, _0812F8D8 @ =sub_812F8DC str r0, [r4, 0x1C] add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812F8D4: .4byte gBattleAnimArgs _0812F8D8: .4byte sub_812F8DC thumb_func_end sub_812F88C thumb_func_start sub_812F8DC sub_812F8DC: @ 812F8DC push {r4,r5,lr} adds r5, r0, 0 ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] movs r0, 0x2E ldrsh r4, [r5, r0] lsls r4, 3 movs r0, 0xFF ands r4, r0 adds r0, r5, 0 bl sub_812F86C adds r0, r4, 0 movs r1, 0x8 bl Sin strh r0, [r5, 0x26] movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0x3A ble _0812F942 ldrh r0, [r5, 0x30] adds r0, 0x1 strh r0, [r5, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _0812F942 movs r0, 0 strh r0, [r5, 0x30] ldrh r1, [r5, 0x32] adds r1, 0x1 strh r1, [r5, 0x32] movs r0, 0x1 ands r1, r0 adds r3, r5, 0 adds r3, 0x3E lsls r1, 2 ldrb r2, [r3] subs r0, 0x6 ands r0, r2 orrs r0, r1 strb r0, [r3] movs r1, 0x32 ldrsh r0, [r5, r1] cmp r0, 0x3 ble _0812F942 adds r0, r5, 0 bl move_anim_8074EE0 _0812F942: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_812F8DC thumb_func_start sub_812F948 sub_812F948: @ 812F948 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _0812F9A0 @ =gBattleAnimArgs ldrh r0, [r6, 0x6] strh r0, [r5, 0x2E] ldrb r1, [r6] adds r0, r5, 0 bl StartSpriteAffineAnim ldr r0, _0812F9A4 @ =gAnimBankTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0812F96E ldrh r0, [r6, 0x2] negs r0, r0 strh r0, [r6, 0x2] _0812F96E: ldr r4, _0812F9A8 @ =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x2] adds r0, r1 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x4] adds r0, r6 strh r0, [r5, 0x22] ldr r0, _0812F9AC @ =sub_80DA48C str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812F9A0: .4byte gBattleAnimArgs _0812F9A4: .4byte gAnimBankTarget _0812F9A8: .4byte gAnimBankAttacker _0812F9AC: .4byte sub_80DA48C thumb_func_end sub_812F948 thumb_func_start sub_812F9B0 sub_812F9B0: @ 812F9B0 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 movs r7, 0 ldr r2, _0812FA00 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x8] subs r0, 0x1 strh r0, [r3, 0x8] movs r1, 0x14 ldrsh r0, [r3, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 mov r8, r2 cmp r0, 0 beq _0812FA32 ldrh r0, [r3, 0xA] subs r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0812FA32 movs r2, 0x1A ldrsh r0, [r3, r2] cmp r0, 0 bne _0812FA04 ldrh r0, [r3, 0x10] strh r0, [r3, 0x1A] negs r0, r0 strh r0, [r3, 0x10] b _0812FA06 .align 2, 0 _0812FA00: .4byte gTasks _0812FA04: strh r7, [r3, 0x1A] _0812FA06: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 mov r2, r8 adds r1, r0, r2 movs r2, 0x1C ldrsh r0, [r1, r2] cmp r0, 0 bne _0812FA22 ldrh r0, [r1, 0x12] strh r0, [r1, 0x1C] negs r0, r0 strh r0, [r1, 0x12] b _0812FA26 _0812FA22: movs r0, 0 strh r0, [r1, 0x1C] _0812FA26: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 add r0, r8 ldrh r1, [r0, 0x22] strh r1, [r0, 0xA] _0812FA32: lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 3 mov r1, r8 adds r4, r0, r1 ldrh r6, [r4, 0x16] ldrh r7, [r4, 0x18] movs r1, 0xC ldrsh r0, [r4, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 mov r12, r2 cmp r0, 0 beq _0812FA70 ldr r3, _0812FA6C @ =gSprites movs r2, 0x26 ldrsh r0, [r4, r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 lsrs r2, r6, 8 ldrh r0, [r4, 0x1A] subs r0, r2 strh r0, [r1, 0x24] adds r2, r3, 0 b _0812FA86 .align 2, 0 _0812FA6C: .4byte gSprites _0812FA70: ldr r2, _0812FAB4 @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 lsrs r1, r6, 8 ldrh r4, [r4, 0x1A] adds r1, r4 strh r1, [r0, 0x24] _0812FA86: mov r1, r12 adds r0, r1, r5 lsls r0, 3 mov r1, r8 adds r4, r0, r1 movs r1, 0xE ldrsh r0, [r4, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _0812FAB8 movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 lsrs r2, r7, 8 ldrh r0, [r4, 0x1C] subs r0, r2 b _0812FACA .align 2, 0 _0812FAB4: .4byte gSprites _0812FAB8: movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 lsrs r0, r7, 8 ldrh r4, [r4, 0x1C] adds r0, r4 _0812FACA: strh r0, [r1, 0x26] mov r2, r12 adds r0, r2, r5 lsls r0, 3 add r0, r8 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0 bgt _0812FAEA adds r0, r5, 0 bl DestroyTask ldr r1, _0812FAF4 @ =gAnimVisualTaskCount ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] _0812FAEA: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812FAF4: .4byte gAnimVisualTaskCount thumb_func_end sub_812F9B0 thumb_func_start sub_812FAF8 sub_812FAF8: @ 812FAF8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r6, r0, 24 movs r7, 0 ldr r2, _0812FB4C @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x8] subs r0, 0x1 strh r0, [r3, 0x8] movs r1, 0x14 ldrsh r0, [r3, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 mov r8, r2 cmp r0, 0 beq _0812FB7E ldrh r0, [r3, 0xA] subs r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0812FB7E movs r2, 0x1A ldrsh r0, [r3, r2] cmp r0, 0 bne _0812FB50 ldrh r0, [r3, 0x10] strh r0, [r3, 0x1A] negs r0, r0 strh r0, [r3, 0x10] b _0812FB52 .align 2, 0 _0812FB4C: .4byte gTasks _0812FB50: strh r7, [r3, 0x1A] _0812FB52: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 mov r2, r8 adds r1, r0, r2 movs r2, 0x1C ldrsh r0, [r1, r2] cmp r0, 0 bne _0812FB6E ldrh r0, [r1, 0x12] strh r0, [r1, 0x1C] negs r0, r0 strh r0, [r1, 0x12] b _0812FB72 _0812FB6E: movs r0, 0 strh r0, [r1, 0x1C] _0812FB72: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 add r0, r8 ldrh r1, [r0, 0x22] strh r1, [r0, 0xA] _0812FB7E: lsls r3, r6, 2 adds r0, r3, r6 lsls r0, 3 mov r1, r8 adds r4, r0, r1 ldrh r2, [r4, 0xC] ldr r1, _0812FBD0 @ =0x00007fff adds r0, r1, 0 ands r0, r2 ldrh r2, [r4, 0x16] adds r0, r2 lsls r5, r0, 16 lsrs r0, r5, 16 mov r9, r0 ldrh r0, [r4, 0xE] ands r1, r0 ldrh r2, [r4, 0x18] adds r1, r2 lsls r1, 16 lsrs r7, r1, 16 movs r1, 0xC ldrsh r0, [r4, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 mov r12, r3 cmp r0, 0 beq _0812FBD8 ldr r3, _0812FBD4 @ =gSprites movs r2, 0x26 ldrsh r0, [r4, r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 lsrs r2, r5, 24 ldrh r0, [r4, 0x1A] subs r0, r2 strh r0, [r1, 0x24] adds r2, r3, 0 b _0812FBEE .align 2, 0 _0812FBD0: .4byte 0x00007fff _0812FBD4: .4byte gSprites _0812FBD8: ldr r2, _0812FC1C @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 lsrs r1, r5, 24 ldrh r4, [r4, 0x1A] adds r1, r4 strh r1, [r0, 0x24] _0812FBEE: mov r1, r12 adds r0, r1, r6 lsls r0, 3 mov r1, r8 adds r4, r0, r1 movs r1, 0xE ldrsh r0, [r4, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _0812FC20 movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 lsrs r2, r7, 8 ldrh r0, [r4, 0x1C] subs r0, r2 b _0812FC32 .align 2, 0 _0812FC1C: .4byte gSprites _0812FC20: movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 lsrs r0, r7, 8 ldrh r4, [r4, 0x1C] adds r0, r4 _0812FC32: strh r0, [r1, 0x26] mov r2, r12 adds r0, r2, r6 lsls r0, 3 mov r1, r8 adds r2, r0, r1 mov r0, r9 strh r0, [r2, 0x16] strh r7, [r2, 0x18] movs r1, 0x8 ldrsh r0, [r2, r1] cmp r0, 0 bgt _0812FC58 movs r0, 0x1E strh r0, [r2, 0x8] movs r0, 0 strh r0, [r2, 0x22] ldr r0, _0812FC64 @ =sub_812F9B0 str r0, [r2] _0812FC58: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812FC64: .4byte sub_812F9B0 thumb_func_end sub_812FAF8 thumb_func_start sub_812FC68 sub_812FC68: @ 812FC68 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _0812FCC8 @ =gTasks mov r8, r0 lsls r7, r6, 2 adds r0, r7, r6 lsls r0, 3 mov r1, r8 adds r4, r0, r1 ldr r1, _0812FCCC @ =gBankSpriteIds ldr r2, _0812FCD0 @ =gAnimBankAttacker ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] strh r0, [r4, 0x26] ldr r5, _0812FCD4 @ =gBattleAnimArgs ldrh r0, [r5] strh r0, [r4, 0x24] ldrh r0, [r5] strh r0, [r4, 0x8] ldrh r0, [r5, 0xC] strh r0, [r4, 0x22] movs r3, 0x6 ldrsh r0, [r5, r3] cmp r0, 0 beq _0812FCAC ldrh r0, [r4, 0x14] ldr r3, _0812FCD8 @ =0xffff8000 adds r1, r3, 0 orrs r0, r1 strh r0, [r4, 0x14] _0812FCAC: ldrb r0, [r2] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0812FCDC ldrh r0, [r5, 0x2] strh r0, [r4, 0xC] ldrh r0, [r5, 0x4] strh r0, [r4, 0xE] mov r3, r8 adds r4, r7, 0 b _0812FD4C .align 2, 0 _0812FCC8: .4byte gTasks _0812FCCC: .4byte gBankSpriteIds _0812FCD0: .4byte gAnimBankAttacker _0812FCD4: .4byte gBattleAnimArgs _0812FCD8: .4byte 0xffff8000 _0812FCDC: movs r7, 0x2 ldrsh r0, [r5, r7] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _0812FCF8 ldrh r1, [r5, 0x2] ldr r0, _0812FCF4 @ =0x00007fff ands r0, r1 b _0812FD00 .align 2, 0 _0812FCF4: .4byte 0x00007fff _0812FCF8: ldrh r0, [r5, 0x2] ldr r2, _0812FD28 @ =0xffff8000 adds r1, r2, 0 orrs r0, r1 _0812FD00: strh r0, [r4, 0xC] ldr r0, _0812FD2C @ =gBattleAnimArgs movs r3, 0x4 ldrsh r1, [r0, r3] movs r2, 0x80 lsls r2, 8 ands r1, r2 adds r5, r0, 0 cmp r1, 0 beq _0812FD38 ldr r3, _0812FD30 @ =gTasks lsls r4, r6, 2 adds r1, r4, r6 lsls r1, 3 adds r1, r3 ldrh r2, [r5, 0x4] ldr r0, _0812FD34 @ =0x00007fff ands r0, r2 b _0812FD4A .align 2, 0 _0812FD28: .4byte 0xffff8000 _0812FD2C: .4byte gBattleAnimArgs _0812FD30: .4byte gTasks _0812FD34: .4byte 0x00007fff _0812FD38: ldr r3, _0812FD70 @ =gTasks lsls r4, r6, 2 adds r1, r4, r6 lsls r1, 3 adds r1, r3 ldrh r2, [r5, 0x4] ldr r7, _0812FD74 @ =0xffff8000 adds r0, r7, 0 orrs r0, r2 _0812FD4A: strh r0, [r1, 0xE] _0812FD4C: adds r0, r4, r6 lsls r0, 3 adds r0, r3 movs r1, 0 strh r1, [r0, 0x18] strh r1, [r0, 0x16] ldrh r1, [r5, 0x8] strh r1, [r0, 0x10] ldrh r1, [r5, 0xA] strh r1, [r0, 0x12] ldr r1, _0812FD78 @ =sub_812FAF8 str r1, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812FD70: .4byte gTasks _0812FD74: .4byte 0xffff8000 _0812FD78: .4byte sub_812FAF8 thumb_func_end sub_812FC68 thumb_func_start sub_812FD7C sub_812FD7C: @ 812FD7C push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _0812FDB4 @ =gTasks adds r5, r0, r1 ldr r4, _0812FDB8 @ =gBattleAnimArgs movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0 bne _0812FD9C adds r0, r2, 0 bl DestroyAnimVisualTask _0812FD9C: movs r0, 0 strh r0, [r5, 0x8] strh r0, [r5, 0xA] strh r0, [r5, 0xC] ldrh r0, [r4, 0x2] strh r0, [r5, 0xE] movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 bne _0812FDC0 ldr r0, _0812FDBC @ =gAnimBankAttacker b _0812FDC2 .align 2, 0 _0812FDB4: .4byte gTasks _0812FDB8: .4byte gBattleAnimArgs _0812FDBC: .4byte gAnimBankAttacker _0812FDC0: ldr r0, _0812FE10 @ =gAnimBankTarget _0812FDC2: ldrb r4, [r0] adds r0, r4, 0 movs r1, 0 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x10] adds r0, r4, 0 movs r1, 0x1 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] adds r0, r4, 0 bl sub_8079E90 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x14] ldr r0, _0812FE14 @ =gBattleAnimArgs ldrb r0, [r0] bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 strh r1, [r5, 0x26] ldr r2, _0812FE18 @ =gUnknown_084028AC adds r0, r5, 0 bl sub_80798F4 ldr r0, _0812FE1C @ =sub_812FE20 str r0, [r5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812FE10: .4byte gAnimBankTarget _0812FE14: .4byte gBattleAnimArgs _0812FE18: .4byte gUnknown_084028AC _0812FE1C: .4byte sub_812FE20 thumb_func_end sub_812FD7C thumb_func_start sub_812FE20 sub_812FE20: @ 812FE20 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0812FE40 @ =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _0812FE44 cmp r0, 0x1 beq _0812FEA4 b _0812FEB2 .align 2, 0 _0812FE40: .4byte gTasks _0812FE44: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 bne _0812FE5A adds r0, r5, 0 movs r1, 0x1 bl sub_812FEB8 _0812FE5A: movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x12 bne _0812FE6A adds r0, r5, 0 movs r1, 0 bl sub_812FEB8 _0812FE6A: adds r0, r4, 0 bl sub_807992C lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0812FEB2 ldrh r0, [r4, 0xE] subs r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 cmp r0, 0 bne _0812FE8C ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0812FEB2 _0812FE8C: strh r1, [r4, 0xA] ldrh r1, [r4, 0x26] lsls r1, 24 lsrs r1, 24 ldr r2, _0812FEA0 @ =gUnknown_084028AC adds r0, r4, 0 bl sub_80798F4 b _0812FEB2 .align 2, 0 _0812FEA0: .4byte gUnknown_084028AC _0812FEA4: movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0 bne _0812FEB2 adds r0, r5, 0 bl DestroyAnimVisualTask _0812FEB2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_812FE20 thumb_func_start sub_812FEB8 sub_812FEB8: @ 812FEB8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r2, _0812FEDC @ =gTasks adds r4, r0, r2 cmp r1, 0 bne _0812FEE0 movs r1, 0x12 movs r3, 0xEC b _0812FEE4 .align 2, 0 _0812FEDC: .4byte gTasks _0812FEE0: movs r1, 0x1E movs r3, 0x14 _0812FEE4: mov r2, sp ldrh r0, [r4, 0x10] subs r0, r1 strh r0, [r2] ldrh r0, [r4, 0x10] subs r0, r1 subs r0, 0x4 strh r0, [r2, 0x2] ldrh r0, [r4, 0x10] adds r0, r1 strh r0, [r2, 0x4] ldrh r0, [r4, 0x10] adds r0, r1 adds r0, 0x4 strh r0, [r2, 0x6] add r2, sp, 0x8 lsls r1, r3, 24 asrs r1, 24 ldrh r0, [r4, 0x12] adds r0, r1 strh r0, [r2] ldrh r0, [r4, 0x12] adds r0, r1 adds r0, 0x6 strh r0, [r2, 0x2] movs r5, 0 mov r8, r2 ldr r7, _0812FF88 @ =gSprites _0812FF1C: lsls r0, r5, 1 add r0, sp movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0x1 ands r0, r5 lsls r0, 1 add r0, r8 movs r3, 0 ldrsh r2, [r0, r3] ldrb r3, [r4, 0x14] subs r3, 0x5 lsls r3, 24 lsrs r3, 24 ldr r0, _0812FF8C @ =gSpriteTemplate_84028CC bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _0812FF70 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r7 movs r0, 0 strh r0, [r1, 0x2E] movs r0, 0x2 cmp r5, 0x1 bhi _0812FF5E movs r2, 0x2 negs r2, r2 adds r0, r2, 0 _0812FF5E: strh r0, [r1, 0x30] ldr r0, _0812FF90 @ =0x0000ffff strh r0, [r1, 0x32] strh r6, [r1, 0x34] movs r0, 0x2 strh r0, [r1, 0x36] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] _0812FF70: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _0812FF1C add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812FF88: .4byte gSprites _0812FF8C: .4byte gSpriteTemplate_84028CC _0812FF90: .4byte 0x0000ffff thumb_func_end sub_812FEB8 thumb_func_start sub_812FF94 sub_812FF94: @ 812FF94 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r4, 0x32] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 ble _0812FFDA ldr r3, _0812FFE0 @ =gTasks movs r0, 0x36 ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x34 ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl DestroySprite _0812FFDA: pop {r4} pop {r0} bx r0 .align 2, 0 _0812FFE0: .4byte gTasks thumb_func_end sub_812FF94 thumb_func_start sub_812FFE4 sub_812FFE4: @ 812FFE4 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0813002C @ =gTasks lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r0, 0 strh r0, [r4, 0x8] ldr r1, _08130030 @ =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r4, 0xA] ldrb r0, [r1] bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 ldr r2, _08130034 @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x5] lsrs r0, 4 lsls r0, 4 movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 adds r0, r1 strh r0, [r4, 0xC] ldr r0, _08130038 @ =sub_813003C str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0813002C: .4byte gTasks _08130030: .4byte gBattleAnimArgs _08130034: .4byte gSprites _08130038: .4byte sub_813003C thumb_func_end sub_812FFE4 thumb_func_start sub_813003C sub_813003C: @ 813003C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _08130084 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0 beq _0813008C ldrh r0, [r4, 0xC] ldr r2, _08130088 @ =gUnknown_084028E4 movs r3, 0x8 ldrsh r1, [r4, r3] lsls r1, 1 adds r1, r2 ldrh r3, [r1] movs r1, 0x10 movs r2, 0x8 bl BlendPalette ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x17 ble _0813007C movs r0, 0 strh r0, [r4, 0x8] _0813007C: ldrh r0, [r4, 0xA] subs r0, 0x1 strh r0, [r4, 0xA] b _0813009E .align 2, 0 _08130084: .4byte gTasks _08130088: .4byte gUnknown_084028E4 _0813008C: ldrh r0, [r4, 0xC] movs r1, 0x10 movs r2, 0 movs r3, 0 bl BlendPalette adds r0, r5, 0 bl DestroyAnimVisualTask _0813009E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_813003C thumb_func_start sub_81300A4 sub_81300A4: @ 81300A4 push {lr} sub sp, 0x1C lsls r0, 24 lsrs r0, 24 movs r2, 0xD0 lsls r2, 1 ldr r1, _081300E0 @ =gAnimBankAttacker ldrb r3, [r1] ldr r1, _081300E4 @ =gBattleAnimArgs ldrb r1, [r1] str r1, [sp] movs r1, 0xA str r1, [sp, 0x4] movs r1, 0x2 str r1, [sp, 0x8] movs r1, 0x1E str r1, [sp, 0xC] ldr r1, _081300E8 @ =gUnknown_08D2E014 str r1, [sp, 0x10] ldr r1, _081300EC @ =gUnknown_08D2E170 str r1, [sp, 0x14] ldr r1, _081300F0 @ =gUnknown_08D2E150 str r1, [sp, 0x18] movs r1, 0 bl sub_80E3C4C add sp, 0x1C pop {r0} bx r0 .align 2, 0 _081300E0: .4byte gAnimBankAttacker _081300E4: .4byte gBattleAnimArgs _081300E8: .4byte gUnknown_08D2E014 _081300EC: .4byte gUnknown_08D2E170 _081300F0: .4byte gUnknown_08D2E150 thumb_func_end sub_81300A4 thumb_func_start sub_81300F4 sub_81300F4: @ 81300F4 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _0813014C @ =gAnimBankAttacker ldrb r0, [r6] bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08130110 ldr r1, _08130150 @ =gBattleAnimArgs ldrh r0, [r1] negs r0, r0 strh r0, [r1] _08130110: ldrb r0, [r6] movs r1, 0 bl GetBattlerSpriteCoord lsls r0, 24 ldr r4, _08130150 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4] adds r0, r1 strh r0, [r5, 0x20] ldrb r0, [r6] movs r1, 0x1 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 strh r0, [r5, 0x22] movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 bne _08130158 movs r0, 0xA0 lsls r0, 2 strh r0, [r5, 0x2E] ldr r0, _08130154 @ =0x0000fd80 strh r0, [r5, 0x30] b _08130180 .align 2, 0 _0813014C: .4byte gAnimBankAttacker _08130150: .4byte gBattleAnimArgs _08130154: .4byte 0x0000fd80 _08130158: cmp r0, 0x1 bne _08130172 adds r2, r5, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] movs r0, 0xA0 lsls r0, 2 strh r0, [r5, 0x2E] strh r0, [r5, 0x30] b _08130180 _08130172: adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAnim movs r0, 0xA0 lsls r0, 2 strh r0, [r5, 0x2E] _08130180: ldr r0, _081301AC @ =gAnimBankAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _081301A0 ldrh r0, [r5, 0x2E] negs r0, r0 strh r0, [r5, 0x2E] adds r2, r5, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] _081301A0: ldr r0, _081301B0 @ =sub_81301B4 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081301AC: .4byte gAnimBankAttacker _081301B0: .4byte sub_81301B4 thumb_func_end sub_81300F4 thumb_func_start sub_81301B4 sub_81301B4: @ 81301B4 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x3A] adds r0, r1 strh r0, [r2, 0x3A] ldrh r1, [r2, 0x30] ldrh r3, [r2, 0x3C] adds r1, r3 strh r1, [r2, 0x3C] lsls r0, 16 asrs r0, 24 strh r0, [r2, 0x24] lsls r1, 16 asrs r1, 24 strh r1, [r2, 0x26] ldrh r0, [r2, 0x38] adds r0, 0x1 strh r0, [r2, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0xE bne _081301E8 adds r0, r2, 0 bl DestroyAnimSprite _081301E8: pop {r0} bx r0 thumb_func_end sub_81301B4 thumb_func_start sub_81301EC sub_81301EC: @ 81301EC push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08130218 @ =gTasks adds r6, r1, r0 bl IsContest lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _0813021C movs r0, 0x8 strh r0, [r6, 0x12] movs r0, 0x3 strh r0, [r6, 0x14] movs r0, 0x1 strh r0, [r6, 0x16] b _08130226 .align 2, 0 _08130218: .4byte gTasks _0813021C: movs r0, 0xC strh r0, [r6, 0x12] movs r0, 0x3 strh r0, [r6, 0x14] strh r1, [r6, 0x16] _08130226: ldr r5, _0813025C @ =gAnimBankAttacker ldrb r0, [r5] bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08130260 ldrb r0, [r5] movs r1, 0x2 bl GetBattlerSpriteCoord adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 bl sub_807A100 lsls r4, 24 lsrs r4, 24 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _08130254 adds r0, 0x3 _08130254: asrs r0, 2 adds r0, r4, r0 b _08130284 .align 2, 0 _0813025C: .4byte gAnimBankAttacker _08130260: ldrb r0, [r5] movs r1, 0x2 bl GetBattlerSpriteCoord adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 bl sub_807A100 lsls r4, 24 lsrs r4, 24 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _08130280 adds r0, 0x3 _08130280: asrs r0, 2 subs r0, r4, r0 _08130284: strh r0, [r6, 0x1E] ldr r5, _081302D8 @ =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x3 bl GetBattlerSpriteCoord adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 bl sub_807A100 lsls r4, 24 lsrs r4, 24 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _081302A8 adds r0, 0x3 _081302A8: asrs r0, 2 subs r0, r4, r0 strh r0, [r6, 0x20] ldr r4, _081302DC @ =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x22] ldrb r0, [r4] movs r1, 0x3 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x24] ldr r0, _081302E0 @ =sub_81302E4 str r0, [r6] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081302D8: .4byte gAnimBankAttacker _081302DC: .4byte gAnimBankTarget _081302E0: .4byte sub_81302E4 thumb_func_end sub_81301EC thumb_func_start sub_81302E4 sub_81302E4: @ 81302E4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, _0813030C @ =gTasks adds r5, r0, r1 movs r0, 0x8 ldrsh r1, [r5, r0] cmp r1, 0 beq _08130310 cmp r1, 0x1 bne _08130308 b _08130408 _08130308: b _08130416 .align 2, 0 _0813030C: .4byte gTasks _08130310: ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _08130416 strh r1, [r5, 0xA] movs r1, 0x1E ldrsh r0, [r5, r1] movs r2, 0x20 ldrsh r1, [r5, r2] movs r3, 0x22 ldrsh r2, [r5, r3] movs r4, 0x24 ldrsh r3, [r5, r4] ldrb r4, [r5, 0x12] str r4, [sp] ldrb r4, [r5, 0xC] str r4, [sp, 0x4] add r4, sp, 0x10 str r4, [sp, 0x8] adds r4, 0x2 str r4, [sp, 0xC] bl sub_8130424 movs r6, 0 mov r8, r4 ldr r4, _08130384 @ =gSprites _0813034A: add r0, sp, 0x10 movs r2, 0 ldrsh r1, [r0, r2] mov r3, r8 movs r0, 0 ldrsh r2, [r3, r0] ldr r0, _08130388 @ =gSpriteTemplate_840294C movs r3, 0x23 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 beq _081303DE movs r1, 0x16 ldrsh r0, [r5, r1] cmp r0, 0 bne _0813039E cmp r6, 0 bne _0813038C lsls r2, r3, 4 adds r1, r2, r3 lsls r1, 2 adds r1, r4 ldrh r0, [r5, 0x14] negs r0, r0 strh r0, [r1, 0x26] strh r0, [r1, 0x24] b _081303C6 .align 2, 0 _08130384: .4byte gSprites _08130388: .4byte gSpriteTemplate_840294C _0813038C: lsls r2, r3, 4 adds r1, r2, r3 lsls r1, 2 adds r1, r4 ldrh r0, [r5, 0x14] strh r0, [r1, 0x26] ldrh r0, [r5, 0x14] strh r0, [r1, 0x24] b _081303C6 _0813039E: cmp r6, 0 bne _081303B4 lsls r2, r3, 4 adds r1, r2, r3 lsls r1, 2 adds r1, r4 ldrh r0, [r5, 0x14] negs r0, r0 strh r0, [r1, 0x24] ldrh r0, [r5, 0x14] b _081303C4 _081303B4: lsls r2, r3, 4 adds r1, r2, r3 lsls r1, 2 adds r1, r4 ldrh r0, [r5, 0x14] strh r0, [r1, 0x24] ldrh r0, [r5, 0x14] negs r0, r0 _081303C4: strh r0, [r1, 0x26] _081303C6: ldr r1, _08130404 @ =gSprites adds r0, r2, r3 lsls r0, 2 adds r0, r1 movs r1, 0 strh r1, [r0, 0x2E] strh r7, [r0, 0x30] movs r1, 0xA strh r1, [r0, 0x32] ldrh r0, [r5, 0x1C] adds r0, 0x1 strh r0, [r5, 0x1C] _081303DE: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x1 bls _0813034A ldrh r2, [r5, 0xC] movs r3, 0xC ldrsh r1, [r5, r3] movs r4, 0x12 ldrsh r0, [r5, r4] cmp r1, r0 bne _081303FC ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] _081303FC: adds r0, r2, 0x1 strh r0, [r5, 0xC] b _08130416 .align 2, 0 _08130404: .4byte gSprites _08130408: movs r1, 0x1C ldrsh r0, [r5, r1] cmp r0, 0 bne _08130416 adds r0, r7, 0 bl DestroyAnimVisualTask _08130416: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81302E4 thumb_func_start sub_8130424 sub_8130424: @ 8130424 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r4, [sp, 0x28] ldr r5, [sp, 0x2C] ldr r6, [sp, 0x30] mov r9, r6 ldr r6, [sp, 0x34] mov r10, r6 lsls r0, 16 lsrs r0, 16 mov r12, r0 lsls r1, 16 lsrs r1, 16 str r1, [sp] lsls r2, 16 lsrs r2, 16 adds r7, r2, 0 lsls r3, 16 lsrs r3, 16 str r3, [sp, 0x4] lsls r4, 24 lsrs r6, r4, 24 lsls r5, 24 lsrs r5, 24 mov r8, r5 cmp r5, 0 bne _0813046C mov r2, r9 strh r0, [r2] mov r6, r10 strh r1, [r6] b _081304CA _0813046C: cmp r5, r6 bcc _0813047A mov r0, r9 strh r2, [r0] mov r1, r10 strh r3, [r1] b _081304CA _0813047A: subs r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 mov r2, r12 lsls r1, r2, 16 asrs r1, 16 lsls r5, r1, 8 lsls r0, r7, 16 asrs r0, 16 subs r0, r1 lsls r0, 8 adds r1, r6, 0 bl __divsi3 mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r5, r0 ldr r2, [sp] lsls r1, r2, 16 asrs r1, 16 lsls r4, r1, 8 ldr r2, [sp, 0x4] lsls r0, r2, 16 asrs r0, 16 subs r0, r1 lsls r0, 8 adds r1, r6, 0 bl __divsi3 mov r6, r8 muls r6, r0 adds r0, r6, 0 adds r4, r0 asrs r5, 8 mov r0, r9 strh r5, [r0] asrs r4, 8 mov r1, r10 strh r4, [r1] _081304CA: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8130424 thumb_func_start sub_81304DC sub_81304DC: @ 81304DC push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x24 ble _08130512 ldr r3, _08130518 @ =gTasks movs r0, 0x32 ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x30 ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl DestroySprite _08130512: pop {r4} pop {r0} bx r0 .align 2, 0 _08130518: .4byte gTasks thumb_func_end sub_81304DC thumb_func_start sub_813051C sub_813051C: @ 813051C push {r4,lr} adds r4, r0, 0 ldr r1, _08130548 @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] strh r0, [r4, 0x22] ldrh r0, [r1, 0x4] strh r0, [r4, 0x32] ldrh r0, [r1, 0x6] strh r0, [r4, 0x36] ldrh r0, [r1, 0x8] strh r0, [r4, 0x2E] ldr r1, _0813054C @ =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData ldr r0, _08130550 @ =sub_8078CC0 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _08130548: .4byte gBattleAnimArgs _0813054C: .4byte DestroyAnimSprite _08130550: .4byte sub_8078CC0 thumb_func_end sub_813051C thumb_func_start sub_8130554 sub_8130554: @ 8130554 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r0, 2 add r0, r9 lsls r0, 3 ldr r1, _08130674 @ =gTasks adds r7, r0, r1 ldr r0, _08130678 @ =gAnimBankAttacker mov r10, r0 ldrb r0, [r0] movs r1, 0x2 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x1E] mov r1, r10 ldrb r0, [r1] movs r1, 0x3 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x20] ldr r0, _0813067C @ =gAnimBankTarget mov r8, r0 ldrb r0, [r0] movs r1, 0x2 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x22] mov r1, r8 ldrb r0, [r1] movs r1, 0x3 bl GetBattlerSpriteCoord adds r4, r0, 0 mov r1, r8 ldrb r0, [r1] movs r1, 0 bl sub_807A100 lsls r4, 24 lsrs r4, 24 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _081305C6 adds r0, 0x3 _081305C6: asrs r0, 2 adds r0, r4, r0 strh r0, [r7, 0x24] ldr r4, _08130680 @ =gSpriteTemplate_84029AC movs r0, 0x1E ldrsh r5, [r7, r0] movs r1, 0x20 ldrsh r6, [r7, r1] mov r1, r8 ldrb r0, [r1] bl sub_8079E90 adds r3, r0, 0 subs r3, 0x5 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x26] cmp r0, 0x40 beq _08130690 ldr r4, _08130684 @ =gSprites movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x10 strh r1, [r0, 0x2E] movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r7, 0x22] strh r1, [r0, 0x32] movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r7, 0x24] strh r1, [r0, 0x36] movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _08130688 @ =0x0000ffe0 strh r1, [r0, 0x38] movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl InitAnimArcTranslation mov r1, r10 ldrb r0, [r1] bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0813066E movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x1 bl StartSpriteAffineAnim _0813066E: ldr r0, _0813068C @ =sub_81306A4 str r0, [r7] b _08130696 .align 2, 0 _08130674: .4byte gTasks _08130678: .4byte gAnimBankAttacker _0813067C: .4byte gAnimBankTarget _08130680: .4byte gSpriteTemplate_84029AC _08130684: .4byte gSprites _08130688: .4byte 0x0000ffe0 _0813068C: .4byte sub_81306A4 _08130690: mov r0, r9 bl DestroyAnimVisualTask _08130696: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8130554 thumb_func_start sub_81306A4 sub_81306A4: @ 81306A4 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _081306C8 @ =gTasks adds r4, r0, r1 movs r0, 0x8 ldrsh r1, [r4, r0] cmp r1, 0x1 beq _0813070C cmp r1, 0x1 bgt _081306CC cmp r1, 0 beq _081306D6 b _081307AA .align 2, 0 _081306C8: .4byte gTasks _081306CC: cmp r1, 0x2 beq _08130730 cmp r1, 0x3 beq _081307A4 b _081307AA _081306D6: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _081307AA strh r1, [r4, 0xA] movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08130708 @ =gSprites adds r0, r1 bl TranslateAnimArc ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _081307AA b _08130796 .align 2, 0 _08130708: .4byte gSprites _0813070C: movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0813072C @ =gSprites adds r0, r1 bl TranslateAnimArc lsls r0, 24 cmp r0, 0 beq _081307AA movs r0, 0 strh r0, [r4, 0xA] strh r0, [r4, 0xC] b _08130796 .align 2, 0 _0813072C: .4byte gSprites _08130730: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _081307AA movs r0, 0 strh r0, [r4, 0xA] ldrh r2, [r4, 0xC] adds r2, 0x1 strh r2, [r4, 0xC] ldr r5, _081307A0 @ =gSprites movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 movs r0, 0x1 ands r2, r0 adds r1, 0x3E lsls r2, 2 ldrb r3, [r1] subs r0, 0x6 ands r0, r3 orrs r0, r2 strb r0, [r1] movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0x10 bne _081307AA movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite _08130796: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _081307AA .align 2, 0 _081307A0: .4byte gSprites _081307A4: adds r0, r2, 0 bl DestroyAnimVisualTask _081307AA: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81306A4 thumb_func_start sub_81307B0 sub_81307B0: @ 81307B0 push {r4-r6,lr} adds r4, r0, 0 ldr r0, _081307C4 @ =gBattleAnimArgs movs r2, 0 ldrsh r1, [r0, r2] adds r6, r0, 0 cmp r1, 0 bne _081307CC ldr r0, _081307C8 @ =gAnimBankAttacker b _081307CE .align 2, 0 _081307C4: .4byte gBattleAnimArgs _081307C8: .4byte gAnimBankAttacker _081307CC: ldr r0, _08130834 @ =gAnimBankTarget _081307CE: ldrb r5, [r0] ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x10 ldr r3, _08130838 @ =0x000003ff adds r0, r3, 0 ands r1, r0 ldr r0, _0813083C @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] adds r1, r6, 0 ldrh r0, [r1, 0x4] strh r0, [r4, 0x3A] movs r2, 0x2 ldrsh r0, [r1, r2] movs r1, 0x1 cmp r0, 0 bne _081307FC movs r3, 0x1 negs r3, r3 adds r1, r3, 0 _081307FC: strh r1, [r4, 0x3C] adds r0, r5, 0 movs r1, 0x3 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] movs r1, 0x2 ldrsh r0, [r6, r1] cmp r0, 0 bne _08130840 ldrb r2, [r4, 0x3] lsls r1, r2, 26 lsrs r1, 27 movs r0, 0x8 orrs r1, r0 lsls r1, 1 subs r0, 0x47 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x3] adds r0, r5, 0 movs r1, 0x4 bl sub_807A100 subs r0, 0x8 b _0813084A .align 2, 0 _08130834: .4byte gAnimBankTarget _08130838: .4byte 0x000003ff _0813083C: .4byte 0xfffffc00 _08130840: adds r0, r5, 0 movs r1, 0x5 bl sub_807A100 adds r0, 0x8 _0813084A: strh r0, [r4, 0x20] ldr r0, _08130858 @ =sub_813085C str r0, [r4, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08130858: .4byte sub_813085C thumb_func_end sub_81307B0 thumb_func_start sub_813085C sub_813085C: @ 813085C push {lr} adds r2, r0, 0 movs r0, 0x2E ldrsh r1, [r2, r0] cmp r1, 0x1 beq _081308A4 cmp r1, 0x1 bgt _08130872 cmp r1, 0 beq _0813087C b _08130914 _08130872: cmp r1, 0x2 beq _081308B4 cmp r1, 0x3 beq _081308DA b _08130914 _0813087C: ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _08130914 strh r1, [r2, 0x30] ldrh r0, [r2, 0x3C] ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x24] ldrh r0, [r2, 0x32] adds r0, 0x1 strh r0, [r2, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0xC bne _08130914 b _081308D2 _081308A4: ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 bne _08130914 b _081308CE _081308B4: movs r0, 0x3C ldrsh r1, [r2, r0] lsls r1, 2 ldrh r0, [r2, 0x24] subs r0, r1 strh r0, [r2, 0x24] ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 bne _08130914 _081308CE: movs r0, 0 strh r0, [r2, 0x30] _081308D2: ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] b _08130914 _081308DA: movs r0, 0x3C ldrsh r1, [r2, r0] lsls r0, r1, 1 adds r0, r1 ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x24] ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 bne _08130914 ldrh r0, [r2, 0x3A] subs r0, 0x1 strh r0, [r2, 0x3A] lsls r0, 16 cmp r0, 0 beq _0813090E movs r0, 0 strh r0, [r2, 0x30] ldrh r0, [r2, 0x2E] subs r0, 0x1 strh r0, [r2, 0x2E] b _08130914 _0813090E: adds r0, r2, 0 bl DestroyAnimSprite _08130914: pop {r0} bx r0 thumb_func_end sub_813085C thumb_func_start sub_8130918 sub_8130918: @ 8130918 push {r4,lr} lsls r0, 24 lsrs r1, r0, 24 ldr r2, _08130930 @ =gBattleAnimArgs movs r3, 0 ldrsh r0, [r2, r3] cmp r0, 0 bne _08130934 adds r0, r1, 0 bl DestroyAnimVisualTask b _0813095C .align 2, 0 _08130930: .4byte gBattleAnimArgs _08130934: ldr r0, _08130964 @ =gTasks lsls r4, r1, 2 adds r4, r1 lsls r4, 3 adds r4, r0 ldrh r0, [r2, 0x2] strh r0, [r4, 0x8] ldrb r0, [r2] bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 strh r1, [r4, 0x26] ldr r2, _08130968 @ =gUnknown_084029DC adds r0, r4, 0 bl sub_80798F4 ldr r0, _0813096C @ =sub_8130970 str r0, [r4] _0813095C: pop {r4} pop {r0} bx r0 .align 2, 0 _08130964: .4byte gTasks _08130968: .4byte gUnknown_084029DC _0813096C: .4byte sub_8130970 thumb_func_end sub_8130918 thumb_func_start sub_8130970 sub_8130970: @ 8130970 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _081309B0 @ =gTasks adds r4, r0, r1 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _081309CA movs r0, 0 strh r0, [r4, 0xA] ldrh r1, [r4, 0xC] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081309B8 ldr r2, _081309B4 @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x2 b _081309C8 .align 2, 0 _081309B0: .4byte gTasks _081309B4: .4byte gSprites _081309B8: ldr r2, _08130A10 @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _08130A14 @ =0x0000fffe _081309C8: strh r1, [r0, 0x24] _081309CA: adds r0, r4, 0 bl sub_807992C lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _08130A26 ldr r2, _08130A10 @ =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r5, [r0, 0x24] ldrh r0, [r4, 0x8] subs r0, 0x1 strh r0, [r4, 0x8] lsls r0, 16 cmp r0, 0 beq _08130A20 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _08130A18 @ =gTasks adds r0, r1 ldrh r1, [r0, 0x26] lsls r1, 24 lsrs r1, 24 ldr r2, _08130A1C @ =gUnknown_084029DC bl sub_80798F4 strh r5, [r4, 0xA] strh r5, [r4, 0xC] b _08130A26 .align 2, 0 _08130A10: .4byte gSprites _08130A14: .4byte 0x0000fffe _08130A18: .4byte gTasks _08130A1C: .4byte gUnknown_084029DC _08130A20: adds r0, r6, 0 bl DestroyAnimVisualTask _08130A26: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8130970 thumb_func_start sub_8130A2C sub_8130A2C: @ 8130A2C push {r4,r5,lr} adds r5, r0, 0 ldr r0, _08130A40 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _08130A48 ldr r4, _08130A44 @ =gAnimBankAttacker b _08130A4A .align 2, 0 _08130A40: .4byte gBattleAnimArgs _08130A44: .4byte gAnimBankAttacker _08130A48: ldr r4, _08130A88 @ =gAnimBankTarget _08130A4A: ldrb r0, [r4] movs r1, 0x2 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x2 bl sub_807A100 strh r0, [r5, 0x22] movs r1, 0x22 ldrsh r0, [r5, r1] cmp r0, 0x7 bgt _08130A6E movs r0, 0x8 strh r0, [r5, 0x22] _08130A6E: movs r2, 0 strh r2, [r5, 0x2E] ldr r1, _08130A8C @ =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r5, 0x30] strh r2, [r5, 0x32] ldrh r0, [r1, 0x4] strh r0, [r5, 0x34] ldr r0, _08130A90 @ =sub_8130A94 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08130A88: .4byte gAnimBankTarget _08130A8C: .4byte gBattleAnimArgs _08130A90: .4byte sub_8130A94 thumb_func_end sub_8130A2C thumb_func_start sub_8130A94 sub_8130A94: @ 8130A94 push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 movs r2, 0x30 ldrsh r1, [r3, r2] cmp r0, r1 blt _08130AE8 movs r0, 0 strh r0, [r3, 0x2E] ldrh r1, [r3, 0x32] adds r1, 0x1 movs r0, 0x1 ands r1, r0 strh r1, [r3, 0x32] movs r0, 0x3E adds r0, r3 mov r12, r0 lsls r1, 2 ldrb r2, [r0] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] movs r2, 0x32 ldrsh r0, [r3, r2] cmp r0, 0 beq _08130AE8 ldrh r0, [r3, 0x34] subs r0, 0x1 strh r0, [r3, 0x34] lsls r0, 16 cmp r0, 0 bne _08130AE8 adds r0, r3, 0 bl DestroyAnimSprite _08130AE8: pop {r0} bx r0 thumb_func_end sub_8130A94 thumb_func_start sub_8130AEC sub_8130AEC: @ 8130AEC push {lr} adds r3, r0, 0 ldr r0, _08130B18 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _08130B1C ldrb r2, [r3, 0x3] lsls r1, r2, 26 lsrs r1, 27 movs r0, 0x8 orrs r1, r0 lsls r1, 1 subs r0, 0x47 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x3] movs r0, 0x64 strh r0, [r3, 0x20] movs r0, 0x1 b _08130B22 .align 2, 0 _08130B18: .4byte gBattleAnimArgs _08130B1C: movs r0, 0x8C strh r0, [r3, 0x20] ldr r0, _08130B30 @ =0x0000ffff _08130B22: strh r0, [r3, 0x3C] movs r0, 0x38 strh r0, [r3, 0x22] ldr r0, _08130B34 @ =sub_8130B38 str r0, [r3, 0x1C] pop {r0} bx r0 .align 2, 0 _08130B30: .4byte 0x0000ffff _08130B34: .4byte sub_8130B38 thumb_func_end sub_8130AEC thumb_func_start sub_8130B38 sub_8130B38: @ 8130B38 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x8 bls _08130B46 b _08130D18 _08130B46: lsls r0, 2 ldr r1, _08130B50 @ =_08130B54 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08130B50: .4byte _08130B54 .align 2, 0 _08130B54: .4byte _08130B78 .4byte _08130BAA .4byte _08130BBC .4byte _08130BFC .4byte _08130C0E .4byte _08130C4C .4byte _08130CB0 .4byte _08130CD0 .4byte _08130CF6 _08130B78: movs r3, 0x3C ldrsh r0, [r4, r3] lsls r0, 1 ldrh r1, [r4, 0x22] subs r1, r0 strh r1, [r4, 0x22] ldrh r2, [r4, 0x30] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _08130B9A movs r0, 0x3C ldrsh r1, [r4, r0] lsls r1, 1 ldrh r0, [r4, 0x20] subs r0, r1 strh r0, [r4, 0x20] _08130B9A: adds r0, r2, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 beq _08130BA8 b _08130D18 _08130BA8: b _08130CEA _08130BAA: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 beq _08130BBA b _08130D18 _08130BBA: b _08130CEA _08130BBC: ldrh r2, [r4, 0x30] adds r2, 0x1 strh r2, [r4, 0x30] movs r3, 0x3C ldrsh r1, [r4, r3] lsls r0, r1, 1 adds r0, r1 ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldr r3, _08130BF8 @ =gSineTable movs r0, 0x30 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 ldrh r1, [r4, 0x3C] muls r0, r1 strh r0, [r4, 0x24] lsls r2, 16 asrs r2, 16 cmp r2, 0xC beq _08130BF4 b _08130D18 _08130BF4: b _08130CEA .align 2, 0 _08130BF8: .4byte gSineTable _08130BFC: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 beq _08130C0C b _08130D18 _08130C0C: b _08130CEA _08130C0E: ldrh r2, [r4, 0x30] adds r2, 0x1 strh r2, [r4, 0x30] movs r1, 0x3C ldrsh r0, [r4, r1] lsls r1, r0, 1 adds r1, r0 ldrh r0, [r4, 0x22] subs r0, r1 strh r0, [r4, 0x22] ldr r3, _08130C48 @ =gSineTable movs r0, 0x30 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 ldrh r1, [r4, 0x3C] muls r0, r1 strh r0, [r4, 0x24] lsls r2, 16 asrs r2, 16 cmp r2, 0xC bne _08130D18 b _08130CEE .align 2, 0 _08130C48: .4byte gSineTable _08130C4C: ldrh r2, [r4, 0x30] adds r2, 0x1 strh r2, [r4, 0x30] movs r3, 0x3C ldrsh r1, [r4, r3] lsls r0, r1, 1 adds r0, r1 ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldr r3, _08130CA4 @ =gSineTable movs r0, 0x30 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 ldrh r1, [r4, 0x3C] muls r0, r1 strh r0, [r4, 0x24] lsls r2, 16 asrs r2, 16 cmp r2, 0xF bne _08130C98 ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x10 ldr r3, _08130CA8 @ =0x000003ff adds r0, r3, 0 ands r1, r0 ldr r0, _08130CAC @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] _08130C98: movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x12 bne _08130D18 b _08130CEA .align 2, 0 _08130CA4: .4byte gSineTable _08130CA8: .4byte 0x000003ff _08130CAC: .4byte 0xfffffc00 _08130CB0: movs r3, 0x3C ldrsh r0, [r4, r3] lsls r1, r0, 1 adds r1, r0 lsls r1, 1 ldrh r0, [r4, 0x20] adds r1, r0 strh r1, [r4, 0x20] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 bne _08130D18 b _08130CEA _08130CD0: movs r1, 0x3C ldrsh r0, [r4, r1] lsls r0, 1 ldrh r3, [r4, 0x20] adds r0, r3 strh r0, [r4, 0x20] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _08130D18 _08130CEA: movs r0, 0 strh r0, [r4, 0x30] _08130CEE: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _08130D18 _08130CF6: movs r1, 0x3C ldrsh r0, [r4, r1] lsls r1, r0, 1 adds r1, r0 ldrh r0, [r4, 0x20] subs r0, r1 strh r0, [r4, 0x20] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _08130D18 adds r0, r4, 0 bl DestroyAnimSprite _08130D18: pop {r4} pop {r0} bx r0 thumb_func_end sub_8130B38 thumb_func_start sub_8130D20 sub_8130D20: @ 8130D20 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08130D7C @ =gTasks adds r6, r1, r0 movs r0, 0 bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x26] bl IsContest lsls r0, 24 cmp r0, 0 bne _08130DA8 bl IsDoubleBattle lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x1 bne _08130D8C ldr r5, _08130D80 @ =gAnimBankAttacker ldrb r0, [r5] movs r1, 0 bl GetBattlerSpriteCoord adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r1, [r5] movs r0, 0x2 eors r0, r1 movs r1, 0 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 cmp r4, r0 ble _08130D84 strh r7, [r6, 0x24] b _08130DAC .align 2, 0 _08130D7C: .4byte gTasks _08130D80: .4byte gAnimBankAttacker _08130D84: ldr r0, _08130D88 @ =0x0000ffff b _08130DAA .align 2, 0 _08130D88: .4byte 0x0000ffff _08130D8C: ldr r0, _08130DA0 @ =gAnimBankAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08130DA8 ldr r0, _08130DA4 @ =0x0000ffff b _08130DAA .align 2, 0 _08130DA0: .4byte gAnimBankAttacker _08130DA4: .4byte 0x0000ffff _08130DA8: movs r0, 0x1 _08130DAA: strh r0, [r6, 0x24] _08130DAC: ldr r0, _08130DB8 @ =sub_8130DBC str r0, [r6] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08130DB8: .4byte sub_8130DBC thumb_func_end sub_8130D20 thumb_func_start sub_8130DBC sub_8130DBC: @ 8130DBC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _08130DE0 @ =gTasks adds r3, r0, r1 movs r1, 0x8 ldrsh r0, [r3, r1] cmp r0, 0x8 bls _08130DD6 b _08130F50 _08130DD6: lsls r0, 2 ldr r1, _08130DE4 @ =_08130DE8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08130DE0: .4byte gTasks _08130DE4: .4byte _08130DE8 .align 2, 0 _08130DE8: .4byte _08130E0C .4byte _08130E1E .4byte _08130E50 .4byte _08130E80 .4byte _08130EA6 .4byte _08130ED0 .4byte _08130EE0 .4byte _08130F00 .4byte _08130F38 _08130E0C: ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0xD beq _08130E1C b _08130F50 _08130E1C: b _08130F28 _08130E1E: ldr r2, _08130E4C @ =gSprites movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r2, 0x24 ldrsh r0, [r3, r2] lsls r2, r0, 1 adds r2, r0 ldrh r0, [r1, 0x24] subs r0, r2 strh r0, [r1, 0x24] ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 beq _08130E4A b _08130F50 _08130E4A: b _08130F28 .align 2, 0 _08130E4C: .4byte gSprites _08130E50: ldr r2, _08130E7C @ =gSprites movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0x24 ldrsh r2, [r3, r0] lsls r0, r2, 1 adds r0, r2 ldrh r2, [r1, 0x24] adds r0, r2 strh r0, [r1, 0x24] ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 bne _08130F50 b _08130F28 .align 2, 0 _08130E7C: .4byte gSprites _08130E80: ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _08130F50 movs r0, 0 strh r0, [r3, 0xA] ldrh r1, [r3, 0xC] movs r2, 0xC ldrsh r0, [r3, r2] cmp r0, 0 bne _08130F2C adds r0, r1, 0x1 strh r0, [r3, 0xC] movs r0, 0x1 strh r0, [r3, 0x8] b _08130F50 _08130EA6: ldr r2, _08130ECC @ =gSprites movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r3, 0x24] ldrh r2, [r0, 0x24] adds r1, r2 strh r1, [r0, 0x24] ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bne _08130F50 b _08130F28 .align 2, 0 _08130ECC: .4byte gSprites _08130ED0: ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 bne _08130F50 b _08130F28 _08130EE0: ldr r2, _08130EFC @ =gSprites movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0x24 ldrsh r2, [r3, r0] lsls r2, 2 ldrh r0, [r1, 0x24] subs r0, r2 b _08130F18 .align 2, 0 _08130EFC: .4byte gSprites _08130F00: ldr r2, _08130F34 @ =gSprites movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r2, 0x24 ldrsh r0, [r3, r2] lsls r0, 2 ldrh r2, [r1, 0x24] adds r0, r2 _08130F18: strh r0, [r1, 0x24] ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _08130F50 _08130F28: movs r0, 0 strh r0, [r3, 0xA] _08130F2C: ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] b _08130F50 .align 2, 0 _08130F34: .4byte gSprites _08130F38: ldr r2, _08130F58 @ =gSprites movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strh r1, [r0, 0x24] adds r0, r4, 0 bl DestroyAnimVisualTask _08130F50: pop {r4} pop {r0} bx r0 .align 2, 0 _08130F58: .4byte gSprites thumb_func_end sub_8130DBC thumb_func_start sub_8130F5C sub_8130F5C: @ 8130F5C push {r4,lr} adds r4, r0, 0 ldr r0, _08130F78 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _08130F80 adds r0, r4, 0 movs r1, 0x1 bl InitAnimSpritePos ldr r0, _08130F7C @ =gAnimBankAttacker b _08130F82 .align 2, 0 _08130F78: .4byte gBattleAnimArgs _08130F7C: .4byte gAnimBankAttacker _08130F80: ldr r0, _08130FD8 @ =gAnimBankTarget _08130F82: ldrb r0, [r0] strh r0, [r4, 0x3C] ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08130FA6 ldrb r0, [r4, 0x3] movs r1, 0x3F negs r1, r1 ands r1, r0 movs r0, 0x10 orrs r1, r0 strb r1, [r4, 0x3] _08130FA6: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 bl sub_8079ED4 movs r2, 0x3 ands r2, r0 lsls r2, 2 ldrb r3, [r4, 0x5] movs r1, 0xD negs r1, r1 adds r0, r1, 0 ands r0, r3 orrs r0, r2 strb r0, [r4, 0x5] ldrb r0, [r4, 0x1] ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4, 0x1] ldr r0, _08130FDC @ =sub_8130FE0 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _08130FD8: .4byte gAnimBankTarget _08130FDC: .4byte sub_8130FE0 thumb_func_end sub_8130F5C thumb_func_start sub_8130FE0 sub_8130FE0: @ 8130FE0 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x38 ldrsh r0, [r4, r1] cmp r0, 0x4 bls _08130FEE b _081311DE _08130FEE: lsls r0, 2 ldr r1, _08130FF8 @ =_08130FFC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08130FF8: .4byte _08130FFC .align 2, 0 _08130FFC: .4byte _08131010 .4byte _08131110 .4byte _08131178 .4byte _0813118C .4byte _081311D8 _08131010: movs r2, 0x3A ldrsh r0, [r4, r2] cmp r0, 0x5 bhi _08131040 lsls r0, 2 ldr r1, _08131024 @ =_08131028 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08131024: .4byte _08131028 .align 2, 0 _08131028: .4byte _08131044 .4byte _08131060 .4byte _08131082 .4byte _0813109E .4byte _08131044 .4byte _081310C4 _08131040: movs r0, 0 strh r0, [r4, 0x3A] _08131044: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x5 bl sub_807A100 subs r0, 0x4 lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x3 b _081310B8 _08131060: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x5 bl sub_807A100 subs r0, 0x4 lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_807A100 adds r0, 0x4 b _081310BE _08131082: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x4 bl sub_807A100 adds r0, 0x4 lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x3 b _081310B8 _0813109E: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x4 bl sub_807A100 adds r0, 0x4 lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x2 _081310B8: bl sub_807A100 subs r0, 0x4 _081310BE: lsls r0, 16 lsrs r1, r0, 16 b _081310E4 _081310C4: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x3 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r1, r0, 24 _081310E4: movs r2, 0x3A ldrsh r0, [r4, r2] cmp r0, 0x4 bne _081310F0 movs r0, 0x18 b _081310FA _081310F0: cmp r0, 0x5 bne _081310F8 movs r0, 0x6 b _081310FA _081310F8: movs r0, 0xC _081310FA: strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] strh r5, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] strh r1, [r4, 0x36] adds r0, r4, 0 bl InitAnimLinearTranslation b _081311CA _08131110: adds r0, r4, 0 bl TranslateAnimLinear lsls r0, 24 cmp r0, 0 beq _081311DE movs r1, 0x3A ldrsh r0, [r4, r1] cmp r0, 0x4 beq _08131148 cmp r0, 0x5 beq _08131168 ldrh r0, [r4, 0x24] ldrh r2, [r4, 0x20] adds r0, r2 movs r1, 0 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] strh r1, [r4, 0x26] strh r1, [r4, 0x24] strh r1, [r4, 0x2E] ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] b _08131160 _08131148: ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 movs r1, 0 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] strh r1, [r4, 0x26] strh r1, [r4, 0x24] strh r1, [r4, 0x38] _08131160: ldrh r0, [r4, 0x3A] adds r0, 0x1 strh r0, [r4, 0x3A] b _081311DE _08131168: movs r0, 0 strh r0, [r4, 0x2E] movs r1, 0x10 strh r1, [r4, 0x30] strh r0, [r4, 0x32] movs r0, 0x3 strh r0, [r4, 0x38] b _081311DE _08131178: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _081311DE movs r0, 0 strh r0, [r4, 0x38] b _081311DE _0813118C: ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0813119E ldrh r0, [r4, 0x30] subs r0, 0x1 strh r0, [r4, 0x30] b _081311A4 _0813119E: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] _081311A4: ldr r2, _081311D4 @ =REG_BLDALPHA ldrh r0, [r4, 0x32] lsls r0, 8 ldrh r1, [r4, 0x30] orrs r0, r1 strh r0, [r2] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x20 bne _081311DE adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _081311CA: ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] b _081311DE .align 2, 0 _081311D4: .4byte REG_BLDALPHA _081311D8: adds r0, r4, 0 bl DestroyAnimSprite _081311DE: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8130FE0 thumb_func_start sub_81311E4 sub_81311E4: @ 81311E4 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x32 ldrsh r0, [r4, r1] movs r2, 0x2E ldrsh r1, [r4, r2] subs r0, r1 movs r2, 0x38 ldrsh r1, [r4, r2] muls r0, r1 movs r2, 0x36 ldrsh r1, [r4, r2] bl __divsi3 adds r5, r0, 0 strh r5, [r4, 0x24] movs r1, 0x34 ldrsh r0, [r4, r1] movs r2, 0x30 ldrsh r1, [r4, r2] subs r0, r1 movs r2, 0x38 ldrsh r1, [r4, r2] muls r0, r1 movs r2, 0x36 ldrsh r1, [r4, r2] bl __divsi3 adds r3, r0, 0 strh r3, [r4, 0x26] ldrh r1, [r4, 0x38] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08131242 ldr r0, _08131260 @ =gSpriteTemplate_8402500 ldrh r1, [r4, 0x20] adds r1, r5 lsls r1, 16 asrs r1, 16 ldrh r2, [r4, 0x22] adds r2, r3 lsls r2, 16 asrs r2, 16 movs r3, 0x5 bl CreateSprite _08131242: movs r0, 0x38 ldrsh r1, [r4, r0] movs r2, 0x36 ldrsh r0, [r4, r2] cmp r1, r0 bne _08131254 adds r0, r4, 0 bl DestroyAnimSprite _08131254: ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08131260: .4byte gSpriteTemplate_8402500 thumb_func_end sub_81311E4 thumb_func_start sub_8131264 sub_8131264: @ 8131264 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _081312A0 @ =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 bl GetBattlerSpriteCoord ldrb r0, [r4] movs r1, 0x3 bl GetBattlerSpriteCoord ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08131290 bl IsContest lsls r0, 24 cmp r0, 0 beq _081312A8 _08131290: ldr r2, _081312A4 @ =gBattleAnimArgs ldrh r1, [r5, 0x20] ldrh r0, [r2] subs r0, r1, r0 strh r0, [r5, 0x2E] ldrh r0, [r2, 0x4] subs r1, r0 b _081312B6 .align 2, 0 _081312A0: .4byte gAnimBankTarget _081312A4: .4byte gBattleAnimArgs _081312A8: ldr r2, _081312DC @ =gBattleAnimArgs ldrh r1, [r5, 0x20] ldrh r0, [r2] adds r0, r1, r0 strh r0, [r5, 0x2E] ldrh r0, [r2, 0x4] adds r1, r0 _081312B6: strh r1, [r5, 0x32] adds r3, r2, 0 ldrh r1, [r5, 0x22] ldrh r2, [r3, 0x2] adds r2, r1, r2 strh r2, [r5, 0x30] ldrh r0, [r3, 0x6] adds r1, r0 strh r1, [r5, 0x34] ldrh r0, [r3, 0x8] strh r0, [r5, 0x36] ldrh r0, [r5, 0x2E] strh r0, [r5, 0x20] strh r2, [r5, 0x22] ldr r0, _081312E0 @ =sub_81311E4 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081312DC: .4byte gBattleAnimArgs _081312E0: .4byte sub_81311E4 thumb_func_end sub_8131264 thumb_func_start sub_81312E4 sub_81312E4: @ 81312E4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r5, r0, 24 adds r2, r5, 0 ldr r0, _08131328 @ =gTasks mov r9, r0 lsls r7, r6, 2 adds r0, r7, r6 lsls r0, 3 mov r8, r0 mov r4, r8 add r4, r9 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bne _0813132C adds r0, r5, 0 movs r1, 0 bl sub_8078E70 movs r0, 0x80 lsls r0, 1 strh r0, [r4, 0xA] strh r0, [r4, 0xC] b _08131378 .align 2, 0 _08131328: .4byte gTasks _0813132C: cmp r0, 0x1 bne _08131384 ldrh r0, [r4, 0xA] adds r0, 0x60 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] subs r0, 0xD strh r0, [r4, 0xC] movs r2, 0xA ldrsh r1, [r4, r2] movs r0, 0xC ldrsh r2, [r4, r0] adds r0, r5, 0 movs r3, 0 bl obj_id_set_rotscale ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 bne _081313E8 movs r0, 0 strh r0, [r4, 0xE] adds r0, r5, 0 bl sub_8078F40 ldr r1, _08131380 @ =gSprites lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _08131378: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _081313E8 .align 2, 0 _08131380: .4byte gSprites _08131384: ldr r4, _081313F4 @ =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 bl refresh_graphics_maybe bl IsContest lsls r0, 24 cmp r0, 0 beq _081313C6 ldr r3, _081313F8 @ =gSprites ldr r2, _081313FC @ =gBankSpriteIds ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x10 adds r0, r1 ldr r1, _08131400 @ =gSpriteAffineAnimTable_81E7C18 str r1, [r0] ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0 bl StartSpriteAffineAnim _081313C6: mov r4, r9 adds r3, r7, 0 ldr r5, _08131404 @ =sub_8131408 movs r1, 0xF mov r2, r8 adds r0, r4, r2 adds r0, 0x26 movs r2, 0 _081313D6: strh r2, [r0] subs r0, 0x2 subs r1, 0x1 cmp r1, 0 bge _081313D6 adds r0, r3, r6 lsls r0, 3 adds r0, r4 str r5, [r0] _081313E8: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081313F4: .4byte gAnimBankAttacker _081313F8: .4byte gSprites _081313FC: .4byte gBankSpriteIds _08131400: .4byte gSpriteAffineAnimTable_81E7C18 _08131404: .4byte sub_8131408 thumb_func_end sub_81312E4 thumb_func_start sub_8131408 sub_8131408: @ 8131408 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r3, r0, 24 ldr r1, _08131434 @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r1 movs r0, 0x8 ldrsh r5, [r4, r0] cmp r5, 0x1 beq _0813146C cmp r5, 0x1 bgt _08131438 cmp r5, 0 beq _08131442 b _0813155A .align 2, 0 _08131434: .4byte gTasks _08131438: cmp r5, 0x2 beq _081314D8 cmp r5, 0x3 beq _08131514 b _0813155A _08131442: ldr r0, _08131464 @ =gSprites lsls r1, r3, 4 adds r1, r3 lsls r1, 2 adds r1, r0 ldr r0, _08131468 @ =0x0000ff38 strh r0, [r1, 0x26] movs r0, 0xC8 strh r0, [r1, 0x24] adds r1, 0x3E ldrb r2, [r1] subs r0, 0xCD ands r0, r2 strb r0, [r1] strh r5, [r4, 0x1C] b _08131506 .align 2, 0 _08131464: .4byte gSprites _08131468: .4byte 0x0000ff38 _0813146C: ldrh r1, [r4, 0x1C] adds r1, 0x70 movs r5, 0 strh r1, [r4, 0x1C] ldr r2, _081314D0 @ =gSprites lsls r0, r3, 4 adds r0, r3 lsls r0, 2 adds r2, r0, r2 lsls r1, 16 asrs r1, 24 ldrh r3, [r2, 0x26] adds r1, r3 strh r1, [r2, 0x26] movs r1, 0x22 ldrsh r0, [r2, r1] movs r3, 0x26 ldrsh r1, [r2, r3] adds r0, r1 movs r1, 0x20 negs r1, r1 cmp r0, r1 blt _0813149C strh r5, [r2, 0x24] _0813149C: movs r1, 0x26 ldrsh r0, [r2, r1] cmp r0, 0 ble _081314A6 strh r5, [r2, 0x26] _081314A6: movs r3, 0x26 ldrsh r0, [r2, r3] cmp r0, 0 bne _0813155A movs r0, 0x40 negs r0, r0 bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x7D bl PlaySE12WithPanning ldr r1, _081314D4 @ =0xfffff800 adds r0, r1, 0 ldrh r2, [r4, 0x1C] adds r0, r2 strh r0, [r4, 0x1C] b _08131506 .align 2, 0 _081314D0: .4byte gSprites _081314D4: .4byte 0xfffff800 _081314D8: ldrh r0, [r4, 0x1C] subs r0, 0x70 strh r0, [r4, 0x1C] lsls r0, 16 cmp r0, 0 bge _081314E8 movs r0, 0 strh r0, [r4, 0x1C] _081314E8: ldr r0, _08131510 @ =gSprites lsls r1, r3, 4 adds r1, r3 lsls r1, 2 adds r1, r0 ldrh r2, [r4, 0x1C] lsls r2, 16 asrs r2, 24 ldrh r0, [r1, 0x26] subs r0, r2 strh r0, [r1, 0x26] movs r3, 0x1C ldrsh r0, [r4, r3] cmp r0, 0 bne _0813155A _08131506: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0813155A .align 2, 0 _08131510: .4byte gSprites _08131514: ldrh r0, [r4, 0x1C] adds r0, 0x70 strh r0, [r4, 0x1C] ldr r2, _08131560 @ =gSprites lsls r1, r3, 4 adds r1, r3 lsls r1, 2 adds r1, r2 lsls r0, 16 asrs r0, 24 ldrh r2, [r1, 0x26] adds r0, r2 strh r0, [r1, 0x26] lsls r0, 16 cmp r0, 0 ble _08131538 movs r0, 0 strh r0, [r1, 0x26] _08131538: movs r3, 0x26 ldrsh r0, [r1, r3] cmp r0, 0 bne _0813155A movs r0, 0x40 negs r0, r0 bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x7D bl PlaySE12WithPanning adds r0, r6, 0 bl DestroyAnimVisualTask _0813155A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08131560: .4byte gSprites thumb_func_end sub_8131408 thumb_func_start sub_8131564 sub_8131564: @ 8131564 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _08131588 @ =gAnimBankTarget ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08131590 ldrb r0, [r4] bl sub_8079E90 subs r0, 0x2 adds r1, r5, 0 adds r1, 0x43 strb r0, [r1] ldr r4, _0813158C @ =0x0000ff70 b _081315A0 .align 2, 0 _08131588: .4byte gAnimBankTarget _0813158C: .4byte 0x0000ff70 _08131590: ldrb r0, [r4] bl sub_8079E90 adds r0, 0x2 adds r1, r5, 0 adds r1, 0x43 strb r0, [r1] ldr r4, _081315BC @ =0x0000ffa0 _081315A0: ldr r0, _081315C0 @ =gAnimBankTarget ldrb r0, [r0] movs r1, 0x3 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] strh r4, [r5, 0x26] ldr r0, _081315C4 @ =sub_81315C8 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081315BC: .4byte 0x0000ffa0 _081315C0: .4byte gAnimBankTarget _081315C4: .4byte sub_81315C8 thumb_func_end sub_8131564 thumb_func_start sub_81315C8 sub_81315C8: @ 81315C8 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x4 bls _081315D6 b _081316F2 _081315D6: lsls r0, 2 ldr r1, _081315E0 @ =_081315E4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081315E0: .4byte _081315E4 .align 2, 0 _081315E4: .4byte _081315F8 .4byte _0813161C .4byte _0813165C .4byte _0813168C .4byte _081316B8 _081315F8: ldrh r0, [r4, 0x26] adds r0, 0xA strh r0, [r4, 0x26] lsls r0, 16 cmp r0, 0 blt _081316F2 movs r0, 0x3F bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xCD bl PlaySE12WithPanning movs r0, 0 strh r0, [r4, 0x26] b _081316B0 _0813161C: ldrh r1, [r4, 0x30] adds r1, 0x4 movs r5, 0 strh r1, [r4, 0x30] ldr r2, _08131658 @ =gSineTable movs r3, 0x30 ldrsh r0, [r4, r3] lsls r0, 1 adds r0, r2 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 negs r0, r0 strh r0, [r4, 0x26] lsls r1, 16 asrs r1, 16 cmp r1, 0x7F ble _081316F2 movs r0, 0x3F bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xCD bl PlaySE12WithPanning strh r5, [r4, 0x30] strh r5, [r4, 0x26] b _081316B0 .align 2, 0 _08131658: .4byte gSineTable _0813165C: ldrh r1, [r4, 0x30] adds r1, 0x6 movs r3, 0 strh r1, [r4, 0x30] ldr r2, _08131688 @ =gSineTable movs r5, 0x30 ldrsh r0, [r4, r5] lsls r0, 1 adds r0, r2 ldrh r0, [r0] lsls r0, 16 asrs r0, 20 negs r0, r0 strh r0, [r4, 0x26] lsls r1, 16 asrs r1, 16 cmp r1, 0x7F ble _081316F2 strh r3, [r4, 0x30] strh r3, [r4, 0x26] b _081316B0 .align 2, 0 _08131688: .4byte gSineTable _0813168C: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _081316F2 movs r0, 0x3F bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xC0 bl PlaySE12WithPanning movs r0, 0 strh r0, [r4, 0x30] _081316B0: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _081316F2 _081316B8: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _081316F2 movs r0, 0 strh r0, [r4, 0x30] ldrh r1, [r4, 0x32] adds r1, 0x1 strh r1, [r4, 0x32] movs r0, 0x1 ands r1, r0 adds r3, r4, 0 adds r3, 0x3E lsls r1, 2 ldrb r2, [r3] subs r0, 0x6 ands r0, r2 orrs r0, r1 strb r0, [r3] movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0x7 bne _081316F2 adds r0, r4, 0 bl DestroyAnimSprite _081316F2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81315C8 thumb_func_start sub_81316F8 sub_81316F8: @ 81316F8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r4, r0, 24 mov r10, r4 bl IsContest lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0813173E movs r0, 0x1 bl duplicate_obj_of_side_rel2move_in_transparent_mode lsls r0, 16 asrs r7, r0, 16 cmp r7, 0 blt _0813173E movs r0, 0x1 bl duplicate_obj_of_side_rel2move_in_transparent_mode lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _0813174C lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r1, _08131748 @ =gSprites adds r0, r1 bl obj_delete_but_dont_free_vram _0813173E: adds r0, r4, 0 bl DestroyAnimVisualTask b _081317EE .align 2, 0 _08131748: .4byte gSprites _0813174C: ldr r1, _081317FC @ =gSprites mov r9, r1 lsls r1, r0, 4 mov r8, r1 add r8, r0 mov r0, r8 lsls r0, 2 mov r8, r0 mov r4, r8 add r4, r9 ldrh r0, [r4, 0x24] adds r0, 0x18 strh r0, [r4, 0x24] lsls r6, r7, 4 adds r6, r7 lsls r6, 2 mov r1, r9 adds r2, r6, r1 ldrh r0, [r2, 0x24] subs r0, 0x18 strh r0, [r2, 0x24] strh r5, [r4, 0x2E] strh r5, [r2, 0x2E] strh r5, [r4, 0x30] strh r5, [r2, 0x30] strh r5, [r4, 0x32] strh r5, [r2, 0x32] movs r0, 0x10 strh r0, [r4, 0x34] ldr r0, _08131800 @ =0x0000fff0 strh r0, [r2, 0x34] strh r5, [r4, 0x36] movs r0, 0x80 strh r0, [r2, 0x36] movs r0, 0x18 strh r0, [r4, 0x38] strh r0, [r2, 0x38] mov r0, r10 strh r0, [r4, 0x3A] strh r0, [r2, 0x3A] strh r5, [r4, 0x3C] strh r5, [r2, 0x3C] ldr r0, _08131804 @ =gTasks mov r1, r10 lsls r3, r1, 2 add r3, r10 lsls r3, 3 adds r3, r0 movs r0, 0x2 strh r0, [r3, 0x8] adds r5, r4, 0 adds r5, 0x3E ldrb r1, [r5] subs r0, 0x7 ands r0, r1 strb r0, [r5] adds r5, r2, 0 adds r5, 0x3E ldrb r0, [r5] movs r1, 0x4 orrs r0, r1 strb r0, [r5] ldrb r5, [r4, 0x1] movs r1, 0xD negs r1, r1 adds r0, r1, 0 ands r0, r5 strb r0, [r4, 0x1] ldrb r0, [r2, 0x1] ands r1, r0 strb r1, [r2, 0x1] movs r0, 0x1C add r9, r0 add r8, r9 ldr r0, _08131808 @ =sub_8131838 mov r1, r8 str r0, [r1] add r6, r9 str r0, [r6] ldr r0, _0813180C @ =sub_8131810 str r0, [r3] _081317EE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081317FC: .4byte gSprites _08131800: .4byte 0x0000fff0 _08131804: .4byte gTasks _08131808: .4byte sub_8131838 _0813180C: .4byte sub_8131810 thumb_func_end sub_81316F8 thumb_func_start sub_8131810 sub_8131810: @ 8131810 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _08131834 @ =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0 bne _0813182E adds r0, r2, 0 bl DestroyAnimVisualTask _0813182E: pop {r0} bx r0 .align 2, 0 _08131834: .4byte gTasks thumb_func_end sub_8131810 thumb_func_start sub_8131838 sub_8131838: @ 8131838 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] adds r0, 0x1 movs r5, 0 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _08131868 strh r5, [r4, 0x30] adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _08131868: ldrh r0, [r4, 0x34] ldrh r1, [r4, 0x36] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x36] movs r2, 0x36 ldrsh r0, [r4, r2] movs r2, 0x38 ldrsh r1, [r4, r2] bl Cos strh r0, [r4, 0x24] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _08131890 cmp r0, 0x1 beq _081318A8 b _081318E6 _08131890: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x3C bne _081318E6 strh r5, [r4, 0x32] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _081318E6 _081318A8: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 cmp r0, 0 ble _081318E6 strh r5, [r4, 0x32] ldrh r0, [r4, 0x38] subs r0, 0x2 strh r0, [r4, 0x38] lsls r0, 16 cmp r0, 0 bge _081318E6 ldr r3, _081318EC @ =gTasks movs r2, 0x3C ldrsh r1, [r4, r2] lsls r1, 1 movs r0, 0x3A ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl obj_delete_but_dont_free_vram _081318E6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081318EC: .4byte gTasks thumb_func_end sub_8131838 thumb_func_start sub_81318F0 sub_81318F0: @ 81318F0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r3, _0813193C @ =gBattleAnimArgs movs r2, 0 strh r2, [r3, 0xE] ldr r1, _08131940 @ =gAnimFriendship ldrb r0, [r1] ldrb r1, [r1] adds r0, r1, 0 subs r0, 0x3D lsls r0, 24 lsrs r0, 24 adds r2, r1, 0 cmp r0, 0x1E bhi _08131914 movs r0, 0x1 strh r0, [r3, 0xE] _08131914: adds r0, r2, 0 subs r0, 0x5C lsls r0, 24 lsrs r0, 24 cmp r0, 0x6C bhi _08131924 movs r0, 0x2 strh r0, [r3, 0xE] _08131924: lsls r0, r1, 24 lsrs r0, 24 cmp r0, 0xC8 bls _08131930 movs r0, 0x3 strh r0, [r3, 0xE] _08131930: adds r0, r4, 0 bl DestroyAnimVisualTask pop {r4} pop {r0} bx r0 .align 2, 0 _0813193C: .4byte gBattleAnimArgs _08131940: .4byte gAnimFriendship thumb_func_end sub_81318F0 thumb_func_start sub_8131944 sub_8131944: @ 8131944 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, _08131974 @ =gTasks lsls r0, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0x4 bls _0813196A b _08131EA0 _0813196A: lsls r0, 2 ldr r1, _08131978 @ =_0813197C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08131974: .4byte gTasks _08131978: .4byte _0813197C .align 2, 0 _0813197C: .4byte _08131990 .4byte _08131A44 .4byte _08131C20 .4byte _08131D40 .4byte _08131DC4 _08131990: movs r0, 0 bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r7, r0, 24 ldr r1, _081319DC @ =gTasks mov r2, r8 lsls r4, r2, 2 adds r0, r4, r2 lsls r0, 3 adds r6, r0, r1 movs r3, 0x80 lsls r3, 4 adds r0, r3, 0 ldrh r1, [r6, 0xA] adds r0, r1 strh r0, [r6, 0xA] ldr r0, _081319E0 @ =gAnimBankAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 mov r9, r4 cmp r0, 0 bne _081319E8 ldr r2, _081319E4 @ =gSprites lsls r3, r7, 4 adds r1, r3, r7 lsls r1, 2 adds r1, r2 ldrh r0, [r6, 0xA] lsls r0, 16 asrs r0, 24 ldrh r4, [r1, 0x24] adds r0, r4 strh r0, [r1, 0x24] b _08131A02 .align 2, 0 _081319DC: .4byte gTasks _081319E0: .4byte gAnimBankAttacker _081319E4: .4byte gSprites _081319E8: ldr r3, _08131A3C @ =gSprites lsls r4, r7, 4 adds r2, r4, r7 lsls r2, 2 adds r2, r3 ldrh r1, [r6, 0xA] lsls r1, 16 asrs r1, 24 ldrh r0, [r2, 0x24] subs r0, r1 strh r0, [r2, 0x24] adds r2, r3, 0 adds r3, r4, 0 _08131A02: ldr r1, _08131A40 @ =gTasks mov r0, r9 add r0, r8 lsls r0, 3 adds r4, r0, r1 ldrb r0, [r4, 0xA] strh r0, [r4, 0xA] adds r1, r3, r7 lsls r1, 2 adds r1, r2 ldrh r0, [r1, 0x24] ldrh r1, [r1, 0x20] adds r0, r1 lsls r0, 16 movs r1, 0x80 lsls r1, 14 adds r0, r1 movs r1, 0x98 lsls r1, 17 cmp r0, r1 bhi _08131A2E b _08131EA0 _08131A2E: movs r0, 0 strh r0, [r4, 0xA] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08131EA0 .align 2, 0 _08131A3C: .4byte gSprites _08131A40: .4byte gTasks _08131A44: bl IsContest lsls r0, 24 cmp r0, 0 beq _08131A74 ldr r0, _08131A6C @ =gSharedMem + 0x19348 ldr r2, [r0, 0x8] mov r10, r2 ldr r3, [r0, 0xC] mov r9, r3 ldrh r5, [r0] ldr r0, _08131A70 @ =gAnimBankAttacker ldrb r0, [r0] bl sub_8079E90 lsls r0, 24 lsrs r4, r0, 24 movs r7, 0 b _08131B92 .align 2, 0 _08131A6C: .4byte gSharedMem + 0x19348 _08131A70: .4byte gAnimBankAttacker _08131A74: ldr r4, _08131AD4 @ =gAnimBankAttacker ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08131B10 ldr r7, _08131AD8 @ =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r7 ldrh r0, [r0] movs r6, 0x64 muls r0, r6 ldr r5, _08131ADC @ =gPlayerParty adds r0, r5 movs r1, 0 bl GetMonData mov r10, r0 ldrb r0, [r4] lsls r0, 1 adds r0, r7 ldrh r0, [r0] muls r0, r6 adds r0, r5 movs r1, 0x1 bl GetMonData mov r9, r0 ldrb r2, [r4] lsls r1, r2, 2 ldr r0, _08131AE0 @ =gSharedMem + 0x17800 adds r1, r0 ldrh r0, [r1, 0x2] cmp r0, 0 bne _08131AE4 lsls r0, r2, 1 adds r0, r7 ldrh r0, [r0] muls r0, r6 adds r0, r5 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r5, r0, 16 b _08131AE6 .align 2, 0 _08131AD4: .4byte gAnimBankAttacker _08131AD8: .4byte gBattlerPartyIndexes _08131ADC: .4byte gPlayerParty _08131AE0: .4byte gSharedMem + 0x17800 _08131AE4: ldrh r5, [r1, 0x2] _08131AE6: movs r0, 0x1 bl GetAnimBattlerSpriteId ldr r2, _08131B0C @ =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x43 ldrb r0, [r1] adds r0, 0x1 lsls r0, 24 lsrs r4, r0, 24 movs r7, 0 movs r6, 0x88 lsls r6, 1 b _08131B94 .align 2, 0 _08131B0C: .4byte gSprites _08131B10: ldr r7, _08131B64 @ =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r7 ldrh r0, [r0] movs r6, 0x64 muls r0, r6 ldr r5, _08131B68 @ =gEnemyParty adds r0, r5 movs r1, 0 bl GetMonData mov r10, r0 ldrb r0, [r4] lsls r0, 1 adds r0, r7 ldrh r0, [r0] muls r0, r6 adds r0, r5 movs r1, 0x1 bl GetMonData mov r9, r0 ldrb r2, [r4] lsls r1, r2, 2 ldr r0, _08131B6C @ =gSharedMem + 0x17800 adds r1, r0 ldrh r0, [r1, 0x2] cmp r0, 0 bne _08131B70 lsls r0, r2, 1 adds r0, r7 ldrh r0, [r0] muls r0, r6 adds r0, r5 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r5, r0, 16 b _08131B72 .align 2, 0 _08131B64: .4byte gBattlerPartyIndexes _08131B68: .4byte gEnemyParty _08131B6C: .4byte gSharedMem + 0x17800 _08131B70: ldrh r5, [r1, 0x2] _08131B72: movs r0, 0x1 bl GetAnimBattlerSpriteId ldr r2, _08131C04 @ =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x43 ldrb r0, [r1] subs r0, 0x1 lsls r0, 24 lsrs r4, r0, 24 movs r7, 0x1 _08131B92: ldr r6, _08131C08 @ =0x0000ffe0 _08131B94: ldr r0, _08131C0C @ =gAnimBankTarget ldrb r0, [r0] movs r1, 0x1 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 lsls r3, r6, 16 asrs r3, 16 str r0, [sp] str r4, [sp, 0x4] mov r4, r10 str r4, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] adds r0, r5, 0 adds r1, r7, 0 movs r2, 0 bl sub_8079F44 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _08131C10 @ =gAnimBankAttacker ldrb r0, [r0] lsls r0, 2 ldr r1, _08131C14 @ =gSharedMem + 0x17800 adds r0, r1 ldrh r0, [r0, 0x2] cmp r0, 0 beq _08131BF2 ldr r1, _08131C04 @ =gSprites lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x5] lsrs r0, 4 lsls r0, 4 movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 orrs r0, r1 ldr r3, _08131C18 @ =0x00007fff movs r1, 0x10 movs r2, 0x6 bl BlendPalette _08131BF2: ldr r0, _08131C1C @ =gTasks mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r0 strh r5, [r1, 0x26] b _08131DB6 .align 2, 0 _08131C04: .4byte gSprites _08131C08: .4byte 0x0000ffe0 _08131C0C: .4byte gAnimBankTarget _08131C10: .4byte gAnimBankAttacker _08131C14: .4byte gSharedMem + 0x17800 _08131C18: .4byte 0x00007fff _08131C1C: .4byte gTasks _08131C20: ldr r1, _08131C6C @ =gTasks mov r0, r8 lsls r4, r0, 2 adds r0, r4, r0 lsls r0, 3 adds r6, r0, r1 ldrh r0, [r6, 0x26] lsls r0, 24 lsrs r5, r0, 24 movs r1, 0x80 lsls r1, 4 adds r0, r1, 0 ldrh r2, [r6, 0xA] adds r0, r2 strh r0, [r6, 0xA] ldr r0, _08131C70 @ =gAnimBankAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 mov r9, r4 cmp r0, 0 bne _08131C78 ldr r3, _08131C74 @ =gSprites lsls r4, r5, 4 adds r2, r4, r5 lsls r2, 2 adds r2, r3 ldrh r1, [r6, 0xA] lsls r1, 16 asrs r1, 24 ldrh r0, [r2, 0x24] subs r0, r1 strh r0, [r2, 0x24] adds r2, r3, 0 adds r3, r4, 0 b _08131C8E .align 2, 0 _08131C6C: .4byte gTasks _08131C70: .4byte gAnimBankAttacker _08131C74: .4byte gSprites _08131C78: ldr r2, _08131CDC @ =gSprites lsls r3, r5, 4 adds r1, r3, r5 lsls r1, 2 adds r1, r2 ldrh r0, [r6, 0xA] lsls r0, 16 asrs r0, 24 ldrh r4, [r1, 0x24] adds r0, r4 strh r0, [r1, 0x24] _08131C8E: ldr r1, _08131CE0 @ =gTasks mov r0, r9 add r0, r8 lsls r0, 3 adds r6, r0, r1 ldrb r0, [r6, 0xA] strh r0, [r6, 0xA] adds r1, r3, r5 lsls r1, 2 adds r1, r2 ldrh r0, [r1, 0x24] ldrh r1, [r1, 0x20] adds r0, r1 lsls r0, 16 lsrs r5, r0, 16 movs r1, 0x24 ldrsh r0, [r6, r1] cmp r0, 0 bne _08131D0E ldr r0, _08131CE4 @ =gAnimBankAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08131CEC lsls r4, r5, 16 asrs r4, 16 ldr r0, _08131CE8 @ =gAnimBankTarget ldrb r0, [r0] movs r1, 0 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 cmp r4, r0 bge _08131D0E b _08131D02 .align 2, 0 _08131CDC: .4byte gSprites _08131CE0: .4byte gTasks _08131CE4: .4byte gAnimBankAttacker _08131CE8: .4byte gAnimBankTarget _08131CEC: lsls r4, r5, 16 asrs r4, 16 ldr r0, _08131D30 @ =gAnimBankTarget ldrb r0, [r0] movs r1, 0 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 cmp r4, r0 ble _08131D0E _08131D02: ldrh r0, [r6, 0x24] adds r0, 0x1 strh r0, [r6, 0x24] ldr r1, _08131D34 @ =gBattleAnimArgs ldr r0, _08131D38 @ =0x0000ffff strh r0, [r1, 0xE] _08131D0E: lsls r0, r5, 16 movs r2, 0x80 lsls r2, 14 adds r0, r2 movs r1, 0x98 lsls r1, 17 cmp r0, r1 bhi _08131D20 b _08131EA0 _08131D20: ldr r0, _08131D3C @ =gTasks mov r1, r9 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0 strh r0, [r1, 0xA] b _08131DB6 .align 2, 0 _08131D30: .4byte gAnimBankTarget _08131D34: .4byte gBattleAnimArgs _08131D38: .4byte 0x0000ffff _08131D3C: .4byte gTasks _08131D40: movs r0, 0 bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08131D8C @ =gTasks mov r3, r8 lsls r4, r3, 2 adds r0, r4, r3 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x26] lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 ldr r5, _08131D90 @ =gSprites adds r0, r5 bl sub_807A0F4 ldr r0, _08131D94 @ =gAnimBankAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 mov r9, r4 cmp r0, 0 bne _08131D98 lsls r1, r7, 4 adds r1, r7 lsls r1, 2 adds r1, r5 ldrh r0, [r1, 0x20] negs r0, r0 subs r0, 0x20 strh r0, [r1, 0x24] b _08131DAC .align 2, 0 _08131D8C: .4byte gTasks _08131D90: .4byte gSprites _08131D94: .4byte gAnimBankAttacker _08131D98: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r0, r5 ldrh r2, [r0, 0x20] movs r4, 0x88 lsls r4, 1 adds r1, r4, 0 subs r1, r2 strh r1, [r0, 0x24] _08131DAC: ldr r0, _08131DC0 @ =gTasks mov r1, r9 add r1, r8 lsls r1, 3 adds r1, r0 _08131DB6: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _08131EA0 .align 2, 0 _08131DC0: .4byte gTasks _08131DC4: movs r0, 0 bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08131E38 @ =gTasks mov r0, r8 lsls r4, r0, 2 adds r0, r4, r0 lsls r0, 3 adds r2, r0, r1 movs r1, 0x80 lsls r1, 4 adds r0, r1, 0 ldrh r3, [r2, 0xA] adds r0, r3 strh r0, [r2, 0xA] ldr r0, _08131E3C @ =gAnimBankAttacker mov r10, r0 ldrb r0, [r0] str r2, [sp, 0x10] bl GetBattlerSide lsls r0, 24 mov r9, r4 ldr r2, [sp, 0x10] cmp r0, 0 bne _08131E44 ldr r1, _08131E40 @ =gSprites lsls r5, r7, 4 adds r0, r5, r7 lsls r0, 2 adds r6, r0, r1 ldrh r0, [r2, 0xA] lsls r0, 16 asrs r0, 24 ldrh r1, [r6, 0x24] adds r0, r1 strh r0, [r6, 0x24] movs r2, 0x24 ldrsh r4, [r6, r2] movs r3, 0x20 ldrsh r0, [r6, r3] adds r4, r0 mov r1, r10 ldrb r0, [r1] movs r1, 0 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r3, r5, 0 cmp r4, r0 blt _08131E7C movs r2, 0 strh r2, [r6, 0x24] b _08131E7C .align 2, 0 _08131E38: .4byte gTasks _08131E3C: .4byte gAnimBankAttacker _08131E40: .4byte gSprites _08131E44: ldr r1, _08131EB0 @ =gSprites lsls r5, r7, 4 adds r0, r5, r7 lsls r0, 2 adds r6, r0, r1 ldrh r1, [r2, 0xA] lsls r1, 16 asrs r1, 24 ldrh r0, [r6, 0x24] subs r0, r1 strh r0, [r6, 0x24] movs r3, 0x24 ldrsh r4, [r6, r3] movs r1, 0x20 ldrsh r0, [r6, r1] adds r4, r0 mov r2, r10 ldrb r0, [r2] movs r1, 0 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r3, r5, 0 cmp r4, r0 bgt _08131E7C movs r4, 0 strh r4, [r6, 0x24] _08131E7C: ldr r1, _08131EB4 @ =gTasks mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0xA] strh r1, [r0, 0xA] ldr r1, _08131EB0 @ =gSprites adds r0, r3, r7 lsls r0, 2 adds r0, r1 movs r1, 0x24 ldrsh r0, [r0, r1] cmp r0, 0 bne _08131EA0 mov r0, r8 bl DestroyAnimVisualTask _08131EA0: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08131EB0: .4byte gSprites _08131EB4: .4byte gTasks thumb_func_end sub_8131944 thumb_func_start sub_8131EB8 sub_8131EB8: @ 8131EB8 push {r4,lr} adds r4, r0, 0 movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0 beq _08131ECA cmp r0, 0x1 beq _08131F72 b _08131FF4 _08131ECA: ldr r0, _08131F50 @ =gBattleAnimArgs movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _08131F64 movs r0, 0x3F bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x7A bl PlaySE12WithPanning ldr r0, _08131F54 @ =gAnimBankTarget ldrb r0, [r0] movs r1, 0x1 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, 0x10 strh r0, [r4, 0x22] ldr r0, _08131F58 @ =0x0000ffe0 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, _08131F5C @ =gAnimBankAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08131FF4 bl IsContest lsls r0, 24 cmp r0, 0 bne _08131FF4 movs r0, 0x1 bl GetAnimBattlerSpriteId ldr r2, _08131F60 @ =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x43 ldrb r0, [r1] subs r0, 0x1 adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] b _08131FF4 .align 2, 0 _08131F50: .4byte gBattleAnimArgs _08131F54: .4byte gAnimBankTarget _08131F58: .4byte 0x0000ffe0 _08131F5C: .4byte gAnimBankAttacker _08131F60: .4byte gSprites _08131F64: adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _08131FF4 _08131F72: movs r1, 0x30 ldrsh r0, [r4, r1] movs r2, 0x2E ldrsh r1, [r4, r2] bl Sin strh r0, [r4, 0x26] ldrh r2, [r4, 0x30] adds r0, r2, 0x5 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x7F ble _08131FA6 movs r1, 0x2E ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] adds r0, r2, 0 subs r0, 0x7A strh r0, [r4, 0x30] _08131FA6: movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] ldr r0, _08131FD0 @ =gAnimBankAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08131FD4 ldrh r2, [r4, 0x32] lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r4, 0x24] subs r0, r1 strh r0, [r4, 0x24] adds r1, r2, 0 b _08131FE0 .align 2, 0 _08131FD0: .4byte gAnimBankAttacker _08131FD4: ldrh r1, [r4, 0x32] lsls r0, r1, 16 asrs r0, 24 ldrh r2, [r4, 0x24] adds r0, r2 strh r0, [r4, 0x24] _08131FE0: movs r0, 0xFF ands r0, r1 strh r0, [r4, 0x32] movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0x2 bne _08131FF4 adds r0, r4, 0 bl DestroyAnimSprite _08131FF4: pop {r4} pop {r0} bx r0 thumb_func_end sub_8131EB8 thumb_func_start sub_8131FFC sub_8131FFC: @ 8131FFC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08132024 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0x26 ldrsh r0, [r0, r2] adds r3, r1, 0 cmp r0, 0x4 bls _08132018 b _0813216A _08132018: lsls r0, 2 ldr r1, _08132028 @ =_0813202C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08132024: .4byte gTasks _08132028: .4byte _0813202C .align 2, 0 _0813202C: .4byte _08132040 .4byte _08132090 .4byte _081320EC .4byte _08132104 .4byte _0813216A _08132040: ldr r0, _08132084 @ =gAnimBankAttacker ldrb r0, [r0] movs r1, 0 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r0, _08132088 @ =gAnimBankTarget ldrb r0, [r0] movs r1, 0 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 ldr r1, _0813208C @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 movs r0, 0x6 strh r0, [r1, 0x8] cmp r5, r2 ble _08132076 negs r0, r0 strh r0, [r1, 0x8] _08132076: strh r5, [r1, 0xA] strh r2, [r1, 0xC] ldrh r0, [r1, 0x26] adds r0, 0x1 strh r0, [r1, 0x26] b _08132188 .align 2, 0 _08132084: .4byte gAnimBankAttacker _08132088: .4byte gAnimBankTarget _0813208C: .4byte gTasks _08132090: ldr r1, _081320CC @ =gBankSpriteIds ldr r0, _081320D0 @ =gAnimBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] ldr r1, _081320D4 @ =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, r0, r1 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r3 ldrh r0, [r2, 0x8] ldrh r3, [r1, 0x24] adds r0, r3 strh r0, [r1, 0x24] movs r3, 0x8 ldrsh r0, [r2, r3] cmp r0, 0 ble _081320D8 movs r3, 0x20 ldrsh r0, [r1, r3] movs r3, 0x24 ldrsh r1, [r1, r3] adds r0, r1 movs r3, 0xC ldrsh r1, [r2, r3] b _0813215E .align 2, 0 _081320CC: .4byte gBankSpriteIds _081320D0: .4byte gAnimBankAttacker _081320D4: .4byte gSprites _081320D8: movs r3, 0x20 ldrsh r0, [r1, r3] movs r3, 0x24 ldrsh r1, [r1, r3] adds r0, r1 movs r3, 0xC ldrsh r1, [r2, r3] cmp r0, r1 bgt _08132188 b _08132162 _081320EC: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r3 movs r2, 0x8 ldrsh r1, [r0, r2] negs r1, r1 strh r1, [r0, 0x8] ldrh r1, [r0, 0x26] adds r1, 0x1 strh r1, [r0, 0x26] b _08132188 _08132104: ldr r1, _08132144 @ =gBankSpriteIds ldr r0, _08132148 @ =gAnimBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] ldr r1, _0813214C @ =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, r0, r1 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r3 ldrh r0, [r2, 0x8] ldrh r3, [r1, 0x24] adds r0, r3 strh r0, [r1, 0x24] movs r3, 0x8 ldrsh r0, [r2, r3] cmp r0, 0 bge _08132150 movs r3, 0x20 ldrsh r0, [r1, r3] movs r3, 0x24 ldrsh r1, [r1, r3] adds r0, r1 movs r3, 0xA ldrsh r1, [r2, r3] cmp r0, r1 bgt _08132188 b _08132162 .align 2, 0 _08132144: .4byte gBankSpriteIds _08132148: .4byte gAnimBankAttacker _0813214C: .4byte gSprites _08132150: movs r3, 0x20 ldrsh r0, [r1, r3] movs r3, 0x24 ldrsh r1, [r1, r3] adds r0, r1 movs r3, 0xA ldrsh r1, [r2, r3] _0813215E: cmp r0, r1 blt _08132188 _08132162: ldrh r0, [r2, 0x26] adds r0, 0x1 strh r0, [r2, 0x26] b _08132188 _0813216A: ldr r1, _08132190 @ =gBankSpriteIds ldr r0, _08132194 @ =gAnimBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] ldr r1, _08132198 @ =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0 strh r1, [r0, 0x24] adds r0, r4, 0 bl DestroyAnimVisualTask _08132188: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08132190: .4byte gBankSpriteIds _08132194: .4byte gAnimBankAttacker _08132198: .4byte gSprites thumb_func_end sub_8131FFC thumb_func_start sub_813219C sub_813219C: @ 813219C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08132204 @ =gTasks adds r4, r1, r0 movs r0, 0 bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0xE] ldr r0, _08132208 @ =gAnimBankAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 movs r2, 0x1 negs r2, r2 adds r1, r2, 0 cmp r0, 0 bne _081321D0 movs r1, 0x1 _081321D0: strh r1, [r4, 0x10] ldr r2, _0813220C @ =gSprites movs r0, 0xE ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x22] strh r0, [r4, 0x14] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x20] strh r0, [r4, 0x12] strh r5, [r4, 0x1A] strh r5, [r4, 0x1E] movs r0, 0x1 strh r0, [r4, 0x1C] strh r5, [r4, 0x20] ldr r0, _08132210 @ =sub_8132214 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08132204: .4byte gTasks _08132208: .4byte gAnimBankAttacker _0813220C: .4byte gSprites _08132210: .4byte sub_8132214 thumb_func_end sub_813219C thumb_func_start sub_8132214 sub_8132214: @ 8132214 push {r4-r6,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _08132238 @ =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _081322BC cmp r0, 0x1 bgt _0813223C cmp r0, 0 beq _08132242 b _08132312 .align 2, 0 _08132238: .4byte gTasks _0813223C: cmp r0, 0x2 beq _0813230C b _08132312 _08132242: ldrh r0, [r4, 0x1E] adds r0, 0x8 movs r2, 0xFF ands r0, r2 strh r0, [r4, 0x1E] ldr r5, _081322B4 @ =gSprites movs r6, 0xE ldrsh r0, [r4, r6] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldr r3, _081322B8 @ =gSineTable movs r6, 0x1E ldrsh r0, [r4, r6] lsls r0, 1 adds r0, r3 ldrh r0, [r0] lsls r0, 16 asrs r0, 21 strh r0, [r1, 0x24] ldrh r0, [r4, 0x1A] adds r0, 0x2 ands r0, r2 strh r0, [r4, 0x1A] movs r1, 0xE ldrsh r0, [r4, r1] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r5 movs r6, 0x1A ldrsh r0, [r4, r6] lsls r0, 1 adds r0, r3 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 ldrh r1, [r4, 0x10] muls r0, r1 ldrh r1, [r4, 0x12] adds r0, r1 strh r0, [r2, 0x20] movs r6, 0x1A ldrsh r0, [r4, r6] cmp r0, 0 bne _08132312 movs r0, 0xE ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r4, 0x12] strh r1, [r0, 0x20] b _081322FC .align 2, 0 _081322B4: .4byte gSprites _081322B8: .4byte gSineTable _081322BC: ldrh r0, [r4, 0x1E] adds r0, 0x8 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x1E] ldr r3, _08132304 @ =gSprites movs r1, 0xE ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldr r2, _08132308 @ =gSineTable movs r5, 0x1E ldrsh r0, [r4, r5] lsls r0, 1 adds r0, r2 ldrh r0, [r0] lsls r0, 16 asrs r0, 21 strh r0, [r1, 0x24] movs r6, 0x1E ldrsh r2, [r4, r6] cmp r2, 0 bne _08132312 movs r1, 0xE ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 strh r2, [r1, 0x24] _081322FC: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08132312 .align 2, 0 _08132304: .4byte gSprites _08132308: .4byte gSineTable _0813230C: adds r0, r2, 0 bl DestroyAnimVisualTask _08132312: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8132214 thumb_func_start sub_8132318 sub_8132318: @ 8132318 push {r4,lr} adds r4, r0, 0 ldr r0, _0813236C @ =gAnimBankTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 ldrh r0, [r4, 0x2E] ldrh r1, [r4, 0x30] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x30] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x14 bl Cos strh r0, [r4, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x14 bl Sin strh r0, [r4, 0x26] adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0813235E adds r0, r4, 0 bl DestroyAnimSprite _0813235E: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] pop {r4} pop {r0} bx r0 .align 2, 0 _0813236C: .4byte gAnimBankTarget thumb_func_end sub_8132318 thumb_func_start sub_8132370 sub_8132370: @ 8132370 push {r4,lr} adds r4, r0, 0 ldr r0, _081323A8 @ =gAnimBankTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _081323B4 ldr r2, _081323AC @ =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 strh r0, [r4, 0x20] ldrh r0, [r2, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldr r0, _081323B0 @ =0x0000fff5 strh r0, [r4, 0x2E] movs r0, 0xC0 strh r0, [r4, 0x30] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim b _081323CE .align 2, 0 _081323A8: .4byte gAnimBankTarget _081323AC: .4byte gBattleAnimArgs _081323B0: .4byte 0x0000fff5 _081323B4: movs r0, 0xB strh r0, [r4, 0x2E] movs r0, 0xC0 strh r0, [r4, 0x30] ldr r1, _081323D8 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] _081323CE: ldr r0, _081323DC @ =sub_8132318 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _081323D8: .4byte gBattleAnimArgs _081323DC: .4byte sub_8132318 thumb_func_end sub_8132370 thumb_func_start sub_81323E0 sub_81323E0: @ 81323E0 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _08132424 @ =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x2 bl sub_807A100 strh r0, [r5, 0x22] lsls r0, 16 asrs r0, 16 cmp r0, 0xF bgt _0813240A movs r0, 0x10 strh r0, [r5, 0x22] _0813240A: movs r0, 0 strh r0, [r5, 0x3A] movs r1, 0x10 strh r1, [r5, 0x3C] ldr r0, _08132428 @ =sub_8132430 str r0, [r5, 0x1C] ldr r0, _0813242C @ =REG_BLDALPHA lsls r1, 8 strh r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08132424: .4byte gAnimBankAttacker _08132428: .4byte sub_8132430 _0813242C: .4byte REG_BLDALPHA thumb_func_end sub_81323E0 thumb_func_start sub_8132430 sub_8132430: @ 8132430 push {r4,lr} adds r3, r0, 0 movs r0, 0x32 ldrsh r1, [r3, r0] cmp r1, 0x1 beq _081324A8 cmp r1, 0x1 bgt _08132446 cmp r1, 0 beq _08132450 b _08132522 _08132446: cmp r1, 0x2 beq _081324BE cmp r1, 0x3 beq _0813251C b _08132522 _08132450: ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _08132522 strh r1, [r3, 0x2E] ldrh r1, [r3, 0x30] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0813247A ldrh r2, [r3, 0x3A] movs r4, 0x3A ldrsh r0, [r3, r4] cmp r0, 0xF bgt _08132488 adds r0, r2, 0x1 strh r0, [r3, 0x3A] b _08132488 _0813247A: ldrh r2, [r3, 0x3C] movs r4, 0x3C ldrsh r0, [r3, r4] cmp r0, 0 beq _08132488 subs r0, r2, 0x1 strh r0, [r3, 0x3C] _08132488: adds r0, r1, 0x1 strh r0, [r3, 0x30] ldr r2, _081324A4 @ =REG_BLDALPHA ldrh r0, [r3, 0x3C] lsls r0, 8 ldrh r1, [r3, 0x3A] orrs r0, r1 strh r0, [r2] movs r1, 0x3C ldrsh r0, [r3, r1] cmp r0, 0 bne _08132522 b _08132510 .align 2, 0 _081324A4: .4byte REG_BLDALPHA _081324A8: ldrh r0, [r3, 0x2E] adds r0, 0x1 movs r1, 0 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _08132522 strh r1, [r3, 0x2E] strh r1, [r3, 0x30] b _08132510 _081324BE: ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _08132522 movs r0, 0 strh r0, [r3, 0x2E] ldrh r1, [r3, 0x30] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081324EA ldrh r2, [r3, 0x3A] movs r4, 0x3A ldrsh r0, [r3, r4] cmp r0, 0 beq _081324F8 subs r0, r2, 0x1 strh r0, [r3, 0x3A] b _081324F8 _081324EA: ldrh r2, [r3, 0x3C] movs r4, 0x3C ldrsh r0, [r3, r4] cmp r0, 0xF bgt _081324F8 adds r0, r2, 0x1 strh r0, [r3, 0x3C] _081324F8: adds r0, r1, 0x1 strh r0, [r3, 0x30] ldr r2, _08132518 @ =REG_BLDALPHA ldrh r0, [r3, 0x3C] lsls r0, 8 ldrh r1, [r3, 0x3A] orrs r0, r1 strh r0, [r2] movs r1, 0x3C ldrsh r0, [r3, r1] cmp r0, 0x10 bne _08132522 _08132510: ldrh r0, [r3, 0x32] adds r0, 0x1 strh r0, [r3, 0x32] b _08132522 .align 2, 0 _08132518: .4byte REG_BLDALPHA _0813251C: adds r0, r3, 0 bl move_anim_8074EE0 _08132522: pop {r4} pop {r0} bx r0 thumb_func_end sub_8132430 thumb_func_start sub_8132528 sub_8132528: @ 8132528 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r2, _08132544 @ =gBattleAnimArgs movs r0, 0 strh r0, [r2, 0xE] ldr r0, _08132548 @ =gWeatherMoveAnim ldrh r1, [r0] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _0813254C movs r0, 0x1 b _0813256E .align 2, 0 _08132544: .4byte gBattleAnimArgs _08132548: .4byte gWeatherMoveAnim _0813254C: movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _08132558 movs r0, 0x2 b _0813256E _08132558: movs r0, 0x18 ands r0, r1 cmp r0, 0 beq _08132564 movs r0, 0x3 b _0813256E _08132564: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08132570 movs r0, 0x4 _0813256E: strh r0, [r2, 0xE] _08132570: adds r0, r3, 0 bl DestroyAnimVisualTask pop {r0} bx r0 thumb_func_end sub_8132528 thumb_func_start sub_813257C sub_813257C: @ 813257C push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _081325B4 @ =gTasks adds r4, r0 movs r0, 0 strh r0, [r4, 0x8] ldr r0, _081325B8 @ =gBattleAnimArgs ldrb r0, [r0] bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 strh r1, [r4, 0x26] ldr r2, _081325BC @ =gUnknown_08402B28 adds r0, r4, 0 bl sub_80798F4 ldr r0, _081325C0 @ =sub_81325C4 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _081325B4: .4byte gTasks _081325B8: .4byte gBattleAnimArgs _081325BC: .4byte gUnknown_08402B28 _081325C0: .4byte sub_81325C4 thumb_func_end sub_813257C thumb_func_start sub_81325C4 sub_81325C4: @ 81325C4 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r2, _0813261C @ =gTasks adds r3, r0, r2 ldrh r0, [r3, 0x8] adds r1, r0, 0x1 movs r5, 0 strh r1, [r3, 0x8] subs r0, 0x10 lsls r0, 16 lsrs r0, 16 adds r6, r2, 0 cmp r0, 0x16 bhi _08132628 ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _08132638 strh r5, [r3, 0xA] ldrh r0, [r3, 0xC] adds r0, 0x1 strh r0, [r3, 0xC] movs r5, 0x1 ands r0, r5 cmp r0, 0 bne _08132628 ldr r2, _08132620 @ =gSprites movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _08132624 @ =0x0000ffff strh r1, [r0, 0x24] b _08132638 .align 2, 0 _0813261C: .4byte gTasks _08132620: .4byte gSprites _08132624: .4byte 0x0000ffff _08132628: ldr r2, _08132658 @ =gSprites movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r5, [r0, 0x24] _08132638: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r6 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _08132650 adds r0, r4, 0 bl DestroyAnimVisualTask _08132650: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08132658: .4byte gSprites thumb_func_end sub_81325C4 .align 2, 0 @ Don't pad with nop.