.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start unc_080B08A0 unc_080B08A0: @ 80B08A0 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080B08D0 @ =gBattleAnimArgs movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 bl SetAnimSpriteInitialXOffset ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] movs r0, 0xF strh r0, [r4, 0x2E] ldr r0, _080B08D4 @ =WaitAnimForDuration str r0, [r4, 0x1C] ldr r1, _080B08D8 @ =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B08D0: .4byte gBattleAnimArgs _080B08D4: .4byte WaitAnimForDuration _080B08D8: .4byte DestroyAnimSprite thumb_func_end unc_080B08A0 thumb_func_start sub_80B08DC sub_80B08DC: @ 80B08DC push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080B0920 @ =gBattleAnimArgs movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080B0904 ldr r0, _080B0924 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080B0904 ldrh r0, [r4, 0x2] negs r0, r0 strh r0, [r4, 0x2] ldrh r0, [r4, 0x6] negs r0, r0 strh r0, [r4, 0x6] _080B0904: ldr r4, _080B0920 @ =gBattleAnimArgs ldrb r1, [r4, 0xC] adds r0, r5, 0 bl StartSpriteAnim movs r0, 0 strh r0, [r4, 0xC] adds r0, r5, 0 bl sub_8075F0C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B0920: .4byte gBattleAnimArgs _080B0924: .4byte gBattleAnimAttacker thumb_func_end sub_80B08DC thumb_func_start sub_80B0928 sub_80B0928: @ 80B0928 push {r4,lr} adds r4, r0, 0 bl IsContest lsls r0, 24 cmp r0, 0 beq _080B0944 ldr r0, _080B0950 @ =gBattleAnimArgs ldrh r1, [r0, 0x2] negs r1, r1 strh r1, [r0, 0x2] ldrh r1, [r0, 0x6] negs r1, r1 strh r1, [r0, 0x6] _080B0944: adds r0, r4, 0 bl sub_80B08DC pop {r4} pop {r0} bx r0 .align 2, 0 _080B0950: .4byte gBattleAnimArgs thumb_func_end sub_80B0928 thumb_func_start sub_80B0954 sub_80B0954: @ 80B0954 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080B0974 @ =gBattleAnimArgs ldrb r1, [r4, 0x8] bl StartSpriteAnim movs r1, 0x6 ldrsh r0, [r4, r1] cmp r0, 0 bne _080B0978 adds r0, r5, 0 movs r1, 0x1 bl InitSpritePosToAnimAttacker b _080B0980 .align 2, 0 _080B0974: .4byte gBattleAnimArgs _080B0978: adds r0, r5, 0 movs r1, 0x1 bl InitSpritePosToAnimTarget _080B0980: ldr r0, _080B0998 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r5, 0x2E] ldr r0, _080B099C @ =WaitAnimForDuration str r0, [r5, 0x1C] ldr r1, _080B09A0 @ =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B0998: .4byte gBattleAnimArgs _080B099C: .4byte WaitAnimForDuration _080B09A0: .4byte DestroyAnimSprite thumb_func_end sub_80B0954 thumb_func_start sub_80B09A4 sub_80B09A4: @ 80B09A4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 ldr r0, _080B09C0 @ =gBattleAnimArgs movs r2, 0 ldrsh r1, [r0, r2] mov r9, r0 cmp r1, 0 bne _080B09C8 ldr r0, _080B09C4 @ =gBattleAnimAttacker b _080B09CA .align 2, 0 _080B09C0: .4byte gBattleAnimArgs _080B09C4: .4byte gBattleAnimAttacker _080B09C8: ldr r0, _080B0B10 @ =gBattleAnimTarget _080B09CA: ldrb r0, [r0] mov r8, r0 mov r4, r9 movs r3, 0x4 ldrsh r0, [r4, r3] cmp r0, 0 bge _080B09E8 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x5 bl __umodsi3 strh r0, [r4, 0x4] _080B09E8: ldrb r1, [r4, 0x4] adds r0, r5, 0 bl StartSpriteAnim mov r0, r8 movs r1, 0x2 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] mov r0, r8 movs r1, 0x3 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] mov r0, r8 movs r1, 0x1 bl GetBattlerSpriteCoordAttr lsls r0, 16 asrs r1, r0, 16 lsrs r0, 31 adds r1, r0 lsls r1, 15 lsrs r6, r1, 16 mov r0, r8 movs r1, 0 bl GetBattlerSpriteCoordAttr lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _080B0A32 adds r0, 0x3 _080B0A32: lsls r4, r0, 14 lsrs r4, 16 bl Random lsls r0, 16 lsrs r0, 16 lsls r1, r6, 16 asrs r1, 16 bl __modsi3 lsls r0, 16 lsrs r6, r0, 16 bl Random lsls r0, 16 lsrs r0, 16 lsls r4, 16 asrs r4, 16 adds r1, r4, 0 bl __modsi3 lsls r0, 16 lsrs r4, r0, 16 bl Random movs r7, 0x1 adds r1, r7, 0 ands r1, r0 cmp r1, 0 beq _080B0A74 lsls r0, r6, 16 negs r0, r0 lsrs r6, r0, 16 _080B0A74: bl Random adds r1, r7, 0 ands r1, r0 cmp r1, 0 beq _080B0A86 lsls r0, r4, 16 negs r0, r0 lsrs r4, r0, 16 _080B0A86: ldr r0, _080B0B14 @ =gBattlerPositions add r0, r8 ldrb r1, [r0] adds r0, r7, 0 ands r0, r1 cmp r0, 0 bne _080B0A9C lsls r0, r4, 16 ldr r1, _080B0B18 @ =0xfff00000 adds r0, r1 lsrs r4, r0, 16 _080B0A9C: lsls r0, r6, 16 asrs r0, 16 ldrh r2, [r5, 0x20] adds r0, r2 strh r0, [r5, 0x20] lsls r0, r4, 16 asrs r0, 16 ldrh r3, [r5, 0x22] adds r0, r3 strh r0, [r5, 0x22] mov r1, r9 ldrh r0, [r1, 0x2] strh r0, [r5, 0x2E] ldr r0, _080B0B1C @ =gBasicHitSplatSpriteTemplate movs r2, 0x20 ldrsh r1, [r5, r2] movs r3, 0x22 ldrsh r2, [r5, r3] adds r3, r5, 0 adds r3, 0x43 ldrb r3, [r3] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x3C] cmp r0, 0x40 beq _080B0B00 movs r0, 0x3C ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _080B0B20 @ =gSprites adds r0, r4 movs r1, 0 bl StartSpriteAffineAnim movs r2, 0x3C ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, _080B0B24 @ =SpriteCallbackDummy str r1, [r0] _080B0B00: ldr r0, _080B0B28 @ =sub_80B0B2C str r0, [r5, 0x1C] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B0B10: .4byte gBattleAnimTarget _080B0B14: .4byte gBattlerPositions _080B0B18: .4byte 0xfff00000 _080B0B1C: .4byte gBasicHitSplatSpriteTemplate _080B0B20: .4byte gSprites _080B0B24: .4byte SpriteCallbackDummy _080B0B28: .4byte sub_80B0B2C thumb_func_end sub_80B09A4 thumb_func_start sub_80B0B2C sub_80B0B2C: @ 80B0B2C push {r4,r5,lr} adds r5, r0, 0 ldrh r1, [r5, 0x2E] movs r2, 0x2E ldrsh r0, [r5, r2] cmp r0, 0 bne _080B0B74 movs r1, 0x3C ldrsh r0, [r5, r1] cmp r0, 0x40 beq _080B0B68 ldr r4, _080B0B70 @ =gSprites adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix movs r0, 0x3C ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite _080B0B68: adds r0, r5, 0 bl DestroyAnimSprite b _080B0B78 .align 2, 0 _080B0B70: .4byte gSprites _080B0B74: subs r0, r1, 0x1 strh r0, [r5, 0x2E] _080B0B78: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80B0B2C thumb_func_start sub_80B0B80 sub_80B0B80: @ 80B0B80 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl InitSpritePosToAnimTarget movs r0, 0x1E strh r0, [r4, 0x2E] ldr r0, _080B0BA0 @ =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 bne _080B0BA4 ldrh r0, [r4, 0x20] subs r0, 0x14 strh r0, [r4, 0x32] b _080B0BB6 .align 2, 0 _080B0BA0: .4byte gBattleAnimArgs _080B0BA4: ldrh r0, [r4, 0x20] adds r0, 0x14 strh r0, [r4, 0x32] adds r2, r4, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] _080B0BB6: ldrh r0, [r4, 0x22] subs r0, 0x14 strh r0, [r4, 0x36] ldr r0, _080B0BD0 @ =StartAnimLinearTranslation str r0, [r4, 0x1C] ldr r1, _080B0BD4 @ =sub_80B0BD8 adds r0, r4, 0 bl StoreSpriteCallbackInData6 pop {r4} pop {r0} bx r0 .align 2, 0 _080B0BD0: .4byte StartAnimLinearTranslation _080B0BD4: .4byte sub_80B0BD8 thumb_func_end sub_80B0B80 thumb_func_start sub_80B0BD8 sub_80B0BD8: @ 80B0BD8 push {r4-r6,lr} adds r5, r0, 0 ldrh r0, [r5, 0x38] adds r0, 0x1 movs r6, 0 strh r0, [r5, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0xB bne _080B0C18 ldrh r2, [r5, 0x20] ldrh r4, [r5, 0x24] subs r0, r2, r4 strh r0, [r5, 0x32] ldrh r1, [r5, 0x22] ldrh r3, [r5, 0x26] subs r0, r1, r3 strh r0, [r5, 0x36] movs r0, 0x8 strh r0, [r5, 0x2E] adds r2, r4 strh r2, [r5, 0x20] adds r1, r3 strh r1, [r5, 0x22] strh r6, [r5, 0x26] strh r6, [r5, 0x24] ldr r0, _080B0C20 @ =StartAnimLinearTranslation str r0, [r5, 0x1C] ldr r1, _080B0C24 @ =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 _080B0C18: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B0C20: .4byte StartAnimLinearTranslation _080B0C24: .4byte DestroyAnimSprite thumb_func_end sub_80B0BD8 thumb_func_start sub_80B0C28 sub_80B0C28: @ 80B0C28 push {r4-r6,lr} adds r6, r0, 0 ldr r0, _080B0CA4 @ =gBattleAnimAttacker ldrb r1, [r0] movs r0, 0x2 ldr r2, _080B0CA8 @ =gBattleAnimTarget eors r0, r1 ldrb r1, [r2] cmp r0, r1 bne _080B0C54 ldrb r0, [r2] bl GetBattlerPosition lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080B0C54 ldr r1, _080B0CAC @ =gBattleAnimArgs movs r2, 0 ldrsh r0, [r1, r2] negs r0, r0 strh r0, [r1] _080B0C54: adds r0, r6, 0 movs r1, 0x1 bl InitSpritePosToAnimTarget ldr r0, _080B0CA4 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080B0C72 ldr r1, _080B0CAC @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080B0C72: ldr r4, _080B0CAC @ =gBattleAnimArgs ldrh r0, [r4, 0x6] movs r5, 0 strh r0, [r6, 0x2E] ldrh r0, [r6, 0x20] strh r0, [r6, 0x30] ldrh r1, [r4, 0x4] adds r0, r1 strh r0, [r6, 0x32] ldrh r0, [r6, 0x22] strh r0, [r6, 0x34] strh r0, [r6, 0x36] adds r0, r6, 0 bl InitAnimLinearTranslation ldrh r0, [r4, 0xA] strh r0, [r6, 0x38] ldrh r0, [r4, 0x8] strh r0, [r6, 0x3A] strh r5, [r6, 0x3C] ldr r0, _080B0CB0 @ =sub_80B0CB4 str r0, [r6, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B0CA4: .4byte gBattleAnimAttacker _080B0CA8: .4byte gBattleAnimTarget _080B0CAC: .4byte gBattleAnimArgs _080B0CB0: .4byte sub_80B0CB4 thumb_func_end sub_80B0C28 thumb_func_start sub_80B0CB4 sub_80B0CB4: @ 80B0CB4 push {r4,lr} adds r4, r0, 0 bl AnimTranslateLinear lsls r0, 24 cmp r0, 0 bne _080B0CE0 ldrh r0, [r4, 0x3C] lsls r0, 16 asrs r0, 24 movs r2, 0x38 ldrsh r1, [r4, r2] bl Sin ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x3A] ldrh r2, [r4, 0x3C] adds r0, r2 strh r0, [r4, 0x3C] b _080B0CE6 _080B0CE0: adds r0, r4, 0 bl DestroyAnimSprite _080B0CE6: pop {r4} pop {r0} bx r0 thumb_func_end sub_80B0CB4 thumb_func_start sub_80B0CEC sub_80B0CEC: @ 80B0CEC push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 bl InitSpritePosToAnimTarget ldr r5, _080B0D18 @ =gBattleAnimArgs ldrb r1, [r5, 0x4] adds r0, r4, 0 bl StartSpriteAnim ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldr r0, _080B0D1C @ =WaitAnimForDuration str r0, [r4, 0x1C] ldr r1, _080B0D20 @ =sub_80B0D24 adds r0, r4, 0 bl StoreSpriteCallbackInData6 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B0D18: .4byte gBattleAnimArgs _080B0D1C: .4byte WaitAnimForDuration _080B0D20: .4byte sub_80B0D24 thumb_func_end sub_80B0CEC thumb_func_start sub_80B0D24 sub_80B0D24: @ 80B0D24 push {r4,lr} adds r4, r0, 0 movs r1, 0 bl StartSpriteAffineAnim adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] movs r0, 0x14 strh r0, [r4, 0x2E] ldr r0, _080B0D50 @ =WaitAnimForDuration str r0, [r4, 0x1C] ldr r1, _080B0D54 @ =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 pop {r4} pop {r0} bx r0 .align 2, 0 _080B0D50: .4byte WaitAnimForDuration _080B0D54: .4byte DestroyAnimSprite thumb_func_end sub_80B0D24 thumb_func_start sub_80B0D58 sub_80B0D58: @ 80B0D58 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl InitSpritePosToAnimTarget ldr r0, _080B0D74 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldr r0, _080B0D78 @ =sub_80B0D7C str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080B0D74: .4byte gBattleAnimArgs _080B0D78: .4byte sub_80B0D7C thumb_func_end sub_80B0D58 thumb_func_start sub_80B0D7C sub_80B0D7C: @ 80B0D7C push {r4,r5,lr} adds r5, r0, 0 ldrh r0, [r5, 0x2E] subs r0, 0x1 strh r0, [r5, 0x2E] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080B0DC0 movs r0, 0x6 strh r0, [r5, 0x2E] ldr r4, _080B0DC8 @ =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] ldr r0, _080B0DCC @ =StartAnimLinearTranslation str r0, [r5, 0x1C] ldr r1, _080B0DD0 @ =sub_80B0DD4 adds r0, r5, 0 bl StoreSpriteCallbackInData6 _080B0DC0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B0DC8: .4byte gBattleAnimTarget _080B0DCC: .4byte StartAnimLinearTranslation _080B0DD0: .4byte sub_80B0DD4 thumb_func_end sub_80B0D7C thumb_func_start sub_80B0DD4 sub_80B0DD4: @ 80B0DD4 push {lr} movs r1, 0xF strh r1, [r0, 0x2E] ldr r1, _080B0DE8 @ =WaitAnimForDuration str r1, [r0, 0x1C] ldr r1, _080B0DEC @ =DestroyAnimSprite bl StoreSpriteCallbackInData6 pop {r0} bx r0 .align 2, 0 _080B0DE8: .4byte WaitAnimForDuration _080B0DEC: .4byte DestroyAnimSprite thumb_func_end sub_80B0DD4 thumb_func_start sub_80B0DF0 sub_80B0DF0: @ 80B0DF0 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080B0E1C adds r0, r4, 0 movs r1, 0x1 bl InitSpritePosToAnimTarget ldr r1, _080B0E18 @ =gBattleAnimArgs ldrh r0, [r1, 0x4] strh r0, [r4, 0x30] ldrh r0, [r1, 0x6] strh r0, [r4, 0x32] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080B0E78 .align 2, 0 _080B0E18: .4byte gBattleAnimArgs _080B0E1C: ldrh r0, [r4, 0x30] ldrh r2, [r4, 0x36] adds r0, r2 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] movs r1, 0x34 ldrsh r0, [r4, r1] movs r2, 0x32 ldrsh r1, [r4, r2] bl Sin strh r0, [r4, 0x26] ldrh r0, [r4, 0x34] adds r0, 0x3 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x34] cmp r0, 0x64 ble _080B0E6A movs r0, 0x34 ldrsh r1, [r4, r0] lsrs r0, r1, 31 adds r0, r1, r0 asrs r0, 1 lsls r0, 1 subs r1, r0 adds r3, r4, 0 adds r3, 0x3E movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r3] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080B0E6A: movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0x78 ble _080B0E78 adds r0, r4, 0 bl DestroyAnimSprite _080B0E78: pop {r4} pop {r0} bx r0 thumb_func_end sub_80B0DF0 thumb_func_start sub_80B0E80 sub_80B0E80: @ 80B0E80 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080B0E94 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080B0E9C ldr r4, _080B0E98 @ =gBattleAnimAttacker b _080B0E9E .align 2, 0 _080B0E94: .4byte gBattleAnimArgs _080B0E98: .4byte gBattleAnimAttacker _080B0E9C: ldr r4, _080B0EE4 @ =gBattleAnimTarget _080B0E9E: ldrb r0, [r4] movs r1, 0 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r1, _080B0EE8 @ =gBattleAnimArgs ldrh r0, [r1, 0x2] ldrh r2, [r5, 0x20] adds r0, r2 movs r2, 0 strh r0, [r5, 0x20] ldrh r0, [r1, 0x4] ldrh r3, [r5, 0x22] adds r0, r3 strh r0, [r5, 0x22] strh r2, [r5, 0x2E] ldrh r0, [r1, 0x6] strh r0, [r5, 0x30] ldrh r0, [r1, 0x8] strh r0, [r5, 0x32] strh r2, [r5, 0x34] ldr r0, _080B0EEC @ =sub_80B0EF0 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B0EE4: .4byte gBattleAnimTarget _080B0EE8: .4byte gBattleAnimArgs _080B0EEC: .4byte sub_80B0EF0 thumb_func_end sub_80B0E80 thumb_func_start sub_80B0EF0 sub_80B0EF0: @ 80B0EF0 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] cmp r2, 0 beq _080B0F02 cmp r2, 0x1 beq _080B0F26 b _080B0F60 _080B0F02: ldrh r0, [r1, 0x30] subs r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 cmp r0, 0 bne _080B0F60 movs r2, 0x32 ldrsh r0, [r1, r2] cmp r0, 0 bne _080B0F1E adds r0, r1, 0 bl DestroyAnimSprite b _080B0F60 _080B0F1E: ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] b _080B0F60 _080B0F26: ldrh r0, [r1, 0x30] adds r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080B0F4E movs r0, 0 strh r0, [r1, 0x30] ldrh r0, [r1, 0x34] adds r0, 0x1 strh r0, [r1, 0x34] ands r0, r2 lsls r0, 16 cmp r0, 0 beq _080B0F4A movs r0, 0x2 b _080B0F4C _080B0F4A: ldr r0, _080B0F64 @ =0x0000fffe _080B0F4C: strh r0, [r1, 0x24] _080B0F4E: ldrh r0, [r1, 0x32] subs r0, 0x1 strh r0, [r1, 0x32] lsls r0, 16 cmp r0, 0 bne _080B0F60 adds r0, r1, 0 bl DestroyAnimSprite _080B0F60: pop {r0} bx r0 .align 2, 0 _080B0F64: .4byte 0x0000fffe thumb_func_end sub_80B0EF0 thumb_func_start sub_80B0F68 sub_80B0F68: @ 80B0F68 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _080B0F8C @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _080B0F94 ldr r4, _080B0F90 @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r2, [r6, 0x4] adds r0, r2 b _080B0FA6 .align 2, 0 _080B0F8C: .4byte gBattleAnimArgs _080B0F90: .4byte gBattleAnimAttacker _080B0F94: ldr r4, _080B0FF0 @ =gBattleAnimTarget ldrb r0, [r4] movs r1, 0 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x4] adds r0, r1 _080B0FA6: strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x6] adds r0, r6 strh r0, [r5, 0x22] ldrh r2, [r5, 0x4] lsls r1, r2, 22 lsrs r1, 22 ldr r3, _080B0FF4 @ =gBattleAnimArgs movs r4, 0x2 ldrsh r0, [r3, r4] lsls r0, 4 adds r1, r0 ldr r4, _080B0FF8 @ =0x000003ff adds r0, r4, 0 ands r1, r0 ldr r0, _080B0FFC @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] movs r1, 0 movs r0, 0 strh r0, [r5, 0x2E] movs r2, 0x2 ldrsh r0, [r3, r2] cmp r0, 0x1 beq _080B1014 cmp r0, 0x1 bgt _080B1000 cmp r0, 0 beq _080B100A b _080B103A .align 2, 0 _080B0FF0: .4byte gBattleAnimTarget _080B0FF4: .4byte gBattleAnimArgs _080B0FF8: .4byte 0x000003ff _080B0FFC: .4byte 0xfffffc00 _080B1000: cmp r0, 0x2 beq _080B1024 cmp r0, 0x3 beq _080B1034 b _080B103A _080B100A: ldr r0, _080B1010 @ =0x0000fffd b _080B1034 .align 2, 0 _080B1010: .4byte 0x0000fffd _080B1014: movs r0, 0x3 strh r0, [r5, 0x3A] ldr r0, _080B1020 @ =0x0000fffd strh r0, [r5, 0x3C] b _080B1042 .align 2, 0 _080B1020: .4byte 0x0000fffd _080B1024: ldr r0, _080B1030 @ =0x0000fffd strh r0, [r5, 0x3A] movs r0, 0x3 strh r0, [r5, 0x3C] b _080B1042 .align 2, 0 _080B1030: .4byte 0x0000fffd _080B1034: strh r0, [r5, 0x3A] strh r0, [r5, 0x3C] b _080B1042 _080B103A: adds r0, r5, 0 bl DestroyAnimSprite b _080B1046 _080B1042: ldr r0, _080B104C @ =sub_80B1050 str r0, [r5, 0x1C] _080B1046: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B104C: .4byte sub_80B1050 thumb_func_end sub_80B0F68 thumb_func_start sub_80B1050 sub_80B1050: @ 80B1050 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x3A] ldrh r2, [r1, 0x20] adds r0, r2 strh r0, [r1, 0x20] ldrh r0, [r1, 0x3C] ldrh r2, [r1, 0x22] adds r0, r2 strh r0, [r1, 0x22] ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x28 ble _080B1078 adds r0, r1, 0 bl DestroyAnimSprite _080B1078: pop {r0} bx r0 thumb_func_end sub_80B1050 thumb_func_start sub_80B107C sub_80B107C: @ 80B107C push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080B10C8 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080B10D8 ldr r4, _080B10CC @ =gBattlerAttacker ldrb r0, [r4] movs r1, 0x2 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r0, _080B10D0 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSpriteBGPriority movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r5, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] ldr r0, _080B10D4 @ =gBattleAnimTarget b _080B10F4 .align 2, 0 _080B10C8: .4byte gBattleAnimArgs _080B10CC: .4byte gBattlerAttacker _080B10D0: .4byte gBattleAnimAttacker _080B10D4: .4byte gBattleAnimTarget _080B10D8: ldr r0, _080B1110 @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSpriteBGPriority movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r5, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] ldr r0, _080B1114 @ =gBattleAnimAttacker _080B10F4: ldrb r0, [r0] strh r0, [r5, 0x3C] movs r0, 0 strh r0, [r5, 0x2E] movs r0, 0xC strh r0, [r5, 0x30] movs r0, 0x8 strh r0, [r5, 0x32] ldr r0, _080B1118 @ =sub_80B111C str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B1110: .4byte gBattleAnimTarget _080B1114: .4byte gBattleAnimAttacker _080B1118: .4byte sub_80B111C thumb_func_end sub_80B107C thumb_func_start sub_80B111C sub_80B111C: @ 80B111C 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, 0xB4 bne _080B1178 movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x10 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x3 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] adds r0, r4, 0 bl InitAnimLinearTranslation ldr r1, _080B1180 @ =DestroySpriteAndMatrix adds r0, r4, 0 bl StoreSpriteCallbackInData6 ldr r0, _080B1184 @ =sub_807563C str r0, [r4, 0x1C] _080B1178: pop {r4} pop {r0} bx r0 .align 2, 0 _080B1180: .4byte DestroySpriteAndMatrix _080B1184: .4byte sub_807563C thumb_func_end sub_80B111C thumb_func_start sub_80B1188 sub_80B1188: @ 80B1188 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080B11D4 @ =gBattleAnimArgs ldrh r0, [r4] strh r0, [r5, 0x20] movs r2, 0x78 strh r2, [r5, 0x22] ldrh r0, [r4, 0x6] strh r0, [r5, 0x2E] adds r0, r5, 0 adds r0, 0x36 adds r1, r5, 0 adds r1, 0x38 lsls r2, 8 bl StorePointerInVars ldrh r0, [r4, 0x2] strh r0, [r5, 0x3A] ldrh r2, [r5, 0x4] lsls r1, r2, 22 lsrs r1, 22 movs r3, 0x4 ldrsh r0, [r4, r3] lsls r0, 2 adds r1, r0 ldr r3, _080B11D8 @ =0x000003ff adds r0, r3, 0 ands r1, r0 ldr r0, _080B11DC @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] ldr r0, _080B11E0 @ =sub_80B11E4 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B11D4: .4byte gBattleAnimArgs _080B11D8: .4byte 0x000003ff _080B11DC: .4byte 0xfffffc00 _080B11E0: .4byte sub_80B11E4 thumb_func_end sub_80B1188 thumb_func_start sub_80B11E4 sub_80B11E4: @ 80B11E4 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 movs r1, 0x2E ldrsh r0, [r7, r1] cmp r0, 0 beq _080B1236 movs r2, 0x36 ldrsh r0, [r7, r2] movs r2, 0x38 ldrsh r1, [r7, r2] bl LoadPointerFromVars adds r4, r0, 0 movs r1, 0x3A ldrsh r0, [r7, r1] subs r4, r0 adds r0, r7, 0 adds r0, 0x36 adds r1, r7, 0 adds r1, 0x38 adds r2, r4, 0 bl StorePointerInVars asrs r4, 8 strh r4, [r7, 0x22] lsls r4, 16 asrs r4, 16 movs r0, 0x8 negs r0, r0 cmp r4, r0 bge _080B122E adds r0, r7, 0 bl DestroyAnimSprite b _080B128C _080B122E: ldrh r0, [r7, 0x2E] subs r0, 0x1 strh r0, [r7, 0x2E] b _080B128C _080B1236: ldr r4, _080B1298 @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 bl GetBattlerSpriteCoord adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldrb r0, [r4] movs r1, 0x3 bl GetBattlerSpriteCoord adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r2, _080B129C @ =gBattleAnimTarget mov r8, r2 ldrb r0, [r2] movs r1, 0x2 bl GetBattlerSpriteCoord adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 mov r1, r8 ldrb r0, [r1] movs r1, 0x3 bl GetBattlerSpriteCoord lsls r0, 24 subs r4, r6 strh r4, [r7, 0x2E] lsrs r0, 24 subs r0, r5 strh r0, [r7, 0x30] ldrh r0, [r7, 0x20] lsls r0, 4 strh r0, [r7, 0x32] ldrh r0, [r7, 0x22] lsls r0, 4 strh r0, [r7, 0x34] ldr r0, _080B12A0 @ =sub_80B12A4 str r0, [r7, 0x1C] _080B128C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B1298: .4byte gBattleAnimAttacker _080B129C: .4byte gBattleAnimTarget _080B12A0: .4byte sub_80B12A4 thumb_func_end sub_80B11E4 thumb_func_start sub_80B12A4 sub_80B12A4: @ 80B12A4 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x32] adds r0, r1 strh r0, [r2, 0x32] ldrh r1, [r2, 0x30] ldrh r3, [r2, 0x34] adds r1, r3 strh r1, [r2, 0x34] lsls r0, 16 asrs r0, 20 strh r0, [r2, 0x20] lsls r1, 16 asrs r3, r1, 20 strh r3, [r2, 0x22] adds r0, 0x8 lsls r0, 16 movs r1, 0x80 lsls r1, 17 cmp r0, r1 bhi _080B12DE adds r1, r3, 0 movs r0, 0x8 negs r0, r0 cmp r1, r0 blt _080B12DE cmp r1, 0x78 ble _080B12E4 _080B12DE: adds r0, r2, 0 bl DestroyAnimSprite _080B12E4: pop {r0} bx r0 thumb_func_end sub_80B12A4 thumb_func_start sub_80B12E8 sub_80B12E8: @ 80B12E8 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080B131C @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080B132C ldr r4, _080B1320 @ =gBattlerAttacker ldrb r0, [r4] movs r1, 0x2 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r0, _080B1324 @ =gBattleAnimTarget ldrb r4, [r0] ldr r0, _080B1328 @ =gBattleAnimAttacker b _080B1332 .align 2, 0 _080B131C: .4byte gBattleAnimArgs _080B1320: .4byte gBattlerAttacker _080B1324: .4byte gBattleAnimTarget _080B1328: .4byte gBattleAnimAttacker _080B132C: ldr r0, _080B1364 @ =gBattleAnimAttacker ldrb r4, [r0] ldr r0, _080B1368 @ =gBattleAnimTarget _080B1332: ldrb r0, [r0] bl GetBattlerSpriteBGPriority movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r5, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] bl IsContest lsls r0, 24 cmp r0, 0 beq _080B136C ldrb r2, [r5, 0x3] lsls r1, r2, 26 lsrs r1, 27 movs r0, 0x8 orrs r1, r0 lsls r1, 1 subs r0, 0x47 b _080B1386 .align 2, 0 _080B1364: .4byte gBattleAnimAttacker _080B1368: .4byte gBattleAnimTarget _080B136C: adds r0, r4, 0 bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080B138C ldrb r2, [r5, 0x3] lsls r1, r2, 26 lsrs r1, 27 movs r0, 0x18 orrs r1, r0 lsls r1, 1 subs r0, 0x57 _080B1386: ands r0, r2 orrs r0, r1 strb r0, [r5, 0x3] _080B138C: movs r0, 0x10 strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] adds r0, r4, 0 movs r1, 0x2 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] adds r0, r4, 0 movs r1, 0x3 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] adds r0, r5, 0 bl InitAnimLinearTranslation ldr r1, _080B13CC @ =DestroyAnimSprite adds r0, r5, 0 bl StoreSpriteCallbackInData6 ldr r0, _080B13D0 @ =sub_807563C str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B13CC: .4byte DestroyAnimSprite _080B13D0: .4byte sub_807563C thumb_func_end sub_80B12E8 thumb_func_start sub_80B13D4 sub_80B13D4: @ 80B13D4 push {r4,lr} adds r4, r0, 0 movs r0, 0x2E ldrsh r1, [r4, r0] movs r2, 0x36 ldrsh r0, [r4, r2] cmp r1, r0 bne _080B13EA adds r0, r4, 0 bl DestroyAnimSprite _080B13EA: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] pop {r4} pop {r0} bx r0 thumb_func_end sub_80B13D4 thumb_func_start sub_80B13F8 sub_80B13F8: @ 80B13F8 push {r4-r6,lr} adds r5, r0, 0 ldr r4, _080B1474 @ =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r1, _080B1478 @ =gBattleAnimArgs ldrh r0, [r1, 0x6] strh r0, [r5, 0x30] ldrh r0, [r1] strh r0, [r5, 0x32] ldrh r0, [r1, 0x2] strh r0, [r5, 0x34] ldrh r0, [r1, 0x4] strh r0, [r5, 0x36] ldr r0, _080B147C @ =gAnimMoveTurn ldrb r6, [r0] ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080B1442 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _080B1442: movs r0, 0x1 ands r6, r0 cmp r6, 0 beq _080B1456 ldrh r0, [r5, 0x32] negs r0, r0 strh r0, [r5, 0x32] ldrh r0, [r5, 0x30] adds r0, 0x1 strh r0, [r5, 0x30] _080B1456: ldrh r1, [r5, 0x30] lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnim ldrh r0, [r5, 0x32] strh r0, [r5, 0x24] ldrh r0, [r5, 0x34] strh r0, [r5, 0x26] ldr r0, _080B1480 @ =sub_80B13D4 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B1474: .4byte gBattleAnimTarget _080B1478: .4byte gBattleAnimArgs _080B147C: .4byte gAnimMoveTurn _080B1480: .4byte sub_80B13D4 thumb_func_end sub_80B13F8 thumb_func_start sub_80B1484 sub_80B1484: @ 80B1484 push {r4,lr} adds r4, r0, 0 ldr r0, _080B149C @ =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 bne _080B14A0 adds r0, r4, 0 movs r1, 0 bl InitSpritePosToAnimAttacker b _080B14A8 .align 2, 0 _080B149C: .4byte gBattleAnimArgs _080B14A0: adds r0, r4, 0 movs r1, 0 bl InitSpritePosToAnimTarget _080B14A8: bl IsContest lsls r0, 24 cmp r0, 0 beq _080B14BC adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnim b _080B14D2 _080B14BC: ldr r0, _080B14E4 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080B14D2 adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim _080B14D2: ldr r0, _080B14E8 @ =RunStoredCallbackWhenAnimEnds str r0, [r4, 0x1C] ldr r1, _080B14EC @ =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData6 pop {r4} pop {r0} bx r0 .align 2, 0 _080B14E4: .4byte gBattleAnimAttacker _080B14E8: .4byte RunStoredCallbackWhenAnimEnds _080B14EC: .4byte DestroyAnimSprite thumb_func_end sub_80B1484 thumb_func_start sub_80B14F0 sub_80B14F0: @ 80B14F0 push {r4,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080B152A ldrh r0, [r4, 0x30] adds r0, 0x28 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x30] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x2 bl Sin strh r0, [r4, 0x24] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x28 ble _080B152A adds r0, r4, 0 bl DestroyAnimSprite _080B152A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80B14F0 thumb_func_start sub_80B1530 sub_80B1530: @ 80B1530 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _080B1560 @ =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080B1568 cmp r0, 0x1 bgt _080B1582 cmp r0, 0 bne _080B1582 movs r0, 0 bl sub_8075458 ldr r0, _080B1564 @ =gBattleAnimArgs ldrh r0, [r0] strh r0, [r4, 0x18] b _080B157A .align 2, 0 _080B1560: .4byte gTasks _080B1564: .4byte gBattleAnimArgs _080B1568: ldrh r0, [r4, 0x18] subs r0, 0x1 strh r0, [r4, 0x18] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080B158E _080B157A: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080B158E _080B1582: movs r2, 0xA0 lsls r2, 3 adds r0, r2, 0 ldrh r1, [r4, 0x1A] adds r0, r1 strh r0, [r4, 0x1A] _080B158E: movs r2, 0xB0 lsls r2, 4 adds r0, r2, 0 ldrh r1, [r4, 0x1C] adds r0, r1 strh r0, [r4, 0x1C] ldr r0, _080B15BC @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080B15C4 ldr r1, _080B15C0 @ =gBattle_BG3_X ldrh r0, [r4, 0x1A] lsls r0, 16 asrs r0, 24 ldrh r2, [r1] adds r0, r2 strh r0, [r1] adds r7, r1, 0 b _080B15D4 .align 2, 0 _080B15BC: .4byte gBattleAnimTarget _080B15C0: .4byte gBattle_BG3_X _080B15C4: ldr r2, _080B1614 @ =gBattle_BG3_X ldrh r1, [r4, 0x1A] lsls r1, 16 asrs r1, 24 ldrh r0, [r2] subs r0, r1 strh r0, [r2] adds r7, r2, 0 _080B15D4: ldr r3, _080B1618 @ =gBattle_BG3_Y ldrh r2, [r4, 0x1C] lsls r0, r2, 16 asrs r0, 24 ldrh r1, [r3] adds r0, r1 strh r0, [r3] movs r0, 0xFF ldrb r1, [r4, 0x1A] movs r5, 0 strh r1, [r4, 0x1A] ands r0, r2 strh r0, [r4, 0x1C] ldr r0, _080B161C @ =gBattleAnimArgs movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080B160C strh r5, [r7] strh r5, [r3] movs r0, 0x1 bl sub_8075458 adds r0, r6, 0 bl DestroyAnimVisualTask _080B160C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B1614: .4byte gBattle_BG3_X _080B1618: .4byte gBattle_BG3_Y _080B161C: .4byte gBattleAnimArgs thumb_func_end sub_80B1530 .align 2, 0 @ Don't pad with nop.