pokeemerald/asm/battle_anim_80FE840.s
2018-09-15 00:30:20 +02:00

52268 lines
810 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_80FE840
sub_80FE840: @ 80FE840
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimArgs
ldrh r0, [r5]
ldrh r1, [r4, 0x20]
adds r0, r1
strh r0, [r4, 0x20]
ldrh r0, [r5, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x30]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080FE87C
ldrh r0, [r5, 0x8]
negs r0, r0
b _080FE87E
.pool
_080FE87C:
ldrh r0, [r5, 0x8]
_080FE87E:
strh r0, [r4, 0x34]
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0xA]
strh r0, [r4, 0x36]
ldr r0, =sub_80FE898
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FE840
thumb_func_start sub_80FE898
sub_80FE898: @ 80FE898
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x2E]
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r0, 0
ble _080FE8D4
subs r0, r1, 0x1
strh r0, [r4, 0x2E]
ldrh r1, [r4, 0x32]
lsls r0, r1, 16
asrs r0, 24
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x30]
adds r1, r0
strh r1, [r4, 0x32]
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r2, 0x34
ldrsh r1, [r4, r2]
bl Sin
strh r0, [r4, 0x24]
ldrh r0, [r4, 0x36]
ldrh r1, [r4, 0x38]
adds r0, r1
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x38]
b _080FE8DA
_080FE8D4:
adds r0, r4, 0
bl DestroyAnimSprite
_080FE8DA:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80FE898
thumb_func_start sub_80FE8E0
sub_80FE8E0: @ 80FE8E0
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r4, 0x1C]
ldr r1, =move_anim_8074EE0
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FE8E0
thumb_func_start sub_80FE930
sub_80FE930: @ 80FE930
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r5, =gBattleAnimArgs
ldrb r1, [r5, 0x6]
adds r0, r4, 0
bl StartSpriteAnim
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r4, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FE930
thumb_func_start sub_80FE988
sub_80FE988: @ 80FE988
push {r4-r6,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r6, =gBattleAnimArgs
ldrh r0, [r6, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
adds r0, r4, 0
bl obj_translate_based_on_private_1_2_3_4
ldrh r0, [r6, 0x6]
strh r0, [r4, 0x38]
ldr r1, =sub_80FE9E4
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FE988
thumb_func_start sub_80FE9E4
sub_80FE9E4: @ 80FE9E4
push {r4,lr}
adds r4, r0, 0
bl sub_80A6F3C
lsls r0, 24
cmp r0, 0
beq _080FE9FA
adds r0, r4, 0
bl DestroySprite
b _080FEA4E
_080FE9FA:
movs r1, 0x38
ldrsh r0, [r4, r1]
cmp r0, 0x7F
ble _080FEA14
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A82E4
adds r0, 0x1
b _080FEA1E
.pool
_080FEA14:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A82E4
adds r0, 0x6
_080FEA1E:
adds r1, r4, 0
adds r1, 0x43
strb r0, [r1]
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r1, 0x5
bl Sin
ldrh r1, [r4, 0x24]
adds r0, r1
strh r0, [r4, 0x24]
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r1, 0xE
bl Cos
ldrh r1, [r4, 0x26]
adds r0, r1
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x38]
adds r0, 0xF
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x38]
_080FEA4E:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FE9E4
thumb_func_start sub_80FEA58
sub_80FEA58: @ 80FEA58
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
ldr r1, =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r5, r0, r1
ldrh r0, [r5, 0x8]
subs r0, 0x1
movs r2, 0
strh r0, [r5, 0x8]
lsls r0, 16
asrs r0, 16
movs r1, 0x1
negs r1, r1
cmp r0, r1
bne _080FEAB2
ldrh r0, [r5, 0xA]
adds r0, 0x1
strh r0, [r5, 0xA]
movs r0, 0x6
strh r0, [r5, 0x8]
ldr r1, =gBattleAnimArgs
movs r0, 0xF
strh r0, [r1]
strh r2, [r1, 0x2]
movs r0, 0x50
strh r0, [r1, 0x4]
strh r2, [r1, 0x6]
ldr r4, =gUnknown_08592210
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A82E4
adds r3, r0, 0
adds r3, 0x1
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
movs r1, 0
movs r2, 0
bl CreateSpriteAndAnimate
_080FEAB2:
movs r1, 0xA
ldrsh r0, [r5, r1]
cmp r0, 0xF
bne _080FEAC0
adds r0, r6, 0
bl DestroyAnimVisualTask
_080FEAC0:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FEA58
thumb_func_start sub_80FEAD8
sub_80FEAD8: @ 80FEAD8
push {r4-r6,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A6980
ldr r6, =gBattleAnimArgs
ldrh r0, [r6, 0x6]
strh r0, [r4, 0x2E]
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
ldrh r0, [r6, 0x4]
strh r0, [r4, 0x38]
adds r0, r4, 0
bl sub_80A68D4
ldr r0, =sub_80FEB28
str r0, [r4, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FEAD8
thumb_func_start sub_80FEB28
sub_80FEB28: @ 80FEB28
push {r4,lr}
adds r4, r0, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
beq _080FEB3C
adds r0, r4, 0
bl DestroyAnimSprite
_080FEB3C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80FEB28
thumb_func_start sub_80FEB44
sub_80FEB44: @ 80FEB44
push {r4,r5,lr}
adds r5, r0, 0
bl Random2
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
movs r0, 0x7
ands r1, r0
adds r0, r5, 0
bl StartSpriteAnim
ldr r4, =gBattleAnimAttacker
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]
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080FEB90
ldrh r0, [r5, 0x20]
subs r0, 0x14
b _080FEB94
.pool
_080FEB90:
ldrh r0, [r5, 0x20]
adds r0, 0x14
_080FEB94:
strh r0, [r5, 0x20]
bl Random2
lsls r0, 16
lsrs r0, 16
movs r1, 0x1F
ands r0, r1
adds r0, 0x40
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
ldrh r0, [r5, 0x22]
strh r0, [r5, 0x34]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
adds r0, r5, 0
bl sub_80A7160
bl Random2
movs r1, 0xFF
ands r1, r0
strh r1, [r5, 0x38]
adds r0, r5, 0
adds r0, 0x43
ldrb r0, [r0]
strh r0, [r5, 0x3A]
ldr r1, =sub_80FEBFC
str r1, [r5, 0x1C]
adds r0, r5, 0
bl _call_via_r1
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FEB44
thumb_func_start sub_80FEBFC
sub_80FEBFC: @ 80FEBFC
push {r4,lr}
adds r4, r0, 0
bl sub_80A70E8
lsls r0, 24
cmp r0, 0
beq _080FEC12
adds r0, r4, 0
bl DestroyAnimSprite
b _080FEC42
_080FEC12:
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r1, 0xC
bl Cos
ldrh r1, [r4, 0x26]
adds r0, r1
strh r0, [r4, 0x26]
movs r1, 0x38
ldrsh r0, [r4, r1]
cmp r0, 0x7E
bgt _080FEC2E
ldrh r0, [r4, 0x3A]
b _080FEC32
_080FEC2E:
ldrh r0, [r4, 0x3A]
adds r0, 0x1
_080FEC32:
adds r1, r4, 0
adds r1, 0x43
strb r0, [r1]
ldrh r0, [r4, 0x38]
adds r0, 0x18
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x38]
_080FEC42:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80FEBFC
thumb_func_start sub_80FEC48
sub_80FEC48: @ 80FEC48
push {r4-r6,lr}
adds r6, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080FEC68
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080FEC68:
ldr r4, =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x4]
adds r0, r1
strh r0, [r6, 0x32]
ldrb r0, [r5]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x6]
adds r0, r1
strh r0, [r6, 0x36]
ldrh r0, [r4, 0xA]
strh r0, [r6, 0x38]
adds r0, r6, 0
bl sub_80A68D4
ldr r0, =sub_80FECB8
str r0, [r6, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FEC48
thumb_func_start sub_80FECB8
sub_80FECB8: @ 80FECB8
push {r4,lr}
adds r4, r0, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
beq _080FECE2
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
movs r0, 0xA
strh r0, [r4, 0x2E]
ldr r0, =sub_80A64B0
str r0, [r4, 0x1C]
ldr r1, =sub_80FECF0
adds r0, r4, 0
bl StoreSpriteCallbackInData6
_080FECE2:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FECB8
thumb_func_start sub_80FECF0
sub_80FECF0: @ 80FECF0
push {r4,lr}
adds r4, r0, 0
adds r2, r4, 0
adds r2, 0x3E
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r2]
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAnim
movs r0, 0x3C
strh r0, [r4, 0x2E]
ldr r0, =sub_80A64B0
str r0, [r4, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FECF0
thumb_func_start sub_80FED28
sub_80FED28: @ 80FED28
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A6980
ldr r5, =gBattleAnimArgs
ldrb r1, [r5, 0x8]
adds r0, r4, 0
bl StartSpriteAnim
movs r1, 0x8
ldrsh r0, [r5, r1]
cmp r0, 0x1
bne _080FED52
ldrb r0, [r4, 0x1]
movs r1, 0xD
negs r1, r1
ands r1, r0
movs r0, 0x4
orrs r1, r0
strb r1, [r4, 0x1]
_080FED52:
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x30]
ldr r1, =sub_80FED74
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FED28
thumb_func_start sub_80FED74
sub_80FED74: @ 80FED74
push {r4,lr}
adds r4, r0, 0
movs r1, 0x30
ldrsh r0, [r4, r1]
movs r1, 0x20
bl Sin
strh r0, [r4, 0x24]
movs r1, 0x30
ldrsh r0, [r4, r1]
movs r1, 0x3
negs r1, r1
bl Cos
ldrh r1, [r4, 0x32]
adds r1, 0x18
strh r1, [r4, 0x32]
lsls r1, 16
asrs r1, 24
adds r0, r1
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x30]
subs r0, 0x40
lsls r0, 16
lsrs r0, 16
cmp r0, 0x7F
bhi _080FEDC8
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8328
movs r1, 0x3
ands r1, r0
lsls r1, 2
ldrb r2, [r4, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r1
b _080FEDEC
.pool
_080FEDC8:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8328
adds r0, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x3
bls _080FEDDC
movs r2, 0x3
_080FEDDC:
movs r0, 0x3
ands r2, r0
lsls r2, 2
ldrb r1, [r4, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r1
orrs r0, r2
_080FEDEC:
strb r0, [r4, 0x5]
ldrh r0, [r4, 0x30]
adds r0, 0x2
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x30]
ldrh r0, [r4, 0x2E]
subs r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
movs r1, 0x1
negs r1, r1
cmp r0, r1
bne _080FEE10
adds r0, r4, 0
bl DestroyAnimSprite
_080FEE10:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FED74
thumb_func_start sub_80FEE1C
sub_80FEE1C: @ 80FEE1C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl IsContest
lsls r0, 24
cmp r0, 0
bne _080FEE36
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _080FEE3E
_080FEE36:
adds r0, r4, 0
bl DestroyAnimVisualTask
b _080FEE70
_080FEE3E:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080FEE60
movs r0, 0x2
movs r1, 0x4
movs r2, 0x3
bl SetAnimBgAttribute
b _080FEE6A
.pool
_080FEE60:
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
_080FEE6A:
adds r0, r4, 0
bl DestroyAnimVisualTask
_080FEE70:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80FEE1C
thumb_func_start sub_80FEE78
sub_80FEE78: @ 80FEE78
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0
bl sub_80A69CC
ldr r5, =gBattleAnimArgs
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r5, [r5, 0x4]
adds r0, r5
strh r0, [r4, 0x36]
adds r0, r4, 0
bl obj_translate_based_on_private_1_2_3_4
movs r0, 0x40
strh r0, [r4, 0x38]
ldr r1, =sub_80FEECC
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FEE78
thumb_func_start sub_80FEECC
sub_80FEECC: @ 80FEECC
push {r4,lr}
adds r4, r0, 0
bl sub_80A6F3C
lsls r0, 24
cmp r0, 0
bne _080FEF38
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r1, 0x20
bl Sin
ldrh r1, [r4, 0x24]
adds r0, r1
strh r0, [r4, 0x24]
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r1, 0x5
negs r1, r1
bl Cos
ldrh r1, [r4, 0x26]
adds r0, r1
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x38]
subs r0, 0x40
lsls r0, 16
lsrs r0, 16
cmp r0, 0x7F
bhi _080FEF18
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A82E4
subs r0, 0x1
b _080FEF22
.pool
_080FEF18:
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A82E4
adds r0, 0x1
_080FEF22:
adds r1, r4, 0
adds r1, 0x43
strb r0, [r1]
ldrh r0, [r4, 0x38]
adds r0, 0x5
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x38]
b _080FEF3E
.pool
_080FEF38:
adds r0, r4, 0
bl DestroyAnimSprite
_080FEF3E:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80FEECC
thumb_func_start sub_80FEF44
sub_80FEF44: @ 80FEF44
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r5, =gBattleAnimArgs
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r5, [r5, 0x4]
adds r0, r5
strh r0, [r4, 0x36]
adds r0, r4, 0
bl obj_translate_based_on_private_1_2_3_4
movs r0, 0x40
strh r0, [r4, 0x38]
ldr r1, =sub_80FEF98
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FEF44
thumb_func_start sub_80FEF98
sub_80FEF98: @ 80FEF98
push {r4,lr}
adds r4, r0, 0
bl sub_80A6F3C
lsls r0, 24
cmp r0, 0
bne _080FEFF0
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r1, 0x8
bl Sin
ldrh r1, [r4, 0x24]
adds r0, r1
strh r0, [r4, 0x24]
ldrh r1, [r4, 0x38]
adds r0, r1, 0
subs r0, 0x3B
lsls r0, 16
lsrs r0, 16
cmp r0, 0x4
bls _080FEFD0
adds r0, r1, 0
subs r0, 0xBB
lsls r0, 16
lsrs r0, 16
cmp r0, 0x4
bhi _080FEFE4
_080FEFD0:
ldrb r2, [r4, 0x3]
lsls r1, r2, 26
lsrs r1, 27
movs r0, 0x8
eors r1, r0
lsls r1, 1
subs r0, 0x47
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x3]
_080FEFE4:
ldrh r0, [r4, 0x38]
adds r0, 0x5
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x38]
b _080FEFF6
_080FEFF0:
adds r0, r4, 0
bl DestroyAnimSprite
_080FEFF6:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80FEF98
thumb_func_start sub_80FEFFC
sub_80FEFFC: @ 80FEFFC
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x2]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x32]
ldr r0, =sub_80FF044
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FEFFC
thumb_func_start sub_80FF044
sub_80FF044: @ 80FF044
push {lr}
adds r1, r0, 0
ldrh r0, [r1, 0x32]
movs r2, 0x32
ldrsh r3, [r1, r2]
cmp r3, 0
bne _080FF078
ldrh r0, [r1, 0x30]
movs r2, 0x1
ands r2, r0
cmp r2, 0
beq _080FF066
movs r0, 0x80
strh r0, [r1, 0x2E]
strh r3, [r1, 0x30]
strh r3, [r1, 0x32]
b _080FF06C
_080FF066:
strh r2, [r1, 0x2E]
strh r2, [r1, 0x30]
strh r2, [r1, 0x32]
_080FF06C:
ldr r0, =sub_80FF090
str r0, [r1, 0x1C]
b _080FF08C
.pool
_080FF078:
subs r0, 0x1
strh r0, [r1, 0x32]
ldrh r0, [r1, 0x2E]
ldrh r2, [r1, 0x20]
adds r0, r2
strh r0, [r1, 0x20]
ldrh r0, [r1, 0x30]
ldrh r2, [r1, 0x22]
adds r0, r2
strh r0, [r1, 0x22]
_080FF08C:
pop {r0}
bx r0
thumb_func_end sub_80FF044
thumb_func_start sub_80FF090
sub_80FF090: @ 80FF090
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080FF0B4
movs r1, 0x2E
ldrsh r0, [r4, r1]
movs r1, 0x19
bl Sin
negs r0, r0
b _080FF0BE
.pool
_080FF0B4:
movs r1, 0x2E
ldrsh r0, [r4, r1]
movs r1, 0x19
bl Sin
_080FF0BE:
strh r0, [r4, 0x24]
ldrh r0, [r4, 0x2E]
adds r0, 0x2
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
movs r1, 0x1
ands r0, r1
cmp r0, 0
bne _080FF0DE
ldrh r0, [r4, 0x26]
adds r0, 0x1
strh r0, [r4, 0x26]
_080FF0DE:
movs r1, 0x30
ldrsh r0, [r4, r1]
cmp r0, 0x50
ble _080FF0EC
adds r0, r4, 0
bl DestroyAnimSprite
_080FF0EC:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80FF090
thumb_func_start sub_80FF0F4
sub_80FF0F4: @ 80FF0F4
push {r4-r6,lr}
adds r5, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080FF114
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080FF114:
ldr r6, =gBattleAnimArgs
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
movs r1, 0xC
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080FF154
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6, 0x4]
adds r0, r1
strh r0, [r5, 0x32]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r6, [r6, 0x6]
adds r0, r6
b _080FF174
.pool
_080FF154:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
adds r3, r5, 0
adds r3, 0x36
movs r1, 0x1
bl sub_80A8924
ldrh r0, [r6, 0x4]
ldrh r1, [r5, 0x32]
adds r0, r1
strh r0, [r5, 0x32]
ldrh r0, [r6, 0x6]
ldrh r1, [r5, 0x36]
adds r0, r1
_080FF174:
strh r0, [r5, 0x36]
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0xA]
strh r0, [r5, 0x38]
adds r0, r5, 0
bl sub_80A68D4
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
adds r4, r0, 0
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
bne _080FF1AC
movs r0, 0x1
b _080FF1AE
.pool
_080FF1AC:
movs r0, 0
_080FF1AE:
strh r0, [r5, 0x2E]
ldr r0, =sub_80FF1C0
str r0, [r5, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FF0F4
thumb_func_start sub_80FF1C0
sub_80FF1C0: @ 80FF1C0
push {r4-r7,lr}
adds r6, r0, 0
movs r7, 0
ldrh r5, [r6, 0x2E]
ldrh r4, [r6, 0x3C]
movs r0, 0x1
strh r0, [r6, 0x2E]
adds r0, r6, 0
bl AnimateBallThrow
ldrh r0, [r6, 0x3C]
strh r5, [r6, 0x2E]
lsls r4, 16
asrs r4, 16
cmp r4, 0xC8
ble _080FF1F2
lsls r0, 16
asrs r0, 16
cmp r0, 0x37
bgt _080FF1F2
ldrh r0, [r6, 0x6]
cmp r0, 0
bne _080FF1F8
adds r0, 0x1
strh r0, [r6, 0x6]
_080FF1F2:
ldrh r0, [r6, 0x6]
cmp r0, 0
beq _080FF22A
_080FF1F8:
movs r1, 0x2E
ldrsh r0, [r6, r1]
cmp r0, 0
beq _080FF22A
adds r3, r6, 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]
ldrh r0, [r6, 0x6]
adds r0, 0x1
strh r0, [r6, 0x6]
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1E
bne _080FF22A
movs r7, 0x1
_080FF22A:
movs r2, 0x20
ldrsh r0, [r6, r2]
movs r2, 0x24
ldrsh r1, [r6, r2]
adds r0, r1
adds r0, 0x10
movs r1, 0x88
lsls r1, 1
cmp r0, r1
bhi _080FF254
movs r0, 0x22
ldrsh r1, [r6, r0]
movs r2, 0x26
ldrsh r0, [r6, r2]
adds r1, r0
cmp r1, 0xA0
bgt _080FF254
movs r0, 0x10
negs r0, r0
cmp r1, r0
bge _080FF256
_080FF254:
movs r7, 0x1
_080FF256:
cmp r7, 0
beq _080FF260
adds r0, r6, 0
bl DestroyAnimSprite
_080FF260:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80FF1C0
thumb_func_start sub_80FF268
sub_80FF268: @ 80FF268
push {r4,lr}
adds r4, r0, 0
bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080FF28A
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
adds r3, r4, 0
adds r3, 0x22
movs r1, 0x1
bl sub_80A8924
_080FF28A:
ldrh r0, [r4, 0x22]
adds r0, 0x20
strh r0, [r4, 0x22]
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x2]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x32]
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x34]
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x36]
ldr r0, =sub_80FF2BC
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FF268
thumb_func_start sub_80FF2BC
sub_80FF2BC: @ 80FF2BC
push {r4,r5,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x30]
movs r2, 0x30
ldrsh r0, [r4, r2]
cmp r0, 0xFF
bne _080FF2D2
ldrh r0, [r4, 0x22]
subs r0, 0x2
strh r0, [r4, 0x22]
b _080FF2E0
_080FF2D2:
cmp r0, 0
ble _080FF2E0
ldrh r0, [r4, 0x22]
subs r0, 0x2
strh r0, [r4, 0x22]
subs r0, r1, 0x2
strh r0, [r4, 0x30]
_080FF2E0:
ldrh r3, [r4, 0x32]
ldrh r5, [r4, 0x38]
adds r2, r3, r5
strh r2, [r4, 0x38]
movs r0, 0x2E
ldrsh r1, [r4, r0]
movs r5, 0x36
ldrsh r0, [r4, r5]
cmp r1, r0
bge _080FF2F8
adds r0, r2, r3
strh r0, [r4, 0x38]
_080FF2F8:
ldrh r1, [r4, 0x38]
movs r0, 0xFF
ands r0, r1
strh r0, [r4, 0x38]
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r2, 0x34
ldrsh r1, [r4, r2]
bl Cos
strh r0, [r4, 0x24]
movs r5, 0x38
ldrsh r0, [r4, r5]
movs r1, 0x5
bl Sin
strh r0, [r4, 0x26]
movs r1, 0x38
ldrsh r0, [r4, r1]
cmp r0, 0x7F
bgt _080FF338
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8328
lsls r0, 24
lsrs r0, 24
subs r0, 0x1
b _080FF346
.pool
_080FF338:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8328
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
_080FF346:
movs r1, 0x3
ands r0, r1
lsls r0, 2
ldrb r2, [r4, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r4, 0x5]
ldrh r0, [r4, 0x2E]
subs r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
cmp r0, 0
bne _080FF36A
adds r0, r4, 0
bl DestroyAnimSprite
_080FF36A:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FF2BC
thumb_func_start sub_80FF374
sub_80FF374: @ 80FF374
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0
bl sub_80A6980
adds r2, r5, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
ldr r4, =gBattleAnimArgs
ldrb r1, [r4, 0x4]
adds r0, r5, 0
bl StartSpriteAffineAnim
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x3A]
ldrh r0, [r4, 0x6]
strh r0, [r5, 0x3C]
ldr r0, =sub_80FF3B0
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FF374
thumb_func_start sub_80FF3B0
sub_80FF3B0: @ 80FF3B0
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, =0x0000ffff
cmp r1, r0
bne _080FF3DA
adds r2, r4, 0
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x7F
ands r0, r1
strb r0, [r2]
movs r0, 0x1
bl GetAnimBattlerSpriteId
movs r0, 0x80
lsls r0, 1
strh r0, [r4, 0x2E]
ldr r0, =sub_80FF3EC
str r0, [r4, 0x1C]
_080FF3DA:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FF3B0
thumb_func_start sub_80FF3EC
sub_80FF3EC: @ 80FF3EC
push {r4,lr}
adds r4, r0, 0
movs r0, 0x1
bl GetAnimBattlerSpriteId
movs r1, 0x32
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080FF404
ldrh r0, [r4, 0x2E]
adds r0, 0xB
b _080FF408
_080FF404:
ldrh r0, [r4, 0x2E]
subs r0, 0xB
_080FF408:
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x6
bne _080FF424
movs r0, 0
strh r0, [r4, 0x30]
ldrh r0, [r4, 0x32]
movs r1, 0x1
eors r0, r1
strh r0, [r4, 0x32]
_080FF424:
adds r0, r4, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _080FF452
ldrh r0, [r4, 0x3C]
subs r0, 0x1
strh r0, [r4, 0x3C]
lsls r0, 16
cmp r0, 0
ble _080FF44C
ldrh r1, [r4, 0x3A]
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl StartSpriteAffineAnim
b _080FF452
_080FF44C:
adds r0, r4, 0
bl DestroyAnimSprite
_080FF452:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80FF3EC
thumb_func_start sub_80FF458
sub_80FF458: @ 80FF458
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r1, r0, 24
ldr r0, =gSprites
mov r10, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
mov r2, r10
adds r7, r0, r2
adds r0, r7, 0
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 29
cmp r0, 0
bge _080FF498
adds r0, r4, 0
bl DestroyAnimVisualTask
b _080FF51C
.pool
_080FF498:
adds r0, r1, 0
movs r1, 0x1
bl sub_80A7270
ldr r0, =gTasks
lsls r6, r4, 2
adds r6, r4
lsls r6, 3
adds r6, r0
ldrb r0, [r7, 0x5]
lsls r0, 28
lsrs r0, 30
strh r0, [r6, 0x24]
ldr r0, =gBattleAnimTarget
mov r9, r0
ldrb r0, [r0]
bl sub_80A8328
movs r1, 0x3
mov r8, r1
mov r1, r8
ands r1, r0
lsls r1, 2
ldrb r2, [r7, 0x5]
movs r5, 0xD
negs r5, r5
adds r0, r5, 0
ands r0, r2
orrs r0, r1
strb r0, [r7, 0x5]
movs r0, 0x3
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r1, r0, 24
lsls r4, r1, 4
adds r4, r1
lsls r4, 2
add r4, r10
ldrb r0, [r4, 0x5]
lsls r0, 28
lsrs r0, 30
strh r0, [r6, 0x26]
mov r2, r9
ldrb r1, [r2]
movs r0, 0x2
eors r0, r1
bl sub_80A8328
mov r1, r8
ands r1, r0
lsls r1, 2
ldrb r0, [r4, 0x5]
ands r5, r0
orrs r5, r1
strb r5, [r4, 0x5]
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r6, 0x8]
ldrh r0, [r1, 0x2]
strh r0, [r6, 0xA]
movs r0, 0x80
lsls r0, 1
strh r0, [r6, 0x1E]
ldr r0, =sub_80FF53C
str r0, [r6]
_080FF51C:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FF458
thumb_func_start sub_80FF53C
sub_80FF53C: @ 80FF53C
push {r4-r6,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r4, r0, r1
ldrh r1, [r4, 0x8]
ldrh r0, [r4, 0x1C]
adds r1, r0
strh r1, [r4, 0x1C]
ldr r2, =gSprites
lsls r0, r6, 4
adds r0, r6
lsls r0, 2
adds r5, r0, r2
lsls r1, 16
asrs r1, 24
strh r1, [r5, 0x24]
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080FF586
ldrh r0, [r5, 0x24]
negs r0, r0
strh r0, [r5, 0x24]
_080FF586:
ldrh r0, [r4, 0x1E]
adds r0, 0x10
strh r0, [r4, 0x1E]
movs r0, 0x1E
ldrsh r2, [r4, r0]
adds r0, r6, 0
adds r1, r2, 0
movs r3, 0
bl obj_id_set_rotscale
adds r0, r6, 0
bl sub_80A7E6C
ldrh r0, [r4, 0xA]
subs r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0
bne _080FF5B4
strh r0, [r4, 0x8]
ldr r0, =sub_80FF5CC
str r0, [r4]
_080FF5B4:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FF53C
thumb_func_start sub_80FF5CC
sub_80FF5CC: @ 80FF5CC
push {r4-r7,lr}
lsls r0, 24
lsrs r3, r0, 24
ldr r0, =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, =0x0000ffff
cmp r1, r0
bne _080FF660
ldr r0, =gTasks
lsls r2, r3, 2
adds r1, r2, r3
lsls r1, 3
adds r7, r1, r0
movs r1, 0x8
ldrsh r5, [r7, r1]
adds r4, r0, 0
cmp r5, 0
bne _080FF674
movs r0, 0x1
bl GetAnimBattlerSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
bl sub_80A7344
ldr r6, =gSprites
lsls r1, r4, 4
adds r1, r4
lsls r1, 2
adds r1, r6
strh r5, [r1, 0x24]
strh r5, [r1, 0x26]
movs r5, 0x3
ldrh r2, [r7, 0x24]
ands r2, r5
lsls r2, 2
ldrb r3, [r1, 0x5]
movs r4, 0xD
negs r4, r4
adds r0, r4, 0
ands r0, r3
orrs r0, r2
strb r0, [r1, 0x5]
movs r0, 0x3
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r6
ldrh r0, [r7, 0x26]
ands r0, r5
lsls r0, 2
ldrb r2, [r1, 0x5]
ands r4, r2
orrs r4, r0
strb r4, [r1, 0x5]
ldrh r0, [r7, 0x8]
adds r0, 0x1
strh r0, [r7, 0x8]
b _080FF68E
.pool
_080FF660:
ldr r1, =gTasks
lsls r2, r3, 2
adds r0, r2, r3
lsls r0, 3
adds r0, r1
movs r4, 0x8
ldrsh r0, [r0, r4]
adds r4, r1, 0
cmp r0, 0
beq _080FF68E
_080FF674:
adds r1, r2, r3
lsls r1, 3
adds r1, r4
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3
bne _080FF68E
adds r0, r3, 0
bl DestroyAnimVisualTask
_080FF68E:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FF5CC
thumb_func_start sub_80FF698
sub_80FF698: @ 80FF698
push {r4-r6,lr}
adds r5, r0, 0
movs r1, 0x2E
ldrsh r0, [r5, r1]
cmp r0, 0
beq _080FF6AA
cmp r0, 0x1
beq _080FF704
b _080FF756
_080FF6AA:
ldr r6, =gBattleAnimTarget
ldrb r0, [r6]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080FF6C2
ldr r1, =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r1, r2]
negs r0, r0
strh r0, [r1]
_080FF6C2:
ldrb r0, [r6]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =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 r4, [r4, 0x2]
adds r0, r4
strh r0, [r5, 0x22]
adds r2, r5, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldrh r0, [r5, 0x2E]
adds r0, 0x1
strh r0, [r5, 0x2E]
b _080FF756
.pool
_080FF704:
adds r2, r5, 0
adds r2, 0x3E
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r2]
adds r0, r5, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _080FF756
adds r0, r5, 0
movs r1, 0x1
bl ChangeSpriteAffineAnim
movs r0, 0x19
strh r0, [r5, 0x2E]
ldr r4, =gBattleAnimAttacker
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, =sub_80A70C0
str r0, [r5, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
_080FF756:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FF698
thumb_func_start sub_80FF768
sub_80FF768: @ 80FF768
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x2E
ldrsh r0, [r5, r1]
cmp r0, 0
bne _080FF7D4
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
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 r4, =gBattleAnimArgs
ldrh r0, [r4]
strh r0, [r5, 0x24]
ldrh r0, [r4, 0x2]
strh r0, [r5, 0x26]
ldrb r0, [r4, 0x4]
adds r0, 0x1E
adds r1, r5, 0
adds r1, 0x43
strb r0, [r1]
ldrb r1, [r4, 0x6]
adds r0, r5, 0
bl StartSpriteAnim
ldrh r0, [r4, 0x8]
strh r0, [r5, 0x32]
ldrh r0, [r5, 0x2E]
adds r0, 0x1
strh r0, [r5, 0x2E]
movs r2, 0x22
ldrsh r0, [r5, r2]
movs r2, 0x26
ldrsh r1, [r5, r2]
adds r0, r1
cmp r0, 0x78
ble _080FF7D4
ldrh r0, [r5, 0x22]
adds r1, r0, 0
subs r1, 0x78
ldrh r2, [r5, 0x26]
adds r0, r2
adds r1, r0
strh r1, [r5, 0x22]
_080FF7D4:
ldr r0, =sub_80FF8DC
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FF768
thumb_func_start sub_80FF7EC
sub_80FF7EC: @ 80FF7EC
push {r4-r6,lr}
mov r6, r10
mov r5, r9
mov r4, r8
push {r4-r6}
sub sp, 0x4
mov r9, r0
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
mov r8, r0
mov r0, r8
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r6, =gBattleAnimTarget
ldrb r0, [r6]
movs r1, 0x2
bl GetBattlerSpriteCoord
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldrb r0, [r6]
movs r1, 0x3
bl GetBattlerSpriteCoord
adds r2, r0, 0
lsls r2, 24
subs r4, r5
lsls r4, 16
lsrs r2, 24
mov r1, r8
subs r2, r1
lsls r2, 16
lsrs r2, 16
lsrs r3, r4, 16
mov r10, r3
asrs r4, 16
ldr r6, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
muls r0, r4
movs r1, 0x64
str r2, [sp]
bl __divsi3
adds r5, r0
mov r3, r9
strh r5, [r3, 0x20]
ldr r2, [sp]
lsls r0, r2, 16
asrs r0, 16
movs r3, 0
ldrsh r1, [r6, r3]
muls r0, r1
movs r1, 0x64
bl __divsi3
add r8, r0
mov r1, r8
mov r0, r9
strh r1, [r0, 0x22]
ldrh r0, [r6, 0x2]
mov r3, r9
strh r0, [r3, 0x24]
ldrh r0, [r6, 0x4]
strh r0, [r3, 0x26]
ldrb r0, [r6, 0x6]
adds r0, 0x1E
mov r1, r9
adds r1, 0x43
strb r0, [r1]
ldrb r1, [r6, 0x8]
mov r0, r9
bl StartSpriteAnim
ldrh r0, [r6, 0xA]
mov r1, r9
strh r0, [r1, 0x32]
ldr r0, =sub_80FF8DC
str r0, [r1, 0x1C]
ldr r1, =gUnknown_0203A0F8
mov r3, r9
ldrh r0, [r3, 0x20]
strh r0, [r1]
ldrh r0, [r3, 0x22]
strh r0, [r1, 0x2]
mov r0, r10
strh r0, [r1, 0x4]
ldr r2, [sp]
strh r2, [r1, 0x6]
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FF7EC
thumb_func_start sub_80FF8DC
sub_80FF8DC: @ 80FF8DC
push {lr}
adds r3, r0, 0
ldrh r1, [r3, 0x2E]
adds r1, 0x1
strh r1, [r3, 0x2E]
lsls r1, 16
asrs r1, 16
movs r2, 0x32
ldrsh r0, [r3, r2]
subs r0, 0xA
cmp r1, r0
ble _080FF91C
movs r0, 0x2E
ldrsh r1, [r3, r0]
lsrs r0, r1, 31
adds r0, r1, r0
asrs r0, 1
lsls r0, 1
subs r1, r0
movs r2, 0x3E
adds r2, r3
mov r12, r2
movs r0, 0x1
ands r1, r0
lsls r1, 2
ldrb r2, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r2
orrs r0, r1
mov r1, r12
strb r0, [r1]
_080FF91C:
movs r2, 0x2E
ldrsh r1, [r3, r2]
movs r2, 0x32
ldrsh r0, [r3, r2]
cmp r1, r0
ble _080FF92E
adds r0, r3, 0
bl DestroyAnimSprite
_080FF92E:
pop {r0}
bx r0
thumb_func_end sub_80FF8DC
thumb_func_start sub_80FF934
sub_80FF934: @ 80FF934
push {r4-r6,lr}
adds r6, r0, 0
movs r1, 0x2E
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080FF974
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
ldrh r2, [r4]
adds r0, r2
strh r0, [r6, 0x20]
ldrb r0, [r5]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x2]
adds r0, r1
strh r0, [r6, 0x22]
ldrh r0, [r4, 0x4]
strh r0, [r6, 0x30]
ldrh r0, [r4, 0x6]
strh r0, [r6, 0x32]
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x34]
_080FF974:
ldrh r0, [r6, 0x2E]
adds r0, 0x1
strh r0, [r6, 0x2E]
ldrh r1, [r6, 0x30]
muls r0, r1
strh r0, [r6, 0x24]
movs r2, 0x2E
ldrsh r1, [r6, r2]
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
movs r1, 0xFF
ands r0, r1
movs r2, 0x32
ldrsh r1, [r6, r2]
bl Sin
strh r0, [r6, 0x26]
movs r0, 0x2E
ldrsh r1, [r6, r0]
movs r2, 0x34
ldrsh r0, [r6, r2]
cmp r1, r0
ble _080FF9AA
adds r0, r6, 0
bl DestroyAnimSprite
_080FF9AA:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FF934
thumb_func_start sub_80FF9B8
sub_80FF9B8: @ 80FF9B8
push {r4,r5,lr}
movs r2, 0x20
ldrsh r4, [r0, r2]
lsls r4, 8
movs r3, 0x22
ldrsh r2, [r0, r3]
orrs r4, r2
movs r5, 0x3A
ldrsh r2, [r0, r5]
lsls r2, 8
movs r5, 0x3C
ldrsh r3, [r0, r5]
orrs r2, r3
lsls r1, 8
strh r4, [r0, 0x38]
strh r2, [r0, 0x3A]
strh r1, [r0, 0x3C]
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80FF9B8
thumb_func_start sub_80FF9E0
sub_80FF9E0: @ 80FF9E0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
mov r8, r0
ldrh r0, [r0, 0x38]
lsrs r1, r0, 8
mov r10, r1
lsls r0, 24
lsrs r0, 24
mov r9, r0
mov r1, r8
ldrh r0, [r1, 0x3A]
lsrs r2, r0, 8
lsls r0, 24
lsrs r4, r0, 24
ldrh r1, [r1, 0x3C]
lsls r0, r1, 16
asrs r0, 24
lsls r0, 16
lsrs r6, r0, 16
movs r3, 0xFF
ands r3, r1
cmp r2, 0
bne _080FFA1A
movs r2, 0x20
negs r2, r2
b _080FFA22
_080FFA1A:
cmp r2, 0xFF
bne _080FFA22
movs r2, 0x88
lsls r2, 1
_080FFA22:
mov r0, r9
subs r4, r0
lsls r4, 16
lsrs r4, 16
mov r1, r10
subs r0, r2, r1
lsls r5, r3, 16
asrs r5, 16
muls r0, r5
lsls r1, r6, 16
asrs r7, r1, 16
adds r1, r7, 0
bl __divsi3
adds r6, r0, 0
lsls r4, 16
asrs r4, 16
adds r0, r4, 0
muls r0, r5
adds r1, r7, 0
bl __divsi3
add r6, r10
mov r1, r8
strh r6, [r1, 0x20]
add r0, r9
strh r0, [r1, 0x22]
adds r5, 0x1
lsls r5, 16
lsrs r3, r5, 16
asrs r5, 16
cmp r5, r7
beq _080FFA74
lsls r1, r7, 8
lsls r0, r3, 16
asrs r0, 16
orrs r0, r1
mov r1, r8
strh r0, [r1, 0x3C]
movs r0, 0
b _080FFA76
_080FFA74:
movs r0, 0x1
_080FFA76:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80FF9E0
thumb_func_start sub_80FFA84
sub_80FFA84: @ 80FFA84
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0xA
bne _080FFA98
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
_080FFA98:
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x32
ble _080FFAAC
adds r0, r4, 0
bl DestroyAnimSprite
_080FFAAC:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80FFA84
thumb_func_start sub_80FFAB4
sub_80FFAB4: @ 80FFAB4
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x34
ldrsh r0, [r4, r1]
lsls r0, 7
movs r2, 0x36
ldrsh r1, [r4, r2]
bl __divsi3
ldrh r1, [r4, 0x2E]
adds r1, r0
movs r5, 0
strh r1, [r4, 0x2E]
lsls r1, 16
asrs r1, 16
cmp r1, 0x7F
ble _080FFADE
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
strh r5, [r4, 0x2E]
_080FFADE:
ldrh r0, [r4, 0x2E]
adds r0, 0x80
lsls r0, 16
asrs r0, 16
movs r1, 0x30
ldrsh r2, [r4, r1]
lsls r2, 3
movs r1, 0x1E
subs r1, r2
lsls r1, 16
asrs r1, 16
bl Sin
strh r0, [r4, 0x26]
adds r0, r4, 0
bl sub_80FF9E0
lsls r0, 24
cmp r0, 0
beq _080FFB0E
strh r5, [r4, 0x26]
strh r5, [r4, 0x2E]
ldr r0, =sub_80FFA84
str r0, [r4, 0x1C]
_080FFB0E:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FFAB4
thumb_func_start sub_80FFB18
sub_80FFB18: @ 80FFB18
push {r4-r6,lr}
adds r5, r0, 0
movs r1, 0
bl sub_80A69CC
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r4]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r2, r0, 24
ldr r0, =gBattleAnimAttacker
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
ldrb r4, [r4]
cmp r0, r4
bne _080FFB68
strh r6, [r5, 0x3A]
adds r0, r2, 0
adds r0, 0xA
strh r0, [r5, 0x3C]
adds r0, r5, 0
movs r1, 0x3C
bl sub_80FF9B8
movs r0, 0x1
b _080FFB7A
.pool
_080FFB68:
strh r6, [r5, 0x3A]
adds r0, r2, 0
adds r0, 0xA
strh r0, [r5, 0x3C]
adds r0, r5, 0
movs r1, 0x3C
bl sub_80FF9B8
movs r0, 0x3
_080FFB7A:
strh r0, [r5, 0x34]
movs r0, 0x3C
strh r0, [r5, 0x36]
ldr r0, =sub_80FFAB4
str r0, [r5, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FFB18
thumb_func_start sub_80FFB90
sub_80FFB90: @ 80FFB90
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x34
ldrsh r0, [r4, r1]
lsls r0, 7
movs r2, 0x36
ldrsh r1, [r4, r2]
bl __divsi3
ldrh r1, [r4, 0x2E]
adds r1, r0
movs r5, 0
strh r1, [r4, 0x2E]
lsls r1, 16
asrs r1, 16
cmp r1, 0x7F
ble _080FFBBA
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
strh r5, [r4, 0x2E]
_080FFBBA:
ldrh r0, [r4, 0x2E]
adds r0, 0x80
lsls r0, 16
asrs r0, 16
movs r1, 0x30
ldrsh r2, [r4, r1]
lsls r2, 3
movs r1, 0x1E
subs r1, r2
lsls r1, 16
asrs r1, 16
bl Sin
strh r0, [r4, 0x26]
adds r0, r4, 0
bl sub_80FF9E0
lsls r0, 24
cmp r0, 0
beq _080FFBEC
strh r5, [r4, 0x26]
strh r5, [r4, 0x2E]
adds r0, r4, 0
bl DestroyAnimSprite
_080FFBEC:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80FFB90
thumb_func_start sub_80FFBF4
sub_80FFBF4: @ 80FFBF4
push {r4-r6,lr}
adds r5, r0, 0
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _080FFC38
strh r0, [r5, 0x3A]
adds r0, r6, 0
adds r0, 0xA
strh r0, [r5, 0x3C]
adds r0, r5, 0
movs r1, 0x28
bl sub_80FF9B8
movs r0, 0x3
strh r0, [r5, 0x34]
movs r0, 0x3C
strh r0, [r5, 0x36]
ldr r0, =sub_80FFAB4
b _080FFC62
.pool
_080FFC38:
movs r0, 0xFF
strh r0, [r5, 0x3A]
adds r0, r6, 0
adds r0, 0xA
strh r0, [r5, 0x3C]
bl IsContest
lsls r0, 24
cmp r0, 0
beq _080FFC50
movs r0, 0
strh r0, [r5, 0x3A]
_080FFC50:
adds r0, r5, 0
movs r1, 0x28
bl sub_80FF9B8
movs r0, 0x3
strh r0, [r5, 0x34]
movs r0, 0x3C
strh r0, [r5, 0x36]
ldr r0, =sub_80FFB90
_080FFC62:
str r0, [r5, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FFBF4
thumb_func_start sub_80FFC70
sub_80FFC70: @ 80FFC70
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080FFC8A
adds r0, r4, 0
movs r1, 0
bl sub_80A6980
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x30]
_080FFC8A:
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
ldrh r1, [r4, 0x30]
muls r0, r1
strh r0, [r4, 0x26]
adds r0, r4, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _080FFCAA
adds r0, r4, 0
bl DestroyAnimSprite
_080FFCAA:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FFC70
thumb_func_start sub_80FFCB4
sub_80FFCB4: @ 80FFCB4
push {r4-r6,lr}
adds r5, r0, 0
movs r1, 0
bl sub_80A6980
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r4]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r2, r0, 24
ldr r0, =gBattleAnimTarget
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
ldrb r4, [r4]
cmp r0, r4
bne _080FFD04
strh r6, [r5, 0x3A]
adds r0, r2, 0
adds r0, 0xA
strh r0, [r5, 0x3C]
adds r0, r5, 0
movs r1, 0x3C
bl sub_80FF9B8
movs r0, 0x1
b _080FFD16
.pool
_080FFD04:
strh r6, [r5, 0x3A]
adds r0, r2, 0
adds r0, 0xA
strh r0, [r5, 0x3C]
adds r0, r5, 0
movs r1, 0x3C
bl sub_80FF9B8
movs r0, 0x3
_080FFD16:
strh r0, [r5, 0x34]
movs r0, 0x3C
strh r0, [r5, 0x36]
ldr r0, =sub_80FFD2C
str r0, [r5, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FFCB4
thumb_func_start sub_80FFD2C
sub_80FFD2C: @ 80FFD2C
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x34
ldrsh r0, [r4, r1]
lsls r0, 7
movs r2, 0x36
ldrsh r1, [r4, r2]
bl __divsi3
ldrh r1, [r4, 0x2E]
adds r1, r0
movs r5, 0
strh r1, [r4, 0x2E]
lsls r1, 16
asrs r1, 16
cmp r1, 0x7F
ble _080FFD56
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
strh r5, [r4, 0x2E]
_080FFD56:
ldrh r0, [r4, 0x2E]
adds r0, 0x80
lsls r0, 16
asrs r0, 16
movs r1, 0x30
ldrsh r2, [r4, r1]
lsls r2, 3
movs r1, 0x1E
subs r1, r2
lsls r1, 16
asrs r1, 16
bl Sin
strh r0, [r4, 0x26]
lsls r0, 16
cmp r0, 0
bne _080FFD8A
movs r0, 0x3F
bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
movs r0, 0x7D
bl PlaySE12WithPanning
_080FFD8A:
adds r0, r4, 0
bl sub_80FF9E0
lsls r0, 24
cmp r0, 0
beq _080FFDB2
strh r5, [r4, 0x26]
strh r5, [r4, 0x2E]
ldr r0, =sub_80FFA84
str r0, [r4, 0x1C]
movs r0, 0x40
negs r0, r0
bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
movs r0, 0x7D
bl PlaySE12WithPanning
_080FFDB2:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FFD2C
thumb_func_start sub_80FFDBC
sub_80FFDBC: @ 80FFDBC
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080FFE50
bl IsContest
lsls r0, 24
cmp r0, 0
bne _080FFDE4
ldr r0, =gBattleAnimArgs
ldrh r1, [r0, 0x2]
strh r1, [r4, 0x30]
movs r1, 0x78
strh r1, [r4, 0x20]
adds r5, r0, 0
b _080FFE06
.pool
_080FFDE4:
ldr r0, =gBattleAnimArgs
movs r1, 0x2
ldrsh r3, [r0, r1]
adds r1, r3, 0
subs r1, 0x20
adds r2, r1, 0
adds r5, r0, 0
cmp r1, 0
bge _080FFDFA
adds r2, r3, 0
adds r2, 0xDF
_080FFDFA:
asrs r0, r2, 8
lsls r0, 8
subs r0, r1, r0
strh r0, [r4, 0x30]
movs r0, 0x46
strh r0, [r4, 0x20]
_080FFE06:
ldrh r0, [r5]
strh r0, [r4, 0x22]
strh r0, [r4, 0x32]
movs r0, 0x14
strh r0, [r4, 0x36]
movs r1, 0x30
ldrsh r0, [r4, r1]
movs r1, 0x3C
bl Cos
strh r0, [r4, 0x24]
movs r1, 0x30
ldrsh r0, [r4, r1]
movs r1, 0x14
bl Sin
strh r0, [r4, 0x26]
ldr r0, =sub_80FFE58
str r0, [r4, 0x1C]
ldrh r0, [r4, 0x30]
subs r0, 0x1
lsls r0, 16
lsrs r0, 16
cmp r0, 0xBE
bhi _080FFE48
adds r1, r4, 0
adds r1, 0x43
movs r0, 0x1F
b _080FFE4E
.pool
_080FFE48:
adds r1, r4, 0
adds r1, 0x43
movs r0, 0x1D
_080FFE4E:
strb r0, [r1]
_080FFE50:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80FFDBC
thumb_func_start sub_80FFE58
sub_80FFE58: @ 80FFE58
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x34
ldrsh r0, [r4, r1]
cmp r0, 0
beq _080FFE6A
cmp r0, 0x1
beq _080FFE9A
b _080FFEBA
_080FFE6A:
ldrh r5, [r4, 0x32]
movs r1, 0x32
ldrsh r0, [r4, r1]
cmp r0, 0x4E
ble _080FFE82
movs r0, 0x1
strh r0, [r4, 0x34]
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
b _080FFEBA
_080FFE82:
movs r1, 0x36
ldrsh r0, [r4, r1]
movs r1, 0xA
bl __divsi3
adds r0, r5, r0
strh r0, [r4, 0x32]
ldrh r1, [r4, 0x36]
adds r1, 0x3
strh r1, [r4, 0x36]
strh r0, [r4, 0x22]
b _080FFEBA
_080FFE9A:
movs r1, 0x34
ldrsh r0, [r4, r1]
cmp r0, 0
beq _080FFEBA
adds r0, r4, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _080FFEBA
movs r0, 0
strh r0, [r4, 0x2E]
strh r0, [r4, 0x32]
ldr r0, =sub_80FFEC4
str r0, [r4, 0x1C]
_080FFEBA:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FFE58
thumb_func_start sub_80FFEC4
sub_80FFEC4: @ 80FFEC4
push {r4-r6,lr}
adds r4, r0, 0
ldr r5, =gUnknown_08592700
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 1
adds r3, r0, r1
adds r0, r5, 0x1
adds r0, r3, r0
ldrh r2, [r4, 0x32]
movs r6, 0x32
ldrsh r1, [r4, r6]
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
cmp r1, r0
bne _080FFF10
adds r0, r5, 0x2
adds r0, r3, r0
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
cmp r0, 0x7F
bne _080FFEFC
movs r0, 0
strh r0, [r4, 0x2E]
ldr r0, =sub_80FFF7C
str r0, [r4, 0x1C]
_080FFEFC:
movs r0, 0
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
b _080FFF76
.pool
_080FFF10:
adds r0, r2, 0x1
strh r0, [r4, 0x32]
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 1
adds r0, r1
adds r1, r0, r5
movs r2, 0
ldrsb r2, [r1, r2]
adds r1, r5, 0x2
adds r0, r1
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
muls r0, r2
ldrh r1, [r4, 0x30]
adds r0, r1
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x30]
bl IsContest
lsls r0, 24
cmp r0, 0
bne _080FFF5E
ldrh r0, [r4, 0x30]
subs r0, 0x1
lsls r0, 16
lsrs r0, 16
cmp r0, 0xBE
bhi _080FFF56
adds r1, r4, 0
adds r1, 0x43
movs r0, 0x1F
b _080FFF5C
_080FFF56:
adds r1, r4, 0
adds r1, 0x43
movs r0, 0x1D
_080FFF5C:
strb r0, [r1]
_080FFF5E:
movs r6, 0x30
ldrsh r0, [r4, r6]
movs r1, 0x3C
bl Cos
strh r0, [r4, 0x24]
movs r1, 0x30
ldrsh r0, [r4, r1]
movs r1, 0x14
bl Sin
strh r0, [r4, 0x26]
_080FFF76:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80FFEC4
thumb_func_start sub_80FFF7C
sub_80FFF7C: @ 80FFF7C
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0x14
ble _080FFF8E
adds r0, r4, 0
bl DestroyAnimSprite
_080FFF8E:
movs r0, 0x2E
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]
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80FFF7C
thumb_func_start sub_80FFFC0
sub_80FFFC0: @ 80FFFC0
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, =gTasks
adds r5, r0, r1
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
bl sub_80A82E4
lsls r0, 24
lsrs r0, 24
subs r0, 0x1
strh r0, [r5, 0x10]
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x14]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x16]
ldrb r0, [r4]
movs r1, 0x1
bl sub_80A861C
strh r0, [r5, 0x1C]
ldrb r0, [r4]
movs r1, 0
bl sub_80A861C
strh r0, [r5, 0x1E]
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
movs r2, 0x1
negs r2, r2
adds r1, r2, 0
cmp r0, 0x1
bne _08100028
movs r1, 0x1
_08100028:
strh r1, [r5, 0x12]
movs r3, 0x12
ldrsh r0, [r5, r3]
lsls r0, 6
movs r1, 0x38
subs r1, r0
strh r1, [r5, 0x1A]
ldrh r0, [r5, 0x16]
subs r0, r1
ldrh r1, [r5, 0x14]
adds r0, r1
strh r0, [r5, 0x18]
ldr r0, =gUnknown_08592778
movs r2, 0x18
ldrsh r1, [r5, r2]
movs r3, 0x1A
ldrsh r2, [r5, r3]
ldrb r3, [r5, 0x10]
bl CreateSprite
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0xC]
cmp r0, 0x40
bne _08100060
adds r0, r6, 0
bl DestroyAnimVisualTask
_08100060:
ldr r4, =gSprites
movs r0, 0xC
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0xA
strh r1, [r0, 0x2E]
movs r2, 0xC
ldrsh r1, [r5, r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrh r1, [r5, 0x18]
strh r1, [r0, 0x30]
movs r3, 0xC
ldrsh r0, [r5, r3]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r4
movs r1, 0x1C
ldrsh r0, [r5, r1]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
adds r0, 0xA
movs r3, 0x12
ldrsh r1, [r5, r3]
muls r1, r0
ldrh r0, [r5, 0x14]
subs r0, r1
strh r0, [r2, 0x32]
movs r0, 0xC
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrh r1, [r5, 0x1A]
strh r1, [r0, 0x34]
movs r1, 0xC
ldrsh r0, [r5, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
movs r2, 0x1E
ldrsh r0, [r5, r2]
lsrs r2, r0, 31
adds r0, r2
asrs r0, 1
adds r0, 0xA
movs r3, 0x12
ldrsh r2, [r5, r3]
muls r0, r2
ldrh r2, [r5, 0x16]
adds r0, r2
strh r0, [r1, 0x36]
movs r3, 0xC
ldrsh r1, [r5, r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl sub_8100504
movs r1, 0xC
ldrsh r2, [r5, r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r4
strh r0, [r1, 0x38]
movs r2, 0xC
ldrsh r1, [r5, r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl sub_80A68D4
ldr r0, =sub_8100128
str r0, [r5]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80FFFC0
thumb_func_start sub_8100128
sub_8100128: @ 8100128
push {r4-r6,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r6, r0, r1
movs r0, 0xC
ldrsh r1, [r6, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r4, r0, r1
movs r1, 0x8
ldrsh r5, [r6, r1]
cmp r5, 0x7
bne _08100150
b _08100380
_08100150:
cmp r5, 0x7
bgt _0810019E
cmp r5, 0x3
bne _0810015A
b _08100272
_0810015A:
cmp r5, 0x3
bgt _08100174
cmp r5, 0x1
beq _08100204
cmp r5, 0x1
bgt _08100254
cmp r5, 0
beq _081001E6
b _081004FC
.pool
_08100174:
cmp r5, 0x5
bne _0810017A
b _081002E8
_0810017A:
cmp r5, 0x5
ble _08100180
b _08100362
_08100180:
adds r0, r6, 0
adds r1, r2, 0
bl sub_8100524
adds r0, r4, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
bne _08100196
b _081004FC
_08100196:
movs r0, 0x5
strh r0, [r6, 0x26]
movs r0, 0xFF
b _081004FA
_0810019E:
cmp r5, 0xB
bne _081001A4
b _08100464
_081001A4:
cmp r5, 0xB
bgt _081001D2
cmp r5, 0x9
bne _081001AE
b _081003D2
_081001AE:
cmp r5, 0x9
ble _081001B4
b _08100448
_081001B4:
adds r0, r6, 0
adds r1, r2, 0
bl sub_8100524
adds r0, r4, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
bne _081001CA
b _081004FC
_081001CA:
movs r0, 0x9
strh r0, [r6, 0x26]
movs r0, 0xFF
b _081004FA
_081001D2:
cmp r5, 0xD
bne _081001D8
b _081004D6
_081001D8:
cmp r5, 0xD
bge _081001DE
b _081004B6
_081001DE:
cmp r5, 0xFF
bne _081001E4
b _081004E6
_081001E4:
b _081004FC
_081001E6:
adds r0, r6, 0
adds r1, r2, 0
bl sub_8100524
adds r0, r4, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
bne _081001FC
b _081004FC
_081001FC:
movs r0, 0x1
strh r0, [r6, 0x26]
movs r0, 0xFF
b _081004FA
_08100204:
ldrh r2, [r4, 0x24]
ldrh r3, [r4, 0x20]
adds r2, r3
movs r0, 0
strh r2, [r4, 0x20]
ldrh r1, [r4, 0x26]
ldrh r3, [r4, 0x22]
adds r1, r3
strh r1, [r4, 0x22]
strh r0, [r4, 0x24]
strh r0, [r4, 0x26]
movs r0, 0xA
strh r0, [r4, 0x2E]
strh r2, [r4, 0x30]
ldrh r0, [r6, 0x14]
strh r0, [r4, 0x32]
strh r1, [r4, 0x34]
ldrh r0, [r6, 0x16]
strh r0, [r4, 0x36]
adds r0, r4, 0
bl sub_8100504
strh r0, [r4, 0x38]
ldrh r0, [r6, 0x10]
adds r0, 0x2
strh r0, [r6, 0x10]
strh r5, [r6, 0xE]
adds r1, r4, 0
adds r1, 0x43
strb r0, [r1]
ldrb r1, [r6, 0xE]
adds r0, r4, 0
bl StartSpriteAnim
adds r0, r4, 0
bl sub_80A68D4
ldrh r0, [r6, 0x8]
adds r0, 0x1
b _081004FA
_08100254:
adds r0, r6, 0
adds r1, r2, 0
bl sub_8100524
adds r0, r4, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
bne _0810026A
b _081004FC
_0810026A:
movs r0, 0x3
strh r0, [r6, 0x26]
movs r0, 0xFF
b _081004FA
_08100272:
ldrh r1, [r4, 0x24]
ldrh r0, [r4, 0x20]
adds r1, r0
movs r0, 0
strh r1, [r4, 0x20]
ldrh r2, [r4, 0x26]
ldrh r3, [r4, 0x22]
adds r2, r3
strh r2, [r4, 0x22]
strh r0, [r4, 0x24]
strh r0, [r4, 0x26]
movs r0, 0xA
strh r0, [r4, 0x2E]
strh r1, [r4, 0x30]
movs r1, 0x1C
ldrsh r0, [r6, r1]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
adds r0, 0xA
movs r3, 0x12
ldrsh r1, [r6, r3]
muls r1, r0
ldrh r0, [r6, 0x14]
subs r0, r1
strh r0, [r4, 0x32]
strh r2, [r4, 0x34]
movs r1, 0x1E
ldrsh r0, [r6, r1]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
adds r0, 0xA
movs r2, 0x12
ldrsh r1, [r6, r2]
muls r1, r0
ldrh r0, [r6, 0x16]
subs r0, r1
strh r0, [r4, 0x36]
adds r0, r4, 0
bl sub_8100504
strh r0, [r4, 0x38]
movs r0, 0x2
strh r0, [r6, 0xE]
ldrh r0, [r6, 0x10]
adds r1, r4, 0
adds r1, 0x43
strb r0, [r1]
ldrb r1, [r6, 0xE]
adds r0, r4, 0
bl StartSpriteAnim
adds r0, r4, 0
bl sub_80A68D4
ldrh r0, [r6, 0x8]
adds r0, 0x1
b _081004FA
_081002E8:
ldrh r1, [r4, 0x24]
ldrh r3, [r4, 0x20]
adds r1, r3
movs r0, 0
strh r1, [r4, 0x20]
ldrh r2, [r4, 0x26]
ldrh r3, [r4, 0x22]
adds r2, r3
strh r2, [r4, 0x22]
strh r0, [r4, 0x24]
strh r0, [r4, 0x26]
movs r0, 0xA
strh r0, [r4, 0x2E]
strh r1, [r4, 0x30]
movs r1, 0x1C
ldrsh r0, [r6, r1]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
adds r0, 0xA
movs r3, 0x12
ldrsh r1, [r6, r3]
muls r0, r1
ldrh r1, [r6, 0x14]
adds r0, r1
strh r0, [r4, 0x32]
strh r2, [r4, 0x34]
movs r2, 0x1E
ldrsh r0, [r6, r2]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
adds r0, 0xA
movs r3, 0x12
ldrsh r1, [r6, r3]
muls r0, r1
ldrh r1, [r6, 0x16]
adds r0, r1
strh r0, [r4, 0x36]
adds r0, r4, 0
bl sub_8100504
strh r0, [r4, 0x38]
ldrh r1, [r6, 0x10]
subs r1, 0x2
strh r1, [r6, 0x10]
movs r0, 0x3
strh r0, [r6, 0xE]
adds r0, r4, 0
adds r0, 0x43
strb r1, [r0]
ldrb r1, [r6, 0xE]
adds r0, r4, 0
bl StartSpriteAnim
adds r0, r4, 0
bl sub_80A68D4
ldrh r0, [r6, 0x8]
adds r0, 0x1
b _081004FA
_08100362:
adds r0, r6, 0
adds r1, r2, 0
bl sub_8100524
adds r0, r4, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
bne _08100378
b _081004FC
_08100378:
movs r0, 0x7
strh r0, [r6, 0x26]
movs r0, 0xFF
b _081004FA
_08100380:
ldrh r2, [r4, 0x24]
ldrh r3, [r4, 0x20]
adds r2, r3
movs r0, 0
strh r2, [r4, 0x20]
ldrh r1, [r4, 0x26]
ldrh r3, [r4, 0x22]
adds r1, r3
strh r1, [r4, 0x22]
strh r0, [r4, 0x24]
strh r0, [r4, 0x26]
movs r0, 0xA
strh r0, [r4, 0x2E]
strh r2, [r4, 0x30]
ldrh r0, [r6, 0x14]
strh r0, [r4, 0x32]
strh r1, [r4, 0x34]
ldrh r0, [r6, 0x16]
strh r0, [r4, 0x36]
adds r0, r4, 0
bl sub_8100504
strh r0, [r4, 0x38]
ldrh r1, [r6, 0x10]
adds r1, 0x2
strh r1, [r6, 0x10]
movs r0, 0x4
strh r0, [r6, 0xE]
adds r0, r4, 0
adds r0, 0x43
strb r1, [r0]
ldrb r1, [r6, 0xE]
adds r0, r4, 0
bl StartSpriteAnim
adds r0, r4, 0
bl sub_80A68D4
ldrh r0, [r6, 0x8]
adds r0, 0x1
b _081004FA
_081003D2:
ldrh r1, [r4, 0x24]
ldrh r0, [r4, 0x20]
adds r1, r0
movs r0, 0
strh r1, [r4, 0x20]
ldrh r2, [r4, 0x26]
ldrh r3, [r4, 0x22]
adds r2, r3
strh r2, [r4, 0x22]
strh r0, [r4, 0x24]
strh r0, [r4, 0x26]
movs r0, 0xA
strh r0, [r4, 0x2E]
strh r1, [r4, 0x30]
movs r1, 0x1C
ldrsh r0, [r6, r1]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
adds r0, 0xA
movs r3, 0x12
ldrsh r1, [r6, r3]
muls r1, r0
ldrh r0, [r6, 0x14]
subs r0, r1
strh r0, [r4, 0x32]
strh r2, [r4, 0x34]
movs r1, 0x1E
ldrsh r0, [r6, r1]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
adds r0, 0xA
movs r2, 0x12
ldrsh r1, [r6, r2]
muls r0, r1
ldrh r3, [r6, 0x16]
adds r0, r3
strh r0, [r4, 0x36]
adds r0, r4, 0
bl sub_8100504
strh r0, [r4, 0x38]
movs r0, 0x5
strh r0, [r6, 0xE]
ldrh r0, [r6, 0x10]
adds r1, r4, 0
adds r1, 0x43
strb r0, [r1]
ldrb r1, [r6, 0xE]
adds r0, r4, 0
bl StartSpriteAnim
adds r0, r4, 0
bl sub_80A68D4
ldrh r0, [r6, 0x8]
adds r0, 0x1
b _081004FA
_08100448:
adds r0, r6, 0
adds r1, r2, 0
bl sub_8100524
adds r0, r4, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
beq _081004FC
movs r0, 0xB
strh r0, [r6, 0x26]
movs r0, 0xFF
b _081004FA
_08100464:
ldrh r2, [r4, 0x24]
ldrh r0, [r4, 0x20]
adds r2, r0
movs r0, 0
strh r2, [r4, 0x20]
ldrh r1, [r4, 0x26]
ldrh r3, [r4, 0x22]
adds r1, r3
strh r1, [r4, 0x22]
strh r0, [r4, 0x24]
strh r0, [r4, 0x26]
movs r0, 0xA
strh r0, [r4, 0x2E]
strh r2, [r4, 0x30]
ldrh r0, [r6, 0x18]
strh r0, [r4, 0x32]
strh r1, [r4, 0x34]
ldrh r0, [r6, 0x1A]
strh r0, [r4, 0x36]
adds r0, r4, 0
bl sub_8100504
strh r0, [r4, 0x38]
ldrh r1, [r6, 0x10]
subs r1, 0x2
strh r1, [r6, 0x10]
movs r0, 0x6
strh r0, [r6, 0xE]
adds r0, r4, 0
adds r0, 0x43
strb r1, [r0]
ldrb r1, [r6, 0xE]
adds r0, r4, 0
bl StartSpriteAnim
adds r0, r4, 0
bl sub_80A68D4
ldrh r0, [r6, 0x8]
adds r0, 0x1
b _081004FA
_081004B6:
adds r0, r6, 0
adds r1, r2, 0
bl sub_8100524
adds r0, r4, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
beq _081004FC
adds r0, r4, 0
bl DestroySprite
ldrh r0, [r6, 0x8]
adds r0, 0x1
b _081004FA
_081004D6:
movs r1, 0x20
ldrsh r0, [r6, r1]
cmp r0, 0
bne _081004FC
adds r0, r2, 0
bl DestroyAnimVisualTask
b _081004FC
_081004E6:
ldrh r0, [r6, 0xA]
adds r0, 0x1
strh r0, [r6, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x5
ble _081004FC
movs r0, 0
strh r0, [r6, 0xA]
ldrh r0, [r6, 0x26]
_081004FA:
strh r0, [r6, 0x8]
_081004FC:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8100128
thumb_func_start sub_8100504
sub_8100504: @ 8100504
push {lr}
movs r2, 0x8
movs r3, 0x36
ldrsh r1, [r0, r3]
movs r3, 0x22
ldrsh r0, [r0, r3]
cmp r1, r0
bge _0810051A
negs r0, r2
lsls r0, 16
lsrs r2, r0, 16
_0810051A:
lsls r0, r2, 16
asrs r0, 16
pop {r1}
bx r1
thumb_func_end sub_8100504
thumb_func_start sub_8100524
sub_8100524: @ 8100524
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
lsls r1, 24
lsrs r7, r1, 24
ldrh r0, [r6, 0x24]
adds r0, 0x1
strh r0, [r6, 0x24]
lsls r0, 16
cmp r0, 0
ble _081005BA
movs r0, 0
strh r0, [r6, 0x24]
ldr r0, =gSprites
mov r8, r0
movs r2, 0xC
ldrsh r1, [r6, r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r8
ldrh r1, [r0, 0x24]
ldrh r2, [r0, 0x20]
adds r1, r2
ldrh r2, [r0, 0x26]
ldrh r0, [r0, 0x22]
adds r2, r0
ldr r0, =gUnknown_08592778
lsls r1, 16
asrs r1, 16
lsls r2, 16
asrs r2, 16
ldrb r3, [r6, 0x10]
bl CreateSprite
lsls r0, 24
lsrs r0, 24
cmp r0, 0x40
beq _081005BA
lsls r5, r0, 4
adds r5, r0
lsls r5, 2
mov r0, r8
adds r4, r5, r0
strh r7, [r4, 0x3A]
movs r0, 0xC
strh r0, [r4, 0x3C]
ldr r0, =gTasks
lsls r1, r7, 2
adds r1, r7
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x20]
adds r0, 0x1
strh r0, [r1, 0x20]
ldrh r2, [r6, 0x22]
movs r0, 0x1
ands r0, r2
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x22]
adds r0, 0x1
strh r0, [r1, 0x22]
ldrb r1, [r6, 0xE]
adds r0, r4, 0
bl StartSpriteAnim
ldrh r0, [r6, 0x10]
adds r4, 0x43
strb r0, [r4]
mov r0, r8
adds r0, 0x1C
adds r5, r0
ldr r0, =sub_81005D4
str r0, [r5]
_081005BA:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8100524
thumb_func_start sub_81005D4
sub_81005D4: @ 81005D4
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, 0x1
ble _08100636
movs r0, 0
strh r0, [r4, 0x2E]
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]
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x8
ble _08100636
ldr r3, =gTasks
movs r0, 0x3C
ldrsh r1, [r4, r0]
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 DestroySprite
_08100636:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81005D4
thumb_func_start sub_8100640
sub_8100640: @ 8100640
push {r4-r7,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0xC
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810065C
ldr r0, =gBattleAnimAttacker
b _0810065E
.pool
_0810065C:
ldr r0, =gBattleAnimTarget
_0810065E:
ldrb r6, [r0]
adds r0, r6, 0
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08100688
movs r0, 0
strh r0, [r4, 0x36]
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x32]
ldr r0, =0x0000fff0
b _08100698
.pool
_08100688:
movs r0, 0x1
strh r0, [r4, 0x36]
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x6]
negs r0, r0
strh r0, [r4, 0x32]
movs r0, 0x80
lsls r0, 1
_08100698:
strh r0, [r4, 0x20]
adds r7, r1, 0
adds r5, r7, 0
ldrh r0, [r5, 0x2]
strh r0, [r4, 0x30]
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r5, 0x8]
strh r0, [r4, 0x34]
movs r1, 0xA
ldrsh r0, [r5, r1]
cmp r0, 0x1
beq _081006CE
cmp r0, 0x1
bgt _081006C0
cmp r0, 0
beq _081006CA
b _08100738
.pool
_081006C0:
cmp r0, 0x2
beq _081006D4
cmp r0, 0x3
beq _08100700
b _08100738
_081006CA:
ldrh r0, [r5]
b _081006E4
_081006CE:
ldrh r0, [r5]
strh r0, [r4, 0x22]
b _0810071A
_081006D4:
adds r0, r6, 0
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r5, [r5]
adds r0, r5
_081006E4:
strh r0, [r4, 0x22]
adds r0, r6, 0
bl sub_80A8328
movs r1, 0x3
ands r1, r0
lsls r1, 2
ldrb r2, [r4, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x5]
b _08100738
_08100700:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r7, [r7]
adds r0, r7
strh r0, [r4, 0x22]
movs r0, 0x1
bl GetAnimBattlerSpriteId
_0810071A:
adds r0, r6, 0
bl sub_80A8328
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
movs r1, 0x3
ands r0, r1
lsls r0, 2
ldrb r2, [r4, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r4, 0x5]
_08100738:
ldr r0, =sub_810074C
str r0, [r4, 0x1C]
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8100640
thumb_func_start sub_810074C
sub_810074C: @ 810074C
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x3C
ldrsh r3, [r4, r0]
ldrh r0, [r4, 0x3C]
adds r0, 0x1
strh r0, [r4, 0x3C]
movs r1, 0x30
ldrsh r2, [r4, r1]
ldr r1, =gSineTable
movs r5, 0x2E
ldrsh r0, [r4, r5]
lsls r0, 1
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
muls r0, r2
asrs r0, 8
strh r0, [r4, 0x26]
movs r2, 0x32
ldrsh r0, [r4, r2]
muls r0, r3
strh r0, [r4, 0x24]
movs r5, 0x34
ldrsh r0, [r4, r5]
muls r0, r3
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x2E]
movs r1, 0x36
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081007A4
movs r2, 0x24
ldrsh r0, [r4, r2]
movs r5, 0x20
ldrsh r1, [r4, r5]
adds r0, r1
cmp r0, 0xF7
ble _081007BC
b _081007B6
.pool
_081007A4:
movs r1, 0x24
ldrsh r0, [r4, r1]
movs r2, 0x20
ldrsh r1, [r4, r2]
adds r0, r1
movs r1, 0x10
negs r1, r1
cmp r0, r1
bgt _081007BC
_081007B6:
adds r0, r4, 0
bl move_anim_8074EE0
_081007BC:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_810074C
thumb_func_start sub_81007C4
sub_81007C4: @ 81007C4
push {r4-r7,lr}
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, =gTasks
adds r5, r0, r1
movs r1, 0x8
ldrsh r0, [r5, r1]
cmp r0, 0
beq _081007E8
cmp r0, 0x1
beq _0810081C
b _08100876
.pool
_081007E8:
ldr r0, =0x0000274f
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 20
movs r2, 0x80
lsls r2, 1
adds r4, r2, 0
adds r0, r4
strh r0, [r5, 0x18]
ldr r0, =0x000027b0
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 20
adds r0, r4
strh r0, [r5, 0x20]
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
b _08100876
.pool
_0810081C:
ldrh r0, [r5, 0x1A]
adds r0, 0x1
movs r7, 0
strh r0, [r5, 0x1A]
lsls r0, 16
cmp r0, 0
blt _08100876
strh r7, [r5, 0x1A]
ldrh r0, [r5, 0x18]
ldrb r2, [r5, 0x1C]
ldr r4, =gUnknown_08592878
movs r3, 0x1E
ldrsh r1, [r5, r3]
lsls r1, 1
adds r1, r4
ldrh r3, [r1]
movs r1, 0x10
bl BlendPalette
ldrh r0, [r5, 0x20]
ldrb r2, [r5, 0x1C]
movs r3, 0x1E
ldrsh r1, [r5, r3]
lsls r1, 1
adds r1, r4
ldrh r3, [r1]
movs r1, 0x10
bl BlendPalette
ldrh r0, [r5, 0x1C]
adds r0, 0x1
strh r0, [r5, 0x1C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x11
bne _08100876
strh r7, [r5, 0x1C]
ldrh r0, [r5, 0x1E]
adds r0, 0x1
strh r0, [r5, 0x1E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x7
bne _08100876
strh r7, [r5, 0x1E]
_08100876:
ldr r0, =gBattleAnimArgs
movs r2, 0xE
ldrsh r1, [r0, r2]
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _0810088A
adds r0, r6, 0
bl DestroyAnimVisualTask
_0810088A:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81007C4
thumb_func_start sub_8100898
sub_8100898: @ 8100898
push {r4-r7,lr}
sub sp, 0x4
adds r6, r0, 0
ldr r1, =gBattleAnimArgs
movs r2, 0x8
ldrsh r0, [r1, r2]
cmp r0, 0
bne _081008B4
adds r0, r6, 0
bl DestroyAnimSprite
b _0810098E
.pool
_081008B4:
movs r3, 0
ldrsh r0, [r1, r3]
cmp r0, 0
bne _081008C4
ldr r4, =gBattleAnimAttacker
b _081008C6
.pool
_081008C4:
ldr r4, =gBattleAnimTarget
_081008C6:
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r5, r0, 24
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r2, r0, 24
ldr r0, =gBattleAnimArgs
ldrh r1, [r0, 0x8]
strh r1, [r6, 0x2E]
movs r3, 0x2
ldrsh r1, [r0, r3]
adds r7, r0, 0
cmp r1, 0
bne _08100908
ldrh r0, [r7, 0x4]
adds r0, r5
strh r0, [r6, 0x20]
ldrh r0, [r7, 0x6]
adds r0, r2
strh r0, [r6, 0x22]
strh r5, [r6, 0x38]
strh r2, [r6, 0x3A]
b _08100918
.pool
_08100908:
strh r5, [r6, 0x20]
strh r2, [r6, 0x22]
ldrh r0, [r7, 0x4]
adds r0, r5
strh r0, [r6, 0x38]
ldrh r0, [r7, 0x6]
adds r0, r2
strh r0, [r6, 0x3A]
_08100918:
ldrh r4, [r6, 0x20]
lsls r0, r4, 4
strh r0, [r6, 0x30]
ldrh r5, [r6, 0x22]
lsls r0, r5, 4
strh r0, [r6, 0x32]
movs r1, 0x38
ldrsh r0, [r6, r1]
movs r2, 0x20
ldrsh r1, [r6, r2]
subs r0, r1
lsls r0, 4
movs r3, 0x8
ldrsh r1, [r7, r3]
bl __divsi3
strh r0, [r6, 0x34]
movs r1, 0x3A
ldrsh r0, [r6, r1]
movs r2, 0x22
ldrsh r1, [r6, r2]
subs r0, r1
lsls r0, 4
movs r3, 0x8
ldrsh r1, [r7, r3]
bl __divsi3
strh r0, [r6, 0x36]
ldrh r0, [r6, 0x38]
subs r0, r4
lsls r0, 16
asrs r0, 16
ldrh r1, [r6, 0x3A]
subs r1, r5
lsls r1, 16
asrs r1, 16
bl sub_80A74F4
lsls r0, 16
lsrs r4, r0, 16
bl IsContest
lsls r0, 24
cmp r0, 0
beq _0810097A
ldr r1, =0xffff8000
adds r0, r4, r1
lsls r0, 16
lsrs r4, r0, 16
_0810097A:
movs r3, 0x80
lsls r3, 1
str r4, [sp]
adds r0, r6, 0
movs r1, 0
adds r2, r3, 0
bl sub_80A73E0
ldr r0, =sub_81009A0
str r0, [r6, 0x1C]
_0810098E:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8100898
thumb_func_start sub_81009A0
sub_81009A0: @ 81009A0
push {r4,lr}
adds r2, r0, 0
ldrh r3, [r2, 0x2E]
movs r1, 0x2E
ldrsh r0, [r2, r1]
cmp r0, 0
beq _081009D0
ldrh r0, [r2, 0x34]
ldrh r4, [r2, 0x30]
adds r0, r4
strh r0, [r2, 0x30]
ldrh r1, [r2, 0x36]
ldrh r4, [r2, 0x32]
adds r1, r4
strh r1, [r2, 0x32]
lsls r0, 16
asrs r0, 20
strh r0, [r2, 0x20]
lsls r1, 16
asrs r1, 20
strh r1, [r2, 0x22]
subs r0, r3, 0x1
strh r0, [r2, 0x2E]
b _081009D6
_081009D0:
adds r0, r2, 0
bl move_anim_8074EE0
_081009D6:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81009A0
thumb_func_start sub_81009DC
sub_81009DC: @ 81009DC
push {lr}
adds r2, r0, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _081009F2
adds r0, r2, 0
bl DestroyAnimSprite
_081009F2:
pop {r0}
bx r0
thumb_func_end sub_81009DC
thumb_func_start sub_81009F8
sub_81009F8: @ 81009F8
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08100A20
ldr r2, =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
strh r0, [r4, 0x20]
ldrh r0, [r2, 0x2]
b _08100A2C
.pool
_08100A20:
ldr r0, =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r4, 0x20]
adds r1, r2
strh r1, [r4, 0x20]
ldrh r0, [r0, 0x2]
_08100A2C:
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81009F8
thumb_func_start sub_8100A50
sub_8100A50: @ 8100A50
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08100A6A
adds r0, r5, 0
movs r1, 0x1
bl StartSpriteAnim
_08100A6A:
ldr r0, =sub_81009DC
str r0, [r5, 0x1C]
ldr r4, =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r4, r0]
adds r0, r5, 0
bl sub_80A6864
ldrh r0, [r4, 0x2]
ldrh r1, [r5, 0x22]
adds r0, r1
strh r0, [r5, 0x22]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8100A50
thumb_func_start sub_8100A94
sub_8100A94: @ 8100A94
push {r4,lr}
adds r4, r0, 0
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
strh r0, [r4, 0x20]
ldrh r0, [r1, 0x2]
ldrh r2, [r4, 0x22]
adds r0, r2
strh r0, [r4, 0x22]
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x34]
ldrh r0, [r1, 0xA]
strh r0, [r4, 0x38]
ldrb r1, [r1, 0xC]
adds r0, r4, 0
bl StartSpriteAffineAnim
ldr r1, =move_anim_8074EE0
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A66DC
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8100A94
thumb_func_start sub_8100AE0
sub_8100AE0: @ 8100AE0
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, =gBattleAnimTarget
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]
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08100B14
ldrh r0, [r5, 0x22]
adds r0, 0x8
strh r0, [r5, 0x22]
_08100B14:
ldr r0, =sub_8100CCC
str r0, [r5, 0x1C]
ldr r0, =gBattleAnimArgs
movs r2, 0x4
ldrsh r1, [r0, r2]
adds r3, r0, 0
cmp r1, 0
bne _08100B3C
ldrh r0, [r3]
ldrh r1, [r5, 0x20]
adds r0, r1
strh r0, [r5, 0x20]
b _08100B50
.pool
_08100B3C:
ldrh r0, [r5, 0x20]
ldrh r1, [r3]
subs r0, r1
strh r0, [r5, 0x20]
adds r2, r5, 0
adds r2, 0x3F
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
_08100B50:
ldrh r0, [r3, 0x2]
ldrh r2, [r5, 0x22]
adds r0, r2
strh r0, [r5, 0x22]
ldr r1, =0xfffffc00
adds r0, r1, 0
ldrh r2, [r5, 0x30]
adds r1, r0, r2
strh r1, [r5, 0x30]
movs r2, 0x80
lsls r2, 3
adds r0, r2, 0
ldrh r2, [r5, 0x32]
adds r0, r2
strh r0, [r5, 0x32]
ldrh r0, [r3, 0x4]
strh r0, [r5, 0x38]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
bne _08100B7E
negs r0, r1
strh r0, [r5, 0x30]
_08100B7E:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8100AE0
thumb_func_start sub_8100B88
sub_8100B88: @ 8100B88
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r0, r1]
cmp r0, 0x1
beq _08100BA8
cmp r0, 0x1
ble _08100C24
cmp r0, 0x2
beq _08100BC8
b _08100C24
.pool
_08100BA8:
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r4, 0x2
eors r0, r4
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r7, r0, 24
ldrb r0, [r5]
eors r4, r0
adds r0, r4, 0
b _08100C34
.pool
_08100BC8:
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r7, r0, 24
ldrb r0, [r5]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r4, r0, 24
ldrb r0, [r5]
movs r2, 0x2
mov r8, r2
mov r1, r8
eors r0, r1
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08100C3E
ldrb r0, [r5]
mov r2, r8
eors r0, r2
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r7
lsrs r7, r0, 1
ldrb r0, [r5]
mov r1, r8
eors r0, r1
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r4
lsrs r4, r0, 1
b _08100C3E
.pool
_08100C24:
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r7, r0, 24
ldrb r0, [r4]
_08100C34:
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r4, r0, 24
_08100C3E:
strh r7, [r6, 0x20]
strh r4, [r6, 0x22]
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08100C56
ldrh r0, [r6, 0x22]
adds r0, 0x8
strh r0, [r6, 0x22]
_08100C56:
ldr r0, =sub_8100CCC
str r0, [r6, 0x1C]
ldr r0, =gBattleAnimArgs
movs r2, 0x4
ldrsh r1, [r0, r2]
adds r3, r0, 0
cmp r1, 0
bne _08100C7C
ldrh r0, [r3]
ldrh r1, [r6, 0x20]
adds r0, r1
strh r0, [r6, 0x20]
b _08100C90
.pool
_08100C7C:
ldrh r0, [r6, 0x20]
ldrh r1, [r3]
subs r0, r1
strh r0, [r6, 0x20]
adds r2, r6, 0
adds r2, 0x3F
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
_08100C90:
ldrh r0, [r3, 0x2]
ldrh r2, [r6, 0x22]
adds r0, r2
strh r0, [r6, 0x22]
ldr r1, =0xfffffc00
adds r0, r1, 0
ldrh r2, [r6, 0x30]
adds r1, r0, r2
strh r1, [r6, 0x30]
movs r2, 0x80
lsls r2, 3
adds r0, r2, 0
ldrh r2, [r6, 0x32]
adds r0, r2
strh r0, [r6, 0x32]
ldrh r0, [r3, 0x4]
strh r0, [r6, 0x38]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
bne _08100CBE
negs r0, r1
strh r0, [r6, 0x30]
_08100CBE:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8100B88
thumb_func_start sub_8100CCC
sub_8100CCC: @ 8100CCC
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x30]
ldrh r2, [r4, 0x34]
adds r0, r1, r2
strh r0, [r4, 0x34]
ldrh r0, [r4, 0x32]
ldrh r2, [r4, 0x36]
adds r0, r2
strh r0, [r4, 0x36]
movs r2, 0x38
ldrsh r0, [r4, r2]
cmp r0, 0
bne _08100CEE
adds r0, r1, 0
adds r0, 0x18
b _08100CF2
_08100CEE:
adds r0, r1, 0
subs r0, 0x18
_08100CF2:
strh r0, [r4, 0x30]
ldrh r0, [r4, 0x32]
subs r0, 0x18
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x34]
lsls r0, 16
asrs r0, 24
strh r0, [r4, 0x24]
ldrh r0, [r4, 0x36]
lsls r0, 16
asrs r0, 24
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x14
bne _08100D28
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
movs r0, 0x3
strh r0, [r4, 0x2E]
ldr r0, =sub_80A64B0
str r0, [r4, 0x1C]
_08100D28:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8100CCC
thumb_func_start sub_8100D38
sub_8100D38: @ 8100D38
push {r4,r5,lr}
adds r5, r0, 0
ldrh r1, [r5, 0x32]
movs r2, 0x32
ldrsh r0, [r5, r2]
cmp r0, 0x1
ble _08100DDC
ldrh r1, [r5, 0x34]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08100D94
adds r3, r5, 0
adds r3, 0x3E
ldrb r1, [r3]
movs r2, 0x5
negs r2, r2
adds r0, r2, 0
ands r0, r1
strb r0, [r3]
ldr r4, =gSprites
movs r0, 0x2E
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
adds r0, 0x3E
ldrb r3, [r0]
adds r1, r2, 0
ands r1, r3
strb r1, [r0]
movs r0, 0x30
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
adds r0, 0x3E
ldrb r1, [r0]
ands r2, r1
strb r2, [r0]
b _08100DCA
.pool
_08100D94:
adds r1, r5, 0
adds r1, 0x3E
ldrb r0, [r1]
movs r2, 0x4
orrs r0, r2
strb r0, [r1]
ldr r3, =gSprites
movs r0, 0x2E
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
adds r0, 0x3E
ldrb r1, [r0]
orrs r1, r2
strb r1, [r0]
movs r0, 0x30
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
adds r0, 0x3E
ldrb r1, [r0]
orrs r1, r2
strb r1, [r0]
_08100DCA:
movs r0, 0
strh r0, [r5, 0x32]
ldrh r0, [r5, 0x34]
adds r0, 0x1
strh r0, [r5, 0x34]
b _08100DE0
.pool
_08100DDC:
adds r0, r1, 0x1
strh r0, [r5, 0x32]
_08100DE0:
movs r1, 0x34
ldrsh r0, [r5, r1]
cmp r0, 0xA
bne _08100E10
movs r2, 0x2E
ldrsh r1, [r5, r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, =gSprites
adds r0, r4
bl DestroySprite
movs r0, 0x30
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
adds r0, r5, 0
bl DestroyAnimSprite
_08100E10:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8100D38
thumb_func_start sub_8100E1C
sub_8100E1C: @ 8100E1C
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, =gBattleAnimArgs
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x2E]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08100E44
ldrh r0, [r5, 0x20]
ldrh r1, [r4]
subs r0, r1
b _08100E4A
.pool
_08100E44:
ldrh r0, [r4]
ldrh r1, [r5, 0x20]
adds r0, r1
_08100E4A:
strh r0, [r5, 0x20]
ldr r4, =gBattleAnimArgs
ldrb r1, [r4, 0xA]
adds r0, r5, 0
bl StartSpriteAnim
ldrh r0, [r4, 0x6]
negs r0, r0
strh r0, [r5, 0x30]
ldrh r0, [r4, 0x2]
ldrh r1, [r5, 0x22]
adds r0, r1
strh r0, [r5, 0x22]
ldrh r0, [r4, 0x8]
strh r0, [r5, 0x34]
ldr r1, =sub_8100E80
str r1, [r5, 0x1C]
adds r0, r5, 0
bl _call_via_r1
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8100E1C
thumb_func_start sub_8100E80
sub_8100E80: @ 8100E80
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
movs r1, 0x64
bl Cos
strh r0, [r4, 0x24]
movs r2, 0x2E
ldrsh r0, [r4, r2]
movs r1, 0x14
bl Sin
strh r0, [r4, 0x26]
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0x7F
bgt _08100EAC
adds r1, r4, 0
adds r1, 0x43
movs r0, 0
b _08100EB2
_08100EAC:
adds r1, r4, 0
adds r1, 0x43
movs r0, 0xE
_08100EB2:
strb r0, [r1]
ldrh r0, [r4, 0x30]
ldrh r2, [r4, 0x2E]
adds r0, r2
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x38]
adds r0, 0x82
strh r0, [r4, 0x38]
lsls r0, 16
asrs r0, 24
ldrh r1, [r4, 0x26]
adds r0, r1
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x32]
adds r0, 0x1
strh r0, [r4, 0x32]
lsls r0, 16
asrs r0, 16
movs r2, 0x34
ldrsh r1, [r4, r2]
cmp r0, r1
bne _08100EE8
adds r0, r4, 0
bl DestroyAnimSprite
_08100EE8:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8100E80
thumb_func_start sub_8100EF0
sub_8100EF0: @ 8100EF0
push {r4-r6,lr}
adds r5, r0, 0
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08100F06
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x2]
adds r0, 0x8
strh r0, [r1, 0x2]
_08100F06:
ldr r6, =gBattleAnimAttacker
ldrb r0, [r6]
movs r1, 0
bl sub_80A60AC
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
strh r0, [r5, 0x20]
ldrb r0, [r6]
movs r1, 0x1
bl sub_80A60AC
lsls r0, 24
lsrs r0, 24
ldrh r4, [r4, 0x2]
adds r0, r4
strh r0, [r5, 0x22]
ldrb r0, [r6]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08100F44
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08100F6C
_08100F44:
ldrb r0, [r6]
bl sub_80A8328
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
movs r1, 0x3
ands r0, r1
lsls r0, 2
ldrb r2, [r5, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r5, 0x5]
b _08100F84
.pool
_08100F6C:
ldrb r0, [r6]
bl sub_80A8328
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]
_08100F84:
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r5, 0x2E]
ldr r0, =0x00002828
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 20
movs r1, 0x80
lsls r1, 1
adds r0, r1
strh r0, [r5, 0x32]
movs r4, 0x10
movs r0, 0x10
strh r0, [r5, 0x3C]
movs r1, 0xFD
lsls r1, 6
movs r0, 0x50
bl SetGpuReg
ldrh r0, [r5, 0x3C]
lsls r1, r0, 8
subs r4, r0
orrs r1, r4
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
ldr r0, =sub_8100FD4
str r0, [r5, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8100EF0
thumb_func_start sub_8100FD4
sub_8100FD4: @ 8100FD4
push {r4-r6,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x38]
adds r0, 0x60
strh r0, [r4, 0x38]
lsls r0, 16
asrs r0, 24
negs r0, r0
strh r0, [r4, 0x24]
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _08101032
movs r0, 0
strh r0, [r4, 0x30]
ldr r1, =gPlttBufferFaded
movs r2, 0x32
ldrsh r0, [r4, r2]
adds r0, 0x1
lsls r0, 1
adds r0, r1
ldrh r5, [r0]
movs r2, 0
adds r6, r1, 0
adds r3, r6, 0
_0810100C:
movs r1, 0x32
ldrsh r0, [r4, r1]
adds r2, 0x1
adds r0, r2
lsls r1, r0, 1
adds r1, r3
adds r0, 0x1
lsls r0, 1
adds r0, r3
ldrh r0, [r0]
strh r0, [r1]
cmp r2, 0x5
ble _0810100C
movs r2, 0x32
ldrsh r0, [r4, r2]
adds r0, 0x7
lsls r0, 1
adds r0, r6
strh r5, [r0]
_08101032:
ldrh r2, [r4, 0x3C]
movs r1, 0x3C
ldrsh r0, [r4, r1]
cmp r0, 0x6
ble _0810106C
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
ble _08101080
ldrh r0, [r4, 0x3A]
adds r0, 0x1
strh r0, [r4, 0x3A]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _0810106C
movs r0, 0
strh r0, [r4, 0x3A]
subs r2, 0x1
strh r2, [r4, 0x3C]
lsls r1, r2, 8
movs r0, 0x10
subs r0, r2
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
_0810106C:
ldrh r1, [r4, 0x2E]
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r0, 0
ble _08101080
subs r0, r1, 0x1
strh r0, [r4, 0x2E]
b _081010C2
.pool
_08101080:
ldrh r0, [r4, 0x3A]
adds r0, 0x1
strh r0, [r4, 0x3A]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _081010C2
movs r0, 0
strh r0, [r4, 0x3A]
ldrh r2, [r4, 0x3C]
adds r2, 0x1
strh r2, [r4, 0x3C]
lsls r1, r2, 8
movs r0, 0x10
subs r0, r2
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0x3C
ldrsh r0, [r4, r1]
cmp r0, 0x10
bne _081010C2
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldr r0, =sub_80A67F4
str r0, [r4, 0x1C]
_081010C2:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8100FD4
thumb_func_start sub_81010CC
sub_81010CC: @ 81010CC
push {r4-r6,lr}
adds r4, r0, 0
ldr r6, =gBattleAnimTarget
ldrb r0, [r6]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r5, 0
strh r0, [r4, 0x20]
ldrb r0, [r6]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldr r1, =0x0000ffe8
adds r0, r1
strh r0, [r4, 0x22]
strh r5, [r4, 0x2E]
strh r5, [r4, 0x30]
strh r5, [r4, 0x32]
strh r5, [r4, 0x34]
strh r5, [r4, 0x36]
strh r5, [r4, 0x3A]
movs r0, 0x10
strh r0, [r4, 0x3C]
movs r1, 0xFD
lsls r1, 6
movs r0, 0x50
bl SetGpuReg
ldrh r1, [r4, 0x3C]
lsls r1, 8
ldrh r0, [r4, 0x3A]
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
ldr r0, =sub_8101138
str r0, [r4, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81010CC
thumb_func_start sub_8101138
sub_8101138: @ 8101138
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0x4
bls _08101146
b _08101290
_08101146:
lsls r0, 2
ldr r1, =_08101154
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08101154:
.4byte _08101168
.4byte _081011CC
.4byte _081011E8
.4byte _08101266
.4byte _0810127A
_08101168:
ldrh r0, [r4, 0x32]
adds r0, 0x1
strh r0, [r4, 0x32]
lsls r0, 16
cmp r0, 0
bgt _08101176
b _08101290
_08101176:
movs r0, 0
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _08101198
ldrh r1, [r4, 0x3A]
movs r2, 0x3A
ldrsh r0, [r4, r2]
cmp r0, 0xF
bgt _081011A6
adds r0, r1, 0x1
strh r0, [r4, 0x3A]
b _081011A6
_08101198:
ldrh r1, [r4, 0x3C]
movs r2, 0x3C
ldrsh r0, [r4, r2]
cmp r0, 0
ble _081011A6
subs r0, r1, 0x1
strh r0, [r4, 0x3C]
_081011A6:
ldrh r1, [r4, 0x3C]
lsls r1, 8
ldrh r0, [r4, 0x3A]
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0x3A
ldrsh r0, [r4, r1]
cmp r0, 0x10
bne _08101290
movs r2, 0x3C
ldrsh r0, [r4, r2]
cmp r0, 0
bne _08101290
strh r0, [r4, 0x30]
b _08101272
_081011CC:
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x8
ble _08101290
movs r0, 0
strh r0, [r4, 0x30]
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
b _08101272
_081011E8:
adds r0, r4, 0
movs r1, 0x10
movs r2, 0x4
bl sub_8101298
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
ble _0810120A
movs r0, 0
strh r0, [r4, 0x30]
ldrh r0, [r4, 0x22]
adds r0, 0x1
strh r0, [r4, 0x22]
_0810120A:
ldrh r0, [r4, 0x32]
adds r1, r0, 0x1
strh r1, [r4, 0x32]
lsls r0, r1, 16
asrs r0, 16
cmp r0, 0x1D
ble _08101290
movs r0, 0x1
ands r1, r0
cmp r1, 0
beq _08101230
ldrh r1, [r4, 0x3A]
movs r2, 0x3A
ldrsh r0, [r4, r2]
cmp r0, 0
ble _0810123E
subs r0, r1, 0x1
strh r0, [r4, 0x3A]
b _0810123E
_08101230:
ldrh r1, [r4, 0x3C]
movs r2, 0x3C
ldrsh r0, [r4, r2]
cmp r0, 0xF
bgt _0810123E
adds r0, r1, 0x1
strh r0, [r4, 0x3C]
_0810123E:
ldrh r1, [r4, 0x3C]
lsls r1, 8
ldrh r0, [r4, 0x3A]
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r0, 0x3A
ldrsh r1, [r4, r0]
cmp r1, 0
bne _08101290
movs r2, 0x3C
ldrsh r0, [r4, r2]
cmp r0, 0x10
bne _08101290
strh r1, [r4, 0x30]
strh r1, [r4, 0x32]
b _08101272
_08101266:
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
_08101272:
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
b _08101290
_0810127A:
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
adds r0, r4, 0
bl DestroyAnimSprite
_08101290:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8101138
thumb_func_start sub_8101298
sub_8101298: @ 8101298
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x34
ldrsh r0, [r4, r1]
cmp r0, 0xB
bgt _081012AA
ldrh r0, [r4, 0x36]
adds r0, 0x2
strh r0, [r4, 0x36]
_081012AA:
ldrh r5, [r4, 0x34]
adds r0, r5, 0
subs r0, 0x12
lsls r0, 16
lsrs r0, 16
adds r1, r5, 0
cmp r0, 0x17
bhi _081012C0
ldrh r0, [r4, 0x36]
subs r0, 0x2
strh r0, [r4, 0x36]
_081012C0:
lsls r0, r1, 16
asrs r0, 16
cmp r0, 0x2F
ble _081012CE
ldrh r0, [r4, 0x36]
adds r0, 0x2
strh r0, [r4, 0x36]
_081012CE:
movs r1, 0x36
ldrsh r0, [r4, r1]
movs r1, 0x9
bl __divsi3
strh r0, [r4, 0x24]
movs r1, 0x36
ldrsh r0, [r4, r1]
movs r1, 0xE
bl __divsi3
strh r0, [r4, 0x26]
lsls r0, 16
cmp r0, 0
bge _081012F4
movs r1, 0x26
ldrsh r0, [r4, r1]
negs r0, r0
strh r0, [r4, 0x26]
_081012F4:
adds r0, r5, 0x1
strh r0, [r4, 0x34]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3B
ble _08101304
movs r0, 0
strh r0, [r4, 0x34]
_08101304:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8101298
thumb_func_start sub_810130C
sub_810130C: @ 810130C
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r5, r1]
cmp r0, 0
bne _08101320
adds r0, r4, 0
bl sub_80A6838
_08101320:
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
bl sub_80A6864
ldrh r0, [r5, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
ldrh r0, [r5, 0xA]
strh r0, [r4, 0x2E]
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x30]
ldrh r0, [r5, 0x8]
strh r0, [r4, 0x32]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A656C
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810130C
thumb_func_start sub_810135C
sub_810135C: @ 810135C
push {r4-r6,lr}
adds r5, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08101378
ldr r0, =gBattleAnimAttacker
b _0810137A
.pool
_08101378:
ldr r0, =gBattleAnimTarget
_0810137A:
ldrb r6, [r0]
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _081013C4
movs r1, 0x2
adds r0, r6, 0
eors r0, r1
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _081013C4
ldr r4, =gBattleAnimArgs
ldrb r1, [r4, 0xC]
adds r2, r5, 0
adds r2, 0x20
adds r3, r5, 0
adds r3, 0x22
adds r0, r6, 0
bl sub_80A8924
movs r2, 0
ldrsh r1, [r4, r2]
adds r0, r5, 0
bl sub_80A6864
ldrh r0, [r4, 0x2]
ldrh r1, [r5, 0x22]
adds r0, r1
strh r0, [r5, 0x22]
b _08101414
.pool
_081013C4:
ldr r4, =gBattleAnimArgs
movs r2, 0xC
ldrsh r0, [r4, r2]
cmp r0, 0
bne _081013E8
adds r0, r6, 0
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
adds r0, r6, 0
movs r1, 0x1
b _081013FA
.pool
_081013E8:
adds r0, r6, 0
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
adds r0, r6, 0
movs r1, 0x3
_081013FA:
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r4, [r4, 0x2]
adds r0, r4
strh r0, [r5, 0x22]
ldr r0, =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r0, r5, 0
bl sub_80A6864
_08101414:
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0xA]
strh r0, [r5, 0x2E]
ldrh r0, [r1, 0x6]
strh r0, [r5, 0x30]
ldrh r0, [r1, 0x8]
strh r0, [r5, 0x32]
ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A656C
str r0, [r5, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810135C
thumb_func_start sub_8101440
sub_8101440: @ 8101440
push {r4,lr}
adds r4, r0, 0
bl sub_80A6838
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08101474
ldr r0, =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r4, 0x20]
adds r1, r2
strh r1, [r4, 0x20]
ldrh r0, [r0, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
b _0810148E
.pool
_08101474:
ldr r2, =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
strh r0, [r4, 0x20]
ldrh r0, [r2, 0x2]
ldrh r2, [r4, 0x22]
adds r0, r2
strh r0, [r4, 0x22]
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAnim
_0810148E:
ldr r0, =sub_81014A0
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8101440
thumb_func_start sub_81014A0
sub_81014A0: @ 81014A0
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, 0x1E
ble _081014D8
movs r0, 0x2E
ldrsh r1, [r4, r0]
movs r0, 0x1E
subs r0, r1
movs r1, 0x3
bl __divsi3
strh r0, [r4, 0x26]
movs r1, 0x30
ldrsh r0, [r4, r1]
lsls r0, 18
asrs r0, 16
movs r1, 0x3
bl Sin
strh r0, [r4, 0x24]
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
_081014D8:
adds r0, r4, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _081014EC
adds r0, r4, 0
bl DestroyAnimSprite
_081014EC:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81014A0
thumb_func_start sub_81014F4
sub_81014F4: @ 81014F4
push {r4,lr}
adds r4, r0, 0
bl sub_80A6838
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810152C
ldr r1, =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]
movs r0, 0x1
strh r0, [r4, 0x34]
b _0810154A
.pool
_0810152C:
ldr r2, =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
strh r0, [r4, 0x20]
ldrh r0, [r2, 0x2]
ldrh r2, [r4, 0x22]
adds r0, r2
strh r0, [r4, 0x22]
ldr r0, =0x0000ffff
strh r0, [r4, 0x34]
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
_0810154A:
ldr r0, =sub_8101560
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81014F4
thumb_func_start sub_8101560
sub_8101560: @ 8101560
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
movs r1, 0x28
bl __divsi3
negs r0, r0
strh r0, [r4, 0x26]
movs r2, 0x36
ldrsh r0, [r4, r2]
movs r1, 0xA
bl __divsi3
strh r0, [r4, 0x24]
movs r1, 0x34
ldrsh r0, [r4, r1]
lsls r0, 1
ldrh r2, [r4, 0x36]
adds r0, r2
strh r0, [r4, 0x36]
ldrh r0, [r4, 0x30]
ldrh r2, [r4, 0x2E]
adds r1, r0, r2
strh r1, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3C
ble _081015A4
adds r0, r4, 0
bl move_anim_8074EE0
_081015A4:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8101560
thumb_func_start sub_81015AC
sub_81015AC: @ 81015AC
push {lr}
ldrh r1, [r0, 0x20]
subs r1, 0x20
strh r1, [r0, 0x20]
ldrh r1, [r0, 0x22]
subs r1, 0x20
strh r1, [r0, 0x22]
movs r1, 0x14
strh r1, [r0, 0x2E]
ldr r1, =sub_80A64B0
str r1, [r0, 0x1C]
ldr r1, =sub_81015D4
bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.pool
thumb_func_end sub_81015AC
thumb_func_start sub_81015D4
sub_81015D4: @ 81015D4
push {r4-r6,lr}
adds r5, r0, 0
ldrh r6, [r5, 0x38]
movs r1, 0x1
adds r0, r1, 0
ands r0, r6
cmp r0, 0
beq _081015EA
cmp r0, 0x1
beq _08101604
b _0810166A
_081015EA:
strh r1, [r5, 0x2E]
ldr r0, =sub_80A64B0
str r0, [r5, 0x1C]
ldr r1, =sub_81015D4
adds r0, r5, 0
bl StoreSpriteCallbackInData6
b _0810166A
.pool
_08101604:
ldrh r3, [r5, 0x24]
ldrh r0, [r5, 0x20]
adds r3, r0
movs r0, 0
strh r3, [r5, 0x20]
ldrh r4, [r5, 0x26]
ldrh r1, [r5, 0x22]
adds r4, r1
strh r4, [r5, 0x22]
strh r0, [r5, 0x26]
strh r0, [r5, 0x24]
movs r0, 0x8
strh r0, [r5, 0x2E]
ldr r2, =gUnknown_08592CD0
lsls r0, r6, 16
asrs r0, 24
lsls r0, 1
adds r1, r0, r2
ldrb r1, [r1]
lsls r1, 24
asrs r1, 24
adds r3, r1
strh r3, [r5, 0x32]
adds r2, 0x1
adds r0, r2
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
adds r4, r0
strh r4, [r5, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r5, 0x1C]
ldr r1, =sub_8101684
adds r0, r5, 0
bl StoreSpriteCallbackInData6
movs r1, 0x80
lsls r1, 1
adds r0, r1, 0
ldrh r1, [r5, 0x38]
adds r0, r1
strh r0, [r5, 0x38]
movs r0, 0x3F
bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
movs r0, 0xD2
bl PlaySE12WithPanning
_0810166A:
ldrh r0, [r5, 0x38]
movs r1, 0x1
eors r0, r1
strh r0, [r5, 0x38]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81015D4
thumb_func_start sub_8101684
sub_8101684: @ 8101684
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x38]
lsls r0, 16
asrs r0, 24
cmp r0, 0x4
bne _081016AC
movs r0, 0xA
strh r0, [r2, 0x2E]
ldr r0, =sub_80A64B0
str r0, [r2, 0x1C]
ldr r1, =sub_81016B8
adds r0, r2, 0
bl StoreSpriteCallbackInData6
b _081016B0
.pool
_081016AC:
ldr r0, =sub_81015D4
str r0, [r2, 0x1C]
_081016B0:
pop {r0}
bx r0
.pool
thumb_func_end sub_8101684
thumb_func_start sub_81016B8
sub_81016B8: @ 81016B8
push {r4-r7,lr}
adds r5, r0, 0
ldrh r1, [r5, 0x6]
cmp r1, 0
bne _081016E0
movs r0, 0x3
strh r0, [r5, 0x2E]
strh r1, [r5, 0x30]
strh r1, [r5, 0x32]
ldr r0, =sub_80A64B0
str r0, [r5, 0x1C]
ldr r1, =sub_8101774
adds r0, r5, 0
bl StoreSpriteCallbackInData6
b _08101760
.pool
_081016E0:
ldrh r0, [r5, 0x6]
cmp r0, 0x2
beq _08101700
cmp r0, 0x2
bgt _081016F0
cmp r0, 0x1
beq _081016F6
b _08101714
_081016F0:
cmp r0, 0x3
beq _08101708
b _08101714
_081016F6:
ldr r6, =0x0000fff8
adds r7, r6, 0
b _08101718
.pool
_08101700:
ldr r7, =0x0000fff8
b _08101716
.pool
_08101708:
movs r7, 0x8
ldr r6, =0x0000fff8
b _08101718
.pool
_08101714:
movs r7, 0x8
_08101716:
movs r6, 0x8
_08101718:
ldrh r0, [r5, 0x24]
ldrh r1, [r5, 0x20]
adds r0, r1
movs r1, 0
strh r0, [r5, 0x20]
ldrh r0, [r5, 0x26]
ldrh r2, [r5, 0x22]
adds r0, r2
strh r0, [r5, 0x22]
strh r1, [r5, 0x26]
strh r1, [r5, 0x24]
movs r0, 0x6
strh r0, [r5, 0x2E]
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r7
strh r0, [r5, 0x32]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r6
strh r0, [r5, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r5, 0x1C]
ldr r1, =sub_8101820
adds r0, r5, 0
bl StoreSpriteCallbackInData6
_08101760:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81016B8
thumb_func_start sub_8101774
sub_8101774: @ 8101774
push {r4,lr}
sub sp, 0xC
adds r4, r0, 0
movs r1, 0x32
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08101794
ldrh r0, [r4, 0x30]
adds r0, 0x3
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x10
ble _081017A4
movs r0, 0x10
b _081017A2
_08101794:
ldrh r0, [r4, 0x30]
subs r0, 0x3
strh r0, [r4, 0x30]
lsls r0, 16
cmp r0, 0
bge _081017A4
movs r0, 0
_081017A2:
strh r0, [r4, 0x30]
_081017A4:
movs r0, 0x1
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
str r0, [sp, 0x8]
movs r0, 0x1
movs r1, 0x1
movs r2, 0x1
movs r3, 0x1
bl sub_80A75AC
ldrh r1, [r4, 0x30]
lsls r1, 24
lsrs r1, 24
ldr r2, =0x00007fff
bl BlendPalettes
movs r3, 0x30
ldrsh r0, [r4, r3]
cmp r0, 0x10
bne _0810180C
ldrh r0, [r4, 0x32]
adds r0, 0x1
strh r0, [r4, 0x32]
ldrb r1, [r4, 0x5]
lsrs r1, 4
lsls r0, r1, 5
ldr r2, =gPlttBufferUnfaded + 0x210
adds r0, r2
lsls r1, 4
ldr r3, =0x00000101
adds r2, r3, 0
orrs r1, r2
movs r2, 0x4
bl LoadPalette
movs r0, 0x3F
bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
movs r0, 0xC0
bl PlaySE12WithPanning
b _08101814
.pool
_0810180C:
cmp r0, 0
bne _08101814
ldr r0, =sub_8101820
str r0, [r4, 0x1C]
_08101814:
add sp, 0xC
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8101774
thumb_func_start sub_8101820
sub_8101820: @ 8101820
push {lr}
adds r2, r0, 0
ldr r0, =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, =0x0000ffff
cmp r1, r0
bne _08101838
movs r0, 0
strh r0, [r2, 0x30]
strh r0, [r2, 0x2E]
ldr r0, =sub_8101848
str r0, [r2, 0x1C]
_08101838:
pop {r0}
bx r0
.pool
thumb_func_end sub_8101820
thumb_func_start sub_8101848
sub_8101848: @ 8101848
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
movs r1, 0x3
bl __modsi3
lsls r0, 16
cmp r0, 0
bne _0810187C
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [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]
_0810187C:
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
movs r1, 0x30
ldrsh r0, [r4, r1]
cmp r0, 0x8
bne _08101890
adds r0, r4, 0
bl DestroyAnimSprite
_08101890:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8101848
thumb_func_start sub_8101898
sub_8101898: @ 8101898
push {r4,lr}
adds r3, r0, 0
ldr r0, =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r3, 0x6]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
bne _081018BC
ldrh r0, [r3, 0x20]
subs r0, 0x18
strh r0, [r3, 0x20]
ldrh r0, [r3, 0x22]
subs r0, 0x18
strh r0, [r3, 0x22]
b _0810190E
.pool
_081018BC:
cmp r0, 0x2
bne _081018D8
ldrh r0, [r3, 0x20]
subs r0, 0x18
strh r0, [r3, 0x20]
ldrh r0, [r3, 0x22]
adds r0, 0x18
strh r0, [r3, 0x22]
ldrb r1, [r3, 0x3]
movs r0, 0x3F
negs r0, r0
ands r0, r1
movs r1, 0x20
b _0810190A
_081018D8:
cmp r0, 0x3
bne _081018F4
ldrh r0, [r3, 0x20]
adds r0, 0x18
strh r0, [r3, 0x20]
ldrh r0, [r3, 0x22]
subs r0, 0x18
strh r0, [r3, 0x22]
ldrb r1, [r3, 0x3]
movs r0, 0x3F
negs r0, r0
ands r0, r1
movs r1, 0x10
b _0810190A
_081018F4:
ldrh r0, [r3, 0x20]
adds r0, 0x18
strh r0, [r3, 0x20]
ldrh r0, [r3, 0x22]
adds r0, 0x18
strh r0, [r3, 0x22]
ldrb r1, [r3, 0x3]
movs r0, 0x3F
negs r0, r0
ands r0, r1
movs r1, 0x30
_0810190A:
orrs r0, r1
strb r0, [r3, 0x3]
_0810190E:
ldrh r2, [r3, 0x4]
lsls r1, r2, 22
lsrs r1, 22
adds r1, 0x10
ldr r4, =0x000003ff
adds r0, r4, 0
ands r1, r0
ldr r0, =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r3, 0x4]
ldr r1, =sub_81015AC
str r1, [r3, 0x1C]
adds r0, r3, 0
bl _call_via_r1
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8101898
thumb_func_start sub_8101940
sub_8101940: @ 8101940
push {lr}
adds r3, r0, 0
adds r2, r3, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
movs r0, 0
strh r0, [r3, 0x2E]
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x1
beq _0810197C
cmp r0, 0x1
bgt _0810196C
cmp r0, 0
beq _08101972
b _0810198C
.pool
_0810196C:
cmp r0, 0x2
beq _08101984
b _0810198C
_08101972:
ldr r0, =sub_8101998
b _0810198E
.pool
_0810197C:
ldr r0, =sub_8101A74
b _0810198E
.pool
_08101984:
ldr r0, =sub_8101AC4
b _0810198E
.pool
_0810198C:
ldr r0, =sub_8101B84
_0810198E:
str r0, [r3, 0x1C]
pop {r0}
bx r0
.pool
thumb_func_end sub_8101940
thumb_func_start sub_8101998
sub_8101998: @ 8101998
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x6
strh r0, [r4, 0x2E]
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
bl GetBattlerSide
lsls r0, 24
movs r2, 0x2
negs r2, r2
adds r1, r2, 0
cmp r0, 0
beq _081019B6
movs r1, 0x2
_081019B6:
strh r1, [r4, 0x30]
movs r0, 0
strh r0, [r4, 0x32]
ldr r1, =gBattlerSpriteIds
ldrb r0, [r5]
adds r0, r1
ldrb r0, [r0]
strh r0, [r4, 0x34]
ldr r1, =sub_81019E8
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A6630
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8101998
thumb_func_start sub_81019E8
sub_81019E8: @ 81019E8
push {r4-r6,lr}
adds r5, r0, 0
movs r0, 0x2E
ldrsh r6, [r5, r0]
cmp r6, 0
bne _08101A24
ldr r1, =gBattlerSpriteIds
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
strh r0, [r5, 0x34]
movs r1, 0
bl sub_80A7270
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x3A]
ldr r2, =0xfffffd00
adds r1, r2, 0
cmp r0, 0
beq _08101A20
movs r0, 0xC0
lsls r0, 2
adds r1, r0, 0
_08101A20:
strh r1, [r5, 0x36]
strh r6, [r5, 0x38]
_08101A24:
ldrh r0, [r5, 0x36]
ldrh r1, [r5, 0x38]
adds r0, r1
strh r0, [r5, 0x38]
ldrh r0, [r5, 0x34]
lsls r0, 24
lsrs r0, 24
movs r2, 0x80
lsls r2, 1
ldrh r3, [r5, 0x38]
adds r1, r2, 0
bl obj_id_set_rotscale
ldrh r0, [r5, 0x34]
lsls r0, 24
lsrs r0, 24
bl sub_80A73A0
ldrh r0, [r5, 0x2E]
adds r0, 0x1
strh r0, [r5, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3
ble _08101A5E
movs r0, 0
strh r0, [r5, 0x2E]
ldr r0, =sub_8101B84
str r0, [r5, 0x1C]
_08101A5E:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81019E8
thumb_func_start sub_8101A74
sub_8101A74: @ 8101A74
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x4
strh r0, [r4, 0x2E]
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
bl GetBattlerSide
lsls r0, 24
movs r1, 0x3
cmp r0, 0
beq _08101A92
movs r0, 0x3
negs r0, r0
adds r1, r0, 0
_08101A92:
strh r1, [r4, 0x30]
movs r0, 0
strh r0, [r4, 0x32]
ldr r1, =gBattlerSpriteIds
ldrb r0, [r5]
adds r0, r1
ldrb r0, [r0]
strh r0, [r4, 0x34]
ldr r1, =sub_8101B84
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A6630
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8101A74
thumb_func_start sub_8101AC4
sub_8101AC4: @ 8101AC4
push {lr}
adds r1, r0, 0
ldrh r0, [r1, 0x2E]
adds r0, 0x1
strh r0, [r1, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x8
ble _08101ADE
movs r0, 0
strh r0, [r1, 0x2E]
ldr r0, =sub_8101AE8
str r0, [r1, 0x1C]
_08101ADE:
pop {r0}
bx r0
.pool
thumb_func_end sub_8101AC4
thumb_func_start sub_8101AE8
sub_8101AE8: @ 8101AE8
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x2E
ldrsh r0, [r5, r1]
cmp r0, 0
bne _08101B38
ldr r1, =gBattlerSpriteIds
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
strh r0, [r5, 0x34]
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x3A]
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08101B2C
movs r0, 0xFC
lsls r0, 8
strh r0, [r5, 0x36]
movs r0, 0xC0
lsls r0, 4
b _08101B36
.pool
_08101B2C:
movs r0, 0x80
lsls r0, 3
strh r0, [r5, 0x36]
movs r0, 0xF4
lsls r0, 8
_08101B36:
strh r0, [r5, 0x38]
_08101B38:
ldrh r0, [r5, 0x36]
ldrh r1, [r5, 0x38]
adds r0, r1
strh r0, [r5, 0x38]
ldrh r0, [r5, 0x34]
lsls r0, 24
lsrs r0, 24
movs r2, 0x80
lsls r2, 1
ldrh r3, [r5, 0x38]
adds r1, r2, 0
bl obj_id_set_rotscale
ldrh r0, [r5, 0x34]
lsls r0, 24
lsrs r0, 24
bl sub_80A73A0
ldrh r0, [r5, 0x2E]
adds r0, 0x1
strh r0, [r5, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
ble _08101B78
ldrh r0, [r5, 0x34]
lsls r0, 24
lsrs r0, 24
bl sub_80A7344
ldr r0, =sub_8101B84
str r0, [r5, 0x1C]
_08101B78:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8101AE8
thumb_func_start sub_8101B84
sub_8101B84: @ 8101B84
push {lr}
bl DestroyAnimSprite
pop {r0}
bx r0
thumb_func_end sub_8101B84
thumb_func_start sub_8101B90
sub_8101B90: @ 8101B90
movs r1, 0
strh r1, [r0, 0x2E]
ldr r1, =sub_8101BA0
str r1, [r0, 0x1C]
bx lr
.pool
thumb_func_end sub_8101B90
thumb_func_start sub_8101BA0
sub_8101BA0: @ 8101BA0
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x2E
ldrsh r5, [r4, r0]
cmp r5, 0x1
beq _08101BFA
cmp r5, 0x1
bgt _08101BB6
cmp r5, 0
beq _08101BBC
b _08101C8E
_08101BB6:
cmp r5, 0x2
beq _08101C4C
b _08101C8E
_08101BBC:
strh r5, [r4, 0x30]
ldr r1, =gBattlerSpriteIds
ldr r2, =gBattleAnimAttacker
ldrb r0, [r2]
adds r0, r1
ldrb r0, [r0]
strh r0, [r4, 0x32]
ldrb r0, [r2]
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x34]
ldr r2, =0xfffffe00
adds r1, r2, 0
cmp r0, 0
beq _08101BE4
movs r0, 0x80
lsls r0, 2
adds r1, r0, 0
_08101BE4:
strh r1, [r4, 0x36]
strh r5, [r4, 0x38]
ldrh r0, [r4, 0x32]
lsls r0, 24
lsrs r0, 24
movs r1, 0
bl sub_80A7270
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
_08101BFA:
ldrh r0, [r4, 0x36]
ldrh r1, [r4, 0x38]
adds r0, r1
strh r0, [r4, 0x38]
ldrh r0, [r4, 0x32]
lsls r0, 24
lsrs r0, 24
movs r2, 0x80
lsls r2, 1
ldrh r3, [r4, 0x38]
adds r1, r2, 0
bl obj_id_set_rotscale
ldrh r0, [r4, 0x32]
lsls r0, 24
lsrs r0, 24
bl sub_80A73A0
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3
ble _08101C8E
movs r0, 0
strh r0, [r4, 0x30]
movs r2, 0x36
ldrsh r0, [r4, r2]
negs r0, r0
strh r0, [r4, 0x36]
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
b _08101C8E
.pool
_08101C4C:
ldrh r0, [r4, 0x36]
ldrh r1, [r4, 0x38]
adds r0, r1
strh r0, [r4, 0x38]
ldrh r0, [r4, 0x32]
lsls r0, 24
lsrs r0, 24
movs r2, 0x80
lsls r2, 1
ldrh r3, [r4, 0x38]
adds r1, r2, 0
bl obj_id_set_rotscale
ldrh r0, [r4, 0x32]
lsls r0, 24
lsrs r0, 24
bl sub_80A73A0
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3
ble _08101C8E
ldrh r0, [r4, 0x32]
lsls r0, 24
lsrs r0, 24
bl sub_80A7344
adds r0, r4, 0
bl DestroyAnimSprite
_08101C8E:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8101BA0
thumb_func_start sub_8101C94
sub_8101C94: @ 8101C94
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r1, =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r5, r0, r1
ldr r1, =gBattlerSpriteIds
ldr r2, =gBattleAnimAttacker
ldrb r0, [r2]
adds r0, r1
ldrb r0, [r0]
movs r4, 0
strh r0, [r5, 0x8]
ldrb r0, [r2]
bl GetBattlerSide
lsls r0, 24
lsrs r2, r0, 24
strh r2, [r5, 0xA]
strh r4, [r5, 0xC]
ldr r0, =gBattleAnimArgs
movs r3, 0
ldrsh r1, [r0, r3]
cmp r1, 0
beq _08101CE8
cmp r1, 0x1
beq _08101D04
adds r0, r6, 0
bl DestroyAnimVisualTask
b _08101D22
.pool
_08101CE8:
strh r1, [r5, 0xC]
movs r0, 0x8
strh r0, [r5, 0xE]
strh r1, [r5, 0x10]
movs r0, 0x3
strh r0, [r5, 0x12]
cmp r2, 0
bne _08101CFC
negs r0, r0
strh r0, [r5, 0x12]
_08101CFC:
ldr r0, =sub_8101D2C
b _08101D20
.pool
_08101D04:
movs r0, 0x8
strh r0, [r5, 0xE]
movs r0, 0xC0
lsls r0, 3
strh r0, [r5, 0x10]
movs r1, 0xC0
strh r1, [r5, 0x12]
cmp r2, 0
bne _08101D1E
negs r0, r0
strh r0, [r5, 0x10]
negs r0, r1
strh r0, [r5, 0x12]
_08101D1E:
ldr r0, =sub_8101EEC
_08101D20:
str r0, [r5]
_08101D22:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8101C94
thumb_func_start sub_8101D2C
sub_8101D2C: @ 8101D2C
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r1, 0xC
ldrsh r0, [r4, r1]
cmp r0, 0x4
bls _08101D46
b _08101EE6
_08101D46:
lsls r0, 2
ldr r1, =_08101D58
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08101D58:
.4byte _08101D6C
.4byte _08101D9E
.4byte _08101DF8
.4byte _08101E70
.4byte _08101EB4
_08101D6C:
movs r2, 0xE
ldrsh r1, [r4, r2]
cmp r1, 0
beq _08101D7C
ldrh r2, [r4, 0x12]
ldrh r3, [r4, 0x10]
adds r2, r3
b _08101EC2
_08101D7C:
movs r0, 0x8
strh r0, [r4, 0xE]
strh r1, [r4, 0x10]
movs r1, 0xA
ldrsh r0, [r4, r1]
movs r1, 0xC0
cmp r0, 0
bne _08101D92
movs r2, 0xC0
negs r2, r2
adds r1, r2, 0
_08101D92:
strh r1, [r4, 0x12]
ldrb r0, [r4, 0x8]
movs r1, 0
bl sub_80A7270
b _08101EA8
_08101D9E:
movs r3, 0xE
ldrsh r0, [r4, r3]
cmp r0, 0
beq _08101DC4
ldrh r0, [r4, 0x12]
ldrh r1, [r4, 0x10]
adds r0, r1
strh r0, [r4, 0x10]
ldrb r0, [r4, 0x8]
movs r2, 0x80
lsls r2, 1
ldrh r3, [r4, 0x10]
adds r1, r2, 0
bl obj_id_set_rotscale
ldrb r0, [r4, 0x8]
bl sub_80A73A0
b _08101ED4
_08101DC4:
movs r0, 0x8
strh r0, [r4, 0xE]
ldr r2, =gSprites
movs r3, 0x8
ldrsh r1, [r4, r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r0, [r0, 0x24]
strh r0, [r4, 0x10]
movs r1, 0xA
ldrsh r0, [r4, r1]
movs r2, 0x2
negs r2, r2
adds r1, r2, 0
cmp r0, 0
bne _08101DEA
movs r1, 0x2
_08101DEA:
strh r1, [r4, 0x12]
movs r0, 0x1
strh r0, [r4, 0x14]
b _08101EA8
.pool
_08101DF8:
ldrh r2, [r4, 0xE]
movs r3, 0xE
ldrsh r0, [r4, r3]
cmp r0, 0
beq _08101E54
ldrh r1, [r4, 0x14]
movs r3, 0x14
ldrsh r0, [r4, r3]
cmp r0, 0
beq _08101E12
subs r0, r1, 0x1
strh r0, [r4, 0x14]
b _08101EE6
_08101E12:
movs r0, 0x1
ands r0, r2
cmp r0, 0
beq _08101E34
ldr r2, =gSprites
movs r0, 0x8
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r4, 0x12]
ldrh r2, [r4, 0x10]
adds r1, r2
b _08101E48
.pool
_08101E34:
ldr r2, =gSprites
movs r3, 0x8
ldrsh r1, [r4, r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r4, 0x10]
ldrh r2, [r4, 0x12]
subs r1, r2
_08101E48:
strh r1, [r0, 0x24]
movs r0, 0x1
strh r0, [r4, 0x14]
b _08101ED4
.pool
_08101E54:
ldr r2, =gSprites
movs r0, 0x8
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r4, 0x10]
strh r1, [r0, 0x24]
movs r0, 0xC
strh r0, [r4, 0xE]
b _08101EA8
.pool
_08101E70:
ldrh r1, [r4, 0xE]
movs r2, 0xE
ldrsh r0, [r4, r2]
cmp r0, 0
beq _08101E80
subs r0, r1, 0x1
strh r0, [r4, 0xE]
b _08101EE6
_08101E80:
movs r0, 0x3
strh r0, [r4, 0xE]
ldr r2, =gSprites
movs r3, 0x8
ldrsh r1, [r4, r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r0, [r0, 0x24]
strh r0, [r4, 0x10]
movs r1, 0xA
ldrsh r0, [r4, r1]
movs r2, 0x8
negs r2, r2
adds r1, r2, 0
cmp r0, 0
bne _08101EA6
movs r1, 0x8
_08101EA6:
strh r1, [r4, 0x12]
_08101EA8:
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
b _08101EE6
.pool
_08101EB4:
movs r3, 0xE
ldrsh r0, [r4, r3]
cmp r0, 0
beq _08101EE0
ldrh r2, [r4, 0x12]
ldrh r0, [r4, 0x10]
adds r2, r0
_08101EC2:
strh r2, [r4, 0x10]
ldr r3, =gSprites
movs r0, 0x8
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
strh r2, [r0, 0x24]
_08101ED4:
ldrh r0, [r4, 0xE]
subs r0, 0x1
strh r0, [r4, 0xE]
b _08101EE6
.pool
_08101EE0:
adds r0, r2, 0
bl DestroyAnimVisualTask
_08101EE6:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8101D2C
thumb_func_start sub_8101EEC
sub_8101EEC: @ 8101EEC
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r1, 0xE
ldrsh r0, [r4, r1]
cmp r0, 0
beq _08101F2C
ldrh r0, [r4, 0x10]
ldrh r1, [r4, 0x12]
subs r0, r1
strh r0, [r4, 0x10]
ldrb r0, [r4, 0x8]
movs r2, 0x80
lsls r2, 1
ldrh r3, [r4, 0x10]
adds r1, r2, 0
bl obj_id_set_rotscale
ldrb r0, [r4, 0x8]
bl sub_80A73A0
ldrh r0, [r4, 0xE]
subs r0, 0x1
strh r0, [r4, 0xE]
b _08101F38
.pool
_08101F2C:
ldrb r0, [r4, 0x8]
bl sub_80A7344
adds r0, r5, 0
bl DestroyAnimVisualTask
_08101F38:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8101EEC
thumb_func_start sub_8101F40
sub_8101F40: @ 8101F40
push {r4-r6,lr}
adds r5, r0, 0
ldr r6, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
bne _08101F5C
ldr r4, =gBattleAnimAttacker
b _08101F5E
.pool
_08101F5C:
ldr r4, =gBattleAnimTarget
_08101F5E:
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]
movs r0, 0
strh r0, [r5, 0x2E]
strh r0, [r5, 0x30]
ldr r1, =sub_810208C
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
str r0, [r5, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8101F40
thumb_func_start sub_8101FA8
sub_8101FA8: @ 8101FA8
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldr r1, =0x0000ffd0
adds r0, r1
strh r0, [r4, 0x20]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
ldr r1, =sub_8102044
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8101FA8
thumb_func_start sub_8101FF0
sub_8101FF0: @ 8101FF0
push {r4-r6,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldr r1, =gBattleAnimArgs
ldr r2, =0x0000ffd0
adds r0, r2
ldrh r1, [r1]
adds r0, r1
movs r6, 0
strh r0, [r4, 0x20]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAnim
strh r6, [r4, 0x2E]
strh r6, [r4, 0x30]
ldr r0, =sub_810208C
str r0, [r4, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8101FF0
thumb_func_start sub_8102044
sub_8102044: @ 8102044
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, 0x8
ble _0810206E
movs r0, 0xC
strh r0, [r4, 0x2E]
movs r0, 0x8
strh r0, [r4, 0x30]
movs r0, 0
strh r0, [r4, 0x32]
ldr r1, =sub_810207C
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A653C
str r0, [r4, 0x1C]
_0810206E:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8102044
thumb_func_start sub_810207C
sub_810207C: @ 810207C
movs r1, 0
strh r1, [r0, 0x2E]
strh r1, [r0, 0x30]
ldr r1, =sub_810208C
str r1, [r0, 0x1C]
bx lr
.pool
thumb_func_end sub_810207C
thumb_func_start sub_810208C
sub_810208C: @ 810208C
push {lr}
adds r3, r0, 0
ldrh r0, [r3, 0x2E]
adds r0, 0x1
strh r0, [r3, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _081020D4
movs r0, 0
strh r0, [r3, 0x2E]
movs r0, 0x3E
adds r0, r3
mov r12, r0
ldrb r2, [r0]
lsrs r1, r2, 2
movs r0, 0x1
eors r1, r0
ands r1, r0
lsls r1, 2
movs r0, 0x5
negs r0, r0
ands r0, r2
orrs r0, r1
mov r1, r12
strb r0, [r1]
ldrh r0, [r3, 0x30]
adds r0, 0x1
strh r0, [r3, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x8
ble _081020D4
adds r0, r3, 0
bl DestroyAnimSprite
_081020D4:
pop {r0}
bx r0
thumb_func_end sub_810208C
thumb_func_start sub_81020D8
sub_81020D8: @ 81020D8
push {r4-r6,lr}
adds r5, r0, 0
ldr r6, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
bne _081020F4
ldr r4, =gBattleAnimAttacker
b _081020F6
.pool
_081020F4:
ldr r4, =gBattleAnimTarget
_081020F6:
ldrb r0, [r4]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6, 0x2]
adds r0, r1
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r6, [r6, 0x4]
adds r0, r6
strh r0, [r5, 0x22]
movs r0, 0
strh r0, [r5, 0x2E]
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x6]
strh r0, [r5, 0x30]
ldr r0, =sub_810213C
str r0, [r5, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81020D8
thumb_func_start sub_810213C
sub_810213C: @ 810213C
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x2E]
adds r0, 0x1
strh r0, [r2, 0x2E]
lsls r0, 16
asrs r0, 16
movs r3, 0x30
ldrsh r1, [r2, r3]
cmp r0, r1
ble _0810215C
movs r0, 0
strh r0, [r2, 0x2E]
ldrh r0, [r2, 0x22]
subs r0, 0x1
strh r0, [r2, 0x22]
_0810215C:
ldrh r0, [r2, 0x22]
ldrh r1, [r2, 0x2E]
subs r0, r1
strh r0, [r2, 0x22]
adds r0, r2, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _08102178
adds r0, r2, 0
bl DestroyAnimSprite
_08102178:
pop {r0}
bx r0
thumb_func_end sub_810213C
thumb_func_start sub_810217C
sub_810217C: @ 810217C
push {r4-r6,lr}
adds r4, r0, 0
ldr r6, =gBattleAnimAttacker
ldrb r0, [r6]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r5, 0
strh r0, [r4, 0x20]
ldrb r0, [r6]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
subs r0, 0xC
strh r0, [r4, 0x22]
strh r5, [r4, 0x2E]
movs r0, 0x2
strh r0, [r4, 0x30]
strh r5, [r4, 0x32]
strh r5, [r4, 0x34]
strh r5, [r4, 0x36]
subs r0, 0x42
bl BattleAnimAdjustPanning
lsls r0, 24
asrs r0, 24
strh r0, [r4, 0x38]
ldr r0, =sub_81021CC
str r0, [r4, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810217C
thumb_func_start sub_81021CC
sub_81021CC: @ 81021CC
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
movs r2, 0x30
ldrsh r1, [r4, r2]
cmp r0, r1
blt _08102238
adds r3, r4, 0
adds r3, 0x3E
ldrb r2, [r3]
lsrs r1, r2, 2
movs r0, 0x1
eors r1, r0
ands r1, r0
lsls r1, 2
movs r0, 0x5
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
movs r1, 0x4
ands r0, r1
cmp r0, 0
bne _0810221E
ldrh r0, [r4, 0x36]
adds r0, 0x1
strh r0, [r4, 0x36]
movs r1, 0x1
ands r0, r1
cmp r0, 0
bne _0810221E
ldrh r1, [r4, 0x38]
lsls r1, 24
asrs r1, 24
movs r0, 0xC2
bl PlaySE12WithPanning
_0810221E:
movs r1, 0
strh r1, [r4, 0x2E]
ldrh r0, [r4, 0x32]
adds r0, 0x1
strh r0, [r4, 0x32]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _08102238
strh r1, [r4, 0x32]
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
_08102238:
adds r0, r4, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _08102262
movs r1, 0x30
ldrsh r0, [r4, r1]
cmp r0, 0x10
ble _08102262
adds r0, r4, 0
adds r0, 0x3E
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _08102262
adds r0, r4, 0
bl DestroyAnimSprite
_08102262:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81021CC
thumb_func_start sub_8102268
sub_8102268: @ 8102268
push {r4-r6,lr}
adds r6, r0, 0
movs r1, 0x2E
ldrsh r0, [r6, r1]
cmp r0, 0
bne _081022B2
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
ldr r5, =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r5]
adds r0, r1
strh r0, [r6, 0x20]
ldrb r0, [r4]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r5, [r5, 0x2]
adds r0, r5
strh r0, [r6, 0x22]
bl IsContest
lsls r0, 24
cmp r0, 0
beq _081022AC
ldrh r0, [r6, 0x22]
adds r0, 0xA
strh r0, [r6, 0x22]
_081022AC:
ldrh r0, [r6, 0x2E]
adds r0, 0x1
strh r0, [r6, 0x2E]
_081022B2:
ldr r0, =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, =0x0000ffff
cmp r1, r0
bne _081022C2
adds r0, r6, 0
bl DestroyAnimSprite
_081022C2:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8102268
thumb_func_start sub_81022D4
sub_81022D4: @ 81022D4
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r1, =gTasks
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r4, r0, r1
movs r1, 0xC
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _08102300
ldr r1, =gBattleAnimArgs
ldr r0, =0x0000ffff
strh r0, [r1, 0xE]
b _0810233E
.pool
_08102300:
cmp r0, 0x2
bne _0810230C
adds r0, r2, 0
bl DestroyAnimVisualTask
b _08102344
_0810230C:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bne _08102344
movs r0, 0
strh r0, [r4, 0x8]
ldrh r2, [r4, 0xA]
adds r2, 0x1
strh r2, [r4, 0xA]
lsls r1, r2, 8
movs r0, 0x10
subs r0, r2
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0xA
ldrsh r0, [r4, r1]
cmp r0, 0x10
bne _08102344
_0810233E:
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
_08102344:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81022D4
thumb_func_start sub_810234C
sub_810234C: @ 810234C
push {r4,lr}
adds r4, r0, 0
movs r1, 0
bl sub_80A6980
adds r2, r4, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
ldr r0, =sub_810237C
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810234C
thumb_func_start sub_810237C
sub_810237C: @ 810237C
push {r4,r5,lr}
adds r5, r0, 0
ldrh r1, [r5, 0x2E]
movs r2, 0x2E
ldrsh r0, [r5, r2]
cmp r0, 0
beq _08102390
subs r0, r1, 0x1
strh r0, [r5, 0x2E]
b _081023CC
_08102390:
adds r2, r5, 0
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r2]
movs r0, 0x1E
strh r0, [r5, 0x2E]
ldr r4, =gBattleAnimAttacker
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, =sub_80A6EEC
str r0, [r5, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
_081023CC:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810237C
thumb_func_start sub_81023E0
sub_81023E0: @ 81023E0
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r4, r0, r1
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bne _08102428
movs r0, 0
strh r0, [r4, 0x8]
ldrh r1, [r4, 0xA]
adds r1, 0x1
strh r1, [r4, 0xA]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0xA
ldrsh r0, [r4, r1]
cmp r0, 0x10
bne _08102428
adds r0, r5, 0
bl DestroyAnimVisualTask
_08102428:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81023E0
thumb_func_start sub_8102434
sub_8102434: @ 8102434
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
movs r4, 0
ldr r0, =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
bcs _08102490
ldr r6, =gBattleAnimArgs
ldr r5, =gHealthboxSpriteIds
_08102448:
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0x1
bne _08102464
adds r0, r4, 0
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08102464
adds r0, r4, r5
ldrb r0, [r0]
bl SetHealthboxSpriteInvisible
_08102464:
movs r1, 0x2
ldrsh r0, [r6, r1]
cmp r0, 0x1
bne _08102482
adds r0, r4, 0
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08102482
adds r0, r4, r5
ldrb r0, [r0]
bl SetHealthboxSpriteInvisible
_08102482:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
bcc _08102448
_08102490:
adds r0, r7, 0
bl DestroyAnimVisualTask
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8102434
thumb_func_start sub_81024A8
sub_81024A8: @ 81024A8
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
b _081024C2
_081024B2:
ldr r0, =gHealthboxSpriteIds
adds r0, r4, r0
ldrb r0, [r0]
bl SetHealthboxSpriteVisible
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
_081024C2:
ldr r0, =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
bcc _081024B2
adds r0, r5, 0
bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81024A8
thumb_func_start sub_81024E0
sub_81024E0: @ 81024E0
push {r4,lr}
adds r4, r0, 0
bl IsContest
lsls r0, 24
cmp r0, 0
beq _081024F6
movs r0, 0x30
strh r0, [r4, 0x20]
movs r0, 0x28
b _081024FE
_081024F6:
ldr r0, =gBattleAnimArgs
ldrh r1, [r0]
strh r1, [r4, 0x20]
ldrh r0, [r0, 0x2]
_081024FE:
strh r0, [r4, 0x22]
ldrb r1, [r4, 0x1]
movs r0, 0x3F
ands r0, r1
strb r0, [r4, 0x1]
ldrb r0, [r4, 0x3]
movs r1, 0xC0
orrs r0, r1
strb r0, [r4, 0x3]
movs r0, 0
strh r0, [r4, 0x2E]
ldr r0, =sub_8102528
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81024E0
thumb_func_start sub_8102528
sub_8102528: @ 8102528
push {lr}
adds r1, r0, 0
movs r2, 0x2E
ldrsh r0, [r1, r2]
cmp r0, 0
beq _0810253A
adds r0, r1, 0
bl DestroyAnimSprite
_0810253A:
pop {r0}
bx r0
thumb_func_end sub_8102528
thumb_func_start sub_8102540
sub_8102540: @ 8102540
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
ldr r2, =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r2]
adds r0, r1
movs r1, 0
strh r0, [r4, 0x20]
ldrh r0, [r2, 0x2]
strh r0, [r4, 0x22]
strh r1, [r4, 0x2E]
strh r1, [r4, 0x30]
strh r1, [r4, 0x32]
strh r1, [r4, 0x34]
movs r0, 0x1
strh r0, [r4, 0x36]
ldr r0, =sub_8102584
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8102540
thumb_func_start sub_8102584
sub_8102584: @ 8102584
push {lr}
adds r1, r0, 0
ldrh r0, [r1, 0x30]
adds r0, 0x1
strh r0, [r1, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _081025AE
movs r0, 0
strh r0, [r1, 0x30]
ldrh r2, [r1, 0x32]
movs r3, 0x32
ldrsh r0, [r1, r3]
cmp r0, 0x77
bgt _081025AE
ldrh r0, [r1, 0x22]
adds r0, 0x1
strh r0, [r1, 0x22]
adds r0, r2, 0x1
strh r0, [r1, 0x32]
_081025AE:
movs r2, 0x2E
ldrsh r0, [r1, r2]
cmp r0, 0
beq _081025BC
adds r0, r1, 0
bl DestroyAnimSprite
_081025BC:
pop {r0}
bx r0
thumb_func_end sub_8102584
thumb_func_start sub_81025C0
sub_81025C0: @ 81025C0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
lsls r0, 24
lsrs r7, r0, 24
movs r4, 0
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80A75AC
mov r8, r0
ldr r0, =0x0000ffff
mov r1, r8
ands r1, r0
mov r8, r1
ldr r0, =gTasks
mov r9, r0
lsls r5, r7, 2
adds r5, r7
lsls r5, 3
adds r6, r5, r0
strh r4, [r6, 0x8]
strh r4, [r6, 0xA]
strh r4, [r6, 0xC]
strh r1, [r6, 0xE]
strh r4, [r6, 0x10]
strh r4, [r6, 0x12]
strh r4, [r6, 0x14]
movs r0, 0xD
strh r0, [r6, 0x16]
movs r0, 0xE
strh r0, [r6, 0x18]
movs r0, 0xF
strh r0, [r6, 0x1A]
movs r0, 0x1
movs r1, 0x1
movs r2, 0x1
movs r3, 0x1
bl sub_80A76C4
mov r10, r0
mov r1, r8
orrs r1, r0
mov r8, r1
movs r0, 0x8
add r9, r0
add r5, r9
adds r0, r5, 0
adds r0, 0x1C
adds r5, 0x1E
adds r1, r5, 0
mov r2, r8
bl sub_80A8048
ldr r0, =0x000027d2
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
movs r4, 0x80
lsls r4, 9
adds r1, r4, 0
lsls r1, r0
mov r0, r10
orrs r0, r1
mov r10, r0
ldr r0, =0x000027d3
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
lsls r4, r0
mov r1, r10
orrs r4, r1
ldr r0, =0x00007fbb
str r0, [sp]
adds r0, r4, 0
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, =sub_81026A8
str r1, [r6]
adds r0, r7, 0
bl _call_via_r1
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81025C0
thumb_func_start sub_81026A8
sub_81026A8: @ 81026A8
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r0, 0x8
ldrsh r1, [r4, r0]
cmp r1, 0x1
beq _08102794
cmp r1, 0x1
bgt _081026D4
cmp r1, 0
beq _081026E2
b _08102832
.pool
_081026D4:
cmp r1, 0x2
bne _081026DA
b _081027EC
_081026DA:
cmp r1, 0x3
bne _081026E0
b _08102820
_081026E0:
b _08102832
_081026E2:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
cmp r0, 0
bgt _081026F0
b _08102832
_081026F0:
strh r1, [r4, 0xA]
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0xF
bgt _0810273C
ldrh r0, [r4, 0x16]
ldrh r1, [r4, 0x10]
adds r0, r1
strh r0, [r4, 0x10]
ldrh r2, [r4, 0x18]
ldrh r3, [r4, 0x12]
adds r2, r3
strh r2, [r4, 0x12]
ldrh r1, [r4, 0x1A]
ldrh r5, [r4, 0x14]
adds r1, r5
strh r1, [r4, 0x14]
lsls r0, 16
asrs r0, 19
lsls r0, 16
lsrs r0, 16
lsls r2, 16
asrs r2, 19
lsls r2, 16
lsls r1, 16
asrs r1, 19
lsls r1, 16
lsrs r2, 11
orrs r0, r2
lsrs r1, 6
orrs r0, r1
lsls r0, 16
lsrs r0, 16
mov r12, r0
b _08102746
_0810273C:
ldr r7, =0x00007fbb
mov r12, r7
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_08102746:
movs r2, 0x1
movs r3, 0
movs r1, 0
_0810274C:
movs r5, 0xE
ldrsh r0, [r4, r5]
ands r0, r2
lsls r5, r2, 17
adds r6, r3, 0
adds r6, 0x10
adds r1, 0x1
mov r8, r1
cmp r0, 0
beq _08102778
movs r1, 0x1
ldr r2, =gPlttBufferFaded
_08102764:
adds r0, r3, r1
lsls r0, 1
adds r0, r2
mov r7, r12
strh r7, [r0]
adds r0, r1, 0x1
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0xF
bls _08102764
_08102778:
lsrs r2, r5, 16
lsls r0, r6, 16
lsrs r3, r0, 16
mov r1, r8
lsls r0, r1, 16
lsrs r1, r0, 16
cmp r1, 0xF
bls _0810274C
b _08102832
.pool
_08102794:
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08102832
movs r2, 0
ldr r3, =gSprites
movs r5, 0x14
adds r5, r3
mov r12, r5
ldr r7, =gUnknown_08592EBC
mov r8, r7
ldr r6, =gBattleAnimSpriteTemplate_8592EEC
movs r5, 0x1
_081027B2:
lsls r0, r2, 4
adds r0, r2
lsls r1, r0, 2
mov r7, r12
adds r0, r1, r7
ldr r0, [r0]
cmp r0, r8
beq _081027C6
cmp r0, r6
bne _081027CA
_081027C6:
adds r0, r1, r3
strh r5, [r0, 0x2E]
_081027CA:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x3F
bls _081027B2
movs r0, 0
strh r0, [r4, 0xA]
b _08102814
.pool
_081027EC:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1E
ble _08102832
movs r1, 0x24
ldrsh r0, [r4, r1]
movs r2, 0x26
ldrsh r1, [r4, r2]
bl sub_80A8050
ldr r1, =0x00007fbb
str r1, [sp]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
_08102814:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _08102832
.pool
_08102820:
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08102832
adds r0, r2, 0
bl DestroyAnimVisualTask
_08102832:
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81026A8
thumb_func_start sub_8102844
sub_8102844: @ 8102844
push {r4-r6,lr}
adds r5, r0, 0
ldr r6, =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r6, r1]
cmp r0, 0x1
bgt _08102856
movs r0, 0x2
strh r0, [r6, 0x4]
_08102856:
movs r1, 0x4
ldrsh r0, [r6, r1]
cmp r0, 0x7F
ble _08102862
movs r0, 0x7F
strh r0, [r6, 0x4]
_08102862:
movs r0, 0
strh r0, [r5, 0x2E]
ldrh r0, [r6, 0x4]
strh r0, [r5, 0x30]
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6]
adds r0, r1
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r6, [r6, 0x2]
adds r0, r6
strh r0, [r5, 0x22]
ldrh r1, [r5, 0x20]
strh r1, [r5, 0x3A]
strh r0, [r5, 0x3C]
bl IsContest
lsls r0, 24
cmp r0, 0
beq _081028D4
ldrb r1, [r5, 0x3]
movs r0, 0x3F
negs r0, r0
ands r0, r1
movs r1, 0x10
orrs r0, r1
strb r0, [r5, 0x3]
ldrh r0, [r5, 0x20]
adds r0, 0x28
strh r0, [r5, 0x20]
ldrh r4, [r5, 0x22]
adds r4, 0x14
strh r4, [r5, 0x22]
lsls r0, 7
strh r0, [r5, 0x32]
movs r0, 0x30
ldrsh r1, [r5, r0]
ldr r0, =0xffffec00
b _081028FA
.pool
_081028D4:
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810291C
ldrh r0, [r5, 0x20]
subs r0, 0x28
strh r0, [r5, 0x20]
ldrh r4, [r5, 0x22]
adds r4, 0x14
strh r4, [r5, 0x22]
lsls r0, 7
strh r0, [r5, 0x32]
movs r0, 0x30
ldrsh r1, [r5, r0]
movs r0, 0xA0
lsls r0, 5
_081028FA:
bl __divsi3
strh r0, [r5, 0x34]
lsls r4, 7
strh r4, [r5, 0x36]
movs r0, 0x30
ldrsh r1, [r5, r0]
ldr r0, =0xfffff600
bl __divsi3
strh r0, [r5, 0x38]
b _08102958
.pool
_0810291C:
ldrh r0, [r5, 0x20]
adds r0, 0x28
strh r0, [r5, 0x20]
ldrh r4, [r5, 0x22]
subs r4, 0x14
strh r4, [r5, 0x22]
lsls r0, 7
strh r0, [r5, 0x32]
movs r0, 0x30
ldrsh r1, [r5, r0]
ldr r0, =0xffffec00
bl __divsi3
strh r0, [r5, 0x34]
lsls r4, 7
strh r4, [r5, 0x36]
movs r0, 0x30
ldrsh r1, [r5, r0]
movs r0, 0xA0
lsls r0, 4
bl __divsi3
strh r0, [r5, 0x38]
ldrb r1, [r5, 0x3]
movs r0, 0x3F
negs r0, r0
ands r0, r1
movs r1, 0x30
orrs r0, r1
strb r0, [r5, 0x3]
_08102958:
ldr r0, =sub_810296C
str r0, [r5, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8102844
thumb_func_start sub_810296C
sub_810296C: @ 810296C
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x34]
ldrh r1, [r2, 0x32]
adds r0, r1
strh r0, [r2, 0x32]
ldrh r1, [r2, 0x38]
ldrh r3, [r2, 0x36]
adds r1, r3
strh r1, [r2, 0x36]
lsls r0, 16
asrs r0, 23
strh r0, [r2, 0x20]
lsls r1, 16
asrs r1, 23
strh r1, [r2, 0x22]
ldrh r0, [r2, 0x30]
subs r0, 0x1
strh r0, [r2, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
bne _081029A2
ldrh r0, [r2, 0x3A]
strh r0, [r2, 0x20]
ldrh r0, [r2, 0x3C]
strh r0, [r2, 0x22]
_081029A2:
movs r1, 0x30
ldrsh r0, [r2, r1]
cmp r0, 0
bne _081029B0
adds r0, r2, 0
bl DestroyAnimSprite
_081029B0:
pop {r0}
bx r0
thumb_func_end sub_810296C
thumb_func_start sub_81029B4
sub_81029B4: @ 81029B4
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r0, 2
add r0, r8
lsls r0, 3
ldr r1, =gTasks
adds r6, r0, r1
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x8]
ldr r0, =0x00002771
bl AllocSpritePalette
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0xA]
movs r1, 0xA
ldrsh r0, [r6, r1]
lsls r0, 20
movs r1, 0x80
lsls r1, 17
adds r0, r1
lsrs r3, r0, 16
ldr r2, =gSprites
movs r0, 0x8
ldrsh r1, [r6, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r0, [r0, 0x5]
lsrs r0, 4
adds r0, 0x10
lsls r4, r0, 4
movs r5, 0x1
ldr r2, =gPlttBufferUnfaded
_08102A0C:
adds r1, r3, r5
lsls r1, 1
adds r1, r2
adds r0, r4, r5
lsls r0, 1
adds r0, r2
ldrh r0, [r0]
strh r0, [r1]
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0xF
bls _08102A0C
adds r0, r3, 0
movs r1, 0x10
movs r2, 0xB
movs r3, 0
bl BlendPalette
movs r0, 0
strh r0, [r6, 0xE]
movs r5, 0
ldr r7, =gSprites
movs r1, 0x1C
adds r1, r7
mov r9, r1
b _08102A88
.pool
_08102A54:
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r4, r2, r7
ldrb r1, [r6, 0xA]
lsls r1, 4
ldrb r3, [r4, 0x5]
movs r0, 0xF
ands r0, r3
orrs r0, r1
strb r0, [r4, 0x5]
movs r0, 0
strh r0, [r4, 0x2E]
lsls r0, r5, 7
strh r0, [r4, 0x30]
mov r0, r8
strh r0, [r4, 0x32]
add r2, r9
ldr r0, =sub_8102B3C
str r0, [r2]
ldrh r0, [r6, 0xE]
adds r0, 0x1
strh r0, [r6, 0xE]
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
_08102A88:
cmp r5, 0x1
bhi _08102A9A
movs r0, 0
bl duplicate_obj_of_side_rel2move_in_transparent_mode
lsls r0, 16
asrs r0, 16
cmp r0, 0
bge _08102A54
_08102A9A:
ldr r0, =sub_8102AE0
str r0, [r6]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08102AC8
movs r1, 0x80
lsls r1, 2
movs r0, 0
bl ClearGpuRegBits
b _08102AD2
.pool
_08102AC8:
movs r1, 0x80
lsls r1, 3
movs r0, 0
bl ClearGpuRegBits
_08102AD2:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81029B4
thumb_func_start sub_8102AE0
sub_8102AE0: @ 8102AE0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, =gTasks
adds r0, r1
movs r1, 0xE
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08102B32
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08102B1C
movs r1, 0x80
lsls r1, 2
movs r0, 0
bl SetGpuRegBits
b _08102B26
.pool
_08102B1C:
movs r1, 0x80
lsls r1, 3
movs r0, 0
bl SetGpuRegBits
_08102B26:
ldr r0, =0x00002771
bl FreeSpritePaletteByTag
adds r0, r4, 0
bl DestroyAnimVisualTask
_08102B32:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8102AE0
thumb_func_start sub_8102B3C
sub_8102B3C: @ 8102B3C
push {r4,r5,lr}
adds r5, r0, 0
ldrh r0, [r5, 0x34]
adds r0, 0x1
strh r0, [r5, 0x34]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _08102B58
movs r0, 0
strh r0, [r5, 0x34]
ldrh r0, [r5, 0x2E]
adds r0, 0x1
strh r0, [r5, 0x2E]
_08102B58:
movs r1, 0x2E
ldrsh r0, [r5, r1]
cmp r0, 0x40
ble _08102B80
ldr r2, =gTasks
movs r0, 0x32
ldrsh r1, [r5, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldrh r1, [r0, 0xE]
subs r1, 0x1
strh r1, [r0, 0xE]
adds r0, r5, 0
bl obj_delete_but_dont_free_vram
b _08102BC2
.pool
_08102B80:
ldr r4, =gSineTable
movs r1, 0x2E
ldrsh r0, [r5, r1]
lsls r0, 1
adds r0, r4
movs r2, 0
ldrsh r0, [r0, r2]
movs r1, 0x6
bl __divsi3
strh r0, [r5, 0x36]
movs r1, 0x2E
ldrsh r0, [r5, r1]
lsls r0, 1
adds r0, r4
movs r2, 0
ldrsh r0, [r0, r2]
movs r1, 0xD
bl __divsi3
strh r0, [r5, 0x38]
ldrh r1, [r5, 0x30]
adds r1, r0
movs r0, 0xFF
ands r1, r0
strh r1, [r5, 0x30]
movs r1, 0x30
ldrsh r0, [r5, r1]
movs r2, 0x36
ldrsh r1, [r5, r2]
bl Sin
strh r0, [r5, 0x24]
_08102BC2:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8102B3C
thumb_func_start sub_8102BCC
sub_8102BCC: @ 8102BCC
push {r4,lr}
adds r4, r0, 0
ldr r1, =DestroyAnimSprite
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8102BCC
thumb_func_start sub_8102BE8
sub_8102BE8: @ 8102BE8
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r0, 24
mov r9, r0
ldr r4, =gUnknown_08593020
ldrh r0, [r4]
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0xFF
beq _08102C2C
lsls r0, r3, 20
movs r1, 0x80
lsls r1, 17
adds r0, r1
lsrs r3, r0, 16
movs r2, 0x1
ldr r5, =gPlttBufferFaded
_08102C14:
adds r1, r3, r2
lsls r1, 1
adds r1, r5
lsls r0, r2, 1
adds r0, r4
ldrh r0, [r0]
strh r0, [r1]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0x5
bls _08102C14
_08102C2C:
movs r4, 0x1
ldr r0, =gUnknown_08593020
mov r8, r0
_08102C32:
lsls r0, r4, 1
adds r0, r4
lsls r5, r0, 2
mov r1, r8
adds r0, r5, r1
ldrh r0, [r0]
bl AllocSpritePalette
lsls r0, 24
lsrs r3, r0, 24
adds r4, 0x1
mov r12, r4
cmp r3, 0xFF
beq _08102C7A
lsls r0, r3, 20
movs r1, 0x80
lsls r1, 17
adds r0, r1
lsrs r3, r0, 16
movs r2, 0x1
ldr r7, =gPlttBufferFaded
ldr r6, =gUnknown_08593020
adds r4, r5, 0
_08102C60:
adds r1, r3, r2
lsls r1, 1
adds r1, r7
lsls r0, r2, 1
adds r0, r4
adds r0, r6
ldrh r0, [r0]
strh r0, [r1]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0x5
bls _08102C60
_08102C7A:
mov r1, r12
lsls r0, r1, 16
lsrs r4, r0, 16
cmp r4, 0x3
bls _08102C32
mov r0, r9
bl DestroyAnimVisualTask
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8102BE8
thumb_func_start sub_8102CA0
sub_8102CA0: @ 8102CA0
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0x1
ldr r6, =gUnknown_08593020
_08102CAA:
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
adds r0, r6
ldrh r0, [r0]
bl FreeSpritePaletteByTag
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0x3
bls _08102CAA
adds r0, r5, 0
bl DestroyAnimVisualTask
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8102CA0
thumb_func_start sub_8102CD4
sub_8102CD4: @ 8102CD4
push {r4-r6,lr}
sub sp, 0x4
adds r5, r0, 0
bl sub_80A6838
ldr r4, =gBattleAnimArgs
ldrb r1, [r4]
adds r0, r5, 0
bl StartSpriteAnim
ldr r2, =gUnknown_08593020
movs r0, 0x2
ldrsh r1, [r4, r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r0, [r0]
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
beq _08102D10
lsls r2, r0, 4
ldrb r1, [r5, 0x5]
movs r0, 0xF
ands r0, r1
orrs r0, r2
strb r0, [r5, 0x5]
_08102D10:
ldrh r0, [r4, 0x2]
movs r1, 0
strh r0, [r5, 0x30]
strh r1, [r5, 0x32]
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x34]
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08102D34
movs r6, 0x30
movs r3, 0x28
b _08102D4E
.pool
_08102D34:
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r3, r0, 24
_08102D4E:
ldrh r0, [r5, 0x20]
lsls r1, r0, 4
strh r1, [r5, 0x36]
ldrh r1, [r5, 0x22]
lsls r2, r1, 4
strh r2, [r5, 0x38]
subs r0, r6, r0
lsls r0, 16
asrs r0, 16
subs r1, r3, r1
lsls r1, 16
asrs r1, 16
adds r2, r5, 0
adds r2, 0x3A
adds r3, r5, 0
adds r3, 0x3C
movs r4, 0x28
str r4, [sp]
bl sub_8102D8C
ldr r0, =sub_8102DE4
str r0, [r5, 0x1C]
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8102CD4
thumb_func_start sub_8102D8C
sub_8102D8C: @ 8102D8C
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r7, r2, 0
mov r8, r3
ldr r2, [sp, 0x18]
lsls r1, 16
lsrs r6, r1, 16
lsls r2, 24
lsrs r1, r2, 24
lsls r0, 16
asrs r2, r0, 16
cmp r2, 0
bge _08102DAE
lsls r0, r1, 24
negs r0, r0
lsrs r1, r0, 24
_08102DAE:
lsls r5, r2, 8
lsls r1, 24
asrs r1, 24
adds r0, r5, 0
bl __divsi3
adds r4, r0, 0
cmp r4, 0
bne _08102DC2
movs r4, 0x1
_08102DC2:
adds r0, r5, 0
adds r1, r4, 0
bl __divsi3
strh r0, [r7]
lsls r0, r6, 16
asrs r0, 8
adds r1, r4, 0
bl __divsi3
mov r1, r8
strh r0, [r1]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8102D8C
thumb_func_start sub_8102DE4
sub_8102DE4: @ 8102DE4
push {r4,r5,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x2E]
adds r0, 0x1
movs r5, 0
strh r0, [r4, 0x2E]
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 2
adds r1, r0, r1
adds r0, r1, 0
cmp r1, 0
bge _08102E00
adds r0, 0xFF
_08102E00:
asrs r0, 8
lsls r0, 8
subs r0, r1, r0
ldrh r1, [r4, 0x3A]
ldrh r2, [r4, 0x36]
adds r1, r2
strh r1, [r4, 0x36]
ldrh r2, [r4, 0x3C]
ldrh r3, [r4, 0x38]
adds r2, r3
strh r2, [r4, 0x38]
lsls r1, 16
asrs r1, 20
strh r1, [r4, 0x20]
lsls r2, 16
asrs r2, 20
strh r2, [r4, 0x22]
lsls r0, 16
asrs r0, 16
movs r1, 0xF
bl Sin
strh r0, [r4, 0x26]
ldrh r2, [r4, 0x22]
ldrh r0, [r4, 0x20]
adds r0, 0x10
lsls r0, 16
movs r1, 0x88
lsls r1, 17
cmp r0, r1
bhi _08102E4E
lsls r0, r2, 16
asrs r1, r0, 16
movs r0, 0x10
negs r0, r0
cmp r1, r0
blt _08102E4E
cmp r1, 0x80
ble _08102E56
_08102E4E:
adds r0, r4, 0
bl move_anim_8074EE0
b _08102EA6
_08102E56:
movs r0, 0x34
ldrsh r1, [r4, r0]
cmp r1, 0
beq _08102EA6
ldrh r0, [r4, 0x32]
adds r0, 0x1
strh r0, [r4, 0x32]
lsls r0, 16
asrs r0, 16
cmp r0, r1
ble _08102EA6
strh r5, [r4, 0x32]
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3
ble _08102E7E
strh r5, [r4, 0x30]
_08102E7E:
ldr r2, =gUnknown_08593020
movs r3, 0x30
ldrsh r1, [r4, r3]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r0, [r0]
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
beq _08102EA6
lsls r2, r0, 4
ldrb r1, [r4, 0x5]
movs r0, 0xF
ands r0, r1
orrs r0, r2
strb r0, [r4, 0x5]
_08102EA6:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8102DE4
thumb_func_start sub_8102EB0
sub_8102EB0: @ 8102EB0
push {r4-r7,lr}
adds r6, r0, 0
ldr r7, =gBattleAnimAttacker
ldrb r0, [r7]
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08102ECE
ldr r1, =gBattleAnimArgs
movs r2, 0x2
ldrsh r0, [r1, r2]
negs r0, r0
strh r0, [r1, 0x2]
_08102ECE:
ldrb r0, [r7]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4, 0x2]
adds r0, r1
movs r5, 0
strh r0, [r6, 0x20]
ldrb r0, [r7]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r2, [r4, 0x4]
adds r0, r2
strh r0, [r6, 0x22]
ldrb r1, [r4]
adds r0, r6, 0
bl StartSpriteAnim
strh r5, [r6, 0x32]
strh r5, [r6, 0x34]
ldrh r0, [r6, 0x20]
lsls r0, 4
strh r0, [r6, 0x36]
ldrh r0, [r6, 0x22]
lsls r0, 4
strh r0, [r6, 0x38]
movs r1, 0x2
ldrsh r0, [r4, r1]
lsls r0, 4
movs r1, 0x5
bl __divsi3
strh r0, [r6, 0x3A]
movs r2, 0x4
ldrsh r0, [r4, r2]
lsls r0, 7
movs r1, 0x5
bl __divsi3
strh r0, [r6, 0x3C]
ldr r0, =sub_8102F40
str r0, [r6, 0x1C]
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8102EB0
thumb_func_start sub_8102F40
sub_8102F40: @ 8102F40
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x3A]
ldrh r1, [r4, 0x36]
adds r0, r1
strh r0, [r4, 0x36]
ldrh r1, [r4, 0x3C]
ldrh r2, [r4, 0x38]
adds r1, r2
strh r1, [r4, 0x38]
lsls r0, 16
asrs r0, 20
strh r0, [r4, 0x20]
lsls r1, 16
asrs r1, 20
strh r1, [r4, 0x22]
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0x5
ble _08102F9E
movs r2, 0x34
ldrsh r0, [r4, r2]
cmp r0, 0
bne _08102F9E
ldrh r0, [r4, 0x32]
adds r0, 0x10
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x32]
movs r1, 0x32
ldrsh r0, [r4, r1]
movs r1, 0x12
bl Cos
strh r0, [r4, 0x24]
movs r2, 0x32
ldrsh r0, [r4, r2]
movs r1, 0x12
bl Sin
strh r0, [r4, 0x26]
movs r1, 0x32
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08102F9E
movs r0, 0x1
strh r0, [r4, 0x34]
_08102F9E:
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x30
bne _08102FB2
adds r0, r4, 0
bl move_anim_8074EE0
_08102FB2:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8102F40
thumb_func_start sub_8102FB8
sub_8102FB8: @ 8102FB8
push {r4-r6,lr}
adds r5, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x1
bne _08102FDC
ldrb r0, [r5, 0x3]
movs r1, 0x3F
negs r1, r1
ands r1, r0
movs r0, 0x10
orrs r1, r0
strb r1, [r5, 0x3]
movs r6, 0x10
b _08102FDE
.pool
_08102FDC:
ldr r6, =0x0000fff0
_08102FDE:
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r6
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, 0x8
strh r0, [r5, 0x22]
movs r0, 0x8
strh r0, [r5, 0x2E]
ldr r0, =sub_80A64B0
str r0, [r5, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8102FB8
thumb_func_start sub_8103028
sub_8103028: @ 8103028
push {r4,r5,lr}
adds r4, r0, 0
bl sub_80A6838
ldrh r0, [r4, 0x22]
adds r0, 0x8
strh r0, [r4, 0x22]
ldr r5, =gBattleAnimArgs
ldrb r1, [r5, 0x2]
adds r0, r4, 0
bl StartSpriteAnim
ldr r2, =gUnknown_08593020
movs r0, 0x4
ldrsh r1, [r5, r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r0, [r0]
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
beq _08103068
lsls r2, r0, 4
ldrb r1, [r4, 0x5]
movs r0, 0xF
ands r0, r1
orrs r0, r2
strb r0, [r4, 0x5]
_08103068:
movs r1, 0
ldrsh r0, [r5, r1]
movs r2, 0x20
cmp r0, 0
bne _08103074
ldr r2, =0x0000ffe0
_08103074:
movs r0, 0x28
strh r0, [r4, 0x2E]
ldrh r1, [r4, 0x20]
strh r1, [r4, 0x30]
lsls r0, r2, 16
asrs r0, 16
adds r0, r1
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
subs r0, 0x28
strh r0, [r4, 0x36]
adds r0, r4, 0
bl obj_translate_based_on_private_1_2_3_4
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x38]
ldr r0, =sub_81030B0
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8103028
thumb_func_start sub_81030B0
sub_81030B0: @ 81030B0
push {r4,lr}
adds r4, r0, 0
bl sub_80A6F3C
lsls r0, 24
cmp r0, 0
bne _08103100
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r1, 0x8
bl Sin
lsls r0, 16
lsrs r1, r0, 16
ldrh r2, [r4, 0x24]
movs r3, 0x24
ldrsh r0, [r4, r3]
cmp r0, 0
bge _081030DC
lsls r0, r1, 16
negs r0, r0
lsrs r1, r0, 16
_081030DC:
lsls r0, r1, 16
asrs r0, 16
adds r0, r2
strh r0, [r4, 0x24]
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r1, 0x4
bl Sin
ldrh r3, [r4, 0x26]
adds r0, r3
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x38]
adds r0, 0x8
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x38]
b _08103106
_08103100:
adds r0, r4, 0
bl DestroyAnimSprite
_08103106:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81030B0
thumb_func_start sub_810310C
sub_810310C: @ 810310C
push {r4-r6,lr}
adds r6, r1, 0
lsls r0, 24
lsrs r5, r0, 24
adds r0, r5, 0
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810312C
adds r0, r5, 0
movs r1, 0x5
bl sub_80A861C
adds r0, 0x8
b _08103136
_0810312C:
adds r0, r5, 0
movs r1, 0x4
bl sub_80A861C
subs r0, 0x8
_08103136:
strh r0, [r6, 0x20]
adds r0, r5, 0
movs r1, 0x3
bl GetBattlerSpriteCoord
adds r4, r0, 0
adds r0, r5, 0
movs r1, 0
bl sub_80A861C
lsls r4, 24
lsrs r4, 24
lsls r0, 16
asrs r0, 16
cmp r0, 0
bge _08103158
adds r0, 0x3
_08103158:
asrs r0, 2
subs r0, r4, r0
strh r0, [r6, 0x22]
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_810310C
thumb_func_start sub_8103164
sub_8103164: @ 8103164
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08103180
ldr r0, =gBattleAnimAttacker
b _08103182
.pool
_08103180:
ldr r0, =gBattleAnimTarget
_08103182:
ldrb r4, [r0]
adds r0, r4, 0
adds r1, r5, 0
bl sub_810310C
adds r0, r4, 0
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
negs r1, r0
orrs r1, r0
lsrs r1, 31
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x2]
strh r0, [r5, 0x2E]
adds r0, r1, 0x2
strh r0, [r5, 0x30]
adds r0, r5, 0
bl StartSpriteAnim
ldr r1, =sub_81031D0
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8103164
thumb_func_start sub_81031D0
sub_81031D0: @ 81031D0
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x2E]
subs r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
cmp r0, 0
bne _081031F8
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldrh r1, [r4, 0x30]
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl StartSpriteAnim
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
_081031F8:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81031D0
thumb_func_start sub_8103208
sub_8103208: @ 8103208
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08103224
ldr r0, =gBattleAnimAttacker
b _08103226
.pool
_08103224:
ldr r0, =gBattleAnimTarget
_08103226:
ldrb r0, [r0]
adds r1, r4, 0
bl sub_810310C
movs r0, 0
strh r0, [r4, 0x2E]
ldr r1, =sub_8103250
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67BC
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8103208
thumb_func_start sub_8103250
sub_8103250: @ 8103250
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, 0x10
ble _08103276
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
ldr r1, =move_anim_8074EE0
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67BC
str r0, [r4, 0x1C]
_08103276:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8103250
thumb_func_start sub_8103284
sub_8103284: @ 8103284
push {r4-r6,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _081032A0
ldr r0, =gBattleAnimAttacker
b _081032A2
.pool
_081032A0:
ldr r0, =gBattleAnimTarget
_081032A2:
ldrb r5, [r0]
adds r0, r5, 0
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r6, 0
strh r0, [r4, 0x20]
adds r0, r5, 0
movs r1, 0x2
bl sub_80A861C
strh r0, [r4, 0x22]
lsls r0, 16
asrs r0, 16
cmp r0, 0x9
bgt _081032CA
movs r0, 0xA
strh r0, [r4, 0x22]
_081032CA:
movs r0, 0x1
strh r0, [r4, 0x2E]
strh r6, [r4, 0x30]
adds r1, r4, 0
adds r1, 0x43
ldrb r0, [r1]
strh r0, [r4, 0x32]
ldrb r0, [r1]
adds r0, 0x4
strh r0, [r4, 0x34]
strh r6, [r4, 0x36]
ldr r1, =sub_8103300
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67BC
str r0, [r4, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8103284
thumb_func_start sub_8103300
sub_8103300: @ 8103300
push {lr}
adds r1, r0, 0
ldrh r0, [r1, 0x36]
adds r0, 0x1
strh r0, [r1, 0x36]
lsls r0, 16
asrs r0, 16
cmp r0, 0xC
ble _08103316
ldr r0, =sub_8103320
str r0, [r1, 0x1C]
_08103316:
pop {r0}
bx r0
.pool
thumb_func_end sub_8103300
thumb_func_start sub_8103320
sub_8103320: @ 8103320
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x30]
adds r1, r0, 0x4
strh r1, [r2, 0x30]
lsls r0, r1, 16
asrs r0, 16
cmp r0, 0xFE
ble _08103352
ldrh r0, [r2, 0x2E]
subs r0, 0x1
strh r0, [r2, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0
bne _0810334C
strh r0, [r2, 0x24]
ldr r0, =sub_8103250
str r0, [r2, 0x1C]
b _08103388
.pool
_0810334C:
movs r0, 0xFF
ands r1, r0
strh r1, [r2, 0x30]
_08103352:
movs r1, 0x30
ldrsh r0, [r2, r1]
cmp r0, 0x4F
ble _08103362
ldrh r0, [r2, 0x34]
adds r1, r2, 0
adds r1, 0x43
strb r0, [r1]
_08103362:
movs r3, 0x30
ldrsh r0, [r2, r3]
cmp r0, 0x9F
ble _08103372
ldrh r0, [r2, 0x32]
adds r1, r2, 0
adds r1, 0x43
strb r0, [r1]
_08103372:
ldr r1, =gSineTable
movs r3, 0x30
ldrsh r0, [r2, r3]
lsls r0, 1
adds r0, r1
ldrh r0, [r0]
lsls r0, 16
asrs r0, 19
asrs r1, r0, 1
adds r0, r1
strh r0, [r2, 0x24]
_08103388:
pop {r0}
bx r0
.pool
thumb_func_end sub_8103320
thumb_func_start sub_8103390
sub_8103390: @ 8103390
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _081033AC
ldr r0, =gBattleAnimAttacker
b _081033AE
.pool
_081033AC:
ldr r0, =gBattleAnimTarget
_081033AE:
ldrb r4, [r0]
adds r0, r4, 0
adds r1, r5, 0
bl sub_810310C
adds r0, r4, 0
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _081033D4
adds r0, r5, 0
movs r1, 0
bl StartSpriteAnim
movs r0, 0x2
b _081033DE
.pool
_081033D4:
adds r0, r5, 0
movs r1, 0x1
bl StartSpriteAnim
movs r0, 0x3
_081033DE:
strh r0, [r5, 0x2E]
ldr r0, =sub_81033F0
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8103390
thumb_func_start sub_81033F0
sub_81033F0: @ 81033F0
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0xA
ble _0810341E
movs r0, 0
strh r0, [r4, 0x30]
ldrh r1, [r4, 0x2E]
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl StartSpriteAnim
ldr r1, =sub_810342C
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
_0810341E:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81033F0
thumb_func_start sub_810342C
sub_810342C: @ 810342C
push {lr}
adds r1, r0, 0
ldrh r0, [r1, 0x30]
adds r0, 0x1
strh r0, [r1, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x5
ble _08103444
adds r0, r1, 0
bl DestroyAnimSprite
_08103444:
pop {r0}
bx r0
thumb_func_end sub_810342C
thumb_func_start sub_8103448
sub_8103448: @ 8103448
push {r4,r5,lr}
adds r4, r0, 0
bl sub_80A6838
ldr r5, =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
bl sub_80A6864
ldrh r0, [r5, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x30]
ldrh r0, [r5, 0x8]
strh r0, [r4, 0x32]
ldrh r0, [r5, 0xA]
strh r0, [r4, 0x34]
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x36]
ldr r1, =move_anim_8074EE0
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r1, =sub_80A6450
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8103448
thumb_func_start sub_8103498
sub_8103498: @ 8103498
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _081034B4
ldr r0, =gBattleAnimAttacker
b _081034B6
.pool
_081034B4:
ldr r0, =gBattleAnimTarget
_081034B6:
ldrb r0, [r0]
adds r1, r4, 0
bl sub_810310C
movs r0, 0
strh r0, [r4, 0x2E]
strh r0, [r4, 0x30]
ldr r0, =sub_81034D8
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8103498
thumb_func_start sub_81034D8
sub_81034D8: @ 81034D8
push {lr}
adds r1, r0, 0
movs r2, 0x2E
ldrsh r0, [r1, r2]
cmp r0, 0x1
beq _0810350A
cmp r0, 0x1
bgt _081034EE
cmp r0, 0
beq _081034F4
b _08103538
_081034EE:
cmp r0, 0x2
beq _08103524
b _08103538
_081034F4:
ldrh r0, [r1, 0x26]
subs r0, 0x3
strh r0, [r1, 0x26]
ldrh r0, [r1, 0x30]
adds r0, 0x1
strh r0, [r1, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x6
bne _08103538
b _0810351C
_0810350A:
ldrh r0, [r1, 0x26]
adds r0, 0x3
strh r0, [r1, 0x26]
ldrh r0, [r1, 0x30]
subs r0, 0x1
strh r0, [r1, 0x30]
lsls r0, 16
cmp r0, 0
bne _08103538
_0810351C:
ldrh r0, [r1, 0x2E]
adds r0, 0x1
strh r0, [r1, 0x2E]
b _08103538
_08103524:
ldrh r0, [r1, 0x30]
adds r0, 0x1
strh r0, [r1, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x40
bne _08103538
adds r0, r1, 0
bl DestroyAnimSprite
_08103538:
pop {r0}
bx r0
thumb_func_end sub_81034D8
thumb_func_start sub_810353C
sub_810353C: @ 810353C
push {r4,lr}
adds r4, r0, 0
ldr r3, =gSprites
movs r0, 0x32
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r1, [r4, 0x30]
ldrh r2, [r0, 0x24]
adds r1, r2
strh r1, [r0, 0x24]
movs r1, 0x30
ldrsh r0, [r4, r1]
negs r0, r0
strh r0, [r4, 0x30]
movs r0, 0x2E
ldrsh r2, [r4, r0]
cmp r2, 0
bne _0810357A
movs r0, 0x32
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
strh r2, [r0, 0x24]
adds r0, r4, 0
bl move_anim_8074EE0
_0810357A:
ldrh r0, [r4, 0x2E]
subs r0, 0x1
strh r0, [r4, 0x2E]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810353C
thumb_func_start sub_810358C
sub_810358C: @ 810358C
push {r4-r6,lr}
adds r5, r0, 0
ldr r4, =gBattleAnimAttacker
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, =gBattlerSpriteIds
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r0, r1
ldrb r6, [r0]
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _081035E4
ldr r0, =gBattleAnimArgs
ldrh r1, [r5, 0x20]
ldrh r2, [r0]
subs r1, r2
strh r1, [r5, 0x20]
adds r1, r0, 0
b _081035EE
.pool
_081035E4:
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r5, 0x20]
adds r0, r2
strh r0, [r5, 0x20]
_081035EE:
ldrh r0, [r1, 0x2]
ldrh r2, [r5, 0x22]
adds r0, r2
strh r0, [r5, 0x22]
ldrh r0, [r1, 0x4]
strh r0, [r5, 0x2E]
ldrh r0, [r1, 0x6]
strh r0, [r5, 0x30]
strh r6, [r5, 0x32]
ldr r0, =sub_810353C
str r0, [r5, 0x1C]
adds r2, r5, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810358C
thumb_func_start sub_8103620
sub_8103620: @ 8103620
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x38]
ldr r0, =sub_80A64B0
str r0, [r4, 0x1C]
ldr r1, =sub_8103658
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8103620
thumb_func_start sub_8103658
sub_8103658: @ 8103658
push {lr}
ldrh r1, [r0, 0x30]
strh r1, [r0, 0x2E]
ldrh r1, [r0, 0x20]
strh r1, [r0, 0x32]
ldrh r1, [r0, 0x22]
adds r1, 0xF
strh r1, [r0, 0x36]
ldr r1, =sub_80A6EEC
str r1, [r0, 0x1C]
ldr r1, =sub_8103680
bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.pool
thumb_func_end sub_8103658
thumb_func_start sub_8103680
sub_8103680: @ 8103680
push {lr}
adds r1, r0, 0
ldrh r2, [r1, 0x38]
movs r3, 0x38
ldrsh r0, [r1, r3]
cmp r0, 0
bne _08103696
adds r0, r1, 0
bl DestroyAnimSprite
b _0810369A
_08103696:
subs r0, r2, 0x1
strh r0, [r1, 0x38]
_0810369A:
pop {r0}
bx r0
thumb_func_end sub_8103680
thumb_func_start sub_81036A0
sub_81036A0: @ 81036A0
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r1, =gBattlerSpriteIds
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
movs r1, 0
bl sub_80A7270
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, =sub_81036DC
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81036A0
thumb_func_start sub_81036DC
sub_81036DC: @ 81036DC
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =gBattlerSpriteIds
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r1, r0, r1
ldrb r4, [r1]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08103718
ldr r1, =gTasks
lsls r2, r5, 2
adds r0, r2, r5
lsls r0, 3
adds r0, r1
ldrh r0, [r0, 0x8]
negs r0, r0
lsls r0, 16
lsrs r3, r0, 16
adds r6, r2, 0
b _08103726
.pool
_08103718:
ldr r2, =gTasks
lsls r1, r5, 2
adds r0, r1, r5
lsls r0, 3
adds r0, r2
ldrh r3, [r0, 0x8]
adds r6, r1, 0
_08103726:
movs r2, 0x80
lsls r2, 1
adds r0, r4, 0
adds r1, r2, 0
bl obj_id_set_rotscale
ldr r1, =gTasks
adds r0, r6, r5
lsls r0, 3
adds r1, r0, r1
movs r2, 0xA
ldrsh r0, [r1, r2]
cmp r0, 0
bne _08103760
ldrh r0, [r1, 0x8]
adds r0, 0xB0
strh r0, [r1, 0x8]
ldr r1, =gSprites
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r0, r1
ldrh r1, [r0, 0x26]
adds r1, 0x1
b _0810378A
.pool
_08103760:
cmp r0, 0x1
bne _08103776
ldrh r0, [r1, 0xE]
adds r0, 0x1
strh r0, [r1, 0xE]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1E
bne _081037D0
movs r0, 0x2
b _081037CE
_08103776:
ldrh r0, [r1, 0x8]
subs r0, 0xB0
strh r0, [r1, 0x8]
ldr r1, =gSprites
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r0, r1
ldrh r1, [r0, 0x26]
subs r1, 0x1
_0810378A:
strh r1, [r0, 0x26]
adds r0, r4, 0
bl sub_80A73A0
ldr r0, =gTasks
adds r1, r6, r5
lsls r1, 3
adds r1, r0
movs r3, 0x8
ldrsh r2, [r1, r3]
movs r0, 0xF2
lsls r0, 4
cmp r2, r0
beq _081037AA
cmp r2, 0
bne _081037D0
_081037AA:
ldrh r2, [r1, 0xA]
movs r3, 0xA
ldrsh r0, [r1, r3]
cmp r0, 0x2
bne _081037CC
adds r0, r4, 0
bl sub_80A7344
adds r0, r5, 0
bl DestroyAnimVisualTask
b _081037D0
.pool
_081037CC:
adds r0, r2, 0x1
_081037CE:
strh r0, [r1, 0xA]
_081037D0:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81036DC
thumb_func_start sub_81037D8
sub_81037D8: @ 81037D8
push {r4,r5,lr}
adds r4, r0, 0
bl sub_80A6838
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08103804
ldr r0, =gBattleAnimArgs
ldrh r1, [r4, 0x20]
ldrh r2, [r0]
subs r1, r2
strh r1, [r4, 0x20]
adds r5, r0, 0
b _08103810
.pool
_08103804:
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
strh r0, [r4, 0x20]
adds r5, r1, 0
_08103810:
ldrh r0, [r5, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810384C
adds r3, r4, 0
adds r3, 0x3F
ldrb r0, [r3]
movs r1, 0x1
adds r2, r0, 0
orrs r2, r1
strb r2, [r3]
movs r1, 0x4
ldrsh r0, [r5, r1]
cmp r0, 0
beq _08103860
movs r0, 0x2
orrs r2, r0
strb r2, [r3]
b _08103860
.pool
_0810384C:
movs r2, 0x4
ldrsh r0, [r5, r2]
cmp r0, 0
beq _08103860
adds r2, r4, 0
adds r2, 0x3F
ldrb r0, [r2]
movs r1, 0x2
orrs r0, r1
strb r0, [r2]
_08103860:
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81037D8
thumb_func_start sub_810387C
sub_810387C: @ 810387C
push {r4,lr}
adds r4, r0, 0
movs r1, 0
bl sub_80A69CC
ldr r0, =sub_80A67BC
str r0, [r4, 0x1C]
ldr r1, =sub_81038A0
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810387C
thumb_func_start sub_81038A0
sub_81038A0: @ 81038A0
push {lr}
movs r1, 0x6
strh r1, [r0, 0x2E]
ldrh r1, [r0, 0x20]
strh r1, [r0, 0x32]
ldrh r1, [r0, 0x22]
subs r1, 0x20
strh r1, [r0, 0x36]
ldr r1, =sub_80A6EEC
str r1, [r0, 0x1C]
ldr r1, =DestroyAnimSprite
bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.pool
thumb_func_end sub_81038A0
thumb_func_start sub_81038C8
sub_81038C8: @ 81038C8
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
adds r5, r0, 0
bl IsContest
lsls r0, 24
cmp r0, 0
beq _081038EC
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
b _0810390E
.pool
_081038EC:
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810390E
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
ldrh r0, [r1, 0x2]
negs r0, r0
strh r0, [r1, 0x2]
ldrh r0, [r1, 0x6]
negs r0, r0
strh r0, [r1, 0x6]
_0810390E:
adds r0, r5, 0
movs r1, 0x1
bl sub_80A69CC
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
ldr r6, =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r6, 0x4]
adds r0, r1
lsls r0, 16
lsrs r0, 16
mov r8, r0
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r2, [r6, 0x6]
adds r0, r2
lsls r0, 16
lsrs r0, 16
adds r7, r0, 0
ldrh r1, [r5, 0x20]
mov r2, r8
lsls r0, r2, 16
asrs r0, 16
subs r0, r1
lsls r0, 16
asrs r0, 16
ldrh r2, [r5, 0x22]
lsls r1, r7, 16
asrs r1, 16
subs r1, r2
lsls r1, 16
asrs r1, 16
bl sub_80A74F4
lsls r0, 16
movs r1, 0xF0
lsls r1, 24
adds r0, r1
lsrs r4, r0, 16
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08103980
ldr r2, =0xffffa000
adds r0, r4, r2
lsls r0, 16
lsrs r4, r0, 16
_08103980:
movs r3, 0x80
lsls r3, 1
str r4, [sp]
adds r0, r5, 0
movs r1, 0
adds r2, r3, 0
bl sub_80A73E0
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
mov r0, r8
strh r0, [r5, 0x32]
strh r7, [r5, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r5, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81038C8
thumb_func_start sub_81039CC
sub_81039CC: @ 81039CC
push {lr}
adds r3, r0, 0
ldrh r0, [r3, 0x2E]
subs r1, r0, 0x1
strh r1, [r3, 0x2E]
lsls r0, 16
cmp r0, 0
bgt _081039F6
ldr r2, =gTasks
movs r0, 0x3C
ldrsh r1, [r3, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldrh r1, [r0, 0xA]
subs r1, 0x1
strh r1, [r0, 0xA]
adds r0, r3, 0
bl DestroySprite
_081039F6:
pop {r0}
bx r0
.pool
thumb_func_end sub_81039CC
thumb_func_start sub_8103A00
sub_8103A00: @ 8103A00
push {r4,lr}
adds r2, r0, 0
movs r0, 0x3C
ldrsh r1, [r2, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r3, 0x2E
ldrsh r1, [r2, r3]
movs r3, 0x12
ldrsh r0, [r4, r3]
cmp r1, r0
ble _08103A34
ldrh r0, [r2, 0x34]
ldrh r1, [r2, 0x38]
adds r0, r1
strh r0, [r2, 0x38]
ldrh r0, [r2, 0x36]
ldrh r3, [r2, 0x3A]
adds r0, r3
b _08103A42
.pool
_08103A34:
ldrh r0, [r2, 0x38]
ldrh r1, [r2, 0x34]
subs r0, r1
strh r0, [r2, 0x38]
ldrh r0, [r2, 0x3A]
ldrh r1, [r2, 0x36]
subs r0, r1
_08103A42:
strh r0, [r2, 0x3A]
ldrh r0, [r2, 0x38]
ldrh r1, [r2, 0x30]
adds r3, r0, r1
strh r3, [r2, 0x30]
ldrh r0, [r2, 0x3A]
ldrh r1, [r2, 0x32]
adds r0, r1
strh r0, [r2, 0x32]
ldrh r1, [r4, 0x16]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08103A66
lsls r0, r3, 16
lsrs r0, 24
negs r0, r0
b _08103A6A
_08103A66:
lsls r0, r3, 16
lsrs r0, 24
_08103A6A:
strh r0, [r2, 0x24]
ldrh r1, [r4, 0x18]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08103A7E
ldrh r0, [r2, 0x32]
lsrs r0, 8
negs r0, r0
b _08103A82
_08103A7E:
ldrh r0, [r2, 0x32]
lsrs r0, 8
_08103A82:
strh r0, [r2, 0x26]
ldrh r0, [r2, 0x2E]
subs r1, r0, 0x1
strh r1, [r2, 0x2E]
lsls r0, 16
cmp r0, 0
bgt _08103A98
movs r0, 0x1E
strh r0, [r2, 0x2E]
ldr r0, =sub_81039CC
str r0, [r2, 0x1C]
_08103A98:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8103A00
thumb_func_start sub_8103AA4
sub_8103AA4: @ 8103AA4
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r7, r0, 0
movs r0, 0x3C
ldrsh r1, [r7, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
ldr r1, =gTasks
adds r6, r0, r1
ldrh r2, [r6, 0x16]
movs r1, 0x2
negs r1, r1
adds r0, r1, 0
ands r0, r2
ldrh r3, [r7, 0x30]
adds r2, r0, r3
strh r2, [r7, 0x30]
ldrh r0, [r6, 0x18]
ands r1, r0
ldrh r0, [r7, 0x32]
adds r1, r0
strh r1, [r7, 0x32]
ldrh r1, [r6, 0x16]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08103AEC
lsls r0, r2, 16
lsrs r0, 24
negs r0, r0
b _08103AF0
.pool
_08103AEC:
lsls r0, r2, 16
lsrs r0, 24
_08103AF0:
strh r0, [r7, 0x24]
ldrh r1, [r6, 0x18]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08103B04
ldrh r0, [r7, 0x32]
lsrs r0, 8
negs r0, r0
b _08103B08
_08103B04:
ldrh r0, [r7, 0x32]
lsrs r0, 8
_08103B08:
strh r0, [r7, 0x26]
ldrh r0, [r7, 0x2E]
subs r1, r0, 0x1
strh r1, [r7, 0x2E]
lsls r0, 16
cmp r0, 0
bgt _08103BD4
movs r4, 0
movs r0, 0x8
strh r0, [r7, 0x2E]
movs r0, 0x4
strh r0, [r6, 0x12]
movs r0, 0x80
lsls r0, 5
bl sub_8151624
lsls r0, 16
lsrs r5, r0, 16
ldrh r0, [r7, 0x24]
ldrh r1, [r7, 0x20]
adds r2, r0, r1
strh r2, [r7, 0x20]
ldrh r0, [r7, 0x26]
ldrh r3, [r7, 0x22]
adds r0, r3
strh r0, [r7, 0x22]
strh r4, [r7, 0x26]
strh r4, [r7, 0x24]
ldrh r3, [r6, 0x1E]
movs r0, 0x1E
ldrsh r1, [r6, r0]
lsls r0, r2, 16
asrs r0, 16
cmp r1, r0
blt _08103B52
subs r0, r3, r2
b _08103B54
_08103B52:
subs r0, r2, r3
_08103B54:
lsls r0, 24
lsrs r4, r0, 16
ldrh r3, [r6, 0x20]
movs r0, 0x20
ldrsh r1, [r6, r0]
ldrh r2, [r7, 0x22]
movs r6, 0x22
ldrsh r0, [r7, r6]
cmp r1, r0
blt _08103B6C
subs r0, r3, r2
b _08103B6E
_08103B6C:
subs r0, r2, r3
_08103B6E:
lsls r0, 24
lsrs r0, 16
mov r8, r0
movs r0, 0
strh r0, [r7, 0x32]
strh r0, [r7, 0x30]
strh r0, [r7, 0x3A]
strh r0, [r7, 0x38]
lsls r0, r4, 16
asrs r0, 16
lsls r5, 16
asrs r5, 16
adds r1, r5, 0
bl sub_8151534
adds r4, r0, 0
lsls r4, 16
asrs r4, 16
movs r6, 0xE0
lsls r6, 1
adds r0, r6, 0
bl sub_8151624
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
bl sub_8151534
strh r0, [r7, 0x34]
mov r1, r8
lsls r0, r1, 16
asrs r0, 16
adds r1, r5, 0
bl sub_8151534
adds r4, r0, 0
lsls r4, 16
asrs r4, 16
adds r0, r6, 0
bl sub_8151624
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
bl sub_8151534
strh r0, [r7, 0x36]
ldr r0, =sub_8103A00
str r0, [r7, 0x1C]
_08103BD4:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8103AA4
thumb_func_start sub_8103BE4
sub_8103BE4: @ 8103BE4
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r1, =gTasks
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r0, r1
movs r1, 0xA
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08103C02
adds r0, r2, 0
bl DestroyAnimVisualTask
_08103C02:
pop {r0}
bx r0
.pool
thumb_func_end sub_8103BE4
thumb_func_start sub_8103C0C
sub_8103C0C: @ 8103C0C
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
ldr r1, =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r5, r0, r1
ldrh r0, [r5, 0x8]
subs r1, r0, 0x1
strh r1, [r5, 0x8]
lsls r0, 16
cmp r0, 0
bgt _08103CE0
ldr r0, =gUnknown_085933B0
movs r2, 0x1A
ldrsh r1, [r5, r2]
movs r3, 0x1C
ldrsh r2, [r5, r3]
ldrb r3, [r5, 0xC]
ldrb r4, [r5, 0xA]
subs r3, r4
lsls r3, 24
lsrs r3, 24
bl CreateSprite
lsls r0, 24
lsrs r0, 24
mov r12, r0
lsls r0, 4
add r0, r12
lsls r0, 2
ldr r1, =gSprites
adds r6, r0, r1
movs r1, 0x10
ldrsh r0, [r5, r1]
cmp r0, 0x1
beq _08103C6C
cmp r0, 0x2
beq _08103C82
b _08103C90
.pool
_08103C6C:
ldrb r2, [r6, 0x3]
lsls r1, r2, 26
lsrs r1, 27
movs r0, 0x18
orrs r1, r0
lsls r1, 1
subs r0, 0x57
ands r0, r2
orrs r0, r1
strb r0, [r6, 0x3]
b _08103C90
_08103C82:
ldrb r0, [r6, 0x3]
movs r1, 0x3F
negs r1, r1
ands r1, r0
movs r0, 0x10
orrs r1, r0
strb r1, [r6, 0x3]
_08103C90:
ldr r3, =gTasks
lsls r2, r7, 2
adds r2, r7
lsls r2, 3
adds r4, r2, r3
ldrh r0, [r4, 0x12]
ldrh r1, [r4, 0x14]
subs r0, r1
strh r0, [r6, 0x2E]
strh r7, [r6, 0x3C]
movs r1, 0xA
ldrsh r0, [r4, r1]
adds r0, 0xD
lsls r0, 1
adds r0, r2
adds r3, 0x8
adds r0, r3
mov r2, r12
strh r2, [r0]
ldrh r0, [r4, 0xE]
strh r0, [r4, 0x8]
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
movs r0, 0x3F
negs r0, r0
bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
movs r0, 0x9A
bl PlaySE12WithPanning
movs r3, 0xA
ldrsh r0, [r4, r3]
cmp r0, 0x2
ble _08103CE0
ldr r0, =sub_8103BE4
str r0, [r4]
_08103CE0:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8103C0C
thumb_func_start sub_8103CF0
sub_8103CF0: @ 8103CF0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
lsls r0, 24
lsrs r7, r0, 24
movs r0, 0
mov r9, r0
movs r5, 0
mov r0, sp
mov r1, r9
strh r1, [r0]
mov r4, sp
adds r4, 0x2
strh r1, [r4]
bl IsContest
lsls r0, 24
mov r10, r4
cmp r0, 0
beq _08103D5C
ldr r1, =gTasks
lsls r2, r7, 2
adds r0, r2, r7
lsls r0, 3
adds r0, r1
movs r1, 0x2
strh r1, [r0, 0x10]
ldr r3, =gBattleAnimArgs
ldrh r0, [r3]
negs r0, r0
strh r0, [r3]
ldrh r1, [r3, 0x4]
movs r0, 0x1
ands r0, r1
mov r8, r2
cmp r0, 0
beq _08103D54
movs r0, 0x2
negs r0, r0
ands r0, r1
strh r0, [r3, 0x4]
b _08103DB6
.pool
_08103D54:
movs r0, 0x1
orrs r0, r1
strh r0, [r3, 0x4]
b _08103DB6
_08103D5C:
ldr r1, =gBattlerPositions
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
movs r3, 0x1
adds r0, r3, 0
ands r0, r1
lsls r2, r7, 2
mov r8, r2
cmp r0, 0
bne _08103DB6
ldr r1, =gTasks
adds r0, r2, r7
lsls r0, 3
adds r0, r1
strh r3, [r0, 0x10]
ldr r2, =gBattleAnimArgs
ldrh r0, [r2]
negs r0, r0
strh r0, [r2]
ldrh r0, [r2, 0x2]
negs r0, r0
strh r0, [r2, 0x2]
ldrh r1, [r2, 0x4]
adds r0, r3, 0
ands r0, r1
cmp r0, 0
beq _08103DB0
movs r0, 0x2
negs r0, r0
ands r0, r1
b _08103DB4
.pool
_08103DB0:
movs r0, 0x1
orrs r0, r1
_08103DB4:
strh r0, [r2, 0x4]
_08103DB6:
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0
bl GetBattlerSpriteCoord
ldr r1, =gTasks
mov r3, r8
adds r4, r3, r7
lsls r4, 3
adds r4, r1
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1A]
adds r6, r0, 0
ldrb r0, [r5]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
mov r9, r0
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _08103E20
ldr r4, =gBattleAnimTarget
ldrb r1, [r4]
movs r0, 0x2
eors r0, r1
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08103E20
ldrb r0, [r4]
movs r1, 0
mov r2, sp
mov r3, r10
bl sub_80A8924
b _08103E42
.pool
_08103E20:
mov r5, sp
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5]
ldrb r0, [r4]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
mov r1, r10
strh r0, [r1]
_08103E42:
mov r4, sp
ldr r0, =gTasks
mov r2, r8
adds r1, r2, r7
lsls r1, 3
adds r1, r0
mov r2, sp
ldr r3, =gBattleAnimArgs
ldrh r0, [r3]
ldrh r2, [r2]
adds r0, r2
strh r0, [r1, 0x1E]
strh r0, [r4]
ldrh r0, [r3, 0x2]
mov r3, r10
ldrh r3, [r3]
adds r0, r3
strh r0, [r1, 0x20]
mov r1, r10
strh r0, [r1]
mov r0, sp
ldrh r2, [r0]
movs r3, 0
ldrsh r0, [r0, r3]
adds r1, r6, 0
cmp r0, r1
blt _08103E88
subs r0, r2, r1
b _08103E8A
.pool
_08103E88:
subs r0, r1, r2
_08103E8A:
lsls r0, 16
lsrs r0, 16
lsls r4, r0, 16
asrs r4, 16
ldr r5, =gBattleAnimArgs
ldrh r1, [r5, 0x4]
movs r0, 0x2
negs r0, r0
ands r0, r1
lsls r0, 16
asrs r0, 16
bl sub_8151624
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
bl sub_8151534
ldr r2, =gTasks
mov r3, r8
adds r1, r3, r7
lsls r1, 3
adds r6, r1, r2
strh r0, [r6, 0x12]
movs r1, 0x12
ldrsh r0, [r6, r1]
movs r1, 0x80
bl sub_8151534
strh r0, [r6, 0x14]
ldrh r0, [r5, 0x4]
strh r0, [r6, 0x16]
mov r2, r10
ldrh r1, [r2]
movs r3, 0
ldrsh r0, [r2, r3]
mov r4, r9
cmp r0, r4
blt _08103F08
subs r4, r1, r4
lsls r4, 16
asrs r4, 16
movs r1, 0x12
ldrsh r0, [r6, r1]
bl sub_8151624
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
bl sub_8151534
movs r1, 0x2
negs r1, r1
ands r1, r0
strh r1, [r6, 0x18]
b _08103F28
.pool
_08103F08:
subs r4, r1
lsls r4, 16
asrs r4, 16
movs r2, 0x12
ldrsh r0, [r6, r2]
bl sub_8151624
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
bl sub_8151534
movs r1, 0x1
orrs r0, r1
strh r0, [r6, 0x18]
_08103F28:
ldr r1, =gTasks
mov r3, r8
adds r0, r3, r7
lsls r0, 3
adds r5, r0, r1
ldr r4, =gBattleAnimArgs
ldrh r0, [r4, 0x6]
strh r0, [r5, 0xE]
ldrh r1, [r4, 0x8]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _08103F78
movs r0, 0x80
eors r0, r1
strh r0, [r4, 0x8]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3F
ble _08103FA0
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A82E4
lsls r0, 24
lsrs r0, 24
ldr r2, =0x0000ffc0
adds r1, r2, 0
ldrh r4, [r4, 0x8]
adds r1, r4
adds r0, r1
b _08103FB0
.pool
_08103F78:
lsls r0, r1, 16
asrs r0, 16
cmp r0, 0x3F
ble _08103FA0
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A82E4
lsls r0, 24
lsrs r0, 24
ldr r3, =0x0000ffc0
adds r1, r3, 0
ldrh r4, [r4, 0x8]
adds r1, r4
adds r0, r1
b _08103FB0
.pool
_08103FA0:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A82E4
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x8]
subs r0, r1
_08103FB0:
strh r0, [r5, 0xC]
ldr r0, =gTasks
mov r2, r8
adds r1, r2, r7
lsls r1, 3
adds r1, r0
movs r3, 0xC
ldrsh r0, [r1, r3]
cmp r0, 0x2
bgt _08103FC8
movs r0, 0x3
strh r0, [r1, 0xC]
_08103FC8:
ldr r0, =sub_8103C0C
str r0, [r1]
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8103CF0
thumb_func_start sub_8103FE8
sub_8103FE8: @ 8103FE8
push {r4,lr}
adds r4, r0, 0
movs r1, 0
bl sub_80A69CC
ldr r0, =gUnknown_085934A0
ldrh r0, [r0, 0x2]
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 20
movs r1, 0x80
lsls r1, 1
adds r0, r1
strh r0, [r4, 0x2E]
ldr r0, =sub_8104018
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8103FE8
thumb_func_start sub_8104018
sub_8104018: @ 8104018
push {r4-r7,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
bne _0810407C
movs r0, 0
strh r0, [r4, 0x30]
ldrh r5, [r4, 0x2E]
ldr r1, =gPlttBufferFaded
adds r0, r5, 0
adds r0, 0x8
lsls r0, 1
adds r0, r1
ldrh r7, [r0]
adds r6, r1, 0
adds r1, r5, 0
adds r1, 0x9
lsls r0, r5, 1
adds r0, r6
adds r2, r0, 0
adds r2, 0x10
movs r3, 0x7
lsls r1, 1
adds r1, r6
_08104050:
ldrh r0, [r1]
strh r0, [r2]
adds r1, 0x2
adds r2, 0x2
subs r3, 0x1
cmp r3, 0
bge _08104050
adds r0, r5, 0
adds r0, 0xF
lsls r0, 1
adds r0, r6
strh r7, [r0]
ldrh r0, [r4, 0x32]
adds r0, 0x1
strh r0, [r4, 0x32]
lsls r0, 16
asrs r0, 16
cmp r0, 0x18
bne _0810407C
adds r0, r4, 0
bl DestroyAnimSprite
_0810407C:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8104018
thumb_func_start sub_8104088
sub_8104088: @ 8104088
push {r4-r7,lr}
sub sp, 0x4
adds r5, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4, 0x6]
adds r0, r1
lsls r0, 16
lsrs r7, r0, 16
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _081040CC
ldrh r0, [r4, 0x4]
negs r0, r0
strh r0, [r4, 0x4]
_081040CC:
lsls r0, r6, 16
asrs r0, 16
ldrh r1, [r4, 0x4]
adds r0, r1
lsls r0, 16
ldrh r1, [r5, 0x20]
lsrs r6, r0, 16
asrs r0, 16
subs r0, r1
lsls r0, 16
asrs r0, 16
ldrh r2, [r5, 0x22]
lsls r1, r7, 16
asrs r1, 16
subs r1, r2
lsls r1, 16
asrs r1, 16
bl sub_80A74F4
lsls r0, 16
movs r1, 0xC0
lsls r1, 24
adds r0, r1
lsrs r0, 16
movs r3, 0x80
lsls r3, 1
str r0, [sp]
adds r0, r5, 0
movs r1, 0
adds r2, r3, 0
bl sub_80A73E0
ldrh r0, [r4, 0x8]
strh r0, [r5, 0x2E]
strh r6, [r5, 0x32]
strh r7, [r5, 0x36]
ldr r0, =sub_80A7000
str r0, [r5, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8104088
thumb_func_start sub_810413C
sub_810413C: @ 810413C
ldr r1, =0x0000fff0
strh r1, [r0, 0x32]
ldrh r1, [r0, 0x22]
adds r1, 0x8
strh r1, [r0, 0x22]
ldr r1, =sub_8104154
str r1, [r0, 0x1C]
bx lr
.pool
thumb_func_end sub_810413C
thumb_func_start sub_8104154
sub_8104154: @ 8104154
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x2E]
adds r0, 0x80
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 24
strh r0, [r4, 0x24]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08104178
ldrh r0, [r4, 0x24]
negs r0, r0
strh r0, [r4, 0x24]
_08104178:
movs r1, 0x30
ldrsh r0, [r4, r1]
movs r2, 0x32
ldrsh r1, [r4, r2]
bl Sin
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x30]
adds r0, 0x5
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x7E
ble _081041B8
movs r0, 0
strh r0, [r4, 0x30]
movs r1, 0x32
ldrsh r0, [r4, r1]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x34]
adds r0, 0x1
strh r0, [r4, 0x34]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
bne _081041B8
adds r0, r4, 0
bl DestroyAnimSprite
_081041B8:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8104154
thumb_func_start sub_81041C4
sub_81041C4: @ 81041C4
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
movs r0, 0x14
strh r0, [r4, 0x2E]
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r4, 0x1C]
adds r2, r4, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
ldr r1, =sub_810421C
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81041C4
thumb_func_start sub_810421C
sub_810421C: @ 810421C
push {r4,lr}
adds r4, r0, 0
movs r0, 0x3F
bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
movs r0, 0xA6
bl PlaySE12WithPanning
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]
movs r2, 0
movs r1, 0x7
adds r0, r4, 0
adds r0, 0x3C
_08104250:
strh r2, [r0]
subs r0, 0x2
subs r1, 0x1
cmp r1, 0
bge _08104250
bl Random2
lsls r0, 16
lsrs r0, 16
movs r1, 0x7
ands r0, r1
ldr r2, =0x0000fff4
adds r1, r2, 0
subs r1, r0
strh r1, [r4, 0x3A]
bl Random2
lsls r0, 16
lsrs r0, 16
movs r1, 0xA0
bl __umodsi3
adds r0, 0xA0
strh r0, [r4, 0x3C]
ldr r0, =sub_81042A0
str r0, [r4, 0x1C]
adds r2, r4, 0
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x7F
ands r0, r1
strb r0, [r2]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810421C
thumb_func_start sub_81042A0
sub_81042A0: @ 81042A0
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x3C]
ldrh r2, [r4, 0x2E]
adds r0, r1, r2
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r2, r0, 24
strh r2, [r4, 0x24]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081042BE
negs r0, r2
strh r0, [r4, 0x24]
_081042BE:
movs r1, 0x30
ldrsh r0, [r4, r1]
movs r2, 0x3A
ldrsh r1, [r4, r2]
bl Sin
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x30]
adds r0, 0x8
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x7E
ble _081042FE
movs r0, 0
strh r0, [r4, 0x30]
movs r1, 0x32
ldrsh r0, [r4, r1]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x34]
adds r0, 0x1
strh r0, [r4, 0x34]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
bne _081042FE
adds r0, r4, 0
bl DestroyAnimSprite
_081042FE:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81042A0
thumb_func_start sub_8104304
sub_8104304: @ 8104304
push {r4,lr}
adds r4, r0, 0
movs r1, 0
bl sub_80A69CC
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08104322
ldrh r0, [r4, 0x22]
adds r0, 0x10
strh r0, [r4, 0x22]
_08104322:
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0xA]
strh r0, [r4, 0x32]
ldrh r0, [r1, 0xC]
strh r0, [r4, 0x34]
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x36]
ldr r0, =sub_80A62EC
str r0, [r4, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8104304
thumb_func_start sub_8104364
sub_8104364: @ 8104364
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r5, r0, 0
movs r7, 0x20
ldr r4, =0x0000ffe0
movs r0, 0x10
mov r8, r0
ldr r6, =0x0000fff0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
beq _08104390
adds r7, r4, 0
movs r4, 0x20
mov r8, r6
movs r6, 0x10
adds r0, r5, 0
movs r1, 0x1
bl StartSpriteAnim
_08104390:
lsls r0, r7, 16
asrs r0, 16
ldrh r1, [r5, 0x20]
adds r0, r1
strh r0, [r5, 0x20]
lsls r0, r4, 16
asrs r0, 16
ldrh r1, [r5, 0x22]
adds r0, r1
strh r0, [r5, 0x22]
movs r0, 0x6
strh r0, [r5, 0x2E]
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
add r0, r8
strh r0, [r5, 0x32]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r6
strh r0, [r5, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r5, 0x1C]
ldr r1, =sub_81043F8
adds r0, r5, 0
bl StoreSpriteCallbackInData6
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8104364
thumb_func_start sub_81043F8
sub_81043F8: @ 81043F8
push {lr}
adds r2, r0, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _0810440E
adds r0, r2, 0
bl DestroyAnimSprite
_0810440E:
pop {r0}
bx r0
thumb_func_end sub_81043F8
thumb_func_start sub_8104414
sub_8104414: @ 8104414
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r5, r0, 0
movs r0, 0x20
mov r8, r0
ldr r4, =0x0000ffe0
movs r2, 0x10
mov r9, r2
ldr r6, =0x0000fff0
ldr r7, =gBattleAnimArgs
ldrh r1, [r7]
movs r2, 0
ldrsh r0, [r7, r2]
cmp r0, 0
beq _08104448
mov r8, r4
movs r4, 0x20
mov r9, r6
movs r6, 0x10
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl StartSpriteAnim
_08104448:
mov r0, r8
lsls r1, r0, 16
asrs r1, 16
ldrh r2, [r5, 0x20]
adds r1, r2
strh r1, [r5, 0x20]
lsls r0, r4, 16
asrs r0, 16
ldrh r2, [r5, 0x22]
adds r0, r2
strh r0, [r5, 0x22]
movs r0, 0x6
strh r0, [r5, 0x2E]
strh r1, [r5, 0x30]
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
add r0, r9
strh r0, [r5, 0x32]
ldrh r0, [r5, 0x22]
strh r0, [r5, 0x34]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r6
strh r0, [r5, 0x36]
adds r0, r5, 0
bl obj_translate_based_on_private_1_2_3_4
ldrh r0, [r7]
strh r0, [r5, 0x38]
ldrh r0, [r5, 0x2E]
strh r0, [r5, 0x3A]
ldr r0, =sub_81044BC
str r0, [r5, 0x1C]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8104414
thumb_func_start sub_81044BC
sub_81044BC: @ 81044BC
push {r4,lr}
adds r4, r0, 0
bl sub_80A6F3C
lsls r0, 24
cmp r0, 0
beq _08104520
adds r0, r4, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _08104520
adds r0, r4, 0
movs r1, 0
bl SeekSpriteAnim
adds r2, r4, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
ldrh r0, [r4, 0x24]
ldrh r1, [r4, 0x20]
adds r0, r1
movs r2, 0
strh r0, [r4, 0x20]
ldrh r0, [r4, 0x26]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
movs r0, 0x2
strh r0, [r4, 0x24]
ldr r0, =0x0000fffe
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x3A]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x30]
movs r1, 0x1
eors r0, r1
strh r0, [r4, 0x30]
ldrh r0, [r4, 0x32]
eors r0, r1
strh r0, [r4, 0x32]
strh r2, [r4, 0x36]
strh r2, [r4, 0x34]
ldr r0, =sub_8104530
str r0, [r4, 0x1C]
_08104520:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81044BC
thumb_func_start sub_8104530
sub_8104530: @ 8104530
push {r4,lr}
adds r4, r0, 0
movs r1, 0x34
ldrsh r0, [r4, r1]
cmp r0, 0
beq _08104548
ldrh r0, [r4, 0x24]
negs r0, r0
strh r0, [r4, 0x24]
ldrh r0, [r4, 0x26]
negs r0, r0
strh r0, [r4, 0x26]
_08104548:
ldrh r0, [r4, 0x34]
movs r1, 0x1
eors r0, r1
movs r1, 0
strh r0, [r4, 0x34]
ldrh r0, [r4, 0x36]
adds r0, 0x1
strh r0, [r4, 0x36]
lsls r0, 16
asrs r0, 16
cmp r0, 0x33
bne _0810458A
strh r1, [r4, 0x26]
strh r1, [r4, 0x24]
strh r1, [r4, 0x36]
strh r1, [r4, 0x34]
adds r2, r4, 0
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r2]
ldrh r0, [r4, 0x38]
movs r1, 0x1
eors r1, r0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl StartSpriteAnim
ldr r0, =sub_8104594
str r0, [r4, 0x1C]
_0810458A:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8104530
thumb_func_start sub_8104594
sub_8104594: @ 8104594
push {r4,lr}
adds r4, r0, 0
bl sub_80A6F3C
lsls r0, 24
cmp r0, 0
beq _081045A8
adds r0, r4, 0
bl DestroyAnimSprite
_081045A8:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8104594
thumb_func_start sub_81045B0
sub_81045B0: @ 81045B0
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
movs r0, 0x1
bl GetAnimBattlerSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
movs r1, 0x1
bl sub_80A7270
adds r0, r4, 0
movs r1, 0xD0
movs r2, 0xD0
movs r3, 0
bl obj_id_set_rotscale
ldr r1, =gSprites
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r0, r1
ldrb r0, [r0, 0x5]
lsrs r0, 4
adds r0, 0x10
movs r1, 0
bl sub_80A750C
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
movs r1, 0x50
strh r1, [r0, 0x8]
ldr r1, =sub_8104614
str r1, [r0]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81045B0
thumb_func_start sub_8104614
sub_8104614: @ 8104614
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldrh r1, [r0, 0x8]
subs r1, 0x1
strh r1, [r0, 0x8]
lsls r1, 16
asrs r1, 16
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _08104664
movs r0, 0x1
bl GetAnimBattlerSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
bl sub_80A7344
ldr r1, =gSprites
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r0, r1
ldrb r0, [r0, 0x5]
lsrs r0, 4
adds r0, 0x10
movs r1, 0x1
bl sub_80A750C
adds r0, r5, 0
bl DestroyAnimVisualTask
_08104664:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8104614
thumb_func_start sub_8104674
sub_8104674: @ 8104674
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, =gTasks
adds r4, r0
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
movs r5, 0
strh r0, [r4, 0x8]
movs r1, 0
bl sub_80A7270
strh r5, [r4, 0xA]
strh r5, [r4, 0xC]
strh r5, [r4, 0xE]
movs r0, 0x80
lsls r0, 1
strh r0, [r4, 0x10]
strh r5, [r4, 0x12]
strh r5, [r4, 0x14]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A82E4
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x16]
ldr r0, =sub_81046CC
str r0, [r4]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8104674
thumb_func_start sub_81046CC
sub_81046CC: @ 81046CC
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r1, 0xA
ldrsh r0, [r4, r1]
cmp r0, 0x5
bls _081046E6
b _081047F6
_081046E6:
lsls r0, 2
ldr r1, =_081046F8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081046F8:
.4byte _08104710
.4byte _08104758
.4byte _0810478E
.4byte _08104794
.4byte _081047A4
.4byte _081047D8
_08104710:
movs r2, 0xC
ldrsh r0, [r4, r2]
cmp r0, 0
beq _08104720
cmp r0, 0x3
beq _08104720
cmp r0, 0x6
bne _08104728
_08104720:
adds r0, r4, 0
adds r1, r5, 0
bl sub_8104800
_08104728:
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
ldrh r0, [r4, 0x10]
adds r0, 0x28
strh r0, [r4, 0x10]
ldrb r0, [r4, 0x8]
movs r1, 0x10
ldrsh r2, [r4, r1]
adds r1, r2, 0
movs r3, 0
bl obj_id_set_rotscale
ldrb r0, [r4, 0x8]
bl sub_80A7E6C
movs r2, 0xC
ldrsh r0, [r4, r2]
cmp r0, 0x20
bne _081047F6
ldrh r0, [r4, 0x12]
adds r0, 0x1
strh r0, [r4, 0x12]
b _081047D0
_08104758:
movs r1, 0x14
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081047F6
movs r2, 0x12
ldrsh r1, [r4, r2]
cmp r1, 0x3
bne _0810476E
strh r0, [r4, 0xC]
strh r1, [r4, 0xA]
b _081047F6
_0810476E:
strh r0, [r4, 0xC]
strh r0, [r4, 0xE]
movs r2, 0x80
lsls r2, 1
strh r2, [r4, 0x10]
ldrb r0, [r4, 0x8]
adds r1, r2, 0
movs r3, 0
bl obj_id_set_rotscale
ldrb r0, [r4, 0x8]
bl sub_80A7E6C
movs r0, 0x2
strh r0, [r4, 0xA]
b _081047F6
_0810478E:
movs r0, 0
strh r0, [r4, 0xA]
b _081047F6
_08104794:
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0x20
ble _081047F6
b _081047CC
_081047A4:
ldrh r0, [r4, 0xC]
adds r0, 0x2
strh r0, [r4, 0xC]
ldrh r0, [r4, 0x10]
subs r0, 0x50
strh r0, [r4, 0x10]
ldrb r0, [r4, 0x8]
movs r1, 0x10
ldrsh r2, [r4, r1]
adds r1, r2, 0
movs r3, 0
bl obj_id_set_rotscale
ldrb r0, [r4, 0x8]
bl sub_80A7E6C
movs r2, 0xC
ldrsh r0, [r4, r2]
cmp r0, 0x20
bne _081047F6
_081047CC:
movs r0, 0
strh r0, [r4, 0xC]
_081047D0:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
b _081047F6
_081047D8:
ldrb r0, [r4, 0x8]
bl sub_80A7344
ldr r2, =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0
strh r1, [r0, 0x26]
adds r0, r5, 0
bl DestroyAnimVisualTask
_081047F6:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81046CC
thumb_func_start sub_8104800
sub_8104800: @ 8104800
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r7, r0, 0
lsls r1, 24
lsrs r1, 24
mov r9, r1
movs r0, 0
bl duplicate_obj_of_side_rel2move_in_transparent_mode
lsls r0, 16
lsrs r0, 16
mov r8, r0
lsls r0, 16
asrs r4, r0, 16
cmp r4, 0
blt _081048DA
bl AllocOamMatrix
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0xFF
bne _08104844
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
bl obj_delete_but_dont_free_vram
b _081048DA
.pool
_08104844:
ldr r5, =gSprites
lsls r3, r4, 4
adds r3, r4
lsls r3, 2
adds r4, r3, r5
ldrb r1, [r4, 0x1]
movs r0, 0xD
negs r0, r0
ands r0, r1
movs r1, 0x4
orrs r0, r1
movs r1, 0x3
orrs r0, r1
strb r0, [r4, 0x1]
adds r2, r4, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
movs r0, 0x1F
ands r6, r0
lsls r2, r6, 1
ldrb r1, [r4, 0x3]
movs r0, 0x3F
negs r0, r0
ands r0, r1
orrs r0, r2
strb r0, [r4, 0x3]
ldrb r0, [r7, 0x16]
ldrb r1, [r7, 0xE]
subs r0, r1
adds r1, r4, 0
adds r1, 0x43
strb r0, [r1]
ldrh r0, [r7, 0xE]
adds r0, 0x1
strh r0, [r7, 0xE]
ldrh r0, [r7, 0x14]
adds r0, 0x1
strh r0, [r7, 0x14]
movs r0, 0x10
strh r0, [r4, 0x2E]
mov r0, r9
strh r0, [r4, 0x30]
movs r0, 0x6
strh r0, [r4, 0x32]
adds r5, 0x1C
adds r3, r5
ldr r0, =sub_81048F0
str r0, [r3]
mov r1, r8
lsls r0, r1, 24
lsrs r0, 24
movs r1, 0x10
ldrsh r2, [r7, r1]
adds r1, r2, 0
movs r3, 0
bl obj_id_set_rotscale
ldrb r0, [r4, 0x1]
movs r3, 0x4
negs r3, r3
ands r3, r0
movs r0, 0x1
orrs r3, r0
strb r3, [r4, 0x1]
lsrs r1, r3, 6
ldrb r2, [r4, 0x3]
lsrs r2, 6
lsls r3, 30
lsrs r3, 30
adds r0, r4, 0
bl CalcCenterToCornerVec
_081048DA:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8104800
thumb_func_start sub_81048F0
sub_81048F0: @ 81048F0
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x2E]
subs r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
cmp r0, 0
bne _0810492E
ldr r3, =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]
ldrb r0, [r4, 0x3]
lsls r0, 26
lsrs r0, 27
bl FreeOamMatrix
adds r0, r4, 0
bl obj_delete_but_dont_free_vram
_0810492E:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81048F0
thumb_func_start sub_8104938
sub_8104938: @ 8104938
push {r4,r5,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
ldr r5, =gBattleAnimArgs
movs r1, 0x2
ldrsh r0, [r5, r1]
cmp r0, 0
bne _08104964
adds r0, r2, 0
bl DestroyAnimVisualTask
b _0810498A
.pool
_08104964:
ldrb r0, [r5]
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
movs r2, 0
strh r1, [r4, 0x8]
strh r2, [r4, 0xA]
ldrh r0, [r5, 0x2]
strh r0, [r4, 0xC]
strh r2, [r4, 0xE]
strh r2, [r4, 0x10]
ldr r2, =gUnknown_085935E8
adds r0, r4, 0
bl sub_80A7CFC
ldr r0, =sub_8104998
str r0, [r4]
_0810498A:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8104938
thumb_func_start sub_8104998
sub_8104998: @ 8104998
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r0, 0xA
ldrsh r5, [r4, r0]
cmp r5, 0x1
beq _08104A00
cmp r5, 0x1
bgt _081049C0
cmp r5, 0
beq _081049CA
b _08104AA8
.pool
_081049C0:
cmp r5, 0x2
beq _08104A34
cmp r5, 0x3
beq _08104A64
b _08104AA8
_081049CA:
adds r0, r4, 0
bl sub_80A7D34
ldrh r2, [r4, 0x10]
adds r2, 0x3
strh r2, [r4, 0x10]
ldr r3, =gSprites
movs r0, 0x8
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r1, [r0, 0x26]
adds r1, r2
strh r1, [r0, 0x26]
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
lsls r0, 16
asrs r0, 16
cmp r0, 0x7
ble _08104AA8
strh r5, [r4, 0xE]
b _08104A5C
.pool
_08104A00:
adds r0, r4, 0
bl sub_80A7D34
ldr r2, =gSprites
movs r0, 0x8
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r4, 0x10]
ldrh r2, [r0, 0x26]
adds r1, r2
strh r1, [r0, 0x26]
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
lsls r0, 16
asrs r0, 16
cmp r0, 0x7
ble _08104AA8
movs r0, 0
strh r0, [r4, 0xE]
b _08104A5C
.pool
_08104A34:
movs r1, 0x10
ldrsh r0, [r4, r1]
cmp r0, 0
beq _08104A5C
ldr r2, =gSprites
movs r0, 0x8
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x26]
subs r1, 0x2
strh r1, [r0, 0x26]
ldrh r0, [r4, 0x10]
subs r0, 0x2
strh r0, [r4, 0x10]
b _08104AA8
.pool
_08104A5C:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
b _08104AA8
_08104A64:
adds r0, r4, 0
bl sub_80A7D34
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
bne _08104AA8
ldrh r0, [r4, 0xC]
subs r0, 0x1
strh r0, [r4, 0xC]
lsls r0, 16
cmp r0, 0
bne _08104A9C
ldr r2, =gSprites
movs r0, 0x8
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r5, [r0, 0x26]
adds r0, r6, 0
bl DestroyAnimVisualTask
b _08104AA8
.pool
_08104A9C:
ldrb r1, [r4, 0x8]
ldr r2, =gUnknown_085935E8
adds r0, r4, 0
bl sub_80A7CFC
strh r5, [r4, 0xA]
_08104AA8:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8104998
thumb_func_start sub_8104AB4
sub_8104AB4: @ 8104AB4
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, =gTasks
adds r4, r0
movs r0, 0
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
ldr r2, =gUnknown_08593608
adds r0, r4, 0
bl sub_80A7CFC
ldr r0, =sub_8104AF0
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8104AB4
thumb_func_start sub_8104AF0
sub_8104AF0: @ 8104AF0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, =gTasks
adds r0, r1
bl sub_80A7D34
lsls r0, 24
cmp r0, 0
bne _08104B10
adds r0, r4, 0
bl DestroyAnimVisualTask
_08104B10:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8104AF0
thumb_func_start sub_8104B1C
sub_8104B1C: @ 8104B1C
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08104B50
adds r0, r4, 0
movs r1, 0
bl StartSpriteAnim
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, 0x20
strh r0, [r4, 0x20]
movs r0, 0x40
b _08104B6A
.pool
_08104B50:
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAnim
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
subs r0, 0x20
strh r0, [r4, 0x20]
ldr r0, =0x0000ffc0
_08104B6A:
strh r0, [r4, 0x30]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r1, 0
strh r0, [r4, 0x22]
movs r0, 0x34
strh r0, [r4, 0x2E]
strh r1, [r4, 0x32]
strh r1, [r4, 0x34]
strh r1, [r4, 0x36]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A656C
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8104B1C
thumb_func_start sub_8104BAC
sub_8104BAC: @ 8104BAC
push {r4-r6,lr}
adds r6, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08104BC8
ldr r0, =gBattleAnimAttacker
b _08104BCA
.pool
_08104BC8:
ldr r0, =gBattleAnimTarget
_08104BCA:
ldrb r5, [r0]
adds r0, r5, 0
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08104BE4
ldr r1, =gBattleAnimArgs
movs r2, 0x2
ldrsh r0, [r1, r2]
negs r0, r0
strh r0, [r1, 0x2]
_08104BE4:
adds r0, r5, 0
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4, 0x2]
adds r0, r1
strh r0, [r6, 0x20]
adds r0, r5, 0
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r4, [r4, 0x4]
adds r0, r4
strh r0, [r6, 0x22]
lsls r0, 16
asrs r0, 16
cmp r0, 0x7
bgt _08104C16
movs r0, 0x8
strh r0, [r6, 0x22]
_08104C16:
ldr r1, =move_anim_8074EE0
adds r0, r6, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67BC
str r0, [r6, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8104BAC
thumb_func_start sub_8104C38
sub_8104C38: @ 8104C38
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, =gTasks
adds r4, r0
movs r0, 0
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
movs r0, 0
strh r1, [r4, 0x8]
strh r0, [r4, 0xA]
ldr r2, =gUnknown_085936A4
adds r0, r4, 0
bl sub_80A7CFC
ldr r0, =sub_8104C78
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8104C38
thumb_func_start sub_8104C78
sub_8104C78: @ 8104C78
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, =gTasks
adds r0, r1
bl sub_80A7D34
lsls r0, 24
cmp r0, 0
bne _08104C98
adds r0, r4, 0
bl DestroyAnimVisualTask
_08104C98:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8104C78
thumb_func_start sub_8104CA4
sub_8104CA4: @ 8104CA4
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks
adds r4, r1, r0
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
movs r2, 0
strh r0, [r4, 0x8]
strh r2, [r4, 0xA]
movs r0, 0x4
strh r0, [r4, 0xC]
movs r0, 0x7
strh r0, [r4, 0xE]
movs r0, 0x3
strh r0, [r4, 0x10]
ldr r3, =gSprites
movs r0, 0x8
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r0, [r0, 0x20]
strh r0, [r4, 0x12]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r0, [r0, 0x22]
strh r0, [r4, 0x14]
strh r2, [r4, 0x16]
strh r2, [r4, 0x18]
movs r0, 0x2
strh r0, [r4, 0x1A]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08104D0E
movs r1, 0xC
ldrsh r0, [r4, r1]
negs r0, r0
strh r0, [r4, 0xC]
_08104D0E:
ldr r0, =sub_8104D28
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8104CA4
thumb_func_start sub_8104D28
sub_8104D28: @ 8104D28
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, =gTasks
adds r3, r0, r1
ldrh r0, [r3, 0x16]
adds r0, 0x1
strh r0, [r3, 0x16]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
ble _08104D8E
movs r0, 0
strh r0, [r3, 0x16]
ldrh r0, [r3, 0x18]
adds r0, 0x1
strh r0, [r3, 0x18]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _08104D78
ldr r2, =gSprites
movs r0, 0x8
ldrsh r1, [r3, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r3, 0x1A]
ldrh r2, [r0, 0x22]
adds r1, r2
b _08104D8C
.pool
_08104D78:
ldr r2, =gSprites
movs r5, 0x8
ldrsh r1, [r3, r5]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x22]
ldrh r2, [r3, 0x1A]
subs r1, r2
_08104D8C:
strh r1, [r0, 0x22]
_08104D8E:
movs r1, 0xA
ldrsh r0, [r3, r1]
cmp r0, 0x1
beq _08104DDC
cmp r0, 0x1
bgt _08104DA4
cmp r0, 0
beq _08104DAA
b _08104E6C
.pool
_08104DA4:
cmp r0, 0x2
beq _08104E0C
b _08104E6C
_08104DAA:
ldr r2, =gSprites
movs r5, 0x8
ldrsh r1, [r3, r5]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r3, 0xC]
ldrh r2, [r0, 0x20]
adds r1, r2
strh r1, [r0, 0x20]
ldrh r0, [r3, 0xE]
subs r0, 0x1
strh r0, [r3, 0xE]
lsls r0, 16
cmp r0, 0
bne _08104E6C
movs r0, 0xE
strh r0, [r3, 0xE]
movs r0, 0x1
strh r0, [r3, 0xA]
b _08104E6C
.pool
_08104DDC:
ldr r2, =gSprites
movs r5, 0x8
ldrsh r1, [r3, r5]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x20]
ldrh r2, [r3, 0xC]
subs r1, r2
strh r1, [r0, 0x20]
ldrh r0, [r3, 0xE]
subs r0, 0x1
strh r0, [r3, 0xE]
lsls r0, 16
cmp r0, 0
bne _08104E6C
movs r0, 0x7
strh r0, [r3, 0xE]
movs r0, 0x2
strh r0, [r3, 0xA]
b _08104E6C
.pool
_08104E0C:
ldr r2, =gSprites
movs r0, 0x8
ldrsh r1, [r3, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r3, 0xC]
ldrh r5, [r0, 0x20]
adds r1, r5
strh r1, [r0, 0x20]
ldrh r0, [r3, 0xE]
subs r0, 0x1
strh r0, [r3, 0xE]
lsls r0, 16
asrs r1, r0, 16
cmp r1, 0
bne _08104E6C
ldrh r0, [r3, 0x10]
subs r0, 0x1
strh r0, [r3, 0x10]
lsls r0, 16
cmp r0, 0
beq _08104E48
movs r0, 0x7
strh r0, [r3, 0xE]
strh r1, [r3, 0xA]
b _08104E6C
.pool
_08104E48:
ldrh r1, [r3, 0x18]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08104E66
movs r0, 0x8
ldrsh r1, [r3, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x22]
ldrh r2, [r3, 0x1A]
subs r1, r2
strh r1, [r0, 0x22]
_08104E66:
adds r0, r4, 0
bl DestroyAnimVisualTask
_08104E6C:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8104D28
thumb_func_start sub_8104E74
sub_8104E74: @ 8104E74
push {r4-r6,lr}
sub sp, 0xC
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks
adds r5, r1, r0
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
bl sub_80A6190
lsls r0, 24
lsrs r0, 24
adds r0, 0x20
movs r1, 0
strh r0, [r5, 0x8]
movs r0, 0x4
strh r0, [r5, 0xA]
strh r1, [r5, 0xC]
strh r1, [r5, 0xE]
strh r1, [r5, 0x10]
strh r1, [r5, 0x12]
ldrb r0, [r4]
bl sub_80A861C
strh r0, [r5, 0x26]
ldrb r0, [r4]
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08104ED4
ldr r0, =gBattle_BG1_X
ldrh r0, [r0]
strh r0, [r5, 0x14]
ldr r0, =0x04000014
b _08104EDC
.pool
_08104ED4:
ldr r0, =gBattle_BG2_X
ldrh r0, [r0]
strh r0, [r5, 0x14]
ldr r0, =0x04000018
_08104EDC:
str r0, [sp]
ldrh r0, [r5, 0x8]
adds r1, r0, 0
subs r1, 0x40
lsls r2, r1, 16
lsls r0, 16
cmp r2, r0
bgt _08104F1A
ldr r4, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r4, r0
_08104EF4:
asrs r3, r2, 16
cmp r3, 0
blt _08104F0C
lsls r1, r3, 1
adds r2, r1, r4
ldrh r0, [r5, 0x14]
adds r0, 0xF0
strh r0, [r2]
adds r1, r6
ldrh r0, [r5, 0x14]
adds r0, 0xF0
strh r0, [r1]
_08104F0C:
adds r0, r3, 0x1
lsls r2, r0, 16
asrs r1, r2, 16
movs r3, 0x8
ldrsh r0, [r5, r3]
cmp r1, r0
ble _08104EF4
_08104F1A:
ldr r0, =0xa2600001
str r0, [sp, 0x4]
mov r1, sp
movs r2, 0
movs r0, 0x1
strb r0, [r1, 0x8]
mov r0, sp
strb r2, [r0, 0x9]
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
bl ScanlineEffect_SetParams
ldr r0, =sub_8104F54
str r0, [r5]
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8104E74
thumb_func_start sub_8104F54
sub_8104F54: @ 8104F54
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, =gTasks
adds r3, r0, r1
movs r1, 0x10
ldrsh r0, [r3, r1]
cmp r0, 0
beq _08104F78
cmp r0, 0x1
beq _08104F8E
b _0810500E
.pool
_08104F78:
ldrh r0, [r3, 0x12]
adds r0, 0x1
strh r0, [r3, 0x12]
lsls r0, 16
asrs r0, 16
cmp r0, 0x14
ble _0810500E
ldrh r0, [r3, 0x10]
adds r0, 0x1
strh r0, [r3, 0x10]
b _0810500E
_08104F8E:
ldrh r0, [r3, 0xA]
adds r0, 0x1
strh r0, [r3, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3
ble _0810500E
movs r0, 0
strh r0, [r3, 0xA]
ldrh r1, [r3, 0xE]
movs r0, 0x3
ands r0, r1
strh r0, [r3, 0xC]
ldrh r0, [r3, 0x8]
subs r0, r1
strh r0, [r3, 0x12]
movs r2, 0xC
ldrsh r1, [r3, r2]
cmp r1, 0x1
beq _08104FC4
cmp r1, 0x1
ble _08104FCC
cmp r1, 0x2
beq _08104FC8
cmp r1, 0x3
beq _08104FC8
b _08104FCC
_08104FC4:
subs r0, 0x2
b _08104FCA
_08104FC8:
adds r0, 0x1
_08104FCA:
strh r0, [r3, 0x12]
_08104FCC:
movs r1, 0x12
ldrsh r0, [r3, r1]
cmp r0, 0
blt _08104FF0
ldr r2, =gScanlineEffectRegBuffers
lsls r0, 1
adds r0, r2
ldrh r1, [r3, 0x14]
strh r1, [r0]
movs r1, 0x12
ldrsh r0, [r3, r1]
lsls r0, 1
movs r1, 0xF0
lsls r1, 3
adds r2, r1
adds r0, r2
ldrh r1, [r3, 0x14]
strh r1, [r0]
_08104FF0:
ldrh r0, [r3, 0xE]
adds r0, 0x1
strh r0, [r3, 0xE]
lsls r0, 16
asrs r0, 16
movs r2, 0x26
ldrsh r1, [r3, r2]
cmp r0, r1
blt _0810500E
ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
adds r0, r4, 0
bl DestroyAnimVisualTask
_0810500E:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8104F54
thumb_func_start sub_810501C
sub_810501C: @ 810501C
push {r4-r6,lr}
adds r4, r0, 0
ldr r6, =gBattleAnimTarget
ldrb r0, [r6]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
subs r0, 0x10
movs r5, 0
strh r0, [r4, 0x20]
ldrb r0, [r6]
bl sub_80A6190
lsls r0, 24
lsrs r0, 24
adds r0, 0x10
strh r0, [r4, 0x22]
strh r5, [r4, 0x2E]
strh r5, [r4, 0x30]
strh r5, [r4, 0x32]
movs r0, 0x10
strh r0, [r4, 0x34]
strh r5, [r4, 0x36]
ldrb r0, [r6]
movs r1, 0
bl sub_80A861C
adds r0, 0x2
strh r0, [r4, 0x38]
movs r0, 0x3F
bl BattleAnimAdjustPanning
lsls r0, 24
asrs r0, 24
strh r0, [r4, 0x3A]
ldr r0, =sub_8105078
str r0, [r4, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810501C
thumb_func_start sub_8105078
sub_8105078: @ 8105078
push {r4,lr}
adds r4, r0, 0
movs r0, 0x2E
ldrsh r1, [r4, r0]
cmp r1, 0x1
beq _081050DC
cmp r1, 0x1
bgt _0810508E
cmp r1, 0
beq _08105094
b _081051BC
_0810508E:
cmp r1, 0x2
beq _0810516E
b _081051BC
_08105094:
ldrh r0, [r4, 0x32]
adds r0, 0x1
strh r0, [r4, 0x32]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _081050BE
strh r1, [r4, 0x32]
adds r3, r4, 0
adds r3, 0x3E
ldrb r2, [r3]
lsrs r1, r2, 2
movs r0, 0x1
eors r1, r0
ands r1, r0
lsls r1, 2
movs r0, 0x5
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
_081050BE:
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x10
ble _081051BC
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x5
negs r1, r1
ands r1, r0
strb r1, [r2]
b _08105166
_081050DC:
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3
ble _08105122
ldrh r2, [r4, 0x32]
movs r3, 0x32
ldrsh r1, [r4, r3]
movs r3, 0x38
ldrsh r0, [r4, r3]
cmp r1, r0
bge _08105122
movs r0, 0
strh r0, [r4, 0x30]
ldrh r0, [r4, 0x22]
subs r0, 0x1
strh r0, [r4, 0x22]
adds r0, r2, 0x1
strh r0, [r4, 0x32]
movs r1, 0x32
ldrsh r0, [r4, r1]
movs r1, 0xA
bl __modsi3
lsls r0, 16
cmp r0, 0
bne _08105122
ldrh r1, [r4, 0x3A]
lsls r1, 24
asrs r1, 24
movs r0, 0xCD
bl PlaySE12WithPanning
_08105122:
ldrh r0, [r4, 0x34]
ldrh r2, [r4, 0x36]
adds r1, r0, r2
strh r1, [r4, 0x36]
lsls r0, r1, 16
asrs r2, r0, 16
cmp r2, 0x1F
ble _08105136
movs r0, 0x40
b _08105144
_08105136:
movs r0, 0x20
negs r0, r0
cmp r2, r0
bgt _08105150
movs r2, 0x40
negs r2, r2
adds r0, r2, 0
_08105144:
subs r0, r1
strh r0, [r4, 0x36]
movs r3, 0x34
ldrsh r0, [r4, r3]
negs r0, r0
strh r0, [r4, 0x34]
_08105150:
ldrh r0, [r4, 0x36]
movs r2, 0
strh r0, [r4, 0x24]
movs r0, 0x38
ldrsh r1, [r4, r0]
movs r3, 0x32
ldrsh r0, [r4, r3]
cmp r1, r0
bne _081051BC
strh r2, [r4, 0x30]
strh r2, [r4, 0x32]
_08105166:
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
b _081051BC
_0810516E:
ldrh r0, [r4, 0x32]
adds r0, 0x1
strh r0, [r4, 0x32]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _0810519A
movs r0, 0
strh r0, [r4, 0x32]
adds r3, r4, 0
adds r3, 0x3E
ldrb r2, [r3]
lsrs r1, r2, 2
movs r0, 0x1
eors r1, r0
ands r1, r0
lsls r1, 2
movs r0, 0x5
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
_0810519A:
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x10
ble _081051BC
adds r2, r4, 0
adds r2, 0x3E
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r2]
adds r0, r4, 0
bl DestroyAnimSprite
_081051BC:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8105078
thumb_func_start sub_81051C4
sub_81051C4: @ 81051C4
push {r4-r7,lr}
sub sp, 0x4
adds r6, r0, 0
movs r5, 0
mov r0, sp
strh r5, [r0]
mov r1, sp
adds r1, 0x2
strh r5, [r1]
ldr r0, =gBattleAnimArgs
movs r3, 0x4
ldrsh r2, [r0, r3]
adds r7, r1, 0
adds r1, r0, 0
cmp r2, 0
bne _081051F0
ldr r0, =gBattleAnimAttacker
b _081051F2
.pool
_081051F0:
ldr r0, =gBattleAnimTarget
_081051F2:
ldrb r5, [r0]
ldrb r1, [r1, 0x6]
movs r0, 0x1
adds r4, r0, 0
eors r4, r1
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0810526A
movs r1, 0x2
adds r0, r5, 0
eors r0, r1
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810526A
adds r0, r5, 0
adds r1, r4, 0
mov r2, sp
adds r3, r7, 0
bl sub_80A8924
cmp r4, 0
bne _08105230
adds r0, r5, 0
movs r1, 0
b _08105234
.pool
_08105230:
adds r0, r5, 0
movs r1, 0x2
_08105234:
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r4, r0, 24
adds r0, r5, 0
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08105260
ldr r2, =gBattleAnimArgs
mov r0, sp
ldrh r1, [r0]
subs r1, r4
ldrh r0, [r2]
subs r1, r0
subs r0, r1
strh r0, [r2]
b _0810526A
.pool
_08105260:
ldr r1, =gBattleAnimArgs
mov r0, sp
ldrh r0, [r0]
subs r0, r4
strh r0, [r1]
_0810526A:
ldr r1, =sub_80A77C8
str r1, [r6, 0x1C]
adds r0, r6, 0
bl _call_via_r1
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81051C4
thumb_func_start sub_8105284
sub_8105284: @ 8105284
push {r4,lr}
adds r4, r0, 0
bl sub_80A6F3C
lsls r0, 24
cmp r0, 0
beq _0810529E
adds r0, r4, 0
bl FreeSpriteOamMatrix
adds r0, r4, 0
bl DestroyAnimSprite
_0810529E:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8105284
thumb_func_start sub_81052A4
sub_81052A4: @ 81052A4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
adds r5, r0, 0
movs r6, 0
mov r0, sp
strh r6, [r0]
mov r1, sp
adds r1, 0x2
strh r6, [r1]
ldr r0, =gBattleAnimArgs
movs r2, 0xA
ldrsh r0, [r0, r2]
cmp r0, 0
bne _081052DC
ldr r0, =gBattleAnimAttacker
ldrb r7, [r0]
ldr r0, =gBattleAnimTarget
b _081052E2
.pool
_081052DC:
ldr r0, =gBattleAnimTarget
ldrb r7, [r0]
ldr r0, =gBattleAnimAttacker
_081052E2:
ldrb r0, [r0]
mov r8, r0
ldr r0, =gBattleAnimArgs
movs r3, 0xC
ldrsh r0, [r0, r3]
cmp r0, 0
bne _08105308
movs r0, 0
mov r10, r0
movs r1, 0x1
str r1, [sp, 0x4]
b _08105310
.pool
_08105308:
movs r2, 0x2
mov r10, r2
movs r3, 0x3
str r3, [sp, 0x4]
_08105310:
adds r0, r7, 0
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810536C
adds r0, r7, 0
mov r1, r10
bl GetBattlerSpriteCoord
lsls r0, 24
ldr r1, =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r1]
adds r0, r1
lsls r0, 16
lsrs r0, 16
mov r9, r0
movs r0, 0x2
mov r4, r8
eors r4, r0
adds r0, r4, 0
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810535C
ldr r2, =gSprites
ldr r0, =gBattlerSpriteIds
adds r0, r4, r0
b _081053EA
.pool
_0810535C:
ldr r2, =gSprites
ldr r0, =gBattlerSpriteIds
add r0, r8
b _081053EA
.pool
_0810536C:
adds r0, r7, 0
mov r1, r10
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldr r1, =gBattleAnimArgs
ldrh r1, [r1]
subs r0, r1
lsls r0, 16
lsrs r0, 16
mov r9, r0
bl IsContest
lsls r0, 24
cmp r0, 0
bne _081053E4
movs r0, 0x2
adds r4, r7, 0
eors r4, r0
adds r0, r4, 0
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _081053E4
ldr r3, =gSprites
ldr r2, =gBattlerSpriteIds
adds r0, r7, r2
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r6, r0, r3
adds r2, r4, r2
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, r0, r3
movs r0, 0x20
ldrsh r1, [r6, r0]
movs r3, 0x20
ldrsh r0, [r2, r3]
cmp r1, r0
bge _081053E0
adds r0, r2, 0
adds r0, 0x43
ldrb r0, [r0]
adds r0, 0x1
b _081053FA
.pool
_081053E0:
adds r0, r6, 0
b _081053F4
_081053E4:
ldr r2, =gSprites
ldr r0, =gBattlerSpriteIds
adds r0, r7, r0
_081053EA:
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
_081053F4:
adds r0, 0x43
ldrb r0, [r0]
subs r0, 0x1
_081053FA:
adds r1, r5, 0
adds r1, 0x43
strb r0, [r1]
adds r0, r7, 0
ldr r1, [sp, 0x4]
bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4, 0x2]
adds r0, r1
lsls r0, 16
lsrs r6, r0, 16
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810544C
movs r1, 0x2
mov r0, r8
eors r0, r1
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810544C
ldrb r1, [r4, 0xC]
mov r0, r8
mov r2, sp
mov r3, sp
adds r3, 0x2
bl sub_80A8924
b _0810546C
.pool
_0810544C:
mov r4, sp
mov r0, r8
mov r1, r10
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
mov r0, r8
ldr r1, [sp, 0x4]
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
mov r2, sp
strh r0, [r2, 0x2]
_0810546C:
mov r0, r8
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08105490
mov r3, sp
mov r2, sp
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x6]
ldrh r2, [r2]
adds r0, r2
strh r0, [r3]
adds r2, r1, 0
b _0810549E
.pool
_08105490:
mov r3, sp
mov r0, sp
ldr r2, =gBattleAnimArgs
ldrh r0, [r0]
ldrh r1, [r2, 0x6]
subs r0, r1
strh r0, [r3]
_0810549E:
ldrh r1, [r2, 0x8]
mov r3, sp
ldrh r3, [r3, 0x2]
adds r1, r3
mov r0, sp
strh r1, [r0, 0x2]
mov r3, r9
strh r3, [r5, 0x30]
strh r3, [r5, 0x20]
strh r6, [r5, 0x34]
strh r6, [r5, 0x22]
ldrh r0, [r0]
strh r0, [r5, 0x32]
strh r1, [r5, 0x36]
ldrh r0, [r2]
strh r0, [r5, 0x2E]
adds r0, r5, 0
bl obj_translate_based_on_private_1_2_3_4
ldr r1, =sub_8105284
str r1, [r5, 0x1C]
adds r0, r5, 0
bl _call_via_r1
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81052A4
thumb_func_start sub_81054E8
sub_81054E8: @ 81054E8
push {r4,lr}
adds r4, r0, 0
ldr r0, =0x000027db
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
beq _0810550E
lsls r0, 20
ldr r1, =0x01010000
adds r0, r1
lsrs r0, 16
ldr r1, =gBattleAnimArgs
ldrb r2, [r1, 0xA]
ldrh r3, [r1, 0x8]
movs r1, 0xF
bl BlendPalette
_0810550E:
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
ldr r1, =sub_80A77C8
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81054E8
thumb_func_start sub_8105538
sub_8105538: @ 8105538
push {r4,lr}
adds r4, r0, 0
movs r1, 0
bl sub_80A69CC
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
movs r1, 0xA0
cmp r0, 0
beq _08105554
ldr r1, =0x0000ff60
_08105554:
movs r0, 0xE0
lsls r0, 2
strh r0, [r4, 0x2E]
strh r1, [r4, 0x30]
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x3C]
ldr r0, =sub_810557C
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8105538
thumb_func_start sub_810557C
sub_810557C: @ 810557C
push {r4,r5,lr}
adds r4, r0, 0
ldrh r2, [r4, 0x2E]
lsls r0, r2, 16
asrs r0, 24
ldrh r1, [r4, 0x26]
subs r1, r0
movs r5, 0
strh r1, [r4, 0x26]
ldrh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 24
strh r0, [r4, 0x24]
subs r2, 0x20
strh r2, [r4, 0x2E]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
movs r1, 0xA0
cmp r0, 0
beq _081055AC
ldr r1, =0x0000ff60
_081055AC:
lsls r0, r1, 16
asrs r0, 16
ldrh r1, [r4, 0x30]
adds r0, r1
strh r0, [r4, 0x30]
ldrh r1, [r4, 0x26]
movs r2, 0x26
ldrsh r0, [r4, r2]
cmp r0, 0
ble _081055E0
ldrh r2, [r4, 0x22]
adds r0, r1, r2
strh r0, [r4, 0x22]
ldrh r0, [r4, 0x24]
ldrh r1, [r4, 0x20]
adds r0, r1
strh r0, [r4, 0x20]
strh r5, [r4, 0x26]
strh r5, [r4, 0x24]
strh r5, [r4, 0x2E]
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
ldr r0, =sub_81055F4
str r0, [r4, 0x1C]
_081055E0:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810557C
thumb_func_start sub_81055F4
sub_81055F4: @ 81055F4
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x2E]
adds r1, r0, 0x1
strh r1, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x13
ble _08105612
adds r0, r4, 0
movs r1, 0x2
bl StartSpriteAffineAnim
ldr r0, =sub_810561C
str r0, [r4, 0x1C]
_08105612:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81055F4
thumb_func_start sub_810561C
sub_810561C: @ 810561C
push {r4,lr}
adds r4, r0, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _08105682
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
movs r0, 0
strh r0, [r4, 0x2E]
movs r1, 0x3C
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08105668
ldrh r2, [r4, 0x4]
lsls r1, r2, 22
lsrs r1, 22
adds r1, 0x10
ldr r3, =0x000003ff
adds r0, r3, 0
ands r1, r0
ldr r0, =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r4, 0x4]
ldr r0, =sub_8105694
b _08105680
.pool
_08105668:
ldrh r2, [r4, 0x4]
lsls r1, r2, 22
lsrs r1, 22
adds r1, 0x20
ldr r3, =0x000003ff
adds r0, r3, 0
ands r1, r0
ldr r0, =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r4, 0x4]
ldr r0, =sub_810571C
_08105680:
str r0, [r4, 0x1C]
_08105682:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810561C
thumb_func_start sub_8105694
sub_8105694: @ 8105694
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x26]
subs r0, 0x2
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x9
bne _081056CA
movs r0, 0x10
strh r0, [r4, 0x2E]
movs r0, 0
strh r0, [r4, 0x30]
movs r1, 0xFD
lsls r1, 6
movs r0, 0x50
bl SetGpuReg
ldrh r1, [r4, 0x2E]
movs r0, 0x52
bl SetGpuReg
ldr r0, =sub_81056D4
str r0, [r4, 0x1C]
_081056CA:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8105694
thumb_func_start sub_81056D4
sub_81056D4: @ 81056D4
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x30]
adds r1, r0, 0x1
strh r1, [r4, 0x30]
lsls r0, 16
asrs r0, 16
movs r1, 0x3
bl __modsi3
lsls r0, 16
cmp r0, 0
bne _08105712
ldrh r1, [r4, 0x2E]
subs r1, 0x1
strh r1, [r4, 0x2E]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08105712
ldr r0, =sub_810571C
str r0, [r4, 0x1C]
_08105712:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81056D4
thumb_func_start sub_810571C
sub_810571C: @ 810571C
push {lr}
adds r3, r0, 0
ldr r0, =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, =0x0000ffff
cmp r1, r0
bne _08105754
adds r2, r3, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
movs r1, 0x3C
ldrsh r0, [r3, r1]
cmp r0, 0
bne _08105750
ldr r0, =sub_810575C
b _08105752
.pool
_08105750:
ldr r0, =DestroyAnimSprite
_08105752:
str r0, [r3, 0x1C]
_08105754:
pop {r0}
bx r0
.pool
thumb_func_end sub_810571C
thumb_func_start sub_810575C
sub_810575C: @ 810575C
push {r4,lr}
adds r4, r0, 0
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
adds r0, r4, 0
bl DestroyAnimSprite
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810575C
thumb_func_start sub_810577C
sub_810577C: @ 810577C
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, =gTasks
adds r4, r0
movs r0, 0
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
strh r1, [r4, 0x8]
ldr r2, =gUnknown_085938B0
adds r0, r4, 0
bl sub_80A7CFC
ldr r0, =sub_81057B8
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810577C
thumb_func_start sub_81057B8
sub_81057B8: @ 81057B8
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
adds r0, r4, 0
bl sub_80A7D34
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0
bne _08105802
ldr r2, =gSprites
movs r0, 0x8
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r3, [r0, 0x26]
movs r0, 0x8
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
adds r0, r5, 0
bl DestroyAnimVisualTask
_08105802:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81057B8
thumb_func_start sub_8105810
sub_8105810: @ 8105810
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks
adds r4, r1, r0
movs r0, 0
strh r0, [r4, 0x8]
strh r0, [r4, 0xA]
strh r0, [r4, 0xC]
strh r0, [r4, 0xE]
movs r0, 0x3
strh r0, [r4, 0x20]
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08105850
ldr r0, =0x0000ffff
strh r0, [r4, 0x22]
movs r0, 0x8
b _08105856
.pool
_08105850:
movs r0, 0x1
strh r0, [r4, 0x22]
ldr r0, =0x0000fff8
_08105856:
strh r0, [r4, 0x24]
movs r0, 0x1
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
ldr r0, =sub_8105878
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8105810
thumb_func_start sub_8105878
sub_8105878: @ 8105878
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks
adds r3, r0, r1
movs r0, 0x8
ldrsh r4, [r3, r0]
cmp r4, 0x1
beq _081058CC
cmp r4, 0x1
bgt _081058A0
cmp r4, 0
beq _081058AA
b _08105992
.pool
_081058A0:
cmp r4, 0x2
beq _08105948
cmp r4, 0x3
beq _08105962
b _08105992
_081058AA:
ldr r2, =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]
strh r4, [r3, 0xA]
strh r4, [r3, 0xC]
strh r4, [r3, 0xE]
b _0810595A
.pool
_081058CC:
ldrh r0, [r3, 0xA]
adds r0, 0x1
strh r0, [r3, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _08105992
movs r0, 0
strh r0, [r3, 0xA]
ldrh r0, [r3, 0xC]
adds r0, 0x1
strh r0, [r3, 0xC]
ands r0, r4
lsls r0, 16
cmp r0, 0
beq _08105904
ldr r2, =gSprites
movs r4, 0x26
ldrsh r1, [r3, r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x24]
adds r1, 0x6
b _08105916
.pool
_08105904:
ldr r2, =gSprites
movs r0, 0x26
ldrsh r1, [r3, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x24]
subs r1, 0x6
_08105916:
strh r1, [r0, 0x24]
ldrh r0, [r3, 0xE]
adds r0, 0x1
strh r0, [r3, 0xE]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
ble _08105992
ldrh r1, [r3, 0xC]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0810595A
movs r1, 0x26
ldrsh r0, [r3, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
ldrh r0, [r1, 0x24]
subs r0, 0x6
strh r0, [r1, 0x24]
b _0810595A
.pool
_08105948:
ldrh r0, [r3, 0x20]
subs r0, 0x1
strh r0, [r3, 0x20]
lsls r0, 16
cmp r0, 0
beq _0810595A
movs r0, 0
strh r0, [r3, 0x8]
b _08105992
_0810595A:
ldrh r0, [r3, 0x8]
adds r0, 0x1
strh r0, [r3, 0x8]
b _08105992
_08105962:
ldr r2, =gSprites
movs r4, 0x26
ldrsh r1, [r3, r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r3, 0x22]
ldrh r4, [r0, 0x24]
adds r1, r4
strh r1, [r0, 0x24]
movs r0, 0x26
ldrsh r1, [r3, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x24
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08105992
adds r0, r5, 0
bl DestroyAnimVisualTask
_08105992:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8105878
thumb_func_start sub_810599C
sub_810599C: @ 810599C
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, =gTasks
adds r4, r0
movs r0, 0
strh r0, [r4, 0x8]
strh r0, [r4, 0xA]
strh r0, [r4, 0xC]
strh r0, [r4, 0xE]
movs r0, 0x1
strh r0, [r4, 0x10]
movs r0, 0xE
strh r0, [r4, 0x22]
movs r0, 0x2
strh r0, [r4, 0x24]
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
ldr r0, =sub_81059E0
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810599C
thumb_func_start sub_81059E0
sub_81059E0: @ 81059E0
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r0, 0x8
ldrsh r2, [r4, r0]
cmp r2, 0
bne _08105AA6
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
movs r3, 0x10
ldrsh r1, [r4, r3]
cmp r0, r1
ble _08105AA6
strh r2, [r4, 0xA]
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _08105A3C
ldr r3, =gSprites
movs r6, 0x26
ldrsh r1, [r4, r6]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
b _08105A52
.pool
_08105A3C:
ldr r3, =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
_08105A52:
strb r1, [r0]
ldrh r0, [r4, 0xE]
adds r0, 0x1
movs r2, 0
strh r0, [r4, 0xE]
lsls r0, 16
asrs r0, 16
movs r6, 0x22
ldrsh r1, [r4, r6]
cmp r0, r1
blt _08105AA6
ldrh r0, [r4, 0x10]
adds r0, 0x1
strh r0, [r4, 0x10]
lsls r0, 16
asrs r0, 16
movs r6, 0x24
ldrsh r1, [r4, r6]
cmp r0, r1
bge _08105A88
strh r2, [r4, 0xA]
strh r2, [r4, 0xC]
strh r2, [r4, 0xE]
b _08105AA6
.pool
_08105A88:
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
adds r0, r5, 0
bl DestroyAnimVisualTask
_08105AA6:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81059E0
thumb_func_start sub_8105AAC
sub_8105AAC: @ 8105AAC
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, =gTasks
adds r4, r0
movs r0, 0
strh r0, [r4, 0x8]
movs r1, 0x4
strh r1, [r4, 0xA]
strh r0, [r4, 0xC]
strh r0, [r4, 0xE]
strh r0, [r4, 0x10]
strh r0, [r4, 0x12]
strh r0, [r4, 0x14]
strh r0, [r4, 0x16]
strh r0, [r4, 0x18]
strh r0, [r4, 0x22]
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x24]
ldrb r0, [r5]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
ldr r0, =sub_8105B08
str r0, [r4]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8105AAC
thumb_func_start sub_8105B08
sub_8105B08: @ 8105B08
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r0, 0x18
ldrsh r2, [r4, r0]
cmp r2, 0x1
beq _08105B74
cmp r2, 0x1
bgt _08105B30
cmp r2, 0
beq _08105B36
b _08105B90
.pool
_08105B30:
cmp r2, 0x2
beq _08105B8C
b _08105B90
_08105B36:
ldrh r0, [r4, 0x10]
adds r0, 0x1
strh r0, [r4, 0x10]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _08105B90
strh r2, [r4, 0x10]
ldrh r0, [r4, 0x12]
adds r0, 0x1
movs r1, 0x1
ands r0, r1
strh r0, [r4, 0x12]
ldrh r0, [r4, 0x14]
adds r0, 0x1
strh r0, [r4, 0x14]
lsls r0, 16
asrs r0, 16
cmp r0, 0x14
ble _08105B90
movs r1, 0x16
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08105B6E
strh r2, [r4, 0x14]
movs r0, 0x1
strh r0, [r4, 0x18]
b _08105B90
_08105B6E:
movs r0, 0x2
strh r0, [r4, 0x18]
b _08105B90
_08105B74:
movs r1, 0
strh r1, [r4, 0x12]
ldrh r0, [r4, 0x10]
adds r0, 0x1
strh r0, [r4, 0x10]
lsls r0, 16
asrs r0, 16
cmp r0, 0x14
ble _08105B90
strh r2, [r4, 0x16]
strh r1, [r4, 0x18]
b _08105B90
_08105B8C:
movs r0, 0x1
strh r0, [r4, 0x12]
_08105B90:
movs r2, 0x8
ldrsh r5, [r4, r2]
cmp r5, 0
beq _08105B9E
cmp r5, 0x1
beq _08105C34
b _08105C42
_08105B9E:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
ble _08105C42
strh r5, [r4, 0xA]
ldr r0, =gUnknown_085938DC
movs r3, 0x24
ldrsh r1, [r4, r3]
movs r3, 0x26
ldrsh r2, [r4, r3]
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x40
beq _08105C42
ldr r0, =gSprites
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r0
strh r6, [r1, 0x2E]
movs r0, 0xD
strh r0, [r1, 0x30]
ldr r2, =gUnknown_085938F4
movs r3, 0xC
ldrsh r0, [r4, r3]
lsls r0, 1
adds r0, r2
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
strh r0, [r1, 0x24]
movs r3, 0xC
ldrsh r0, [r4, r3]
lsls r0, 1
adds r2, 0x1
adds r0, r2
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
strh r0, [r1, 0x26]
ldrh r0, [r4, 0x22]
adds r0, 0x1
strh r0, [r4, 0x22]
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3
ble _08105C42
strh r5, [r4, 0xC]
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
lsls r0, 16
asrs r0, 16
cmp r0, 0x5
ble _08105C42
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _08105C42
.pool
_08105C34:
movs r1, 0x22
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08105C42
adds r0, r6, 0
bl DestroyAnimVisualTask
_08105C42:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8105B08
thumb_func_start sub_8105C48
sub_8105C48: @ 8105C48
push {r4,lr}
adds r3, r0, 0
ldr r4, =gTasks
movs r0, 0x2E
ldrsh r1, [r3, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r4
movs r1, 0x3E
adds r1, r3
mov r12, r1
movs r2, 0x1
ldrb r1, [r0, 0x12]
ands r1, r2
lsls r1, 2
mov r0, r12
ldrb r2, [r0]
movs r0, 0x5
negs r0, r0
ands r0, r2
orrs r0, r1
mov r1, r12
strb r0, [r1]
adds r0, r3, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _08105CAA
movs r0, 0x30
ldrsh r1, [r3, r0]
lsls r1, 1
movs r0, 0x2E
ldrsh r2, [r3, r0]
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r1, r0
adds r0, r4, 0
adds r0, 0x8
adds r1, r0
ldrh r0, [r1]
subs r0, 0x1
strh r0, [r1]
adds r0, r3, 0
bl DestroySprite
_08105CAA:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8105C48
thumb_func_start sub_8105CB4
sub_8105CB4: @ 8105CB4
push {r4-r6,lr}
sub sp, 0x4
lsls r0, 24
lsrs r6, r0, 24
ldr r0, =0x000027de
bl IndexOfSpritePaletteTag
mov r1, sp
strb r0, [r1]
movs r4, 0x1
ldr r0, =0x00002710
adds r5, r0, 0
_08105CCC:
subs r0, r5, r4
lsls r0, 16
lsrs r0, 16
bl AllocSpritePalette
mov r2, sp
adds r1, r2, r4
strb r0, [r1]
adds r4, 0x1
cmp r4, 0x2
ble _08105CCC
movs r0, 0x80
lsls r0, 6
bl AllocZeroed
adds r1, r0, 0
ldr r0, =gMonSpritesGfxPtr
ldr r0, [r0]
movs r2, 0xBE
lsls r2, 1
adds r0, r2
str r1, [r0]
ldr r0, =gBattleAnimSpritePalette_206
bl LZDecompressWram
movs r4, 0
_08105D00:
ldr r5, =gMonSpritesGfxPtr
ldr r0, [r5]
movs r1, 0xBE
lsls r1, 1
adds r0, r1
lsls r1, r4, 6
ldr r0, [r0]
adds r0, r1
mov r2, sp
adds r1, r2, r4
ldrb r1, [r1]
lsls r1, 20
movs r2, 0x80
lsls r2, 17
adds r1, r2
lsrs r1, 16
movs r2, 0x20
bl LoadPalette
adds r4, 0x1
cmp r4, 0x2
ble _08105D00
ldr r0, [r5]
movs r4, 0xBE
lsls r4, 1
adds r0, r4
ldr r0, [r0]
bl Free
ldr r0, [r5]
adds r0, r4
movs r1, 0
str r1, [r0]
adds r0, r6, 0
bl DestroyAnimVisualTask
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8105CB4
thumb_func_start sub_8105D60
sub_8105D60: @ 8105D60
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r5, =gUnknown_08593950
movs r4, 0x2
_08105D6A:
ldrh r0, [r5]
bl FreeSpritePaletteByTag
adds r5, 0x2
subs r4, 0x1
cmp r4, 0
bge _08105D6A
adds r0, r6, 0
bl DestroyAnimVisualTask
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8105D60
thumb_func_start sub_8105D88
sub_8105D88: @ 8105D88
push {r4,r5,lr}
adds r5, r0, 0
lsls r1, 24
lsls r2, 24
lsrs r3, r2, 24
movs r0, 0x1
ands r3, r0
negs r0, r3
orrs r0, r3
asrs r0, 31
movs r3, 0x20
ands r0, r3
ldrh r4, [r5, 0x4]
lsls r3, r4, 22
lsrs r3, 22
lsrs r1, 22
adds r0, r1
adds r3, r0
ldr r1, =0x000003ff
adds r0, r1, 0
ands r3, r0
ldr r0, =0xfffffc00
ands r0, r4
orrs r0, r3
strh r0, [r5, 0x4]
ldr r0, =gUnknown_08593950
lsrs r2, 25
lsls r2, 1
adds r2, r0
ldrh r0, [r2]
bl IndexOfSpritePaletteTag
lsls r0, 4
ldrb r2, [r5, 0x5]
movs r1, 0xF
ands r1, r2
orrs r1, r0
strb r1, [r5, 0x5]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8105D88
thumb_func_start sub_8105DE8
sub_8105DE8: @ 8105DE8
push {r4-r6,lr}
adds r5, r0, 0
movs r1, 0
bl sub_80A69CC
ldr r6, =gBattleAnimAttacker
ldrb r0, [r6]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08105E08
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_08105E08:
ldr r4, =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r5, 0x2E]
ldrb r0, [r6]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x4]
adds r0, r1
strh r0, [r5, 0x32]
ldrb r0, [r6]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x6]
adds r0, r1
strh r0, [r5, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r5, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldrb r1, [r4, 0xA]
ldrb r2, [r4, 0xC]
adds r0, r5, 0
bl sub_8105D88
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8105DE8
thumb_func_start sub_8105E60
sub_8105E60: @ 8105E60
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, 0x1
bne _08105E7A
adds r0, r4, 0
movs r1, 0
bl sub_80A69CC
_08105E7A:
movs r1, 0x30
ldrsh r0, [r4, r1]
movs r1, 0x8
bl Sin
strh r0, [r4, 0x24]
ldrh r2, [r4, 0x32]
lsls r0, r2, 16
asrs r0, 24
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x30]
adds r0, 0x7
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x30]
subs r2, 0x80
strh r2, [r4, 0x32]
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0x3C
bne _08105EAA
adds r0, r4, 0
bl DestroyAnimSprite
_08105EAA:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8105E60
thumb_func_start sub_8105EB0
sub_8105EB0: @ 8105EB0
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
bl IsContest
lsls r0, 24
movs r6, 0xF0
cmp r0, 0
beq _08105EC4
movs r6, 0x98
_08105EC4:
movs r5, 0
ldr r1, =gBattle_WIN0H
strh r6, [r1]
ldr r4, =gBattle_WIN0V
movs r0, 0xA0
strh r0, [r4]
ldrh r1, [r1]
movs r0, 0x40
bl SetGpuReg
ldrh r1, [r4]
movs r0, 0x44
bl SetGpuReg
ldr r1, =0x00003f1f
movs r0, 0x48
bl SetGpuReg
ldr r1, =0x00003f3f
movs r0, 0x4A
bl SetGpuReg
movs r0, 0x50
movs r1, 0xC8
bl SetGpuReg
movs r0, 0x54
movs r1, 0x10
bl SetGpuReg
ldr r1, =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r0, r1
strh r5, [r0, 0x8]
strh r6, [r0, 0xA]
ldr r1, =sub_8105F30
str r1, [r0]
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8105EB0
thumb_func_start sub_8105F30
sub_8105F30: @ 8105F30
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r2, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r3, r1, r2
ldrh r0, [r3, 0x8]
adds r4, r0, 0
adds r4, 0xD
strh r4, [r3, 0x8]
ldrh r0, [r3, 0xA]
adds r2, r0, 0
subs r2, 0xD
strh r2, [r3, 0xA]
lsls r1, r4, 16
lsls r0, r2, 16
cmp r1, r0
blt _08105F70
ldr r0, =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r0, =sub_8105F84
str r0, [r3]
b _08105F78
.pool
_08105F70:
ldr r1, =gBattle_WIN0H
lsls r0, r4, 8
orrs r2, r0
strh r2, [r1]
_08105F78:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8105F30
thumb_func_start sub_8105F84
sub_8105F84: @ 8105F84
push {r4,r5,lr}
sub sp, 0xC
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r1, r0, r1
ldrh r0, [r1, 0x1C]
adds r0, 0x1
movs r4, 0
strh r0, [r1, 0x1C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x5
bne _08105FD8
movs r0, 0x88
strh r0, [r1, 0x1E]
movs r0, 0x50
movs r1, 0x88
bl SetGpuReg
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80A75AC
ldr r2, =0x00007fff
movs r1, 0x10
bl BlendPalettes
b _0810600C
.pool
_08105FD8:
cmp r0, 0x4
ble _0810600C
ldr r0, =gBattle_WIN0H
strh r4, [r0]
ldr r0, =gBattle_WIN0V
strh r4, [r0]
ldr r4, =0x00003f3f
movs r0, 0x48
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x54
movs r1, 0
bl SetGpuReg
adds r0, r5, 0
bl DestroyAnimVisualTask
_0810600C:
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8105F84
thumb_func_start sub_8106020
sub_8106020: @ 8106020
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
movs r0, 0x1
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r5, r0, r1
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
bne _0810607C
movs r0, 0x1
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
ldr r2, =gUnknown_08593988
adds r0, r5, 0
bl sub_80A7CFC
ldr r1, =gSprites
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r0, r1
movs r1, 0x4
strh r1, [r0, 0x24]
b _081060A4
.pool
_0810607C:
ldr r1, =gSprites
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r4, r0, r1
ldrh r0, [r4, 0x24]
negs r0, r0
strh r0, [r4, 0x24]
adds r0, r5, 0
bl sub_80A7D34
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _081060A4
strh r0, [r4, 0x24]
strh r0, [r4, 0x26]
adds r0, r6, 0
bl DestroyAnimVisualTask
_081060A4:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8106020
thumb_func_start sub_81060B0
sub_81060B0: @ 81060B0
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r5, r0, r1
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
bne _0810610C
movs r0, 0
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
ldr r2, =gUnknown_08593988
adds r0, r5, 0
bl sub_80A7CFC
ldr r1, =gSprites
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r0, r1
movs r1, 0x4
strh r1, [r0, 0x24]
b _08106134
.pool
_0810610C:
ldr r1, =gSprites
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r4, r0, r1
ldrh r0, [r4, 0x24]
negs r0, r0
strh r0, [r4, 0x24]
adds r0, r5, 0
bl sub_80A7D34
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _08106134
strh r0, [r4, 0x24]
strh r0, [r4, 0x26]
adds r0, r6, 0
bl DestroyAnimVisualTask
_08106134:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81060B0
thumb_func_start sub_8106140
sub_8106140: @ 8106140
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
movs r0, 0x5F
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
adds r0, r4, 0
bl obj_translate_based_on_private_1_2_3_4
ldr r0, =sub_810618C
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8106140
thumb_func_start sub_810618C
sub_810618C: @ 810618C
push {r4,lr}
adds r4, r0, 0
bl sub_80A6F3C
lsls r0, 24
cmp r0, 0
bne _081061B6
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r1, 0xE
bl Sin
ldrh r1, [r4, 0x26]
adds r0, r1
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x38]
adds r0, 0x4
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x38]
b _081061BC
_081061B6:
adds r0, r4, 0
bl DestroyAnimSprite
_081061BC:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810618C
thumb_func_start sub_81061C4
sub_81061C4: @ 81061C4
push {r4,lr}
adds r4, r0, 0
ldrh r2, [r4, 0x2E]
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081061E8
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x2]
strh r0, [r4, 0x32]
adds r0, r2, 0x1
strh r0, [r4, 0x2E]
b _08106244
.pool
_081061E8:
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 _08106236
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]
_08106236:
movs r1, 0x34
ldrsh r0, [r4, r1]
cmp r0, 0x78
ble _08106244
adds r0, r4, 0
bl DestroyAnimSprite
_08106244:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81061C4
thumb_func_start sub_810624C
sub_810624C: @ 810624C
push {lr}
ldr r2, =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r0, 0x20]
movs r1, 0xA0
strh r1, [r0, 0x22]
ldrh r1, [r2, 0x4]
strh r1, [r0, 0x2E]
ldrh r1, [r2, 0x2]
strh r1, [r0, 0x30]
ldr r1, =sub_80A64B0
str r1, [r0, 0x1C]
ldr r1, =sub_810627C
bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.pool
thumb_func_end sub_810624C
thumb_func_start sub_810627C
sub_810627C: @ 810627C
push {r4,r5,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x30]
ldrh r1, [r4, 0x32]
adds r0, r1
strh r0, [r4, 0x32]
lsls r0, 16
lsrs r0, 24
negs r0, r0
strh r0, [r4, 0x26]
movs r1, 0x34
ldrsh r0, [r4, r1]
movs r1, 0x4
bl Sin
strh r0, [r4, 0x24]
ldrh r0, [r4, 0x34]
adds r0, 0x3
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x34]
ldrh r0, [r4, 0x26]
ldrh r1, [r4, 0x22]
adds r0, r1
lsls r0, 16
asrs r5, r0, 16
cmp r5, 0x48
bgt _081062E2
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]
cmp r5, 0x40
bgt _081062E2
adds r0, r4, 0
bl DestroyAnimSprite
_081062E2:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_810627C
thumb_func_start sub_81062E8
sub_81062E8: @ 81062E8
push {r4,r5,lr}
sub sp, 0x10
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
movs r1, 0x80
lsls r1, 5
movs r0, 0x52
bl SetGpuReg
movs r0, 0x1
movs r1, 0x4
movs r2, 0x3
bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0
movs r2, 0
bl SetAnimBgAttribute
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810632A
movs r0, 0x1
movs r1, 0x3
movs r2, 0x1
bl SetAnimBgAttribute
_0810632A:
ldr r0, =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
ldr r4, =gBattle_BG1_Y
strh r1, [r4]
movs r0, 0x14
movs r1, 0
bl SetGpuReg
ldrh r1, [r4]
movs r0, 0x16
bl SetGpuReg
mov r0, sp
bl sub_80A6B30
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, =gUnknown_08C232E0
mov r2, sp
ldrh r2, [r2, 0xA]
bl sub_80A6CC0
ldr r1, =gUnknown_08C23D78
mov r0, sp
movs r2, 0
bl sub_80A6D60
ldr r0, =gUnknown_08C23D50
mov r1, sp
ldrb r1, [r1, 0x8]
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, =sub_81063A8
str r1, [r0]
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81062E8
thumb_func_start sub_81063A8
sub_81063A8: @ 81063A8
push {r4,r5,lr}
sub sp, 0x10
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
movs r2, 0x20
ldrsh r0, [r0, r2]
adds r2, r1, 0
cmp r0, 0x4
bls _081063C6
b _081064F0
_081063C6:
lsls r0, 2
ldr r1, =_081063D8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081063D8:
.4byte _081063EC
.4byte _08106430
.4byte _08106452
.4byte _08106496
.4byte _081064BC
_081063EC:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r4, r0, r2
ldrh r0, [r4, 0x1C]
adds r0, 0x1
movs r5, 0
strh r0, [r4, 0x1C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bne _081064F0
strh r5, [r4, 0x1C]
ldrh r1, [r4, 0x1E]
adds r1, 0x1
strh r1, [r4, 0x1E]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0x1E
ldrsh r0, [r4, r1]
cmp r0, 0x10
bne _081064F0
ldrh r0, [r4, 0x20]
adds r0, 0x1
strh r0, [r4, 0x20]
strh r5, [r4, 0x1E]
b _081064F0
_08106430:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r1, r0, r2
ldrh r0, [r1, 0x1E]
adds r0, 0x1
strh r0, [r1, 0x1E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x8D
bne _081064F0
movs r0, 0x10
strh r0, [r1, 0x1E]
ldrh r0, [r1, 0x20]
adds r0, 0x1
strh r0, [r1, 0x20]
b _081064F0
_08106452:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r4, r0, r2
ldrh r0, [r4, 0x1C]
adds r0, 0x1
strh r0, [r4, 0x1C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bne _081064F0
movs r0, 0
strh r0, [r4, 0x1C]
ldrh r1, [r4, 0x1E]
subs r1, 0x1
strh r1, [r4, 0x1E]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r2, 0x1E
ldrsh r1, [r4, r2]
cmp r1, 0
bne _081064F0
ldrh r0, [r4, 0x20]
adds r0, 0x1
strh r0, [r4, 0x20]
strh r1, [r4, 0x1E]
b _081064F0
_08106496:
mov r0, sp
bl sub_80A6B30
mov r0, sp
ldrb r0, [r0, 0x9]
bl sub_80A6C68
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldrh r1, [r0, 0x20]
adds r1, 0x1
strh r1, [r0, 0x20]
b _081064F0
.pool
_081064BC:
bl IsContest
lsls r0, 24
cmp r0, 0
bne _081064D0
movs r0, 0x1
movs r1, 0x3
movs r2, 0
bl SetAnimBgAttribute
_081064D0:
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
adds r0, r4, 0
bl DestroyAnimVisualTask
_081064F0:
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81063A8
thumb_func_start sub_81064F8
sub_81064F8: @ 81064F8
push {r4,r5,lr}
sub sp, 0x10
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
movs r1, 0x80
lsls r1, 5
movs r0, 0x52
bl SetGpuReg
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0
movs r2, 0
bl SetAnimBgAttribute
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810653A
movs r0, 0x1
movs r1, 0x3
movs r2, 0x1
bl SetAnimBgAttribute
_0810653A:
ldr r0, =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
ldr r4, =gBattle_BG1_Y
strh r1, [r4]
movs r0, 0x14
movs r1, 0
bl SetGpuReg
ldrh r1, [r4]
movs r0, 0x16
bl SetGpuReg
mov r0, sp
bl sub_80A6B30
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08106578
ldr r1, =gBattleAnimBackgroundTilemap_ScaryFaceContest
b _0810658A
.pool
_08106578:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0810659C
ldr r1, =gBattleAnimBackgroundTilemap_ScaryFacePlayer
_0810658A:
mov r0, sp
movs r2, 0
bl sub_80A6D60
b _081065A6
.pool
_0810659C:
ldr r1, =gBattleAnimBackgroundTilemap_ScaryFaceOpponent
mov r0, sp
movs r2, 0
bl sub_80A6D60
_081065A6:
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, =gUnknown_08C249F8
mov r2, sp
ldrh r2, [r2, 0xA]
bl sub_80A6CC0
ldr r0, =gUnknown_08C249D0
mov r1, sp
ldrb r1, [r1, 0x8]
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, =sub_81065EC
str r1, [r0]
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81064F8
thumb_func_start sub_81065EC
sub_81065EC: @ 81065EC
push {r4,r5,lr}
sub sp, 0x10
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
movs r2, 0x20
ldrsh r0, [r0, r2]
adds r2, r1, 0
cmp r0, 0x4
bls _0810660A
b _08106730
_0810660A:
lsls r0, 2
ldr r1, =_0810661C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0810661C:
.4byte _08106630
.4byte _08106674
.4byte _08106696
.4byte _081066DA
.4byte _081066FC
_08106630:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r4, r0, r2
ldrh r0, [r4, 0x1C]
adds r0, 0x1
movs r5, 0
strh r0, [r4, 0x1C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
bne _08106730
strh r5, [r4, 0x1C]
ldrh r1, [r4, 0x1E]
adds r1, 0x1
strh r1, [r4, 0x1E]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0x1E
ldrsh r0, [r4, r1]
cmp r0, 0xE
bne _08106730
ldrh r0, [r4, 0x20]
adds r0, 0x1
strh r0, [r4, 0x20]
strh r5, [r4, 0x1E]
b _08106730
_08106674:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r1, r0, r2
ldrh r0, [r1, 0x1E]
adds r0, 0x1
strh r0, [r1, 0x1E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x15
bne _08106730
movs r0, 0xE
strh r0, [r1, 0x1E]
ldrh r0, [r1, 0x20]
adds r0, 0x1
strh r0, [r1, 0x20]
b _08106730
_08106696:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r4, r0, r2
ldrh r0, [r4, 0x1C]
adds r0, 0x1
strh r0, [r4, 0x1C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
bne _08106730
movs r0, 0
strh r0, [r4, 0x1C]
ldrh r1, [r4, 0x1E]
subs r1, 0x1
strh r1, [r4, 0x1E]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r2, 0x1E
ldrsh r1, [r4, r2]
cmp r1, 0
bne _08106730
ldrh r0, [r4, 0x20]
adds r0, 0x1
strh r0, [r4, 0x20]
strh r1, [r4, 0x1E]
b _08106730
_081066DA:
mov r0, sp
bl sub_80A6B30
movs r0, 0x1
bl sub_80A6C68
movs r0, 0x2
bl sub_80A6C68
ldr r0, =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x20]
adds r0, 0x1
strh r0, [r1, 0x20]
_081066FC:
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08106710
movs r0, 0x1
movs r1, 0x3
movs r2, 0
bl SetAnimBgAttribute
_08106710:
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
adds r0, r4, 0
bl DestroyAnimVisualTask
_08106730:
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81065EC
thumb_func_start sub_810673C
sub_810673C: @ 810673C
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
adds r2, r4, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x2]
strh r0, [r4, 0x30]
ldrb r0, [r5]
bl sub_80A82E4
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x3C]
ldr r1, =sub_810679C
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810673C
thumb_func_start sub_810679C
sub_810679C: @ 810679C
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x30]
subs r0, 0x40
lsls r0, 16
lsrs r0, 16
cmp r0, 0x7F
bhi _081067B2
ldrh r0, [r4, 0x3C]
adds r0, 0x1
b _081067B6
_081067B2:
ldrh r0, [r4, 0x3C]
subs r0, 0x1
_081067B6:
adds r1, r4, 0
adds r1, 0x43
strb r0, [r1]
movs r1, 0x30
ldrsh r0, [r4, r1]
ldrh r1, [r4, 0x32]
lsls r1, 16
asrs r1, 24
bl Sin
strh r0, [r4, 0x24]
movs r2, 0x30
ldrsh r0, [r4, r2]
ldrh r1, [r4, 0x34]
lsls r1, 16
asrs r1, 24
bl Cos
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x30]
adds r0, 0x9
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x30]
movs r3, 0x38
ldrsh r2, [r4, r3]
cmp r2, 0
beq _08106828
cmp r2, 0x1
bne _08106858
ldr r1, =0xfffffc00
adds r0, r1, 0
ldrh r2, [r4, 0x32]
adds r0, r2
strh r0, [r4, 0x32]
ldr r3, =0xffffff00
adds r0, r3, 0
ldrh r1, [r4, 0x34]
adds r0, r1
strh r0, [r4, 0x34]
ldrh r0, [r4, 0x36]
adds r0, 0x1
strh r0, [r4, 0x36]
lsls r0, 16
asrs r0, 16
movs r2, 0x2E
ldrsh r1, [r4, r2]
cmp r0, r1
bne _08106858
movs r0, 0x2
strh r0, [r4, 0x38]
b _08106868
.pool
_08106828:
movs r3, 0x80
lsls r3, 3
adds r0, r3, 0
ldrh r1, [r4, 0x32]
adds r0, r1
strh r0, [r4, 0x32]
movs r3, 0x80
lsls r3, 1
adds r0, r3, 0
ldrh r1, [r4, 0x34]
adds r0, r1
strh r0, [r4, 0x34]
ldrh r0, [r4, 0x36]
adds r0, 0x1
strh r0, [r4, 0x36]
lsls r0, 16
asrs r0, 16
movs r3, 0x2E
ldrsh r1, [r4, r3]
cmp r0, r1
bne _08106858
strh r2, [r4, 0x36]
movs r0, 0x1
strh r0, [r4, 0x38]
_08106858:
ldr r0, =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, =0x0000ffff
cmp r1, r0
bne _08106868
adds r0, r4, 0
bl DestroyAnimSprite
_08106868:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810679C
thumb_func_start sub_8106878
sub_8106878: @ 8106878
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, =gBattleAnimAttacker
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 r4, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
movs r1, 0xA
bl Sin
strh r0, [r5, 0x2E]
movs r1, 0
ldrsh r0, [r4, r1]
movs r1, 0x7
bl Cos
strh r0, [r5, 0x30]
ldr r0, =sub_81068CC
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8106878
thumb_func_start sub_81068CC
sub_81068CC: @ 81068CC
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x2E]
ldrh r1, [r2, 0x24]
adds r0, r1
strh r0, [r2, 0x24]
ldrh r0, [r2, 0x30]
ldrh r3, [r2, 0x26]
adds r0, r3
strh r0, [r2, 0x26]
movs r1, 0x20
ldrsh r0, [r2, r1]
movs r3, 0x24
ldrsh r1, [r2, r3]
adds r0, r1
adds r0, 0x10
movs r1, 0x88
lsls r1, 1
cmp r0, r1
bhi _0810690A
movs r0, 0x22
ldrsh r1, [r2, r0]
movs r3, 0x26
ldrsh r0, [r2, r3]
adds r1, r0
cmp r1, 0xA0
bgt _0810690A
movs r0, 0x10
negs r0, r0
cmp r1, r0
bge _08106910
_0810690A:
adds r0, r2, 0
bl DestroyAnimSprite
_08106910:
pop {r0}
bx r0
thumb_func_end sub_81068CC
thumb_func_start sub_8106914
sub_8106914: @ 8106914
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x2E]
ldrh r1, [r2, 0x24]
adds r0, r1
strh r0, [r2, 0x24]
ldrh r0, [r2, 0x30]
ldrh r3, [r2, 0x26]
adds r0, r3
strh r0, [r2, 0x26]
ldrh r0, [r2, 0x34]
adds r1, r0, 0x1
strh r1, [r2, 0x34]
lsls r0, 16
asrs r0, 16
movs r3, 0x32
ldrsh r1, [r2, r3]
cmp r0, r1
blt _08106940
adds r0, r2, 0
bl DestroyAnimSprite
_08106940:
pop {r0}
bx r0
thumb_func_end sub_8106914
thumb_func_start sub_8106944
sub_8106944: @ 8106944
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, =gBattleAnimAttacker
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 r4, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
movs r1, 0xA
bl Sin
strh r0, [r5, 0x2E]
movs r1, 0
ldrsh r0, [r4, r1]
movs r1, 0x7
bl Cos
strh r0, [r5, 0x30]
ldrh r0, [r4, 0x2]
strh r0, [r5, 0x32]
ldr r0, =sub_8106914
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8106944
thumb_func_start sub_810699C
sub_810699C: @ 810699C
push {lr}
adds r2, r0, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _081069B2
adds r0, r2, 0
bl DestroyAnimSprite
_081069B2:
pop {r0}
bx r0
thumb_func_end sub_810699C
thumb_func_start sub_81069B8
sub_81069B8: @ 81069B8
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r0, =sub_810699C
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81069B8
thumb_func_start sub_81069D0
sub_81069D0: @ 81069D0
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081069EE
ldr r0, =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r4, 0x20]
adds r1, r2
strh r1, [r4, 0x20]
ldrh r0, [r0, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
_081069EE:
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
movs r2, 0x2E
ldrsh r1, [r4, r2]
lsls r0, r1, 2
adds r0, r1
lsls r5, r0, 1
movs r0, 0xFF
ands r5, r0
adds r0, r5, 0
movs r1, 0x50
bl Sin
lsls r0, 16
asrs r0, 24
strh r0, [r4, 0x24]
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0x4F
bgt _08106A32
adds r0, r5, 0
movs r1, 0x50
bl Cos
movs r2, 0x2E
ldrsh r1, [r4, r2]
lsrs r2, r1, 31
adds r1, r2
asrs r1, 1
lsls r0, 16
asrs r0, 24
adds r1, r0
strh r1, [r4, 0x26]
_08106A32:
movs r0, 0x2E
ldrsh r2, [r4, r0]
cmp r2, 0x5A
ble _08106A50
ldrh r0, [r4, 0x32]
adds r0, 0x1
strh r0, [r4, 0x32]
movs r0, 0x32
ldrsh r1, [r4, r0]
lsrs r0, r1, 31
adds r1, r0
asrs r1, 1
ldrh r0, [r4, 0x24]
subs r0, r1
strh r0, [r4, 0x24]
_08106A50:
cmp r2, 0x64
ble _08106A5A
adds r0, r4, 0
bl DestroyAnimSprite
_08106A5A:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81069D0
thumb_func_start sub_8106A64
sub_8106A64: @ 8106A64
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x38]
adds r0, 0x1
strh r0, [r4, 0x38]
movs r1, 0x34
ldrsh r0, [r4, r1]
movs r1, 0x5
bl Sin
strh r0, [r4, 0x24]
movs r1, 0x38
ldrsh r0, [r4, r1]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x34]
adds r0, 0x3
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x34]
movs r1, 0x38
ldrsh r0, [r4, r1]
cmp r0, 0x14
ble _08106ABA
adds r1, r0, 0
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]
_08106ABA:
movs r1, 0x38
ldrsh r0, [r4, r1]
cmp r0, 0x1E
ble _08106AC8
adds r0, r4, 0
bl DestroyAnimSprite
_08106AC8:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8106A64
thumb_func_start sub_8106AD0
sub_8106AD0: @ 8106AD0
push {r4,r5,lr}
adds r4, r0, 0
ldrh r2, [r4, 0x2E]
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08106AF4
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x2]
strh r0, [r4, 0x32]
adds r0, r2, 0x1
strh r0, [r4, 0x2E]
b _08106B48
.pool
_08106AF4:
ldrh r0, [r4, 0x30]
ldrh r2, [r4, 0x36]
adds r0, r2
movs r5, 0
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
adds r2, r0, 0
strh r2, [r4, 0x26]
ldrh r0, [r4, 0x34]
adds r0, 0x3
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x34]
cmp r0, 0x46
ble _08106B48
ldr r0, =sub_8106A64
str r0, [r4, 0x1C]
ldrh r0, [r4, 0x24]
ldrh r1, [r4, 0x20]
adds r0, r1
strh r0, [r4, 0x20]
ldrh r1, [r4, 0x22]
adds r0, r2, r1
strh r0, [r4, 0x22]
strh r5, [r4, 0x24]
strh r5, [r4, 0x26]
bl Random2
lsls r0, 16
lsrs r0, 16
movs r1, 0xB4
bl __umodsi3
strh r0, [r4, 0x34]
_08106B48:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8106AD0
thumb_func_start sub_8106B54
sub_8106B54: @ 8106B54
push {r4,lr}
adds r4, r0, 0
movs r1, 0x34
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08106B8E
ldr r1, =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]
adds r0, r4, 0
movs r1, 0
bl StartSpriteAnim
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A82E4
subs r0, 0x1
adds r1, r4, 0
adds r1, 0x43
strb r0, [r1]
movs r0, 0x1
strh r0, [r4, 0x32]
_08106B8E:
ldrh r0, [r4, 0x32]
ldrh r2, [r4, 0x2E]
adds r0, r2
strh r0, [r4, 0x2E]
movs r1, 0x2E
ldrsh r0, [r4, r1]
lsls r1, r0, 2
adds r0, r1, 0
cmp r1, 0
bge _08106BA4
adds r0, 0xFF
_08106BA4:
asrs r0, 8
lsls r0, 8
subs r0, r1, r0
strh r0, [r4, 0x30]
lsls r0, 16
cmp r0, 0
bge _08106BB6
movs r0, 0
strh r0, [r4, 0x30]
_08106BB6:
movs r0, 0x30
ldrsh r2, [r4, r0]
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
bge _08106BC4
adds r0, 0x3
_08106BC4:
asrs r0, 2
movs r1, 0x1E
subs r1, r0
adds r0, r2, 0
bl Cos
strh r0, [r4, 0x24]
movs r0, 0x30
ldrsh r2, [r4, r0]
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
bge _08106BE0
adds r0, 0x7
_08106BE0:
asrs r0, 3
movs r1, 0xA
subs r1, r0
adds r0, r2, 0
bl Sin
strh r0, [r4, 0x26]
movs r2, 0x30
ldrsh r0, [r4, r2]
cmp r0, 0x80
ble _08106C04
ldrh r1, [r4, 0x32]
movs r2, 0x32
ldrsh r0, [r4, r2]
cmp r0, 0
ble _08106C04
ldr r0, =0x0000ffff
strh r0, [r4, 0x32]
_08106C04:
movs r1, 0x30
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08106C18
movs r2, 0x32
ldrsh r0, [r4, r2]
cmp r0, 0
bge _08106C18
movs r0, 0x1
strh r0, [r4, 0x32]
_08106C18:
ldrh r0, [r4, 0x34]
adds r1, r0, 0x1
strh r1, [r4, 0x34]
subs r0, 0x9
lsls r0, 16
lsrs r0, 16
cmp r0, 0x46
bls _08106C5C
movs r0, 0x2E
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]
b _08106C6A
.pool
_08106C5C:
adds r2, r4, 0
adds r2, 0x3E
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r2]
_08106C6A:
movs r1, 0x34
ldrsh r0, [r4, r1]
cmp r0, 0x5A
ble _08106C78
adds r0, r4, 0
bl DestroyAnimSprite
_08106C78:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8106B54
thumb_func_start sub_8106C80
sub_8106C80: @ 8106C80
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08106CB4
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
strh r0, [r4, 0x20]
ldrh r0, [r1, 0x2]
ldrh r2, [r4, 0x22]
adds r0, r2
strh r0, [r4, 0x22]
ldrb r1, [r1, 0x4]
adds r0, r4, 0
bl StartSpriteAnim
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
b _08106CC8
.pool
_08106CB4:
adds r0, r4, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _08106CC8
adds r0, r4, 0
bl DestroyAnimSprite
_08106CC8:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8106C80
thumb_func_start sub_8106CD0
sub_8106CD0: @ 8106CD0
push {r4,r5,lr}
adds r5, r0, 0
ldr r1, =gBattleAnimArgs
movs r2, 0x4
ldrsh r0, [r1, r2]
cmp r0, 0
bne _08106CEC
adds r0, r5, 0
bl DestroyAnimSprite
b _08106D50
.pool
_08106CEC:
movs r2, 0
ldrsh r0, [r1, r2]
cmp r0, 0
bne _08106CFC
ldr r4, =gBattleAnimAttacker
b _08106CFE
.pool
_08106CFC:
ldr r4, =gBattleAnimTarget
_08106CFE:
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, =gBattleAnimArgs
movs r2, 0x2
ldrsh r1, [r0, r2]
adds r2, r0, 0
cmp r1, 0
bne _08106D34
ldrh r0, [r5, 0x20]
adds r0, 0x20
b _08106D38
.pool
_08106D34:
ldrh r0, [r5, 0x20]
subs r0, 0x20
_08106D38:
strh r0, [r5, 0x20]
ldrh r0, [r2, 0x4]
strh r0, [r5, 0x2E]
ldrh r1, [r2, 0x2]
strh r1, [r5, 0x30]
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl StartSpriteAnim
ldr r0, =sub_8106D5C
str r0, [r5, 0x1C]
_08106D50:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8106CD0
thumb_func_start sub_8106D5C
sub_8106D5C: @ 8106D5C
push {lr}
adds r2, r0, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _08106D8C
ldrh r0, [r2, 0x2E]
subs r0, 0x1
strh r0, [r2, 0x2E]
lsls r0, 16
cmp r0, 0
beq _08106D86
ldrh r1, [r2, 0x30]
lsls r1, 24
lsrs r1, 24
adds r0, r2, 0
bl StartSpriteAnim
b _08106D8C
_08106D86:
adds r0, r2, 0
bl DestroyAnimSprite
_08106D8C:
pop {r0}
bx r0
thumb_func_end sub_8106D5C
thumb_func_start sub_8106D90
sub_8106D90: @ 8106D90
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r0, =gBattleAnimArgs
ldrb r0, [r0]
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
ldr r0, =gTasks
adds r4, r0
ldr r2, =gUnknown_08593B98
adds r0, r4, 0
bl sub_80A7CFC
ldr r0, =sub_8106DD4
str r0, [r4]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8106D90
thumb_func_start sub_8106DD4
sub_8106DD4: @ 8106DD4
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, =gTasks
adds r0, r1
bl sub_80A7D34
lsls r0, 24
cmp r0, 0
bne _08106DF4
adds r0, r4, 0
bl DestroyAnimVisualTask
_08106DF4:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8106DD4
thumb_func_start sub_8106E00
sub_8106E00: @ 8106E00
push {r4-r7,lr}
adds r5, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08106E1C
ldr r0, =gBattleAnimAttacker
b _08106E1E
.pool
_08106E1C:
ldr r0, =gBattleAnimTarget
_08106E1E:
ldrb r6, [r0]
adds r0, r6, 0
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08106E38
ldr r1, =gBattleAnimArgs
movs r2, 0x2
ldrsh r0, [r1, r2]
negs r0, r0
strh r0, [r1, 0x2]
_08106E38:
adds r0, r6, 0
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
ldr r7, =gBattleAnimArgs
lsrs r0, 24
ldrh r3, [r7, 0x2]
adds r0, r3
movs r4, 0
strh r0, [r5, 0x20]
adds r0, r6, 0
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r7, 0x4]
adds r0, r1
strh r0, [r5, 0x22]
strh r4, [r5, 0x2E]
ldrh r1, [r5, 0x20]
lsls r1, 3
strh r1, [r5, 0x30]
lsls r0, 3
strh r0, [r5, 0x32]
movs r2, 0x2
ldrsh r0, [r7, r2]
lsls r0, 3
cmp r0, 0
bge _08106E78
adds r0, 0x7
_08106E78:
asrs r0, 3
strh r0, [r5, 0x34]
movs r3, 0x4
ldrsh r0, [r7, r3]
lsls r0, 3
cmp r0, 0
bge _08106E88
adds r0, 0x7
_08106E88:
asrs r0, 3
strh r0, [r5, 0x36]
ldrh r2, [r5, 0x4]
lsls r1, r2, 22
lsrs r1, 22
movs r3, 0x6
ldrsh r0, [r7, r3]
lsls r0, 4
adds r1, r0
ldr r3, =0x000003ff
adds r0, r3, 0
ands r1, r0
ldr r0, =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r5, 0x4]
ldr r0, =sub_8106EC8
str r0, [r5, 0x1C]
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8106E00
thumb_func_start sub_8106EC8
sub_8106EC8: @ 8106EC8
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x34]
ldrh r1, [r2, 0x30]
adds r0, r1
strh r0, [r2, 0x30]
ldrh r1, [r2, 0x36]
ldrh r3, [r2, 0x32]
adds r1, r3
strh r1, [r2, 0x32]
lsls r0, 16
asrs r0, 19
strh r0, [r2, 0x20]
lsls r1, 16
asrs r1, 19
strh r1, [r2, 0x22]
ldrh r0, [r2, 0x2E]
adds r0, 0x1
strh r0, [r2, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x10
ble _08106EFC
adds r0, r2, 0
bl DestroyAnimSprite
_08106EFC:
pop {r0}
bx r0
thumb_func_end sub_8106EC8
thumb_func_start sub_8106F00
sub_8106F00: @ 8106F00
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08106F22
ldr r0, =gBattleAnimArgs
ldrh r1, [r0]
movs r0, 0x78
subs r0, r1
strh r0, [r4, 0x30]
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
_08106F22:
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
movs r2, 0x30
ldrsh r1, [r4, r2]
cmp r0, r1
bne _08106F40
ldrb r0, [r4, 0x5]
lsrs r0, 4
adds r0, 0x10
movs r1, 0
bl sub_80A750C
_08106F40:
movs r0, 0x2E
ldrsh r1, [r4, r0]
movs r2, 0x30
ldrsh r0, [r4, r2]
adds r0, 0x50
cmp r1, r0
bne _08106F54
adds r0, r4, 0
bl DestroyAnimSprite
_08106F54:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8106F00
thumb_func_start sub_8106F60
sub_8106F60: @ 8106F60
push {r4-r6,lr}
adds r6, r0, 0
movs r1, 0x2E
ldrsh r0, [r6, r1]
cmp r0, 0
bne _08106F8E
movs r5, 0x78
strh r5, [r6, 0x20]
ldr r4, =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r4, r2]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
subs r0, 0xF
strh r0, [r6, 0x22]
ldrb r1, [r4, 0x2]
adds r0, r6, 0
bl StartSpriteAnim
strh r5, [r6, 0x38]
ldrh r0, [r4, 0x4]
strh r0, [r6, 0x34]
_08106F8E:
ldrh r0, [r6, 0x2E]
adds r0, 0x1
movs r5, 0
strh r0, [r6, 0x2E]
movs r1, 0x2E
ldrsh r0, [r6, r1]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
strh r0, [r6, 0x30]
movs r2, 0x2E
ldrsh r0, [r6, r2]
lsls r4, r0, 1
adds r4, r0
ldrh r0, [r6, 0x34]
adds r4, r0
movs r2, 0xFF
ldrh r0, [r6, 0x3A]
adds r0, 0xA
movs r1, 0xFF
ands r0, r1
strh r0, [r6, 0x3A]
ands r4, r2
adds r0, r4, 0
movs r1, 0x64
bl Cos
strh r0, [r6, 0x24]
adds r0, r4, 0
movs r1, 0xA
bl Sin
adds r4, r0, 0
movs r1, 0x3A
ldrsh r0, [r6, r1]
movs r1, 0x4
bl Cos
ldrh r2, [r6, 0x30]
adds r4, r2
adds r0, r4
strh r0, [r6, 0x26]
movs r0, 0x2E
ldrsh r1, [r6, r0]
movs r2, 0x38
ldrsh r0, [r6, r2]
cmp r1, r0
ble _0810700A
ldr r0, =sub_8107018
str r0, [r6, 0x1C]
strh r5, [r6, 0x2E]
adds r0, r6, 0
bl oamt_add_pos2_onto_pos1
movs r0, 0x5
strh r0, [r6, 0x32]
strh r5, [r6, 0x36]
strh r5, [r6, 0x34]
adds r0, r6, 0
movs r1, 0x1
bl StartSpriteAffineAnim
_0810700A:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8106F60
thumb_func_start sub_8107018
sub_8107018: @ 8107018
push {lr}
adds r1, r0, 0
ldrh r0, [r1, 0x2E]
adds r0, 0x1
strh r0, [r1, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0xA
ble _08107032
movs r0, 0
strh r0, [r1, 0x2E]
ldr r0, =sub_810703C
str r0, [r1, 0x1C]
_08107032:
pop {r0}
bx r0
.pool
thumb_func_end sub_8107018
thumb_func_start sub_810703C
sub_810703C: @ 810703C
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x32]
ldrh r2, [r4, 0x34]
adds r0, r1, r2
strh r0, [r4, 0x34]
strh r0, [r4, 0x26]
adds r1, 0x1
strh r1, [r4, 0x32]
lsls r0, 16
asrs r0, 16
cmp r0, 0x30
ble _08107066
lsls r0, r1, 16
cmp r0, 0
ble _08107066
ldrh r0, [r4, 0x36]
subs r1, r0, 0x5
strh r1, [r4, 0x32]
adds r0, 0x1
strh r0, [r4, 0x36]
_08107066:
movs r1, 0x36
ldrsh r0, [r4, r1]
cmp r0, 0x3
ble _08107098
movs r2, 0x32
ldrsh r1, [r4, r2]
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]
adds r0, r4, 0
bl DestroyAnimSprite
_08107098:
movs r1, 0x36
ldrsh r0, [r4, r1]
cmp r0, 0x4
bne _081070A6
adds r0, r4, 0
bl DestroyAnimSprite
_081070A6:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810703C
thumb_func_start sub_81070AC
sub_81070AC: @ 81070AC
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _081070F8
ldr r4, =gBattleAnimAttacker
ldrb r1, [r4]
movs r0, 0x2
eors r0, r1
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _081070F8
ldrb r0, [r4]
adds r2, r5, 0
adds r2, 0x20
adds r3, r5, 0
adds r3, 0x22
movs r1, 0
bl sub_80A8924
ldrh r0, [r5, 0x22]
adds r0, 0x28
strh r0, [r5, 0x22]
adds r0, r5, 0
movs r1, 0x1
bl StartSpriteAffineAnim
b _08107118
.pool
_081070F8:
ldr r4, =gBattleAnimAttacker
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
adds r0, 0x28
strh r0, [r5, 0x22]
_08107118:
movs r0, 0xD
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x32]
ldrh r0, [r5, 0x22]
subs r0, 0x48
strh r0, [r5, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r5, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81070AC
thumb_func_start AnimTask_IsFuryCutterHitRight
AnimTask_IsFuryCutterHitRight: @ 8107144
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r3, =gBattleAnimArgs
ldr r1, =gAnimDisableStructPtr
ldr r1, [r1]
ldrb r2, [r1, 0x10]
movs r1, 0x1
ands r1, r2
strh r1, [r3, 0xE]
bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_IsFuryCutterHitRight
thumb_func_start AnimTask_GetFuryCutterHitCount
AnimTask_GetFuryCutterHitCount: @ 8107168
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, =gBattleAnimArgs
ldr r1, =gAnimDisableStructPtr
ldr r1, [r1]
ldrb r1, [r1, 0x10]
strh r1, [r2, 0xE]
bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_GetFuryCutterHitCount
thumb_func_start AnimTask_CreateRaindrops
AnimTask_CreateRaindrops: @ 8107188
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
ldr r1, =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r5, r0, r1
movs r1, 0x8
ldrsh r0, [r5, r1]
cmp r0, 0
bne _081071B0
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r5, 0xA]
ldrh r0, [r1, 0x2]
strh r0, [r5, 0xC]
ldrh r0, [r1, 0x4]
strh r0, [r5, 0xE]
_081071B0:
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
movs r2, 0x8
ldrsh r0, [r5, r2]
movs r2, 0xC
ldrsh r1, [r5, r2]
bl __modsi3
cmp r0, 0x1
bne _081071F8
bl Random2
lsls r0, 16
lsrs r0, 16
movs r1, 0xF0
bl __umodsi3
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl Random2
lsls r0, 16
lsrs r0, 16
movs r1, 0x50
bl __umodsi3
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
ldr r0, =gUnknown_08595020
adds r1, r4, 0
movs r3, 0x4
bl CreateSprite
_081071F8:
movs r0, 0x8
ldrsh r1, [r5, r0]
movs r2, 0xE
ldrsh r0, [r5, r2]
cmp r1, r0
bne _0810720A
adds r0, r6, 0
bl DestroyAnimVisualTask
_0810720A:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_CreateRaindrops
thumb_func_start sub_810721C
sub_810721C: @ 810721C
ldr r1, =sub_8107228
str r1, [r0, 0x1C]
bx lr
.pool
thumb_func_end sub_810721C
thumb_func_start sub_8107228
sub_8107228: @ 8107228
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x2E]
adds r0, 0x1
strh r0, [r2, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0xD
bgt _08107246
ldrh r0, [r2, 0x24]
adds r0, 0x1
strh r0, [r2, 0x24]
ldrh r0, [r2, 0x26]
adds r0, 0x4
strh r0, [r2, 0x26]
_08107246:
adds r0, r2, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _0810725A
adds r0, r2, 0
bl DestroySprite
_0810725A:
pop {r0}
bx r0
thumb_func_end sub_8107228
thumb_func_start sub_8107260
sub_8107260: @ 8107260
push {r4-r6,lr}
adds r6, r0, 0
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08107290
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldr r4, =gBattleAnimArgs
ldrh r1, [r4]
subs r0, r1
b _081072A2
.pool
_08107290:
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
_081072A2:
strh r0, [r6, 0x20]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r4, [r4, 0x2]
adds r0, r4
strh r0, [r6, 0x22]
adds r2, r6, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _081072D8
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_081072D8:
ldr r5, =gBattleAnimArgs
ldrh r0, [r5, 0xC]
strh r0, [r6, 0x2E]
ldrh r0, [r6, 0x20]
strh r0, [r6, 0x30]
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x32]
ldrh r0, [r6, 0x22]
strh r0, [r6, 0x34]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x36]
adds r0, r6, 0
bl obj_translate_based_on_private_1_2_3_4
ldr r0, =SpriteCallbackDummy
bl CreateInvisibleSpriteWithCallback
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
strh r4, [r6, 0x38]
ldrb r0, [r5, 0x8]
movs r2, 0x4
ldrsh r1, [r5, r2]
bl Sin
ldrh r1, [r6, 0x20]
subs r1, r0
strh r1, [r6, 0x20]
ldrb r0, [r5, 0x8]
movs r2, 0x6
ldrsh r1, [r5, r2]
bl Cos
ldrh r1, [r6, 0x22]
subs r1, r0
strh r1, [r6, 0x22]
ldr r0, =gSprites
lsls r1, r4, 4
adds r1, r4
lsls r1, 2
adds r1, r0
ldrh r0, [r5, 0x4]
strh r0, [r1, 0x2E]
ldrh r0, [r5, 0x6]
strh r0, [r1, 0x30]
ldrh r0, [r5, 0xA]
strh r0, [r1, 0x32]
ldrb r0, [r5, 0x8]
lsls r0, 8
strh r0, [r1, 0x34]
ldrh r0, [r5, 0xC]
strh r0, [r1, 0x36]
ldr r1, =sub_8107380
str r1, [r6, 0x1C]
adds r0, r6, 0
bl _call_via_r1
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8107260
thumb_func_start sub_8107380
sub_8107380: @ 8107380
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
adds r5, r0, 0
ldrh r1, [r5, 0x38]
lsls r1, 24
lsrs r1, 24
ldr r2, =gSprites
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r7, r0, r2
ldrh r4, [r7, 0x36]
lsls r4, 24
lsrs r4, 24
ldrh r0, [r7, 0x34]
mov r8, r0
movs r0, 0x1
strh r0, [r5, 0x2E]
adds r0, r5, 0
bl sub_80A6F3C
mov r1, r8
lsrs r6, r1, 8
movs r0, 0x2E
ldrsh r1, [r7, r0]
adds r0, r6, 0
bl Sin
ldrh r1, [r5, 0x24]
adds r0, r1
strh r0, [r5, 0x24]
movs r0, 0x30
ldrsh r1, [r7, r0]
adds r0, r6, 0
bl Cos
ldrh r1, [r5, 0x26]
adds r0, r1
strh r0, [r5, 0x26]
ldrh r0, [r7, 0x32]
mov r1, r8
adds r1, r0
strh r1, [r7, 0x34]
subs r4, 0x1
lsls r4, 24
lsrs r4, 24
cmp r4, 0
beq _081073EC
strh r4, [r7, 0x36]
b _081073F6
.pool
_081073EC:
ldr r0, =sub_8107408
str r0, [r5, 0x1C]
adds r0, r7, 0
bl DestroySprite
_081073F6:
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8107380
thumb_func_start sub_8107408
sub_8107408: @ 8107408
push {lr}
adds r3, r0, 0
adds r3, 0x2C
ldrb r2, [r3]
movs r1, 0x41
negs r1, r1
ands r1, r2
strb r1, [r3]
ldr r1, =sub_80A67D8
str r1, [r0, 0x1C]
ldr r1, =sub_8107430
bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.pool
thumb_func_end sub_8107408
thumb_func_start sub_8107430
sub_8107430: @ 8107430
push {lr}
movs r1, 0xA
strh r1, [r0, 0x2E]
ldr r1, =sub_80A64B0
str r1, [r0, 0x1C]
ldr r1, =move_anim_8074EE0
bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.pool
thumb_func_end sub_8107430
thumb_func_start sub_810744C
sub_810744C: @ 810744C
push {r4-r7,lr}
adds r5, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810747C
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
lsls r0, 16
lsrs r6, r0, 16
adds r7, r1, 0
b _08107482
.pool
_0810747C:
ldr r0, =gBattleAnimArgs
ldrh r6, [r0, 0x4]
adds r7, r0, 0
_08107482:
ldrh r0, [r7, 0x8]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r6
strh r0, [r5, 0x32]
ldrh r0, [r5, 0x22]
strh r0, [r5, 0x34]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r7, [r7, 0x6]
adds r0, r7
strh r0, [r5, 0x36]
adds r0, r5, 0
bl obj_translate_based_on_private_1_2_3_4
ldr r0, =sub_81074E4
str r0, [r5, 0x1C]
adds r2, r5, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
ldr r1, [r5, 0x1C]
adds r0, r5, 0
bl _call_via_r1
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_810744C
thumb_func_start sub_81074E4
sub_81074E4: @ 81074E4
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, =0x0000ffff
cmp r1, r0
bne _08107506
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAnim
adds r2, r4, 0
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x7F
ands r0, r1
strb r0, [r2]
_08107506:
adds r0, r4, 0
bl sub_80A6F3C
lsls r0, 24
cmp r0, 0
beq _08107518
adds r0, r4, 0
bl DestroyAnimSprite
_08107518:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81074E4
thumb_func_start sub_8107528
sub_8107528: @ 8107528
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r1, =gTasks
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
adds r4, r1
ldr r0, =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x8]
ldr r0, =0x0000279c
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 20
movs r1, 0x80
lsls r1, 1
adds r0, r1
strh r0, [r4, 0xC]
ldr r0, =sub_810756C
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8107528
thumb_func_start sub_810756C
sub_810756C: @ 810756C
push {r4-r7,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r2, r0, r1
ldrh r0, [r2, 0x1C]
adds r0, 0x1
strh r0, [r2, 0x1C]
lsls r0, 16
asrs r0, 16
mov r12, r1
cmp r0, 0x3
bne _081075BE
movs r0, 0
strh r0, [r2, 0x1C]
ldrh r0, [r2, 0xC]
adds r0, 0x1
lsls r0, 16
lsrs r5, r0, 16
ldr r1, =gPlttBufferFaded
lsls r0, r5, 1
adds r0, r1
ldrh r6, [r0]
adds r7, r1, 0
adds r3, r0, 0x2
movs r1, 0x6
adds r2, r0, 0
_081075A8:
ldrh r0, [r3]
strh r0, [r2]
adds r3, 0x2
adds r2, 0x2
subs r1, 0x1
cmp r1, 0
bge _081075A8
adds r0, r5, 0x7
lsls r0, 1
adds r0, r7
strh r6, [r0]
_081075BE:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
add r0, r12
ldrh r1, [r0, 0x1E]
adds r1, 0x1
strh r1, [r0, 0x1E]
lsls r1, 16
asrs r1, 16
movs r2, 0x8
ldrsh r0, [r0, r2]
cmp r1, r0
bne _081075DE
adds r0, r4, 0
bl DestroyAnimVisualTask
_081075DE:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_810756C
thumb_func_start sub_81075EC
sub_81075EC: @ 81075EC
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x1
bl sub_80A69CC
movs r0, 0x1E
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
ldrh r0, [r5, 0x22]
strh r0, [r5, 0x34]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
adds r0, r5, 0
bl obj_translate_based_on_private_1_2_3_4
movs r0, 0x2E
ldrsh r1, [r5, r0]
movs r0, 0xD2
lsls r0, 8
bl __divsi3
strh r0, [r5, 0x38]
ldr r0, =gBattleAnimArgs
ldrh r2, [r0, 0x6]
strh r2, [r5, 0x3C]
ldrh r1, [r0, 0xE]
movs r3, 0xE
ldrsh r0, [r0, r3]
cmp r0, 0x7F
ble _0810765C
adds r0, r1, 0
subs r0, 0x7F
lsls r0, 8
strh r0, [r5, 0x3A]
negs r0, r2
strh r0, [r5, 0x3C]
b _08107660
.pool
_0810765C:
lsls r0, r1, 8
strh r0, [r5, 0x3A]
_08107660:
ldr r1, =sub_8107674
str r1, [r5, 0x1C]
adds r0, r5, 0
bl _call_via_r1
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81075EC
thumb_func_start sub_8107674
sub_8107674: @ 8107674
push {r4,lr}
adds r4, r0, 0
bl sub_80A6F3C
lsls r0, 24
cmp r0, 0
beq _08107688
adds r0, r4, 0
bl DestroyAnimSprite
_08107688:
ldrh r0, [r4, 0x3A]
lsls r0, 16
asrs r0, 24
movs r2, 0x3C
ldrsh r1, [r4, r2]
bl Sin
ldrh r1, [r4, 0x26]
adds r0, r1
strh r0, [r4, 0x26]
movs r2, 0x3A
ldrsh r0, [r4, r2]
movs r2, 0x38
ldrsh r1, [r4, r2]
adds r0, r1
asrs r0, 8
cmp r0, 0x7F
ble _081076B8
movs r0, 0
strh r0, [r4, 0x3A]
ldrh r0, [r4, 0x3C]
negs r0, r0
strh r0, [r4, 0x3C]
b _081076C0
_081076B8:
ldrh r0, [r4, 0x38]
ldrh r1, [r4, 0x3A]
adds r0, r1
strh r0, [r4, 0x3A]
_081076C0:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8107674
thumb_func_start sub_81076C8
sub_81076C8: @ 81076C8
lsls r0, 24
lsrs r0, 24
ldr r2, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
ldr r3, =gBattleAnimArgs
ldrh r0, [r3]
movs r2, 0
strh r0, [r1, 0x8]
strh r2, [r3, 0xE]
ldr r0, =sub_81076F4
str r0, [r1]
bx lr
.pool
thumb_func_end sub_81076C8
thumb_func_start sub_81076F4
sub_81076F4: @ 81076F4
push {lr}
lsls r0, 24
lsrs r3, r0, 24
ldr r2, =gBattleAnimArgs
ldrh r0, [r2, 0xE]
adds r0, 0x3
movs r1, 0xFF
ands r0, r1
strh r0, [r2, 0xE]
ldr r1, =gTasks
lsls r0, r3, 2
adds r0, r3
lsls r0, 3
adds r0, r1
ldrh r1, [r0, 0x8]
subs r1, 0x1
strh r1, [r0, 0x8]
lsls r1, 16
cmp r1, 0
bne _08107722
adds r0, r3, 0
bl DestroyAnimVisualTask
_08107722:
pop {r0}
bx r0
.pool
thumb_func_end sub_81076F4
thumb_func_start sub_8107730
sub_8107730: @ 8107730
push {r4-r7,lr}
adds r4, r0, 0
ldr r7, =gBattleAnimAttacker
ldrb r0, [r7]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
ldrb r0, [r7]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
ldr r6, =0x0000fff6
strh r6, [r4, 0x26]
ldrb r0, [r7]
bl sub_80A82E4
lsls r0, 24
lsrs r5, r0, 24
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810778A
ldrb r0, [r7]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08107784
movs r0, 0xA
strh r0, [r4, 0x24]
b _0810778C
.pool
_08107784:
strh r6, [r4, 0x24]
subs r0, r5, 0x2
b _0810778E
_0810778A:
strh r6, [r4, 0x24]
_0810778C:
adds r0, r5, 0x2
_0810778E:
adds r1, r4, 0
adds r1, 0x43
strb r0, [r1]
ldr r0, =sub_81077A4
str r0, [r4, 0x1C]
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8107730
thumb_func_start sub_81077A4
sub_81077A4: @ 81077A4
push {lr}
adds r2, r0, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _081077BA
adds r0, r2, 0
bl DestroyAnimSprite
_081077BA:
pop {r0}
bx r0
thumb_func_end sub_81077A4
thumb_func_start sub_81077C0
sub_81077C0: @ 81077C0
push {r4-r7,lr}
adds r6, r0, 0
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
bl GetBattlerSide
adds r4, r0, 0
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
bne _0810780A
ldr r4, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
negs r0, r0
strh r0, [r4]
ldrb r0, [r5]
bl GetBattlerPosition
lsls r0, 24
cmp r0, 0
beq _08107802
ldrb r0, [r5]
bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0810780A
_08107802:
movs r1, 0
ldrsh r0, [r4, r1]
negs r0, r0
strh r0, [r4]
_0810780A:
ldr r5, =gBattleAnimArgs
movs r1, 0xA
ldrsh r0, [r5, r1]
movs r1, 0xFF
lsls r1, 8
ands r0, r1
movs r1, 0
cmp r0, 0
bne _0810781E
movs r1, 0x1
_0810781E:
ldrb r0, [r5, 0xA]
movs r7, 0x1
cmp r0, 0
bne _08107828
movs r7, 0x3
_08107828:
adds r0, r6, 0
bl sub_80A69CC
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08107842
ldrh r0, [r5, 0x4]
negs r0, r0
strh r0, [r5, 0x4]
_08107842:
ldrh r0, [r5, 0x8]
strh r0, [r6, 0x2E]
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r5, 0x4]
adds r0, r1
strh r0, [r6, 0x32]
ldrb r0, [r4]
adds r1, r7, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r5, [r5, 0x6]
adds r0, r5
strh r0, [r6, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r6, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r6, 0
bl StoreSpriteCallbackInData6
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81077C0
thumb_func_start sub_8107894
sub_8107894: @ 8107894
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A6980
ldr r0, =gBattleAnimArgs
ldrh r1, [r0, 0x8]
strh r1, [r4, 0x2E]
ldrh r0, [r0, 0x4]
ldrh r2, [r4, 0x20]
adds r0, r2
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x22]
adds r1, r0
strh r1, [r4, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r4, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8107894
thumb_func_start sub_81078D0
sub_81078D0: @ 81078D0
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r0, r1]
cmp r0, 0
beq _081078EC
adds r0, r4, 0
movs r1, 0x1
bl sub_80A6980
b _081078F4
.pool
_081078EC:
adds r0, r4, 0
movs r1, 0x1
bl sub_80A69CC
_081078F4:
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x3C]
ldr r0, =sub_810790C
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81078D0
thumb_func_start sub_810790C
sub_810790C: @ 810790C
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x2E]
adds r0, 0xB
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x2E]
movs r1, 0x2E
ldrsh r0, [r4, r1]
movs r1, 0x4
bl Sin
strh r0, [r4, 0x24]
ldrh r0, [r4, 0x30]
adds r0, 0x30
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 24
negs r0, r0
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x3C]
subs r0, 0x1
strh r0, [r4, 0x3C]
lsls r0, 16
asrs r0, 16
movs r1, 0x1
negs r1, r1
cmp r0, r1
bne _0810794C
adds r0, r4, 0
bl DestroyAnimSprite
_0810794C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810790C
thumb_func_start AnimTask_CreateSurfWave
AnimTask_CreateSurfWave: @ 8107954
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
mov r10, r0
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
movs r1, 0x80
lsls r1, 5
movs r0, 0x52
bl SetGpuReg
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0
movs r2, 0x1
bl SetAnimBgAttribute
mov r0, sp
bl sub_80A6B30
bl IsContest
lsls r0, 24
cmp r0, 0
bne _081079E0
movs r0, 0x1
movs r1, 0x3
movs r2, 0x1
bl SetAnimBgAttribute
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081079D0
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, =gUnknown_08D95E00
bl sub_80A6D48
b _081079EA
.pool
_081079D0:
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, =gUnknown_08D960D0
bl sub_80A6D48
b _081079EA
.pool
_081079E0:
ldr r1, =gUnknown_08D963A4
mov r0, sp
movs r2, 0x1
bl sub_80A6D60
_081079EA:
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, =gBattleAnimBackgroundImage_Surf
mov r2, sp
ldrh r2, [r2, 0xA]
bl sub_80A6CC0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08107A24
ldr r0, =gBattleAnimBackgroundPalette_Surf
mov r1, sp
ldrb r1, [r1, 0x8]
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
b _08107A32
.pool
_08107A24:
ldr r0, =gBattleAnimBackgroundImageMuddyWater_Pal
mov r1, sp
ldrb r1, [r1, 0x8]
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
_08107A32:
ldr r0, =sub_8107D58
ldr r4, =gTasks
mov r2, r10
lsls r5, r2, 2
adds r1, r5, r2
lsls r1, 3
adds r6, r1, r4
ldrb r1, [r6, 0x7]
adds r1, 0x1
lsls r1, 24
lsrs r1, 24
bl CreateTask
lsls r0, 24
lsrs r0, 24
mov r8, r0
movs r0, 0
mov r9, r0
mov r1, r8
strh r1, [r6, 0x26]
mov r2, r8
lsls r0, r2, 2
add r0, r8
lsls r0, 3
adds r7, r0, r4
mov r0, r9
strh r0, [r7, 0x8]
movs r0, 0x80
lsls r0, 5
strh r0, [r7, 0xA]
strh r0, [r7, 0xC]
bl IsContest
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
beq _08107AB4
ldr r1, =0x0000ffb0
adds r0, r1, 0
ldr r2, =gBattle_BG1_X
strh r0, [r2]
adds r1, 0x20
adds r0, r1, 0
ldr r2, =gBattle_BG1_Y
strh r0, [r2]
movs r0, 0x2
strh r0, [r6, 0x8]
movs r0, 0x1
strh r0, [r6, 0xA]
mov r0, r9
strh r0, [r7, 0xE]
b _08107B0E
.pool
_08107AB4:
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x1
bne _08107AF8
ldr r2, =0x0000ff20
adds r0, r2, 0
ldr r2, =gBattle_BG1_X
strh r0, [r2]
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
ldr r2, =gBattle_BG1_Y
strh r0, [r2]
movs r0, 0x2
strh r0, [r6, 0x8]
ldr r0, =0x0000ffff
strh r0, [r6, 0xA]
strh r1, [r7, 0xE]
b _08107B0E
.pool
_08107AF8:
ldr r0, =gBattle_BG1_X
strh r4, [r0]
ldr r1, =0x0000ffd0
adds r0, r1, 0
ldr r2, =gBattle_BG1_Y
strh r0, [r2]
ldr r0, =0x0000fffe
strh r0, [r6, 0x8]
movs r0, 0x1
strh r0, [r6, 0xA]
strh r4, [r7, 0xE]
_08107B0E:
ldr r0, =gBattle_BG1_X
ldrh r1, [r0]
movs r0, 0x14
bl SetGpuReg
ldr r2, =gBattle_BG1_Y
ldrh r1, [r2]
movs r0, 0x16
bl SetGpuReg
ldr r1, =gTasks
mov r2, r8
lsls r0, r2, 2
add r0, r8
lsls r0, 3
adds r1, r0, r1
movs r2, 0xE
ldrsh r0, [r1, r2]
cmp r0, 0
bne _08107B54
movs r0, 0x30
strh r0, [r1, 0x10]
movs r0, 0x70
b _08107B58
.pool
_08107B54:
movs r0, 0
strh r0, [r1, 0x10]
_08107B58:
strh r0, [r1, 0x12]
ldr r1, =gTasks
mov r2, r10
adds r0, r5, r2
lsls r0, 3
adds r0, r1
movs r1, 0x1
strh r1, [r0, 0x14]
ldr r1, =sub_8107B84
str r1, [r0]
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_CreateSurfWave
thumb_func_start sub_8107B84
sub_8107B84: @ 8107B84
push {r4-r7,lr}
sub sp, 0x10
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =gBattle_BG1_X
ldr r2, =gBattle_BG1_Y
ldr r0, =gTasks
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
adds r4, r0
ldrh r0, [r4, 0x8]
ldrh r3, [r1]
adds r0, r3
strh r0, [r1]
ldrh r0, [r4, 0xA]
ldrh r1, [r2]
adds r0, r1
strh r0, [r2]
mov r0, sp
bl sub_80A6B30
ldrh r0, [r4, 0xA]
ldrh r3, [r4, 0xC]
adds r0, r3
strh r0, [r4, 0xC]
ldrh r0, [r4, 0x12]
adds r0, 0x1
strh r0, [r4, 0x12]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bne _08107C18
ldr r1, =gPlttBufferFaded
mov r0, sp
ldrb r0, [r0, 0x8]
lsls r0, 4
adds r0, 0x7
lsls r0, 1
adds r0, r1
ldrh r6, [r0]
movs r2, 0x6
adds r7, r1, 0
adds r3, r7, 0
mov r4, sp
_08107BDE:
ldrb r0, [r4, 0x8]
lsls r0, 4
adds r1, r2, 0x1
adds r0, r1
lsls r1, r0, 1
adds r1, r3
subs r0, 0x1
lsls r0, 1
adds r0, r3
ldrh r0, [r0]
strh r0, [r1]
subs r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
bne _08107BDE
mov r0, sp
ldrb r0, [r0, 0x8]
lsls r0, 4
adds r0, 0x1
lsls r0, 1
adds r0, r7
strh r6, [r0]
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
strh r2, [r0, 0x12]
_08107C18:
ldr r1, =gTasks
lsls r2, r5, 2
adds r0, r2, r5
lsls r0, 3
adds r3, r0, r1
ldrh r0, [r3, 0x14]
adds r0, 0x1
strh r0, [r3, 0x14]
lsls r0, 16
asrs r0, 16
adds r4, r1, 0
adds r6, r2, 0
cmp r0, 0x1
ble _08107C86
movs r0, 0
strh r0, [r3, 0x14]
ldrh r0, [r3, 0xE]
adds r2, r0, 0x1
strh r2, [r3, 0xE]
lsls r0, r2, 16
asrs r0, 16
cmp r0, 0xD
bgt _08107C62
movs r1, 0x26
ldrsh r0, [r3, r1]
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r4
movs r0, 0x10
subs r0, r2
lsls r0, 8
orrs r2, r0
strh r2, [r1, 0xA]
ldrh r0, [r3, 0x10]
adds r0, 0x1
strh r0, [r3, 0x10]
_08107C62:
movs r1, 0xE
ldrsh r0, [r3, r1]
cmp r0, 0x36
ble _08107C86
ldrh r2, [r3, 0x10]
subs r2, 0x1
strh r2, [r3, 0x10]
movs r1, 0x26
ldrsh r0, [r3, r1]
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r4
movs r0, 0x10
subs r0, r2
lsls r0, 8
orrs r2, r0
strh r2, [r1, 0xA]
_08107C86:
adds r0, r6, r5
lsls r0, 3
adds r2, r0, r4
movs r3, 0x26
ldrsh r1, [r2, r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r4
ldrh r0, [r0, 0xA]
movs r3, 0x1F
ands r3, r0
cmp r3, 0
bne _08107CA8
strh r3, [r2, 0x8]
ldr r0, =sub_8107CC4
str r0, [r2]
_08107CA8:
add sp, 0x10
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8107B84
thumb_func_start sub_8107CC4
sub_8107CC4: @ 8107CC4
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
ldr r7, =gBattle_BG1_X
ldr r0, =gBattle_BG1_Y
mov r8, r0
ldr r6, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r4, r0, r6
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08107D08
movs r0, 0x1
bl sub_80A6C68
movs r0, 0x2
bl sub_80A6C68
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _08107D4A
.pool
_08107D08:
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08107D1C
movs r0, 0x1
movs r1, 0x3
movs r2, 0
bl SetAnimBgAttribute
_08107D1C:
movs r0, 0
strh r0, [r7]
mov r1, r8
strh r0, [r1]
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r6
ldr r1, =0x0000ffff
strh r1, [r0, 0x26]
adds r0, r5, 0
bl DestroyAnimVisualTask
_08107D4A:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8107CC4
thumb_func_start sub_8107D58
sub_8107D58: @ 8107D58
push {r4-r7,lr}
sub sp, 0xC
lsls r0, 24
lsrs r7, r0, 24
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _08107D74
b _08107EAC
_08107D74:
cmp r0, 0x1
bgt _08107D84
cmp r0, 0
beq _08107D8C
b _08108022
.pool
_08107D84:
cmp r0, 0x2
bne _08107D8A
b _08107F78
_08107D8A:
b _08108022
_08107D8C:
movs r3, 0
movs r2, 0x10
ldrsh r0, [r4, r2]
ldr r1, =gScanlineEffectRegBuffers
mov r12, r1
cmp r3, r0
bge _08107DCA
mov r7, r12
movs r5, 0xF0
lsls r5, 3
add r5, r12
ldr r6, =0x0000ffff
_08107DA4:
lsls r2, r3, 16
asrs r2, 16
lsls r1, r2, 1
adds r3, r1, r7
adds r1, r5
ldrh r0, [r4, 0xC]
strh r0, [r1]
ldrh r1, [r4, 0xC]
adds r0, r6, 0
ands r0, r1
strh r0, [r3]
adds r2, 0x1
lsls r2, 16
lsrs r3, r2, 16
asrs r2, 16
movs r1, 0x10
ldrsh r0, [r4, r1]
cmp r2, r0
blt _08107DA4
_08107DCA:
ldrh r3, [r4, 0x10]
lsls r2, r3, 16
asrs r1, r2, 16
movs r3, 0x12
ldrsh r0, [r4, r3]
cmp r1, r0
bge _08107E04
ldr r5, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
ldr r7, =0x0000ffff
_08107DE2:
asrs r2, 16
lsls r1, r2, 1
adds r3, r1, r5
adds r1, r6
ldrh r0, [r4, 0xA]
strh r0, [r1]
ldrh r1, [r4, 0xA]
adds r0, r7, 0
ands r0, r1
strh r0, [r3]
adds r2, 0x1
lsls r2, 16
asrs r1, r2, 16
movs r3, 0x12
ldrsh r0, [r4, r3]
cmp r1, r0
blt _08107DE2
_08107E04:
ldrh r3, [r4, 0x12]
lsls r2, r3, 16
asrs r0, r2, 16
cmp r0, 0x9F
bgt _08107E3A
ldr r5, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
ldr r7, =0x0000ffff
_08107E18:
asrs r2, 16
lsls r1, r2, 1
adds r3, r1, r5
adds r1, r6
ldrh r0, [r4, 0xC]
strh r0, [r1]
ldrh r1, [r4, 0xC]
adds r0, r7, 0
ands r0, r1
strh r0, [r3]
adds r2, 0x1
lsls r2, 16
lsrs r3, r2, 16
lsls r2, r3, 16
asrs r0, r2, 16
cmp r0, 0x9F
ble _08107E18
_08107E3A:
movs r1, 0x10
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08107E64
lsls r0, r3, 16
asrs r0, 15
mov r3, r12
adds r2, r0, r3
movs r1, 0xF0
lsls r1, 3
add r1, r12
adds r0, r1
ldrh r1, [r4, 0xA]
strh r1, [r0]
ldrh r0, [r4, 0xA]
b _08107E7A
.pool
_08107E64:
lsls r0, r3, 16
asrs r0, 15
mov r1, r12
adds r2, r0, r1
movs r1, 0xF0
lsls r1, 3
add r1, r12
adds r0, r1
ldrh r1, [r4, 0xC]
strh r1, [r0]
ldrh r0, [r4, 0xC]
_08107E7A:
strh r0, [r2]
ldr r0, =0x04000052
str r0, [sp]
ldr r0, =0xa2600001
str r0, [sp, 0x4]
mov r1, sp
movs r2, 0
movs r0, 0x1
strb r0, [r1, 0x8]
mov r0, sp
strb r2, [r0, 0x9]
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
bl ScanlineEffect_SetParams
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _08108022
.pool
_08107EAC:
movs r2, 0xE
ldrsh r1, [r4, r2]
cmp r1, 0
bne _08107EC4
ldrh r0, [r4, 0x10]
subs r0, 0x1
strh r0, [r4, 0x10]
lsls r0, 16
cmp r0, 0
bgt _08107ED8
strh r1, [r4, 0x10]
b _08107ED2
_08107EC4:
ldrh r0, [r4, 0x12]
adds r0, 0x1
strh r0, [r4, 0x12]
lsls r0, 16
asrs r0, 16
cmp r0, 0x6F
ble _08107ED8
_08107ED2:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_08107ED8:
movs r3, 0
movs r1, 0x10
ldrsh r0, [r4, r1]
cmp r3, r0
bge _08107F0C
ldr r6, =gScanlineEffectRegBuffers
ldr r5, =gScanlineEffect
_08107EE6:
lsls r1, r3, 16
asrs r1, 16
lsls r3, r1, 1
ldrb r2, [r5, 0x14]
lsls r0, r2, 4
subs r0, r2
lsls r0, 7
adds r3, r0
adds r3, r6
ldrh r0, [r4, 0xC]
strh r0, [r3]
adds r1, 0x1
lsls r1, 16
lsrs r3, r1, 16
asrs r1, 16
movs r2, 0x10
ldrsh r0, [r4, r2]
cmp r1, r0
blt _08107EE6
_08107F0C:
ldrh r3, [r4, 0x10]
lsls r2, r3, 16
asrs r1, r2, 16
movs r3, 0x12
ldrsh r0, [r4, r3]
cmp r1, r0
bge _08107F40
ldr r6, =gScanlineEffectRegBuffers
ldr r5, =gScanlineEffect
_08107F1E:
asrs r3, r2, 16
lsls r2, r3, 1
ldrb r1, [r5, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r2, r0
adds r2, r6
ldrh r0, [r4, 0xA]
strh r0, [r2]
adds r3, 0x1
lsls r2, r3, 16
asrs r1, r2, 16
movs r3, 0x12
ldrsh r0, [r4, r3]
cmp r1, r0
blt _08107F1E
_08107F40:
ldrh r3, [r4, 0x12]
lsls r1, r3, 16
asrs r0, r1, 16
cmp r0, 0x9F
bgt _08108022
ldr r6, =gScanlineEffectRegBuffers
ldr r5, =gScanlineEffect
_08107F4E:
asrs r3, r1, 16
lsls r2, r3, 1
ldrb r1, [r5, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r2, r0
adds r2, r6
ldrh r0, [r4, 0xC]
strh r0, [r2]
adds r3, 0x1
lsls r1, r3, 16
asrs r0, r1, 16
cmp r0, 0x9F
ble _08107F4E
b _08108022
.pool
_08107F78:
movs r3, 0
movs r1, 0x10
ldrsh r0, [r4, r1]
cmp r3, r0
bge _08107FAC
ldr r6, =gScanlineEffectRegBuffers
ldr r5, =gScanlineEffect
_08107F86:
lsls r1, r3, 16
asrs r1, 16
lsls r3, r1, 1
ldrb r2, [r5, 0x14]
lsls r0, r2, 4
subs r0, r2
lsls r0, 7
adds r3, r0
adds r3, r6
ldrh r0, [r4, 0xC]
strh r0, [r3]
adds r1, 0x1
lsls r1, 16
lsrs r3, r1, 16
asrs r1, 16
movs r2, 0x10
ldrsh r0, [r4, r2]
cmp r1, r0
blt _08107F86
_08107FAC:
ldrh r3, [r4, 0x10]
lsls r2, r3, 16
asrs r1, r2, 16
movs r3, 0x12
ldrsh r0, [r4, r3]
cmp r1, r0
bge _08107FE0
ldr r6, =gScanlineEffectRegBuffers
ldr r5, =gScanlineEffect
_08107FBE:
asrs r3, r2, 16
lsls r2, r3, 1
ldrb r1, [r5, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r2, r0
adds r2, r6
ldrh r0, [r4, 0xA]
strh r0, [r2]
adds r3, 0x1
lsls r2, r3, 16
asrs r1, r2, 16
movs r3, 0x12
ldrsh r0, [r4, r3]
cmp r1, r0
blt _08107FBE
_08107FE0:
ldrh r3, [r4, 0x12]
lsls r1, r3, 16
asrs r0, r1, 16
cmp r0, 0x9F
bgt _0810800C
ldr r6, =gScanlineEffectRegBuffers
ldr r5, =gScanlineEffect
_08107FEE:
asrs r3, r1, 16
lsls r2, r3, 1
ldrb r1, [r5, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r2, r0
adds r2, r6
ldrh r0, [r4, 0xC]
strh r0, [r2]
adds r3, 0x1
lsls r1, r3, 16
asrs r0, r1, 16
cmp r0, 0x9F
ble _08107FEE
_0810800C:
movs r0, 0x26
ldrsh r1, [r4, r0]
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _08108022
bl ScanlineEffect_Stop
adds r0, r7, 0
bl DestroyTask
_08108022:
add sp, 0xC
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8107D58
thumb_func_start sub_8108034
sub_8108034: @ 8108034
push {r4-r6,lr}
adds r4, r0, 0
ldrh r2, [r4, 0x4]
lsls r1, r2, 22
lsrs r1, 22
adds r1, 0x8
ldr r3, =0x000003ff
adds r0, r3, 0
ands r1, r0
ldr r0, =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r4, 0x4]
adds r0, r4, 0
movs r1, 0x1
bl sub_80A6980
bl Random2
movs r5, 0xFF
ands r5, r0
movs r0, 0x80
lsls r0, 1
adds r6, r0, 0
orrs r5, r6
bl Random2
ldr r1, =0x000001ff
ands r1, r0
adds r0, r1, 0
cmp r0, 0xFF
ble _0810807A
subs r0, r6, r0
lsls r0, 16
lsrs r1, r0, 16
_0810807A:
strh r5, [r4, 0x30]
strh r1, [r4, 0x32]
ldr r0, =sub_8108098
str r0, [r4, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8108034
thumb_func_start sub_8108098
sub_8108098: @ 8108098
push {r4,lr}
adds r2, r0, 0
ldrh r0, [r2, 0x30]
ldrh r1, [r2, 0x34]
adds r3, r0, r1
strh r3, [r2, 0x34]
ldrh r1, [r2, 0x32]
ldrh r4, [r2, 0x36]
adds r1, r4
strh r1, [r2, 0x36]
movs r1, 0x1
ands r1, r0
cmp r1, 0
beq _081080BC
lsls r0, r3, 16
asrs r0, 24
negs r0, r0
b _081080C0
_081080BC:
lsls r0, r3, 16
asrs r0, 24
_081080C0:
strh r0, [r2, 0x24]
ldrh r0, [r2, 0x36]
lsls r0, 16
asrs r0, 24
strh r0, [r2, 0x26]
ldrh r0, [r2, 0x2E]
adds r0, 0x1
strh r0, [r2, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x15
bne _081080DE
adds r0, r2, 0
bl DestroyAnimSprite
_081080DE:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8108098
thumb_func_start sub_81080E4
sub_81080E4: @ 81080E4
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, =gTasks
adds r4, r0
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
ldr r2, =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r0, [r0, 0x22]
strh r0, [r4, 0x12]
bl sub_8108384
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0xA]
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
movs r1, 0
bl sub_80A7270
ldr r0, =sub_8108140
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81080E4
thumb_func_start sub_8108140
sub_8108140: @ 8108140
push {r4-r6,lr}
sub sp, 0xC
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0x7
bls _0810815C
b _0810837A
_0810815C:
lsls r0, 2
ldr r1, =_08108170
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08108170:
.4byte _08108190
.4byte _081081B6
.4byte _08108248
.4byte _0810827E
.4byte _08108292
.4byte _081082A0
.4byte _08108320
.4byte _0810836C
_08108190:
ldrh r1, [r4, 0x26]
lsls r1, 24
lsrs r1, 24
movs r3, 0x80
lsls r3, 1
movs r0, 0xE0
str r0, [sp]
movs r0, 0x80
lsls r0, 2
str r0, [sp, 0x4]
movs r0, 0x20
str r0, [sp, 0x8]
adds r0, r4, 0
adds r2, r3, 0
bl sub_80A805C
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_081081B6:
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _08108212
movs r0, 0
strh r0, [r4, 0xE]
ldrh r0, [r4, 0x10]
adds r0, 0x1
strh r0, [r4, 0x10]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _08108200
ldr r2, =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x3
strh r1, [r0, 0x24]
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x22]
adds r1, 0x1
strh r1, [r0, 0x22]
b _08108212
.pool
_08108200:
ldr r2, =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r1, =0x0000fffd
strh r1, [r0, 0x24]
_08108212:
adds r0, r4, 0
bl sub_80A80C8
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
beq _08108222
b _0810837A
_08108222:
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
bl sub_80A7E6C
ldr r2, =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]
strh r5, [r4, 0xE]
b _0810835C
.pool
_08108248:
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bgt _08108258
b _0810837A
_08108258:
ldrh r1, [r4, 0x26]
lsls r1, 24
lsrs r1, 24
movs r3, 0x80
lsls r3, 2
movs r0, 0xC0
lsls r0, 1
str r0, [sp]
movs r0, 0xE0
str r0, [sp, 0x4]
movs r0, 0x8
str r0, [sp, 0x8]
adds r0, r4, 0
movs r2, 0xE0
bl sub_80A805C
movs r0, 0
strh r0, [r4, 0xE]
b _0810835E
_0810827E:
adds r0, r4, 0
bl sub_80A80C8
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _0810837A
strh r0, [r4, 0xE]
strh r0, [r4, 0x10]
b _0810835E
_08108292:
adds r0, r4, 0
adds r1, r2, 0
bl sub_8108408
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_081082A0:
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _0810837A
movs r0, 0
strh r0, [r4, 0xE]
ldrh r0, [r4, 0x10]
adds r0, 0x1
strh r0, [r4, 0x10]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _081082D8
ldr r2, =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x26]
adds r1, 0x2
b _081082EA
.pool
_081082D8:
ldr r2, =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x26]
subs r1, 0x2
_081082EA:
strh r1, [r0, 0x26]
movs r1, 0x10
ldrsh r0, [r4, r1]
cmp r0, 0xA
bne _0810837A
ldrh r1, [r4, 0x26]
lsls r1, 24
lsrs r1, 24
movs r2, 0xC0
lsls r2, 1
movs r0, 0x80
lsls r0, 1
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0x8
str r0, [sp, 0x8]
adds r0, r4, 0
movs r3, 0xE0
bl sub_80A805C
movs r0, 0
strh r0, [r4, 0xE]
strh r0, [r4, 0x10]
b _0810835E
.pool
_08108320:
ldr r6, =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
ldrh r1, [r0, 0x22]
subs r1, 0x1
strh r1, [r0, 0x22]
adds r0, r4, 0
bl sub_80A80C8
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
bne _0810837A
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
bl sub_80A7344
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
ldrh r1, [r4, 0x12]
strh r1, [r0, 0x22]
_0810835C:
strh r5, [r4, 0x10]
_0810835E:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _0810837A
.pool
_0810836C:
movs r1, 0xC
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0810837A
adds r0, r2, 0
bl DestroyAnimVisualTask
_0810837A:
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8108140
thumb_func_start sub_8108384
sub_8108384: @ 8108384
push {r4,r5,lr}
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _081083B8
ldr r1, =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, =gPlayerParty
b _081083C8
.pool
_081083B4:
adds r0, r2, 0
b _081083FA
_081083B8:
ldr r1, =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, =gEnemyParty
_081083C8:
adds r5, r1, r0
adds r0, r5, 0
movs r1, 0x3A
bl GetMonData
adds r4, r0, 0
lsls r4, 16
adds r0, r5, 0
movs r1, 0x39
bl GetMonData
lsls r0, 16
lsrs r3, r0, 16
lsrs r4, 18
movs r2, 0
_081083E6:
adds r1, r2, 0x1
adds r0, r4, 0
muls r0, r1
cmp r3, r0
blt _081083B4
lsls r0, r1, 24
lsrs r2, r0, 24
cmp r2, 0x2
bls _081083E6
movs r0, 0x3
_081083FA:
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_8108384
thumb_func_start sub_8108408
sub_8108408: @ 8108408
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
adds r7, r0, 0
lsls r1, 24
lsrs r1, 24
str r1, [sp]
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
movs r5, 0xAC
ldrb r0, [r4]
bl sub_80A82E4
subs r0, 0x1
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x8]
ldrh r1, [r7, 0xA]
movs r0, 0x4
subs r0, r1
lsls r0, 16
lsrs r1, r0, 16
cmp r0, 0
bgt _08108458
movs r1, 0x1
_08108458:
movs r0, 0
str r0, [sp, 0x4]
lsls r0, r1, 16
mov r10, r8
mov r9, r6
mov r1, r10
lsls r1, 4
str r1, [sp, 0xC]
mov r1, r9
lsls r1, 4
str r1, [sp, 0x10]
asrs r0, 16
mov r8, r0
_08108472:
ldr r0, =gUnknown_08595268
mov r1, r10
mov r2, r9
ldr r3, [sp, 0x8]
bl CreateSprite
lsls r0, 24
lsrs r2, r0, 24
lsls r6, r5, 16
cmp r2, 0x40
beq _081084DA
ldr r1, =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r5, r0, r1
mov r0, sp
ldrh r0, [r0, 0x4]
strh r0, [r5, 0x30]
mov r1, sp
ldrh r1, [r1, 0xC]
strh r1, [r5, 0x32]
mov r0, sp
ldrh r0, [r0, 0x10]
strh r0, [r5, 0x34]
asrs r4, r6, 16
adds r0, r4, 0
movs r1, 0x40
bl Cos
strh r0, [r5, 0x36]
adds r0, r4, 0
movs r1, 0x40
bl Sin
strh r0, [r5, 0x38]
mov r1, sp
ldrh r1, [r1]
strh r1, [r5, 0x3A]
movs r0, 0x2
strh r0, [r5, 0x3C]
ldrh r1, [r7, 0xC]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081084D4
adds r0, r5, 0
bl sub_810851C
_081084D4:
ldrh r0, [r7, 0xC]
adds r0, 0x1
strh r0, [r7, 0xC]
_081084DA:
mov r1, r8
lsls r0, r1, 1
asrs r1, r6, 16
adds r1, r0
lsls r1, 16
movs r0, 0xFF
lsls r0, 16
ands r0, r1
lsrs r5, r0, 16
ldr r1, [sp, 0x4]
lsls r0, r1, 16
asrs r0, 16
add r0, r8
lsls r0, 16
lsrs r1, r0, 16
str r1, [sp, 0x4]
asrs r0, 16
cmp r0, 0x13
ble _08108472
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8108408
thumb_func_start sub_810851C
sub_810851C: @ 810851C
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0810852E
cmp r0, 0x1
beq _08108564
b _081085BE
_0810852E:
movs r2, 0x30
ldrsh r0, [r4, r2]
movs r1, 0x6
bl __modsi3
lsls r0, 16
asrs r0, 16
lsls r1, r0, 1
adds r1, r0
ldrh r0, [r4, 0x36]
adds r1, r0
strh r1, [r4, 0x36]
movs r1, 0x30
ldrsh r0, [r4, r1]
movs r1, 0x3
bl __modsi3
lsls r0, 16
asrs r0, 16
lsls r1, r0, 1
adds r1, r0
ldrh r2, [r4, 0x38]
adds r1, r2
strh r1, [r4, 0x38]
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
_08108564:
ldrh r0, [r4, 0x36]
ldrh r1, [r4, 0x32]
adds r0, r1
strh r0, [r4, 0x32]
ldrh r1, [r4, 0x38]
ldrh r2, [r4, 0x34]
adds r1, r2
strh r1, [r4, 0x34]
lsls r0, 16
asrs r0, 20
strh r0, [r4, 0x20]
lsls r1, 16
asrs r2, r1, 20
strh r2, [r4, 0x22]
adds r0, 0x8
lsls r0, 16
movs r1, 0x80
lsls r1, 17
cmp r0, r1
bhi _0810859A
adds r1, r2, 0
movs r0, 0x8
negs r0, r0
cmp r1, r0
blt _0810859A
cmp r1, 0x78
ble _081085BE
_0810859A:
ldr r3, =gTasks
movs r0, 0x3C
ldrsh r1, [r4, r0]
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 DestroySprite
_081085BE:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810851C
thumb_func_start sub_81085C8
sub_81085C8: @ 81085C8
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks
adds r4, r1, r0
bl sub_8108384
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0xA]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08108600
movs r0, 0x88
strh r0, [r4, 0x10]
movs r0, 0x28
b _08108606
.pool
_08108600:
movs r0, 0x10
strh r0, [r4, 0x10]
movs r0, 0x50
_08108606:
strh r0, [r4, 0x14]
movs r0, 0x62
strh r0, [r4, 0x12]
ldrh r0, [r4, 0x10]
adds r0, 0x31
strh r0, [r4, 0x16]
movs r0, 0xA
ldrsh r1, [r4, r0]
lsls r0, r1, 2
adds r0, r1
adds r0, 0x5
strh r0, [r4, 0x20]
ldr r0, =sub_810862C
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81085C8
thumb_func_start sub_810862C
sub_810862C: @ 810862C
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r1, r0, 24
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
ldr r7, =gTasks
adds r4, r0, r7
movs r0, 0x8
ldrsh r2, [r4, r0]
cmp r2, 0
beq _08108654
cmp r2, 0x1
beq _08108704
b _08108712
.pool
_08108654:
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
ble _0810866A
strh r2, [r4, 0xC]
adds r0, r4, 0
bl sub_810871C
_0810866A:
movs r1, 0x1C
ldrsh r0, [r4, r1]
cmp r0, 0
beq _081086E4
movs r2, 0x22
ldrsh r0, [r4, r2]
cmp r0, 0
bne _081086E4
ldr r5, =gBattleAnimArgs
movs r1, 0x1
mov r8, r1
mov r2, r8
strh r2, [r5]
strh r0, [r5, 0x2]
movs r0, 0xC
strh r0, [r5, 0x4]
ldr r6, =sub_81152DC
adds r0, r6, 0
movs r1, 0x50
bl CreateTask
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
beq _081086B4
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r0, r7
ldr r1, [r0]
adds r0, r2, 0
bl _call_via_r1
ldr r1, =gAnimVisualTaskCount
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
_081086B4:
movs r0, 0x3
strh r0, [r5]
adds r0, r6, 0
movs r1, 0x50
bl CreateTask
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
beq _081086E0
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r0, r7
ldr r1, [r0]
adds r0, r2, 0
bl _call_via_r1
ldr r1, =gAnimVisualTaskCount
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
_081086E0:
mov r0, r8
strh r0, [r4, 0x22]
_081086E4:
movs r2, 0x1E
ldrsh r1, [r4, r2]
movs r2, 0x20
ldrsh r0, [r4, r2]
cmp r1, r0
blt _08108712
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _08108712
.pool
_08108704:
movs r2, 0x1A
ldrsh r0, [r4, r2]
cmp r0, 0
bne _08108712
adds r0, r1, 0
bl DestroyAnimVisualTask
_08108712:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_810862C
thumb_func_start sub_810871C
sub_810871C: @ 810871C
push {r4-r6,lr}
adds r4, r0, 0
lsls r1, 24
lsrs r6, r1, 24
ldr r1, =gSineTable
movs r2, 0x18
ldrsh r0, [r4, r2]
lsls r0, 1
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
adds r0, 0x3
asrs r0, 4
ldrh r2, [r4, 0x14]
adds r0, r2
lsls r0, 16
lsrs r5, r0, 16
ldr r0, =gUnknown_08595268
movs r2, 0x16
ldrsh r1, [r4, r2]
movs r2, 0
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x40
beq _08108776
ldr r3, =gSprites
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r3, 0
adds r1, 0x1C
adds r1, r0, r1
ldr r2, =sub_81087C0
str r2, [r1]
adds r0, r3
strh r5, [r0, 0x38]
strh r6, [r0, 0x3A]
movs r1, 0x9
strh r1, [r0, 0x3C]
ldrh r0, [r4, 0x1A]
adds r0, 0x1
strh r0, [r4, 0x1A]
_08108776:
ldrh r0, [r4, 0x1E]
adds r0, 0x1
strh r0, [r4, 0x1E]
ldrh r0, [r4, 0x18]
adds r0, 0x27
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x18]
movs r0, 0x16
ldrsh r1, [r4, r0]
ldr r0, =0x41c64e6d
muls r0, r1
ldr r1, =0x00003039
adds r0, r1
movs r2, 0x12
ldrsh r1, [r4, r2]
bl __modsi3
ldrh r1, [r4, 0x10]
adds r1, r0
strh r1, [r4, 0x16]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810871C
thumb_func_start sub_81087C0
sub_81087C0: @ 81087C0
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x2E
ldrsh r0, [r5, r1]
cmp r0, 0
bne _08108856
ldrh r0, [r5, 0x22]
adds r0, 0x8
strh r0, [r5, 0x22]
lsls r0, 16
asrs r0, 16
movs r2, 0x38
ldrsh r1, [r5, r2]
cmp r0, r1
blt _08108856
ldr r2, =gTasks
movs r3, 0x3A
ldrsh r1, [r5, r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
movs r1, 0x1
strh r1, [r0, 0x1C]
ldr r0, =gUnknown_08597388
movs r2, 0x20
ldrsh r1, [r5, r2]
movs r3, 0x22
ldrsh r2, [r5, r3]
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x30]
cmp r0, 0x40
beq _08108850
movs r0, 0x30
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, =gSprites
adds r0, r4
movs r1, 0x3
bl StartSpriteAffineAnim
movs r2, 0x30
ldrsh r1, [r5, r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrh r1, [r5, 0x3A]
strh r1, [r0, 0x3A]
movs r3, 0x30
ldrsh r1, [r5, r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrh r1, [r5, 0x3C]
strh r1, [r0, 0x3C]
movs r0, 0x30
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r4, 0x1C
adds r0, r4
ldr r1, =sub_810886C
str r1, [r0]
_08108850:
adds r0, r5, 0
bl DestroySprite
_08108856:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81087C0
thumb_func_start sub_810886C
sub_810886C: @ 810886C
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _081088D8
movs r0, 0
strh r0, [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]
ldrh r0, [r4, 0x32]
adds r0, 0x1
strh r0, [r4, 0x32]
lsls r0, 16
asrs r0, 16
cmp r0, 0xC
bne _081088D8
ldr r3, =gTasks
movs r0, 0x3C
ldrsh r1, [r4, r0]
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]
ldrb r0, [r4, 0x3]
lsls r0, 26
lsrs r0, 27
bl FreeOamMatrix
adds r0, r4, 0
bl DestroySprite
_081088D8:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810886C
thumb_func_start sub_81088E4
sub_81088E4: @ 81088E4
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks
adds r5, r1, r0
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r6, 0
strh r0, [r5, 0xE]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x10]
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
movs r2, 0x1
negs r2, r2
adds r1, r2, 0
cmp r0, 0
bne _08108928
movs r1, 0x1
_08108928:
strh r1, [r5, 0x16]
bl IsContest
lsls r0, 24
cmp r0, 0
beq _0810893C
movs r1, 0x16
ldrsh r0, [r5, r1]
negs r0, r0
strh r0, [r5, 0x16]
_0810893C:
movs r2, 0x16
ldrsh r0, [r5, r2]
lsls r0, 3
ldrh r1, [r5, 0xE]
adds r0, r1
strh r0, [r5, 0x12]
movs r2, 0x16
ldrsh r1, [r5, r2]
lsls r1, 3
ldrh r0, [r5, 0x10]
subs r0, r1
strh r0, [r5, 0x14]
ldr r0, =0x0000ffe0
strh r0, [r5, 0x1A]
strh r6, [r5, 0xA]
strh r6, [r5, 0x8]
ldr r0, =sub_8108978
str r0, [r5]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81088E4
thumb_func_start sub_8108978
sub_8108978: @ 8108978
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0x6
bls _08108992
b _08108AB2
_08108992:
lsls r0, 2
ldr r1, =_081089A4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081089A4:
.4byte _081089C0
.4byte _081089D0
.4byte _081089EA
.4byte _08108A2C
.4byte _08108A4E
.4byte _08108A7C
.4byte _08108AA2
_081089C0:
adds r0, r4, 0
bl sub_8108AC0
movs r1, 0x1C
ldrsh r0, [r4, r1]
cmp r0, 0
beq _08108AB8
b _08108AAA
_081089D0:
adds r0, r4, 0
bl sub_8108AC0
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x10
ble _08108AB8
movs r0, 0
strh r0, [r4, 0xA]
b _08108AAA
_081089EA:
adds r0, r4, 0
bl sub_8108AC0
movs r1, 0x16
ldrsh r0, [r4, r1]
lsls r1, r0, 1
adds r1, r0
lsls r1, 1
ldrh r0, [r4, 0x12]
adds r1, r0
movs r2, 0
strh r1, [r4, 0x12]
adds r1, 0x10
lsls r1, 16
movs r0, 0x88
lsls r0, 17
cmp r1, r0
bls _08108AB8
ldrh r0, [r4, 0x20]
adds r0, 0x1
strh r0, [r4, 0x20]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
ble _08108A28
movs r0, 0x1
strh r0, [r4, 0x22]
movs r0, 0x6
strh r0, [r4, 0x8]
strh r2, [r4, 0xA]
b _08108AB8
_08108A28:
strh r2, [r4, 0xA]
b _08108AAA
_08108A2C:
adds r0, r4, 0
bl sub_8108AC0
movs r0, 0x16
ldrsh r1, [r4, r0]
lsls r1, 1
ldrh r0, [r4, 0x14]
subs r0, r1
strh r0, [r4, 0x14]
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x7
ble _08108AB8
b _08108AAA
_08108A4E:
adds r0, r4, 0
bl sub_8108AC0
movs r1, 0x16
ldrsh r0, [r4, r1]
lsls r1, r0, 1
adds r1, r0
lsls r1, 1
ldrh r0, [r4, 0x12]
subs r0, r1
strh r0, [r4, 0x12]
adds r0, 0x10
lsls r0, 16
movs r1, 0x88
lsls r1, 17
cmp r0, r1
bls _08108AB8
ldrh r0, [r4, 0x20]
adds r0, 0x1
strh r0, [r4, 0x20]
movs r0, 0
strh r0, [r4, 0xA]
b _08108AAA
_08108A7C:
adds r0, r4, 0
bl sub_8108AC0
movs r0, 0x16
ldrsh r1, [r4, r0]
lsls r1, 1
ldrh r0, [r4, 0x14]
subs r0, r1
strh r0, [r4, 0x14]
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x7
ble _08108AB8
movs r0, 0x2
strh r0, [r4, 0x8]
b _08108AB8
_08108AA2:
movs r1, 0x18
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08108AB8
_08108AAA:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _08108AB8
_08108AB2:
adds r0, r2, 0
bl DestroyAnimVisualTask
_08108AB8:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8108978
thumb_func_start sub_8108AC0
sub_8108AC0: @ 8108AC0
push {r4-r6,lr}
adds r6, r0, 0
ldrh r0, [r6, 0xC]
adds r0, 0x1
strh r0, [r6, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _08108B1A
movs r0, 0
strh r0, [r6, 0xC]
ldr r0, =gUnknown_08595268
movs r2, 0xE
ldrsh r1, [r6, r2]
movs r3, 0x10
ldrsh r2, [r6, r3]
movs r3, 0xA
bl CreateSprite
lsls r0, 24
lsrs r0, 24
cmp r0, 0x40
beq _08108B1A
ldr r5, =gSprites
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
adds r0, r4, r5
movs r1, 0x10
strh r1, [r0, 0x2E]
ldrh r1, [r6, 0x12]
strh r1, [r0, 0x32]
ldrh r1, [r6, 0x14]
strh r1, [r0, 0x36]
ldrh r1, [r6, 0x1A]
strh r1, [r0, 0x38]
bl sub_80A68D4
adds r5, 0x1C
adds r4, r5
ldr r0, =sub_8108B2C
str r0, [r4]
ldrh r0, [r6, 0x18]
adds r0, 0x1
strh r0, [r6, 0x18]
_08108B1A:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8108AC0
thumb_func_start sub_8108B2C
sub_8108B2C: @ 8108B2C
push {r4-r6,lr}
adds r6, r0, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
beq _08108B86
ldrh r0, [r6, 0x24]
ldrh r1, [r6, 0x20]
adds r0, r1
strh r0, [r6, 0x20]
ldrh r0, [r6, 0x26]
ldrh r1, [r6, 0x22]
adds r0, r1
strh r0, [r6, 0x22]
movs r0, 0x6
strh r0, [r6, 0x2E]
bl Random2
movs r4, 0x1F
adds r1, r4, 0
ands r1, r0
ldr r5, =0x0000fff0
adds r1, r5
ldrh r0, [r6, 0x20]
adds r1, r0
strh r1, [r6, 0x32]
bl Random2
ands r4, r0
adds r4, r5
ldrh r1, [r6, 0x22]
adds r4, r1
strh r4, [r6, 0x36]
bl Random2
movs r1, 0x7
ands r1, r0
mvns r1, r1
strh r1, [r6, 0x38]
adds r0, r6, 0
bl sub_80A68D4
ldr r0, =sub_8108B94
str r0, [r6, 0x1C]
_08108B86:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8108B2C
thumb_func_start sub_8108B94
sub_8108B94: @ 8108B94
push {r4-r6,lr}
adds r5, r0, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
beq _08108BD0
movs r4, 0
ldr r6, =gTasks
_08108BA6:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r2, r0, r6
ldr r1, [r2]
ldr r0, =sub_8108978
cmp r1, r0
bne _08108BC6
movs r0, 0x1
strh r0, [r2, 0x1C]
ldrh r0, [r2, 0x18]
subs r0, 0x1
strh r0, [r2, 0x18]
adds r0, r5, 0
bl DestroySprite
_08108BC6:
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0xF
bls _08108BA6
_08108BD0:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8108B94
thumb_func_start sub_8108BE0
sub_8108BE0: @ 8108BE0
ldr r2, =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r0, 0x20]
ldrh r1, [r2, 0x2]
strh r1, [r0, 0x22]
ldrh r1, [r2, 0x4]
strh r1, [r0, 0x2E]
ldrh r1, [r2, 0x6]
strh r1, [r0, 0x30]
ldrh r1, [r2, 0x8]
strh r1, [r0, 0x32]
ldrh r1, [r2, 0xA]
strh r1, [r0, 0x34]
ldr r1, =sub_8108C08
str r1, [r0, 0x1C]
bx lr
.pool
thumb_func_end sub_8108BE0
thumb_func_start sub_8108C08
sub_8108C08: @ 8108C08
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x36]
ldrh r1, [r4, 0x2E]
subs r0, r1
strh r0, [r4, 0x36]
movs r1, 0x36
ldrsh r0, [r4, r1]
movs r1, 0xA
bl __divsi3
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x30]
ldrh r2, [r4, 0x38]
adds r0, r2
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x38]
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r2, 0x32
ldrsh r1, [r4, r2]
bl Sin
strh r0, [r4, 0x24]
ldrh r0, [r4, 0x34]
subs r0, 0x1
strh r0, [r4, 0x34]
lsls r0, 16
cmp r0, 0
bne _08108C4C
adds r0, r4, 0
bl DestroyAnimSprite
_08108C4C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8108C08
thumb_func_start sub_8108C54
sub_8108C54: @ 8108C54
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x30]
ldrh r1, [r4, 0x34]
adds r0, r1
strh r0, [r4, 0x34]
ldrh r1, [r4, 0x32]
ldrh r2, [r4, 0x36]
adds r1, r2
strh r1, [r4, 0x36]
lsls r0, 16
asrs r0, 23
strh r0, [r4, 0x24]
lsls r1, 16
asrs r1, 23
strh r1, [r4, 0x26]
ldrh r0, [r4, 0x2E]
subs r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
cmp r0, 0
bne _08108C8C
adds r0, r4, 0
bl FreeSpriteOamMatrix
adds r0, r4, 0
bl DestroySprite
_08108C8C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8108C54
thumb_func_start sub_8108C94
sub_8108C94: @ 8108C94
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x30]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x34]
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x36]
ldr r0, =sub_8108CDC
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8108C94
thumb_func_start sub_8108CDC
sub_8108CDC: @ 8108CDC
push {r4-r6,lr}
adds r4, r0, 0
movs r0, 0x30
ldrsh r1, [r4, r0]
movs r2, 0x20
ldrsh r0, [r4, r2]
subs r6, r1, r0
movs r0, 0x32
ldrsh r1, [r4, r0]
movs r2, 0x22
ldrsh r0, [r4, r2]
subs r5, r1, r0
movs r1, 0x2E
ldrsh r0, [r4, r1]
muls r0, r6
movs r2, 0x34
ldrsh r1, [r4, r2]
bl __divsi3
strh r0, [r4, 0x24]
movs r1, 0x2E
ldrsh r0, [r4, r1]
muls r0, r5
movs r2, 0x34
ldrsh r1, [r4, r2]
bl __divsi3
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x38]
adds r0, 0x1
strh r0, [r4, 0x38]
lsls r0, 16
asrs r0, 16
movs r2, 0x36
ldrsh r1, [r4, r2]
cmp r0, r1
bne _08108D34
movs r0, 0
strh r0, [r4, 0x38]
adds r0, r4, 0
adds r1, r6, 0
adds r2, r5, 0
bl sub_8108D54
_08108D34:
movs r0, 0x34
ldrsh r1, [r4, r0]
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r1, r0
bne _08108D46
adds r0, r4, 0
bl DestroyAnimSprite
_08108D46:
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8108CDC
thumb_func_start sub_8108D54
sub_8108D54: @ 8108D54
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x18
adds r4, r1, 0
adds r5, r2, 0
movs r2, 0x2E
ldrsh r1, [r0, r2]
lsrs r2, r1, 31
adds r1, r2
lsls r1, 15
lsrs r1, 16
str r1, [sp]
ldrh r1, [r0, 0x24]
ldrh r3, [r0, 0x20]
adds r1, r3
lsls r1, 16
lsrs r1, 16
mov r8, r1
ldrh r1, [r0, 0x26]
ldrh r0, [r0, 0x22]
adds r1, r0
lsls r1, 16
lsrs r1, 16
mov r10, r1
bl Random2
lsls r0, 16
lsrs r0, 16
movs r1, 0xA
bl __umodsi3
adds r0, r5, r0
subs r0, 0x5
lsls r0, 16
lsrs r0, 16
mov r9, r0
bl Random2
negs r4, r4
lsls r0, 16
lsrs r0, 16
movs r1, 0xA
bl __umodsi3
adds r4, r0
subs r4, 0x5
lsls r4, 16
lsrs r7, r4, 16
movs r6, 0
mov r0, r8
lsls r0, 16
mov r8, r0
mov r1, r10
lsls r1, 16
str r1, [sp, 0xC]
ldr r2, [sp]
lsls r2, 16
str r2, [sp, 0x10]
asrs r1, 16
lsls r0, r7, 16
asrs r5, r0, 16
str r0, [sp, 0x14]
negs r3, r5
str r3, [sp, 0x4]
asrs r0, r2, 16
adds r1, r0
lsls r1, 16
mov r10, r1
_08108DE2:
ldr r0, =gUnknown_08595310
mov r2, r8
asrs r1, r2, 16
mov r3, r10
asrs r2, r3, 16
movs r3, 0x82
bl CreateSprite
lsls r0, 24
lsrs r2, r0, 24
ldr r1, =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r4, r0, r1
movs r0, 0x14
strh r0, [r4, 0x2E]
mov r0, r9
strh r0, [r4, 0x30]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A82E4
subs r0, 0x1
adds r1, r4, 0
adds r1, 0x43
strb r0, [r1]
cmp r5, 0
bge _08108E30
mov r1, sp
ldrh r1, [r1, 0x4]
strh r1, [r4, 0x32]
b _08108E32
.pool
_08108E30:
strh r7, [r4, 0x32]
_08108E32:
lsls r0, r6, 16
movs r2, 0x80
lsls r2, 9
adds r0, r2
lsrs r6, r0, 16
cmp r0, 0
ble _08108DE2
movs r6, 0
ldr r3, [sp, 0xC]
asrs r1, r3, 16
ldr r0, [sp, 0x14]
asrs r5, r0, 16
negs r2, r5
str r2, [sp, 0x8]
ldr r3, [sp, 0x10]
asrs r0, r3, 16
subs r1, r0
lsls r1, 16
mov r10, r1
_08108E58:
ldr r0, =gUnknown_08595310
mov r2, r8
asrs r1, r2, 16
mov r3, r10
asrs r2, r3, 16
movs r3, 0x82
bl CreateSprite
lsls r0, 24
lsrs r2, r0, 24
ldr r1, =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r4, r0, r1
movs r0, 0x14
strh r0, [r4, 0x2E]
mov r0, r9
strh r0, [r4, 0x30]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A82E4
subs r0, 0x1
adds r1, r4, 0
adds r1, 0x43
strb r0, [r1]
cmp r5, 0
ble _08108EA8
mov r1, sp
ldrh r1, [r1, 0x8]
strh r1, [r4, 0x32]
b _08108EAA
.pool
_08108EA8:
strh r7, [r4, 0x32]
_08108EAA:
lsls r0, r6, 16
movs r2, 0x80
lsls r2, 9
adds r0, r2
lsrs r6, r0, 16
cmp r0, 0
ble _08108E58
add sp, 0x18
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8108D54
thumb_func_start sub_8108EC8
sub_8108EC8: @ 8108EC8
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x2E]
movs r0, 0x3C
strh r0, [r4, 0x30]
movs r0, 0x9
strh r0, [r4, 0x32]
movs r0, 0x1E
strh r0, [r4, 0x34]
movs r0, 0xFE
lsls r0, 8
strh r0, [r4, 0x36]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r1, =sub_80A634C
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8108EC8
thumb_func_start sub_8108F08
sub_8108F08: @ 8108F08
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
bl sub_80A6864
ldrh r0, [r5, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
ldrh r0, [r5, 0x8]
strh r0, [r4, 0x2E]
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x30]
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x32]
ldr r0, =sub_80A656C
str r0, [r4, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8108F08
thumb_func_start sub_8108F4C
sub_8108F4C: @ 8108F4C
push {r4,lr}
adds r4, r0, 0
bl sub_80A6838
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08108F88
ldr r2, =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]
ldrh r0, [r2, 0x8]
negs r0, r0
strh r0, [r4, 0x32]
adds r1, r2, 0
b _08108F9E
.pool
_08108F88:
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
strh r0, [r4, 0x20]
ldrh r0, [r1, 0x2]
ldrh r2, [r4, 0x22]
adds r0, r2
strh r0, [r4, 0x22]
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x32]
_08108F9E:
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x36]
ldrh r0, [r1, 0xA]
strh r0, [r4, 0x34]
ldr r0, =sub_8109028
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8108F4C
thumb_func_start sub_8108FBC
sub_8108FBC: @ 8108FBC
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08108FF0
ldr r2, =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]
ldrh r0, [r2, 0x8]
strh r0, [r4, 0x32]
adds r1, r2, 0
b _08109008
.pool
_08108FF0:
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
strh r0, [r4, 0x20]
ldrh r0, [r1, 0x2]
ldrh r2, [r4, 0x22]
adds r0, r2
strh r0, [r4, 0x22]
ldrh r0, [r1, 0x8]
negs r0, r0
strh r0, [r4, 0x32]
_08109008:
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x36]
ldrh r0, [r1, 0xA]
strh r0, [r4, 0x34]
ldr r0, =sub_8109028
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8108FBC
thumb_func_start sub_8109028
sub_8109028: @ 8109028
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x2E]
adds r0, 0x1
strh r0, [r2, 0x2E]
lsls r0, 16
asrs r0, 16
movs r3, 0x36
ldrsh r1, [r2, r3]
cmp r0, r1
bge _0810904E
ldrh r0, [r2, 0x32]
ldrh r1, [r2, 0x24]
adds r0, r1
strh r0, [r2, 0x24]
ldrh r0, [r2, 0x34]
ldrh r3, [r2, 0x26]
adds r0, r3
strh r0, [r2, 0x26]
_0810904E:
movs r0, 0x2E
ldrsh r1, [r2, r0]
movs r3, 0x30
ldrsh r0, [r2, r3]
cmp r1, r0
bne _08109060
adds r0, r2, 0
bl move_anim_8074EE0
_08109060:
pop {r0}
bx r0
thumb_func_end sub_8109028
thumb_func_start sub_8109064
sub_8109064: @ 8109064
push {r4,lr}
adds r4, r0, 0
bl sub_80A6838
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08109090
ldr r0, =gBattleAnimArgs
ldrh r1, [r4, 0x20]
ldrh r2, [r0]
subs r1, r2
strh r1, [r4, 0x20]
b _081090A2
.pool
_08109090:
ldr r0, =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r4, 0x20]
adds r1, r2
strh r1, [r4, 0x20]
adds r2, r4, 0
adds r2, 0x43
movs r1, 0x8
strb r1, [r2]
_081090A2:
adds r2, r0, 0
ldrh r0, [r2, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
movs r1, 0
strh r0, [r4, 0x22]
ldrh r0, [r2, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r2, 0x6]
strh r0, [r4, 0x30]
ldrh r0, [r2, 0x8]
strh r0, [r4, 0x32]
ldrh r0, [r2, 0xA]
strh r0, [r4, 0x34]
ldrh r0, [r2, 0xC]
strh r0, [r4, 0x36]
strh r1, [r4, 0x38]
ldr r0, =sub_81090D8
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8109064
thumb_func_start sub_81090D8
sub_81090D8: @ 81090D8
push {r4,lr}
adds r4, r0, 0
movs r1, 0x34
ldrsh r0, [r4, r1]
cmp r0, 0
beq _08109160
movs r2, 0x38
ldrsh r1, [r4, r2]
ldr r0, =0x00002710
cmp r1, r0
ble _081090F6
adds r1, r4, 0
adds r1, 0x43
movs r0, 0x1
strb r0, [r1]
_081090F6:
movs r1, 0x2E
ldrsh r0, [r4, r1]
ldrh r1, [r4, 0x38]
lsls r1, 16
asrs r1, 24
ldrh r2, [r4, 0x30]
adds r1, r2
lsls r1, 16
asrs r1, 16
bl Sin
strh r0, [r4, 0x24]
movs r1, 0x2E
ldrsh r0, [r4, r1]
ldrh r1, [r4, 0x38]
lsls r1, 16
asrs r1, 24
ldrh r2, [r4, 0x30]
adds r1, r2
lsls r1, 16
asrs r1, 16
bl Cos
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x32]
ldrh r2, [r4, 0x2E]
adds r1, r0, r2
strh r1, [r4, 0x2E]
ldrh r0, [r4, 0x36]
ldrh r2, [r4, 0x38]
adds r0, r2
strh r0, [r4, 0x38]
lsls r0, r1, 16
asrs r0, 16
cmp r0, 0xFF
ble _0810914C
ldr r2, =0xffffff00
b _08109154
.pool
_0810914C:
cmp r0, 0
bge _08109158
movs r2, 0x80
lsls r2, 1
_08109154:
adds r0, r1, r2
strh r0, [r4, 0x2E]
_08109158:
ldrh r0, [r4, 0x34]
subs r0, 0x1
strh r0, [r4, 0x34]
b _08109166
_08109160:
adds r0, r4, 0
bl move_anim_8074EE0
_08109166:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81090D8
thumb_func_start sub_810916C
sub_810916C: @ 810916C
push {lr}
movs r1, 0
strh r1, [r0, 0x20]
strh r1, [r0, 0x22]
movs r1, 0x3C
strh r1, [r0, 0x2E]
movs r1, 0x8C
strh r1, [r0, 0x32]
movs r1, 0x50
strh r1, [r0, 0x36]
ldr r1, =sub_80A6EEC
str r1, [r0, 0x1C]
ldr r1, =DestroyAnimSprite
bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.pool
thumb_func_end sub_810916C
thumb_func_start sub_8109198
sub_8109198: @ 8109198
push {r4-r6,lr}
adds r6, r0, 0
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
bl GetBattlerSide
adds r4, r0, 0
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
bne _081091DE
movs r0, 0x2
bl GetBattlerAtPosition
ldrb r1, [r5]
lsls r0, 24
lsrs r0, 24
cmp r1, r0
beq _081091D6
movs r0, 0x3
bl GetBattlerAtPosition
ldrb r1, [r5]
lsls r0, 24
lsrs r0, 24
cmp r1, r0
bne _081091DE
_081091D6:
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_081091DE:
ldr r1, =sub_80A7938
str r1, [r6, 0x1C]
adds r0, r6, 0
bl _call_via_r1
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8109198
thumb_func_start sub_8109200
sub_8109200: @ 8109200
ldr r2, =gBattleAnimArgs
ldrh r1, [r2]
negs r1, r1
strh r1, [r2]
ldrh r1, [r2, 0x4]
negs r1, r1
strh r1, [r2, 0x4]
ldr r1, =sub_80A7938
str r1, [r0, 0x1C]
bx lr
.pool
thumb_func_end sub_8109200
thumb_func_start sub_810921C
sub_810921C: @ 810921C
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x4]
movs r1, 0
strh r0, [r4, 0x3C]
strh r1, [r4, 0x2E]
ldr r0, =sub_8109244
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810921C
thumb_func_start sub_8109244
sub_8109244: @ 8109244
push {r4,r5,lr}
adds r5, r0, 0
bl sub_8109338
ldrh r0, [r5, 0x2E]
adds r0, 0x1
strh r0, [r5, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x12
bne _0810928E
movs r0, 0x19
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
ldrh r0, [r5, 0x22]
strh r0, [r5, 0x34]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
adds r0, r5, 0
bl obj_translate_based_on_private_1_2_3_4
ldr r0, =sub_810929C
str r0, [r5, 0x1C]
_0810928E:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8109244
thumb_func_start sub_810929C
sub_810929C: @ 810929C
push {r4-r6,lr}
adds r6, r0, 0
bl sub_80A6F3C
lsls r0, 24
cmp r0, 0
beq _081092E4
movs r4, 0
strh r4, [r6, 0x2E]
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x20]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x22]
strh r4, [r6, 0x26]
strh r4, [r6, 0x24]
ldr r1, =sub_8109314
str r1, [r6, 0x1C]
adds r0, r6, 0
bl _call_via_r1
b _0810930E
.pool
_081092E4:
movs r1, 0x3C
ldrsh r0, [r6, r1]
movs r1, 0x1C
bl Sin
ldrh r1, [r6, 0x24]
adds r0, r1
strh r0, [r6, 0x24]
movs r1, 0x3C
ldrsh r0, [r6, r1]
movs r1, 0x1C
bl Cos
ldrh r1, [r6, 0x26]
adds r0, r1
strh r0, [r6, 0x26]
ldrh r0, [r6, 0x3C]
adds r0, 0x14
movs r1, 0xFF
ands r0, r1
strh r0, [r6, 0x3C]
_0810930E:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_810929C
thumb_func_start sub_8109314
sub_8109314: @ 8109314
push {r4,lr}
adds r4, r0, 0
bl sub_8109338
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1F
bne _08109330
adds r0, r4, 0
bl DestroyAnimSprite
_08109330:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8109314
thumb_func_start sub_8109338
sub_8109338: @ 8109338
push {r4,lr}
adds r4, r0, 0
movs r1, 0x3C
ldrsh r0, [r4, r1]
movs r1, 0x1C
bl Sin
strh r0, [r4, 0x24]
movs r1, 0x3C
ldrsh r0, [r4, r1]
movs r1, 0x1C
bl Cos
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x3C]
adds r0, 0x14
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x3C]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8109338
thumb_func_start sub_8109364
sub_8109364: @ 8109364
push {r4,lr}
adds r4, r0, 0
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
strh r0, [r4, 0x20]
ldrh r0, [r1, 0x2]
ldrh r2, [r4, 0x22]
adds r0, r2
strh r0, [r4, 0x22]
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x32]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A653C
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8109364
thumb_func_start sub_81093A4
sub_81093A4: @ 81093A4
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x2E]
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldr r0, =sub_80A64B0
str r0, [r4, 0x1C]
ldr r1, =sub_81093E4
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81093A4
thumb_func_start sub_81093E4
sub_81093E4: @ 81093E4
push {lr}
adds r3, r0, 0
adds r3, 0x3E
ldrb r2, [r3]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r3]
ldrh r1, [r0, 0x30]
movs r2, 0
strh r1, [r0, 0x2E]
strh r2, [r0, 0x30]
ldr r1, =sub_810940C
str r1, [r0, 0x1C]
bl _call_via_r1
pop {r0}
bx r0
.pool
thumb_func_end sub_81093E4
thumb_func_start sub_810940C
sub_810940C: @ 810940C
push {r4,lr}
adds r4, r0, 0
movs r1, 0x30
ldrsh r0, [r4, r1]
ldrh r1, [r4, 0x32]
lsls r1, 16
asrs r1, 24
bl Sin
strh r0, [r4, 0x24]
movs r1, 0x30
ldrsh r0, [r4, r1]
ldrh r1, [r4, 0x32]
lsls r1, 16
asrs r1, 24
bl Cos
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x30]
adds r0, 0xA
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x30]
ldrh r0, [r4, 0x32]
adds r0, 0xD0
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x2E]
subs r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
movs r1, 0x1
negs r1, r1
cmp r0, r1
bne _08109458
adds r0, r4, 0
bl DestroyAnimSprite
_08109458:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810940C
thumb_func_start sub_8109460
sub_8109460: @ 8109460
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, =gTasks
adds r4, r0
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
movs r5, 0
strh r0, [r4, 0x26]
strh r5, [r4, 0x8]
strh r5, [r4, 0xA]
strh r5, [r4, 0xC]
strh r5, [r4, 0xE]
ldr r2, =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r0, [r0, 0x22]
strh r0, [r4, 0x10]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x12]
strh r5, [r4, 0x14]
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
movs r1, 0
bl sub_80A7270
ldr r0, =sub_81094D0
str r0, [r4]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8109460
thumb_func_start sub_81094D0
sub_81094D0: @ 81094D0
push {r4,r5,lr}
sub sp, 0xC
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0x6
bls _081094EC
b _081097AA
_081094EC:
lsls r0, 2
ldr r1, =_08109500
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08109500:
.4byte _0810951C
.4byte _08109542
.4byte _081095F4
.4byte _08109654
.4byte _08109672
.4byte _08109748
.4byte _0810979C
_0810951C:
ldrh r1, [r4, 0x26]
lsls r1, 24
lsrs r1, 24
movs r3, 0x80
lsls r3, 1
movs r0, 0xE0
str r0, [sp]
movs r0, 0x80
lsls r0, 2
str r0, [sp, 0x4]
movs r0, 0x20
str r0, [sp, 0x8]
adds r0, r4, 0
adds r2, r3, 0
bl sub_80A805C
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_08109542:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _0810958A
movs r0, 0
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _08109578
ldr r2, =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x3
b _08109588
.pool
_08109578:
ldr r2, =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r1, =0x0000fffd
_08109588:
strh r1, [r0, 0x24]
_0810958A:
movs r1, 0x12
ldrsh r0, [r4, r1]
cmp r0, 0
beq _081095B8
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
ble _081095B8
movs r0, 0
strh r0, [r4, 0xE]
ldr r2, =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x22]
adds r1, 0x1
strh r1, [r0, 0x22]
_081095B8:
adds r0, r4, 0
bl sub_80A80C8
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
beq _081095C8
b _081097AA
_081095C8:
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
bl sub_80A7E6C
ldr r2, =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]
strh r5, [r4, 0xA]
strh r5, [r4, 0xC]
strh r5, [r4, 0xE]
b _08109790
.pool
_081095F4:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bgt _08109604
b _081097AA
_08109604:
movs r1, 0x12
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0810962E
ldrh r1, [r4, 0x26]
lsls r1, 24
lsrs r1, 24
movs r3, 0x80
lsls r3, 2
movs r0, 0xC0
lsls r0, 1
str r0, [sp]
movs r0, 0xF0
str r0, [sp, 0x4]
movs r0, 0x6
str r0, [sp, 0x8]
adds r0, r4, 0
movs r2, 0xE0
bl sub_80A805C
b _0810964E
_0810962E:
ldrh r1, [r4, 0x26]
lsls r1, 24
lsrs r1, 24
movs r3, 0x80
lsls r3, 2
movs r0, 0xC0
lsls r0, 1
str r0, [sp]
movs r0, 0xC0
str r0, [sp, 0x4]
movs r0, 0x6
str r0, [sp, 0x8]
adds r0, r4, 0
movs r2, 0xE0
bl sub_80A805C
_0810964E:
movs r0, 0
strh r0, [r4, 0xA]
b _08109790
_08109654:
adds r0, r4, 0
bl sub_80A80C8
lsls r0, 24
cmp r0, 0
beq _08109662
b _081097AA
_08109662:
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
adds r1, r5, 0
movs r2, 0x6
bl sub_81097B4
b _08109790
_08109672:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _081096C0
movs r0, 0
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _081096AC
ldr r2, =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x26]
adds r1, 0x3
b _081096BE
.pool
_081096AC:
ldr r2, =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x26]
subs r1, 0x3
_081096BE:
strh r1, [r0, 0x26]
_081096C0:
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
lsls r0, 16
asrs r0, 16
cmp r0, 0x18
ble _081097AA
movs r1, 0x12
ldrsh r0, [r4, r1]
cmp r0, 0
beq _081096FC
ldrh r1, [r4, 0x26]
lsls r1, 24
lsrs r1, 24
movs r2, 0xC0
lsls r2, 1
movs r0, 0x80
lsls r0, 1
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0x8
str r0, [sp, 0x8]
adds r0, r4, 0
movs r3, 0xF0
bl sub_80A805C
b _0810971A
.pool
_081096FC:
ldrh r1, [r4, 0x26]
lsls r1, 24
lsrs r1, 24
movs r2, 0xC0
lsls r2, 1
movs r0, 0x80
lsls r0, 1
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0x8
str r0, [sp, 0x8]
adds r0, r4, 0
movs r3, 0xC0
bl sub_80A805C
_0810971A:
ldrh r1, [r4, 0xC]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08109738
ldr r2, =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x26]
subs r1, 0x3
strh r1, [r0, 0x26]
_08109738:
movs r0, 0
strh r0, [r4, 0xA]
strh r0, [r4, 0xC]
strh r0, [r4, 0xE]
b _08109790
.pool
_08109748:
movs r1, 0x12
ldrsh r0, [r4, r1]
cmp r0, 0
beq _08109764
ldr r2, =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x22]
subs r1, 0x1
strh r1, [r0, 0x22]
_08109764:
adds r0, r4, 0
bl sub_80A80C8
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
bne _081097AA
ldr r2, =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r4, 0x10]
strh r1, [r0, 0x22]
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
bl sub_80A7344
strh r5, [r4, 0xC]
_08109790:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _081097AA
.pool
_0810979C:
movs r1, 0x14
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081097AA
adds r0, r5, 0
bl DestroyAnimVisualTask
_081097AA:
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81094D0
thumb_func_start sub_81097B4
sub_81097B4: @ 81097B4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r1, 24
lsrs r7, r1, 24
lsls r2, 24
lsrs r2, 24
mov r8, r2
adds r0, r4, 0
bl sub_8109930
lsls r0, 16
lsrs r0, 16
mov r9, r0
ldr r1, =gSprites
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r0, r1
ldrh r4, [r0, 0x20]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810980C
adds r0, r4, 0
subs r0, 0xC
lsls r0, 16
lsrs r4, r0, 16
movs r0, 0x1
b _08109816
.pool
_0810980C:
adds r0, r4, 0
adds r0, 0x10
lsls r0, 16
lsrs r4, r0, 16
movs r0, 0xFF
_08109816:
movs r6, 0
movs r5, 0
lsls r4, 16
str r4, [sp, 0x8]
mov r1, r9
lsls r1, 16
str r1, [sp, 0x4]
ldr r2, =gUnknown_085955CC
mov r9, r2
lsls r0, 24
asrs r0, 24
str r0, [sp]
mov r3, r8
lsls r3, 1
mov r10, r3
_08109834:
ldr r0, =gUnknown_085955B4
ldr r2, [sp, 0x8]
asrs r1, r2, 16
ldr r3, [sp, 0x4]
asrs r2, r3, 16
movs r3, 0x2
bl CreateSprite
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x40
beq _081098B6
ldr r1, =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r4, r0, r1
ldrh r2, [r4, 0x4]
lsls r1, r2, 22
lsrs r1, 22
lsls r0, r5, 2
adds r0, 0x40
adds r1, r0
ldr r3, =0x000003ff
adds r0, r3, 0
ands r1, r0
ldr r3, =0xfffffc00
adds r0, r3, 0
ands r2, r0
orrs r2, r1
strh r2, [r4, 0x4]
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0x4
bls _0810987E
movs r5, 0
_0810987E:
lsls r2, r6, 2
mov r1, r9
adds r0, r2, r1
ldrh r0, [r0]
ldr r3, [sp]
adds r1, r0, 0
muls r1, r3
lsls r1, 16
asrs r1, 16
ldr r0, =gUnknown_085955CC+2
adds r2, r0
movs r3, 0
ldrsh r2, [r2, r3]
adds r0, r4, 0
bl sub_8109984
strh r7, [r4, 0x3A]
mov r0, r8
strh r0, [r4, 0x3C]
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
add r0, r10
ldr r1, =gTasks + 0x8
adds r0, r1
ldrh r1, [r0]
adds r1, 0x1
strh r1, [r0]
_081098B6:
adds r0, r6, 0x1
lsls r0, 16
lsrs r6, r0, 16
cmp r6, 0x6
bls _08109834
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81097B4
thumb_func_start sub_81098EC
sub_81098EC: @ 81098EC
push {r4,lr}
adds r4, r0, 0
bl sub_81099A0
adds r0, r4, 0
adds r0, 0x3E
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _08109926
ldr r3, =gTasks
movs r0, 0x3C
ldrsh r1, [r4, r0]
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 DestroySprite
_08109926:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81098EC
thumb_func_start sub_8109930
sub_8109930: @ 8109930
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r2, =gSprites
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
ldrh r2, [r1, 0x26]
ldrh r0, [r1, 0x22]
adds r2, r0
adds r1, 0x29
movs r0, 0
ldrsb r0, [r1, r0]
adds r0, r2
lsls r0, 16
lsrs r4, r0, 16
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08109970
lsls r0, r4, 16
movs r1, 0x94
lsls r1, 15
b _08109976
.pool
_08109970:
lsls r0, r4, 16
movs r1, 0xB0
lsls r1, 14
_08109976:
adds r0, r1
lsrs r4, r0, 16
adds r0, r4, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8109930
thumb_func_start sub_8109984
sub_8109984: @ 8109984
movs r3, 0
strh r3, [r0, 0x2E]
strh r3, [r0, 0x30]
ldrh r3, [r0, 0x20]
lsls r3, 3
strh r3, [r0, 0x32]
ldrh r3, [r0, 0x22]
lsls r3, 3
strh r3, [r0, 0x34]
lsls r1, 3
strh r1, [r0, 0x36]
lsls r2, 3
strh r2, [r0, 0x38]
bx lr
thumb_func_end sub_8109984
thumb_func_start sub_81099A0
sub_81099A0: @ 81099A0
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x2E]
adds r0, 0x1
strh r0, [r2, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
ble _081099CA
movs r0, 0
strh r0, [r2, 0x2E]
ldrh r0, [r2, 0x30]
adds r0, 0x1
strh r0, [r2, 0x30]
ldrh r0, [r2, 0x30]
adds r1, r0, 0
muls r1, r0
adds r0, r1, 0
ldrh r3, [r2, 0x34]
adds r0, r3
strh r0, [r2, 0x34]
_081099CA:
ldrh r0, [r2, 0x36]
ldrh r1, [r2, 0x32]
adds r0, r1
strh r0, [r2, 0x32]
lsls r0, 16
asrs r0, 19
strh r0, [r2, 0x20]
ldrh r1, [r2, 0x38]
ldrh r3, [r2, 0x34]
adds r1, r3
strh r1, [r2, 0x34]
lsls r1, 16
asrs r3, r1, 19
strh r3, [r2, 0x22]
adds r0, 0x8
lsls r0, 16
movs r1, 0x80
lsls r1, 17
cmp r0, r1
bhi _08109A00
adds r1, r3, 0
movs r0, 0x8
negs r0, r0
cmp r1, r0
blt _08109A00
cmp r1, 0x78
ble _08109A0C
_08109A00:
adds r0, r2, 0
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
_08109A0C:
pop {r0}
bx r0
thumb_func_end sub_81099A0
thumb_func_start sub_8109A10
sub_8109A10: @ 8109A10
push {r4,r5,lr}
ldr r3, =gBattleAnimArgs
ldrh r1, [r3]
movs r2, 0
strh r1, [r0, 0x20]
ldrh r1, [r3, 0x2]
strh r1, [r0, 0x22]
strh r2, [r0, 0x2E]
strh r2, [r0, 0x30]
strh r2, [r0, 0x32]
ldrh r1, [r3, 0x4]
strh r1, [r0, 0x3A]
ldrh r1, [r3, 0x6]
strh r1, [r0, 0x3C]
ldrh r4, [r0, 0x4]
lsls r2, r4, 22
lsrs r2, 22
movs r5, 0x8
ldrsh r1, [r3, r5]
lsls r1, 4
adds r2, r1
ldr r3, =0x000003ff
adds r1, r3, 0
ands r2, r1
ldr r1, =0xfffffc00
ands r1, r4
orrs r1, r2
strh r1, [r0, 0x4]
ldr r1, =sub_8109A64
str r1, [r0, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8109A10
thumb_func_start sub_8109A64
sub_8109A64: @ 8109A64
push {r4,lr}
adds r2, r0, 0
movs r1, 0x2E
ldrsh r0, [r2, r1]
cmp r0, 0x1
beq _08109A96
cmp r0, 0x1
bgt _08109A7A
cmp r0, 0
beq _08109A80
b _08109AF4
_08109A7A:
cmp r0, 0x2
beq _08109AB4
b _08109AF4
_08109A80:
ldrh r1, [r2, 0x3A]
movs r3, 0x3A
ldrsh r0, [r2, r3]
cmp r0, 0
beq _08109A90
subs r0, r1, 0x1
strh r0, [r2, 0x3A]
b _08109AF4
_08109A90:
ldrh r0, [r2, 0x2E]
adds r0, 0x1
strh r0, [r2, 0x2E]
_08109A96:
ldrh r0, [r2, 0x22]
adds r0, 0x8
strh r0, [r2, 0x22]
lsls r0, 16
asrs r0, 16
ldrh r3, [r2, 0x3C]
movs r4, 0x3C
ldrsh r1, [r2, r4]
cmp r0, r1
blt _08109AF4
strh r3, [r2, 0x22]
ldrh r0, [r2, 0x2E]
adds r0, 0x1
strh r0, [r2, 0x2E]
b _08109AF4
_08109AB4:
ldrh r0, [r2, 0x30]
adds r0, 0x1
strh r0, [r2, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _08109AE0
movs r0, 0
strh r0, [r2, 0x30]
ldrh r0, [r2, 0x32]
adds r0, 0x1
strh r0, [r2, 0x32]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _08109ADC
ldr r0, =0x0000fffd
b _08109ADE
.pool
_08109ADC:
movs r0, 0x3
_08109ADE:
strh r0, [r2, 0x26]
_08109AE0:
ldrh r0, [r2, 0x34]
adds r0, 0x1
strh r0, [r2, 0x34]
lsls r0, 16
asrs r0, 16
cmp r0, 0x10
ble _08109AF4
adds r0, r2, 0
bl DestroyAnimSprite
_08109AF4:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8109A64
thumb_func_start sub_8109AFC
sub_8109AFC: @ 8109AFC
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x2E
ldrsh r0, [r5, r1]
cmp r0, 0x1
beq _08109B70
cmp r0, 0x1
bgt _08109B12
cmp r0, 0
beq _08109B18
b _08109C3E
_08109B12:
cmp r0, 0x2
beq _08109BCE
b _08109C3E
_08109B18:
adds r0, r5, 0
movs r1, 0
bl sub_80A69CC
ldr r4, =gBattleAnimArgs
ldrb r1, [r4, 0x4]
adds r0, r5, 0
bl StartSpriteAnim
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x3C]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08109B48
movs r0, 0x4
b _08109B4A
.pool
_08109B48:
ldr r0, =0x0000fffc
_08109B4A:
strh r0, [r5, 0x36]
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8328
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]
b _08109BC6
.pool
_08109B70:
ldrh r0, [r5, 0x30]
adds r0, 0xC0
strh r0, [r5, 0x30]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08109B94
ldrh r0, [r5, 0x30]
lsls r0, 16
asrs r0, 24
negs r0, r0
b _08109B9A
.pool
_08109B94:
ldrh r0, [r5, 0x30]
lsls r0, 16
asrs r0, 24
_08109B9A:
strh r0, [r5, 0x26]
movs r2, 0x32
ldrsh r0, [r5, r2]
movs r2, 0x36
ldrsh r1, [r5, r2]
bl Sin
strh r0, [r5, 0x24]
ldrh r0, [r5, 0x32]
adds r0, 0x4
movs r1, 0xFF
ands r0, r1
strh r0, [r5, 0x32]
ldrh r0, [r5, 0x34]
adds r0, 0x1
strh r0, [r5, 0x34]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
bne _08109C3E
movs r0, 0
strh r0, [r5, 0x34]
_08109BC6:
ldrh r0, [r5, 0x2E]
adds r0, 0x1
strh r0, [r5, 0x2E]
b _08109C3E
_08109BCE:
movs r1, 0x32
ldrsh r0, [r5, r1]
movs r2, 0x36
ldrsh r1, [r5, r2]
bl Sin
adds r2, r0, 0
movs r3, 0
strh r2, [r5, 0x24]
ldrh r0, [r5, 0x32]
adds r0, 0x4
movs r1, 0xFF
ands r0, r1
strh r0, [r5, 0x32]
ldrh r0, [r5, 0x34]
adds r0, 0x1
strh r0, [r5, 0x34]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1F
bne _08109C3E
ldrh r0, [r5, 0x20]
adds r1, r2, r0
strh r1, [r5, 0x20]
ldrh r0, [r5, 0x26]
ldrh r2, [r5, 0x22]
adds r0, r2
strh r0, [r5, 0x22]
strh r3, [r5, 0x26]
strh r3, [r5, 0x24]
movs r0, 0x80
lsls r0, 1
strh r0, [r5, 0x2E]
strh r1, [r5, 0x30]
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
ldrh r0, [r5, 0x22]
strh r0, [r5, 0x34]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
adds r0, r5, 0
bl sub_80A6FD4
ldr r0, =sub_8109C4C
str r0, [r5, 0x1C]
_08109C3E:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8109AFC
thumb_func_start sub_8109C4C
sub_8109C4C: @ 8109C4C
push {r4,lr}
adds r4, r0, 0
bl sub_80A6F3C
lsls r0, 24
cmp r0, 0
bne _08109CA4
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r1, 0x10
bl Sin
ldrh r1, [r4, 0x24]
adds r0, r1
strh r0, [r4, 0x24]
ldrh r2, [r4, 0x38]
adds r0, r2, 0x4
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x38]
ldrh r0, [r4, 0x38]
lsls r2, 16
asrs r2, 16
cmp r2, 0
beq _08109C82
cmp r2, 0xC4
ble _08109CAA
_08109C82:
lsls r0, 16
cmp r0, 0
ble _08109CAA
movs r1, 0x3C
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08109CAA
ldr r0, =gUnknown_02038440
movs r1, 0
ldrsb r1, [r0, r1]
movs r0, 0x90
bl PlaySE12WithPanning
b _08109CAA
.pool
_08109CA4:
adds r0, r4, 0
bl DestroyAnimSprite
_08109CAA:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8109C4C
thumb_func_start sub_8109CB0
sub_8109CB0: @ 8109CB0
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x2E]
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r0, 0
bne _08109CC8
ldr r0, =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x30]
adds r0, r1, 0x1
strh r0, [r4, 0x2E]
_08109CC8:
movs r0, 0xC0
lsls r0, 1
adds r1, r0, 0
ldrh r2, [r4, 0x34]
adds r1, r2
strh r1, [r4, 0x34]
ldrh r0, [r4, 0x36]
adds r0, 0xA0
strh r0, [r4, 0x36]
movs r2, 0x30
ldrsh r0, [r4, r2]
lsls r1, 16
asrs r1, 24
bl Sin
strh r0, [r4, 0x24]
movs r1, 0x30
ldrsh r0, [r4, r1]
ldrh r1, [r4, 0x36]
lsls r1, 16
asrs r1, 24
bl Cos
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x30]
adds r0, 0x7
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x30]
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08109D64
ldrh r0, [r4, 0x30]
subs r0, 0x40
lsls r0, 16
lsrs r0, 16
cmp r0, 0x83
bls _08109D3C
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8328
movs r1, 0x3
ands r1, r0
lsls r1, 2
ldrb r2, [r4, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x5]
b _08109D80
.pool
_08109D3C:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8328
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
movs r1, 0x3
ands r0, r1
lsls r0, 2
ldrb r2, [r4, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r4, 0x5]
b _08109D80
.pool
_08109D64:
ldrh r0, [r4, 0x30]
subs r0, 0x40
lsls r0, 16
lsrs r0, 16
cmp r0, 0x83
bls _08109D78
adds r1, r4, 0
adds r1, 0x43
movs r0, 0x1D
b _08109D7E
_08109D78:
adds r1, r4, 0
adds r1, 0x43
movs r0, 0x1F
_08109D7E:
strb r0, [r1]
_08109D80:
ldrh r0, [r4, 0x32]
adds r0, 0x1
strh r0, [r4, 0x32]
lsls r0, 16
asrs r0, 16
cmp r0, 0x14
ble _08109DA8
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]
_08109DA8:
movs r2, 0x32
ldrsh r0, [r4, r2]
cmp r0, 0x1E
bne _08109DB6
adds r0, r4, 0
bl DestroyAnimSprite
_08109DB6:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8109CB0
thumb_func_start sub_8109DBC
sub_8109DBC: @ 8109DBC
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks
adds r4, r1, r0
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
movs r2, 0x1
negs r2, r2
adds r1, r2, 0
cmp r0, 0
bne _08109DE2
movs r1, 0x1
_08109DE2:
strh r1, [r4, 0x20]
ldr r0, =gBattleAnimTarget
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
bl IsBattlerSpriteVisible
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
strh r0, [r4, 0x22]
movs r0, 0x1
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x24]
movs r0, 0x3
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
ldr r0, =sub_8109E2C
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8109DBC
thumb_func_start sub_8109E2C
sub_8109E2C: @ 8109E2C
push {r4-r7,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, =gTasks
adds r2, r0, r1
movs r0, 0x8
ldrsh r3, [r2, r0]
cmp r3, 0x1
beq _08109EF4
cmp r3, 0x1
bgt _08109E54
cmp r3, 0
beq _08109E62
b _0810A054
.pool
_08109E54:
cmp r3, 0x2
bne _08109E5A
b _08109F7C
_08109E5A:
cmp r3, 0x3
bne _08109E60
b _0810A010
_08109E60:
b _0810A054
_08109E62:
movs r1, 0x20
ldrsh r0, [r2, r1]
lsls r0, 1
ldrh r5, [r2, 0x1C]
adds r0, r5
strh r0, [r2, 0x1C]
ldrh r0, [r2, 0xA]
adds r0, 0x1
strh r0, [r2, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _08109E94
strh r3, [r2, 0xA]
ldrh r0, [r2, 0xC]
adds r0, 0x1
strh r0, [r2, 0xC]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _08109E90
movs r0, 0x2
b _08109E92
_08109E90:
ldr r0, =0x0000fffe
_08109E92:
strh r0, [r2, 0x1E]
_08109E94:
movs r1, 0
strh r1, [r2, 0xE]
movs r7, 0x22
ldrsh r0, [r2, r7]
cmp r1, r0
bge _08109ED6
ldr r4, =gSprites
adds r3, r2, 0
adds r3, 0x8
_08109EA6:
movs r1, 0xE
ldrsh r0, [r2, r1]
adds r0, 0xE
lsls r0, 1
adds r0, r3, r0
movs r5, 0
ldrsh r0, [r0, r5]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
ldrh r0, [r2, 0x1E]
ldrh r7, [r2, 0x1C]
adds r0, r7
strh r0, [r1, 0x24]
ldrh r0, [r2, 0xE]
adds r0, 0x1
strh r0, [r2, 0xE]
lsls r0, 16
asrs r0, 16
movs r5, 0x22
ldrsh r1, [r2, r5]
cmp r0, r1
blt _08109EA6
_08109ED6:
ldrh r0, [r2, 0x1A]
adds r0, 0x1
strh r0, [r2, 0x1A]
lsls r0, 16
asrs r0, 16
cmp r0, 0x10
beq _08109EE6
b _0810A054
_08109EE6:
movs r0, 0
strh r0, [r2, 0x1A]
b _0810A000
.pool
_08109EF4:
ldrh r0, [r2, 0xA]
adds r0, 0x1
strh r0, [r2, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
ble _08109F1C
movs r0, 0
strh r0, [r2, 0xA]
ldrh r0, [r2, 0xC]
adds r0, 0x1
strh r0, [r2, 0xC]
ands r0, r3
lsls r0, 16
cmp r0, 0
beq _08109F18
movs r0, 0x2
b _08109F1A
_08109F18:
ldr r0, =0x0000fffe
_08109F1A:
strh r0, [r2, 0x1E]
_08109F1C:
movs r1, 0
strh r1, [r2, 0xE]
movs r7, 0x22
ldrsh r0, [r2, r7]
cmp r1, r0
bge _08109F5E
ldr r4, =gSprites
adds r3, r2, 0
adds r3, 0x8
_08109F2E:
movs r1, 0xE
ldrsh r0, [r2, r1]
adds r0, 0xE
lsls r0, 1
adds r0, r3, r0
movs r5, 0
ldrsh r0, [r0, r5]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
ldrh r0, [r2, 0x1E]
ldrh r7, [r2, 0x1C]
adds r0, r7
strh r0, [r1, 0x24]
ldrh r0, [r2, 0xE]
adds r0, 0x1
strh r0, [r2, 0xE]
lsls r0, 16
asrs r0, 16
movs r5, 0x22
ldrsh r1, [r2, r5]
cmp r0, r1
blt _08109F2E
_08109F5E:
ldrh r0, [r2, 0x1A]
adds r0, 0x1
strh r0, [r2, 0x1A]
lsls r0, 16
asrs r0, 16
cmp r0, 0x60
bne _0810A054
movs r0, 0
strh r0, [r2, 0x1A]
b _0810A000
.pool
_08109F7C:
movs r7, 0x20
ldrsh r1, [r2, r7]
lsls r1, 1
ldrh r0, [r2, 0x1C]
subs r0, r1
strh r0, [r2, 0x1C]
ldrh r0, [r2, 0xA]
adds r0, 0x1
strh r0, [r2, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _08109FB0
movs r0, 0
strh r0, [r2, 0xA]
ldrh r0, [r2, 0xC]
adds r0, 0x1
strh r0, [r2, 0xC]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _08109FAC
strh r3, [r2, 0x1E]
b _08109FB0
_08109FAC:
ldr r0, =0x0000fffe
strh r0, [r2, 0x1E]
_08109FB0:
movs r1, 0
strh r1, [r2, 0xE]
movs r3, 0x22
ldrsh r0, [r2, r3]
cmp r1, r0
bge _08109FF2
ldr r4, =gSprites
adds r3, r2, 0
adds r3, 0x8
_08109FC2:
movs r5, 0xE
ldrsh r0, [r2, r5]
adds r0, 0xE
lsls r0, 1
adds r0, r3, r0
movs r7, 0
ldrsh r0, [r0, r7]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
ldrh r0, [r2, 0x1E]
ldrh r5, [r2, 0x1C]
adds r0, r5
strh r0, [r1, 0x24]
ldrh r0, [r2, 0xE]
adds r0, 0x1
strh r0, [r2, 0xE]
lsls r0, 16
asrs r0, 16
movs r7, 0x22
ldrsh r1, [r2, r7]
cmp r0, r1
blt _08109FC2
_08109FF2:
ldrh r0, [r2, 0x1A]
adds r0, 0x1
strh r0, [r2, 0x1A]
lsls r0, 16
asrs r0, 16
cmp r0, 0x10
bne _0810A054
_0810A000:
ldrh r0, [r2, 0x8]
adds r0, 0x1
strh r0, [r2, 0x8]
b _0810A054
.pool
_0810A010:
movs r1, 0
strh r1, [r2, 0xE]
movs r3, 0x22
ldrsh r0, [r2, r3]
cmp r1, r0
bge _0810A04E
ldr r6, =gSprites
adds r3, r2, 0
adds r3, 0x8
movs r5, 0
_0810A024:
movs r7, 0xE
ldrsh r0, [r2, r7]
adds r0, 0xE
lsls r0, 1
adds r0, r3, r0
movs r7, 0
ldrsh r1, [r0, r7]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r5, [r0, 0x24]
ldrh r0, [r2, 0xE]
adds r0, 0x1
strh r0, [r2, 0xE]
lsls r0, 16
asrs r0, 16
movs r7, 0x22
ldrsh r1, [r2, r7]
cmp r0, r1
blt _0810A024
_0810A04E:
adds r0, r4, 0
bl DestroyAnimVisualTask
_0810A054:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8109E2C
thumb_func_start AnimTask_BlendBackground
AnimTask_BlendBackground: @ 810A060
push {r4,lr}
sub sp, 0x10
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
mov r0, sp
bl sub_80A6B30
mov r0, sp
ldrb r0, [r0, 0x8]
lsls r0, 4
ldr r1, =gBattleAnimArgs
ldrb r2, [r1]
ldrh r3, [r1, 0x2]
movs r1, 0x10
bl BlendPalette
adds r0, r4, 0
bl DestroyAnimVisualTask
add sp, 0x10
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_BlendBackground
thumb_func_start sub_810A094
sub_810A094: @ 810A094
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r7, r0, 24
ldr r1, =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r2, r0, r1
movs r3, 0x8
ldrsh r0, [r2, r3]
mov r9, r1
ldr r4, =gBattleAnimArgs
mov r8, r4
cmp r0, 0
bne _0810A0CA
ldrh r0, [r4]
strh r0, [r2, 0xA]
ldrh r0, [r4, 0x2]
strh r0, [r2, 0xC]
ldrh r0, [r4, 0x4]
strh r0, [r2, 0xE]
ldrh r0, [r4, 0x6]
strh r0, [r2, 0x10]
_0810A0CA:
ldrh r0, [r2, 0x8]
adds r0, 0x1
strh r0, [r2, 0x8]
ldr r1, =gBattlerSpriteIds
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r0, r1
ldrb r6, [r0]
movs r5, 0x10
ldrsh r0, [r2, r5]
cmp r0, 0
bne _0810A100
ldr r4, =gUnknown_08595684
movs r1, 0x8
ldrsh r0, [r2, r1]
b _0810A106
.pool
_0810A100:
ldr r4, =gUnknown_08595694
movs r3, 0x8
ldrsh r0, [r2, r3]
_0810A106:
movs r1, 0xA
bl __modsi3
lsls r0, 16
asrs r0, 16
adds r0, r4
ldrb r5, [r0]
lsls r0, r7, 2
adds r1, r0, r7
lsls r1, 3
add r1, r9
movs r4, 0xE
ldrsh r1, [r1, r4]
mov r12, r0
cmp r1, 0x1
bne _0810A154
ldr r2, =gSprites
lsls r3, r6, 4
adds r0, r3, r6
lsls r0, 2
adds r0, r2
mov r10, r0
mov r0, r8
movs r4, 0x2
ldrsh r1, [r0, r4]
lsls r0, r5, 24
asrs r0, 24
muls r0, r1
cmp r0, 0
bge _0810A144
negs r0, r0
_0810A144:
mov r5, r10
strh r0, [r5, 0x26]
b _0810A16E
.pool
_0810A154:
ldr r3, =gSprites
lsls r4, r6, 4
adds r2, r4, r6
lsls r2, 2
adds r2, r3
lsls r0, r5, 24
asrs r0, 24
mov r5, r8
ldrh r1, [r5, 0x2]
muls r0, r1
strh r0, [r2, 0x24]
adds r2, r3, 0
adds r3, r4, 0
_0810A16E:
mov r1, r12
adds r0, r1, r7
lsls r0, 3
add r0, r9
movs r4, 0x8
ldrsh r1, [r0, r4]
movs r5, 0xA
ldrsh r0, [r0, r5]
cmp r1, r0
bne _0810A194
adds r0, r3, r6
lsls r0, 2
adds r0, r2
movs r1, 0
strh r1, [r0, 0x24]
strh r1, [r0, 0x26]
adds r0, r7, 0
bl DestroyAnimVisualTask
_0810A194:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_810A094
thumb_func_start sub_810A1A8
sub_810A1A8: @ 810A1A8
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810A1D0
ldr r0, =gBattleAnimArgs
ldrh r1, [r4, 0x20]
ldrh r2, [r0]
subs r1, r2
strh r1, [r4, 0x20]
b _0810A1DC
.pool
_0810A1D0:
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
strh r0, [r4, 0x20]
adds r0, r1, 0
_0810A1DC:
ldrh r0, [r0, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
ldr r0, =sub_810A1F8
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810A1A8
thumb_func_start sub_810A1F8
sub_810A1F8: @ 810A1F8
push {lr}
adds r2, r0, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _0810A20E
adds r0, r2, 0
bl DestroyAnimSprite
_0810A20E:
pop {r0}
bx r0
thumb_func_end sub_810A1F8
thumb_func_start sub_810A214
sub_810A214: @ 810A214
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810A23C
ldr r0, =gBattleAnimArgs
ldrh r1, [r4, 0x20]
ldrh r0, [r0]
subs r1, r0
strh r1, [r4, 0x20]
b _0810A246
.pool
_0810A23C:
ldr r0, =gBattleAnimArgs
ldrh r0, [r0]
ldrh r1, [r4, 0x20]
adds r0, r1
strh r0, [r4, 0x20]
_0810A246:
ldr r0, =sub_810A258
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810A214
thumb_func_start sub_810A258
sub_810A258: @ 810A258
push {lr}
adds r2, r0, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _0810A26E
adds r0, r2, 0
bl move_anim_8074EE0
_0810A26E:
pop {r0}
bx r0
thumb_func_end sub_810A258
thumb_func_start sub_810A274
sub_810A274: @ 810A274
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, =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 r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810A2C4
ldr r2, =gBattleAnimArgs
ldrh r0, [r5, 0x20]
ldrh r1, [r2]
subs r0, r1
strh r0, [r5, 0x20]
ldrh r0, [r5, 0x22]
ldrh r1, [r2, 0x2]
subs r0, r1
strh r0, [r5, 0x22]
b _0810A2D8
.pool
_0810A2C4:
ldr r0, =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r5, 0x20]
adds r1, r2
strh r1, [r5, 0x20]
ldrh r1, [r0, 0x2]
ldrh r2, [r5, 0x22]
adds r1, r2
strh r1, [r5, 0x22]
adds r2, r0, 0
_0810A2D8:
movs r0, 0
strh r0, [r5, 0x2E]
ldrh r0, [r2, 0x4]
strh r0, [r5, 0x30]
ldrh r0, [r2, 0x6]
strh r0, [r5, 0x32]
ldrh r0, [r2, 0x8]
strh r0, [r5, 0x34]
ldr r1, =move_anim_8074EE0
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A62EC
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810A274
thumb_func_start sub_810A308
sub_810A308: @ 810A308
push {r4-r7,lr}
adds r5, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0x8
ldrsh r0, [r0, r1]
cmp r0, 0x1
beq _0810A380
cmp r0, 0x1
bgt _0810A324
cmp r0, 0
beq _0810A32E
b _0810A380
.pool
_0810A324:
cmp r0, 0x2
beq _0810A338
cmp r0, 0x3
beq _0810A35C
b _0810A380
_0810A32E:
ldr r0, =gBattleAnimAttacker
b _0810A382
.pool
_0810A338:
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r6, 0x2
eors r0, r6
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
bne _0810A354
ldrb r4, [r4]
b _0810A384
.pool
_0810A354:
ldrb r0, [r4]
adds r4, r6, 0
eors r4, r0
b _0810A384
_0810A35C:
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
movs r4, 0x2
eors r0, r4
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810A380
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
eors r4, r0
b _0810A384
.pool
_0810A380:
ldr r0, =gBattleAnimTarget
_0810A382:
ldrb r4, [r0]
_0810A384:
ldr r0, =gBattleAnimArgs
movs r2, 0xA
ldrsh r0, [r0, r2]
cmp r0, 0
bne _0810A3AC
adds r0, r4, 0
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
adds r0, r4, 0
movs r1, 0x1
b _0810A3BE
.pool
_0810A3AC:
adds r0, r4, 0
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
adds r0, r4, 0
movs r1, 0x3
_0810A3BE:
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
ldr r7, =gSineTable
ldr r6, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
lsls r0, 1
adds r0, r7
movs r2, 0
ldrsh r1, [r0, r2]
movs r2, 0x2
ldrsh r0, [r6, r2]
muls r0, r1
asrs r0, 8
strh r0, [r5, 0x24]
movs r1, 0
ldrsh r0, [r6, r1]
adds r0, 0x40
lsls r0, 1
adds r0, r7
movs r2, 0
ldrsh r1, [r0, r2]
movs r2, 0x2
ldrsh r0, [r6, r2]
muls r0, r1
asrs r0, 8
strh r0, [r5, 0x26]
ldrh r1, [r6, 0xC]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0810A422
adds r0, r4, 0
bl sub_80A8328
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
movs r1, 0x3
ands r0, r1
lsls r0, 2
ldrb r2, [r5, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r5, 0x5]
_0810A422:
ldrb r2, [r5, 0x3]
lsls r2, 26
lsrs r2, 27
movs r0, 0x4
ldrsh r1, [r6, r0]
lsls r0, r1, 1
adds r0, r7
ldrh r0, [r0]
ldr r3, =gOamMatrices
lsls r2, 3
adds r2, r3
adds r1, 0x40
lsls r1, 1
adds r1, r7
ldrh r1, [r1]
strh r1, [r2, 0x6]
strh r1, [r2]
strh r0, [r2, 0x2]
lsls r0, 16
asrs r0, 16
negs r0, r0
strh r0, [r2, 0x4]
ldrh r0, [r6, 0x6]
strh r0, [r5, 0x2E]
ldr r0, =sub_810E2C8
str r0, [r5, 0x1C]
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_810A308
thumb_func_start sub_810A46C
sub_810A46C: @ 810A46C
push {r4-r6,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r5, =gBattleAnimArgs
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
ldr r6, =gBattleAnimTarget
ldrb r0, [r6]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
ldrb r0, [r6]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
adds r0, r4, 0
bl obj_translate_based_on_private_1_2_3_4
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x38]
ldrh r0, [r5, 0xA]
strh r0, [r4, 0x3A]
ldrh r0, [r5, 0x8]
strh r0, [r4, 0x3C]
ldrh r2, [r4, 0x4]
lsls r1, r2, 22
lsrs r1, 22
movs r3, 0xC
ldrsh r0, [r5, r3]
lsls r0, 2
adds r1, r0
ldr r3, =0x000003ff
adds r0, r3, 0
ands r1, r0
ldr r0, =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r4, 0x4]
ldr r1, =sub_810A4F4
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810A46C
thumb_func_start sub_810A4F4
sub_810A4F4: @ 810A4F4
push {r4,lr}
adds r4, r0, 0
bl sub_80A6F3C
lsls r0, 24
cmp r0, 0
bne _0810A55E
movs r1, 0x3C
ldrsh r0, [r4, r1]
movs r2, 0x38
ldrsh r1, [r4, r2]
bl Sin
ldrh r1, [r4, 0x24]
adds r0, r1
strh r0, [r4, 0x24]
movs r2, 0x3C
ldrsh r0, [r4, r2]
movs r2, 0x38
ldrsh r1, [r4, r2]
bl Cos
ldrh r1, [r4, 0x26]
adds r0, r1
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x3A]
ldrh r2, [r4, 0x3C]
adds r0, r2
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x3C]
movs r1, 0x3C
ldrsh r0, [r4, r1]
movs r1, 0x3
bl __modsi3
lsls r0, 16
cmp r0, 0
bne _0810A564
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]
b _0810A564
_0810A55E:
adds r0, r4, 0
bl DestroyAnimSprite
_0810A564:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810A4F4
thumb_func_start sub_810A56C
sub_810A56C: @ 810A56C
push {lr}
adds r3, r0, 0
ldrh r0, [r3, 0x38]
subs r0, 0x1
strh r0, [r3, 0x38]
lsls r0, 16
asrs r0, 16
movs r1, 0x1
negs r1, r1
cmp r0, r1
bne _0810A5A4
movs r0, 0x3E
adds r0, r3
mov r12, r0
ldrb r2, [r0]
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
mov r1, r12
strb r0, [r1]
ldrh r0, [r3, 0x36]
strh r0, [r3, 0x38]
_0810A5A4:
ldrh r0, [r3, 0x34]
subs r1, r0, 0x1
strh r1, [r3, 0x34]
lsls r0, 16
cmp r0, 0
bgt _0810A5B6
adds r0, r3, 0
bl DestroyAnimSprite
_0810A5B6:
pop {r0}
bx r0
thumb_func_end sub_810A56C
thumb_func_start sub_810A5BC
sub_810A5BC: @ 810A5BC
push {r4-r6,lr}
adds r6, r0, 0
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810A5D8
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810A5E0
_0810A5D8:
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x2]
negs r0, r0
strh r0, [r1, 0x2]
_0810A5E0:
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4, 0x2]
adds r0, r1
strh r0, [r6, 0x20]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x4]
adds r0, r1
strh r0, [r6, 0x22]
ldrh r0, [r4]
strh r0, [r6, 0x34]
ldrh r0, [r4, 0x6]
strh r0, [r6, 0x36]
strh r0, [r6, 0x38]
ldr r0, =sub_810A56C
str r0, [r6, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810A5BC
thumb_func_start sub_810A628
sub_810A628: @ 810A628
push {r4-r6,lr}
adds r5, r0, 0
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x6]
strh r0, [r5, 0x2E]
movs r2, 0xE
ldrsh r0, [r1, r2]
movs r1, 0x80
lsls r1, 8
ands r0, r1
cmp r0, 0
beq _0810A64C
ldr r0, =gBattleAnimTarget
b _0810A64E
.pool
_0810A64C:
ldr r0, =gBattleAnimAttacker
_0810A64E:
ldrb r6, [r0]
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810A666
adds r0, r6, 0
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810A66E
_0810A666:
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
_0810A66E:
adds r0, r6, 0
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
ldrh r3, [r4]
adds r0, r3
strh r0, [r5, 0x20]
adds r0, r6, 0
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x2]
adds r0, r1
strh r0, [r5, 0x22]
ldrh r1, [r4, 0xE]
ldr r0, =0x00007fff
ands r0, r1
strh r0, [r5, 0x36]
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x38]
ldrh r0, [r4, 0xA]
strh r0, [r5, 0x3A]
ldrh r0, [r4, 0x8]
strh r0, [r5, 0x3C]
ldrh r2, [r5, 0x4]
lsls r1, r2, 22
lsrs r1, 22
movs r3, 0xC
ldrsh r0, [r4, r3]
lsls r0, 2
adds r1, r0
ldr r3, =0x000003ff
adds r0, r3, 0
ands r1, r0
ldr r0, =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r5, 0x4]
ldr r1, =sub_810A6EC
str r1, [r5, 0x1C]
adds r0, r5, 0
bl _call_via_r1
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810A628
thumb_func_start sub_810A6EC
sub_810A6EC: @ 810A6EC
push {r4,lr}
adds r4, r0, 0
movs r1, 0x3C
ldrsh r0, [r4, r1]
movs r2, 0x38
ldrsh r1, [r4, r2]
bl Sin
strh r0, [r4, 0x24]
movs r1, 0x3C
ldrsh r0, [r4, r1]
movs r2, 0x38
ldrsh r1, [r4, r2]
bl Cos
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x3A]
ldrh r1, [r4, 0x3C]
adds r0, r1
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x3C]
movs r2, 0x3C
ldrsh r0, [r4, r2]
movs r2, 0x36
ldrsh r1, [r4, r2]
bl __modsi3
cmp r0, 0
bne _0810A742
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]
_0810A742:
ldrh r0, [r4, 0x2E]
subs r1, r0, 0x1
strh r1, [r4, 0x2E]
lsls r0, 16
cmp r0, 0
bgt _0810A754
adds r0, r4, 0
bl DestroyAnimSprite
_0810A754:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810A6EC
thumb_func_start sub_810A75C
sub_810A75C: @ 810A75C
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0
bl sub_80A6980
ldrh r2, [r4, 0x4]
lsls r1, r2, 22
lsrs r1, 22
ldr r3, =gBattleAnimArgs
movs r5, 0x6
ldrsh r0, [r3, r5]
lsls r0, 2
adds r1, r0
ldr r5, =0x000003ff
adds r0, r5, 0
ands r1, r0
ldr r0, =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r4, 0x4]
movs r1, 0x6
ldrsh r0, [r3, r1]
cmp r0, 0x1
bne _0810A7A4
ldrb r0, [r4, 0x3]
movs r1, 0x3F
negs r1, r1
ands r1, r0
movs r0, 0x10
b _0810A7B2
.pool
_0810A7A4:
cmp r0, 0x2
bne _0810A7B6
ldrb r0, [r4, 0x3]
movs r1, 0x3F
negs r1, r1
ands r1, r0
movs r0, 0x20
_0810A7B2:
orrs r1, r0
strb r1, [r4, 0x3]
_0810A7B6:
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
ldr r0, =sub_80A64B0
str r0, [r4, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810A75C
thumb_func_start sub_810A7DC
sub_810A7DC: @ 810A7DC
push {r4-r6,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r6, =gBattleAnimTarget
ldrb r0, [r6]
movs r1, 0
bl GetBattlerSpriteCoord
ldr r1, =gTasks
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
adds r4, r1
lsls r0, 24
ldr r5, =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r5]
adds r0, r1
strh r0, [r4, 0x8]
ldrb r0, [r6]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r5, 0x2]
adds r0, r1
strh r0, [r4, 0xA]
ldrh r0, [r5, 0x4]
strh r0, [r4, 0xC]
ldr r0, =sub_810A834
str r0, [r4]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810A7DC
thumb_func_start sub_810A834
sub_810A834: @ 810A834
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
mov r9, r0
movs r5, 0
movs r7, 0
ldr r1, =gTasks
lsls r0, 2
add r0, r9
lsls r0, 3
adds r0, r1
ldrb r2, [r0, 0xC]
str r2, [sp]
ldrh r4, [r0, 0x8]
ldrh r6, [r0, 0xA]
movs r3, 0xC
ldrsh r0, [r0, r3]
mov r10, r1
cmp r0, 0
bne _0810A878
movs r0, 0
mov r8, r0
movs r2, 0x1
movs r1, 0x10
mov r12, r1
b _0810A882
.pool
_0810A878:
movs r2, 0x10
mov r12, r2
movs r3, 0x8
mov r8, r3
movs r2, 0x4
_0810A882:
mov r0, r9
lsls r1, r0, 2
adds r0, r1, r0
lsls r0, 3
add r0, r10
movs r3, 0x1C
ldrsh r0, [r0, r3]
mov r10, r1
cmp r0, 0xA
bhi _0810A978
lsls r0, 2
ldr r1, =_0810A8A4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0810A8A4:
.4byte _0810A8D0
.4byte _0810A978
.4byte _0810A8E4
.4byte _0810A978
.4byte _0810A904
.4byte _0810A978
.4byte _0810A91A
.4byte _0810A978
.4byte _0810A93C
.4byte _0810A978
.4byte _0810A970
_0810A8D0:
ldr r0, =gUnknown_08595828
lsls r1, r4, 16
asrs r1, 16
lsls r2, r6, 16
asrs r2, 16
mov r4, r12
lsls r3, r4, 16
b _0810A952
.pool
_0810A8E4:
mov r0, r12
lsls r3, r0, 17
mov r1, r8
adds r0, r1, r2
lsls r0, 16
lsrs r0, 16
mov r8, r0
ldr r0, =gUnknown_08595828
lsls r1, r4, 16
asrs r1, 16
lsls r2, r6, 16
asrs r2, 16
b _0810A952
.pool
_0810A904:
mov r3, r12
lsls r0, r3, 16
asrs r0, 16
lsls r3, r0, 1
adds r3, r0
lsls r0, r2, 1
add r0, r8
lsls r0, 16
lsrs r0, 16
mov r8, r0
b _0810A946
_0810A91A:
mov r0, r12
lsls r3, r0, 18
lsls r0, r2, 1
adds r0, r2
add r0, r8
lsls r0, 16
lsrs r0, 16
mov r8, r0
ldr r0, =gUnknown_08595828
lsls r1, r4, 16
asrs r1, 16
lsls r2, r6, 16
asrs r2, 16
b _0810A952
.pool
_0810A93C:
mov r1, r12
lsls r0, r1, 16
asrs r0, 16
lsls r3, r0, 2
adds r3, r0
_0810A946:
ldr r0, =gUnknown_08595828
lsls r1, r4, 16
asrs r1, 16
lsls r2, r6, 16
asrs r2, 16
lsls r3, 16
_0810A952:
asrs r3, 16
adds r2, r3
lsls r2, 16
asrs r2, 16
movs r3, 0x2
bl CreateSprite
lsls r0, 24
lsrs r5, r0, 24
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
b _0810A978
.pool
_0810A970:
mov r0, r9
bl DestroyAnimVisualTask
b _0810A9BC
_0810A978:
cmp r7, 0
beq _0810A9AC
ldr r4, =gSprites
lsls r3, r5, 4
adds r3, r5
lsls r3, 2
adds r0, r3, r4
ldrh r5, [r0, 0x4]
lsls r2, r5, 22
lsrs r2, 22
add r2, r8
ldr r6, =0x000003ff
adds r1, r6, 0
ands r2, r1
ldr r1, =0xfffffc00
ands r1, r5
orrs r1, r2
strh r1, [r0, 0x4]
mov r1, sp
ldrh r1, [r1]
strh r1, [r0, 0x2E]
adds r4, 0x1C
adds r3, r4
ldr r1, [r3]
bl _call_via_r1
_0810A9AC:
ldr r0, =gTasks
mov r1, r10
add r1, r9
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x1C]
adds r0, 0x1
strh r0, [r1, 0x1C]
_0810A9BC:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_810A834
thumb_func_start sub_810A9DC
sub_810A9DC: @ 810A9DC
push {lr}
adds r3, r0, 0
movs r1, 0x2E
ldrsh r0, [r3, r1]
cmp r0, 0
bne _0810A9FE
ldrb r1, [r3, 0x1]
movs r2, 0x3F
adds r0, r2, 0
ands r0, r1
movs r1, 0x80
orrs r0, r1
strb r0, [r3, 0x1]
ldrb r0, [r3, 0x3]
ands r2, r0
strb r2, [r3, 0x3]
b _0810AA12
_0810A9FE:
ldrb r2, [r3, 0x1]
movs r1, 0x3F
adds r0, r1, 0
ands r0, r2
strb r0, [r3, 0x1]
ldrb r0, [r3, 0x3]
ands r1, r0
movs r0, 0x40
orrs r1, r0
strb r1, [r3, 0x3]
_0810AA12:
ldrh r0, [r3, 0x30]
adds r0, 0x1
strh r0, [r3, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0xF
bne _0810AA26
adds r0, r3, 0
bl DestroySprite
_0810AA26:
pop {r0}
bx r0
thumb_func_end sub_810A9DC
thumb_func_start sub_810AA2C
sub_810AA2C: @ 810AA2C
push {r4-r7,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r4, 0x20]
adds r1, r2
strh r1, [r4, 0x20]
ldrh r0, [r0, 0x2]
ldrh r3, [r4, 0x22]
adds r0, r3
strh r0, [r4, 0x22]
ldr r0, =gUnknown_08595840
adds r1, 0x20
lsls r1, 16
asrs r1, 16
movs r7, 0x22
ldrsh r2, [r4, r7]
adds r3, r4, 0
adds r3, 0x43
ldrb r3, [r3]
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r3, =gSprites
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r6, r2, r3
ldrh r5, [r6, 0x4]
lsls r1, r5, 22
lsrs r1, 22
adds r1, 0x8
ldr r7, =0x000003ff
adds r0, r7, 0
ands r1, r0
ldr r0, =0xfffffc00
ands r0, r5
orrs r0, r1
strh r0, [r6, 0x4]
ldr r1, =gAnimVisualTaskCount
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
adds r3, 0x1C
adds r2, r3
ldr r0, =sub_810AAB0
str r0, [r2]
str r0, [r4, 0x1C]
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_810AA2C
thumb_func_start sub_810AAB0
sub_810AAB0: @ 810AAB0
push {lr}
adds r3, r0, 0
ldrh r0, [r3, 0x2E]
adds r0, 0x1
strh r0, [r3, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3
bne _0810AAE4
movs r0, 0
strh r0, [r3, 0x2E]
movs r0, 0x3E
adds r0, r3
mov r12, r0
ldrb r2, [r0]
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
mov r1, r12
strb r0, [r1]
_0810AAE4:
ldrh r0, [r3, 0x30]
adds r0, 0x1
strh r0, [r3, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x33
bne _0810AAF8
adds r0, r3, 0
bl DestroyAnimSprite
_0810AAF8:
pop {r0}
bx r0
thumb_func_end sub_810AAB0
thumb_func_start sub_810AAFC
sub_810AAFC: @ 810AAFC
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks
adds r5, r1, r0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810AB28
ldr r4, =gBattleAnimAttacker
b _0810AB2A
.pool
_0810AB28:
ldr r4, =gBattleAnimTarget
_0810AB2A:
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x24]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x26]
ldr r2, =gBattleAnimArgs
ldrh r0, [r2, 0x2]
movs r1, 0
strh r0, [r5, 0x14]
strh r1, [r5, 0x16]
strh r1, [r5, 0x18]
strh r1, [r5, 0x1A]
strh r1, [r5, 0x1C]
ldrh r0, [r2, 0x6]
strh r0, [r5, 0x1E]
strh r1, [r5, 0x20]
ldrh r0, [r2, 0x4]
strh r0, [r5, 0x22]
ldr r0, =sub_810AB78
str r0, [r5]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810AAFC
thumb_func_start sub_810AB78
sub_810AB78: @ 810AB78
push {r4-r7,lr}
lsls r0, 24
lsrs r6, r0, 24
adds r2, r6, 0
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, =gTasks
adds r5, r0, r1
movs r1, 0x14
ldrsh r0, [r5, r1]
cmp r0, 0
beq _0810AC78
ldrh r0, [r5, 0x20]
adds r0, 0x1
movs r7, 0
strh r0, [r5, 0x20]
lsls r0, 16
asrs r0, 16
movs r2, 0x22
ldrsh r1, [r5, r2]
cmp r0, r1
ble _0810AC86
strh r7, [r5, 0x20]
ldr r0, =gUnknown_085958A8
movs r3, 0x24
ldrsh r1, [r5, r3]
movs r3, 0x26
ldrsh r2, [r5, r3]
movs r3, 0x2
bl CreateSprite
lsls r0, 24
lsrs r0, 24
cmp r0, 0x40
beq _0810AC86
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
ldr r0, =gSprites
adds r4, r0
ldr r1, =gUnknown_08595858
movs r2, 0x1A
ldrsh r0, [r5, r2]
lsls r0, 1
adds r0, r1
movs r3, 0
ldrsb r3, [r0, r3]
ldrh r0, [r4, 0x20]
adds r3, r0
strh r3, [r4, 0x20]
movs r2, 0x1A
ldrsh r0, [r5, r2]
lsls r0, 1
adds r1, 0x1
adds r0, r1
movs r2, 0
ldrsb r2, [r0, r2]
ldrh r0, [r4, 0x22]
adds r2, r0
strh r2, [r4, 0x22]
movs r1, 0x18
ldrsh r0, [r5, r1]
lsls r1, r0, 2
adds r1, r0
movs r0, 0x28
subs r0, r1
strh r0, [r4, 0x2E]
strh r3, [r4, 0x30]
ldrh r0, [r5, 0x24]
strh r0, [r4, 0x32]
strh r2, [r4, 0x34]
ldrh r0, [r5, 0x26]
strh r0, [r4, 0x36]
strh r6, [r4, 0x38]
adds r0, r4, 0
bl obj_translate_based_on_private_1_2_3_4
ldr r1, =sub_810ACC0
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
ldrh r0, [r5, 0x1A]
adds r0, 0x1
strh r0, [r5, 0x1A]
lsls r0, 16
asrs r0, 16
cmp r0, 0xF
ble _0810AC30
strh r7, [r5, 0x1A]
_0810AC30:
ldrh r0, [r5, 0x1C]
adds r0, 0x1
strh r0, [r5, 0x1C]
lsls r0, 16
asrs r0, 16
movs r2, 0x1E
ldrsh r1, [r5, r2]
cmp r0, r1
blt _0810AC52
strh r7, [r5, 0x1C]
ldrh r1, [r5, 0x18]
movs r3, 0x18
ldrsh r0, [r5, r3]
cmp r0, 0x5
bgt _0810AC52
adds r0, r1, 0x1
strh r0, [r5, 0x18]
_0810AC52:
ldrh r0, [r5, 0x16]
adds r0, 0x1
strh r0, [r5, 0x16]
ldrh r0, [r5, 0x14]
subs r0, 0x1
strh r0, [r5, 0x14]
b _0810AC86
.pool
_0810AC78:
movs r1, 0x16
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0810AC86
adds r0, r2, 0
bl DestroyAnimVisualTask
_0810AC86:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_810AB78
thumb_func_start sub_810AC8C
sub_810AC8C: @ 810AC8C
push {r4,lr}
adds r4, r0, 0
bl sub_80A6F3C
lsls r0, 24
cmp r0, 0
beq _0810ACB4
ldr r2, =gTasks
movs r0, 0x38
ldrsh r1, [r4, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldrh r1, [r0, 0x16]
subs r1, 0x1
strh r1, [r0, 0x16]
adds r0, r4, 0
bl DestroySprite
_0810ACB4:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810AC8C
thumb_func_start sub_810ACC0
sub_810ACC0: @ 810ACC0
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
bl StartSpriteAnim
ldr r0, =sub_810AC8C
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810ACC0
thumb_func_start sub_810ACD8
sub_810ACD8: @ 810ACD8
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810ACF4
ldr r4, =gBattleAnimAttacker
b _0810ACF6
.pool
_0810ACF4:
ldr r4, =gBattleAnimTarget
_0810ACF6:
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, =move_anim_8074EE0
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67BC
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810ACD8
thumb_func_start sub_810AD30
sub_810AD30: @ 810AD30
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810AD4C
ldr r4, =gBattleAnimAttacker
b _0810AD4E
.pool
_0810AD4C:
ldr r4, =gBattleAnimTarget
_0810AD4E:
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, =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r5, 0x24]
ldrh r0, [r1, 0x4]
strh r0, [r5, 0x26]
ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810AD30
thumb_func_start sub_810AD98
sub_810AD98: @ 810AD98
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x1
bl StartSpriteAffineAnim
ldr r4, =gBattleAnimAttacker
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]
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x3A]
movs r0, 0x10
strh r0, [r5, 0x3C]
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0810ADE6
movs r1, 0x3C
ldrsh r0, [r5, r1]
negs r0, r0
strh r0, [r5, 0x3C]
_0810ADE6:
ldr r0, =sub_810ADF8
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810AD98
thumb_func_start sub_810ADF8
sub_810ADF8: @ 810ADF8
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0810AE0A
cmp r0, 0x1
beq _0810AE20
b _0810AE50
_0810AE0A:
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x28
ble _0810AE50
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
b _0810AE50
_0810AE20:
ldrh r2, [r4, 0x3C]
ldrh r1, [r4, 0x20]
adds r0, r2, r1
strh r0, [r4, 0x20]
ldr r3, =gSprites
movs r0, 0x3A
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r1, [r0, 0x24]
adds r2, r1
strh r2, [r0, 0x24]
ldrh r0, [r4, 0x20]
adds r0, 0x50
lsls r0, 16
movs r1, 0xC8
lsls r1, 17
cmp r0, r1
bls _0810AE50
adds r0, r4, 0
bl move_anim_8074EE0
_0810AE50:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810ADF8
thumb_func_start sub_810AE5C
sub_810AE5C: @ 810AE5C
push {r4-r6,lr}
lsls r0, 24
lsrs r3, r0, 24
lsls r0, r3, 2
adds r0, r3
lsls r0, 3
ldr r1, =gTasks
adds r5, r0, r1
movs r1, 0x8
ldrsh r0, [r5, r1]
cmp r0, 0x1
beq _0810AEF0
cmp r0, 0x1
bgt _0810AE84
cmp r0, 0
beq _0810AE90
b _0810AFC0
.pool
_0810AE84:
cmp r0, 0x2
beq _0810AF4C
cmp r0, 0x3
bne _0810AE8E
b _0810AFA0
_0810AE8E:
b _0810AFC0
_0810AE90:
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
movs r6, 0
strh r0, [r5, 0x26]
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x24]
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810AECC
ldr r0, =0x0000ffe0
strh r0, [r5, 0x24]
movs r0, 0x2
b _0810AED2
.pool
_0810AECC:
movs r0, 0x20
strh r0, [r5, 0x24]
ldr r0, =0x0000fffe
_0810AED2:
strh r0, [r5, 0x22]
ldr r2, =gSprites
movs r0, 0x26
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r5, 0x24]
strh r1, [r0, 0x24]
b _0810AF92
.pool
_0810AEF0:
ldrh r0, [r5, 0xA]
adds r0, 0x1
strh r0, [r5, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _0810AFC0
movs r0, 0
strh r0, [r5, 0xA]
ldr r4, =gSprites
movs r1, 0x26
ldrsh r0, [r5, r1]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r4
adds r2, 0x3E
ldrb r3, [r2]
lsls r0, r3, 29
lsrs r0, 31
movs r1, 0x1
eors r1, r0
lsls r1, 2
movs r0, 0x5
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2]
ldrh r1, [r5, 0x24]
movs r2, 0x24
ldrsh r0, [r5, r2]
cmp r0, 0
beq _0810AF92
ldrh r2, [r5, 0x22]
adds r2, r1, r2
strh r2, [r5, 0x24]
movs r0, 0x26
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
strh r2, [r0, 0x24]
b _0810AFC0
.pool
_0810AF4C:
ldrh r0, [r5, 0xA]
adds r0, 0x1
strh r0, [r5, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _0810AFC0
movs r0, 0
strh r0, [r5, 0xA]
ldr r1, =gSprites
movs r2, 0x26
ldrsh r0, [r5, r2]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r1
adds r2, 0x3E
ldrb r3, [r2]
lsls r0, r3, 29
lsrs r0, 31
movs r1, 0x1
eors r1, r0
lsls r1, 2
movs r0, 0x5
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2]
ldrh r0, [r5, 0xC]
adds r0, 0x1
strh r0, [r5, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0x8
bne _0810AFC0
_0810AF92:
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
b _0810AFC0
.pool
_0810AFA0:
ldr r2, =gSprites
movs r0, 0x26
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
adds r0, r3, 0
bl DestroyAnimVisualTask
_0810AFC0:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810AE5C
thumb_func_start sub_810AFCC
sub_810AFCC: @ 810AFCC
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, =gTasks
adds r5, r0, r1
movs r1, 0x8
ldrsh r0, [r5, r1]
cmp r0, 0x1
bne _0810AFE6
b _0810B10C
_0810AFE6:
cmp r0, 0x1
bgt _0810AFF4
cmp r0, 0
beq _0810AFFC
b _0810B14E
.pool
_0810AFF4:
cmp r0, 0x2
bne _0810AFFA
b _0810B140
_0810AFFA:
b _0810B14E
_0810AFFC:
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
movs r2, 0x1
negs r2, r2
adds r1, r2, 0
cmp r0, 0
bne _0810B012
movs r1, 0x1
_0810B012:
movs r6, 0
strh r1, [r5, 0xA]
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r2, [r0, r1]
adds r3, r0, 0
cmp r2, 0
beq _0810B048
cmp r2, 0x4
beq _0810B070
ldrh r1, [r3]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0810B0A8
movs r0, 0x80
lsls r0, 1
strh r0, [r5, 0xE]
ldr r0, =0x0000fff0
b _0810B0B0
.pool
_0810B048:
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0xE]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x12]
movs r2, 0xA
ldrsh r0, [r5, r2]
lsls r0, 7
adds r0, 0x78
strh r0, [r5, 0x10]
b _0810B0E6
_0810B070:
movs r0, 0xA
ldrsh r1, [r5, r0]
lsls r1, 7
movs r0, 0x78
subs r0, r1
strh r0, [r5, 0xE]
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x12]
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r2, 0xA
ldrsh r1, [r5, r2]
lsls r1, 5
subs r0, r1
strh r0, [r5, 0x10]
b _0810B0E6
.pool
_0810B0A8:
ldr r0, =0x0000fff0
strh r0, [r5, 0xE]
movs r0, 0x80
lsls r0, 1
_0810B0B0:
strh r0, [r5, 0x10]
movs r1, 0xA
ldrsh r0, [r5, r1]
cmp r0, 0x1
bne _0810B0D0
movs r2, 0
ldrsh r0, [r3, r2]
lsls r1, r0, 2
adds r1, r0
lsls r1, 1
movs r0, 0x50
subs r0, r1
strh r0, [r5, 0x12]
b _0810B0E6
.pool
_0810B0D0:
movs r0, 0
ldrsh r1, [r3, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 1
adds r0, 0x28
strh r0, [r5, 0x12]
ldrh r1, [r5, 0xE]
ldrh r0, [r5, 0x10]
strh r0, [r5, 0xE]
strh r1, [r5, 0x10]
_0810B0E6:
movs r2, 0xE
ldrsh r1, [r5, r2]
movs r2, 0x10
ldrsh r0, [r5, r2]
cmp r1, r0
bge _0810B0FC
movs r1, 0
movs r0, 0x1
strh r0, [r5, 0xA]
strh r1, [r5, 0x14]
b _0810B138
_0810B0FC:
ldr r0, =0x0000ffff
strh r0, [r5, 0xA]
movs r0, 0x3
strh r0, [r5, 0x14]
b _0810B138
.pool
_0810B10C:
ldrh r0, [r5, 0xC]
adds r0, 0x1
strh r0, [r5, 0xC]
lsls r0, 16
cmp r0, 0
ble _0810B14E
movs r0, 0
strh r0, [r5, 0xC]
adds r0, r5, 0
adds r1, r4, 0
bl sub_810B154
lsls r0, 24
cmp r0, 0
bne _0810B138
adds r0, r5, 0
adds r1, r4, 0
bl sub_810B154
lsls r0, 24
cmp r0, 0
beq _0810B14E
_0810B138:
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
b _0810B14E
_0810B140:
movs r1, 0x16
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0810B14E
adds r0, r4, 0
bl DestroyAnimVisualTask
_0810B14E:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_810AFCC
thumb_func_start sub_810B154
sub_810B154: @ 810B154
push {r4,r5,lr}
adds r4, r0, 0
lsls r1, 24
lsrs r5, r1, 24
ldr r0, =gUnknown_08595A00
movs r2, 0xE
ldrsh r1, [r4, r2]
movs r3, 0x12
ldrsh r2, [r4, r3]
movs r3, 0x23
bl CreateSprite
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x40
beq _0810B18A
ldr r1, =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
strh r5, [r0, 0x3A]
movs r1, 0x7
strh r1, [r0, 0x3C]
ldrh r0, [r4, 0x16]
adds r0, 0x1
strh r0, [r4, 0x16]
_0810B18A:
ldrh r1, [r4, 0xA]
ldrh r5, [r4, 0x14]
adds r0, r1, r5
strh r0, [r4, 0x14]
lsls r0, 16
cmp r0, 0
bge _0810B19C
movs r0, 0x3
strh r0, [r4, 0x14]
_0810B19C:
movs r2, 0x14
ldrsh r0, [r4, r2]
cmp r0, 0x3
ble _0810B1A8
movs r0, 0
strh r0, [r4, 0x14]
_0810B1A8:
movs r3, 0xA
ldrsh r0, [r4, r3]
lsls r0, 4
ldrh r5, [r4, 0xE]
adds r2, r0, r5
strh r2, [r4, 0xE]
lsls r0, r1, 16
asrs r3, r0, 16
cmp r3, 0x1
bne _0810B1C8
lsls r0, r2, 16
asrs r0, 16
movs r5, 0x10
ldrsh r1, [r4, r5]
cmp r0, r1
bge _0810B1DC
_0810B1C8:
movs r0, 0x1
negs r0, r0
cmp r3, r0
bne _0810B1E8
lsls r0, r2, 16
asrs r0, 16
movs r2, 0x10
ldrsh r1, [r4, r2]
cmp r0, r1
bgt _0810B1E8
_0810B1DC:
movs r0, 0x1
b _0810B1EA
.pool
_0810B1E8:
movs r0, 0
_0810B1EA:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_810B154
thumb_func_start sub_810B1F0
sub_810B1F0: @ 810B1F0
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, 0xC
ble _0810B230
ldr r3, =gTasks
movs r0, 0x3C
ldrsh r1, [r4, r0]
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]
ldrb r0, [r4, 0x3]
lsls r0, 26
lsrs r0, 27
bl FreeOamMatrix
adds r0, r4, 0
bl DestroySprite
_0810B230:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810B1F0
thumb_func_start sub_810B23C
sub_810B23C: @ 810B23C
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x2E
ldrsh r0, [r5, r1]
cmp r0, 0
beq _0810B24E
cmp r0, 0x1
beq _0810B280
b _0810B294
_0810B24E:
ldr r4, =gBattleAnimAttacker
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]
adds r0, r5, 0
movs r1, 0x2
bl StartSpriteAffineAnim
ldrh r0, [r5, 0x2E]
adds r0, 0x1
strh r0, [r5, 0x2E]
b _0810B294
.pool
_0810B280:
adds r0, r5, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _0810B294
adds r0, r5, 0
bl move_anim_8074EE0
_0810B294:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_810B23C
thumb_func_start sub_810B29C
sub_810B29C: @ 810B29C
push {r4,r5,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r5, r0, r1
movs r1, 0x8
ldrsh r0, [r5, r1]
cmp r0, 0x4
bls _0810B2B6
b _0810B428
_0810B2B6:
lsls r0, 2
ldr r1, =_0810B2C8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0810B2C8:
.4byte _0810B2DC
.4byte _0810B36C
.4byte _0810B3A8
.4byte _0810B404
.4byte _0810B414
_0810B2DC:
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x14]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x16]
movs r0, 0x4
strh r0, [r5, 0x18]
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x1C]
movs r2, 0x1C
ldrsh r0, [r5, r2]
movs r2, 0x14
ldrsh r1, [r5, r2]
subs r0, r1
movs r1, 0x5
bl __divsi3
strh r0, [r5, 0x1A]
movs r0, 0x7
strh r0, [r5, 0x10]
ldr r0, =0x0000ffff
strh r0, [r5, 0x12]
movs r0, 0xC
strh r0, [r5, 0x1E]
subs r0, 0x4C
bl BattleAnimAdjustPanning
lsls r0, 24
asrs r0, 24
strh r0, [r5, 0x20]
movs r0, 0x3F
bl BattleAnimAdjustPanning
lsls r0, 24
asrs r0, 24
strh r0, [r5, 0x22]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x24]
movs r1, 0x22
ldrsh r0, [r5, r1]
movs r2, 0x20
ldrsh r1, [r5, r2]
subs r0, r1
movs r1, 0x3
bl __divsi3
strh r0, [r5, 0x26]
ldrh r0, [r5, 0x8]
adds r0, 0x1
b _0810B426
.pool
_0810B36C:
ldrh r0, [r5, 0xA]
adds r0, 0x1
strh r0, [r5, 0xA]
lsls r0, 16
cmp r0, 0
ble _0810B39C
movs r0, 0
strh r0, [r5, 0xA]
adds r0, r5, 0
adds r1, r2, 0
bl sub_810B430
lsls r0, 24
cmp r0, 0
beq _0810B39C
movs r1, 0xC
ldrsh r0, [r5, r1]
cmp r0, 0x5
bne _0810B396
movs r0, 0x3
b _0810B39A
_0810B396:
ldrh r0, [r5, 0x8]
adds r0, 0x1
_0810B39A:
strh r0, [r5, 0x8]
_0810B39C:
ldrh r1, [r5, 0x1E]
movs r2, 0x1E
ldrsh r0, [r5, r2]
cmp r0, 0
beq _0810B428
b _0810B41E
_0810B3A8:
ldrh r1, [r5, 0x1E]
movs r2, 0x1E
ldrsh r0, [r5, r2]
cmp r0, 0
beq _0810B3B6
subs r0, r1, 0x1
strh r0, [r5, 0x1E]
_0810B3B6:
ldrh r0, [r5, 0xA]
adds r0, 0x1
movs r3, 0
strh r0, [r5, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
ble _0810B428
strh r3, [r5, 0xA]
ldrh r1, [r5, 0xC]
movs r2, 0x1
adds r0, r2, 0
ands r0, r1
cmp r0, 0
beq _0810B3E2
movs r0, 0x4
strh r0, [r5, 0x16]
movs r0, 0x44
strh r0, [r5, 0x18]
strh r3, [r5, 0x10]
strh r2, [r5, 0x12]
b _0810B3F2
_0810B3E2:
movs r0, 0x44
strh r0, [r5, 0x16]
movs r0, 0x4
strh r0, [r5, 0x18]
movs r0, 0x7
strh r0, [r5, 0x10]
ldr r0, =0x0000ffff
strh r0, [r5, 0x12]
_0810B3F2:
movs r1, 0x1E
ldrsh r0, [r5, r1]
cmp r0, 0
beq _0810B424
movs r0, 0x4
b _0810B426
.pool
_0810B404:
movs r1, 0xE
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0810B428
adds r0, r2, 0
bl DestroyAnimVisualTask
b _0810B428
_0810B414:
ldrh r1, [r5, 0x1E]
movs r2, 0x1E
ldrsh r0, [r5, r2]
cmp r0, 0
beq _0810B424
_0810B41E:
subs r0, r1, 0x1
strh r0, [r5, 0x1E]
b _0810B428
_0810B424:
movs r0, 0x1
_0810B426:
strh r0, [r5, 0x8]
_0810B428:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_810B29C
thumb_func_start sub_810B430
sub_810B430: @ 810B430
push {r4-r6,lr}
adds r4, r0, 0
lsls r1, 24
lsrs r5, r1, 24
ldr r0, =gUnknown_08595A30
movs r2, 0x14
ldrsh r1, [r4, r2]
movs r3, 0x16
ldrsh r2, [r4, r3]
movs r3, 0x23
bl CreateSprite
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x40
beq _0810B49C
ldr r1, =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r3, r0, r1
ldrh r2, [r3, 0x4]
lsls r1, r2, 22
lsrs r1, 22
ldrh r6, [r4, 0x10]
adds r1, r6
ldr r6, =0x000003ff
adds r0, r6, 0
ands r1, r0
ldr r0, =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r3, 0x4]
ldrh r0, [r4, 0x12]
ldrh r1, [r4, 0x10]
adds r0, r1
strh r0, [r4, 0x10]
lsls r0, 16
cmp r0, 0
bge _0810B484
movs r0, 0x7
strh r0, [r4, 0x10]
_0810B484:
movs r2, 0x10
ldrsh r0, [r4, r2]
cmp r0, 0x7
ble _0810B490
movs r0, 0
strh r0, [r4, 0x10]
_0810B490:
strh r5, [r3, 0x3A]
movs r0, 0x3
strh r0, [r3, 0x3C]
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
_0810B49C:
movs r3, 0x10
ldrsh r0, [r4, r3]
cmp r0, 0
bne _0810B4BE
movs r5, 0x12
ldrsh r0, [r4, r5]
cmp r0, 0
ble _0810B4BE
ldrh r1, [r4, 0x26]
ldrh r6, [r4, 0x24]
adds r1, r6
strh r1, [r4, 0x24]
lsls r1, 24
asrs r1, 24
movs r0, 0x76
bl PlaySE12WithPanning
_0810B4BE:
movs r0, 0x12
ldrsh r3, [r4, r0]
ldrh r2, [r4, 0x16]
cmp r3, 0
bge _0810B4D4
lsls r0, r2, 16
asrs r0, 16
movs r5, 0x18
ldrsh r1, [r4, r5]
cmp r0, r1
ble _0810B4E4
_0810B4D4:
cmp r3, 0
ble _0810B508
lsls r0, r2, 16
asrs r0, 16
movs r6, 0x18
ldrsh r1, [r4, r6]
cmp r0, r1
blt _0810B508
_0810B4E4:
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
ldrh r0, [r4, 0x1A]
ldrh r1, [r4, 0x14]
adds r0, r1
strh r0, [r4, 0x14]
movs r0, 0x1
b _0810B514
.pool
_0810B508:
movs r3, 0x12
ldrsh r0, [r4, r3]
lsls r0, 3
adds r0, r2, r0
strh r0, [r4, 0x16]
movs r0, 0
_0810B514:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_810B430
thumb_func_start sub_810B51C
sub_810B51C: @ 810B51C
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, 0xC
ble _0810B552
ldr r3, =gTasks
movs r0, 0x3C
ldrsh r1, [r4, r0]
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 DestroySprite
_0810B552:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810B51C
thumb_func_start sub_810B55C
sub_810B55C: @ 810B55C
push {r4,r5,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r5, r0, r1
movs r1, 0x8
ldrsh r0, [r5, r1]
cmp r0, 0x1
beq _0810B5D8
cmp r0, 0x1
bgt _0810B584
cmp r0, 0
beq _0810B58A
b _0810B60E
.pool
_0810B584:
cmp r0, 0x2
beq _0810B600
b _0810B60E
_0810B58A:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, 0x20
strh r0, [r5, 0x26]
strh r0, [r5, 0x24]
cmp r0, 0x10
ble _0810B5B4
adds r2, r0, 0
_0810B5A4:
adds r1, r2, 0
subs r1, 0x20
adds r2, r1, 0
lsls r0, r1, 16
asrs r0, 16
cmp r0, 0x10
bgt _0810B5A4
strh r1, [r5, 0x24]
_0810B5B4:
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
ldrb r0, [r4]
bl sub_80A82E4
lsls r0, 24
lsrs r0, 24
subs r0, 0x2
strh r0, [r5, 0x20]
b _0810B5F8
.pool
_0810B5D8:
ldrh r0, [r5, 0xA]
adds r0, 0x1
strh r0, [r5, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _0810B60E
movs r0, 0
strh r0, [r5, 0xA]
adds r0, r5, 0
adds r1, r2, 0
bl sub_810B614
lsls r0, 24
cmp r0, 0
beq _0810B60E
_0810B5F8:
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
b _0810B60E
_0810B600:
movs r1, 0x1C
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0810B60E
adds r0, r2, 0
bl DestroyAnimVisualTask
_0810B60E:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_810B55C
thumb_func_start sub_810B614
sub_810B614: @ 810B614
push {r4,r5,lr}
adds r4, r0, 0
lsls r1, 24
lsrs r5, r1, 24
ldr r0, =gUnknown_085956C0
movs r2, 0x22
ldrsh r1, [r4, r2]
movs r3, 0x24
ldrsh r2, [r4, r3]
ldrh r3, [r4, 0x20]
lsls r3, 24
lsrs r3, 24
bl CreateSprite
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x40
beq _0810B658
ldr r3, =gSprites
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r3, 0
adds r1, 0x1C
adds r1, r0, r1
ldr r2, =sub_810B684
str r2, [r1]
adds r0, r3
strh r5, [r0, 0x3A]
movs r1, 0xA
strh r1, [r0, 0x3C]
ldrh r0, [r4, 0x1C]
adds r0, 0x1
strh r0, [r4, 0x1C]
_0810B658:
ldrh r2, [r4, 0x24]
movs r0, 0x24
ldrsh r1, [r4, r0]
movs r3, 0x26
ldrsh r0, [r4, r3]
cmp r1, r0
bge _0810B67C
adds r0, r2, 0
adds r0, 0x20
strh r0, [r4, 0x24]
movs r0, 0
b _0810B67E
.pool
_0810B67C:
movs r0, 0x1
_0810B67E:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_810B614
thumb_func_start sub_810B684
sub_810B684: @ 810B684
push {r4,lr}
adds r4, r0, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _0810B6B8
ldr r3, =gTasks
movs r0, 0x3C
ldrsh r1, [r4, r0]
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 DestroySprite
_0810B6B8:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810B684
thumb_func_start sub_810B6C4
sub_810B6C4: @ 810B6C4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
adds r5, r0, 0
ldrh r2, [r5, 0x4]
lsls r1, r2, 22
lsrs r1, 22
adds r1, 0x7
ldr r3, =0x000003ff
adds r0, r3, 0
ands r1, r0
ldr r0, =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r5, 0x4]
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
mov r9, r0
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r3, r0, 24
ldrb r0, [r4]
movs r1, 0x3
str r3, [sp]
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x8]
strh r0, [r5, 0x2E]
ldrh r0, [r1]
ldr r3, [sp]
adds r0, r3
strh r0, [r5, 0x30]
ldrh r0, [r1, 0x4]
mov r4, r9
adds r0, r4, r0
strh r0, [r5, 0x32]
ldrh r0, [r1, 0x2]
adds r0, r6
strh r0, [r5, 0x34]
ldrh r0, [r1, 0x6]
mov r7, r8
adds r0, r7, r0
strh r0, [r5, 0x36]
adds r0, r5, 0
bl sub_80A64EC
adds r4, 0x20
movs r0, 0x98
lsls r0, 1
mov r12, r0
ldr r3, [sp]
cmp r4, r12
bhi _0810B79E
adds r0, r7, 0
adds r0, 0x20
ldrh r1, [r5, 0x30]
ldrh r2, [r5, 0x32]
cmp r0, 0xE0
bhi _0810B79E
adds r4, r1, 0
mov r10, r12
_0810B76A:
mov r7, r9
lsls r1, r7, 16
asrs r1, 16
adds r1, r4
lsls r1, 16
mov r7, r8
lsls r0, r7, 16
asrs r0, 16
adds r0, r2
lsls r0, 16
lsrs r0, 16
mov r8, r0
lsrs r0, r1, 16
mov r9, r0
movs r7, 0x80
lsls r7, 14
adds r1, r7
lsrs r1, 16
cmp r1, r10
bhi _0810B79E
mov r1, r8
lsls r0, r1, 16
adds r0, r7
lsrs r0, 16
cmp r0, 0xE0
bls _0810B76A
_0810B79E:
ldrh r0, [r5, 0x30]
negs r7, r0
strh r7, [r5, 0x30]
ldrh r0, [r5, 0x32]
negs r4, r0
strh r4, [r5, 0x32]
lsls r0, r3, 16
movs r1, 0x80
lsls r1, 14
adds r0, r1
lsrs r0, 16
movs r2, 0x98
lsls r2, 1
mov r12, r2
ldr r1, =gBattleAnimArgs
mov r10, r1
cmp r0, r12
bhi _0810B80A
lsls r1, r6, 16
movs r2, 0x80
lsls r2, 14
adds r0, r1, r2
b _0810B802
.pool
_0810B7E0:
lsls r1, r3, 16
asrs r1, 16
adds r1, r7
lsls r1, 16
asrs r0, r2, 16
adds r0, r4
lsls r0, 16
lsrs r6, r0, 16
lsrs r3, r1, 16
movs r0, 0x80
lsls r0, 14
adds r1, r0
lsrs r1, 16
cmp r1, r12
bhi _0810B80A
lsls r1, r6, 16
adds r0, r1, r0
_0810B802:
lsrs r0, 16
adds r2, r1, 0
cmp r0, 0xE0
bls _0810B7E0
_0810B80A:
strh r3, [r5, 0x20]
strh r6, [r5, 0x22]
mov r1, r10
ldrh r0, [r1, 0x8]
strh r0, [r5, 0x2E]
strh r3, [r5, 0x30]
mov r2, r9
strh r2, [r5, 0x32]
strh r6, [r5, 0x34]
mov r3, r8
strh r3, [r5, 0x36]
adds r0, r5, 0
bl sub_80A64EC
mov r7, r10
ldrh r0, [r7, 0xA]
strh r0, [r5, 0x34]
ldrh r0, [r7, 0xC]
strh r0, [r5, 0x36]
ldr r0, =sub_810B848
str r0, [r5, 0x1C]
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_810B6C4
thumb_func_start sub_810B848
sub_810B848: @ 810B848
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0810B8A0
ldrh r1, [r4, 0x30]
ldrh r2, [r4, 0x38]
adds r1, r2
strh r1, [r4, 0x38]
ldrh r0, [r4, 0x32]
ldrh r2, [r4, 0x3A]
adds r0, r2
strh r0, [r4, 0x3A]
strh r1, [r4, 0x24]
strh r0, [r4, 0x26]
movs r1, 0x3C
ldrsh r0, [r4, r1]
movs r2, 0x34
ldrsh r1, [r4, r2]
bl Sin
ldrh r1, [r4, 0x24]
adds r0, r1
strh r0, [r4, 0x24]
movs r2, 0x3C
ldrsh r0, [r4, r2]
movs r2, 0x34
ldrsh r1, [r4, r2]
bl Sin
ldrh r1, [r4, 0x26]
adds r0, r1
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x36]
ldrh r2, [r4, 0x3C]
adds r0, r2
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x3C]
ldrh r0, [r4, 0x2E]
subs r0, 0x1
strh r0, [r4, 0x2E]
b _0810B8A6
_0810B8A0:
adds r0, r4, 0
bl DestroyAnimSprite
_0810B8A6:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810B848
thumb_func_start sub_810B8AC
sub_810B8AC: @ 810B8AC
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x2E]
movs r0, 0x3C
strh r0, [r4, 0x30]
movs r0, 0x9
strh r0, [r4, 0x32]
movs r0, 0x1E
strh r0, [r4, 0x34]
movs r0, 0xFE
lsls r0, 8
strh r0, [r4, 0x36]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r1, =sub_80A634C
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810B8AC
thumb_func_start sub_810B8EC
sub_810B8EC: @ 810B8EC
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810B92C
ldr r0, =gBattleAnimArgs
ldrh r1, [r4, 0x32]
ldrh r0, [r0, 0x4]
subs r1, r0
strh r1, [r4, 0x32]
b _0810B936
.pool
_0810B92C:
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x4]
ldrh r1, [r4, 0x32]
adds r0, r1
strh r0, [r4, 0x32]
_0810B936:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
ldr r1, =gBattleAnimArgs
lsrs r0, 24
ldrh r2, [r1, 0x6]
adds r0, r2
strh r0, [r4, 0x36]
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x2E]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A6EEC
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810B8EC
thumb_func_start sub_810B974
sub_810B974: @ 810B974
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0810B990
adds r0, r4, 0
movs r1, 0x1
bl sub_80A6980
b _0810B9C6
.pool
_0810B990:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
adds r3, r4, 0
adds r3, 0x22
movs r1, 0x1
bl sub_80A8924
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810B9B6
ldrh r0, [r5]
negs r0, r0
strh r0, [r5]
_0810B9B6:
ldrh r0, [r5]
ldrh r1, [r4, 0x20]
adds r0, r1
strh r0, [r4, 0x20]
ldrh r0, [r5, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
_0810B9C6:
ldr r1, =sub_810B9E8
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67BC
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810B974
thumb_func_start sub_810B9E8
sub_810B9E8: @ 810B9E8
push {lr}
adds r3, r0, 0
movs r0, 0x3E
adds r0, r3
mov r12, r0
ldrb r2, [r0]
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
mov r1, r12
strb r0, [r1]
ldrh r0, [r3, 0x2E]
adds r0, 0x1
strh r0, [r3, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x14
bne _0810BA1E
adds r0, r3, 0
bl move_anim_8074EE0
_0810BA1E:
pop {r0}
bx r0
thumb_func_end sub_810B9E8
thumb_func_start sub_810BA24
sub_810BA24: @ 810BA24
push {r4-r7,lr}
sub sp, 0x10
adds r5, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r6, =gBattleAnimArgs
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
ldrh r0, [r5, 0x22]
strh r0, [r5, 0x34]
movs r1, 0xA
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0810BA74
ldr r4, =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
ldrh r6, [r6, 0x6]
adds r0, r6
strh r0, [r5, 0x36]
b _0810BA86
.pool
_0810BA74:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
adds r3, r5, 0
adds r3, 0x36
movs r1, 0x1
bl sub_80A8924
_0810BA86:
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810BAAC
ldr r0, =gBattleAnimArgs
ldrh r1, [r5, 0x32]
ldrh r0, [r0, 0x4]
subs r1, r0
strh r1, [r5, 0x32]
b _0810BAB6
.pool
_0810BAAC:
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x4]
ldrh r2, [r5, 0x32]
adds r0, r2
strh r0, [r5, 0x32]
_0810BAB6:
adds r7, r5, 0
adds r7, 0x2E
adds r2, r7, 0
mov r1, sp
movs r4, 0x7
_0810BAC0:
ldrh r0, [r2]
strh r0, [r1]
adds r2, 0x2
adds r1, 0x2
subs r4, 0x1
cmp r4, 0
bge _0810BAC0
adds r0, r5, 0
bl sub_80A7160
ldrh r0, [r5, 0x30]
movs r1, 0x1
eors r0, r1
strh r0, [r5, 0x30]
ldrh r0, [r5, 0x32]
eors r0, r1
strh r0, [r5, 0x32]
_0810BAE2:
movs r0, 0x1
strh r0, [r5, 0x2E]
adds r0, r5, 0
bl sub_80A70E8
movs r0, 0x20
ldrsh r1, [r5, r0]
movs r2, 0x24
ldrsh r0, [r5, r2]
adds r1, r0
adds r1, 0x10
movs r0, 0x88
lsls r0, 1
cmp r1, r0
bhi _0810BB16
movs r0, 0x22
ldrsh r1, [r5, r0]
movs r2, 0x26
ldrsh r0, [r5, r2]
adds r1, r0
cmp r1, 0xA0
bgt _0810BB16
movs r0, 0x10
negs r0, r0
cmp r1, r0
bge _0810BAE2
_0810BB16:
ldrh r0, [r5, 0x24]
ldrh r1, [r5, 0x20]
adds r0, r1
movs r1, 0
strh r0, [r5, 0x20]
ldrh r0, [r5, 0x26]
ldrh r2, [r5, 0x22]
adds r0, r2
strh r0, [r5, 0x22]
strh r1, [r5, 0x26]
strh r1, [r5, 0x24]
ldr r6, =sub_80A718C
ldr r1, =sub_810BB60
mov r3, sp
adds r2, r7, 0
movs r4, 0x7
_0810BB36:
ldrh r0, [r3]
strh r0, [r2]
adds r3, 0x2
adds r2, 0x2
subs r4, 0x1
cmp r4, 0
bge _0810BB36
str r6, [r5, 0x1C]
adds r0, r5, 0
bl StoreSpriteCallbackInData6
add sp, 0x10
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_810BA24
thumb_func_start sub_810BB60
sub_810BB60: @ 810BB60
push {r4,r5,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x24]
ldrh r1, [r4, 0x20]
adds r0, r1
movs r5, 0
strh r0, [r4, 0x20]
ldrh r0, [r4, 0x26]
ldrh r2, [r4, 0x22]
adds r0, r2
strh r0, [r4, 0x22]
strh r5, [r4, 0x26]
strh r5, [r4, 0x24]
movs r0, 0x80
strh r0, [r4, 0x2E]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
ldr r1, =0x0000ffec
cmp r0, 0
beq _0810BB90
movs r1, 0x14
_0810BB90:
movs r2, 0x2E
ldrsh r0, [r4, r2]
lsls r1, 16
asrs r1, 16
bl Sin
strh r0, [r4, 0x34]
movs r1, 0x2E
ldrsh r0, [r4, r1]
movs r1, 0xF
bl Cos
strh r0, [r4, 0x36]
strh r5, [r4, 0x38]
ldr r1, =sub_810BBC8
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810BB60
thumb_func_start sub_810BBC8
sub_810BBC8: @ 810BBC8
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
ldr r1, =0x0000ffec
cmp r0, 0
beq _0810BBDE
movs r1, 0x14
_0810BBDE:
movs r2, 0x38
ldrsh r0, [r4, r2]
cmp r0, 0x1F
bgt _0810BC24
movs r2, 0x2E
ldrsh r0, [r4, r2]
lsls r1, 16
asrs r1, 16
bl Sin
ldrh r1, [r4, 0x34]
subs r0, r1
strh r0, [r4, 0x24]
movs r1, 0x2E
ldrsh r0, [r4, r1]
movs r1, 0xF
bl Cos
ldrh r1, [r4, 0x36]
subs r0, r1
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x2E]
adds r0, 0x10
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x38]
adds r0, 0x1
strh r0, [r4, 0x38]
b _0810BC42
.pool
_0810BC24:
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, 0x36]
strh r1, [r4, 0x34]
ldr r0, =sub_810BC4C
str r0, [r4, 0x1C]
_0810BC42:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810BBC8
thumb_func_start sub_810BC4C
sub_810BC4C: @ 810BC4C
push {r4,lr}
adds r4, r0, 0
movs r0, 0x1
strh r0, [r4, 0x2E]
adds r0, r4, 0
bl sub_80A70E8
movs r1, 0x20
ldrsh r0, [r4, r1]
movs r2, 0x24
ldrsh r1, [r4, r2]
adds r0, r1
adds r0, 0x10
movs r1, 0x88
lsls r1, 1
cmp r0, r1
bhi _0810BC88
movs r1, 0x22
ldrsh r0, [r4, r1]
movs r2, 0x26
ldrsh r1, [r4, r2]
adds r1, r0, r1
movs r0, 0x80
lsls r0, 1
cmp r1, r0
bgt _0810BC88
movs r0, 0x10
negs r0, r0
cmp r1, r0
bge _0810BC8E
_0810BC88:
adds r0, r4, 0
bl DestroyAnimSprite
_0810BC8E:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810BC4C
thumb_func_start sub_810BC94
sub_810BC94: @ 810BC94
push {r4-r7,lr}
sub sp, 0x10
adds r5, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x8]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
ldrh r0, [r5, 0x22]
strh r0, [r5, 0x34]
movs r2, 0xE
ldrsh r0, [r1, r2]
cmp r0, 0
bne _0810BCE0
ldr r4, =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]
b _0810BCF2
.pool
_0810BCE0:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
adds r3, r5, 0
adds r3, 0x36
movs r1, 0x1
bl sub_80A8924
_0810BCF2:
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810BD1C
ldr r0, =gBattleAnimArgs
ldrh r1, [r5, 0x32]
ldrh r2, [r0, 0x4]
subs r1, r2
strh r1, [r5, 0x32]
adds r1, r0, 0
b _0810BD26
.pool
_0810BD1C:
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x4]
ldrh r2, [r5, 0x32]
adds r0, r2
strh r0, [r5, 0x32]
_0810BD26:
ldrh r0, [r1, 0x6]
ldrh r1, [r5, 0x36]
adds r0, r1
strh r0, [r5, 0x36]
adds r0, r5, 0
bl sub_80A7160
adds r7, r5, 0
adds r7, 0x2E
adds r2, r7, 0
mov r1, sp
movs r4, 0x7
_0810BD3E:
ldrh r0, [r2]
strh r0, [r1]
adds r2, 0x2
adds r1, 0x2
subs r4, 0x1
cmp r4, 0
bge _0810BD3E
ldrh r0, [r5, 0x30]
movs r1, 0x1
eors r0, r1
strh r0, [r5, 0x30]
ldrh r0, [r5, 0x32]
eors r0, r1
strh r0, [r5, 0x32]
_0810BD5A:
movs r0, 0x1
strh r0, [r5, 0x2E]
adds r0, r5, 0
bl sub_80A70E8
movs r2, 0x20
ldrsh r1, [r5, r2]
movs r2, 0x24
ldrsh r0, [r5, r2]
adds r1, r0
adds r1, 0x10
movs r0, 0x88
lsls r0, 1
cmp r1, r0
bhi _0810BD8E
movs r0, 0x22
ldrsh r1, [r5, r0]
movs r2, 0x26
ldrsh r0, [r5, r2]
adds r1, r0
cmp r1, 0xA0
bgt _0810BD8E
movs r0, 0x10
negs r0, r0
cmp r1, r0
bge _0810BD5A
_0810BD8E:
ldrh r0, [r5, 0x24]
ldrh r1, [r5, 0x20]
adds r0, r1
movs r1, 0
strh r0, [r5, 0x20]
ldrh r0, [r5, 0x26]
ldrh r2, [r5, 0x22]
adds r0, r2
strh r0, [r5, 0x22]
strh r1, [r5, 0x26]
strh r1, [r5, 0x24]
ldr r1, =gBattleAnimArgs
ldr r6, =sub_810BDD8
mov r3, sp
adds r2, r7, 0
movs r4, 0x7
_0810BDAE:
ldrh r0, [r3]
strh r0, [r2]
adds r3, 0x2
adds r2, 0x2
subs r4, 0x1
cmp r4, 0
bge _0810BDAE
ldrh r0, [r1, 0xA]
strh r0, [r5, 0x38]
ldrh r0, [r1, 0xC]
strh r0, [r5, 0x3A]
str r6, [r5, 0x1C]
add sp, 0x10
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_810BC94
thumb_func_start sub_810BDD8
sub_810BDD8: @ 810BDD8
push {r4,lr}
adds r4, r0, 0
bl sub_80A70E8
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0810BDEC
movs r0, 0x1
strh r0, [r4, 0x2E]
_0810BDEC:
movs r2, 0x3C
ldrsh r0, [r4, r2]
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
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x3C]
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _0810BE42
movs r2, 0x20
ldrsh r0, [r4, r2]
movs r2, 0x24
ldrsh r1, [r4, r2]
adds r0, r1
adds r0, 0x10
movs r1, 0x88
lsls r1, 1
cmp r0, r1
bhi _0810BE3C
movs r0, 0x22
ldrsh r1, [r4, r0]
movs r2, 0x26
ldrsh r0, [r4, r2]
adds r1, r0
cmp r1, 0xA0
bgt _0810BE3C
movs r0, 0x10
negs r0, r0
cmp r1, r0
bge _0810BE42
_0810BE3C:
adds r0, r4, 0
bl DestroyAnimSprite
_0810BE42:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810BDD8
thumb_func_start sub_810BE48
sub_810BE48: @ 810BE48
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0810BEB4
ldr r5, =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0810BE6C
adds r0, r4, 0
movs r1, 0
bl sub_80A6980
b _0810BEA2
.pool
_0810BE6C:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
adds r3, r4, 0
adds r3, 0x22
movs r1, 0
bl sub_80A8924
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810BE92
ldrh r0, [r5]
negs r0, r0
strh r0, [r5]
_0810BE92:
ldrh r0, [r5]
ldrh r1, [r4, 0x20]
adds r0, r1
strh r0, [r4, 0x20]
ldrh r0, [r5, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
_0810BEA2:
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
b _0810BEC8
.pool
_0810BEB4:
adds r0, r4, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _0810BEC8
adds r0, r4, 0
bl DestroyAnimSprite
_0810BEC8:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_810BE48
thumb_func_start sub_810BED0
sub_810BED0: @ 810BED0
push {r4-r6,lr}
adds r5, r0, 0
ldr r6, =gBattleAnimArgs
movs r1, 0x8
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0810BF40
movs r1, 0xA
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0810BEF4
adds r0, r5, 0
movs r1, 0
bl sub_80A69CC
b _0810BF32
.pool
_0810BEF4:
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
adds r2, r5, 0
adds r2, 0x20
adds r3, r5, 0
adds r3, 0x22
movs r1, 0
bl sub_80A8924
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810BF20
ldrh r0, [r5, 0x20]
ldrh r1, [r6]
subs r0, r1
b _0810BF26
.pool
_0810BF20:
ldrh r0, [r6]
ldrh r1, [r5, 0x20]
adds r0, r1
_0810BF26:
strh r0, [r5, 0x20]
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x2]
ldrh r1, [r5, 0x22]
adds r0, r1
strh r0, [r5, 0x22]
_0810BF32:
ldr r0, =gBattleAnimAttacker
b _0810BF90
.pool
_0810BF40:
movs r1, 0xA
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0810BF52
adds r0, r5, 0
movs r1, 0
bl sub_80A6980
b _0810BF8E
_0810BF52:
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
adds r2, r5, 0
adds r2, 0x20
adds r3, r5, 0
adds r3, 0x22
movs r1, 0
bl sub_80A8924
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810BF7C
ldrh r0, [r5, 0x20]
ldrh r1, [r6]
subs r0, r1
b _0810BF82
.pool
_0810BF7C:
ldrh r0, [r6]
ldrh r1, [r5, 0x20]
adds r0, r1
_0810BF82:
strh r0, [r5, 0x20]
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x2]
ldrh r1, [r5, 0x22]
adds r0, r1
strh r0, [r5, 0x22]
_0810BF8E:
ldr r0, =gBattleAnimTarget
_0810BF90:
ldrb r0, [r0]
strh r0, [r5, 0x3C]
ldr r0, =gBattleAnimArgs
movs r1, 0xA
ldrsh r0, [r0, r1]
cmp r0, 0
beq _0810BFA8
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0810BFB4
_0810BFA8:
movs r0, 0x20
b _0810BFB6
.pool
_0810BFB4:
movs r0, 0x40
_0810BFB6:
strh r0, [r5, 0x3A]
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810BFCC
ldrh r0, [r5, 0x22]
adds r0, 0x8
strh r0, [r5, 0x22]
_0810BFCC:
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x6]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
strh r0, [r5, 0x32]
ldrh r0, [r5, 0x22]
strh r0, [r5, 0x34]
ldrh r1, [r1, 0x4]
adds r0, r1
strh r0, [r5, 0x36]
adds r0, r5, 0
bl obj_translate_based_on_private_1_2_3_4
movs r0, 0x40
strh r0, [r5, 0x38]
ldr r1, =sub_810C008
str r1, [r5, 0x1C]
adds r0, r5, 0
bl _call_via_r1
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810BED0
thumb_func_start sub_810C008
sub_810C008: @ 810C008
push {r4,lr}
adds r4, r0, 0
bl sub_80A6F3C
lsls r0, 24
cmp r0, 0
bne _0810C092
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r2, 0x3A
ldrsh r1, [r4, r2]
bl Sin
ldrh r1, [r4, 0x24]
adds r0, r1
strh r0, [r4, 0x24]
movs r2, 0x38
ldrsh r0, [r4, r2]
movs r1, 0x6
negs r1, r1
bl Cos
ldrh r1, [r4, 0x26]
adds r0, r1
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x38]
subs r0, 0x40
lsls r0, 16
lsrs r0, 16
cmp r0, 0x7F
bhi _0810C064
ldrh r0, [r4, 0x3C]
lsls r0, 24
lsrs r0, 24
bl sub_80A8328
movs r1, 0x3
ands r1, r0
lsls r1, 2
ldrb r2, [r4, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x5]
b _0810C086
_0810C064:
ldrh r0, [r4, 0x3C]
lsls r0, 24
lsrs r0, 24
bl sub_80A8328
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
movs r1, 0x3
ands r0, r1
lsls r0, 2
ldrb r2, [r4, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r4, 0x5]
_0810C086:
ldrh r0, [r4, 0x38]
adds r0, 0x3
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x38]
b _0810C098
_0810C092:
adds r0, r4, 0
bl DestroyAnimSprite
_0810C098:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810C008
thumb_func_start sub_810C0A0
sub_810C0A0: @ 810C0A0
push {r4,r5,lr}
sub sp, 0x10
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
movs r1, 0x80
lsls r1, 5
movs r0, 0x52
bl SetGpuReg
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0
movs r2, 0
bl SetAnimBgAttribute
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810C0E2
movs r0, 0x1
movs r1, 0x3
movs r2, 0x1
bl SetAnimBgAttribute
_0810C0E2:
ldr r0, =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
ldr r4, =gBattle_BG1_Y
strh r1, [r4]
movs r0, 0x14
movs r1, 0
bl SetGpuReg
ldrh r1, [r4]
movs r0, 0x16
bl SetGpuReg
mov r0, sp
bl sub_80A6B30
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, =gWeatherFog1Tiles
movs r2, 0x80
lsls r2, 4
mov r3, sp
ldrh r3, [r3, 0xA]
bl LoadBgTiles
ldr r1, =gBattleAnimFogTilemap
mov r0, sp
movs r2, 0
bl sub_80A6D60
ldr r0, =gUnknown_0854C270
mov r1, sp
ldrb r1, [r1, 0x8]
lsls r1, 4
movs r2, 0x20
bl LoadPalette
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, =sub_810C164
str r1, [r0]
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810C0A0
thumb_func_start sub_810C164
sub_810C164: @ 810C164
push {r4,r5,lr}
sub sp, 0x10
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gBattle_BG1_X
ldr r2, =0x0000ffff
adds r0, r2, 0
ldrh r2, [r1]
adds r0, r2
strh r0, [r1]
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
movs r2, 0x20
ldrsh r0, [r0, r2]
adds r2, r1, 0
cmp r0, 0x4
bls _0810C18E
b _0810C2DA
_0810C18E:
lsls r0, 2
ldr r1, =_0810C1A8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0810C1A8:
.4byte _0810C1BC
.4byte _0810C214
.4byte _0810C236
.4byte _0810C27A
.4byte _0810C29C
_0810C1BC:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r4, r0, r2
ldrh r0, [r4, 0x1C]
adds r0, 0x1
movs r5, 0
strh r0, [r4, 0x1C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
beq _0810C1D6
b _0810C2DA
_0810C1D6:
strh r5, [r4, 0x1C]
ldrh r0, [r4, 0x1A]
adds r0, 0x1
strh r0, [r4, 0x1A]
ldr r1, =gUnknown_08595C5C
movs r2, 0x1A
ldrsh r0, [r4, r2]
adds r0, r1
ldrb r1, [r0]
strh r1, [r4, 0x1E]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0x1E
ldrsh r0, [r4, r1]
cmp r0, 0x9
bne _0810C2DA
ldrh r0, [r4, 0x20]
adds r0, 0x1
strh r0, [r4, 0x20]
strh r5, [r4, 0x1E]
b _0810C2DA
.pool
_0810C214:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r1, r0, r2
ldrh r0, [r1, 0x1E]
adds r0, 0x1
strh r0, [r1, 0x1E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x51
bne _0810C2DA
movs r0, 0x9
strh r0, [r1, 0x1E]
ldrh r0, [r1, 0x20]
adds r0, 0x1
strh r0, [r1, 0x20]
b _0810C2DA
_0810C236:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r4, r0, r2
ldrh r0, [r4, 0x1C]
adds r0, 0x1
strh r0, [r4, 0x1C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bne _0810C2DA
movs r0, 0
strh r0, [r4, 0x1C]
ldrh r1, [r4, 0x1E]
subs r1, 0x1
strh r1, [r4, 0x1E]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r2, 0x1E
ldrsh r1, [r4, r2]
cmp r1, 0
bne _0810C2DA
ldrh r0, [r4, 0x20]
adds r0, 0x1
strh r0, [r4, 0x20]
strh r1, [r4, 0x1E]
b _0810C2DA
_0810C27A:
mov r0, sp
bl sub_80A6B30
movs r0, 0x1
bl sub_80A6C68
movs r0, 0x2
bl sub_80A6C68
ldr r0, =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x20]
adds r0, 0x1
strh r0, [r1, 0x20]
_0810C29C:
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810C2B0
movs r0, 0x1
movs r1, 0x3
movs r2, 0
bl SetAnimBgAttribute
_0810C2B0:
ldr r0, =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_BG1_Y
strh r1, [r0]
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
adds r0, r4, 0
bl DestroyAnimVisualTask
_0810C2DA:
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810C164
thumb_func_start sub_810C2F0
sub_810C2F0: @ 810C2F0
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
ldr r0, =sub_80A7820
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810C2F0
thumb_func_start sub_810C324
sub_810C324: @ 810C324
push {r4,r5,lr}
sub sp, 0x10
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
movs r1, 0x80
lsls r1, 5
movs r0, 0x52
bl SetGpuReg
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0
movs r2, 0
bl SetAnimBgAttribute
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810C366
movs r0, 0x1
movs r1, 0x3
movs r2, 0x1
bl SetAnimBgAttribute
_0810C366:
ldr r0, =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
ldr r4, =gBattle_BG1_Y
strh r1, [r4]
movs r0, 0x14
movs r1, 0
bl SetGpuReg
ldrh r1, [r4]
movs r0, 0x16
bl SetGpuReg
mov r0, sp
bl sub_80A6B30
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, =gWeatherFog1Tiles
movs r2, 0x80
lsls r2, 4
mov r3, sp
ldrh r3, [r3, 0xA]
bl LoadBgTiles
ldr r1, =gBattleAnimFogTilemap
mov r0, sp
movs r2, 0
bl sub_80A6D60
ldr r0, =gUnknown_0854C270
mov r1, sp
ldrb r1, [r1, 0x8]
lsls r1, 4
movs r2, 0x20
bl LoadPalette
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, =0x0000ffff
strh r1, [r0, 0x26]
ldr r1, =sub_810C3F0
str r1, [r0]
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810C324
thumb_func_start sub_810C3F0
sub_810C3F0: @ 810C3F0
push {r4,r5,lr}
sub sp, 0x10
lsls r0, 24
lsrs r4, r0, 24
ldr r2, =gBattle_BG1_X
ldr r3, =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r3
ldrh r0, [r1, 0x26]
ldrh r5, [r2]
adds r0, r5
strh r0, [r2]
movs r2, 0x20
ldrsh r0, [r1, r2]
cmp r0, 0x4
bls _0810C416
b _0810C54A
_0810C416:
lsls r0, 2
ldr r1, =_0810C42C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0810C42C:
.4byte _0810C440
.4byte _0810C484
.4byte _0810C4A6
.4byte _0810C4EA
.4byte _0810C50C
_0810C440:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r4, r0, r3
ldrh r0, [r4, 0x1A]
adds r0, 0x1
strh r0, [r4, 0x1A]
ldr r1, =gUnknown_08595C88
movs r5, 0x1A
ldrsh r0, [r4, r5]
adds r0, r1
ldrb r1, [r0]
strh r1, [r4, 0x1E]
movs r0, 0x11
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0x1E
ldrsh r0, [r4, r1]
cmp r0, 0x5
bne _0810C54A
ldrh r0, [r4, 0x20]
adds r0, 0x1
strh r0, [r4, 0x20]
movs r0, 0
strh r0, [r4, 0x1E]
b _0810C54A
.pool
_0810C484:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r1, r0, r3
ldrh r0, [r1, 0x1E]
adds r0, 0x1
strh r0, [r1, 0x1E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x51
bne _0810C54A
movs r0, 0x5
strh r0, [r1, 0x1E]
ldrh r0, [r1, 0x20]
adds r0, 0x1
strh r0, [r1, 0x20]
b _0810C54A
_0810C4A6:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r4, r0, r3
ldrh r0, [r4, 0x1C]
adds r0, 0x1
strh r0, [r4, 0x1C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bne _0810C54A
movs r0, 0
strh r0, [r4, 0x1C]
ldrh r1, [r4, 0x1E]
subs r1, 0x1
strh r1, [r4, 0x1E]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r2, 0x1E
ldrsh r1, [r4, r2]
cmp r1, 0
bne _0810C54A
ldrh r0, [r4, 0x20]
adds r0, 0x1
strh r0, [r4, 0x20]
strh r1, [r4, 0x1E]
b _0810C54A
_0810C4EA:
mov r0, sp
bl sub_80A6B30
movs r0, 0x1
bl sub_80A6C68
movs r0, 0x2
bl sub_80A6C68
ldr r0, =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x20]
adds r0, 0x1
strh r0, [r1, 0x20]
_0810C50C:
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810C520
movs r0, 0x1
movs r1, 0x3
movs r2, 0
bl SetAnimBgAttribute
_0810C520:
ldr r0, =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_BG1_Y
strh r1, [r0]
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
adds r0, r4, 0
bl DestroyAnimVisualTask
_0810C54A:
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810C3F0
thumb_func_start sub_810C560
sub_810C560: @ 810C560
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r5, r0, 0
ldr r6, =gBattleAnimArgs
ldrh r0, [r6]
strh r0, [r5, 0x2E]
ldr r0, =gBattleAnimAttacker
mov r8, r0
ldrb r0, [r0]
movs r1, 0x2
bl GetBattlerSpriteCoord
adds r4, r0, 0
ldr r7, =gBattleAnimTarget
ldrb r0, [r7]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r4, 24
lsls r0, 24
cmp r4, r0
bcs _0810C594
movs r0, 0x80
lsls r0, 8
strh r0, [r5, 0x3C]
_0810C594:
ldr r3, =gBattlerPositions
ldrb r0, [r7]
adds r0, r3
ldrb r1, [r0]
movs r2, 0x1
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _0810C5F4
ldrh r0, [r6, 0x2]
negs r0, r0
strh r0, [r6, 0x2]
ldrh r0, [r6, 0x6]
negs r0, r0
strh r0, [r6, 0x6]
movs r1, 0x3C
ldrsh r0, [r5, r1]
movs r1, 0x80
lsls r1, 8
ands r0, r1
cmp r0, 0
beq _0810C5F0
mov r1, r8
ldrb r0, [r1]
adds r0, r3
ldrb r1, [r0]
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _0810C5F0
movs r0, 0x1
bl GetAnimBattlerSpriteId
ldr r2, =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
adds r1, r5, 0
adds r1, 0x43
strb r0, [r1]
_0810C5F0:
movs r0, 0x1
strh r0, [r5, 0x3A]
_0810C5F4:
ldr r4, =gBattleAnimAttacker
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 r6, =gBattleAnimArgs
movs r1, 0xE
ldrsh r0, [r6, r1]
cmp r0, 0
beq _0810C65C
ldrh r0, [r6, 0x2]
ldrh r1, [r5, 0x20]
adds r0, r1
strh r0, [r5, 0x30]
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6, 0x6]
adds r0, r1
strh r0, [r5, 0x32]
ldrh r0, [r6, 0x4]
ldrh r1, [r5, 0x22]
adds r0, r1
strh r0, [r5, 0x34]
ldrb r0, [r4]
movs r1, 0x3
b _0810C684
.pool
_0810C65C:
ldrh r0, [r6, 0x2]
ldrh r1, [r5, 0x20]
adds r0, r1
strh r0, [r5, 0x30]
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6, 0x6]
adds r0, r1
strh r0, [r5, 0x32]
ldrh r0, [r6, 0x4]
ldrh r1, [r5, 0x22]
adds r0, r1
strh r0, [r5, 0x34]
ldrb r0, [r4]
movs r1, 0x1
_0810C684:
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r6, [r6, 0x8]
adds r0, r6
strh r0, [r5, 0x36]
ldrb r0, [r4]
bl sub_80A8328
lsls r0, 24
lsrs r0, 16
ldrh r1, [r5, 0x3C]
orrs r0, r1
strh r0, [r5, 0x3C]
bl IsContest
lsls r0, 24
cmp r0, 0
beq _0810C6B8
movs r0, 0x1
strh r0, [r5, 0x3A]
adds r1, r5, 0
adds r1, 0x43
movs r0, 0x80
strb r0, [r1]
_0810C6B8:
adds r0, r5, 0
bl obj_translate_based_on_private_1_2_3_4
ldr r0, =sub_810C6D4
str r0, [r5, 0x1C]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_810C560
thumb_func_start sub_810C6D4
sub_810C6D4: @ 810C6D4
push {r4-r6,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x3C]
movs r5, 0xFF
movs r1, 0xFF
ands r1, r0
cmp r1, 0x1
beq _0810C7BC
cmp r1, 0x1
bgt _0810C6EE
cmp r1, 0
beq _0810C6F6
b _0810C90C
_0810C6EE:
cmp r1, 0x2
bne _0810C6F4
b _0810C8D0
_0810C6F4:
b _0810C90C
_0810C6F6:
adds r0, r4, 0
bl sub_80A6F3C
ldr r1, =gSineTable
movs r2, 0x38
ldrsh r0, [r4, r2]
lsls r0, 1
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
asrs r0, 4
ldrh r2, [r4, 0x24]
adds r0, r2
strh r0, [r4, 0x24]
movs r1, 0x3A
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0810C724
ldrh r0, [r4, 0x38]
subs r0, 0x8
b _0810C728
.pool
_0810C724:
ldrh r0, [r4, 0x38]
adds r0, 0x8
_0810C728:
ands r0, r5
strh r0, [r4, 0x38]
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r0, 0
ble _0810C736
b _0810C90C
_0810C736:
movs r5, 0x50
strh r5, [r4, 0x2E]
ldr r6, =gBattleAnimTarget
ldrb r0, [r6]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
strh r0, [r4, 0x30]
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x26]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
strh r0, [r4, 0x34]
adds r0, 0x1D
strh r0, [r4, 0x36]
ldrh r0, [r4, 0x3C]
adds r0, 0x1
strh r0, [r4, 0x3C]
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810C78C
ldr r1, =gBattlerPositions
ldrb r0, [r6]
adds r0, r1
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0810C78C
movs r0, 0xCC
strh r0, [r4, 0x38]
b _0810C78E
.pool
_0810C78C:
strh r5, [r4, 0x38]
_0810C78E:
movs r0, 0
strh r0, [r4, 0x26]
ldr r1, =gSineTable
movs r2, 0x38
ldrsh r0, [r4, r2]
lsls r0, 1
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
asrs r0, 3
strh r0, [r4, 0x24]
ldrh r0, [r4, 0x38]
adds r0, 0x2
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x38]
adds r0, r4, 0
bl obj_translate_based_on_private_1_2_3_4
b _0810C90C
.pool
_0810C7BC:
adds r0, r4, 0
bl sub_80A6F3C
ldr r1, =gSineTable
movs r2, 0x38
ldrsh r0, [r4, r2]
lsls r0, 1
adds r0, r1
movs r2, 0
ldrsh r0, [r0, r2]
asrs r0, 3
ldrh r2, [r4, 0x24]
adds r0, r2
strh r0, [r4, 0x24]
movs r2, 0x38
ldrsh r0, [r4, r2]
adds r0, 0x40
lsls r0, 1
adds r0, r1
movs r2, 0
ldrsh r1, [r0, r2]
lsls r0, r1, 1
adds r0, r1
negs r0, r0
asrs r0, 8
ldrh r1, [r4, 0x26]
adds r0, r1
strh r0, [r4, 0x26]
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810C83A
ldrh r1, [r4, 0x38]
adds r0, r1, 0
subs r0, 0x40
lsls r0, 16
lsrs r0, 16
adds r3, r1, 0
cmp r0, 0x7F
bhi _0810C81C
ldrh r1, [r4, 0x3C]
lsls r1, 16
asrs r1, 24
b _0810C824
.pool
_0810C81C:
ldrh r1, [r4, 0x3C]
lsls r1, 16
asrs r1, 24
adds r1, 0x1
_0810C824:
movs r0, 0x3
ands r1, r0
lsls r1, 2
ldrb r2, [r4, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x5]
adds r0, r3, 0x4
b _0810C85A
_0810C83A:
ldrh r0, [r4, 0x38]
subs r0, 0x40
lsls r0, 16
lsrs r0, 16
cmp r0, 0x7F
bhi _0810C84E
adds r1, r4, 0
adds r1, 0x43
movs r0, 0x80
b _0810C854
_0810C84E:
adds r1, r4, 0
adds r1, 0x43
movs r0, 0x8C
_0810C854:
strb r0, [r1]
ldrh r0, [r4, 0x38]
subs r0, 0x4
_0810C85A:
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x38]
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r0, 0
bgt _0810C90C
movs r5, 0
movs r0, 0xC0
lsls r0, 2
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x24]
ldrh r1, [r4, 0x20]
adds r0, r1
strh r0, [r4, 0x20]
strh r0, [r4, 0x30]
ldrh r0, [r4, 0x26]
ldrh r2, [r4, 0x22]
adds r0, r2
strh r0, [r4, 0x22]
strh r0, [r4, 0x34]
adds r0, 0x4
strh r0, [r4, 0x36]
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810C8B4
ldr r1, =gBattlerPositions
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0810C8B4
movs r0, 0x80
lsls r0, 1
b _0810C8B6
.pool
_0810C8B4:
ldr r0, =0x0000fff0
_0810C8B6:
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x3C]
adds r0, 0x1
movs r1, 0
strh r0, [r4, 0x3C]
strh r1, [r4, 0x26]
strh r1, [r4, 0x24]
adds r0, r4, 0
bl sub_80A6FD4
b _0810C90C
.pool
_0810C8D0:
adds r0, r4, 0
bl sub_80A6F3C
lsls r0, 24
cmp r0, 0
beq _0810C90C
ldrb r0, [r4, 0x1]
lsls r0, 30
lsrs r0, 30
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _0810C8FE
ldrb r0, [r4, 0x3]
lsls r0, 26
lsrs r0, 27
bl FreeOamMatrix
ldrb r1, [r4, 0x1]
movs r0, 0x4
negs r0, r0
ands r0, r1
strb r0, [r4, 0x1]
_0810C8FE:
adds r0, r4, 0
bl DestroySprite
ldr r1, =gAnimVisualTaskCount
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
_0810C90C:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810C6D4
thumb_func_start sub_810C918
sub_810C918: @ 810C918
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks
adds r1, r0
ldr r0, =sub_810C934
str r0, [r1]
bx lr
.pool
thumb_func_end sub_810C918
thumb_func_start sub_810C934
sub_810C934: @ 810C934
push {r4,r5,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r0, 0x8
ldrsh r5, [r4, r0]
cmp r5, 0x1
beq _0810C978
cmp r5, 0x1
bgt _0810C95C
cmp r5, 0
beq _0810C962
b _0810C9DC
.pool
_0810C95C:
cmp r5, 0x2
beq _0810C9CE
b _0810C9DC
_0810C962:
ldrh r0, [r4, 0x10]
adds r0, 0x1
strh r0, [r4, 0x10]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
ble _0810C9DC
strh r5, [r4, 0x10]
strh r5, [r4, 0x12]
strh r5, [r4, 0xC]
b _0810C9B4
_0810C978:
ldrh r1, [r4, 0x12]
movs r3, 0x12
ldrsh r0, [r4, r3]
cmp r0, 0
bne _0810C9C8
ldrb r0, [r4, 0xE]
ldrb r1, [r4, 0xC]
movs r3, 0x1
bl sub_810C9E4
lsls r0, 24
cmp r0, 0
beq _0810C998
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
_0810C998:
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3
bne _0810C9C4
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
lsls r0, 16
asrs r0, 16
cmp r0, 0xA
bne _0810C9BC
_0810C9B4:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _0810C9DC
_0810C9BC:
ldrh r0, [r4, 0x8]
subs r0, 0x1
strh r0, [r4, 0x8]
b _0810C9DC
_0810C9C4:
strh r5, [r4, 0x12]
b _0810C9DC
_0810C9C8:
subs r0, r1, 0x1
strh r0, [r4, 0x12]
b _0810C9DC
_0810C9CE:
movs r1, 0xA
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0810C9DC
adds r0, r2, 0
bl DestroyAnimVisualTask
_0810C9DC:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_810C934
thumb_func_start sub_810C9E4
sub_810C9E4: @ 810C9E4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
lsls r0, 24
lsls r1, 24
lsrs r1, 24
mov r9, r1
lsls r2, 24
lsrs r2, 24
str r2, [sp]
lsls r3, 24
lsrs r3, 24
mov r10, r3
movs r1, 0
str r1, [sp, 0x4]
ldr r1, =gUnknown_08595CB4
lsrs r0, 22
adds r4, r0, r1
ldrb r0, [r4, 0x3]
lsls r0, 24
asrs r0, 28
mov r8, r0
cmp r0, 0x2
beq _0810CAD0
ldrh r0, [r4, 0x2]
lsls r0, 20
lsrs r0, 24
bl GetBattlerAtPosition
lsls r0, 24
lsrs r5, r0, 24
adds r0, r5, 0
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810CAD0
movs r0, 0x1
str r0, [sp, 0x4]
adds r0, r5, 0
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r7, r0, 24
adds r0, r5, 0
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
mov r1, r8
cmp r1, 0
beq _0810CA60
cmp r1, 0x1
beq _0810CA96
b _0810CAE2
.pool
_0810CA60:
adds r0, r5, 0
movs r1, 0x1
bl sub_80A861C
lsls r0, 16
asrs r0, 16
movs r1, 0x6
bl __divsi3
lsls r1, r7, 16
asrs r1, 16
subs r1, r0
lsls r1, 16
lsrs r7, r1, 16
adds r0, r5, 0
movs r1, 0
bl sub_80A861C
lsls r0, 16
asrs r0, 16
movs r1, 0x6
bl __divsi3
lsls r1, r6, 16
asrs r1, 16
subs r1, r0
b _0810CACA
_0810CA96:
adds r0, r5, 0
movs r1, 0x1
bl sub_80A861C
lsls r0, 16
asrs r0, 16
movs r1, 0x6
bl __divsi3
lsls r1, r7, 16
asrs r1, 16
adds r1, r0
lsls r1, 16
lsrs r7, r1, 16
adds r0, r5, 0
movs r1, 0
bl sub_80A861C
lsls r0, 16
asrs r0, 16
movs r1, 0x6
bl __divsi3
lsls r1, r6, 16
asrs r1, 16
adds r1, r0
_0810CACA:
lsls r1, 16
lsrs r6, r1, 16
b _0810CAE2
_0810CAD0:
ldrh r0, [r4]
lsls r0, 22
asrs r0, 6
lsrs r7, r0, 16
ldr r0, [r4]
lsls r0, 12
asrs r0, 22
lsls r0, 16
lsrs r6, r0, 16
_0810CAE2:
lsls r0, r6, 16
asrs r0, 16
adds r0, 0x8
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
lsls r1, r7, 16
asrs r1, 16
subs r1, r0
ldr r0, =gUnknown_08595D2C
lsls r1, 16
asrs r1, 16
movs r2, 0x8
negs r2, r2
movs r3, 0x12
bl CreateSprite
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x40
beq _0810CB44
lsls r4, r5, 4
adds r4, r5
lsls r4, 2
ldr r0, =gSprites
adds r4, r0
adds r0, r4, 0
mov r1, r9
bl StartSpriteAffineAnim
mov r0, sp
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
strh r7, [r4, 0x34]
strh r6, [r4, 0x36]
mov r1, r9
strh r1, [r4, 0x38]
mov r0, sp
ldrh r0, [r0]
strh r0, [r4, 0x3A]
mov r1, r10
strh r1, [r4, 0x3C]
movs r0, 0x1
b _0810CB46
.pool
_0810CB44:
movs r0, 0
_0810CB46:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_810C9E4
thumb_func_start sub_810CB58
sub_810CB58: @ 810CB58
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x20]
adds r0, 0x4
strh r0, [r4, 0x20]
ldrh r1, [r4, 0x22]
adds r2, r1, 0
adds r2, 0x8
strh r2, [r4, 0x22]
lsls r0, 16
asrs r0, 16
movs r3, 0x34
ldrsh r1, [r4, r3]
cmp r0, r1
bge _0810CB82
lsls r0, r2, 16
asrs r0, 16
movs r2, 0x36
ldrsh r1, [r4, r2]
cmp r0, r1
blt _0810CC32
_0810CB82:
movs r3, 0x2E
ldrsh r0, [r4, r3]
cmp r0, 0x1
bne _0810CC04
movs r1, 0x38
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0810CC04
ldr r0, =gUnknown_08595B68
movs r2, 0x34
ldrsh r1, [r4, r2]
movs r3, 0x36
ldrsh r2, [r4, r3]
adds r3, r4, 0
adds r3, 0x43
ldrb r3, [r3]
bl CreateSprite
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x2E]
cmp r0, 0x40
beq _0810CBE6
ldr r2, =gSprites
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r2, 0
adds r1, 0x1C
adds r0, r1
ldr r1, =sub_810CC3C
str r1, [r0]
movs r3, 0x2E
ldrsh r1, [r4, r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r4, 0x3A]
strh r1, [r0, 0x3A]
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r4, 0x3C]
strh r1, [r0, 0x3C]
_0810CBE6:
ldrb r0, [r4, 0x3]
lsls r0, 26
lsrs r0, 27
bl FreeOamMatrix
adds r0, r4, 0
bl DestroySprite
b _0810CC32
.pool
_0810CC04:
ldr r3, =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]
ldrb r0, [r4, 0x3]
lsls r0, 26
lsrs r0, 27
bl FreeOamMatrix
adds r0, r4, 0
bl DestroySprite
_0810CC32:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810CB58
thumb_func_start sub_810CC3C
sub_810CC3C: @ 810CC3C
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, 0x14
bne _0810CC7C
ldr r3, =gTasks
movs r0, 0x3C
ldrsh r1, [r4, r0]
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]
ldrb r0, [r4, 0x3]
lsls r0, 26
lsrs r0, 27
bl FreeOamMatrix
adds r0, r4, 0
bl DestroySprite
_0810CC7C:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810CC3C
thumb_func_start unc_080B06FC
unc_080B06FC: @ 810CC88
push {r4-r6,lr}
adds r5, r0, 0
ldr r0, =gAnimDisableStructPtr
ldr r0, [r0]
ldrb r1, [r0, 0x11]
lsrs r0, r1, 4
lsls r1, 28
lsrs r1, 28
subs r0, r1
subs r0, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x4
bls _0810CCA6
movs r1, 0x4
_0810CCA6:
adds r0, r5, 0
bl StartSpriteAffineAnim
adds r0, r5, 0
movs r1, 0x1
bl sub_80A69CC
ldr r6, =gBattleAnimArgs
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810CCCE
ldrh r0, [r6, 0x4]
negs r0, r0
strh r0, [r6, 0x4]
_0810CCCE:
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6, 0x4]
adds r0, r1
strh r0, [r5, 0x32]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6, 0x6]
adds r0, r1
strh r0, [r5, 0x36]
ldrh r0, [r6, 0xA]
strh r0, [r5, 0x38]
adds r0, r5, 0
bl sub_80A68D4
ldr r0, =sub_810CD1C
str r0, [r5, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end unc_080B06FC
thumb_func_start sub_810CD1C
sub_810CD1C: @ 810CD1C
push {r4,lr}
adds r4, r0, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
beq _0810CD3E
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAnim
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
_0810CD3E:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810CD1C
thumb_func_start sub_810CD4C
sub_810CD4C: @ 810CD4C
push {r4-r6,lr}
adds r4, r0, 0
ldrh r2, [r4, 0x4]
lsls r1, r2, 22
lsrs r1, 22
adds r1, 0x8
ldr r3, =0x000003ff
adds r0, r3, 0
ands r1, r0
ldr r0, =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r4, 0x4]
adds r0, r4, 0
movs r1, 0x1
bl sub_80A6980
bl Random2
movs r5, 0xFF
ands r5, r0
movs r0, 0x80
lsls r0, 1
adds r6, r0, 0
orrs r5, r6
bl Random2
ldr r1, =0x000001ff
ands r1, r0
adds r0, r1, 0
cmp r0, 0xFF
ble _0810CD92
subs r0, r6, r0
lsls r0, 16
lsrs r1, r0, 16
_0810CD92:
strh r5, [r4, 0x30]
strh r1, [r4, 0x32]
ldr r0, =sub_810CDB0
str r0, [r4, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810CD4C
thumb_func_start sub_810CDB0
sub_810CDB0: @ 810CDB0
push {r4,lr}
adds r2, r0, 0
ldrh r0, [r2, 0x30]
ldrh r1, [r2, 0x34]
adds r3, r0, r1
strh r3, [r2, 0x34]
ldrh r1, [r2, 0x32]
ldrh r4, [r2, 0x36]
adds r1, r4
strh r1, [r2, 0x36]
movs r1, 0x1
ands r1, r0
cmp r1, 0
beq _0810CDD4
lsls r0, r3, 16
asrs r0, 24
negs r0, r0
b _0810CDD8
_0810CDD4:
lsls r0, r3, 16
asrs r0, 24
_0810CDD8:
strh r0, [r2, 0x24]
ldrh r0, [r2, 0x36]
lsls r0, 16
asrs r0, 24
strh r0, [r2, 0x26]
ldrh r0, [r2, 0x2E]
adds r0, 0x1
strh r0, [r2, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x15
bne _0810CDF6
adds r0, r2, 0
bl DestroyAnimSprite
_0810CDF6:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810CDB0
thumb_func_start AnimTask_GetRolloutCounter
AnimTask_GetRolloutCounter: @ 810CDFC
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r1, =gBattleAnimArgs
ldrb r3, [r1]
lsls r3, 1
adds r3, r1
ldr r1, =gAnimDisableStructPtr
ldr r1, [r1]
ldrb r1, [r1, 0x11]
lsrs r2, r1, 4
lsls r1, 28
lsrs r1, 28
subs r2, r1
subs r2, 0x1
strh r2, [r3]
bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_GetRolloutCounter
thumb_func_start unc_080B08A0
unc_080B08A0: @ 810CE2C
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
bl sub_80A6864
ldrh r0, [r5, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
movs r0, 0xF
strh r0, [r4, 0x2E]
ldr r0, =sub_80A64B0
str r0, [r4, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end unc_080B08A0
thumb_func_start sub_810CE68
sub_810CE68: @ 810CE68
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, =gBattleAnimArgs
movs r1, 0xE
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _0810CE90
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810CE90
ldrh r0, [r4, 0x2]
negs r0, r0
strh r0, [r4, 0x2]
ldrh r0, [r4, 0x6]
negs r0, r0
strh r0, [r4, 0x6]
_0810CE90:
ldr r4, =gBattleAnimArgs
ldrb r1, [r4, 0xC]
adds r0, r5, 0
bl StartSpriteAnim
movs r0, 0
strh r0, [r4, 0xC]
adds r0, r5, 0
bl sub_80A7938
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810CE68
thumb_func_start sub_810CEB4
sub_810CEB4: @ 810CEB4
push {r4,lr}
adds r4, r0, 0
bl IsContest
lsls r0, 24
cmp r0, 0
beq _0810CED0
ldr r0, =gBattleAnimArgs
ldrh r1, [r0, 0x2]
negs r1, r1
strh r1, [r0, 0x2]
ldrh r1, [r0, 0x6]
negs r1, r1
strh r1, [r0, 0x6]
_0810CED0:
adds r0, r4, 0
bl sub_810CE68
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810CEB4
thumb_func_start sub_810CEE0
sub_810CEE0: @ 810CEE0
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, =gBattleAnimArgs
ldrb r1, [r4, 0x8]
bl StartSpriteAnim
movs r1, 0x6
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0810CF04
adds r0, r5, 0
movs r1, 0x1
bl sub_80A69CC
b _0810CF0C
.pool
_0810CF04:
adds r0, r5, 0
movs r1, 0x1
bl sub_80A6980
_0810CF0C:
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r5, 0x2E]
ldr r0, =sub_80A64B0
str r0, [r5, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810CEE0
thumb_func_start sub_810CF30
sub_810CF30: @ 810CF30
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r5, r0, 0
ldr r0, =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
mov r9, r0
cmp r1, 0
bne _0810CF54
ldr r0, =gBattleAnimAttacker
b _0810CF56
.pool
_0810CF54:
ldr r0, =gBattleAnimTarget
_0810CF56:
ldrb r0, [r0]
mov r8, r0
mov r4, r9
movs r3, 0x4
ldrsh r0, [r4, r3]
cmp r0, 0
bge _0810CF74
bl Random2
lsls r0, 16
lsrs r0, 16
movs r1, 0x5
bl __umodsi3
strh r0, [r4, 0x4]
_0810CF74:
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 sub_80A861C
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 sub_80A861C
lsls r0, 16
asrs r0, 16
cmp r0, 0
bge _0810CFBE
adds r0, 0x3
_0810CFBE:
lsls r4, r0, 14
lsrs r4, 16
bl Random2
lsls r0, 16
lsrs r0, 16
lsls r1, r6, 16
asrs r1, 16
bl __modsi3
lsls r0, 16
lsrs r6, r0, 16
bl Random2
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 Random2
movs r7, 0x1
adds r1, r7, 0
ands r1, r0
cmp r1, 0
beq _0810D000
lsls r0, r6, 16
negs r0, r0
lsrs r6, r0, 16
_0810D000:
bl Random2
adds r1, r7, 0
ands r1, r0
cmp r1, 0
beq _0810D012
lsls r0, r4, 16
negs r0, r0
lsrs r4, r0, 16
_0810D012:
ldr r0, =gBattlerPositions
add r0, r8
ldrb r1, [r0]
adds r0, r7, 0
ands r0, r1
cmp r0, 0
bne _0810D028
lsls r0, r4, 16
ldr r1, =0xfff00000
adds r0, r1
lsrs r4, r0, 16
_0810D028:
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, =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 _0810D08C
movs r0, 0x3C
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, =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, =SpriteCallbackDummy
str r1, [r0]
_0810D08C:
ldr r0, =sub_810D0B8
str r0, [r5, 0x1C]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_810CF30
thumb_func_start sub_810D0B8
sub_810D0B8: @ 810D0B8
push {r4,r5,lr}
adds r5, r0, 0
ldrh r1, [r5, 0x2E]
movs r2, 0x2E
ldrsh r0, [r5, r2]
cmp r0, 0
bne _0810D100
movs r1, 0x3C
ldrsh r0, [r5, r1]
cmp r0, 0x40
beq _0810D0F4
ldr r4, =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
_0810D0F4:
adds r0, r5, 0
bl DestroyAnimSprite
b _0810D104
.pool
_0810D100:
subs r0, r1, 0x1
strh r0, [r5, 0x2E]
_0810D104:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_810D0B8
thumb_func_start sub_810D10C
sub_810D10C: @ 810D10C
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A6980
movs r0, 0x1E
strh r0, [r4, 0x2E]
ldr r0, =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810D130
ldrh r0, [r4, 0x20]
subs r0, 0x14
strh r0, [r4, 0x32]
b _0810D142
.pool
_0810D130:
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]
_0810D142:
ldrh r0, [r4, 0x22]
subs r0, 0x14
strh r0, [r4, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r4, 0x1C]
ldr r1, =sub_810D164
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810D10C
thumb_func_start sub_810D164
sub_810D164: @ 810D164
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 _0810D1A4
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, =sub_80A6EEC
str r0, [r5, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
_0810D1A4:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810D164
thumb_func_start sub_810D1B4
sub_810D1B4: @ 810D1B4
push {r4-r6,lr}
adds r6, r0, 0
ldr r0, =gBattleAnimAttacker
ldrb r1, [r0]
movs r0, 0x2
ldr r2, =gBattleAnimTarget
eors r0, r1
ldrb r1, [r2]
cmp r0, r1
bne _0810D1E0
ldrb r0, [r2]
bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _0810D1E0
ldr r1, =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r1, r2]
negs r0, r0
strh r0, [r1]
_0810D1E0:
adds r0, r6, 0
movs r1, 0x1
bl sub_80A6980
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810D1FE
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_0810D1FE:
ldr r4, =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 obj_translate_based_on_private_1_2_3_4
ldrh r0, [r4, 0xA]
strh r0, [r6, 0x38]
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x3A]
strh r5, [r6, 0x3C]
ldr r0, =sub_810D240
str r0, [r6, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810D1B4
thumb_func_start sub_810D240
sub_810D240: @ 810D240
push {r4,lr}
adds r4, r0, 0
bl sub_80A6F3C
lsls r0, 24
cmp r0, 0
bne _0810D26C
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 _0810D272
_0810D26C:
adds r0, r4, 0
bl DestroyAnimSprite
_0810D272:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810D240
thumb_func_start sub_810D278
sub_810D278: @ 810D278
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A6980
ldr r5, =gBattleAnimArgs
ldrb r1, [r5, 0x4]
adds r0, r4, 0
bl StartSpriteAnim
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
ldr r0, =sub_80A64B0
str r0, [r4, 0x1C]
ldr r1, =sub_810D2B0
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810D278
thumb_func_start sub_810D2B0
sub_810D2B0: @ 810D2B0
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, =sub_80A64B0
str r0, [r4, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810D2B0
thumb_func_start sub_810D2E4
sub_810D2E4: @ 810D2E4
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A6980
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
ldr r0, =sub_810D308
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810D2E4
thumb_func_start sub_810D308
sub_810D308: @ 810D308
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 _0810D34C
movs r0, 0x6
strh r0, [r5, 0x2E]
ldr r4, =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, =sub_80A6EEC
str r0, [r5, 0x1C]
ldr r1, =sub_810D360
adds r0, r5, 0
bl StoreSpriteCallbackInData6
_0810D34C:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810D308
thumb_func_start sub_810D360
sub_810D360: @ 810D360
push {lr}
movs r1, 0xF
strh r1, [r0, 0x2E]
ldr r1, =sub_80A64B0
str r1, [r0, 0x1C]
ldr r1, =DestroyAnimSprite
bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.pool
thumb_func_end sub_810D360
thumb_func_start sub_810D37C
sub_810D37C: @ 810D37C
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0810D3A8
adds r0, r4, 0
movs r1, 0x1
bl sub_80A6980
ldr r1, =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 _0810D404
.pool
_0810D3A8:
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 _0810D3F6
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]
_0810D3F6:
movs r1, 0x34
ldrsh r0, [r4, r1]
cmp r0, 0x78
ble _0810D404
adds r0, r4, 0
bl DestroyAnimSprite
_0810D404:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810D37C
thumb_func_start sub_810D40C
sub_810D40C: @ 810D40C
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810D428
ldr r4, =gBattleAnimAttacker
b _0810D42A
.pool
_0810D428:
ldr r4, =gBattleAnimTarget
_0810D42A:
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, =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, =sub_810D47C
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810D40C
thumb_func_start sub_810D47C
sub_810D47C: @ 810D47C
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
cmp r2, 0
beq _0810D48E
cmp r2, 0x1
beq _0810D4B2
b _0810D4EC
_0810D48E:
ldrh r0, [r1, 0x30]
subs r0, 0x1
strh r0, [r1, 0x30]
lsls r0, 16
cmp r0, 0
bne _0810D4EC
movs r2, 0x32
ldrsh r0, [r1, r2]
cmp r0, 0
bne _0810D4AA
adds r0, r1, 0
bl DestroyAnimSprite
b _0810D4EC
_0810D4AA:
ldrh r0, [r1, 0x2E]
adds r0, 0x1
strh r0, [r1, 0x2E]
b _0810D4EC
_0810D4B2:
ldrh r0, [r1, 0x30]
adds r0, 0x1
strh r0, [r1, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _0810D4DA
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 _0810D4D6
movs r0, 0x2
b _0810D4D8
_0810D4D6:
ldr r0, =0x0000fffe
_0810D4D8:
strh r0, [r1, 0x24]
_0810D4DA:
ldrh r0, [r1, 0x32]
subs r0, 0x1
strh r0, [r1, 0x32]
lsls r0, 16
cmp r0, 0
bne _0810D4EC
adds r0, r1, 0
bl DestroyAnimSprite
_0810D4EC:
pop {r0}
bx r0
.pool
thumb_func_end sub_810D47C
thumb_func_start sub_810D4F4
sub_810D4F4: @ 810D4F4
push {r4-r6,lr}
adds r5, r0, 0
ldr r6, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0810D520
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r2, [r6, 0x4]
adds r0, r2
b _0810D532
.pool
_0810D520:
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6, 0x4]
adds r0, r1
_0810D532:
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, =gBattleAnimArgs
movs r4, 0x2
ldrsh r0, [r3, r4]
lsls r0, 4
adds r1, r0
ldr r4, =0x000003ff
adds r0, r4, 0
ands r1, r0
ldr r0, =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 _0810D5A0
cmp r0, 0x1
bgt _0810D58C
cmp r0, 0
beq _0810D596
b _0810D5C6
.pool
_0810D58C:
cmp r0, 0x2
beq _0810D5B0
cmp r0, 0x3
beq _0810D5C0
b _0810D5C6
_0810D596:
ldr r0, =0x0000fffd
b _0810D5C0
.pool
_0810D5A0:
movs r0, 0x3
strh r0, [r5, 0x3A]
ldr r0, =0x0000fffd
strh r0, [r5, 0x3C]
b _0810D5CE
.pool
_0810D5B0:
ldr r0, =0x0000fffd
strh r0, [r5, 0x3A]
movs r0, 0x3
strh r0, [r5, 0x3C]
b _0810D5CE
.pool
_0810D5C0:
strh r0, [r5, 0x3A]
strh r0, [r5, 0x3C]
b _0810D5CE
_0810D5C6:
adds r0, r5, 0
bl DestroyAnimSprite
b _0810D5D2
_0810D5CE:
ldr r0, =sub_810D5DC
str r0, [r5, 0x1C]
_0810D5D2:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810D4F4
thumb_func_start sub_810D5DC
sub_810D5DC: @ 810D5DC
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 _0810D604
adds r0, r1, 0
bl DestroyAnimSprite
_0810D604:
pop {r0}
bx r0
thumb_func_end sub_810D5DC
thumb_func_start sub_810D608
sub_810D608: @ 810D608
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810D664
ldr r4, =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, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8328
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, =gBattleAnimTarget
b _0810D680
.pool
_0810D664:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8328
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, =gBattleAnimAttacker
_0810D680:
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, =sub_810D6A8
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810D608
thumb_func_start sub_810D6A8
sub_810D6A8: @ 810D6A8
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 _0810D704
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 obj_translate_based_on_private_1_2_3_4
ldr r1, =move_anim_8074EE0
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A6F98
str r0, [r4, 0x1C]
_0810D704:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810D6A8
thumb_func_start sub_810D714
sub_810D714: @ 810D714
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, =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 sub_80A8048
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, =0x000003ff
adds r0, r3, 0
ands r1, r0
ldr r0, =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r5, 0x4]
ldr r0, =sub_810D770
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810D714
thumb_func_start sub_810D770
sub_810D770: @ 810D770
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r7, r0, 0
movs r1, 0x2E
ldrsh r0, [r7, r1]
cmp r0, 0
beq _0810D7C2
movs r2, 0x36
ldrsh r0, [r7, r2]
movs r2, 0x38
ldrsh r1, [r7, r2]
bl sub_80A8050
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 sub_80A8048
asrs r4, 8
strh r4, [r7, 0x22]
lsls r4, 16
asrs r4, 16
movs r0, 0x8
negs r0, r0
cmp r4, r0
bge _0810D7BA
adds r0, r7, 0
bl DestroyAnimSprite
b _0810D818
_0810D7BA:
ldrh r0, [r7, 0x2E]
subs r0, 0x1
strh r0, [r7, 0x2E]
b _0810D818
_0810D7C2:
ldr r4, =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, =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, =sub_810D830
str r0, [r7, 0x1C]
_0810D818:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_810D770
thumb_func_start sub_810D830
sub_810D830: @ 810D830
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 _0810D86A
adds r1, r3, 0
movs r0, 0x8
negs r0, r0
cmp r1, r0
blt _0810D86A
cmp r1, 0x78
ble _0810D870
_0810D86A:
adds r0, r2, 0
bl DestroyAnimSprite
_0810D870:
pop {r0}
bx r0
thumb_func_end sub_810D830
thumb_func_start sub_810D874
sub_810D874: @ 810D874
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810D8B8
ldr r4, =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, =gBattleAnimTarget
ldrb r4, [r0]
ldr r0, =gBattleAnimAttacker
b _0810D8BE
.pool
_0810D8B8:
ldr r0, =gBattleAnimAttacker
ldrb r4, [r0]
ldr r0, =gBattleAnimTarget
_0810D8BE:
ldrb r0, [r0]
bl sub_80A8328
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 _0810D8F8
ldrb r2, [r5, 0x3]
lsls r1, r2, 26
lsrs r1, 27
movs r0, 0x8
orrs r1, r0
lsls r1, 1
subs r0, 0x47
b _0810D912
.pool
_0810D8F8:
adds r0, r4, 0
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810D918
ldrb r2, [r5, 0x3]
lsls r1, r2, 26
lsrs r1, 27
movs r0, 0x18
orrs r1, r0
lsls r1, 1
subs r0, 0x57
_0810D912:
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x3]
_0810D918:
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 obj_translate_based_on_private_1_2_3_4
ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A6F98
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810D874
thumb_func_start sub_810D960
sub_810D960: @ 810D960
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 _0810D976
adds r0, r4, 0
bl DestroyAnimSprite
_0810D976:
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810D960
thumb_func_start sub_810D984
sub_810D984: @ 810D984
push {r4-r6,lr}
adds r5, r0, 0
ldr r4, =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, =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, =gAnimMoveTurn
ldrb r6, [r0]
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810D9CE
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
_0810D9CE:
movs r0, 0x1
ands r6, r0
cmp r6, 0
beq _0810D9E2
ldrh r0, [r5, 0x32]
negs r0, r0
strh r0, [r5, 0x32]
ldrh r0, [r5, 0x30]
adds r0, 0x1
strh r0, [r5, 0x30]
_0810D9E2:
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, =sub_810D960
str r0, [r5, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810D984
thumb_func_start sub_810DA10
sub_810DA10: @ 810DA10
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810DA2C
adds r0, r4, 0
movs r1, 0
bl sub_80A69CC
b _0810DA34
.pool
_0810DA2C:
adds r0, r4, 0
movs r1, 0
bl sub_80A6980
_0810DA34:
bl IsContest
lsls r0, 24
cmp r0, 0
beq _0810DA48
adds r0, r4, 0
movs r1, 0x2
bl StartSpriteAnim
b _0810DA5E
_0810DA48:
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810DA5E
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAnim
_0810DA5E:
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810DA10
thumb_func_start sub_810DA7C
sub_810DA7C: @ 810DA7C
push {r4,lr}
adds r4, r0, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _0810DAB6
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 _0810DAB6
adds r0, r4, 0
bl DestroyAnimSprite
_0810DAB6:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810DA7C
thumb_func_start sub_810DABC
sub_810DABC: @ 810DABC
push {r4-r7,lr}
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0x1
beq _0810DAF4
cmp r0, 0x1
bgt _0810DB0E
cmp r0, 0
bne _0810DB0E
movs r0, 0
bl sub_80A6DAC
ldr r0, =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x18]
b _0810DB06
.pool
_0810DAF4:
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 _0810DB1A
_0810DB06:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _0810DB1A
_0810DB0E:
movs r2, 0xA0
lsls r2, 3
adds r0, r2, 0
ldrh r1, [r4, 0x1A]
adds r0, r1
strh r0, [r4, 0x1A]
_0810DB1A:
movs r2, 0xB0
lsls r2, 4
adds r0, r2, 0
ldrh r1, [r4, 0x1C]
adds r0, r1
strh r0, [r4, 0x1C]
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810DB50
ldr r1, =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 _0810DB60
.pool
_0810DB50:
ldr r2, =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
_0810DB60:
ldr r3, =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, =gBattleAnimArgs
movs r2, 0xE
ldrsh r1, [r0, r2]
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _0810DB98
strh r5, [r7]
strh r5, [r3]
movs r0, 0x1
bl sub_80A6DAC
adds r0, r6, 0
bl DestroyAnimVisualTask
_0810DB98:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_810DABC
thumb_func_start sub_810DBAC
sub_810DBAC: @ 810DBAC
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0810DBC2
adds r0, r5, 0
movs r1, 0x2
bl StartSpriteAnim
_0810DBC2:
adds r0, r5, 0
movs r1, 0x1
bl sub_80A69CC
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x2E]
ldr r4, =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, =0x0000ffe2
strh r0, [r5, 0x38]
adds r0, r5, 0
bl sub_80A68D4
ldr r0, =sub_810DC10
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810DBAC
thumb_func_start sub_810DC10
sub_810DC10: @ 810DC10
push {r4,lr}
adds r4, r0, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
beq _0810DC24
adds r0, r4, 0
bl DestroyAnimSprite
_0810DC24:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810DC10
thumb_func_start sub_810DC2C
sub_810DC2C: @ 810DC2C
push {r4-r6,lr}
sub sp, 0x4
adds r4, r0, 0
ldr r5, =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0810DC44
adds r0, r4, 0
movs r1, 0x2
bl StartSpriteAnim
_0810DC44:
adds r0, r4, 0
movs r1, 0x1
bl sub_80A69CC
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
mov r6, sp
adds r6, 0x2
movs r1, 0x1
mov r2, sp
adds r3, r6, 0
bl sub_80A8924
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810DC72
ldrh r0, [r5, 0x8]
negs r0, r0
strh r0, [r5, 0x8]
_0810DC72:
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
mov r1, sp
ldrh r0, [r5, 0x8]
ldrh r1, [r1]
adds r0, r1
strh r0, [r4, 0x32]
ldrh r0, [r5, 0xA]
ldrh r6, [r6]
adds r0, r6
strh r0, [r4, 0x36]
ldr r0, =0x0000ffe2
strh r0, [r4, 0x38]
adds r0, r4, 0
bl sub_80A68D4
ldr r0, =sub_810DCB4
str r0, [r4, 0x1C]
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810DC2C
thumb_func_start sub_810DCB4
sub_810DCB4: @ 810DCB4
push {r4,lr}
adds r4, r0, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
beq _0810DCC8
adds r0, r4, 0
bl DestroyAnimSprite
_0810DCC8:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810DCB4
thumb_func_start sub_810DCD0
sub_810DCD0: @ 810DCD0
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimArgs
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
ldrh r1, [r5]
adds r0, r1
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
ldrh r1, [r5, 0x2]
adds r0, r1
strh r0, [r4, 0x36]
adds r0, r4, 0
bl sub_80A6E14
movs r1, 0x30
ldrsh r0, [r4, r1]
movs r2, 0x4
ldrsh r1, [r5, r2]
bl __divsi3
strh r0, [r4, 0x38]
movs r1, 0x32
ldrsh r0, [r4, r1]
movs r2, 0x4
ldrsh r1, [r5, r2]
bl __divsi3
strh r0, [r4, 0x3A]
ldr r0, =sub_810DD24
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810DCD0
thumb_func_start sub_810DD24
sub_810DD24: @ 810DD24
push {r4,lr}
adds r4, r0, 0
bl sub_80A656C
ldrh r0, [r4, 0x30]
ldrh r1, [r4, 0x38]
subs r0, r1
strh r0, [r4, 0x30]
ldrh r0, [r4, 0x32]
ldrh r1, [r4, 0x3A]
subs r0, r1
strh r0, [r4, 0x32]
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0810DD4A
adds r0, r4, 0
bl DestroyAnimSprite
_0810DD4A:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810DD24
thumb_func_start sub_810DD50
sub_810DD50: @ 810DD50
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
adds r3, r4, 0
adds r3, 0x22
movs r1, 0x1
bl sub_80A8924
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810DD7C
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
_0810DD7C:
ldr r0, =gBattleAnimArgs
ldrh r2, [r0]
ldrh r1, [r4, 0x20]
adds r2, r1
strh r2, [r4, 0x20]
ldrh r1, [r0, 0x2]
ldrh r3, [r4, 0x22]
adds r1, r3
strh r1, [r4, 0x22]
ldrh r3, [r0, 0x8]
strh r3, [r4, 0x2E]
ldrh r0, [r0, 0x4]
adds r2, r0
strh r2, [r4, 0x32]
adds r1, r3
strh r1, [r4, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r4, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810DD50
thumb_func_start sub_810DDC4
sub_810DDC4: @ 810DDC4
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0810DDE0
adds r0, r4, 0
movs r1, 0x1
bl sub_80A6980
b _0810DE16
.pool
_0810DDE0:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
adds r3, r4, 0
adds r3, 0x22
movs r1, 0x1
bl sub_80A8924
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810DE06
ldrh r0, [r5]
negs r0, r0
strh r0, [r5]
_0810DE06:
ldrh r0, [r5]
ldrh r1, [r4, 0x20]
adds r0, r1
strh r0, [r4, 0x20]
ldrh r0, [r5, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
_0810DE16:
ldr r0, =sub_810DE2C
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810DDC4
thumb_func_start sub_810DE2C
sub_810DE2C: @ 810DE2C
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x2E]
adds r0, 0xB
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x2E]
movs r1, 0x2E
ldrsh r0, [r4, r1]
movs r1, 0x4
bl Sin
strh r0, [r4, 0x24]
ldrh r0, [r4, 0x30]
adds r0, 0x30
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 24
negs r0, r0
strh r0, [r4, 0x26]
adds r0, r4, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _0810DE68
adds r0, r4, 0
bl DestroyAnimSprite
_0810DE68:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810DE2C
thumb_func_start sub_810DE70
sub_810DE70: @ 810DE70
push {r4,lr}
adds r4, r0, 0
movs r1, 0
bl sub_80A6980
ldrh r0, [r4, 0x22]
adds r0, 0x14
strh r0, [r4, 0x22]
movs r0, 0xBF
strh r0, [r4, 0x30]
ldr r1, =sub_810DE98
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810DE70
thumb_func_start sub_810DE98
sub_810DE98: @ 810DE98
push {r4,lr}
adds r4, r0, 0
movs r1, 0x30
ldrsh r0, [r4, r1]
movs r1, 0x20
bl Sin
strh r0, [r4, 0x24]
movs r1, 0x30
ldrsh r0, [r4, r1]
movs r1, 0x8
bl Cos
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x30]
adds r0, 0x5
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x30]
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x47
bne _0810DED2
adds r0, r4, 0
bl DestroyAnimSprite
_0810DED2:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810DE98
thumb_func_start sub_810DED8
sub_810DED8: @ 810DED8
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r1, =gTasks
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
adds r4, r1
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r4, 0x8]
ldrh r0, [r1]
strh r0, [r4, 0xA]
ldr r0, =0x00002719
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0xC]
ldr r0, =sub_810DF18
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810DED8
thumb_func_start sub_810DF18
sub_810DF18: @ 810DF18
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r2, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r3, r0, r2
ldrh r0, [r3, 0x1C]
adds r1, r0, 0x1
strh r1, [r3, 0x1C]
lsls r0, 16
asrs r0, 16
movs r4, 0xA
ldrsh r1, [r3, r4]
adds r7, r2, 0
cmp r0, r1
bne _0810DF76
movs r0, 0
strh r0, [r3, 0x1C]
ldrb r0, [r3, 0xC]
ldr r2, =gPlttBufferFaded
lsls r0, 4
movs r3, 0x84
lsls r3, 1
adds r1, r0, r3
lsls r1, 1
adds r1, r2
ldrh r6, [r1]
movs r4, 0x7
mov r12, r0
ldr r0, =0x00000107
add r0, r12
lsls r0, 1
adds r3, r0, r2
_0810DF5E:
ldrh r0, [r3]
strh r0, [r1]
subs r3, 0x2
subs r1, 0x2
subs r4, 0x1
cmp r4, 0
bgt _0810DF5E
ldr r0, =0x00000101
add r0, r12
lsls r0, 1
adds r0, r2
strh r6, [r0]
_0810DF76:
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r7
ldrh r1, [r0, 0x8]
subs r1, 0x1
strh r1, [r0, 0x8]
lsls r1, 16
cmp r1, 0
bne _0810DF90
adds r0, r5, 0
bl DestroyAnimVisualTask
_0810DF90:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_810DF18
thumb_func_start sub_810DFA8
sub_810DFA8: @ 810DFA8
push {r4-r6,lr}
adds r6, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810DFC8
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_0810DFC8:
ldr r4, =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
ldrh r0, [r6, 0x20]
strh r0, [r6, 0x30]
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x4]
adds r0, r1
strh r0, [r6, 0x32]
ldrh r0, [r6, 0x22]
strh r0, [r6, 0x34]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r4, [r4, 0x6]
adds r0, r4
strh r0, [r6, 0x36]
adds r0, r6, 0
bl obj_translate_based_on_private_1_2_3_4
ldr r0, =sub_80A67BC
str r0, [r6, 0x1C]
ldr r1, =sub_810E028
adds r0, r6, 0
bl StoreSpriteCallbackInData6
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810DFA8
thumb_func_start sub_810E028
sub_810E028: @ 810E028
push {r4,lr}
adds r4, r0, 0
bl sub_80A6F3C
lsls r0, 24
cmp r0, 0
beq _0810E03C
adds r0, r4, 0
bl DestroyAnimSprite
_0810E03C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810E028
thumb_func_start sub_810E044
sub_810E044: @ 810E044
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810E070
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
ldrh r0, [r1, 0x2]
negs r0, r0
strh r0, [r1, 0x2]
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
ldrh r0, [r1, 0x6]
negs r0, r0
strh r0, [r1, 0x6]
_0810E070:
bl IsContest
lsls r0, 24
cmp r0, 0
beq _0810E088
ldr r0, =gBattleAnimArgs
ldrh r1, [r0, 0x2]
negs r1, r1
strh r1, [r0, 0x2]
ldrh r1, [r0, 0x6]
negs r1, r1
strh r1, [r0, 0x6]
_0810E088:
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
ldr r2, =gBattleAnimArgs
ldrh r1, [r2]
ldrh r3, [r5, 0x20]
adds r1, r3
strh r1, [r5, 0x20]
lsrs r0, 24
ldrh r1, [r2, 0x2]
adds r0, r1
strh r0, [r5, 0x22]
ldrh r0, [r2, 0x8]
strh r0, [r5, 0x2E]
movs r3, 0xC
ldrsh r0, [r2, r3]
cmp r0, 0
bne _0810E0EC
ldr r4, =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]
b _0810E0FE
.pool
_0810E0EC:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
adds r3, r5, 0
adds r3, 0x36
movs r1, 0x1
bl sub_80A8924
_0810E0FE:
ldr r4, =gBattleAnimArgs
ldrh r0, [r4, 0x4]
ldrh r1, [r5, 0x32]
adds r0, r1
strh r0, [r5, 0x32]
ldrh r0, [r4, 0x6]
ldrh r3, [r5, 0x36]
adds r0, r3
strh r0, [r5, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r5, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldrb r1, [r4, 0xA]
adds r0, r5, 0
bl SeekSpriteAnim
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810E044
thumb_func_start sub_810E13C
sub_810E13C: @ 810E13C
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x30]
ldr r0, =sub_810E184
str r0, [r4, 0x1C]
movs r0, 0
bl GetAnimBattlerSpriteId
ldr r2, =gSprites
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
adds r1, 0x3E
ldrb r0, [r1]
movs r2, 0x4
orrs r0, r2
strb r0, [r1]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810E13C
thumb_func_start sub_810E184
sub_810E184: @ 810E184
push {lr}
adds r2, r0, 0
ldrh r1, [r2, 0x2E]
movs r3, 0x2E
ldrsh r0, [r2, r3]
cmp r0, 0
ble _0810E198
subs r0, r1, 0x1
strh r0, [r2, 0x2E]
b _0810E1AA
_0810E198:
ldrh r0, [r2, 0x30]
ldrh r1, [r2, 0x32]
adds r0, r1
strh r0, [r2, 0x32]
lsls r0, 16
asrs r0, 24
ldrh r1, [r2, 0x26]
subs r1, r0
strh r1, [r2, 0x26]
_0810E1AA:
movs r3, 0x22
ldrsh r0, [r2, r3]
movs r3, 0x26
ldrsh r1, [r2, r3]
adds r0, r1
movs r1, 0x20
negs r1, r1
cmp r0, r1
bge _0810E1C2
adds r0, r2, 0
bl DestroyAnimSprite
_0810E1C2:
pop {r0}
bx r0
thumb_func_end sub_810E184
thumb_func_start sub_810E1C8
sub_810E1C8: @ 810E1C8
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810E1F8
movs r0, 0x88
lsls r0, 1
strh r0, [r5, 0x20]
ldr r0, =0x0000ffe0
strh r0, [r5, 0x22]
adds r0, r5, 0
movs r1, 0x1
bl StartSpriteAffineAnim
b _0810E1FE
.pool
_0810E1F8:
ldr r0, =0x0000ffe0
strh r0, [r5, 0x20]
strh r0, [r5, 0x22]
_0810E1FE:
ldr r0, =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
ldrh r0, [r5, 0x22]
strh r0, [r5, 0x34]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
adds r0, r5, 0
bl obj_translate_based_on_private_1_2_3_4
ldr r0, =sub_810E24C
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810E1C8
thumb_func_start sub_810E24C
sub_810E24C: @ 810E24C
push {r4,lr}
adds r4, r0, 0
movs r0, 0x1
strh r0, [r4, 0x2E]
adds r0, r4, 0
bl sub_80A6F3C
ldrh r1, [r4, 0x34]
lsrs r0, r1, 8
cmp r0, 0xC8
bls _0810E274
ldrh r0, [r4, 0x24]
ldrh r2, [r4, 0x20]
adds r0, r2
strh r0, [r4, 0x20]
movs r0, 0
strh r0, [r4, 0x24]
movs r0, 0xFF
ands r0, r1
strh r0, [r4, 0x34]
_0810E274:
movs r1, 0x20
ldrsh r0, [r4, r1]
movs r2, 0x24
ldrsh r1, [r4, r2]
adds r0, r1
adds r0, 0x20
movs r1, 0x98
lsls r1, 1
cmp r0, r1
bhi _0810E296
movs r1, 0x22
ldrsh r0, [r4, r1]
movs r2, 0x26
ldrsh r1, [r4, r2]
adds r0, r1
cmp r0, 0xA0
ble _0810E2BC
_0810E296:
movs r0, 0
bl GetAnimBattlerSpriteId
ldr r2, =gSprites
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
adds r1, 0x3E
ldrb r2, [r1]
movs r0, 0x5
negs r0, r0
ands r0, r2
strb r0, [r1]
adds r0, r4, 0
bl DestroyAnimSprite
_0810E2BC:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810E24C
thumb_func_start sub_810E2C8
sub_810E2C8: @ 810E2C8
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x2E]
subs r1, r0, 0x1
strh r1, [r4, 0x2E]
lsls r0, 16
cmp r0, 0
bgt _0810E308
ldrb r0, [r4, 0x1]
lsls r0, 30
lsrs r0, 30
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _0810E2FA
ldrb r0, [r4, 0x3]
lsls r0, 26
lsrs r0, 27
bl FreeOamMatrix
ldrb r1, [r4, 0x1]
movs r0, 0x4
negs r0, r0
ands r0, r1
strb r0, [r4, 0x1]
_0810E2FA:
adds r0, r4, 0
bl DestroySprite
ldr r1, =gAnimVisualTaskCount
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
_0810E308:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810E2C8
thumb_func_start sub_810E314
sub_810E314: @ 810E314
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r7, r0, 0
adds r5, r7, 0
adds r5, 0x2E
ldr r0, =gBattleAnimArgs
ldrh r1, [r0, 0xE]
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _0810E33C
ldr r0, =gBattleAnimAttacker
b _0810E33E
.pool
_0810E33C:
ldr r0, =gBattleAnimTarget
_0810E33E:
ldrb r6, [r0]
adds r0, r6, 0
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810E354
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
_0810E354:
adds r0, r6, 0
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
strh r0, [r7, 0x20]
adds r0, r6, 0
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
ldrh r1, [r4, 0x2]
lsrs r0, 24
adds r1, r0, r1
strh r1, [r7, 0x22]
lsls r1, 8
strh r1, [r5, 0x8]
ldrh r1, [r4, 0xC]
adds r0, r1
lsls r0, 1
ldrh r2, [r5, 0xE]
movs r1, 0x1
ands r1, r2
orrs r1, r0
strh r1, [r5, 0xE]
ldrb r0, [r5]
movs r2, 0x4
mov r8, r2
mov r1, r8
orrs r0, r1
strb r0, [r5]
ldrh r0, [r4, 0x4]
ldrb r1, [r4, 0x4]
strh r1, [r5, 0x2]
lsls r0, 16
lsrs r0, 24
strh r0, [r5, 0xA]
ldrh r0, [r4, 0x6]
strh r0, [r5, 0x4]
ldrh r0, [r4, 0x8]
strh r0, [r5, 0x6]
ldrh r0, [r4, 0xA]
strh r0, [r5, 0xC]
subs r1, 0x40
lsls r1, 16
lsrs r1, 16
cmp r1, 0x7F
bhi _0810E44A
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810E3F0
adds r0, r6, 0
bl sub_80A8328
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
movs r1, 0x3
ands r0, r1
lsls r0, 2
ldrb r2, [r7, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r7, 0x5]
b _0810E408
.pool
_0810E3F0:
adds r0, r6, 0
bl sub_80A8328
movs r1, 0x3
ands r1, r0
lsls r1, 2
ldrb r2, [r7, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r7, 0x5]
_0810E408:
ldrb r1, [r5, 0xE]
movs r4, 0x2
negs r4, r4
adds r0, r4, 0
ands r0, r1
strb r0, [r5, 0xE]
movs r2, 0x4
ldrsh r0, [r5, r2]
movs r1, 0x80
lsls r1, 8
ands r0, r1
cmp r0, 0
bne _0810E4AA
adds r3, r7, 0
adds r3, 0x3F
ldrb r2, [r3]
lsls r0, r2, 31
lsrs r0, 31
movs r1, 0x1
eors r1, r0
adds r0, r4, 0
ands r0, r2
orrs r0, r1
strb r0, [r3]
lsls r0, 31
lsrs r0, 31
adds r1, r7, 0
adds r1, 0x2A
strb r0, [r1]
ldrb r0, [r3]
movs r1, 0x4
orrs r0, r1
b _0810E4A2
_0810E44A:
adds r0, r6, 0
bl sub_80A8328
movs r1, 0x3
ands r1, r0
lsls r1, 2
ldrb r2, [r7, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r7, 0x5]
ldrb r0, [r5, 0xE]
movs r4, 0x1
orrs r0, r4
strb r0, [r5, 0xE]
movs r1, 0x4
ldrsh r0, [r5, r1]
movs r1, 0x80
lsls r1, 8
ands r0, r1
cmp r0, 0
beq _0810E4AA
adds r3, r7, 0
adds r3, 0x3F
ldrb r2, [r3]
lsls r1, r2, 31
lsrs r1, 31
movs r0, 0x1
eors r1, r0
ands r1, r4
movs r0, 0x2
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
lsls r0, 31
lsrs r0, 31
adds r1, r7, 0
adds r1, 0x2A
strb r0, [r1]
ldrb r0, [r3]
mov r2, r8
orrs r0, r2
_0810E4A2:
movs r1, 0x11
negs r1, r1
ands r0, r1
strb r0, [r3]
_0810E4AA:
ldrh r1, [r5, 0x2]
lsrs r1, 6
lsls r1, 4
ldrb r2, [r5]
movs r0, 0xF
ands r0, r2
orrs r0, r1
strb r0, [r5]
ldr r3, =gSineTable
ldrh r0, [r5, 0x2]
lsls r0, 1
adds r0, r3
movs r2, 0
ldrsh r1, [r0, r2]
ldrb r0, [r5, 0xC]
muls r0, r1
asrs r0, 8
strh r0, [r7, 0x24]
ldrb r2, [r7, 0x3]
lsls r2, 26
lsrs r2, 27
movs r1, 0x24
ldrsh r0, [r7, r1]
negs r0, r0
asrs r0, 1
ldrb r5, [r5, 0xA]
adds r0, r5
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
adds r1, r3
ldrh r4, [r1]
ldr r1, =gOamMatrices
lsls r2, 3
adds r2, r1
adds r0, 0x40
lsls r0, 1
adds r0, r3
ldrh r0, [r0]
strh r0, [r2, 0x6]
strh r0, [r2]
strh r4, [r2, 0x2]
lsls r0, r4, 16
asrs r0, 16
negs r0, r0
strh r0, [r2, 0x4]
ldr r0, =sub_810E520
str r0, [r7, 0x1C]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_810E314
thumb_func_start sub_810E520
sub_810E520: @ 810E520
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r5, r0, 0
movs r6, 0
adds r4, r5, 0
adds r4, 0x2E
ldrb r2, [r4]
movs r7, 0x1
movs r0, 0x1
mov r9, r0
ands r0, r2
cmp r0, 0
beq _0810E55A
ldrb r0, [r4, 0x1]
adds r1, r0, 0
adds r1, 0xFF
strb r1, [r4, 0x1]
lsls r0, 24
cmp r0, 0
beq _0810E54E
b _0810EA36
_0810E54E:
movs r0, 0x2
negs r0, r0
ands r0, r2
strb r0, [r4]
strb r6, [r4, 0x1]
b _0810EA36
_0810E55A:
ldrh r0, [r4, 0x2]
lsrs r1, r0, 6
mov r12, r0
cmp r1, 0x1
bne _0810E566
b _0810E68A
_0810E566:
cmp r1, 0x1
bgt _0810E570
cmp r1, 0
beq _0810E57E
b _0810E97C
_0810E570:
cmp r1, 0x2
bne _0810E576
b _0810E77E
_0810E576:
cmp r1, 0x3
bne _0810E57C
b _0810E872
_0810E57C:
b _0810E97C
_0810E57E:
lsls r1, r2, 24
lsrs r0, r1, 28
cmp r0, 0x1
bne _0810E592
movs r0, 0x8
orrs r0, r2
orrs r0, r7
strb r0, [r4]
strb r6, [r4, 0x1]
b _0810E680
_0810E592:
lsrs r0, r1, 28
cmp r0, 0x3
bne _0810E5B4
lsls r0, r2, 30
lsrs r0, 31
movs r1, 0x1
eors r0, r1
ands r0, r7
lsls r0, 1
movs r1, 0x3
negs r1, r1
ands r1, r2
orrs r1, r0
orrs r1, r7
strb r1, [r4]
strb r6, [r4, 0x1]
b _0810E680
_0810E5B4:
movs r0, 0x8
ands r0, r2
cmp r0, 0
beq _0810E680
adds r3, r5, 0
adds r3, 0x3F
ldrb r2, [r3]
lsls r1, r2, 31
lsrs r1, 31
movs r6, 0x1
eors r1, r6
ands r1, r7
movs r0, 0x2
negs r0, r0
mov r8, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
lsls r0, 31
lsrs r0, 31
adds r1, r5, 0
adds r1, 0x2A
strb r0, [r1]
ldrb r0, [r3]
movs r1, 0x4
orrs r0, r1
movs r1, 0x11
negs r1, r1
ands r0, r1
strb r0, [r3]
ldrb r1, [r4]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0810E672
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810E642
ldrb r1, [r4, 0xE]
mov r0, r9
ands r0, r1
cmp r0, 0
bne _0810E628
ldrb r2, [r5, 0x5]
lsls r1, r2, 28
lsrs r1, 30
subs r1, 0x1
movs r0, 0x3
ands r1, r0
lsls r1, 2
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
b _0810E660
_0810E628:
ldrb r2, [r5, 0x5]
lsls r1, r2, 28
lsrs r1, 30
adds r1, 0x1
movs r0, 0x3
ands r1, r0
lsls r1, 2
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
b _0810E660
_0810E642:
ldrb r1, [r4, 0xE]
mov r0, r9
ands r0, r1
cmp r0, 0
bne _0810E656
adds r1, r5, 0
adds r1, 0x43
ldrb r0, [r1]
subs r0, 0xC
b _0810E65E
_0810E656:
adds r1, r5, 0
adds r1, 0x43
ldrb r0, [r1]
adds r0, 0xC
_0810E65E:
strb r0, [r1]
_0810E660:
ldrb r2, [r4, 0xE]
lsls r0, r2, 31
lsrs r0, 31
eors r0, r6
ands r0, r7
mov r1, r8
ands r1, r2
orrs r1, r0
strb r1, [r4, 0xE]
_0810E672:
ldrb r1, [r4]
movs r0, 0x9
negs r0, r0
ands r0, r1
strb r0, [r4]
ldrh r1, [r4, 0x2]
mov r12, r1
_0810E680:
ldrb r1, [r4]
movs r0, 0xF
ands r0, r1
strb r0, [r4]
b _0810E97C
_0810E68A:
lsls r1, r2, 24
lsrs r0, r1, 28
cmp r0, 0
bne _0810E698
movs r0, 0x8
orrs r0, r2
b _0810E6A0
_0810E698:
lsrs r0, r1, 28
cmp r0, 0x2
bne _0810E6A8
adds r0, r2, 0
_0810E6A0:
orrs r0, r7
strb r0, [r4]
strb r6, [r4, 0x1]
b _0810E774
_0810E6A8:
movs r0, 0x8
ands r0, r2
cmp r0, 0
beq _0810E774
adds r3, r5, 0
adds r3, 0x3F
ldrb r2, [r3]
lsls r1, r2, 31
lsrs r1, 31
movs r6, 0x1
eors r1, r6
ands r1, r7
movs r0, 0x2
negs r0, r0
mov r8, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
lsls r0, 31
lsrs r0, 31
adds r1, r5, 0
adds r1, 0x2A
strb r0, [r1]
ldrb r0, [r3]
movs r1, 0x4
orrs r0, r1
movs r1, 0x11
negs r1, r1
ands r0, r1
strb r0, [r3]
ldrb r1, [r4]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0810E766
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810E736
ldrb r1, [r4, 0xE]
mov r0, r9
ands r0, r1
cmp r0, 0
bne _0810E71C
ldrb r2, [r5, 0x5]
lsls r1, r2, 28
lsrs r1, 30
subs r1, 0x1
movs r0, 0x3
ands r1, r0
lsls r1, 2
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
b _0810E754
_0810E71C:
ldrb r2, [r5, 0x5]
lsls r1, r2, 28
lsrs r1, 30
adds r1, 0x1
movs r0, 0x3
ands r1, r0
lsls r1, 2
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
b _0810E754
_0810E736:
ldrb r1, [r4, 0xE]
mov r0, r9
ands r0, r1
cmp r0, 0
bne _0810E74A
adds r1, r5, 0
adds r1, 0x43
ldrb r0, [r1]
subs r0, 0xC
b _0810E752
_0810E74A:
adds r1, r5, 0
adds r1, 0x43
ldrb r0, [r1]
adds r0, 0xC
_0810E752:
strb r0, [r1]
_0810E754:
ldrb r2, [r4, 0xE]
lsls r0, r2, 31
lsrs r0, 31
eors r0, r6
ands r0, r7
mov r1, r8
ands r1, r2
orrs r1, r0
strb r1, [r4, 0xE]
_0810E766:
ldrb r1, [r4]
movs r0, 0x9
negs r0, r0
ands r0, r1
strb r0, [r4]
ldrh r1, [r4, 0x2]
mov r12, r1
_0810E774:
ldrb r0, [r4]
movs r1, 0xF
ands r1, r0
movs r0, 0x10
b _0810E978
_0810E77E:
lsls r1, r2, 24
lsrs r0, r1, 28
cmp r0, 0x3
bne _0810E78C
movs r0, 0x8
orrs r0, r2
b _0810E794
_0810E78C:
lsrs r0, r1, 28
cmp r0, 0x1
bne _0810E79C
adds r0, r2, 0
_0810E794:
orrs r0, r7
strb r0, [r4]
strb r6, [r4, 0x1]
b _0810E868
_0810E79C:
movs r0, 0x8
ands r0, r2
cmp r0, 0
beq _0810E868
adds r3, r5, 0
adds r3, 0x3F
ldrb r2, [r3]
lsls r1, r2, 31
lsrs r1, 31
movs r6, 0x1
eors r1, r6
ands r1, r7
movs r0, 0x2
negs r0, r0
mov r8, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
lsls r0, 31
lsrs r0, 31
adds r1, r5, 0
adds r1, 0x2A
strb r0, [r1]
ldrb r0, [r3]
movs r1, 0x4
orrs r0, r1
movs r1, 0x11
negs r1, r1
ands r0, r1
strb r0, [r3]
ldrb r1, [r4]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0810E85A
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810E82A
ldrb r1, [r4, 0xE]
mov r0, r9
ands r0, r1
cmp r0, 0
bne _0810E810
ldrb r2, [r5, 0x5]
lsls r1, r2, 28
lsrs r1, 30
subs r1, 0x1
movs r0, 0x3
ands r1, r0
lsls r1, 2
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
b _0810E848
_0810E810:
ldrb r2, [r5, 0x5]
lsls r1, r2, 28
lsrs r1, 30
adds r1, 0x1
movs r0, 0x3
ands r1, r0
lsls r1, 2
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
b _0810E848
_0810E82A:
ldrb r1, [r4, 0xE]
mov r0, r9
ands r0, r1
cmp r0, 0
bne _0810E83E
adds r1, r5, 0
adds r1, 0x43
ldrb r0, [r1]
subs r0, 0xC
b _0810E846
_0810E83E:
adds r1, r5, 0
adds r1, 0x43
ldrb r0, [r1]
adds r0, 0xC
_0810E846:
strb r0, [r1]
_0810E848:
ldrb r2, [r4, 0xE]
lsls r0, r2, 31
lsrs r0, 31
eors r0, r6
ands r0, r7
mov r1, r8
ands r1, r2
orrs r1, r0
strb r1, [r4, 0xE]
_0810E85A:
ldrb r1, [r4]
movs r0, 0x9
negs r0, r0
ands r0, r1
strb r0, [r4]
ldrh r1, [r4, 0x2]
mov r12, r1
_0810E868:
ldrb r0, [r4]
movs r1, 0xF
ands r1, r0
movs r0, 0x20
b _0810E978
_0810E872:
lsls r1, r2, 24
lsrs r0, r1, 28
cmp r0, 0x2
bne _0810E882
movs r0, 0x8
orrs r0, r2
strb r0, [r4]
b _0810E970
_0810E882:
lsrs r0, r1, 28
cmp r0, 0
bne _0810E8A4
lsls r0, r2, 30
lsrs r0, 31
movs r1, 0x1
eors r0, r1
ands r0, r7
lsls r0, 1
movs r1, 0x3
negs r1, r1
ands r1, r2
orrs r1, r0
orrs r1, r7
strb r1, [r4]
strb r6, [r4, 0x1]
b _0810E970
_0810E8A4:
movs r0, 0x8
ands r0, r2
cmp r0, 0
beq _0810E970
adds r3, r5, 0
adds r3, 0x3F
ldrb r2, [r3]
lsls r1, r2, 31
lsrs r1, 31
movs r6, 0x1
eors r1, r6
ands r1, r7
movs r0, 0x2
negs r0, r0
mov r8, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
lsls r0, 31
lsrs r0, 31
adds r1, r5, 0
adds r1, 0x2A
strb r0, [r1]
ldrb r0, [r3]
movs r1, 0x4
orrs r0, r1
movs r1, 0x11
negs r1, r1
ands r0, r1
strb r0, [r3]
ldrb r1, [r4]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0810E962
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810E932
ldrb r1, [r4, 0xE]
mov r0, r9
ands r0, r1
cmp r0, 0
bne _0810E918
ldrb r2, [r5, 0x5]
lsls r1, r2, 28
lsrs r1, 30
subs r1, 0x1
movs r0, 0x3
ands r1, r0
lsls r1, 2
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
b _0810E950
_0810E918:
ldrb r2, [r5, 0x5]
lsls r1, r2, 28
lsrs r1, 30
adds r1, 0x1
movs r0, 0x3
ands r1, r0
lsls r1, 2
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
b _0810E950
_0810E932:
ldrb r1, [r4, 0xE]
mov r0, r9
ands r0, r1
cmp r0, 0
bne _0810E946
adds r1, r5, 0
adds r1, 0x43
ldrb r0, [r1]
subs r0, 0xC
b _0810E94E
_0810E946:
adds r1, r5, 0
adds r1, 0x43
ldrb r0, [r1]
adds r0, 0xC
_0810E94E:
strb r0, [r1]
_0810E950:
ldrb r2, [r4, 0xE]
lsls r0, r2, 31
lsrs r0, 31
eors r0, r6
ands r0, r7
mov r1, r8
ands r1, r2
orrs r1, r0
strb r1, [r4, 0xE]
_0810E962:
ldrb r1, [r4]
movs r0, 0x9
negs r0, r0
ands r0, r1
strb r0, [r4]
ldrh r1, [r4, 0x2]
mov r12, r1
_0810E970:
ldrb r0, [r4]
movs r1, 0xF
ands r1, r0
movs r0, 0x30
_0810E978:
orrs r1, r0
strb r1, [r4]
_0810E97C:
ldrb r1, [r4]
lsls r1, 30
lsrs r1, 31
adds r0, r4, 0
adds r0, 0xC
adds r0, r1
ldrb r1, [r0]
ldr r3, =gSineTable
mov r2, r12
lsls r0, r2, 1
adds r0, r3
movs r2, 0
ldrsh r0, [r0, r2]
muls r0, r1
asrs r0, 8
strh r0, [r5, 0x24]
ldrb r2, [r5, 0x3]
lsls r2, 26
lsrs r2, 27
movs r1, 0x24
ldrsh r0, [r5, r1]
negs r0, r0
asrs r0, 1
ldrb r1, [r4, 0xA]
adds r0, r1
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
adds r1, r3
ldrh r6, [r1]
ldr r1, =gOamMatrices
lsls r2, 3
adds r2, r1
adds r0, 0x40
lsls r0, 1
adds r0, r3
ldrh r0, [r0]
strh r0, [r2, 0x6]
strh r0, [r2]
strh r6, [r2, 0x2]
lsls r0, r6, 16
asrs r0, 16
negs r0, r0
strh r0, [r2, 0x4]
ldrh r0, [r4, 0x6]
ldrh r2, [r4, 0x8]
adds r0, r2
strh r0, [r4, 0x8]
lsls r0, 16
lsrs r0, 24
strh r0, [r5, 0x22]
movs r1, 0x4
ldrsh r0, [r4, r1]
movs r1, 0x80
lsls r1, 8
ands r0, r1
cmp r0, 0
beq _0810EA0C
ldrh r0, [r4, 0x4]
subs r1, 0x1
ands r1, r0
ldrh r0, [r4, 0x2]
subs r0, r1
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x2]
b _0810EA1C
.pool
_0810EA0C:
ldrh r0, [r4, 0x4]
ldr r1, =0x00007fff
ands r1, r0
ldrh r2, [r4, 0x2]
adds r1, r2
movs r0, 0xFF
ands r1, r0
strh r1, [r4, 0x2]
_0810EA1C:
movs r0, 0x22
ldrsh r1, [r5, r0]
movs r2, 0x26
ldrsh r0, [r5, r2]
adds r1, r0
ldrh r0, [r4, 0xE]
lsrs r0, 1
cmp r1, r0
blt _0810EA36
movs r0, 0
strh r0, [r5, 0x2E]
ldr r0, =sub_810E2C8
str r0, [r5, 0x1C]
_0810EA36:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_810E520
thumb_func_start sub_810EA4C
sub_810EA4C: @ 810EA4C
push {r4,r5,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8328
movs r1, 0x3
ands r1, r0
lsls r1, 2
ldrb r2, [r4, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x5]
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
ldr r0, =sub_80A7820
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810EA4C
thumb_func_start sub_810EAA0
sub_810EAA0: @ 810EAA0
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810EABC
adds r0, r5, 0
movs r1, 0
bl sub_80A69CC
b _0810EAC4
.pool
_0810EABC:
adds r0, r5, 0
movs r1, 0
bl sub_80A6980
_0810EAC4:
ldr r4, =gBattleAnimArgs
movs r2, 0x4
ldrsh r0, [r4, r2]
cmp r0, 0
bne _0810EADC
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810EAF2
_0810EADC:
movs r1, 0x4
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _0810EAF8
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810EAF8
_0810EAF2:
ldrh r0, [r5, 0x20]
adds r0, 0x8
strh r0, [r5, 0x20]
_0810EAF8:
ldr r4, =gBattleAnimArgs
ldrb r1, [r4, 0x8]
adds r0, r5, 0
bl SeekSpriteAnim
ldrh r0, [r5, 0x20]
subs r0, 0x20
strh r0, [r5, 0x20]
ldr r0, =0x00000ccc
strh r0, [r5, 0x30]
ldrh r1, [r4, 0x8]
movs r0, 0xC
adds r2, r0, 0
muls r2, r1
adds r0, r2, 0
ldrh r2, [r5, 0x24]
adds r0, r2
strh r0, [r5, 0x24]
strh r1, [r5, 0x2E]
ldrh r0, [r4, 0x6]
strh r0, [r5, 0x3C]
ldr r0, =sub_810EB40
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810EAA0
thumb_func_start sub_810EB40
sub_810EB40: @ 810EB40
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 24
ldrh r1, [r4, 0x24]
adds r0, r1
movs r1, 0
strh r0, [r4, 0x24]
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x6
bne _0810EB6A
strh r1, [r4, 0x2E]
strh r1, [r4, 0x24]
adds r0, r4, 0
bl StartSpriteAnim
_0810EB6A:
ldrh r0, [r4, 0x3C]
subs r0, 0x1
strh r0, [r4, 0x3C]
lsls r0, 16
asrs r0, 16
movs r1, 0x1
negs r1, r1
cmp r0, r1
bne _0810EB82
adds r0, r4, 0
bl DestroyAnimSprite
_0810EB82:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810EB40
thumb_func_start sub_810EB88
sub_810EB88: @ 810EB88
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
ldr r1, =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r7, r0, r1
ldrh r0, [r7, 0x8]
movs r1, 0x1F
ands r0, r1
cmp r0, 0
bne _0810EC02
ldr r1, =gAnimVisualTaskCount
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
movs r1, 0x8
ldrsh r0, [r7, r1]
movs r5, 0xD
negs r5, r5
adds r1, r5, 0
bl Sin
ldr r4, =gBattleAnimArgs
strh r0, [r4]
movs r1, 0x8
ldrsh r0, [r7, r1]
adds r1, r5, 0
bl Cos
strh r0, [r4, 0x2]
movs r0, 0x1
strh r0, [r4, 0x4]
movs r0, 0x3
strh r0, [r4, 0x6]
ldr r0, =gUnknown_085973E8
mov r8, r0
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
mov r0, r8
adds r1, r4, 0
movs r3, 0x3
bl CreateSpriteAndAnimate
_0810EC02:
ldrh r0, [r7, 0x8]
adds r0, 0x8
strh r0, [r7, 0x8]
lsls r0, 16
asrs r0, 16
cmp r0, 0xFF
ble _0810EC16
adds r0, r6, 0
bl DestroyAnimVisualTask
_0810EC16:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_810EB88
thumb_func_start sub_810EC34
sub_810EC34: @ 810EC34
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0810EC46
cmp r0, 0x1
beq _0810EC78
b _0810EC8C
_0810EC46:
adds r0, r4, 0
movs r1, 0x1
bl sub_80A69CC
movs r0, 0
bl GetAnimBattlerSpriteId
ldr r2, =gSprites
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
adds r1, 0x3E
ldrb r0, [r1]
movs r2, 0x4
orrs r0, r2
strb r0, [r1]
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
b _0810EC8C
.pool
_0810EC78:
adds r0, r4, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _0810EC8C
adds r0, r4, 0
bl DestroyAnimSprite
_0810EC8C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810EC34
thumb_func_start sub_810EC94
sub_810EC94: @ 810EC94
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0x1
beq _0810ECCC
cmp r0, 0x1
bgt _0810ECAA
cmp r0, 0
beq _0810ECB0
b _0810ED1E
_0810ECAA:
cmp r0, 0x2
beq _0810ECE0
b _0810ED1E
_0810ECB0:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
negs r0, r0
subs r0, 0x20
strh r0, [r4, 0x26]
b _0810ECD8
.pool
_0810ECCC:
ldrh r0, [r4, 0x26]
adds r0, 0xA
strh r0, [r4, 0x26]
lsls r0, 16
cmp r0, 0
blt _0810ED1E
_0810ECD8:
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
b _0810ED1E
_0810ECE0:
ldrh r0, [r4, 0x26]
subs r0, 0xA
strh r0, [r4, 0x26]
movs r2, 0x22
ldrsh r0, [r4, r2]
movs r2, 0x26
ldrsh r1, [r4, r2]
adds r0, r1
movs r1, 0x20
negs r1, r1
cmp r0, r1
bge _0810ED1E
movs r0, 0
bl GetAnimBattlerSpriteId
ldr r2, =gSprites
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
adds r1, 0x3E
ldrb r2, [r1]
movs r0, 0x5
negs r0, r0
ands r0, r2
strb r0, [r1]
adds r0, r4, 0
bl DestroyAnimSprite
_0810ED1E:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810EC94
thumb_func_start sub_810ED28
sub_810ED28: @ 810ED28
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x30]
ldr r0, =sub_810ED70
str r0, [r4, 0x1C]
movs r0, 0
bl GetAnimBattlerSpriteId
ldr r2, =gSprites
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
adds r1, 0x3E
ldrb r0, [r1]
movs r2, 0x4
orrs r0, r2
strb r0, [r1]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810ED28
thumb_func_start sub_810ED70
sub_810ED70: @ 810ED70
push {lr}
adds r2, r0, 0
ldrh r1, [r2, 0x2E]
movs r3, 0x2E
ldrsh r0, [r2, r3]
cmp r0, 0
ble _0810ED84
subs r0, r1, 0x1
strh r0, [r2, 0x2E]
b _0810EDC8
_0810ED84:
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
ble _0810EDAA
ldrh r0, [r2, 0x30]
ldrh r1, [r2, 0x32]
adds r0, r1
strh r0, [r2, 0x32]
lsls r0, 16
asrs r0, 24
ldrh r1, [r2, 0x26]
subs r1, r0
strh r1, [r2, 0x26]
b _0810EDC8
_0810EDAA:
adds r3, r2, 0
adds r3, 0x3E
ldrb r0, [r3]
movs r1, 0x4
orrs r0, r1
strb r0, [r3]
ldrh r0, [r2, 0x34]
adds r1, r0, 0x1
strh r1, [r2, 0x34]
lsls r0, 16
asrs r0, 16
cmp r0, 0x14
ble _0810EDC8
ldr r0, =sub_810EDD0
str r0, [r2, 0x1C]
_0810EDC8:
pop {r0}
bx r0
.pool
thumb_func_end sub_810ED70
thumb_func_start sub_810EDD0
sub_810EDD0: @ 810EDD0
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x32]
lsls r0, 16
asrs r0, 24
ldrh r1, [r2, 0x26]
adds r0, r1
strh r0, [r2, 0x26]
movs r3, 0x22
ldrsh r0, [r2, r3]
movs r3, 0x26
ldrsh r1, [r2, r3]
adds r0, r1
movs r1, 0x20
negs r1, r1
cmp r0, r1
ble _0810EE00
adds r3, r2, 0
adds r3, 0x3E
ldrb r1, [r3]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r3]
_0810EE00:
movs r1, 0x26
ldrsh r0, [r2, r1]
cmp r0, 0
ble _0810EE0E
adds r0, r2, 0
bl DestroyAnimSprite
_0810EE0E:
pop {r0}
bx r0
thumb_func_end sub_810EDD0
thumb_func_start sub_810EE14
sub_810EE14: @ 810EE14
push {r4,r5,lr}
sub sp, 0x4
adds r5, r0, 0
movs r1, 0x2E
ldrsh r0, [r5, r1]
cmp r0, 0
beq _0810EE28
cmp r0, 0x1
beq _0810EE80
b _0810EEEC
_0810EE28:
ldr r0, =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0
bne _0810EE40
ldr r4, =gBattleAnimAttacker
b _0810EE42
.pool
_0810EE40:
ldr r4, =gBattleAnimTarget
_0810EE42:
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]
movs r0, 0
movs r3, 0x80
lsls r3, 2
strh r3, [r5, 0x30]
movs r2, 0x80
lsls r2, 1
str r0, [sp]
adds r0, r5, 0
movs r1, 0
bl sub_80A73E0
ldrh r0, [r5, 0x2E]
adds r0, 0x1
strh r0, [r5, 0x2E]
b _0810EEEC
.pool
_0810EE80:
movs r1, 0x32
ldrsh r0, [r5, r1]
cmp r0, 0xB
bgt _0810EE8E
ldrh r0, [r5, 0x30]
subs r0, 0x28
b _0810EE92
_0810EE8E:
ldrh r0, [r5, 0x30]
adds r0, 0x28
_0810EE92:
strh r0, [r5, 0x30]
ldrh r0, [r5, 0x32]
adds r0, 0x1
movs r1, 0
strh r0, [r5, 0x32]
movs r2, 0x80
lsls r2, 1
movs r0, 0x30
ldrsh r3, [r5, r0]
str r1, [sp]
adds r0, r5, 0
bl sub_80A73E0
ldrb r1, [r5, 0x3]
lsls r1, 26
lsrs r1, 27
movs r0, 0xF4
lsls r0, 6
ldr r2, =gOamMatrices
lsls r1, 3
adds r1, r2
movs r2, 0x6
ldrsh r1, [r1, r2]
bl __divsi3
adds r1, r0, 0x1
cmp r1, 0x80
ble _0810EECC
movs r1, 0x80
_0810EECC:
movs r0, 0x40
subs r0, r1
lsrs r1, r0, 31
adds r0, r1
asrs r1, r0, 1
strh r1, [r5, 0x26]
movs r1, 0x32
ldrsh r0, [r5, r1]
cmp r0, 0x18
bne _0810EEEC
adds r0, r5, 0
bl sub_80A749C
adds r0, r5, 0
bl DestroyAnimSprite
_0810EEEC:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810EE14
thumb_func_start sub_810EEF8
sub_810EEF8: @ 810EEF8
push {r4,r5,lr}
adds r5, r0, 0
bl Random2
ldr r4, =0x000001ff
ands r4, r0
bl Random2
movs r1, 0x7F
ands r1, r0
movs r0, 0x1
ands r0, r4
cmp r0, 0
beq _0810EF20
movs r2, 0xB8
lsls r2, 2
adds r0, r4, r2
b _0810EF28
.pool
_0810EF20:
movs r2, 0xB8
lsls r2, 2
adds r0, r2, 0
subs r0, r4
_0810EF28:
strh r0, [r5, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0810EF3C
movs r2, 0xE0
lsls r2, 2
adds r0, r2, 0
adds r0, r1, r0
b _0810EF44
_0810EF3C:
movs r2, 0xE0
lsls r2, 2
adds r0, r2, 0
subs r0, r1
_0810EF44:
strh r0, [r5, 0x30]
ldr r2, =gBattleAnimArgs
ldrh r0, [r2]
strh r0, [r5, 0x32]
lsls r0, 16
cmp r0, 0
beq _0810EF60
ldrb r0, [r5, 0x3]
movs r1, 0x3F
negs r1, r1
ands r1, r0
movs r0, 0x10
orrs r1, r0
strb r1, [r5, 0x3]
_0810EF60:
movs r1, 0x2
ldrsh r0, [r2, r1]
cmp r0, 0
bne _0810EF74
ldr r4, =gBattleAnimAttacker
b _0810EF76
.pool
_0810EF74:
ldr r4, =gBattleAnimTarget
_0810EF76:
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
adds r0, 0x20
strh r0, [r5, 0x22]
ldr r0, =sub_810EFA8
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810EEF8
thumb_func_start sub_810EFA8
sub_810EFA8: @ 810EFA8
push {r4,lr}
adds r4, r0, 0
movs r1, 0x32
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0810EFC0
ldrh r3, [r4, 0x2E]
lsls r0, r3, 16
asrs r0, 24
ldrh r1, [r4, 0x24]
adds r0, r1
b _0810EFCA
_0810EFC0:
ldrh r3, [r4, 0x2E]
lsls r1, r3, 16
asrs r1, 24
ldrh r0, [r4, 0x24]
subs r0, r1
_0810EFCA:
strh r0, [r4, 0x24]
ldrh r2, [r4, 0x30]
lsls r1, r2, 16
asrs r1, 24
ldrh r0, [r4, 0x26]
subs r0, r1
strh r0, [r4, 0x26]
strh r3, [r4, 0x2E]
adds r0, r2, 0
subs r0, 0x20
strh r0, [r4, 0x30]
lsls r0, r3, 16
cmp r0, 0
bge _0810EFEA
movs r0, 0
strh r0, [r4, 0x2E]
_0810EFEA:
ldrh r0, [r4, 0x34]
adds r0, 0x1
strh r0, [r4, 0x34]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1F
bne _0810EFFE
adds r0, r4, 0
bl DestroyAnimSprite
_0810EFFE:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810EFA8
thumb_func_start sub_810F004
sub_810F004: @ 810F004
movs r1, 0
strh r1, [r0, 0x3A]
movs r1, 0x40
strh r1, [r0, 0x3C]
ldr r1, =sub_810F018
str r1, [r0, 0x1C]
bx lr
.pool
thumb_func_end sub_810F004
thumb_func_start sub_810F018
sub_810F018: @ 810F018
push {lr}
adds r3, r0, 0
movs r0, 0x2E
ldrsh r1, [r3, r0]
cmp r1, 0
beq _0810F02A
cmp r1, 0x1
beq _0810F078
b _0810F07E
_0810F02A:
ldrh r0, [r3, 0x30]
adds r0, 0x1
strh r0, [r3, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x8
ble _0810F07E
strh r1, [r3, 0x30]
movs r1, 0x3E
adds r1, r3
mov r12, r1
ldrb r2, [r1]
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
mov r1, r12
strb r0, [r1]
ldrh r0, [r3, 0x32]
adds r0, 0x1
strh r0, [r3, 0x32]
lsls r0, 16
asrs r0, 16
cmp r0, 0x5
ble _0810F07E
ldrb r1, [r1]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0810F07E
ldrh r0, [r3, 0x2E]
adds r0, 0x1
strh r0, [r3, 0x2E]
b _0810F07E
_0810F078:
adds r0, r3, 0
bl DestroyAnimSprite
_0810F07E:
pop {r0}
bx r0
thumb_func_end sub_810F018
thumb_func_start sub_810F084
sub_810F084: @ 810F084
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x4
mov r8, r0
ldrh r4, [r0, 0x20]
ldrh r5, [r0, 0x22]
ldr r6, =gBattleAnimAttacker
ldrb r0, [r6]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
mov r1, r8
strh r0, [r1, 0x20]
ldrb r0, [r6]
movs r1, 0x3
bl GetBattlerSpriteCoord
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
mov r2, r8
strh r6, [r2, 0x22]
ldrh r0, [r2, 0x20]
mov r9, r0
mov r1, r9
lsls r0, r1, 4
strh r0, [r2, 0x36]
lsls r0, r6, 4
strh r0, [r2, 0x38]
lsls r4, 16
asrs r4, 16
movs r1, 0x20
ldrsh r0, [r2, r1]
subs r0, r4, r0
lsls r0, 4
movs r1, 0xC
bl __divsi3
mov r2, r8
strh r0, [r2, 0x3A]
lsls r5, 16
asrs r5, 16
movs r1, 0x22
ldrsh r0, [r2, r1]
subs r0, r5, r0
lsls r0, 4
movs r1, 0xC
bl __divsi3
mov r2, r8
strh r0, [r2, 0x3C]
mov r0, r9
subs r4, r0
lsls r4, 16
asrs r4, 16
subs r5, r6
lsls r5, 16
asrs r5, 16
adds r0, r4, 0
adds r1, r5, 0
bl sub_80A74F4
lsls r0, 16
movs r1, 0xC0
lsls r1, 24
adds r0, r1
lsrs r0, 16
movs r3, 0x80
lsls r3, 1
str r0, [sp]
mov r0, r8
movs r1, 0x1
adds r2, r3, 0
bl sub_80A73E0
ldr r0, =sub_810F140
mov r2, r8
str r0, [r2, 0x1C]
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810F084
thumb_func_start sub_810F140
sub_810F140: @ 810F140
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x3A]
ldrh r1, [r2, 0x36]
adds r0, r1
strh r0, [r2, 0x36]
ldrh r1, [r2, 0x3C]
ldrh r3, [r2, 0x38]
adds r1, r3
strh r1, [r2, 0x38]
lsls r0, 16
asrs r0, 20
strh r0, [r2, 0x20]
lsls r1, 16
asrs r3, r1, 20
strh r3, [r2, 0x22]
adds r0, 0x2D
lsls r0, 16
movs r1, 0xA5
lsls r1, 17
cmp r0, r1
bhi _0810F17A
adds r1, r3, 0
cmp r1, 0x9D
bgt _0810F17A
movs r0, 0x2D
negs r0, r0
cmp r1, r0
bge _0810F180
_0810F17A:
adds r0, r2, 0
bl move_anim_8074EE0
_0810F180:
pop {r0}
bx r0
thumb_func_end sub_810F140
thumb_func_start sub_810F184
sub_810F184: @ 810F184
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810F1BC
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, =gSprites
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
adds r1, 0x3E
ldrb r0, [r1]
movs r2, 0x4
orrs r0, r2
b _0810F1DA
.pool
_0810F1BC:
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, =gSprites
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
adds r1, 0x3E
ldrb r2, [r1]
movs r0, 0x5
negs r0, r0
ands r0, r2
_0810F1DA:
strb r0, [r1]
adds r0, r4, 0
bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810F184
thumb_func_start sub_810F1EC
sub_810F1EC: @ 810F1EC
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r5, r0, 0
bl IsContest
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810F212
mov r0, r8
cmp r0, 0
beq _0810F22E
_0810F212:
ldrb r1, [r5, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r1
movs r1, 0x8
orrs r0, r1
strb r0, [r5, 0x5]
adds r1, r5, 0
adds r1, 0x43
movs r0, 0xC8
strb r0, [r1]
mov r1, r8
cmp r1, 0
bne _0810F2B8
_0810F22E:
movs r0, 0x1
bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
adds r7, r4, 0
adds r0, r4, 0
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
eors r0, r1
negs r1, r0
orrs r1, r0
lsrs r6, r1, 31
adds r0, r4, 0
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F264
adds r0, r4, 0
adds r1, r6, 0
movs r2, 0
bl sub_80A438C
_0810F264:
movs r0, 0x2
adds r4, r0, 0
eors r4, r7
adds r0, r4, 0
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F284
movs r0, 0x1
eors r6, r0
adds r0, r4, 0
adds r1, r6, 0
movs r2, 0
bl sub_80A438C
_0810F284:
mov r0, r8
cmp r0, 0
bne _0810F2B8
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0810F2B8
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810F2B0
movs r0, 0x48
strh r0, [r5, 0x20]
movs r0, 0x50
b _0810F2F2
.pool
_0810F2B0:
movs r0, 0xB0
strh r0, [r5, 0x20]
movs r0, 0x28
b _0810F2F2
_0810F2B8:
ldr r6, =gBattleAnimAttacker
ldrb r0, [r6]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810F2CE
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
_0810F2CE:
ldrb r0, [r6]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =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 r4, [r4, 0x2]
adds r0, r4
_0810F2F2:
strh r0, [r5, 0x22]
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x4]
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 20
movs r1, 0x80
lsls r1, 1
adds r0, r1
strh r0, [r5, 0x2E]
mov r0, r8
cmp r0, 0
beq _0810F32C
ldrh r0, [r5, 0x22]
adds r0, 0x9
strh r0, [r5, 0x22]
ldr r1, =sub_810F3C8
str r1, [r5, 0x1C]
adds r0, r5, 0
bl _call_via_r1
b _0810F330
.pool
_0810F32C:
ldr r0, =sub_810F340
str r0, [r5, 0x1C]
_0810F330:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_810F1EC
thumb_func_start sub_810F340
sub_810F340: @ 810F340
push {r4,r5,lr}
adds r5, r0, 0
movs r0, 0x1
bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
movs r1, 0x3C
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0810F35C
movs r0, 0x1
strh r0, [r5, 0x3C]
b _0810F3B6
_0810F35C:
adds r0, r4, 0
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F382
ldr r2, =gSprites
ldr r0, =gBattlerSpriteIds
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
_0810F382:
movs r0, 0x2
eors r4, r0
adds r0, r4, 0
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F3AC
ldr r2, =gSprites
ldr r0, =gBattlerSpriteIds
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
_0810F3AC:
ldr r1, =sub_810F3C8
str r1, [r5, 0x1C]
adds r0, r5, 0
bl _call_via_r1
_0810F3B6:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810F340
thumb_func_start sub_810F3C8
sub_810F3C8: @ 810F3C8
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x34]
movs r1, 0x10
subs r1, r0
lsls r1, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
ldrh r1, [r4, 0x34]
movs r2, 0x34
ldrsh r0, [r4, r2]
cmp r0, 0xD
bne _0810F3F4
ldr r0, =sub_810F400
str r0, [r4, 0x1C]
b _0810F3F8
.pool
_0810F3F4:
adds r0, r1, 0x1
strh r0, [r4, 0x34]
_0810F3F8:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810F3C8
thumb_func_start sub_810F400
sub_810F400: @ 810F400
push {r4-r7,lr}
adds r3, r0, 0
ldrh r0, [r3, 0x30]
adds r0, 0x1
strh r0, [r3, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
bne _0810F45E
movs r0, 0
strh r0, [r3, 0x30]
ldrh r4, [r3, 0x2E]
ldr r1, =gPlttBufferFaded
adds r0, r4, 0
adds r0, 0x8
lsls r0, 1
adds r0, r1
ldrh r7, [r0]
movs r5, 0x8
adds r6, r1, 0
adds r1, r4, 0x7
lsls r0, r4, 1
adds r0, r6
adds r2, r0, 0
adds r2, 0x10
lsls r1, 1
adds r1, r6
_0810F436:
ldrh r0, [r1]
strh r0, [r2]
subs r1, 0x2
subs r2, 0x2
subs r5, 0x1
cmp r5, 0
bgt _0810F436
adds r0, r4, 0x1
lsls r0, 1
adds r0, r6
strh r7, [r0]
ldrh r0, [r3, 0x32]
adds r0, 0x1
strh r0, [r3, 0x32]
lsls r0, 16
asrs r0, 16
cmp r0, 0x10
bne _0810F45E
ldr r0, =sub_810F46C
str r0, [r3, 0x1C]
_0810F45E:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_810F400
thumb_func_start sub_810F46C
sub_810F46C: @ 810F46C
push {r4-r6,lr}
adds r5, r0, 0
ldrh r0, [r5, 0x34]
movs r1, 0x10
subs r1, r0
lsls r1, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
ldrh r0, [r5, 0x34]
subs r0, 0x1
strh r0, [r5, 0x34]
lsls r0, 16
asrs r0, 16
movs r1, 0x1
negs r1, r1
cmp r0, r1
bne _0810F512
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810F502
movs r0, 0x1
bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
adds r6, r4, 0
adds r0, r4, 0
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F4D4
ldr r2, =gSprites
ldr r0, =gBattlerSpriteIds
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
_0810F4D4:
movs r0, 0x2
adds r4, r0, 0
eors r4, r6
adds r0, r4, 0
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F502
ldr r2, =gSprites
ldr r0, =gBattlerSpriteIds
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
_0810F502:
adds r2, r5, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldr r0, =sub_810F524
str r0, [r5, 0x1C]
_0810F512:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810F46C
thumb_func_start sub_810F524
sub_810F524: @ 810F524
push {r4-r6,lr}
adds r6, r0, 0
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810F57C
movs r0, 0x1
bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
eors r0, r1
negs r1, r0
orrs r1, r0
lsrs r5, r1, 31
adds r0, r4, 0
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F562
adds r0, r5, 0
bl sub_80A477C
_0810F562:
movs r0, 0x2
eors r4, r0
adds r0, r4, 0
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F57C
movs r0, 0x1
eors r5, r0
adds r0, r5, 0
bl sub_80A477C
_0810F57C:
ldr r0, =DestroyAnimSprite
str r0, [r6, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810F524
thumb_func_start sub_810F58C
sub_810F58C: @ 810F58C
push {r4-r6,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0810F618
ldr r5, =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r5, r1]
movs r6, 0
cmp r0, 0
bne _0810F5A6
movs r6, 0x1
_0810F5A6:
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0810F5EE
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0810F5EE
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810F5E0
ldrh r0, [r5]
movs r1, 0x48
subs r1, r0
strh r1, [r4, 0x20]
ldrh r0, [r5, 0x2]
adds r0, 0x50
strh r0, [r4, 0x22]
b _0810F610
.pool
_0810F5E0:
ldrh r0, [r5]
adds r0, 0xB0
strh r0, [r4, 0x20]
ldrh r0, [r5, 0x2]
adds r0, 0x28
strh r0, [r4, 0x22]
b _0810F610
_0810F5EE:
ldr r0, =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810F608
adds r0, r4, 0
adds r1, r6, 0
bl sub_80A69CC
b _0810F610
.pool
_0810F608:
adds r0, r4, 0
adds r1, r6, 0
bl sub_80A6980
_0810F610:
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
b _0810F62C
_0810F618:
adds r0, r4, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x30
ands r0, r1
cmp r0, 0
beq _0810F62C
adds r0, r4, 0
bl move_anim_8074EE0
_0810F62C:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_810F58C
thumb_func_start sub_810F634
sub_810F634: @ 810F634
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, =gBattleAnimAttacker
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]
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810F684
adds r0, r5, 0
movs r1, 0x1
bl StartSpriteAnim
ldrh r0, [r5, 0x20]
subs r0, 0x28
strh r0, [r5, 0x20]
ldrh r0, [r5, 0x22]
adds r0, 0xA
strh r0, [r5, 0x22]
ldr r0, =0x0000ffff
b _0810F692
.pool
_0810F684:
ldrh r0, [r5, 0x20]
adds r0, 0x28
strh r0, [r5, 0x20]
ldrh r0, [r5, 0x22]
subs r0, 0xA
strh r0, [r5, 0x22]
movs r0, 0x1
_0810F692:
strh r0, [r5, 0x30]
ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810F634
thumb_func_start sub_810F6B0
sub_810F6B0: @ 810F6B0
push {r4-r7,lr}
adds r5, r0, 0
ldr r6, =gBattleAnimAttacker
ldrb r0, [r6]
movs r1, 0x1
bl sub_80A861C
lsls r0, 16
asrs r1, r0, 16
lsrs r0, 31
adds r1, r0
lsls r1, 15
lsrs r4, r1, 16
ldrb r0, [r6]
movs r1, 0
bl sub_80A861C
lsls r0, 16
asrs r1, r0, 16
lsrs r0, 31
adds r1, r0
asrs r1, 1
negs r1, r1
lsls r1, 16
lsrs r7, r1, 16
ldrb r0, [r6]
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0810F6F6
lsls r0, r4, 16
negs r0, r0
lsrs r4, r0, 16
_0810F6F6:
ldrb r0, [r6]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r4
strh r0, [r5, 0x20]
ldrb r0, [r6]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r7
strh r0, [r5, 0x22]
lsls r0, 16
asrs r0, 16
cmp r0, 0xF
bgt _0810F722
movs r0, 0x10
strh r0, [r5, 0x22]
_0810F722:
ldr r1, =sub_810F740
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
str r0, [r5, 0x1C]
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_810F6B0
thumb_func_start sub_810F740
sub_810F740: @ 810F740
push {r4,lr}
adds r4, r0, 0
ldrb r1, [r4, 0x1]
movs r0, 0x4
negs r0, r0
ands r0, r1
movs r1, 0x1
orrs r0, r1
strb r0, [r4, 0x1]
ldr r0, =gUnknown_08596740
str r0, [r4, 0x10]
movs r0, 0
strh r0, [r4, 0x2E]
adds r0, r4, 0
bl InitSpriteAffineAnim
ldr r0, =sub_810F774
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810F740
thumb_func_start sub_810F774
sub_810F774: @ 810F774
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0810F786
cmp r0, 0x1
beq _0810F7B4
b _0810F7CC
_0810F786:
adds r0, r4, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _0810F7CC
ldrb r0, [r4, 0x3]
lsls r0, 26
lsrs r0, 27
bl FreeOamMatrix
ldrb r1, [r4, 0x1]
movs r0, 0x4
negs r0, r0
ands r0, r1
strb r0, [r4, 0x1]
movs r0, 0x12
strh r0, [r4, 0x30]
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
b _0810F7CC
_0810F7B4:
ldrh r0, [r4, 0x30]
subs r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
movs r1, 0x1
negs r1, r1
cmp r0, r1
bne _0810F7CC
adds r0, r4, 0
bl DestroyAnimSprite
_0810F7CC:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810F774
thumb_func_start sub_810F7D4
sub_810F7D4: @ 810F7D4
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, =gTasks
adds r4, r0
movs r0, 0
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
strh r1, [r4, 0x8]
ldr r2, =gUnknown_0859675C
adds r0, r4, 0
bl sub_80A7CFC
ldr r0, =sub_810F810
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810F7D4
thumb_func_start sub_810F810
sub_810F810: @ 810F810
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, =gTasks
adds r0, r1
bl sub_80A7D34
lsls r0, 24
cmp r0, 0
bne _0810F830
adds r0, r4, 0
bl DestroyAnimVisualTask
_0810F830:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810F810
thumb_func_start sub_810F83C
sub_810F83C: @ 810F83C
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks
adds r4, r1, r0
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
movs r1, 0
strh r0, [r4, 0x8]
strh r1, [r4, 0xA]
strh r1, [r4, 0xC]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
movs r1, 0x8
cmp r0, 0
beq _0810F870
movs r1, 0x4
_0810F870:
strh r1, [r4, 0xE]
ldrb r1, [r4, 0x8]
ldr r2, =gUnknown_0859677C
adds r0, r4, 0
bl sub_80A7CFC
ldr r0, =sub_810F898
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_810F83C
thumb_func_start sub_810F898
sub_810F898: @ 810F898
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r1, 0xA
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0810F8BC
cmp r0, 0x1
beq _0810F8D8
b _0810F936
.pool
_0810F8BC:
adds r0, r4, 0
bl sub_80A7D34
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0x13
ble _0810F936
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
b _0810F936
_0810F8D8:
movs r1, 0xE
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0810F900
ldr r2, =gSprites
movs r0, 0x8
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x26]
subs r1, 0x8
strh r1, [r0, 0x26]
ldrh r0, [r4, 0xE]
subs r0, 0x1
strh r0, [r4, 0xE]
b _0810F936
.pool
_0810F900:
ldr r3, =gSprites
movs r0, 0x8
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
movs r0, 0x8
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
movs r1, 0x88
lsls r1, 1
strh r1, [r0, 0x20]
ldrb r0, [r4, 0x8]
bl sub_80A7344
adds r0, r5, 0
bl DestroyAnimVisualTask
_0810F936:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810F898
thumb_func_start sub_810F940
sub_810F940: @ 810F940
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks
adds r5, r1, r0
movs r1, 0
movs r0, 0x10
strh r0, [r5, 0xE]
strh r1, [r5, 0x10]
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x24]
ldrb r0, [r4]
movs r1, 0x1
bl sub_80A861C
lsls r0, 16
asrs r0, 16
movs r1, 0x3
bl __divsi3
lsls r0, 16
lsrs r6, r0, 16
ldrb r0, [r4]
movs r1, 0
bl sub_80A861C
lsls r0, 16
asrs r0, 16
movs r1, 0x3
bl __divsi3
lsls r0, 16
lsrs r0, 16
adds r1, r0, 0
cmp r0, r6
bcs _0810F9AA
adds r1, r6, 0
_0810F9AA:
strh r1, [r5, 0x20]
movs r1, 0xFD
lsls r1, 6
movs r0, 0x50
bl SetGpuReg
movs r0, 0x52
movs r1, 0x10
bl SetGpuReg
ldr r0, =sub_810F9D4
str r0, [r5]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810F940
thumb_func_start sub_810F9D4
sub_810F9D4: @ 810F9D4
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r0, 0x8
ldrsh r1, [r4, r0]
cmp r1, 0x1
beq _0810FAD4
cmp r1, 0x1
bgt _0810F9FC
cmp r1, 0
beq _0810FA0A
b _0810FB5A
.pool
_0810F9FC:
cmp r1, 0x2
bne _0810FA02
b _0810FB36
_0810FA02:
cmp r1, 0x3
bne _0810FA08
b _0810FB44
_0810FA08:
b _0810FB5A
_0810FA0A:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x8
bgt _0810FA1A
b _0810FB5A
_0810FA1A:
strh r1, [r4, 0xA]
ldr r0, =gUnknown_08596794
movs r2, 0x22
ldrsh r1, [r4, r2]
movs r3, 0x24
ldrsh r2, [r4, r3]
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r2, r0, 24
movs r0, 0xC
ldrsh r1, [r4, r0]
adds r1, 0x8
lsls r1, 1
adds r0, r4, 0
adds r0, 0x8
adds r0, r1
strh r2, [r0]
cmp r2, 0x40
beq _0810FABE
movs r1, 0xC
ldrsh r0, [r4, r1]
cmp r0, 0x1
beq _0810FA78
cmp r0, 0x1
bgt _0810FA5C
cmp r0, 0
beq _0810FA66
b _0810FABE
.pool
_0810FA5C:
cmp r0, 0x2
beq _0810FA90
cmp r0, 0x3
beq _0810FAA8
b _0810FABE
_0810FA66:
ldr r0, =gSprites
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r0
ldrh r0, [r4, 0x20]
b _0810FAB6
.pool
_0810FA78:
ldr r0, =gSprites
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r0
ldrh r0, [r4, 0x20]
negs r0, r0
strh r0, [r1, 0x24]
ldrh r0, [r4, 0x20]
b _0810FABC
.pool
_0810FA90:
ldr r1, =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
ldrh r1, [r4, 0x20]
strh r1, [r0, 0x24]
ldrh r1, [r4, 0x20]
strh r1, [r0, 0x26]
b _0810FABE
.pool
_0810FAA8:
ldr r0, =gSprites
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r0
ldrh r0, [r4, 0x20]
negs r0, r0
_0810FAB6:
strh r0, [r1, 0x24]
ldrh r0, [r4, 0x20]
negs r0, r0
_0810FABC:
strh r0, [r1, 0x26]
_0810FABE:
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0x5
bne _0810FB5A
b _0810FB36
.pool
_0810FAD4:
ldrh r0, [r4, 0xA]
ands r1, r0
cmp r1, 0
beq _0810FAE4
ldrh r0, [r4, 0xE]
subs r0, 0x1
strh r0, [r4, 0xE]
b _0810FAEA
_0810FAE4:
ldrh r0, [r4, 0x10]
adds r0, 0x1
strh r0, [r4, 0x10]
_0810FAEA:
ldrh r1, [r4, 0x10]
lsls r1, 8
ldrh r0, [r4, 0xE]
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x20
bne _0810FB5A
movs r5, 0x8
adds r6, r4, 0
adds r6, 0x8
_0810FB10:
lsls r0, r5, 1
adds r1, r6, r0
movs r2, 0
ldrsh r0, [r1, r2]
cmp r0, 0x40
beq _0810FB2C
adds r1, r0, 0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
bl DestroySprite
_0810FB2C:
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0xC
bls _0810FB10
_0810FB36:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _0810FB5A
.pool
_0810FB44:
movs r0, 0x52
movs r1, 0
bl SetGpuReg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
adds r0, r5, 0
bl DestroyAnimVisualTask
_0810FB5A:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_810F9D4
thumb_func_start sub_810FB60
sub_810FB60: @ 810FB60
push {r4,lr}
adds r4, r0, 0
movs r0, 0x30
ldrsh r1, [r4, r0]
movs r2, 0x2E
ldrsh r0, [r4, r2]
subs r0, 0xA
cmp r1, r0
ble _0810FB8A
ldrh r0, [r4, 0x30]
movs r1, 0x1
ands r1, r0
adds r3, r4, 0
adds r3, 0x3E
lsls r1, 2
ldrb r2, [r3]
movs r0, 0x5
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
_0810FB8A:
movs r0, 0x30
ldrsh r1, [r4, r0]
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r1, r0
bne _0810FB9C
adds r0, r4, 0
bl DestroyAnimSprite
_0810FB9C:
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810FB60
thumb_func_start sub_810FBA8
sub_810FBA8: @ 810FBA8
push {r4-r6,lr}
adds r5, r0, 0
ldr r6, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0810FBD4
ldr r4, =gBattleAnimAttacker
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]
_0810FBD4:
ldrh r0, [r6, 0x2]
strh r0, [r5, 0x2E]
ldr r0, =sub_810FB60
str r0, [r5, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810FBA8
thumb_func_start sub_810FBF0
sub_810FBF0: @ 810FBF0
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks
adds r5, r1, r0
bl IsContest
lsls r0, 24
cmp r0, 0
beq _0810FC94
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x1
bne _0810FC60
ldr r0, =0x0000fff6
strh r0, [r5, 0x1C]
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x5
bl sub_80A861C
subs r0, 0x8
strh r0, [r5, 0x1E]
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A861C
adds r0, 0x8
strh r0, [r5, 0x20]
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x5
bl sub_80A861C
subs r0, 0x8
strh r0, [r5, 0x22]
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A861C
adds r0, 0x8
b _0810FD1E
.pool
_0810FC60:
movs r0, 0xA
strh r0, [r5, 0x1C]
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x4
bl sub_80A861C
adds r0, 0x8
strh r0, [r5, 0x1E]
ldrb r0, [r4]
movs r1, 0x3
bl sub_80A861C
subs r0, 0x8
strh r0, [r5, 0x20]
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x4
bl sub_80A861C
adds r0, 0x8
b _0810FD12
.pool
_0810FC94:
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x1
bne _0810FCE8
ldr r0, =0x0000fff6
strh r0, [r5, 0x1C]
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x4
bl sub_80A861C
adds r0, 0x8
strh r0, [r5, 0x1E]
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A861C
adds r0, 0x8
strh r0, [r5, 0x20]
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x4
bl sub_80A861C
adds r0, 0x8
strh r0, [r5, 0x22]
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A861C
adds r0, 0x8
b _0810FD1E
.pool
_0810FCE8:
movs r0, 0xA
strh r0, [r5, 0x1C]
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x5
bl sub_80A861C
subs r0, 0x8
strh r0, [r5, 0x1E]
ldrb r0, [r4]
movs r1, 0x3
bl sub_80A861C
subs r0, 0x8
strh r0, [r5, 0x20]
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x5
bl sub_80A861C
subs r0, 0x8
_0810FD12:
strh r0, [r5, 0x22]
ldrb r0, [r4]
movs r1, 0x3
bl sub_80A861C
subs r0, 0x8
_0810FD1E:
strh r0, [r5, 0x24]
movs r0, 0x6
strh r0, [r5, 0xA]
ldr r0, =sub_810FD3C
str r0, [r5]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_810FBF0
thumb_func_start sub_810FD3C
sub_810FD3C: @ 810FD3C
push {r4,r5,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r5, r0, r1
movs r0, 0x8
ldrsh r1, [r5, r0]
cmp r1, 0
beq _0810FD60
cmp r1, 0x1
beq _0810FDD4
b _0810FDE8
.pool
_0810FD60:
ldrh r0, [r5, 0xA]
adds r0, 0x1
strh r0, [r5, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x6
ble _0810FDE8
strh r1, [r5, 0xA]
ldr r0, =gUnknown_08596864
movs r2, 0x1E
ldrsh r1, [r5, r2]
movs r3, 0x20
ldrsh r2, [r5, r3]
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x40
beq _0810FDB4
ldr r0, =gSprites
lsls r4, r1, 4
adds r4, r1
lsls r4, 2
adds r4, r0
movs r0, 0x10
strh r0, [r4, 0x2E]
ldrh r0, [r5, 0x22]
strh r0, [r4, 0x32]
ldrh r0, [r5, 0x24]
strh r0, [r4, 0x36]
ldrh r0, [r5, 0x1C]
strh r0, [r4, 0x38]
adds r0, r4, 0
bl sub_80A68D4
ldrb r0, [r5, 0xC]
movs r1, 0x3
ands r1, r0
adds r0, r4, 0
bl StartSpriteAffineAnim
_0810FDB4:
ldrh r0, [r5, 0xC]
adds r0, 0x1
strh r0, [r5, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0xC
bne _0810FDE8
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
b _0810FDE8
.pool
_0810FDD4:
ldrh r0, [r5, 0xA]
adds r0, 0x1
strh r0, [r5, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x11
ble _0810FDE8
adds r0, r2, 0
bl DestroyAnimVisualTask
_0810FDE8:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_810FD3C
thumb_func_start sub_810FDF0
sub_810FDF0: @ 810FDF0
push {r4,lr}
adds r4, r0, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
beq _0810FE0E
ldrb r0, [r4, 0x3]
lsls r0, 26
lsrs r0, 27
bl FreeOamMatrix
adds r0, r4, 0
bl DestroySprite
_0810FE0E:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810FDF0
thumb_func_start sub_810FE14
sub_810FE14: @ 810FE14
push {r4-r6,lr}
sub sp, 0xC
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks
adds r4, r1, r0
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A6190
lsls r0, 24
lsrs r1, r0, 24
adds r0, r1, 0
subs r0, 0x20
strh r0, [r4, 0x24]
ldr r0, =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0x1
beq _0810FE6A
cmp r0, 0x1
bgt _0810FE58
cmp r0, 0
beq _0810FE5E
b _0810FE86
.pool
_0810FE58:
cmp r0, 0x2
beq _0810FE76
b _0810FE86
_0810FE5E:
movs r0, 0x2
strh r0, [r4, 0x1E]
movs r0, 0x5
strh r0, [r4, 0x20]
movs r0, 0x40
b _0810FE7E
_0810FE6A:
movs r0, 0x2
strh r0, [r4, 0x1E]
movs r0, 0x5
strh r0, [r4, 0x20]
movs r0, 0xC0
b _0810FE7E
_0810FE76:
movs r0, 0x4
strh r0, [r4, 0x1E]
strh r0, [r4, 0x20]
movs r0, 0
_0810FE7E:
strh r0, [r4, 0x22]
adds r0, r1, 0
adds r0, 0x20
strh r0, [r4, 0x26]
_0810FE86:
movs r1, 0x24
ldrsh r0, [r4, r1]
cmp r0, 0
bge _0810FE92
movs r0, 0
strh r0, [r4, 0x24]
_0810FE92:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0810FEB8
ldr r0, =gBattle_BG1_X
ldrh r0, [r0]
strh r0, [r4, 0x1C]
ldr r0, =0x04000014
b _0810FEC0
.pool
_0810FEB8:
ldr r0, =gBattle_BG2_X
ldrh r0, [r0]
strh r0, [r4, 0x1C]
ldr r0, =0x04000018
_0810FEC0:
str r0, [sp]
ldrh r1, [r4, 0x24]
lsls r3, r1, 16
asrs r1, r3, 16
movs r2, 0x24
ldrsh r0, [r4, r2]
adds r0, 0x40
cmp r1, r0
bgt _0810FEFA
ldr r5, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
_0810FEDA:
asrs r3, 16
lsls r1, r3, 1
adds r2, r1, r5
ldrh r0, [r4, 0x1C]
strh r0, [r2]
adds r1, r6
ldrh r0, [r4, 0x1C]
strh r0, [r1]
adds r3, 0x1
lsls r3, 16
asrs r1, r3, 16
movs r2, 0x24
ldrsh r0, [r4, r2]
adds r0, 0x40
cmp r1, r0
ble _0810FEDA
_0810FEFA:
ldr r0, =0xa2600001
str r0, [sp, 0x4]
mov r1, sp
movs r2, 0
movs r0, 0x1
strb r0, [r1, 0x8]
mov r0, sp
strb r2, [r0, 0x9]
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
bl ScanlineEffect_SetParams
ldr r0, =sub_810FF34
str r0, [r4]
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_810FE14
thumb_func_start sub_810FF34
sub_810FF34: @ 810FF34
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r5, r0, r1
movs r1, 0x8
ldrsh r0, [r5, r1]
cmp r0, 0x1
beq _0811000E
cmp r0, 0x1
bgt _0810FF60
cmp r0, 0
beq _0810FF66
b _08110026
.pool
_0810FF60:
cmp r0, 0x2
beq _08110020
b _08110026
_0810FF66:
ldrh r3, [r5, 0x22]
ldrh r4, [r5, 0x24]
movs r2, 0x24
ldrsh r1, [r5, r2]
movs r2, 0x26
ldrsh r0, [r5, r2]
cmp r1, r0
bgt _0810FFFE
ldr r0, =gSineTable
mov r9, r0
movs r7, 0x3
ldr r1, =gScanlineEffectRegBuffers
mov r12, r1
movs r2, 0xF0
lsls r2, 3
add r2, r12
mov r8, r2
_0810FF88:
lsls r2, r3, 16
asrs r0, r2, 15
add r0, r9
movs r3, 0
ldrsh r0, [r0, r3]
movs r3, 0x20
ldrsh r1, [r5, r3]
asrs r0, r1
lsls r0, 16
lsrs r1, r0, 16
asrs r3, r0, 16
adds r6, r2, 0
cmp r3, 0
ble _0810FFB8
ldrh r1, [r5, 0xA]
adds r0, r7, 0
ands r0, r1
adds r0, r3, r0
b _0810FFC4
.pool
_0810FFB8:
cmp r3, 0
bge _0810FFC8
ldrh r1, [r5, 0xA]
adds r0, r7, 0
ands r0, r1
subs r0, r3, r0
_0810FFC4:
lsls r0, 16
lsrs r1, r0, 16
_0810FFC8:
lsls r2, r4, 16
asrs r2, 16
lsls r3, r2, 1
mov r0, r12
adds r4, r3, r0
ldrh r0, [r5, 0x1C]
lsls r1, 16
asrs r1, 16
adds r0, r1, r0
strh r0, [r4]
add r3, r8
ldrh r0, [r5, 0x1C]
adds r1, r0
strh r1, [r3]
asrs r0, r6, 16
ldrh r1, [r5, 0x1E]
adds r0, r1
lsls r0, 16
lsrs r3, r0, 16
adds r2, 0x1
lsls r2, 16
lsrs r4, r2, 16
asrs r2, 16
movs r1, 0x26
ldrsh r0, [r5, r1]
cmp r2, r0
ble _0810FF88
_0810FFFE:
ldrh r0, [r5, 0xA]
adds r0, 0x1
strh r0, [r5, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x17
ble _08110026
b _08110014
_0811000E:
ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_08110014:
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
b _08110026
.pool
_08110020:
adds r0, r2, 0
bl DestroyAnimVisualTask
_08110026:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_810FF34
thumb_func_start sub_8110034
sub_8110034: @ 8110034
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r4, r0, 24
mov r8, r4
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, =gTasks
adds r7, r0, r1
bl AllocOamMatrix
lsls r0, 24
lsrs r5, r0, 24
mov r10, r5
adds r6, r5, 0
cmp r6, 0xFF
bne _0811006C
adds r0, r4, 0
bl DestroyAnimVisualTask
b _08110116
.pool
_0811006C:
ldr r1, =gBattleAnimArgs
ldrb r0, [r1]
bl duplicate_obj_of_side_rel2move_in_transparent_mode
lsls r0, 16
lsrs r1, r0, 16
mov r9, r1
asrs r0, 16
cmp r0, 0
bge _08110094
adds r0, r5, 0
bl FreeOamMatrix
mov r0, r8
bl DestroyAnimVisualTask
b _08110116
.pool
_08110094:
ldr r2, =gSprites
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
adds r0, r2, 0
adds r0, 0x1C
adds r0, r4, r0
ldr r1, =SpriteCallbackDummy
str r1, [r0]
adds r4, r2
ldrb r0, [r4, 0x1]
movs r1, 0x3
orrs r0, r1
strb r0, [r4, 0x1]
movs r0, 0x1F
ands r6, r0
lsls r2, r6, 1
ldrb r1, [r4, 0x3]
movs r0, 0x3F
negs r0, r0
ands r0, r1
orrs r0, r2
strb r0, [r4, 0x3]
adds r2, r4, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
adds r1, r4, 0
adds r1, 0x43
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
mov r1, r9
lsls r0, r1, 24
lsrs r0, 24
movs r2, 0x80
lsls r2, 1
adds r1, r2, 0
movs r3, 0
bl obj_id_set_rotscale
ldrb r3, [r4, 0x1]
lsrs r1, r3, 6
ldrb r2, [r4, 0x3]
lsrs r2, 6
lsls r3, 30
lsrs r3, 30
adds r0, r4, 0
bl CalcCenterToCornerVec
ldr r1, =gBattleAnimArgs
ldrb r0, [r1]
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r7, 0x22]
mov r0, r10
strh r0, [r7, 0x24]
mov r1, r9
strh r1, [r7, 0x26]
ldr r0, =sub_8110134
str r0, [r7]
_08110116:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8110034
thumb_func_start sub_8110134
sub_8110134: @ 8110134
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0x1
beq _081101B8
cmp r0, 0x1
bgt _0811015C
cmp r0, 0
beq _08110166
b _08110238
.pool
_0811015C:
cmp r0, 0x2
beq _08110208
cmp r0, 0x3
beq _08110228
b _08110238
_08110166:
ldrh r0, [r4, 0xA]
adds r0, 0x4
strh r0, [r4, 0xA]
ldr r1, =gSineTable
movs r2, 0xA
ldrsh r0, [r4, r2]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
lsls r1, 16
asrs r1, 17
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
subs r0, r1
strh r0, [r4, 0xC]
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
movs r1, 0xC
ldrsh r2, [r4, r1]
adds r1, r2, 0
movs r3, 0
bl obj_id_set_rotscale
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x22]
lsls r1, 24
lsrs r1, 24
bl sub_80A7EC0
movs r2, 0xA
ldrsh r0, [r4, r2]
cmp r0, 0x30
bne _08110238
b _0811021A
.pool
_081101B8:
ldrh r0, [r4, 0xA]
subs r0, 0x4
strh r0, [r4, 0xA]
ldr r1, =gSineTable
movs r2, 0xA
ldrsh r0, [r4, r2]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
lsls r1, 16
asrs r1, 17
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
subs r0, r1
strh r0, [r4, 0xC]
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
movs r1, 0xC
ldrsh r2, [r4, r1]
adds r1, r2, 0
movs r3, 0
bl obj_id_set_rotscale
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x22]
lsls r1, 24
lsrs r1, 24
bl sub_80A7EC0
movs r2, 0xA
ldrsh r0, [r4, r2]
cmp r0, 0
bne _08110238
b _0811021A
.pool
_08110208:
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
bl obj_delete_but_dont_free_vram
_0811021A:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _08110238
.pool
_08110228:
ldrh r0, [r4, 0x24]
lsls r0, 24
lsrs r0, 24
bl FreeOamMatrix
adds r0, r5, 0
bl DestroyAnimVisualTask
_08110238:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8110134
thumb_func_start sub_8110240
sub_8110240: @ 8110240
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x2E
ldrsh r0, [r5, r1]
cmp r0, 0x1
beq _081102B8
cmp r0, 0x1
bgt _08110256
cmp r0, 0
beq _08110260
b _08110360
_08110256:
cmp r0, 0x2
beq _081102EA
cmp r0, 0x3
beq _0811034A
b _08110360
_08110260:
ldr r4, =gBattleAnimAttacker
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]
bl IsContest
lsls r0, 24
cmp r0, 0
beq _0811028E
ldrh r0, [r5, 0x22]
adds r0, 0xC
strh r0, [r5, 0x22]
_0811028E:
movs r0, 0x8
strh r0, [r5, 0x30]
movs r1, 0xFD
lsls r1, 6
movs r0, 0x50
bl SetGpuReg
ldrh r0, [r5, 0x30]
movs r1, 0x10
subs r1, r0
lsls r1, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
b _081102E2
.pool
_081102B8:
adds r0, r5, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _08110360
movs r0, 0x40
negs r0, r0
bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
movs r0, 0xCB
bl PlaySE12WithPanning
adds r0, r5, 0
movs r1, 0x1
bl ChangeSpriteAffineAnim
_081102E2:
ldrh r0, [r5, 0x2E]
adds r0, 0x1
strh r0, [r5, 0x2E]
b _08110360
_081102EA:
ldrh r0, [r5, 0x32]
adds r1, r0, 0x1
strh r1, [r5, 0x32]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _0811032E
movs r0, 0
strh r0, [r5, 0x32]
ldrh r1, [r5, 0x30]
subs r1, 0x1
strh r1, [r5, 0x30]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0x30
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0811032E
ldrh r0, [r5, 0x2E]
adds r0, 0x1
strh r0, [r5, 0x2E]
adds r2, r5, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
_0811032E:
movs r0, 0xE0
lsls r0, 2
adds r2, r0, 0
ldrh r1, [r5, 0x34]
adds r2, r1
lsls r1, r2, 16
asrs r1, 24
ldrh r0, [r5, 0x26]
subs r0, r1
strh r0, [r5, 0x26]
movs r0, 0xFF
ands r2, r0
strh r2, [r5, 0x34]
b _08110360
_0811034A:
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
adds r0, r5, 0
bl DestroyAnimSprite
_08110360:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8110240
thumb_func_start sub_8110368
sub_8110368: @ 8110368
push {r4-r6,lr}
adds r6, r0, 0
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08110394
adds r0, r6, 0
movs r1, 0x2
bl StartSpriteAffineAnim
ldr r0, =gBattleAnimArgs
ldrh r1, [r0, 0x4]
negs r1, r1
strh r1, [r0, 0x4]
ldrh r1, [r0]
negs r1, r1
strh r1, [r0]
b _081103C4
.pool
_08110394:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _081103C4
adds r0, r6, 0
movs r1, 0x1
bl StartSpriteAffineAnim
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x2]
negs r0, r0
strh r0, [r1, 0x2]
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
ldrh r0, [r1, 0x6]
negs r0, r0
strh r0, [r1, 0x6]
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
_081103C4:
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A60AC
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
strh r0, [r6, 0x20]
ldrb r0, [r5]
movs r1, 0x3
bl sub_80A60AC
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x2]
adds r0, r1
strh r0, [r6, 0x22]
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x4]
adds r0, r1
strh r0, [r6, 0x32]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r4, [r4, 0x6]
adds r0, r4
strh r0, [r6, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r6, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r6, 0
bl StoreSpriteCallbackInData6
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8110368
thumb_func_start sub_8110438
sub_8110438: @ 8110438
push {r4-r6,lr}
adds r6, r0, 0
bl IsContest
lsls r0, 24
cmp r0, 0
beq _0811045C
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
adds r0, r6, 0
movs r1, 0x2
bl StartSpriteAffineAnim
b _08110478
.pool
_0811045C:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08110478
ldr r0, =gBattleAnimArgs
ldrh r1, [r0, 0x2]
negs r1, r1
strh r1, [r0, 0x2]
ldrh r1, [r0]
negs r1, r1
strh r1, [r0]
_08110478:
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A60AC
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
strh r0, [r6, 0x20]
ldrb r0, [r5]
movs r1, 0x3
bl sub_80A60AC
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x2]
adds r0, r1
strh r0, [r6, 0x22]
ldrh r0, [r4, 0x4]
strh r0, [r6, 0x2E]
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x32]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r6, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r6, 0
bl StoreSpriteCallbackInData6
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8110438
thumb_func_start sub_81104E4
sub_81104E4: @ 81104E4
push {r4,r5,lr}
adds r5, r0, 0
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08110500
ldr r0, =gBattleAnimArgs
movs r2, 0x4
ldrsh r1, [r0, r2]
lsrs r2, r1, 31
adds r1, r2
asrs r1, 1
strh r1, [r0, 0x4]
_08110500:
adds r0, r5, 0
movs r1, 0x1
bl sub_80A69CC
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
ldrh r0, [r5, 0x22]
strh r0, [r5, 0x34]
movs r2, 0x8
ldrsh r0, [r1, r2]
cmp r0, 0
bne _08110548
ldr r4, =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]
b _0811055A
.pool
_08110548:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
adds r3, r5, 0
adds r3, 0x36
movs r1, 0x1
bl sub_80A8924
_0811055A:
adds r0, r5, 0
bl sub_80A6FD4
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x6]
strh r0, [r5, 0x38]
ldr r0, =sub_811057C
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81104E4
thumb_func_start sub_811057C
sub_811057C: @ 811057C
push {r4,lr}
adds r4, r0, 0
bl sub_80A6F3C
lsls r0, 24
cmp r0, 0
beq _08110592
adds r0, r4, 0
bl DestroyAnimSprite
b _081105AE
_08110592:
movs r1, 0x3A
ldrsh r0, [r4, r1]
movs r2, 0x38
ldrsh r1, [r4, r2]
bl Sin
ldrh r1, [r4, 0x24]
adds r0, r1
strh r0, [r4, 0x24]
ldrh r0, [r4, 0x3A]
adds r0, 0xD
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x3A]
_081105AE:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_811057C
thumb_func_start sub_81105B4
sub_81105B4: @ 81105B4
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
adds r3, r4, 0
adds r3, 0x22
movs r1, 0
bl sub_80A8924
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _081105F0
ldr r0, =gBattleAnimArgs
ldrh r1, [r4, 0x20]
ldrh r2, [r0]
subs r1, r2
strh r1, [r4, 0x20]
b _081105FC
.pool
_081105F0:
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
strh r0, [r4, 0x20]
adds r0, r1, 0
_081105FC:
ldrh r0, [r0, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08110618
ldrh r0, [r4, 0x22]
adds r0, 0x8
strh r0, [r4, 0x22]
_08110618:
ldr r0, =sub_8110630
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81105B4
thumb_func_start sub_8110630
sub_8110630: @ 8110630
push {lr}
adds r3, r0, 0
ldrh r0, [r3, 0x2E]
adds r0, 0x1
strh r0, [r3, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3
bne _08110664
movs r0, 0
strh r0, [r3, 0x2E]
movs r0, 0x3E
adds r0, r3
mov r12, r0
ldrb r2, [r0]
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
mov r1, r12
strb r0, [r1]
_08110664:
ldrh r0, [r3, 0x30]
adds r0, 0x1
strh r0, [r3, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x33
bne _08110678
adds r0, r3, 0
bl DestroyAnimSprite
_08110678:
pop {r0}
bx r0
thumb_func_end sub_8110630
thumb_func_start sub_811067C
sub_811067C: @ 811067C
push {r4,lr}
adds r4, r0, 0
movs r1, 0xFD
lsls r1, 6
movs r0, 0x50
bl SetGpuReg
movs r0, 0x52
movs r1, 0x10
bl SetGpuReg
movs r0, 0x10
strh r0, [r4, 0x2E]
ldr r0, =sub_81106A4
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_811067C
thumb_func_start sub_81106A4
sub_81106A4: @ 81106A4
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x32]
movs r2, 0x32
ldrsh r0, [r4, r2]
cmp r0, 0x13
bgt _081106B8
adds r0, r1, 0x1
strh r0, [r4, 0x32]
b _081106F6
_081106B8:
ldrh r1, [r4, 0x30]
adds r0, r1, 0x1
strh r0, [r4, 0x30]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081106F6
ldrh r1, [r4, 0x2E]
subs r1, 0x1
strh r1, [r4, 0x2E]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081106F6
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldr r0, =sub_8110700
str r0, [r4, 0x1C]
_081106F6:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81106A4
thumb_func_start sub_8110700
sub_8110700: @ 8110700
push {r4,lr}
adds r4, r0, 0
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
adds r0, r4, 0
bl DestroyAnimSprite
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8110700
thumb_func_start sub_8110720
sub_8110720: @ 8110720
push {r4-r7,lr}
sub sp, 0x4
adds r7, r0, 0
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08110740
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
b _08110762
.pool
_08110740:
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08110762
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
ldrh r0, [r1, 0x2]
negs r0, r0
strh r0, [r1, 0x2]
ldrh r0, [r1, 0x6]
negs r0, r0
strh r0, [r1, 0x6]
_08110762:
bl IsContest
lsls r0, 24
cmp r0, 0
bne _081107B2
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
adds r4, r0, 0
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
bne _081107B2
ldrb r0, [r5]
bl GetBattlerPosition
lsls r0, 24
cmp r0, 0
beq _081107A0
ldrb r0, [r5]
bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081107B2
_081107A0:
ldr r0, =gBattleAnimArgs
movs r2, 0x4
ldrsh r1, [r0, r2]
negs r1, r1
strh r1, [r0, 0x4]
movs r2, 0
ldrsh r1, [r0, r2]
negs r1, r1
strh r1, [r0]
_081107B2:
adds r0, r7, 0
movs r1, 0x1
bl sub_80A69CC
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
adds r4, r0, 0
lsls r4, 24
ldr r6, =gBattleAnimArgs
lsrs r4, 24
ldrh r0, [r6, 0x4]
adds r4, r0
lsls r4, 16
lsrs r4, 16
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
ldrh r2, [r6, 0x6]
adds r1, r2
lsls r1, 16
ldrh r2, [r7, 0x20]
lsls r0, r4, 16
asrs r0, 16
subs r0, r2
lsls r0, 16
asrs r0, 16
ldrh r2, [r7, 0x22]
lsrs r5, r1, 16
asrs r1, 16
subs r1, r2
lsls r1, 16
asrs r1, 16
bl sub_80A74F4
lsls r0, 16
movs r1, 0xC0
lsls r1, 24
adds r0, r1
lsrs r0, 16
movs r3, 0x80
lsls r3, 1
str r0, [sp]
adds r0, r7, 0
movs r1, 0
adds r2, r3, 0
bl sub_80A73E0
ldrh r0, [r6, 0x8]
strh r0, [r7, 0x2E]
strh r4, [r7, 0x32]
strh r5, [r7, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r7, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r7, 0
bl StoreSpriteCallbackInData6
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8110720
thumb_func_start sub_8110850
sub_8110850: @ 8110850
push {r4-r6,lr}
adds r6, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08110870
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_08110870:
ldr r4, =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x4]
adds r0, r1
strh r0, [r6, 0x32]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x6]
adds r0, r1
strh r0, [r6, 0x36]
ldrh r0, [r4, 0xA]
strh r0, [r6, 0x38]
adds r0, r6, 0
bl sub_80A68D4
ldr r0, =sub_81108CC
str r0, [r6, 0x1C]
adds r2, r6, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8110850
thumb_func_start sub_81108CC
sub_81108CC: @ 81108CC
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x14
adds r4, r0, 0
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x5
negs r1, r1
ands r1, r0
strb r1, [r2]
adds r0, r4, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
beq _081108F8
adds r0, r4, 0
bl DestroyAnimSprite
b _08110988
_081108F8:
movs r0, 0x2E
adds r0, r4
mov r8, r0
ldrh r7, [r4, 0x20]
ldrh r5, [r4, 0x24]
ldrh r1, [r4, 0x22]
mov r12, r1
ldrh r6, [r4, 0x26]
mov r2, r8
add r1, sp, 0x4
movs r3, 0x7
_0811090E:
ldrh r0, [r2]
strh r0, [r1]
adds r2, 0x2
adds r1, 0x2
subs r3, 0x1
cmp r3, 0
bge _0811090E
adds r0, r7, r5
lsls r0, 16
lsrs r5, r0, 16
mov r2, r12
adds r0, r2, r6
lsls r0, 16
lsrs r6, r0, 16
adds r0, r4, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
bne _08110988
ldrh r0, [r4, 0x24]
ldrh r1, [r4, 0x20]
adds r0, r1
lsls r1, r5, 16
asrs r1, 16
subs r0, r1
lsls r0, 16
asrs r0, 16
ldrh r1, [r4, 0x26]
ldrh r2, [r4, 0x22]
adds r1, r2
lsls r2, r6, 16
asrs r2, 16
subs r1, r2
lsls r1, 16
asrs r1, 16
bl sub_80A74F4
lsls r0, 16
movs r1, 0xC0
lsls r1, 24
adds r0, r1
lsrs r0, 16
movs r3, 0x80
lsls r3, 1
str r0, [sp]
adds r0, r4, 0
movs r1, 0
adds r2, r3, 0
bl sub_80A73E0
add r2, sp, 0x4
mov r1, r8
movs r3, 0x7
_0811097A:
ldrh r0, [r2]
strh r0, [r1]
adds r2, 0x2
adds r1, 0x2
subs r3, 0x1
cmp r3, 0
bge _0811097A
_08110988:
add sp, 0x14
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81108CC
thumb_func_start sub_8110994
sub_8110994: @ 8110994
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _081109B0
ldr r4, =gBattleAnimAttacker
b _081109B2
.pool
_081109B0:
ldr r4, =gBattleAnimTarget
_081109B2:
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
adds r0, 0x12
strh r0, [r5, 0x22]
ldr r1, =move_anim_8074EE0
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67BC
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8110994
thumb_func_start sub_81109F0
sub_81109F0: @ 81109F0
push {r4-r6,lr}
adds r5, r0, 0
ldr r6, =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r6, r1]
cmp r0, 0
beq _08110A10
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x20
adds r3, r5, 0
adds r3, 0x22
movs r1, 0
bl sub_80A8924
_08110A10:
ldrh r0, [r6]
ldrh r1, [r5, 0x20]
adds r0, r1
movs r4, 0
strh r0, [r5, 0x20]
ldrh r0, [r5, 0x22]
adds r0, 0xE
strh r0, [r5, 0x22]
ldrb r1, [r6, 0x2]
adds r0, r5, 0
bl StartSpriteAnim
adds r0, r5, 0
bl AnimateSprite
strh r4, [r5, 0x2E]
strh r4, [r5, 0x30]
movs r0, 0x4
strh r0, [r5, 0x32]
movs r0, 0x10
strh r0, [r5, 0x34]
ldr r0, =0x0000ffba
strh r0, [r5, 0x36]
ldrh r0, [r6, 0x4]
strh r0, [r5, 0x38]
ldr r1, =sub_8110A70
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldr r1, =sub_80A6450
str r1, [r5, 0x1C]
adds r0, r5, 0
bl _call_via_r1
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81109F0
thumb_func_start sub_8110A70
sub_8110A70: @ 8110A70
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x38]
ldrh r2, [r4, 0x20]
adds r0, r1, r2
strh r0, [r4, 0x20]
movs r0, 0xC0
strh r0, [r4, 0x2E]
strh r1, [r4, 0x30]
movs r0, 0x4
strh r0, [r4, 0x32]
movs r0, 0x20
strh r0, [r4, 0x34]
ldr r0, =0x0000ffe8
strh r0, [r4, 0x36]
ldr r1, =move_anim_8074EE0
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r1, =sub_80A6450
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8110A70
thumb_func_start sub_8110AB4
sub_8110AB4: @ 8110AB4
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, =gBattleAnimArgs
ldrb r1, [r4, 0xA]
bl StartSpriteAnim
adds r0, r5, 0
bl AnimateSprite
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08110AE4
ldrh r0, [r5, 0x20]
ldrh r1, [r4]
subs r0, r1
b _08110AEA
.pool
_08110AE4:
ldrh r0, [r4]
ldrh r1, [r5, 0x20]
adds r0, r1
_08110AEA:
strh r0, [r5, 0x20]
ldr r3, =gBattleAnimArgs
ldrh r2, [r3, 0x2]
ldrh r0, [r5, 0x22]
adds r2, r0
movs r4, 0
strh r2, [r5, 0x22]
ldrh r0, [r3, 0x8]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
ldrh r1, [r3, 0x4]
adds r0, r1
strh r0, [r5, 0x32]
strh r2, [r5, 0x34]
ldrh r0, [r3, 0x6]
adds r2, r0
strh r2, [r5, 0x36]
adds r0, r5, 0
bl sub_80A6E14
strh r4, [r5, 0x34]
strh r4, [r5, 0x36]
ldr r0, =sub_80A656C
str r0, [r5, 0x1C]
ldr r1, =move_anim_8074EE0
adds r0, r5, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8110AB4
thumb_func_start sub_8110B38
sub_8110B38: @ 8110B38
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0xC
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08110B54
adds r0, r4, 0
movs r1, 0
bl sub_80A69CC
b _08110B5C
.pool
_08110B54:
adds r0, r4, 0
movs r1, 0
bl sub_80A6980
_08110B5C:
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x32]
ldrh r0, [r1, 0xA]
strh r0, [r4, 0x34]
ldr r0, =sub_8110B80
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8110B38
thumb_func_start sub_8110B80
sub_8110B80: @ 8110B80
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x30]
ldrh r1, [r4, 0x36]
adds r0, r1
strh r0, [r4, 0x36]
lsls r0, 16
asrs r0, 24
negs r0, r0
strh r0, [r4, 0x26]
movs r2, 0x38
ldrsh r0, [r4, r2]
movs r2, 0x34
ldrsh r1, [r4, r2]
bl Sin
strh r0, [r4, 0x24]
ldrh r0, [r4, 0x32]
ldrh r1, [r4, 0x38]
adds r0, r1
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x38]
ldrh r0, [r4, 0x2E]
subs r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
movs r1, 0x1
negs r1, r1
cmp r0, r1
bne _08110BC6
adds r0, r4, 0
bl DestroyAnimSprite
_08110BC6:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8110B80
thumb_func_start AnimTask_LoadSandstormBackground
AnimTask_LoadSandstormBackground: @ 8110BCC
push {r4-r6,lr}
sub sp, 0x10
lsls r0, 24
lsrs r6, r0, 24
movs r5, 0
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
movs r1, 0x80
lsls r1, 5
movs r0, 0x52
bl SetGpuReg
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0
movs r2, 0
bl SetAnimBgAttribute
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08110C10
movs r0, 0x1
movs r1, 0x3
movs r2, 0x1
bl SetAnimBgAttribute
_08110C10:
ldr r0, =gBattle_BG1_X
strh r5, [r0]
ldr r4, =gBattle_BG1_Y
strh r5, [r4]
movs r0, 0x14
movs r1, 0
bl SetGpuReg
ldrh r1, [r4]
movs r0, 0x16
bl SetGpuReg
mov r0, sp
bl sub_80A6B30
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, =gUnknown_08D8D58C
mov r2, sp
ldrh r2, [r2, 0xA]
bl sub_80A6CC0
ldr r1, =gUnknown_08D8D410
mov r0, sp
movs r2, 0
bl sub_80A6D60
ldr r0, =gBattleAnimSpritePalette_261
mov r1, sp
ldrb r1, [r1, 0x8]
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
beq _08110C6E
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08110C6E
movs r5, 0x1
_08110C6E:
ldr r0, =gTasks
lsls r1, r6, 2
adds r1, r6
lsls r1, 3
adds r1, r0
strh r5, [r1, 0x8]
ldr r0, =sub_8110CB0
str r0, [r1]
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_LoadSandstormBackground
thumb_func_start sub_8110CB0
sub_8110CB0: @ 8110CB0
push {r4,r5,lr}
sub sp, 0x10
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
movs r2, 0x8
ldrsh r0, [r0, r2]
adds r2, r1, 0
cmp r0, 0
bne _08110CE4
ldr r1, =gBattle_BG1_X
ldr r3, =0x0000fffa
adds r0, r3, 0
ldrh r3, [r1]
adds r0, r3
b _08110CEA
.pool
_08110CE4:
ldr r1, =gBattle_BG1_X
ldrh r0, [r1]
adds r0, 0x6
_08110CEA:
strh r0, [r1]
ldr r1, =gBattle_BG1_Y
ldr r3, =0x0000ffff
adds r0, r3, 0
ldrh r3, [r1]
adds r0, r3
strh r0, [r1]
lsls r1, r5, 2
adds r0, r1, r5
lsls r0, 3
adds r0, r2
movs r3, 0x20
ldrsh r0, [r0, r3]
adds r4, r1, 0
cmp r0, 0x4
bls _08110D0C
b _08110E3A
_08110D0C:
lsls r0, 2
ldr r1, =_08110D28
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08110D28:
.4byte _08110D3C
.4byte _08110D7E
.4byte _08110D98
.4byte _08110DDA
.4byte _08110DFC
_08110D3C:
adds r0, r4, r5
lsls r0, 3
adds r4, r0, r2
ldrh r0, [r4, 0x1C]
adds r0, 0x1
movs r5, 0
strh r0, [r4, 0x1C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bne _08110E3A
strh r5, [r4, 0x1C]
ldrh r1, [r4, 0x1E]
adds r1, 0x1
strh r1, [r4, 0x1E]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0x1E
ldrsh r0, [r4, r1]
cmp r0, 0x7
bne _08110E3A
ldrh r0, [r4, 0x20]
adds r0, 0x1
strh r0, [r4, 0x20]
strh r5, [r4, 0x1E]
b _08110E3A
_08110D7E:
adds r0, r4, r5
lsls r0, 3
adds r1, r0, r2
ldrh r0, [r1, 0x1E]
adds r0, 0x1
strh r0, [r1, 0x1E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x65
bne _08110E3A
movs r0, 0x7
strh r0, [r1, 0x1E]
b _08110DF0
_08110D98:
adds r0, r4, r5
lsls r0, 3
adds r4, r0, r2
ldrh r0, [r4, 0x1C]
adds r0, 0x1
strh r0, [r4, 0x1C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bne _08110E3A
movs r0, 0
strh r0, [r4, 0x1C]
ldrh r1, [r4, 0x1E]
subs r1, 0x1
strh r1, [r4, 0x1E]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r2, 0x1E
ldrsh r1, [r4, r2]
cmp r1, 0
bne _08110E3A
ldrh r0, [r4, 0x20]
adds r0, 0x1
strh r0, [r4, 0x20]
strh r1, [r4, 0x1E]
b _08110E3A
_08110DDA:
mov r0, sp
bl sub_80A6B30
mov r0, sp
ldrb r0, [r0, 0x9]
bl sub_80A6C68
ldr r0, =gTasks
adds r1, r4, r5
lsls r1, 3
adds r1, r0
_08110DF0:
ldrh r0, [r1, 0x20]
adds r0, 0x1
strh r0, [r1, 0x20]
b _08110E3A
.pool
_08110DFC:
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08110E10
movs r0, 0x1
movs r1, 0x3
movs r2, 0
bl SetAnimBgAttribute
_08110E10:
ldr r0, =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_BG1_Y
strh r1, [r0]
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
adds r0, r5, 0
bl DestroyAnimVisualTask
_08110E3A:
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8110CB0
thumb_func_start sub_8110E4C
sub_8110E4C: @ 8110E4C
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x2E
ldrsh r0, [r5, r1]
cmp r0, 0
bne _08110EC8
ldr r4, =gBattleAnimArgs
movs r2, 0x6
ldrsh r0, [r4, r2]
cmp r0, 0
beq _08110E98
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08110E98
movs r0, 0x98
lsls r0, 1
strh r0, [r5, 0x20]
ldrh r0, [r4, 0x2]
negs r0, r0
strh r0, [r4, 0x2]
movs r0, 0x1
strh r0, [r5, 0x38]
ldrb r1, [r5, 0x3]
subs r0, 0x40
ands r0, r1
movs r1, 0x10
orrs r0, r1
strb r0, [r5, 0x3]
b _08110E9C
.pool
_08110E98:
ldr r0, =0x0000ffc0
strh r0, [r5, 0x20]
_08110E9C:
ldr r4, =gBattleAnimArgs
ldrh r0, [r4]
strh r0, [r5, 0x22]
ldr r1, =gUnknown_08596BC0
adds r0, r5, 0
bl SetSubspriteTables
ldrh r0, [r4, 0x2]
strh r0, [r5, 0x30]
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x32]
ldrh r0, [r5, 0x2E]
adds r0, 0x1
strh r0, [r5, 0x2E]
b _08110F24
.pool
_08110EC8:
ldrh r1, [r5, 0x30]
ldrh r3, [r5, 0x34]
adds r1, r3
ldrh r2, [r5, 0x32]
ldrh r0, [r5, 0x36]
adds r2, r0
lsls r0, r1, 16
asrs r0, 24
ldrh r3, [r5, 0x24]
adds r0, r3
strh r0, [r5, 0x24]
lsls r0, r2, 16
asrs r0, 24
ldrh r3, [r5, 0x26]
adds r0, r3
strh r0, [r5, 0x26]
movs r0, 0xFF
ands r1, r0
strh r1, [r5, 0x34]
ands r2, r0
strh r2, [r5, 0x36]
movs r1, 0x38
ldrsh r0, [r5, r1]
cmp r0, 0
bne _08110F0E
movs r2, 0x20
ldrsh r0, [r5, r2]
movs r3, 0x24
ldrsh r1, [r5, r3]
adds r0, r1
movs r1, 0x88
lsls r1, 1
cmp r0, r1
ble _08110F24
b _08110F20
_08110F0E:
movs r1, 0x20
ldrsh r0, [r5, r1]
movs r2, 0x24
ldrsh r1, [r5, r2]
adds r0, r1
movs r1, 0x20
negs r1, r1
cmp r0, r1
bge _08110F24
_08110F20:
ldr r0, =DestroyAnimSprite
str r0, [r5, 0x1C]
_08110F24:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8110E4C
thumb_func_start sub_8110F30
sub_8110F30: @ 8110F30
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimArgs
ldrb r1, [r5, 0x8]
bl StartSpriteAnim
adds r0, r4, 0
movs r1, 0
bl sub_80A69CC
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x32]
ldrh r0, [r5, 0x4]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r4, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8110F30
thumb_func_start sub_8110F74
sub_8110F74: @ 8110F74
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks
adds r6, r1, r0
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
mov r9, r0
ldrb r0, [r5]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 8
movs r1, 0xC0
lsls r1, 13
adds r0, r1
lsrs r7, r0, 16
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
mov r10, r0
ldrb r0, [r4]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 8
movs r2, 0xC0
lsls r2, 13
adds r0, r2
lsrs r0, 16
mov r8, r0
ldrb r1, [r5]
movs r0, 0x2
eors r0, r1
ldrb r4, [r4]
cmp r0, r4
bne _08110FE4
mov r8, r7
_08110FE4:
bl sub_811135C
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x1
bne _08111000
movs r0, 0x20
b _08111006
.pool
_08111000:
lsls r1, r5, 3
movs r0, 0x30
subs r0, r1
_08111006:
strh r0, [r6, 0x18]
movs r4, 0
strh r4, [r6, 0x8]
strh r4, [r6, 0x1E]
strh r4, [r6, 0x1A]
movs r0, 0x1
strh r0, [r6, 0x20]
movs r1, 0x18
ldrsh r0, [r6, r1]
cmp r0, 0
bge _0811101E
adds r0, 0x7
_0811101E:
asrs r0, 3
subs r0, 0x1
strh r0, [r6, 0x1C]
mov r2, r9
lsls r0, r2, 3
strh r0, [r6, 0xC]
lsls r0, r7, 3
strh r0, [r6, 0xE]
mov r1, r10
subs r0, r1, r2
lsls r0, 3
movs r2, 0x18
ldrsh r1, [r6, r2]
bl __divsi3
strh r0, [r6, 0x10]
mov r1, r8
subs r0, r1, r7
lsls r0, 3
movs r2, 0x18
ldrsh r1, [r6, r2]
bl __divsi3
strh r0, [r6, 0x12]
strh r4, [r6, 0x14]
strh r4, [r6, 0x16]
movs r0, 0x40
negs r0, r0
bl BattleAnimAdjustPanning
adds r4, r0, 0
lsls r4, 24
asrs r4, 8
lsrs r4, 16
movs r0, 0x3F
bl BattleAnimAdjustPanning
lsls r0, 24
strh r4, [r6, 0x22]
asrs r0, 24
lsls r4, 16
asrs r4, 16
subs r0, r4
movs r2, 0x18
ldrsh r1, [r6, r2]
bl __divsi3
strh r0, [r6, 0x24]
strh r5, [r6, 0xA]
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x26]
ldr r0, =sub_81110A4
str r0, [r6]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8110F74
thumb_func_start sub_81110A4
sub_81110A4: @ 81110A4
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0x4
bls _081110BE
b _0811120C
_081110BE:
lsls r0, 2
ldr r1, =_081110D0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081110D0:
.4byte _081110E4
.4byte _08111148
.4byte _08111150
.4byte _081111AC
.4byte _081111FE
_081110E4:
ldrh r2, [r4, 0x14]
ldrh r0, [r4, 0x10]
subs r2, r0
strh r2, [r4, 0x14]
ldrh r0, [r4, 0x16]
ldrh r1, [r4, 0x12]
subs r0, r1
strh r0, [r4, 0x16]
ldr r3, =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
lsls r2, 16
asrs r2, 19
strh r2, [r0, 0x24]
movs r1, 0x26
ldrsh r0, [r4, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r3
ldrh r0, [r4, 0x16]
lsls r0, 16
asrs r0, 19
strh r0, [r1, 0x26]
ldrh r0, [r4, 0x1A]
adds r0, 0x1
strh r0, [r4, 0x1A]
lsls r0, 16
asrs r0, 16
cmp r0, 0xA
bne _08111134
movs r0, 0x14
strh r0, [r4, 0x1E]
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_08111134:
ldrh r1, [r4, 0x22]
lsls r1, 24
asrs r1, 24
movs r0, 0xA2
bl PlaySE12WithPanning
b _0811120C
.pool
_08111148:
ldrh r0, [r4, 0x1E]
subs r0, 0x1
strh r0, [r4, 0x1E]
b _081111F0
_08111150:
ldrh r0, [r4, 0x1A]
subs r0, 0x1
strh r0, [r4, 0x1A]
lsls r0, 16
asrs r0, 16
cmp r0, 0
beq _08111170
ldrh r0, [r4, 0x10]
ldrh r2, [r4, 0x14]
adds r0, r2
strh r0, [r4, 0x14]
ldrh r0, [r4, 0x12]
ldrh r1, [r4, 0x16]
adds r0, r1
strh r0, [r4, 0x16]
b _0811117A
_08111170:
strh r0, [r4, 0x14]
strh r0, [r4, 0x16]
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_0811117A:
ldr r2, =gSprites
movs r1, 0x26
ldrsh r0, [r4, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
ldrh r0, [r4, 0x14]
lsls r0, 16
asrs r0, 19
strh r0, [r1, 0x24]
movs r1, 0x26
ldrsh r0, [r4, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
ldrh r0, [r4, 0x16]
lsls r0, 16
asrs r0, 19
strh r0, [r1, 0x26]
b _0811120C
.pool
_081111AC:
ldrh r0, [r4, 0x10]
ldrh r2, [r4, 0xC]
adds r0, r2
strh r0, [r4, 0xC]
ldrh r0, [r4, 0x12]
ldrh r1, [r4, 0xE]
adds r0, r1
strh r0, [r4, 0xE]
ldrh r0, [r4, 0x1A]
adds r0, 0x1
strh r0, [r4, 0x1A]
lsls r0, 16
asrs r0, 16
movs r2, 0x1C
ldrsh r1, [r4, r2]
cmp r0, r1
blt _081111EA
movs r0, 0
strh r0, [r4, 0x1A]
adds r0, r4, 0
bl sub_8111214
ldrh r1, [r4, 0x24]
ldrh r0, [r4, 0x22]
adds r1, r0
strh r1, [r4, 0x22]
lsls r1, 24
asrs r1, 24
movs r0, 0xAF
bl PlaySE12WithPanning
_081111EA:
ldrh r0, [r4, 0x18]
subs r0, 0x1
strh r0, [r4, 0x18]
_081111F0:
lsls r0, 16
cmp r0, 0
bne _0811120C
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _0811120C
_081111FE:
movs r1, 0x1E
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0811120C
adds r0, r2, 0
bl DestroyAnimVisualTask
_0811120C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81110A4
thumb_func_start sub_8111214
sub_8111214: @ 8111214
push {r4-r7,lr}
adds r4, r0, 0
ldrh r0, [r4, 0xA]
subs r0, 0x1
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bhi _08111304
lsls r0, 2
ldr r1, =_08111234
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08111234:
.4byte _08111248
.4byte _08111254
.4byte _08111254
.4byte _08111260
.4byte _0811126C
_08111248:
ldr r3, =gUnknown_08596C28
movs r5, 0
b _08111270
.pool
_08111254:
ldr r3, =gUnknown_08596C40
movs r5, 0x50
b _08111270
.pool
_08111260:
ldr r3, =gUnknown_08596C40
movs r5, 0x40
b _08111270
.pool
_0811126C:
ldr r3, =gUnknown_08596C40
movs r5, 0x30
_08111270:
ldrh r1, [r4, 0xC]
lsls r1, 16
asrs r1, 19
lsls r1, 16
lsrs r1, 16
ldrh r2, [r4, 0xE]
lsls r2, 16
asrs r2, 19
lsls r2, 16
movs r6, 0x20
ldrsh r0, [r4, r6]
lsls r0, 2
adds r1, r0
lsls r1, 16
lsrs r6, r1, 16
asrs r1, 16
lsrs r7, r2, 16
asrs r2, 16
adds r0, r3, 0
movs r3, 0x23
bl CreateSprite
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x40
beq _081112FC
ldr r1, =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
movs r1, 0x12
strh r1, [r0, 0x2E]
movs r2, 0x20
ldrsh r1, [r4, r2]
lsls r2, r1, 2
adds r2, r1
lsls r2, 2
adds r2, r6, r2
movs r6, 0xA
ldrsh r3, [r4, r6]
lsls r1, r3, 1
adds r1, r3
adds r2, r1
strh r2, [r0, 0x32]
strh r7, [r0, 0x36]
movs r1, 0xA
ldrsh r2, [r4, r1]
lsls r2, 1
movs r3, 0x10
negs r3, r3
adds r1, r3, 0
subs r1, r2
strh r1, [r0, 0x38]
ldrh r3, [r0, 0x4]
lsls r2, r3, 22
lsrs r2, 22
adds r2, r5
ldr r5, =0x000003ff
adds r1, r5, 0
ands r2, r1
ldr r1, =0xfffffc00
ands r1, r3
orrs r1, r2
strh r1, [r0, 0x4]
bl sub_80A68D4
ldrh r0, [r4, 0x1E]
adds r0, 0x1
strh r0, [r4, 0x1E]
_081112FC:
movs r6, 0x20
ldrsh r0, [r4, r6]
negs r0, r0
strh r0, [r4, 0x20]
_08111304:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8111214
thumb_func_start sub_811131C
sub_811131C: @ 811131C
push {r4,lr}
adds r4, r0, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
beq _0811134E
ldr r0, =sub_81110A4
bl FindTaskIdByFunc
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
beq _08111348
ldr r0, =gTasks
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x1E]
subs r0, 0x1
strh r0, [r1, 0x1E]
_08111348:
adds r0, r4, 0
bl DestroySprite
_0811134E:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_811131C
thumb_func_start sub_811135C
sub_811135C: @ 811135C
push {lr}
ldr r0, =gAnimDisableStructPtr
ldr r0, [r0]
ldrb r1, [r0, 0x11]
lsrs r0, r1, 4
lsls r1, 28
lsrs r1, 28
subs r0, r1
lsls r0, 24
lsrs r1, r0, 24
movs r2, 0xFF
lsls r2, 24
adds r0, r2
lsrs r0, 24
cmp r0, 0x4
bls _0811137E
movs r1, 0x1
_0811137E:
adds r0, r1, 0
pop {r1}
bx r1
.pool
thumb_func_end sub_811135C
thumb_func_start sub_8111388
sub_8111388: @ 8111388
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimArgs
ldrb r1, [r5, 0x8]
bl StartSpriteAnim
ldrh r0, [r5]
strh r0, [r4, 0x24]
ldrh r0, [r5, 0x2]
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x34]
ldrh r1, [r5, 0x4]
subs r0, r1
strh r0, [r4, 0x34]
movs r0, 0x3
strh r0, [r4, 0x2E]
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x30]
ldr r0, =sub_81113C8
str r0, [r4, 0x1C]
adds r4, 0x3E
ldrb r0, [r4]
movs r1, 0x4
orrs r0, r1
strb r0, [r4]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8111388
thumb_func_start sub_81113C8
sub_81113C8: @ 81113C8
push {lr}
adds r2, r0, 0
adds r3, r2, 0
adds r3, 0x3E
ldrb r0, [r3]
movs r1, 0x5
negs r1, r1
ands r1, r0
strb r1, [r3]
ldrh r1, [r2, 0x34]
movs r3, 0x34
ldrsh r0, [r2, r3]
cmp r0, 0
beq _08111400
ldrh r3, [r2, 0x32]
adds r0, r1, r3
strh r0, [r2, 0x26]
ldrh r0, [r2, 0x2E]
adds r1, r0
strh r1, [r2, 0x34]
adds r0, 0x1
strh r0, [r2, 0x2E]
lsls r1, 16
cmp r1, 0
ble _08111412
movs r0, 0
strh r0, [r2, 0x34]
b _08111412
_08111400:
ldrh r0, [r2, 0x30]
subs r0, 0x1
strh r0, [r2, 0x30]
lsls r0, 16
cmp r0, 0
bne _08111412
adds r0, r2, 0
bl DestroyAnimSprite
_08111412:
pop {r0}
bx r0
thumb_func_end sub_81113C8
thumb_func_start sub_8111418
sub_8111418: @ 8111418
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08111434
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
_08111434:
adds r0, r4, 0
bl sub_80A7820
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8111418
thumb_func_start sub_8111444
sub_8111444: @ 8111444
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
ldrb r0, [r5]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldr r2, =gBattleAnimArgs
ldrh r3, [r2]
ldrh r5, [r4, 0x20]
adds r1, r3, r5
strh r1, [r4, 0x20]
ldrh r1, [r2, 0x2]
adds r0, r1
strh r0, [r4, 0x22]
strh r3, [r4, 0x30]
strh r1, [r4, 0x32]
ldrh r0, [r2, 0x4]
strh r0, [r4, 0x38]
ldrb r1, [r2, 0x6]
adds r0, r4, 0
bl StartSpriteAnim
ldr r0, =sub_811149C
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8111444
thumb_func_start sub_811149C
sub_811149C: @ 811149C
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x2E]
adds r0, 0x8
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x30]
ldrh r1, [r4, 0x34]
adds r0, r1
strh r0, [r4, 0x34]
ldrh r0, [r4, 0x32]
ldrh r2, [r4, 0x36]
adds r0, r2
strh r0, [r4, 0x36]
movs r1, 0x34
ldrsh r0, [r4, r1]
movs r1, 0x28
bl __divsi3
ldrh r1, [r4, 0x24]
adds r1, r0
strh r1, [r4, 0x24]
movs r2, 0x2E
ldrsh r0, [r4, r2]
movs r2, 0x38
ldrsh r1, [r4, r2]
bl Sin
ldrh r1, [r4, 0x26]
subs r1, r0
strh r1, [r4, 0x26]
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0x8C
ble _081114E6
adds r0, r4, 0
bl DestroyAnimSprite
_081114E6:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_811149C
thumb_func_start AnimTask_GetSeismicTossDamageLevel
AnimTask_GetSeismicTossDamageLevel: @ 81114EC
push {lr}
lsls r0, 24
lsrs r3, r0, 24
ldr r2, =gAnimMoveDmg
ldr r0, [r2]
cmp r0, 0x20
bgt _08111500
ldr r1, =gBattleAnimArgs
movs r0, 0
strh r0, [r1, 0xE]
_08111500:
ldr r2, [r2]
adds r0, r2, 0
subs r0, 0x21
cmp r0, 0x20
bhi _08111510
ldr r1, =gBattleAnimArgs
movs r0, 0x1
strh r0, [r1, 0xE]
_08111510:
cmp r2, 0x41
ble _0811151A
ldr r1, =gBattleAnimArgs
movs r0, 0x2
strh r0, [r1, 0xE]
_0811151A:
adds r0, r3, 0
bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_GetSeismicTossDamageLevel
thumb_func_start sub_811152C
sub_811152C: @ 811152C
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r1, =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r5, r0, r1
movs r1, 0x8
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0811154E
movs r0, 0
bl sub_80A6DAC
movs r0, 0xC8
strh r0, [r5, 0xA]
_0811154E:
ldr r4, =gBattle_BG3_Y
movs r1, 0xA
ldrsh r0, [r5, r1]
movs r1, 0xA
bl __divsi3
ldrh r1, [r4]
adds r1, r0
strh r1, [r4]
ldrh r0, [r5, 0xA]
subs r0, 0x3
strh r0, [r5, 0xA]
movs r1, 0x8
ldrsh r0, [r5, r1]
cmp r0, 0x78
bne _0811157A
movs r0, 0x1
bl sub_80A6DAC
adds r0, r6, 0
bl DestroyAnimVisualTask
_0811157A:
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_811152C
thumb_func_start sub_8111590
sub_8111590: @ 8111590
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081115BC
movs r0, 0
bl sub_80A6DAC
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
ldr r0, =gBattle_BG3_Y
ldrh r0, [r0]
strh r0, [r4, 0xC]
_081115BC:
ldrh r0, [r4, 0xA]
adds r0, 0x50
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0xA]
ldr r6, =gBattle_BG3_Y
movs r2, 0xA
ldrsh r1, [r4, r2]
movs r0, 0x4
bl Cos
ldrh r4, [r4, 0xC]
adds r0, r4
strh r0, [r6]
ldr r0, =gBattleAnimArgs
movs r2, 0xE
ldrsh r1, [r0, r2]
ldr r0, =0x00000fff
cmp r1, r0
bne _081115F4
movs r0, 0
strh r0, [r6]
movs r0, 0x1
bl sub_80A6DAC
adds r0, r5, 0
bl DestroyAnimVisualTask
_081115F4:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8111590
thumb_func_start sub_811160C
sub_811160C: @ 811160C
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
adds r0, r4, 0
bl sub_80A6FD4
ldr r0, =sub_8111674
str r0, [r4, 0x1C]
movs r0, 0x10
strh r0, [r4, 0x3A]
movs r1, 0xFD
lsls r1, 6
movs r0, 0x50
bl SetGpuReg
ldrh r1, [r4, 0x3A]
movs r0, 0x52
bl SetGpuReg
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_811160C
thumb_func_start sub_8111674
sub_8111674: @ 8111674
push {r4,lr}
adds r4, r0, 0
bl sub_8111764
adds r0, r4, 0
bl sub_80A6F3C
lsls r0, 24
cmp r0, 0
beq _08111694
ldr r0, =sub_81116E8
str r0, [r4, 0x1C]
b _081116DE
.pool
_08111694:
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r1, 0xA
bl Sin
ldrh r1, [r4, 0x24]
adds r0, r1
strh r0, [r4, 0x24]
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r1, 0xF
bl Cos
ldrh r1, [r4, 0x26]
adds r0, r1
strh r0, [r4, 0x26]
ldrh r2, [r4, 0x38]
adds r0, r2, 0x5
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x38]
ldrh r0, [r4, 0x38]
lsls r2, 16
asrs r2, 16
cmp r2, 0
beq _081116CC
cmp r2, 0xC4
ble _081116DE
_081116CC:
lsls r0, 16
cmp r0, 0
ble _081116DE
ldr r0, =gUnknown_02038440
movs r1, 0
ldrsb r1, [r0, r1]
movs r0, 0xC4
bl PlaySE12WithPanning
_081116DE:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8111674
thumb_func_start sub_81116E8
sub_81116E8: @ 81116E8
push {r4,lr}
adds r4, r0, 0
movs r0, 0x1
strh r0, [r4, 0x2E]
adds r0, r4, 0
bl sub_80A6F3C
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r1, 0xA
bl Sin
ldrh r1, [r4, 0x24]
adds r0, r1
strh r0, [r4, 0x24]
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r1, 0xF
bl Cos
ldrh r1, [r4, 0x26]
adds r0, r1
strh r0, [r4, 0x26]
ldrh r2, [r4, 0x38]
adds r0, r2, 0x5
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x38]
ldrh r0, [r4, 0x38]
lsls r2, 16
asrs r2, 16
cmp r2, 0
beq _0811172E
cmp r2, 0xC4
ble _0811173A
_0811172E:
lsls r0, 16
cmp r0, 0
ble _0811173A
movs r0, 0xC4
bl PlaySE
_0811173A:
movs r1, 0x3A
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08111758
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldr r0, =sub_80A67F4
str r0, [r4, 0x1C]
b _0811175E
.pool
_08111758:
adds r0, r4, 0
bl sub_8111764
_0811175E:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81116E8
thumb_func_start sub_8111764
sub_8111764: @ 8111764
push {r4,lr}
adds r4, r0, 0
ldrh r2, [r4, 0x3A]
movs r1, 0x3A
ldrsh r0, [r4, r1]
cmp r0, 0xFF
ble _08111788
adds r0, r2, 0x1
strh r0, [r4, 0x3A]
lsls r0, 16
ldr r1, =0x010d0000
cmp r0, r1
bne _081117EE
movs r0, 0
b _081117EC
.pool
_08111788:
ldrh r1, [r4, 0x3C]
adds r3, r1, 0x1
strh r3, [r4, 0x3C]
movs r0, 0xFF
ands r0, r1
cmp r0, 0
bne _081117EE
ldr r1, =0xffffff00
ands r1, r3
strh r1, [r4, 0x3C]
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _081117B0
adds r0, r2, 0x1
b _081117B2
.pool
_081117B0:
subs r0, r2, 0x1
_081117B2:
strh r0, [r4, 0x3A]
ldrh r0, [r4, 0x3A]
movs r1, 0x10
subs r1, r0
lsls r1, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r2, 0x3A
ldrsh r0, [r4, r2]
cmp r0, 0
beq _081117D4
cmp r0, 0x10
bne _081117E0
_081117D4:
ldrh r0, [r4, 0x3C]
movs r2, 0x80
lsls r2, 1
adds r1, r2, 0
eors r0, r1
strh r0, [r4, 0x3C]
_081117E0:
movs r1, 0x3A
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081117EE
movs r0, 0x80
lsls r0, 1
_081117EC:
strh r0, [r4, 0x3A]
_081117EE:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8111764
thumb_func_start sub_81117F4
sub_81117F4: @ 81117F4
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A6980
ldr r1, =sub_8111814
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81117F4
thumb_func_start sub_8111814
sub_8111814: @ 8111814
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
movs r1, 0x20
bl Sin
strh r0, [r4, 0x24]
movs r1, 0x2E
ldrsh r0, [r4, r1]
movs r1, 0x8
bl Cos
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x2E]
subs r0, 0x41
lsls r0, 16
lsrs r0, 16
cmp r0, 0x82
bhi _08111848
ldrb r0, [r4, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r0
movs r0, 0x8
b _08111852
_08111848:
ldrb r0, [r4, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r0
movs r0, 0x4
_08111852:
orrs r1, r0
strb r1, [r4, 0x5]
ldrh r0, [r4, 0x2E]
adds r0, 0x13
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x32]
adds r0, 0x50
strh r0, [r4, 0x32]
lsls r0, 16
asrs r0, 24
ldrh r1, [r4, 0x26]
adds r0, r1
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x3C]
adds r0, 0x1
strh r0, [r4, 0x3C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3D
bne _08111884
adds r0, r4, 0
bl DestroyAnimSprite
_08111884:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8111814
thumb_func_start sub_811188C
sub_811188C: @ 811188C
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
movs r1, 0xFD
lsls r1, 6
movs r0, 0x50
bl SetGpuReg
movs r1, 0x80
lsls r1, 5
movs r0, 0x52
bl SetGpuReg
movs r0, 0
bl GetAnimBattlerSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
movs r1, 0x1
bl sub_80A7270
adds r0, r4, 0
movs r1, 0x80
movs r2, 0x80
movs r3, 0
bl obj_id_set_rotscale
ldr r1, =gSprites
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r0, r1
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
movs r2, 0
movs r1, 0x80
strh r1, [r0, 0x8]
ldr r1, =gBattleAnimArgs
ldrh r1, [r1]
strh r1, [r0, 0xA]
strh r2, [r0, 0xC]
movs r1, 0x10
strh r1, [r0, 0xE]
ldr r1, =sub_8111914
str r1, [r0]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_811188C
thumb_func_start sub_8111914
sub_8111914: @ 8111914
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r2, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
ldrh r0, [r4, 0x1C]
adds r0, 0x1
strh r0, [r4, 0x1C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3
bne _0811195C
movs r0, 0
strh r0, [r4, 0x1C]
ldrh r1, [r4, 0xC]
adds r1, 0x1
strh r1, [r4, 0xC]
ldrh r0, [r4, 0xE]
subs r0, 0x1
strh r0, [r4, 0xE]
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0xC
ldrsh r0, [r4, r1]
cmp r0, 0x9
bne _0811195C
ldr r0, =sub_811196C
str r0, [r4]
_0811195C:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8111914
thumb_func_start sub_811196C
sub_811196C: @ 811196C
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r4, r0, r1
ldrh r1, [r4, 0xA]
movs r2, 0xA
ldrsh r0, [r4, r2]
cmp r0, 0
ble _08111994
subs r0, r1, 0x1
strh r0, [r4, 0xA]
b _081119D8
.pool
_08111994:
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r1, r0, 24
ldrh r0, [r4, 0x8]
adds r0, 0x8
strh r0, [r4, 0x8]
lsls r0, 16
asrs r0, 16
cmp r0, 0xFF
bgt _081119BC
movs r0, 0x8
ldrsh r2, [r4, r0]
adds r0, r1, 0
adds r1, r2, 0
movs r3, 0
bl obj_id_set_rotscale
b _081119D8
_081119BC:
adds r0, r1, 0
bl sub_80A7344
adds r0, r5, 0
bl DestroyAnimVisualTask
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
_081119D8:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_811196C
thumb_func_start sub_81119E0
sub_81119E0: @ 81119E0
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x4
adds r4, r0, 0
ldrh r5, [r4, 0x20]
ldrh r6, [r4, 0x22]
ldr r0, =gBattleAnimAttacker
mov r8, r0
ldrb r0, [r0]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r1, 0
mov r9, r1
strh r0, [r4, 0x20]
mov r1, r8
ldrb r0, [r1]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
mov r1, r9
strh r1, [r4, 0x2E]
ldr r2, =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r4, 0x30]
ldrh r1, [r2, 0x2]
strh r1, [r4, 0x32]
ldrh r1, [r2, 0x4]
strh r1, [r4, 0x34]
ldrh r1, [r4, 0x20]
lsls r1, 4
strh r1, [r4, 0x36]
lsls r0, 4
strh r0, [r4, 0x38]
lsls r5, 16
asrs r5, 16
movs r1, 0x20
ldrsh r0, [r4, r1]
subs r5, r0
lsls r5, 4
movs r0, 0
ldrsh r1, [r2, r0]
lsls r1, 1
adds r0, r5, 0
str r2, [sp]
bl __divsi3
strh r0, [r4, 0x3A]
lsls r6, 16
asrs r6, 16
movs r1, 0x22
ldrsh r0, [r4, r1]
subs r6, r0
lsls r6, 4
ldr r2, [sp]
movs r0, 0
ldrsh r1, [r2, r0]
lsls r1, 1
adds r0, r6, 0
bl __divsi3
strh r0, [r4, 0x3C]
ldr r0, =sub_8111A88
str r0, [r4, 0x1C]
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81119E0
thumb_func_start sub_8111A88
sub_8111A88: @ 8111A88
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x2E
ldrsh r0, [r5, r1]
cmp r0, 0x1
beq _08111AD2
cmp r0, 0x1
bgt _08111A9E
cmp r0, 0
beq _08111AA8
b _08111B96
_08111A9E:
cmp r0, 0x2
beq _08111B3C
cmp r0, 0x3
beq _08111B90
b _08111B96
_08111AA8:
ldrh r0, [r5, 0x3A]
ldrh r2, [r5, 0x36]
adds r0, r2
strh r0, [r5, 0x36]
ldrh r1, [r5, 0x3C]
ldrh r2, [r5, 0x38]
adds r1, r2
strh r1, [r5, 0x38]
lsls r0, 16
asrs r0, 20
strh r0, [r5, 0x20]
lsls r1, 16
asrs r1, 20
strh r1, [r5, 0x22]
ldrh r0, [r5, 0x30]
subs r0, 0x1
strh r0, [r5, 0x30]
lsls r0, 16
cmp r0, 0
bgt _08111B96
b _08111B82
_08111AD2:
ldrh r0, [r5, 0x32]
subs r0, 0x1
strh r0, [r5, 0x32]
lsls r0, 16
cmp r0, 0
bgt _08111B96
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x30]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
ldrh r0, [r5, 0x20]
lsls r0, 4
strh r0, [r5, 0x36]
ldrh r0, [r5, 0x22]
lsls r0, 4
strh r0, [r5, 0x38]
movs r1, 0x30
ldrsh r0, [r5, r1]
movs r2, 0x20
ldrsh r1, [r5, r2]
subs r0, r1
lsls r0, 4
movs r2, 0x34
ldrsh r1, [r5, r2]
bl __divsi3
strh r0, [r5, 0x3A]
movs r1, 0x32
ldrsh r0, [r5, r1]
movs r2, 0x22
ldrsh r1, [r5, r2]
subs r0, r1
lsls r0, 4
movs r2, 0x34
ldrsh r1, [r5, r2]
bl __divsi3
strh r0, [r5, 0x3C]
b _08111B82
.pool
_08111B3C:
ldrh r0, [r5, 0x3A]
ldrh r1, [r5, 0x36]
adds r0, r1
strh r0, [r5, 0x36]
ldrh r1, [r5, 0x3C]
ldrh r2, [r5, 0x38]
adds r1, r2
strh r1, [r5, 0x38]
lsls r0, 16
asrs r0, 20
strh r0, [r5, 0x20]
lsls r1, 16
asrs r1, 20
strh r1, [r5, 0x22]
ldrh r0, [r5, 0x34]
subs r0, 0x1
strh r0, [r5, 0x34]
lsls r0, 16
cmp r0, 0
bgt _08111B96
ldr r4, =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]
_08111B82:
ldrh r0, [r5, 0x2E]
adds r0, 0x1
strh r0, [r5, 0x2E]
b _08111B96
.pool
_08111B90:
adds r0, r5, 0
bl move_anim_8074EE0
_08111B96:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8111A88
thumb_func_start sub_8111B9C
sub_8111B9C: @ 8111B9C
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A6980
ldr r0, =sub_8111BB4
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8111B9C
thumb_func_start sub_8111BB4
sub_8111BB4: @ 8111BB4
push {r4-r6,lr}
adds r3, r0, 0
movs r5, 0
movs r6, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _08111C4A
adds r1, r3, 0
adds r1, 0x3E
ldrb r2, [r1]
movs r0, 0x4
ands r0, r2
adds r4, r1, 0
cmp r0, 0
bne _08111BDE
movs r0, 0x4
orrs r0, r2
strb r0, [r4]
_08111BDE:
movs r1, 0x2E
ldrsh r0, [r3, r1]
cmp r0, 0
beq _08111BEE
cmp r0, 0x1
beq _08111BF8
movs r6, 0x1
b _08111C02
_08111BEE:
movs r1, 0x30
ldrsh r0, [r3, r1]
cmp r0, 0x2
bne _08111C02
b _08111C06
_08111BF8:
movs r1, 0x30
ldrsh r0, [r3, r1]
cmp r0, 0x4
bne _08111C02
movs r5, 0x1
_08111C02:
cmp r5, 0
beq _08111C38
_08111C06:
ldrb r2, [r4]
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, [r4]
ldrh r0, [r3, 0x32]
adds r0, 0x1
movs r1, 0
strh r0, [r3, 0x32]
strh r1, [r3, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x5
bne _08111C4A
strh r1, [r3, 0x32]
ldrh r0, [r3, 0x2E]
adds r0, 0x1
strh r0, [r3, 0x2E]
b _08111C4A
_08111C38:
cmp r6, 0
beq _08111C44
adds r0, r3, 0
bl DestroyAnimSprite
b _08111C4A
_08111C44:
ldrh r0, [r3, 0x30]
adds r0, 0x1
strh r0, [r3, 0x30]
_08111C4A:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8111BB4
thumb_func_start sub_8111C50
sub_8111C50: @ 8111C50
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, =gTasks
adds r5, r0, r1
movs r0, 0x1
bl duplicate_obj_of_side_rel2move_in_transparent_mode
movs r6, 0
movs r1, 0
strh r0, [r5, 0x8]
lsls r0, 16
cmp r0, 0
bge _08111C80
adds r0, r4, 0
bl DestroyAnimVisualTask
b _08111D5C
.pool
_08111C80:
strh r1, [r5, 0xA]
movs r0, 0xF
strh r0, [r5, 0xC]
movs r0, 0x2
strh r0, [r5, 0xE]
strh r1, [r5, 0x10]
movs r1, 0xFD
lsls r1, 6
movs r0, 0x50
bl SetGpuReg
ldrh r1, [r5, 0xE]
lsls r1, 8
ldrh r0, [r5, 0xC]
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
ldr r4, =gSprites
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0x50
strh r1, [r0, 0x2E]
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08111CF4
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r1, =0x0000ff70
strh r1, [r0, 0x30]
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0x70
b _08111D12
.pool
_08111CF4:
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0x90
strh r1, [r0, 0x30]
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r1, =0x0000ff90
_08111D12:
strh r1, [r0, 0x32]
ldr r4, =gSprites
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r2, 0
strh r2, [r0, 0x34]
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
strh r2, [r0, 0x36]
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r1, =SpriteCallbackDummy
bl StoreSpriteCallbackInData6
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r4, 0x1C
adds r0, r4
ldr r1, =sub_80A656C
str r1, [r0]
ldr r0, =sub_8111D78
str r0, [r5]
_08111D5C:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8111C50
thumb_func_start sub_8111D78
sub_8111D78: @ 8111D78
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r1, 0x10
ldrsh r0, [r4, r1]
cmp r0, 0x1
beq _08111E1C
cmp r0, 0x1
bgt _08111DA0
cmp r0, 0
beq _08111DA6
b _08111E48
.pool
_08111DA0:
cmp r0, 0x2
beq _08111E42
b _08111E48
_08111DA6:
ldrh r1, [r4, 0xA]
adds r1, 0x1
strh r1, [r4, 0xA]
movs r0, 0x3
ands r0, r1
strh r0, [r4, 0x12]
cmp r0, 0x1
bne _08111DC4
ldrh r1, [r4, 0xC]
movs r2, 0xC
ldrsh r0, [r4, r2]
cmp r0, 0
ble _08111DC4
subs r0, r1, 0x1
strh r0, [r4, 0xC]
_08111DC4:
movs r1, 0x12
ldrsh r0, [r4, r1]
cmp r0, 0x3
bne _08111DDA
ldrh r1, [r4, 0xE]
movs r2, 0xE
ldrsh r0, [r4, r2]
cmp r0, 0xF
bgt _08111DDA
adds r0, r1, 0x1
strh r0, [r4, 0xE]
_08111DDA:
ldrh r1, [r4, 0xE]
lsls r1, 8
ldrh r0, [r4, 0xC]
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
ldr r1, [r4, 0xC]
movs r0, 0x80
lsls r0, 13
cmp r1, r0
bne _08111E48
movs r1, 0xA
ldrsh r0, [r4, r1]
cmp r0, 0x50
ble _08111E48
movs r2, 0x8
ldrsh r1, [r4, r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
bl obj_delete_but_dont_free_vram
movs r0, 0x1
strh r0, [r4, 0x10]
b _08111E48
.pool
_08111E1C:
ldrh r0, [r4, 0x14]
adds r0, 0x1
strh r0, [r4, 0x14]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _08111E48
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
ldrh r0, [r4, 0x10]
adds r0, 0x1
strh r0, [r4, 0x10]
b _08111E48
_08111E42:
adds r0, r2, 0
bl DestroyAnimVisualTask
_08111E48:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8111D78
thumb_func_start sub_8111E50
sub_8111E50: @ 8111E50
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r2, =gTasks
adds r1, r2
movs r2, 0
strh r2, [r1, 0x26]
ldr r2, =sub_8111E78
str r2, [r1]
bl _call_via_r2
pop {r0}
bx r0
.pool
thumb_func_end sub_8111E50
thumb_func_start sub_8111E78
sub_8111E78: @ 8111E78
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0xC
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, =gTasks
adds r5, r0, r1
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
lsrs r6, r0, 24
movs r1, 0x26
ldrsh r0, [r5, r1]
cmp r0, 0x4
bls _08111EA4
b _081120C6
_08111EA4:
lsls r0, 2
ldr r1, =_08111EBC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08111EBC:
.4byte _08111ED0
.4byte _08111FD0
.4byte _08112014
.4byte _0811207C
.4byte _081120A8
_08111ED0:
ldr r7, =0x00002771
adds r0, r7, 0
bl AllocSpritePalette
lsls r0, 24
lsrs r0, 24
movs r2, 0
mov r8, r2
strh r0, [r5, 0x24]
cmp r0, 0xFF
beq _08111EFE
cmp r0, 0xF
beq _08111EFE
movs r0, 0x1
bl duplicate_obj_of_side_rel2move_in_transparent_mode
strh r0, [r5, 0x8]
lsls r0, 16
cmp r0, 0
bge _08111F0C
adds r0, r7, 0
bl FreeSpritePaletteByTag
_08111EFE:
adds r0, r4, 0
bl DestroyAnimVisualTask
b _081120CC
.pool
_08111F0C:
ldr r4, =gSprites
movs r1, 0x8
ldrsh r0, [r5, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
ldrh r2, [r5, 0x24]
lsls r2, 4
ldrb r3, [r1, 0x5]
movs r0, 0xF
ands r0, r3
orrs r0, r2
strb r0, [r1, 0x5]
movs r2, 0x8
ldrsh r0, [r5, r2]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
ldrb r2, [r1, 0x1]
movs r0, 0xD
negs r0, r0
ands r0, r2
strb r0, [r1, 0x1]
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r1, [r0, 0x5]
movs r2, 0xC
orrs r1, r2
strb r1, [r0, 0x5]
movs r1, 0x8
ldrsh r0, [r5, r1]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r4
ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
ldr r1, [r1]
lsls r0, 2
adds r0, r1
ldr r1, [r0]
lsls r1, 31
adds r2, 0x3E
lsrs r1, 31
lsls r1, 2
ldrb r3, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2]
mov r2, r8
strh r2, [r5, 0xA]
strh r2, [r5, 0xC]
movs r0, 0x10
strh r0, [r5, 0xE]
movs r0, 0x1
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
movs r0, 0x22
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r0, [r0, 0x5]
lsrs r0, 4
adds r0, 0x10
lsls r0, 4
strh r0, [r5, 0x10]
cmp r6, 0x1
bne _08111FC4
movs r1, 0x80
lsls r1, 2
b _08111FC8
.pool
_08111FC4:
movs r1, 0x80
lsls r1, 3
_08111FC8:
movs r0, 0
bl ClearGpuRegBits
b _081120C6
_08111FD0:
movs r1, 0x24
ldrsh r0, [r5, r1]
adds r0, 0x10
lsls r0, 4
strh r0, [r5, 0x24]
movs r2, 0x10
ldrsh r0, [r5, r2]
lsls r0, 1
ldr r1, =gPlttBufferUnfaded
adds r0, r1
movs r2, 0x24
ldrsh r1, [r5, r2]
lsls r1, 1
ldr r2, =gPlttBufferFaded
adds r1, r2
ldr r2, =0x04000008
bl CpuSet
ldrh r0, [r5, 0x10]
ldr r3, =0x00003c0d
movs r1, 0x10
movs r2, 0xA
bl BlendPalette
b _081120C6
.pool
_08112014:
ldr r2, =gSprites
movs r0, 0x22
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x26]
ldrh r0, [r0, 0x22]
adds r1, r0
subs r1, 0x20
lsls r1, 16
lsrs r2, r1, 16
cmp r1, 0
bge _08112034
movs r2, 0
_08112034:
cmp r6, 0x1
bne _08112054
lsls r0, r2, 24
lsrs r0, 24
adds r1, r2, 0
adds r1, 0x40
lsls r1, 24
lsrs r1, 24
movs r2, 0
str r2, [sp]
movs r2, 0x4
str r2, [sp, 0x4]
str r6, [sp, 0x8]
b _0811206C
.pool
_08112054:
lsls r0, r2, 24
lsrs r0, 24
adds r1, r2, 0
adds r1, 0x40
lsls r1, 24
lsrs r1, 24
movs r2, 0
str r2, [sp]
movs r2, 0x8
str r2, [sp, 0x4]
movs r2, 0x1
str r2, [sp, 0x8]
_0811206C:
movs r2, 0x2
movs r3, 0x6
bl ScanlineEffect_InitWave
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x1C]
b _081120C6
_0811207C:
cmp r6, 0x1
bne _08112090
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
b _08112098
.pool
_08112090:
ldr r1, =0x00003f44
movs r0, 0x50
bl SetGpuReg
_08112098:
movs r1, 0x80
lsls r1, 5
movs r0, 0x52
bl SetGpuReg
b _081120C6
.pool
_081120A8:
cmp r6, 0x1
bne _081120B8
movs r1, 0x80
lsls r1, 2
movs r0, 0
bl SetGpuRegBits
b _081120C2
_081120B8:
movs r1, 0x80
lsls r1, 3
movs r0, 0
bl SetGpuRegBits
_081120C2:
ldr r0, =sub_81120DC
str r0, [r5]
_081120C6:
ldrh r0, [r5, 0x26]
adds r0, 0x1
strh r0, [r5, 0x26]
_081120CC:
add sp, 0xC
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8111E78
thumb_func_start sub_81120DC
sub_81120DC: @ 81120DC
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
ldrh r1, [r4, 0xA]
adds r1, 0x1
strh r1, [r4, 0xA]
movs r0, 0x1
ands r0, r1
strh r0, [r4, 0x12]
cmp r0, 0
bne _08112114
ldr r1, =gSineTable
movs r2, 0xA
ldrsh r0, [r4, r2]
lsls r0, 1
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
movs r1, 0x12
bl __divsi3
strh r0, [r4, 0xC]
_08112114:
movs r2, 0x12
ldrsh r0, [r4, r2]
cmp r0, 0x1
bne _08112136
ldr r1, =gSineTable
movs r2, 0xA
ldrsh r0, [r4, r2]
lsls r0, 1
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
movs r1, 0x12
bl __divsi3
movs r1, 0x10
subs r1, r0
strh r1, [r4, 0xE]
_08112136:
ldrh r1, [r4, 0xE]
lsls r1, 8
ldrh r0, [r4, 0xC]
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r2, 0xA
ldrsh r0, [r4, r2]
cmp r0, 0x80
bne _0811215E
movs r0, 0
strh r0, [r4, 0x26]
ldr r1, =sub_8112170
str r1, [r4]
adds r0, r5, 0
bl _call_via_r1
_0811215E:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81120DC
thumb_func_start sub_8112170
sub_8112170: @ 8112170
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
lsrs r6, r0, 24
movs r1, 0x26
ldrsh r0, [r4, r1]
cmp r0, 0x1
beq _081121DC
cmp r0, 0x1
bgt _081121A8
cmp r0, 0
beq _081121AE
b _08112258
.pool
_081121A8:
cmp r0, 0x2
beq _081121F0
b _08112258
_081121AE:
ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
movs r0, 0x1
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x24]
cmp r6, 0x1
bne _081121D0
movs r1, 0x80
lsls r1, 2
b _081121D4
.pool
_081121D0:
movs r1, 0x80
lsls r1, 3
_081121D4:
movs r0, 0
bl ClearGpuRegBits
b _08112258
_081121DC:
ldrh r0, [r4, 0x10]
ldr r3, =0x00003c0d
movs r1, 0x10
movs r2, 0
bl BlendPalette
b _08112258
.pool
_081121F0:
ldr r3, =gSprites
movs r0, 0x24
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
movs r0, 0x8
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
bl obj_delete_but_dont_free_vram
ldr r0, =0x00002771
bl FreeSpritePaletteByTag
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
cmp r6, 0x1
bne _08112248
movs r1, 0x80
lsls r1, 2
movs r0, 0
bl SetGpuRegBits
b _08112252
.pool
_08112248:
movs r1, 0x80
lsls r1, 3
movs r0, 0
bl SetGpuRegBits
_08112252:
adds r0, r5, 0
bl DestroyAnimVisualTask
_08112258:
ldrh r0, [r4, 0x26]
adds r0, 0x1
strh r0, [r4, 0x26]
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8112170
thumb_func_start sub_8112264
sub_8112264: @ 8112264
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r7, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _081122AC
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r4]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 8
movs r2, 0xE0
lsls r2, 13
adds r0, r2
lsrs r5, r0, 16
ldr r4, =gBattleAnimTarget
b _081122D0
.pool
_081122AC:
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r4]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 8
movs r2, 0xE0
lsls r2, 13
adds r0, r2
lsrs r5, r0, 16
ldr r4, =gBattleAnimAttacker
_081122D0:
ldrb r0, [r4]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
mov r10, r0
ldrb r0, [r4]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 8
movs r1, 0xE0
lsls r1, 13
adds r0, r1
lsrs r0, 16
mov r9, r0
mov r8, r5
mov r2, r9
subs r4, r2, r5
lsls r4, 16
lsrs r4, 16
lsls r0, r6, 4
strh r0, [r7, 0x2E]
lsls r0, r5, 4
strh r0, [r7, 0x30]
mov r1, r10
subs r0, r1, r6
lsls r0, 4
ldr r5, =gBattleAnimArgs
movs r2, 0x2
ldrsh r1, [r5, r2]
bl __divsi3
strh r0, [r7, 0x32]
lsls r4, 16
asrs r4, 12
movs r0, 0x2
ldrsh r1, [r5, r0]
adds r0, r4, 0
bl __divsi3
strh r0, [r7, 0x34]
ldrh r0, [r5, 0x2]
strh r0, [r7, 0x36]
mov r1, r10
strh r1, [r7, 0x38]
mov r2, r9
strh r2, [r7, 0x3A]
movs r1, 0x36
ldrsh r0, [r7, r1]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
strh r0, [r7, 0x3C]
ldrb r1, [r7, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r1
movs r1, 0x8
orrs r0, r1
strb r0, [r7, 0x5]
strh r6, [r7, 0x20]
mov r2, r8
strh r2, [r7, 0x22]
ldr r0, =sub_8112384
str r0, [r7, 0x1C]
adds r2, r7, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8112264
thumb_func_start sub_8112384
sub_8112384: @ 8112384
push {r4,lr}
adds r2, r0, 0
ldrh r3, [r2, 0x36]
movs r1, 0x36
ldrsh r0, [r2, r1]
cmp r0, 0
beq _081123BC
ldrh r0, [r2, 0x32]
ldrh r4, [r2, 0x2E]
adds r0, r4
strh r0, [r2, 0x2E]
ldrh r1, [r2, 0x34]
ldrh r4, [r2, 0x30]
adds r1, r4
strh r1, [r2, 0x30]
lsls r0, 16
asrs r0, 20
strh r0, [r2, 0x20]
lsls r1, 16
asrs r1, 20
strh r1, [r2, 0x22]
subs r0, r3, 0x1
strh r0, [r2, 0x36]
lsls r0, 16
asrs r0, 16
cmp r0, 0
bne _081123BC
strh r0, [r2, 0x2E]
_081123BC:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8112384
thumb_func_start sub_81123C4
sub_81123C4: @ 81123C4
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
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks
adds r1, r0
str r1, [sp]
movs r1, 0xFD
lsls r1, 6
movs r0, 0x50
bl SetGpuReg
movs r1, 0x80
lsls r1, 5
movs r0, 0x52
bl SetGpuReg
movs r0, 0
ldr r1, [sp]
strh r0, [r1, 0x12]
strh r0, [r1, 0x14]
strh r0, [r1, 0x16]
strh r0, [r1, 0x18]
movs r0, 0x10
strh r0, [r1, 0x1A]
ldr r2, =gBattleAnimArgs
ldrh r0, [r2]
strh r0, [r1, 0x1C]
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x4]
ldrb r0, [r4]
movs r1, 0x3
bl sub_80A861C
lsls r0, 16
lsrs r0, 16
str r0, [sp, 0x8]
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08112434
b _08112530
_08112434:
movs r4, 0
_08112436:
lsls r1, r4, 16
asrs r3, r1, 16
ldr r0, =gBattleAnimAttacker
ldrb r2, [r0]
str r1, [sp, 0x10]
cmp r3, r2
beq _08112502
movs r0, 0x2
eors r2, r0
cmp r3, r2
beq _08112502
lsls r0, r4, 24
lsrs r4, r0, 24
adds r0, r4, 0
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08112502
ldr r6, [sp, 0x4]
ldr r3, [sp, 0x8]
lsls r0, r3, 16
asrs r7, r0, 16
ldr r0, =gUnknown_08596DB8
adds r1, r6, 0
adds r2, r7, 0
movs r3, 0x37
bl CreateSprite
lsls r0, 24
lsrs r0, 24
mov r8, r0
cmp r0, 0x40
beq _08112502
adds r0, r4, 0
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
mov r10, r0
adds r0, r4, 0
movs r1, 0x3
bl sub_80A861C
lsls r0, 16
lsrs r0, 16
mov r9, r0
mov r0, r8
lsls r5, r0, 4
add r5, r8
lsls r5, 2
ldr r1, =gSprites
adds r4, r5, r1
lsls r0, r6, 4
strh r0, [r4, 0x2E]
lsls r0, r7, 4
strh r0, [r4, 0x30]
mov r2, r10
subs r0, r2, r6
lsls r0, 4
ldr r3, =gBattleAnimArgs
movs r2, 0x2
ldrsh r1, [r3, r2]
bl __divsi3
strh r0, [r4, 0x32]
mov r3, r9
lsls r0, r3, 16
asrs r0, 16
subs r0, r7
lsls r0, 4
ldr r2, =gBattleAnimArgs
movs r3, 0x2
ldrsh r1, [r2, r3]
bl __divsi3
strh r0, [r4, 0x34]
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r4, 0x36]
mov r2, r10
strh r2, [r4, 0x38]
mov r3, r9
strh r3, [r4, 0x3A]
ldr r0, =gSprites + 0x1C
adds r5, r0
ldr r0, =sub_8112384
str r0, [r5]
ldr r2, [sp]
movs r3, 0x20
ldrsh r1, [r2, r3]
adds r1, 0xD
lsls r1, 1
adds r0, r2, 0
adds r0, 0x8
adds r0, r1
mov r1, r8
strh r1, [r0]
ldrh r0, [r2, 0x20]
adds r0, 0x1
strh r0, [r2, 0x20]
_08112502:
ldr r2, [sp, 0x10]
movs r3, 0x80
lsls r3, 9
adds r0, r2, r3
lsrs r4, r0, 16
asrs r0, 16
cmp r0, 0x3
ble _08112436
b _081125B4
.pool
_08112530:
ldr r0, =gUnknown_08596DB8
ldr r7, [sp, 0x4]
ldr r2, [sp, 0x8]
lsls r1, r2, 16
asrs r1, 16
str r1, [sp, 0xC]
adds r1, r7, 0
ldr r2, [sp, 0xC]
movs r3, 0x37
bl CreateSprite
lsls r0, 24
lsrs r0, 24
mov r8, r0
cmp r0, 0x40
beq _081125B4
movs r3, 0x30
mov r10, r3
movs r0, 0x28
mov r9, r0
ldr r6, =gSprites
mov r1, r8
lsls r5, r1, 4
add r5, r8
lsls r5, 2
adds r4, r5, r6
lsls r0, r7, 4
strh r0, [r4, 0x2E]
ldr r2, [sp, 0xC]
lsls r0, r2, 4
strh r0, [r4, 0x30]
subs r0, r3, r7
lsls r0, 4
ldr r3, =gBattleAnimArgs
movs r2, 0x2
ldrsh r1, [r3, r2]
bl __divsi3
strh r0, [r4, 0x32]
mov r3, r9
ldr r1, [sp, 0xC]
subs r0, r3, r1
lsls r0, 4
ldr r2, =gBattleAnimArgs
movs r3, 0x2
ldrsh r1, [r2, r3]
bl __divsi3
strh r0, [r4, 0x34]
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r4, 0x36]
mov r2, r10
strh r2, [r4, 0x38]
mov r3, r9
strh r3, [r4, 0x3A]
adds r6, 0x1C
adds r5, r6
ldr r0, =sub_8112384
str r0, [r5]
mov r1, r8
ldr r0, [sp]
strh r1, [r0, 0x22]
movs r0, 0x1
ldr r2, [sp]
strh r0, [r2, 0x20]
_081125B4:
ldr r0, =sub_81125E0
ldr r3, [sp]
str r0, [r3]
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81123C4
thumb_func_start sub_81125E0
sub_81125E0: @ 81125E0
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r0, 0x8
ldrsh r1, [r4, r0]
cmp r1, 0x1
beq _08112696
cmp r1, 0x1
bgt _08112608
cmp r1, 0
beq _08112616
b _08112752
.pool
_08112608:
cmp r1, 0x2
bne _0811260E
b _08112728
_0811260E:
cmp r1, 0x3
bne _08112614
b _0811273C
_08112614:
b _08112752
_08112616:
movs r2, 0x14
ldrsh r0, [r4, r2]
cmp r0, 0
bne _0811267C
ldrh r0, [r4, 0x12]
adds r0, 0x1
strh r0, [r4, 0x12]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _0811267C
strh r1, [r4, 0x12]
ldrh r0, [r4, 0x16]
adds r0, 0x1
strh r0, [r4, 0x16]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _0811264C
ldrh r1, [r4, 0x18]
movs r2, 0x18
ldrsh r0, [r4, r2]
cmp r0, 0xF
bgt _0811265A
adds r0, r1, 0x1
strh r0, [r4, 0x18]
b _0811265A
_0811264C:
ldrh r1, [r4, 0x1A]
movs r2, 0x1A
ldrsh r0, [r4, r2]
cmp r0, 0
beq _0811265A
subs r0, r1, 0x1
strh r0, [r4, 0x1A]
_0811265A:
ldrh r1, [r4, 0x1A]
lsls r1, 8
ldrh r0, [r4, 0x18]
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0x16
ldrsh r0, [r4, r1]
cmp r0, 0x17
ble _0811267C
movs r0, 0
strh r0, [r4, 0x16]
movs r0, 0x1
strh r0, [r4, 0x14]
_0811267C:
ldrh r1, [r4, 0x1C]
movs r2, 0x1C
ldrsh r0, [r4, r2]
cmp r0, 0
beq _0811268C
subs r0, r1, 0x1
strh r0, [r4, 0x1C]
b _08112752
_0811268C:
movs r1, 0x14
ldrsh r0, [r4, r1]
cmp r0, 0
beq _08112752
b _08112734
_08112696:
ldrh r0, [r4, 0x12]
adds r0, 0x1
strh r0, [r4, 0x12]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _08112752
movs r0, 0
strh r0, [r4, 0x12]
ldrh r0, [r4, 0x16]
adds r0, 0x1
strh r0, [r4, 0x16]
ands r0, r1
lsls r0, 16
cmp r0, 0
beq _081126C6
ldrh r1, [r4, 0x18]
movs r2, 0x18
ldrsh r0, [r4, r2]
cmp r0, 0
beq _081126D4
subs r0, r1, 0x1
strh r0, [r4, 0x18]
b _081126D4
_081126C6:
ldrh r1, [r4, 0x1A]
movs r2, 0x1A
ldrsh r0, [r4, r2]
cmp r0, 0xF
bgt _081126D4
adds r0, r1, 0x1
strh r0, [r4, 0x1A]
_081126D4:
ldrh r1, [r4, 0x1A]
lsls r1, 8
ldrh r0, [r4, 0x18]
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
ldr r1, [r4, 0x18]
movs r0, 0x80
lsls r0, 13
cmp r1, r0
bne _08112752
movs r5, 0
b _08112718
_081126F4:
adds r1, r5, 0
adds r1, 0xD
lsls r1, 1
adds r0, r4, 0
adds r0, 0x8
adds r0, r1
movs r2, 0
ldrsh r1, [r0, r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
bl DestroySprite
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
_08112718:
movs r1, 0x20
ldrsh r0, [r4, r1]
cmp r5, r0
blt _081126F4
b _08112734
.pool
_08112728:
ldrh r0, [r4, 0x12]
adds r0, 0x1
strh r0, [r4, 0x12]
lsls r0, 16
cmp r0, 0
ble _08112752
_08112734:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _08112752
_0811273C:
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
adds r0, r5, 0
bl DestroyAnimVisualTask
_08112752:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81125E0
thumb_func_start sub_8112758
sub_8112758: @ 8112758
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
ldr r0, =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_WIN0V
strh r1, [r0]
ldr r1, =0x00003f3f
movs r0, 0x48
bl SetGpuReg
ldr r1, =0x00003f1f
movs r0, 0x4A
bl SetGpuReg
movs r0, 0x50
movs r1, 0xC8
bl SetGpuReg
movs r0, 0x54
movs r1, 0x10
bl SetGpuReg
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _081127A0
bl IsContest
lsls r0, 24
cmp r0, 0
beq _081127B8
_081127A0:
movs r6, 0x28
b _081127BA
.pool
_081127B8:
movs r6, 0xC8
_081127BA:
ldr r1, =gBattle_WIN0H
lsls r3, r6, 16
asrs r2, r3, 16
lsls r0, r2, 8
orrs r0, r2
strh r0, [r1]
ldr r1, =gBattle_WIN0V
movs r5, 0x28
ldr r0, =0x00002828
strh r0, [r1]
lsrs r3, 16
movs r1, 0xF0
subs r1, r2
movs r4, 0x48
ldr r2, =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r0, r2
strh r3, [r0, 0xA]
strh r1, [r0, 0xC]
strh r5, [r0, 0xE]
strh r4, [r0, 0x10]
strh r6, [r0, 0x12]
strh r5, [r0, 0x14]
ldr r1, =sub_811280C
str r1, [r0]
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8112758
thumb_func_start sub_811280C
sub_811280C: @ 811280C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x20
lsls r0, 24
lsrs r0, 24
ldr r2, _0811292C @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
ldrh r1, [r4, 0x8]
adds r0, r1, 0x1
strh r0, [r4, 0x8]
ldrh r5, [r4, 0xA]
ldrh r7, [r4, 0xC]
ldrh r0, [r4, 0xE]
mov r10, r0
ldrh r2, [r4, 0x10]
str r2, [sp, 0xC]
ldrh r0, [r4, 0x12]
ldrh r2, [r4, 0x14]
mov r8, r2
lsls r1, 16
asrs r6, r1, 16
cmp r6, 0xF
ble _08112848
b _08112938
_08112848:
lsls r0, 16
asrs r0, 16
bl __floatsidf
str r0, [sp, 0x10]
str r1, [sp, 0x14]
lsls r0, r5, 16
asrs r0, 16
bl __floatsidf
ldr r2, _08112930 @ =0x3FB00000
ldr r3, _08112934 @ =0x00000000
bl __muldf3
adds r5, r1, 0
adds r4, r0, 0
adds r0, r6, 0
bl __floatsidf
str r0, [sp, 0x18]
str r1, [sp, 0x1C]
adds r1, r5, 0
adds r0, r4, 0
ldr r2, [sp, 0x18]
ldr r3, [sp, 0x1C]
bl __muldf3
adds r3, r1, 0
adds r2, r0, 0
ldr r0, [sp, 0x10]
ldr r1, [sp, 0x14]
bl __subdf3
bl __fixunsdfsi
lsls r0, 16
lsrs r0, 16
mov r9, r0
lsls r0, r7, 16
asrs r0, 16
bl __floatsidf
ldr r2, _08112930 @ =0x3FB00000
ldr r3, _08112934 @ =0x00000000
bl __muldf3
ldr r2, [sp, 0x18]
ldr r3, [sp, 0x1C]
bl __muldf3
adds r3, r1, 0
adds r2, r0, 0
ldr r0, [sp, 0x10]
ldr r1, [sp, 0x14]
bl __adddf3
bl __fixunsdfsi
lsls r0, 16
lsrs r7, r0, 16
mov r1, r8
lsls r0, r1, 16
asrs r0, 16
bl __floatsidf
adds r5, r1, 0
adds r4, r0, 0
mov r2, r10
lsls r0, r2, 16
asrs r0, 16
bl __floatsidf
ldr r2, _08112930 @ =0x3FB00000
ldr r3, _08112934 @ =0x00000000
bl __muldf3
ldr r2, [sp, 0x18]
ldr r3, [sp, 0x1C]
bl __muldf3
adds r3, r1, 0
adds r2, r0, 0
adds r1, r5, 0
adds r0, r4, 0
bl __subdf3
bl __fixunsdfsi
lsls r0, 16
lsrs r6, r0, 16
ldr r1, [sp, 0xC]
lsls r0, r1, 16
asrs r0, 16
bl __floatsidf
ldr r2, _08112930 @ =0x3FB00000
ldr r3, _08112934 @ =0x00000000
bl __muldf3
ldr r2, [sp, 0x18]
ldr r3, [sp, 0x1C]
bl __muldf3
adds r3, r1, 0
adds r2, r0, 0
adds r1, r5, 0
adds r0, r4, 0
bl __adddf3
bl __fixunsdfsi
lsls r0, 16
lsrs r5, r0, 16
b _08112966
.align 2, 0
_0811292C:
.4byte gTasks
_08112930:
.4byte 0x3FB00000
_08112934:
.4byte 0x00000000
_08112938:
movs r2, 0
mov r9, r2
movs r7, 0xF0
movs r6, 0
movs r5, 0x70
str r6, [sp]
str r6, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0x1
movs r1, 0
movs r3, 0
bl sub_80A75AC
lsls r0, 16
lsrs r0, 16
str r6, [sp]
movs r1, 0
movs r2, 0x10
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, _08112988 @=sub_8112994
str r0, [r4]
_08112966:
ldr r1, _0811298C @=gBattle_WIN0H
mov r2, r9
lsls r0, r2, 8
orrs r7, r0
strh r7, [r1]
ldr r1, _08112990 @=gBattle_WIN0V
lsls r0, r6, 8
orrs r5, r0
strh r5, [r1]
add sp, 0x20
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08112988:
.4byte sub_8112994
_0811298C:
.4byte gBattle_WIN0H
_08112990:
.4byte gBattle_WIN0V
thumb_func_end sub_811280C
thumb_func_start sub_8112994
sub_8112994: @ 8112994
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _081129DA
ldr r0, =gBattle_WIN0H
strh r1, [r0]
ldr r0, =gBattle_WIN0V
strh r1, [r0]
ldr r4, =0x00003f3f
movs r0, 0x48
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x54
movs r1, 0
bl SetGpuReg
adds r0, r5, 0
bl DestroyAnimVisualTask
_081129DA:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8112994
thumb_func_start sub_81129F0
sub_81129F0: @ 81129F0
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08112A24
movs r2, 0x18
ldr r3, =0x0000fffe
ldrb r0, [r4, 0x3]
movs r1, 0x3F
negs r1, r1
ands r1, r0
movs r0, 0x10
orrs r1, r0
strb r1, [r4, 0x3]
b _08112A28
.pool
_08112A24:
ldr r2, =0x0000ffe8
movs r3, 0x2
_08112A28:
lsls r0, r2, 16
asrs r0, 16
ldrh r1, [r4, 0x20]
adds r0, r1
strh r0, [r4, 0x20]
strh r3, [r4, 0x30]
movs r0, 0x3C
strh r0, [r4, 0x2E]
ldr r0, =sub_8112A4C
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81129F0
thumb_func_start sub_8112A4C
sub_8112A4C: @ 8112A4C
push {r4,lr}
adds r3, r0, 0
ldrh r1, [r3, 0x2E]
movs r2, 0x2E
ldrsh r0, [r3, r2]
cmp r0, 0
ble _08112A5E
subs r0, r1, 0x1
b _08112AC2
_08112A5E:
ldrh r0, [r3, 0x30]
ldrh r4, [r3, 0x24]
adds r1, r0, r4
strh r1, [r3, 0x24]
adds r0, r1, 0x7
lsls r0, 16
lsrs r0, 16
cmp r0, 0xE
bls _08112AC4
ldrh r0, [r3, 0x20]
adds r0, r1
strh r0, [r3, 0x20]
movs r0, 0
strh r0, [r3, 0x24]
ldrh r2, [r3, 0x4]
lsls r1, r2, 22
lsrs r1, 22
adds r1, 0x8
ldr r4, =0x000003ff
adds r0, r4, 0
ands r1, r0
ldr r0, =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r3, 0x4]
ldrh r0, [r3, 0x32]
adds r0, 0x1
strh r0, [r3, 0x32]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3
bne _08112AC0
movs r0, 0x1E
strh r0, [r3, 0x2E]
ldr r0, =sub_80A64B0
str r0, [r3, 0x1C]
ldr r1, =sub_8112ACC
adds r0, r3, 0
bl StoreSpriteCallbackInData6
b _08112AC4
.pool
_08112AC0:
movs r0, 0x28
_08112AC2:
strh r0, [r3, 0x2E]
_08112AC4:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8112A4C
thumb_func_start sub_8112ACC
sub_8112ACC: @ 8112ACC
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x2E
ldrsh r5, [r4, r0]
cmp r5, 0
bne _08112AF6
movs r1, 0xFD
lsls r1, 6
movs r0, 0x50
bl SetGpuReg
movs r0, 0x52
movs r1, 0x10
bl SetGpuReg
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
strh r5, [r4, 0x30]
strh r5, [r4, 0x32]
b _08112B3A
_08112AF6:
ldrh r1, [r4, 0x30]
movs r2, 0x30
ldrsh r0, [r4, r2]
cmp r0, 0x1
bgt _08112B06
adds r0, r1, 0x1
strh r0, [r4, 0x30]
b _08112B3A
_08112B06:
movs r0, 0
strh r0, [r4, 0x30]
ldrh r0, [r4, 0x32]
adds r0, 0x1
strh r0, [r4, 0x32]
movs r1, 0x10
subs r1, r0
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0x32
ldrsh r0, [r4, r1]
cmp r0, 0x10
bne _08112B3A
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldr r0, =sub_8112B44
str r0, [r4, 0x1C]
_08112B3A:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8112ACC
thumb_func_start sub_8112B44
sub_8112B44: @ 8112B44
push {r4,lr}
adds r4, r0, 0
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
ldr r0, =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_WIN0V
strh r1, [r0]
adds r0, r4, 0
bl DestroyAnimSprite
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8112B44
thumb_func_start sub_8112B78
sub_8112B78: @ 8112B78
push {r4-r7,lr}
adds r5, r0, 0
movs r1, 0x2E
ldrsh r0, [r5, r1]
movs r1, 0xC
bl Sin
strh r0, [r5, 0x24]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08112B9C
ldrh r0, [r5, 0x24]
negs r0, r0
strh r0, [r5, 0x24]
_08112B9C:
ldrh r0, [r5, 0x2E]
adds r0, 0x6
movs r1, 0xFF
ands r0, r1
strh r0, [r5, 0x2E]
movs r1, 0x80
lsls r1, 1
adds r0, r1, 0
ldrh r1, [r5, 0x30]
adds r0, r1
strh r0, [r5, 0x30]
lsls r0, 16
asrs r0, 24
negs r0, r0
strh r0, [r5, 0x26]
ldrh r0, [r5, 0x3C]
adds r0, 0x1
strh r0, [r5, 0x3C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
bne _08112BE8
ldr r0, =0x0000050b
strh r0, [r5, 0x3A]
movs r1, 0xFD
lsls r1, 6
movs r0, 0x50
bl SetGpuReg
ldrh r1, [r5, 0x3A]
movs r0, 0x52
bl SetGpuReg
b _08112C40
.pool
_08112BE8:
cmp r0, 0x1E
ble _08112C40
ldrh r0, [r5, 0x32]
adds r0, 0x1
strh r0, [r5, 0x32]
ldrh r1, [r5, 0x3A]
lsls r0, r1, 16
asrs r0, 24
lsls r0, 16
movs r6, 0xFF
ands r6, r1
movs r1, 0x80
lsls r1, 9
adds r0, r1
lsrs r7, r0, 16
cmp r7, 0x10
bls _08112C0C
movs r7, 0x10
_08112C0C:
subs r0, r6, 0x1
lsls r0, 16
lsrs r6, r0, 16
cmp r0, 0
bge _08112C18
movs r6, 0
_08112C18:
lsls r4, r7, 8
orrs r4, r6
lsls r1, r4, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
strh r4, [r5, 0x3A]
cmp r7, 0x10
bne _08112C40
cmp r6, 0
bne _08112C40
adds r2, r5, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldr r0, =sub_8112C4C
str r0, [r5, 0x1C]
_08112C40:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8112B78
thumb_func_start sub_8112C4C
sub_8112C4C: @ 8112C4C
push {r4,lr}
adds r4, r0, 0
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
adds r0, r4, 0
bl DestroyAnimSprite
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8112C4C
thumb_func_start sub_8112C6C
sub_8112C6C: @ 8112C6C
push {r4-r6,lr}
mov r6, r8
push {r6}
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, =gTasks
adds r4, r0
movs r6, 0
strh r6, [r4, 0x8]
movs r0, 0x10
mov r8, r0
mov r0, r8
strh r0, [r4, 0xA]
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1A]
ldrb r0, [r5]
bl sub_80A6190
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
ldrb r0, [r5]
movs r1, 0x1
bl sub_80A861C
lsls r0, 16
asrs r1, r0, 16
lsrs r0, 31
adds r1, r0
asrs r1, 1
adds r1, 0x8
strh r1, [r4, 0x1E]
strh r6, [r4, 0x16]
ldrb r0, [r5]
bl sub_80A8328
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x12]
ldrb r0, [r5]
bl sub_80A82E4
lsls r0, 24
lsrs r0, 24
subs r0, 0x2
strh r0, [r4, 0x14]
strh r6, [r4, 0xE]
mov r0, r8
strh r0, [r4, 0x10]
movs r1, 0xFD
lsls r1, 6
movs r0, 0x50
bl SetGpuReg
movs r1, 0x80
lsls r1, 5
movs r0, 0x52
bl SetGpuReg
strh r6, [r4, 0x18]
ldr r0, =sub_8112D10
str r0, [r4]
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8112C6C
thumb_func_start sub_8112D10
sub_8112D10: @ 8112D10
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0x5
bls _08112D2A
b _08112E96
_08112D2A:
lsls r0, 2
ldr r1, =_08112D3C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08112D3C:
.4byte _08112D54
.4byte _08112DC4
.4byte _08112E06
.4byte _08112E1A
.4byte _08112E70
.4byte _08112E80
_08112D54:
movs r6, 0
_08112D56:
movs r2, 0x1A
ldrsh r1, [r4, r2]
movs r0, 0x1C
ldrsh r2, [r4, r0]
ldrb r3, [r4, 0x14]
ldr r0, =gUnknown_08596E30
bl CreateSprite
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x40
beq _08112DAA
ldr r1, =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r5, r0, r1
strh r7, [r5, 0x2E]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
movs r1, 0
lsls r0, 24
cmp r0, 0
bne _08112D8C
movs r1, 0x1
_08112D8C:
strh r1, [r5, 0x30]
movs r0, 0x2A
muls r0, r6
movs r1, 0xFF
ands r0, r1
strh r0, [r5, 0x32]
ldrh r0, [r4, 0x1E]
strh r0, [r5, 0x34]
lsls r0, r6, 1
adds r0, r6
lsls r0, 1
strh r0, [r5, 0x38]
ldrh r0, [r4, 0x16]
adds r0, 0x1
strh r0, [r4, 0x16]
_08112DAA:
adds r0, r6, 0x1
lsls r0, 16
lsrs r6, r0, 16
cmp r6, 0x5
bls _08112D56
b _08112E78
.pool
_08112DC4:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _08112DE2
ldrh r1, [r4, 0xE]
movs r2, 0xE
ldrsh r0, [r4, r2]
cmp r0, 0xD
bgt _08112DF0
adds r0, r1, 0x1
strh r0, [r4, 0xE]
b _08112DF0
_08112DE2:
ldrh r1, [r4, 0x10]
movs r2, 0x10
ldrsh r0, [r4, r2]
cmp r0, 0x4
ble _08112DF0
subs r0, r1, 0x1
strh r0, [r4, 0x10]
_08112DF0:
movs r1, 0xE
ldrsh r0, [r4, r1]
ldrh r2, [r4, 0xE]
ldrh r1, [r4, 0x10]
cmp r0, 0xE
bne _08112E60
cmp r1, 0x4
bne _08112E60
movs r0, 0
strh r0, [r4, 0xA]
b _08112E5A
_08112E06:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1E
ble _08112E96
movs r0, 0
strh r0, [r4, 0xA]
b _08112E78
_08112E1A:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _08112E38
ldrh r1, [r4, 0xE]
movs r2, 0xE
ldrsh r0, [r4, r2]
cmp r0, 0
ble _08112E46
subs r0, r1, 0x1
strh r0, [r4, 0xE]
b _08112E46
_08112E38:
ldrh r1, [r4, 0x10]
movs r2, 0x10
ldrsh r0, [r4, r2]
cmp r0, 0xF
bgt _08112E46
adds r0, r1, 0x1
strh r0, [r4, 0x10]
_08112E46:
movs r1, 0xE
ldrsh r0, [r4, r1]
ldrh r2, [r4, 0xE]
ldrh r1, [r4, 0x10]
cmp r0, 0
bne _08112E60
cmp r1, 0x10
bne _08112E60
movs r0, 0x1
strh r0, [r4, 0x18]
_08112E5A:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_08112E60:
lsls r1, 8
orrs r1, r2
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
b _08112E96
_08112E70:
movs r2, 0x16
ldrsh r0, [r4, r2]
cmp r0, 0
bne _08112E96
_08112E78:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _08112E96
_08112E80:
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
adds r0, r7, 0
bl DestroyAnimVisualTask
_08112E96:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8112D10
thumb_func_start sub_8112E9C
sub_8112E9C: @ 8112E9C
push {r4,lr}
adds r4, r0, 0
movs r1, 0x30
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08112EAE
ldrh r0, [r4, 0x32]
adds r0, 0x2
b _08112EB2
_08112EAE:
ldrh r0, [r4, 0x32]
subs r0, 0x2
_08112EB2:
strh r0, [r4, 0x32]
ldrh r1, [r4, 0x32]
movs r0, 0xFF
ands r0, r1
strh r0, [r4, 0x32]
movs r2, 0x32
ldrsh r0, [r4, r2]
movs r2, 0x34
ldrsh r1, [r4, r2]
bl Sin
strh r0, [r4, 0x24]
ldrh r0, [r4, 0x32]
subs r0, 0x41
lsls r0, 16
lsrs r0, 16
cmp r0, 0x7E
bhi _08112EF4
ldr r2, =gTasks
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldrh r1, [r0, 0x12]
adds r1, 0x1
movs r0, 0x3
ands r1, r0
b _08112F08
.pool
_08112EF4:
ldr r2, =gTasks
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
movs r2, 0x3
ldrb r1, [r0, 0x12]
ands r1, r2
_08112F08:
lsls r1, 2
ldrb r2, [r4, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x5]
ldrh r0, [r4, 0x38]
adds r0, 0x1
strh r0, [r4, 0x38]
movs r1, 0x38
ldrsh r0, [r4, r1]
lsls r0, 3
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x3A]
movs r2, 0x3A
ldrsh r0, [r4, r2]
movs r1, 0x7
bl Sin
strh r0, [r4, 0x26]
ldr r2, =gTasks
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r1, r0, r2
movs r2, 0x18
ldrsh r0, [r1, r2]
cmp r0, 0
beq _08112F56
ldrh r0, [r1, 0x16]
subs r0, 0x1
strh r0, [r1, 0x16]
adds r0, r4, 0
bl DestroySprite
_08112F56:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8112E9C
thumb_func_start sub_8112F60
sub_8112F60: @ 8112F60
adds r3, r0, 0
adds r3, 0x3E
ldrb r1, [r3]
movs r2, 0x4
orrs r1, r2
strb r1, [r3]
ldr r2, =gBattlerSpriteIds
ldr r1, =gBattleAnimAttacker
ldrb r1, [r1]
adds r1, r2
ldrb r1, [r1]
strh r1, [r0, 0x38]
movs r1, 0x80
strh r1, [r0, 0x2E]
movs r1, 0xA
strh r1, [r0, 0x30]
ldr r2, =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r0, 0x32]
ldrh r1, [r2, 0x2]
strh r1, [r0, 0x34]
ldr r1, =sub_8112FB8
str r1, [r0, 0x1C]
ldr r2, =gSprites
movs r3, 0x38
ldrsh r1, [r0, r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x22]
adds r1, 0x8
strh r1, [r0, 0x22]
bx lr
.pool
thumb_func_end sub_8112F60
thumb_func_start sub_8112FB8
sub_8112FB8: @ 8112FB8
push {r4,r5,lr}
adds r5, r0, 0
ldrh r0, [r5, 0x34]
movs r1, 0x34
ldrsh r3, [r5, r1]
cmp r3, 0
beq _08113020
subs r0, 0x1
strh r0, [r5, 0x34]
movs r2, 0x2E
ldrsh r0, [r5, r2]
movs r2, 0x30
ldrsh r1, [r5, r2]
bl Sin
ldr r4, =gSprites
movs r1, 0x38
ldrsh r2, [r5, r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r4
strh r0, [r1, 0x24]
movs r2, 0x2E
ldrsh r0, [r5, r2]
movs r2, 0x30
ldrsh r1, [r5, r2]
bl Cos
movs r1, 0x38
ldrsh r2, [r5, r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r4
strh r0, [r1, 0x26]
ldrh r0, [r5, 0x32]
ldrh r2, [r5, 0x2E]
adds r1, r0, r2
strh r1, [r5, 0x2E]
lsls r0, r1, 16
asrs r0, 16
cmp r0, 0xFF
ble _08113054
ldr r2, =0xffffff00
adds r0, r1, r2
strh r0, [r5, 0x2E]
b _08113054
.pool
_08113020:
ldr r2, =gSprites
movs r0, 0x38
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r3, [r0, 0x24]
movs r0, 0x38
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r3, [r0, 0x26]
movs r0, 0x38
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x22]
subs r1, 0x8
strh r1, [r0, 0x22]
ldr r0, =move_anim_8074EE0
str r0, [r5, 0x1C]
_08113054:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8112FB8
thumb_func_start sub_8113064
sub_8113064: @ 8113064
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, =gBattleAnimAttacker
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]
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _081130B4
ldr r2, =gBattleAnimArgs
ldrh r0, [r5, 0x20]
ldrh r1, [r2]
subs r0, r1
strh r0, [r5, 0x20]
ldrh r0, [r2, 0x6]
negs r0, r0
strh r0, [r2, 0x6]
ldrh r0, [r2, 0x8]
negs r0, r0
strh r0, [r2, 0x8]
adds r1, r2, 0
b _081130BE
.pool
_081130B4:
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r5, 0x20]
adds r0, r2
strh r0, [r5, 0x20]
_081130BE:
ldrh r0, [r1, 0x2]
ldrh r2, [r5, 0x22]
adds r0, r2
strh r0, [r5, 0x22]
ldrh r0, [r1, 0x4]
strh r0, [r5, 0x2E]
ldrh r0, [r1, 0x6]
strh r0, [r5, 0x30]
ldrh r0, [r1, 0x8]
strh r0, [r5, 0x34]
ldrh r0, [r1, 0xA]
strh r0, [r5, 0x38]
adds r2, r5, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldr r1, =move_anim_8074EE0
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A66DC
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8113064
thumb_func_start sub_8113100
sub_8113100: @ 8113100
push {r4,r5,lr}
adds r5, r0, 0
bl sub_80A6838
ldr r4, =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, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08113164
ldr r2, =gBattleAnimArgs
ldrh r0, [r5, 0x20]
ldrh r1, [r2, 0x2]
subs r0, r1
strh r0, [r5, 0x20]
ldrh r0, [r5, 0x22]
adds r1, r0
strh r1, [r5, 0x22]
ldrh r0, [r5, 0x32]
ldrh r1, [r2, 0x4]
subs r0, r1
strh r0, [r5, 0x32]
ldrh r0, [r2, 0x6]
ldrh r1, [r5, 0x36]
adds r0, r1
strh r0, [r5, 0x36]
b _0811318E
.pool
_08113164:
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r5, 0x20]
adds r0, r2
strh r0, [r5, 0x20]
ldrh r0, [r1, 0x2]
ldrh r2, [r5, 0x22]
adds r0, r2
strh r0, [r5, 0x22]
ldrh r0, [r1, 0x4]
ldrh r2, [r5, 0x32]
adds r0, r2
strh r0, [r5, 0x32]
ldrh r0, [r1, 0x6]
ldrh r1, [r5, 0x36]
adds r0, r1
strh r0, [r5, 0x36]
adds r0, r5, 0
movs r1, 0x1
bl StartSpriteAnim
_0811318E:
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x8]
strh r0, [r5, 0x2E]
ldr r0, =sub_80A6EEC
str r0, [r5, 0x1C]
ldr r1, =move_anim_8074EE0
adds r0, r5, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8113100
thumb_func_start sub_81131B4
sub_81131B4: @ 81131B4
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _081131D0
ldr r4, =gBattleAnimAttacker
b _081131D2
.pool
_081131D0:
ldr r4, =gBattleAnimTarget
_081131D2:
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 r4, =gBattleAnimArgs
movs r0, 0x2
ldrsh r1, [r4, r0]
adds r0, r5, 0
bl sub_80A6864
ldrh r0, [r4, 0x4]
ldrh r1, [r5, 0x22]
adds r0, r1
strh r0, [r5, 0x22]
ldr r0, =sub_80A67D8
str r0, [r5, 0x1C]
ldr r1, =move_anim_8074EE0
adds r0, r5, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81131B4
thumb_func_start sub_8113224
sub_8113224: @ 8113224
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0811323E
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
_0811323E:
adds r0, r4, 0
bl sub_8113100
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8113224
thumb_func_start sub_8113250
sub_8113250: @ 8113250
push {r4-r7,lr}
adds r6, r0, 0
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r5, 0
strh r0, [r6, 0x20]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x22]
strh r5, [r6, 0x36]
movs r0, 0x1
strh r0, [r6, 0x38]
ldr r0, =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r6, 0x3A]
ldr r4, =gBattlerAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_80A861C
lsls r7, r0, 16
lsrs r5, r7, 16
ldrb r0, [r4]
movs r1, 0x1
bl sub_80A861C
lsls r1, r0, 16
lsrs r0, r1, 16
cmp r5, r0
bls _081132B0
lsrs r0, r7, 17
b _081132B2
.pool
_081132B0:
lsrs r0, r1, 17
_081132B2:
strh r0, [r6, 0x3C]
movs r1, 0x3A
ldrsh r0, [r6, r1]
movs r2, 0x3C
ldrsh r1, [r6, r2]
bl Cos
strh r0, [r6, 0x24]
movs r1, 0x3A
ldrsh r0, [r6, r1]
movs r2, 0x3C
ldrsh r1, [r6, r2]
bl Sin
strh r0, [r6, 0x26]
ldr r0, =sub_81132E0
str r0, [r6, 0x1C]
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8113250
thumb_func_start sub_81132E0
sub_81132E0: @ 81132E0
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x2E
ldrsh r5, [r4, r0]
cmp r5, 0
beq _081132F2
cmp r5, 0x1
beq _0811335E
b _081133E2
_081132F2:
ldrh r0, [r4, 0x3A]
ldrh r1, [r4, 0x38]
subs r0, r1
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x3A]
movs r1, 0x3A
ldrsh r0, [r4, r1]
movs r2, 0x3C
ldrsh r1, [r4, r2]
bl Cos
strh r0, [r4, 0x24]
movs r1, 0x3A
ldrsh r0, [r4, r1]
movs r2, 0x3C
ldrsh r1, [r4, r2]
bl Sin
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x36]
adds r0, 0x1
strh r0, [r4, 0x36]
lsls r0, 16
asrs r0, 16
cmp r0, 0x5
ble _08113344
strh r5, [r4, 0x36]
ldrh r1, [r4, 0x38]
movs r2, 0x38
ldrsh r0, [r4, r2]
cmp r0, 0xF
bgt _08113344
adds r0, r1, 0x1
strh r0, [r4, 0x38]
lsls r0, 16
asrs r0, 16
cmp r0, 0xF
ble _08113344
movs r0, 0x10
strh r0, [r4, 0x38]
_08113344:
ldrh r0, [r4, 0x34]
adds r0, 0x1
strh r0, [r4, 0x34]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3C
ble _081133E2
movs r0, 0
strh r0, [r4, 0x34]
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
b _081133E2
_0811335E:
ldrh r0, [r4, 0x3A]
ldrh r1, [r4, 0x38]
subs r0, r1
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x3A]
ldrh r1, [r4, 0x3C]
movs r2, 0x3C
ldrsh r0, [r4, r2]
cmp r0, 0x95
bgt _08113386
adds r0, r1, 0
adds r0, 0x8
strh r0, [r4, 0x3C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x95
ble _08113386
movs r0, 0x96
strh r0, [r4, 0x3C]
_08113386:
movs r1, 0x3A
ldrsh r0, [r4, r1]
movs r2, 0x3C
ldrsh r1, [r4, r2]
bl Cos
strh r0, [r4, 0x24]
movs r1, 0x3A
ldrsh r0, [r4, r1]
movs r2, 0x3C
ldrsh r1, [r4, r2]
bl Sin
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x36]
adds r0, 0x1
strh r0, [r4, 0x36]
lsls r0, 16
asrs r0, 16
cmp r0, 0x5
ble _081133CE
movs r0, 0
strh r0, [r4, 0x36]
ldrh r1, [r4, 0x38]
movs r2, 0x38
ldrsh r0, [r4, r2]
cmp r0, 0xF
bgt _081133CE
adds r0, r1, 0x1
strh r0, [r4, 0x38]
lsls r0, 16
asrs r0, 16
cmp r0, 0xF
ble _081133CE
movs r0, 0x10
strh r0, [r4, 0x38]
_081133CE:
ldrh r0, [r4, 0x34]
adds r0, 0x1
strh r0, [r4, 0x34]
lsls r0, 16
asrs r0, 16
cmp r0, 0x14
ble _081133E2
adds r0, r4, 0
bl DestroyAnimSprite
_081133E2:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81132E0
thumb_func_start sub_81133E8
sub_81133E8: @ 81133E8
push {r4-r6,lr}
sub sp, 0xC
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks
adds r4, r1, r0
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08113424
ldr r0, =0x04000014
str r0, [sp]
ldr r0, =gBattle_BG1_X
b _0811342A
.pool
_08113424:
ldr r0, =0x04000018
str r0, [sp]
ldr r0, =gBattle_BG2_X
_0811342A:
ldrh r0, [r0]
strh r0, [r4, 0xC]
ldr r0, =0xa2600001
str r0, [sp, 0x4]
mov r1, sp
movs r5, 0
movs r0, 0x1
strb r0, [r1, 0x8]
mov r0, sp
strb r5, [r0, 0x9]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A6190
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
subs r1, 0x20
strh r1, [r4, 0xE]
adds r0, 0x20
strh r0, [r4, 0x10]
cmp r1, 0
bge _0811345A
strh r5, [r4, 0xE]
_0811345A:
ldrh r3, [r4, 0xE]
movs r1, 0x10
ldrsh r0, [r4, r1]
cmp r3, r0
bgt _08113488
ldr r5, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
_0811346C:
lsls r1, r3, 1
adds r2, r1, r5
ldrh r0, [r4, 0xC]
strh r0, [r2]
adds r1, r6
ldrh r0, [r4, 0xC]
strh r0, [r1]
adds r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
movs r1, 0x10
ldrsh r0, [r4, r1]
cmp r3, r0
ble _0811346C
_08113488:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
bl ScanlineEffect_SetParams
ldr r0, =sub_81134B8
str r0, [r4]
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81133E8
thumb_func_start sub_81134B8
sub_81134B8: @ 81134B8
push {lr}
lsls r0, 24
lsrs r3, r0, 24
lsls r0, r3, 2
adds r0, r3
lsls r0, 3
ldr r1, =gTasks
adds r2, r0, r1
movs r1, 0x8
ldrsh r0, [r2, r1]
cmp r0, 0x4
bhi _0811356E
lsls r0, 2
ldr r1, =_081134E4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081134E4:
.4byte _081134F8
.4byte _0811351A
.4byte _0811352A
.4byte _08113556
.4byte _08113568
_081134F8:
ldrh r0, [r2, 0x16]
adds r0, 0x1
strh r0, [r2, 0x16]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _0811354E
movs r0, 0
strh r0, [r2, 0x16]
ldrh r0, [r2, 0x14]
adds r0, 0x1
strh r0, [r2, 0x14]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3
bne _0811354E
b _08113548
_0811351A:
ldrh r0, [r2, 0xA]
adds r0, 0x1
strh r0, [r2, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3C
ble _0811354E
b _08113548
_0811352A:
ldrh r0, [r2, 0x16]
adds r0, 0x1
strh r0, [r2, 0x16]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _0811354E
movs r0, 0
strh r0, [r2, 0x16]
ldrh r0, [r2, 0x14]
subs r0, 0x1
strh r0, [r2, 0x14]
lsls r0, 16
cmp r0, 0
bne _0811354E
_08113548:
ldrh r0, [r2, 0x8]
adds r0, 0x1
strh r0, [r2, 0x8]
_0811354E:
adds r0, r2, 0
bl sub_8113574
b _0811356E
_08113556:
ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
ldrh r0, [r2, 0x8]
adds r0, 0x1
strh r0, [r2, 0x8]
b _0811356E
.pool
_08113568:
adds r0, r3, 0
bl DestroyAnimVisualTask
_0811356E:
pop {r0}
bx r0
thumb_func_end sub_81134B8
thumb_func_start sub_8113574
sub_8113574: @ 8113574
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r5, r0, 0
ldrh r3, [r5, 0x12]
ldrh r4, [r5, 0xE]
movs r1, 0x10
ldrsh r0, [r5, r1]
cmp r4, r0
bgt _081135CA
ldr r7, =gScanlineEffectRegBuffers
mov r12, r7
ldr r0, =gSineTable
mov r8, r0
ldr r6, =gScanlineEffect
_08113592:
lsls r2, r4, 1
ldrb r1, [r6, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r2, r0
add r2, r12
lsls r0, r3, 1
add r0, r8
movs r7, 0
ldrsh r1, [r0, r7]
movs r7, 0x14
ldrsh r0, [r5, r7]
muls r0, r1
asrs r0, 7
ldrh r1, [r5, 0xC]
adds r0, r1
strh r0, [r2]
adds r3, 0x8
movs r0, 0xFF
ands r3, r0
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
movs r7, 0x10
ldrsh r0, [r5, r7]
cmp r4, r0
ble _08113592
_081135CA:
ldrh r0, [r5, 0x12]
adds r0, 0x9
movs r1, 0xFF
ands r0, r1
strh r0, [r5, 0x12]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8113574
thumb_func_start sub_81135EC
sub_81135EC: @ 81135EC
push {r4-r6,lr}
mov r6, r8
push {r6}
adds r4, r0, 0
ldr r5, =gBattleAnimArgs
movs r0, 0x4
ldrsh r1, [r5, r0]
lsls r0, r1, 1
adds r0, r1
movs r1, 0x5
bl __divsi3
adds r6, r0, 0
ldr r1, =gBattleAnimAttacker
mov r8, r1
ldrb r0, [r1]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
mov r2, r8
ldrb r0, [r2]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r3, [r5, 0x8]
adds r0, r3
strh r0, [r4, 0x22]
movs r1, 0x2
ldrsh r0, [r5, r1]
movs r2, 0x4
ldrsh r1, [r5, r2]
bl Cos
strh r0, [r4, 0x30]
movs r3, 0x2
ldrsh r0, [r5, r3]
lsls r6, 16
asrs r6, 16
adds r1, r6, 0
bl Sin
strh r0, [r4, 0x32]
ldrh r1, [r4, 0x30]
ldrh r2, [r5]
adds r3, r2, 0
muls r3, r1
adds r1, r3, 0
ldrh r3, [r4, 0x20]
adds r1, r3
strh r1, [r4, 0x20]
adds r1, r2, 0
muls r1, r0
adds r0, r1, 0
ldrh r2, [r4, 0x22]
adds r0, r2
strh r0, [r4, 0x22]
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x34]
ldr r0, =sub_811369C
str r0, [r4, 0x1C]
adds r4, 0x2E
ldr r2, =gUnknown_0203A100
movs r1, 0x6
_08113674:
ldrh r0, [r4]
strh r0, [r2]
adds r4, 0x2
adds r2, 0x2
subs r1, 0x1
cmp r1, 0
bge _08113674
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81135EC
thumb_func_start sub_811369C
sub_811369C: @ 811369C
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x30]
ldrh r1, [r4, 0x36]
adds r0, r1
strh r0, [r4, 0x36]
ldrh r0, [r4, 0x32]
ldrh r2, [r4, 0x38]
adds r0, r2
strh r0, [r4, 0x38]
movs r1, 0x36
ldrsh r0, [r4, r1]
movs r1, 0xA
bl __divsi3
strh r0, [r4, 0x24]
movs r2, 0x38
ldrsh r0, [r4, r2]
movs r1, 0xA
bl __divsi3
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
movs r2, 0x34
ldrsh r1, [r4, r2]
cmp r0, r1
ble _081136E0
adds r0, r4, 0
bl DestroyAnimSprite
_081136E0:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_811369C
thumb_func_start sub_81136E8
sub_81136E8: @ 81136E8
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, =gBattleAnimArgs
ldrh r1, [r1]
strh r1, [r0, 0x8]
ldr r1, =gBattleAnimAttacker
ldrb r4, [r1]
movs r1, 0x10
strh r1, [r0, 0xA]
movs r0, 0x52
bl SetGpuReg
adds r0, r4, 0
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08113734
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
b _0811373C
.pool
_08113734:
ldr r1, =0x00003f44
movs r0, 0x50
bl SetGpuReg
_0811373C:
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldr r0, =sub_811375C
str r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81136E8
thumb_func_start sub_811375C
sub_811375C: @ 811375C
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
ldr r1, =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r6, r0, r1
ldrh r0, [r6, 0xA]
lsrs r4, r0, 8
lsls r0, 24
lsrs r1, r0, 24
movs r2, 0xC
ldrsh r0, [r6, r2]
ldrb r2, [r6, 0x8]
cmp r0, r2
bne _081137D8
adds r4, 0x1
lsls r4, 24
lsrs r4, 24
subs r0, r1, 0x1
lsls r0, 24
lsrs r0, 24
lsls r1, r4, 8
orrs r1, r0
movs r5, 0
strh r1, [r6, 0xA]
ldrh r1, [r6, 0xA]
movs r0, 0x52
bl SetGpuReg
strh r5, [r6, 0xC]
cmp r4, 0x10
bne _081137DE
ldr r2, =gSprites
ldr r1, =gBattlerSpriteIds
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
adds r0, r7, 0
bl DestroyAnimVisualTask
b _081137DE
.pool
_081137D8:
ldrh r0, [r6, 0xC]
adds r0, 0x1
strh r0, [r6, 0xC]
_081137DE:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_811375C
thumb_func_start sub_81137E4
sub_81137E4: @ 81137E4
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r1, =gTasks
lsls r2, r0, 2
adds r2, r0
lsls r2, 3
adds r2, r1
ldr r0, =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r2, 0x8]
movs r1, 0x80
lsls r1, 5
strh r1, [r2, 0xA]
ldr r0, =sub_811381C
str r0, [r2]
movs r0, 0x52
bl SetGpuReg
pop {r0}
bx r0
.pool
thumb_func_end sub_81137E4
thumb_func_start sub_811381C
sub_811381C: @ 811381C
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
ldr r1, =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r6, r0, r1
ldrh r0, [r6, 0xA]
lsrs r4, r0, 8
lsls r0, 24
lsrs r1, r0, 24
movs r2, 0xC
ldrsh r0, [r6, r2]
ldrb r2, [r6, 0x8]
cmp r0, r2
bne _0811387C
subs r4, 0x1
lsls r4, 24
lsrs r4, 24
adds r0, r1, 0x1
lsls r0, 24
lsrs r0, 24
lsls r1, r4, 8
orrs r1, r0
movs r5, 0
strh r1, [r6, 0xA]
ldrh r1, [r6, 0xA]
movs r0, 0x52
bl SetGpuReg
strh r5, [r6, 0xC]
cmp r4, 0
bne _08113882
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
adds r0, r7, 0
bl DestroyAnimVisualTask
b _08113882
.pool
_0811387C:
ldrh r0, [r6, 0xC]
adds r0, 0x1
strh r0, [r6, 0xC]
_08113882:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_811381C
thumb_func_start sub_8113888
sub_8113888: @ 8113888
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
movs r1, 0x80
lsls r1, 5
movs r0, 0x52
bl SetGpuReg
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081138BC
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
b _081138C4
.pool
_081138BC:
ldr r1, =0x00003f44
movs r0, 0x50
bl SetGpuReg
_081138C4:
adds r0, r4, 0
bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8113888
thumb_func_start sub_81138D4
sub_81138D4: @ 81138D4
push {r4-r6,lr}
adds r4, r0, 0
ldr r6, =gBattleAnimTarget
ldrb r0, [r6]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x30]
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldrb r0, [r6]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x34]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
movs r0, 0x7E
strh r0, [r4, 0x2E]
adds r0, r4, 0
bl sub_80A6E14
ldrh r0, [r4, 0x30]
negs r0, r0
strh r0, [r4, 0x34]
ldrh r0, [r4, 0x32]
negs r0, r0
strh r0, [r4, 0x36]
ldr r0, =0x0000ffd8
strh r0, [r4, 0x3A]
ldr r1, =sub_8113950
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81138D4
thumb_func_start sub_8113950
sub_8113950: @ 8113950
push {r4-r6,lr}
adds r4, r0, 0
ldrh r5, [r4, 0x30]
ldrh r0, [r4, 0x34]
adds r2, r5, r0
strh r2, [r4, 0x34]
ldrh r3, [r4, 0x32]
ldrh r6, [r4, 0x36]
adds r1, r3, r6
strh r1, [r4, 0x36]
lsls r0, r2, 16
asrs r0, 24
strh r0, [r4, 0x24]
lsls r0, r1, 16
asrs r0, 24
strh r0, [r4, 0x26]
movs r6, 0x3C
ldrsh r0, [r4, r6]
cmp r0, 0
bne _08113992
adds r0, r2, r5
strh r0, [r4, 0x34]
adds r1, r3
strh r1, [r4, 0x36]
lsls r0, 16
asrs r0, 24
strh r0, [r4, 0x24]
lsls r1, 16
asrs r1, 24
strh r1, [r4, 0x26]
ldrh r0, [r4, 0x2E]
subs r0, 0x1
strh r0, [r4, 0x2E]
_08113992:
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r2, 0x3A
ldrsh r1, [r4, r2]
bl Sin
ldrh r6, [r4, 0x26]
adds r0, r6
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x38]
adds r0, 0x3
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x38]
cmp r0, 0x7F
ble _081139C2
movs r0, 0
strh r0, [r4, 0x38]
ldrh r0, [r4, 0x3A]
adds r0, 0x14
strh r0, [r4, 0x3A]
ldrh r0, [r4, 0x3C]
adds r0, 0x1
strh r0, [r4, 0x3C]
_081139C2:
ldrh r0, [r4, 0x2E]
subs r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
cmp r0, 0
bne _081139D4
adds r0, r4, 0
bl DestroyAnimSprite
_081139D4:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8113950
thumb_func_start sub_81139DC
sub_81139DC: @ 81139DC
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimArgs
ldrh r0, [r5]
ldrh r1, [r4, 0x20]
adds r0, r1
strh r0, [r4, 0x20]
ldrh r0, [r5, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
ldrb r1, [r5, 0x4]
adds r0, r4, 0
bl StartSpriteAffineAnim
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
ldrh r0, [r5, 0x8]
strh r0, [r4, 0x30]
ldrh r0, [r5, 0xA]
strh r0, [r4, 0x32]
ldr r0, =sub_8113A18
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81139DC
thumb_func_start sub_8113A18
sub_8113A18: @ 8113A18
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x2E]
ldrh r1, [r2, 0x36]
adds r0, r1
strh r0, [r2, 0x36]
ldrh r1, [r2, 0x30]
ldrh r3, [r2, 0x38]
adds r1, r3
strh r1, [r2, 0x38]
lsls r0, 16
asrs r0, 24
strh r0, [r2, 0x24]
lsls r1, 16
asrs r1, 24
strh r1, [r2, 0x26]
ldrh r0, [r2, 0x34]
adds r0, 0x1
strh r0, [r2, 0x34]
lsls r0, 16
asrs r0, 16
movs r3, 0x32
ldrsh r1, [r2, r3]
cmp r0, r1
bne _08113A4E
ldr r0, =sub_8113A58
str r0, [r2, 0x1C]
_08113A4E:
pop {r0}
bx r0
.pool
thumb_func_end sub_8113A18
thumb_func_start sub_8113A58
sub_8113A58: @ 8113A58
push {lr}
adds r3, r0, 0
ldrh r1, [r3, 0x36]
ldrh r0, [r3, 0x2E]
subs r1, r0
strh r1, [r3, 0x36]
ldrh r0, [r3, 0x38]
ldrh r2, [r3, 0x30]
subs r0, r2
strh r0, [r3, 0x38]
lsls r1, 16
asrs r1, 24
strh r1, [r3, 0x24]
lsls r0, 16
asrs r0, 24
strh r0, [r3, 0x26]
ldrh r0, [r3, 0x34]
subs r0, 0x1
strh r0, [r3, 0x34]
lsls r0, 16
cmp r0, 0
bne _08113A8A
adds r0, r3, 0
bl move_anim_8074EE0
_08113A8A:
pop {r0}
bx r0
thumb_func_end sub_8113A58
thumb_func_start sub_8113A90
sub_8113A90: @ 8113A90
push {r4-r7,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r3, r0, 0
cmp r1, 0
bne _08113AAC
ldr r0, =gBattleAnimAttacker
b _08113AAE
.pool
_08113AAC:
ldr r0, =gBattleAnimTarget
_08113AAE:
ldrb r5, [r0]
movs r6, 0x14
ldrh r2, [r4, 0x4]
lsls r1, r2, 22
lsrs r1, 22
adds r1, 0x4
ldr r7, =0x000003ff
adds r0, r7, 0
ands r1, r0
ldr r0, =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r4, 0x4]
movs r1, 0x2
ldrsh r0, [r3, r1]
cmp r0, 0x1
beq _08113B0C
cmp r0, 0x1
bgt _08113AE8
cmp r0, 0
beq _08113AF2
b _08113B60
.pool
_08113AE8:
cmp r0, 0x2
beq _08113B26
cmp r0, 0x3
beq _08113B3E
b _08113B60
_08113AF2:
adds r0, r5, 0
movs r1, 0x5
bl sub_80A861C
subs r0, 0x8
strh r0, [r4, 0x20]
adds r0, r5, 0
movs r1, 0x2
bl sub_80A861C
adds r0, 0x8
strh r0, [r4, 0x22]
b _08113B60
_08113B0C:
adds r0, r5, 0
movs r1, 0x5
bl sub_80A861C
subs r0, 0xE
strh r0, [r4, 0x20]
adds r0, r5, 0
movs r1, 0x2
bl sub_80A861C
adds r0, 0x10
strh r0, [r4, 0x22]
b _08113B60
_08113B26:
adds r0, r5, 0
movs r1, 0x4
bl sub_80A861C
adds r0, 0x8
strh r0, [r4, 0x20]
adds r0, r5, 0
movs r1, 0x2
bl sub_80A861C
adds r0, 0x8
b _08113B54
_08113B3E:
adds r0, r5, 0
movs r1, 0x4
bl sub_80A861C
adds r0, 0xE
strh r0, [r4, 0x20]
adds r0, r5, 0
movs r1, 0x2
bl sub_80A861C
adds r0, 0x10
_08113B54:
strh r0, [r4, 0x22]
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
movs r6, 0xEC
_08113B60:
movs r0, 0x20
strh r0, [r4, 0x2E]
lsls r0, r6, 24
asrs r0, 24
ldrh r2, [r4, 0x20]
adds r0, r2
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x22]
adds r0, 0xC
strh r0, [r4, 0x36]
ldr r0, =0x0000fff4
strh r0, [r4, 0x38]
adds r0, r4, 0
bl sub_80A68D4
ldr r0, =sub_8113B90
str r0, [r4, 0x1C]
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8113A90
thumb_func_start sub_8113B90
sub_8113B90: @ 8113B90
push {r4,lr}
adds r4, r0, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
beq _08113BA4
adds r0, r4, 0
bl move_anim_8074EE0
_08113BA4:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8113B90
thumb_func_start sub_8113BAC
sub_8113BAC: @ 8113BAC
push {r4-r7,lr}
sub sp, 0x1C
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks
adds r5, r1, r0
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, 0x1F
movs r6, 0
strh r0, [r5, 0x16]
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A861C
subs r0, 0x7
strh r0, [r5, 0x14]
ldrh r1, [r5, 0x16]
strh r1, [r5, 0x12]
strh r0, [r5, 0x10]
subs r1, r0
lsls r1, 8
strh r1, [r5, 0x22]
ldrb r0, [r4]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
subs r1, 0x20
strh r1, [r5, 0x24]
adds r0, 0x20
strh r0, [r5, 0x26]
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08113C1C
ldr r0, =0x0000fff4
b _08113C1E
.pool
_08113C1C:
ldr r0, =0x0000ffc0
_08113C1E:
strh r0, [r5, 0x18]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0xE]
cmp r0, 0x1
bne _08113C80
add r4, sp, 0xC
adds r0, r4, 0
bl sub_80A6B30
ldr r0, =gBattle_BG1_Y
ldrh r0, [r0]
strh r0, [r5, 0x1C]
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
ldrb r1, [r4, 0x8]
lsls r1, 4
movs r0, 0
movs r2, 0x20
bl FillPalette
ldr r0, =0x04000016
str r0, [sp]
movs r7, 0x2
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08113CB0
ldr r1, =gBattle_BG2_X
b _08113CAA
.pool
_08113C80:
ldr r0, =gBattle_BG2_Y
ldrh r0, [r0]
strh r0, [r5, 0x1C]
ldr r1, =0x00003f44
movs r0, 0x50
bl SetGpuReg
movs r0, 0
movs r1, 0x90
movs r2, 0x20
bl FillPalette
ldr r0, =0x0400001a
str r0, [sp]
movs r7, 0x4
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08113CB0
ldr r1, =gBattle_BG1_X
_08113CAA:
ldrh r0, [r1]
adds r0, 0xF0
strh r0, [r1]
_08113CB0:
ldr r0, =0xa2600001
str r0, [sp, 0x4]
mov r2, sp
movs r1, 0
movs r0, 0x1
strb r0, [r2, 0x8]
mov r0, sp
strb r1, [r0, 0x9]
strh r1, [r5, 0x1E]
movs r0, 0x10
strh r0, [r5, 0x20]
strh r1, [r5, 0x8]
strh r1, [r5, 0xA]
strh r1, [r5, 0xC]
movs r0, 0x3
bl sub_8114374
movs r3, 0
ldr r4, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r4, r0
_08113CDC:
lsls r1, r3, 1
adds r2, r1, r4
ldrh r0, [r5, 0x1C]
strh r0, [r2]
adds r1, r6
ldrh r0, [r5, 0x1C]
strh r0, [r1]
adds r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0x6F
bls _08113CDC
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
bl ScanlineEffect_SetParams
movs r0, 0x3F
eors r7, r0
movs r1, 0xFC
lsls r1, 6
adds r0, r1, 0
orrs r7, r0
movs r0, 0x4A
adds r1, r7, 0
bl SetGpuReg
ldr r1, =0x00003f3f
movs r0, 0x48
bl SetGpuReg
ldr r2, =gBattle_WIN0H
ldrh r0, [r5, 0x24]
lsls r0, 8
ldrh r1, [r5, 0x26]
orrs r0, r1
strh r0, [r2]
ldr r1, =gBattle_WIN0V
movs r0, 0xA0
strh r0, [r1]
ldr r0, =sub_8113D60
str r0, [r5]
add sp, 0x1C
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8113BAC
thumb_func_start sub_8113D60
sub_8113D60: @ 8113D60
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0x4
bls _08113D7A
b _08113E72
_08113D7A:
lsls r0, 2
ldr r1, =_08113D8C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08113D8C:
.4byte _08113DA0
.4byte _08113E02
.4byte _08113E1C
.4byte _08113E58
.4byte _08113E6C
_08113DA0:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _08113E72
movs r0, 0
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _08113DD0
ldrh r1, [r4, 0x1E]
movs r2, 0x1E
ldrsh r0, [r4, r2]
cmp r0, 0xC
beq _08113DDE
adds r0, r1, 0x1
strh r0, [r4, 0x1E]
b _08113DDE
_08113DD0:
ldrh r1, [r4, 0x20]
movs r2, 0x20
ldrsh r0, [r4, r2]
cmp r0, 0x8
beq _08113DDE
subs r0, r1, 0x1
strh r0, [r4, 0x20]
_08113DDE:
ldrh r1, [r4, 0x20]
lsls r1, 8
ldrh r0, [r4, 0x1E]
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0x1E
ldrsh r0, [r4, r1]
cmp r0, 0xC
bne _08113E72
movs r2, 0x20
ldrsh r0, [r4, r2]
cmp r0, 0x8
bne _08113E72
b _08113E5E
_08113E02:
ldrh r0, [r4, 0x10]
subs r0, 0x8
strh r0, [r4, 0x10]
adds r0, r4, 0
bl sub_8114244
movs r0, 0x10
ldrsh r1, [r4, r0]
movs r2, 0x18
ldrsh r0, [r4, r2]
cmp r1, r0
bge _08113E72
b _08113E5E
_08113E1C:
ldrh r0, [r4, 0x10]
subs r0, 0x8
strh r0, [r4, 0x10]
adds r0, r4, 0
bl sub_8114244
ldrh r1, [r4, 0x24]
adds r1, 0x4
strh r1, [r4, 0x24]
ldrh r0, [r4, 0x26]
subs r2, r0, 0x4
strh r2, [r4, 0x26]
lsls r1, 16
lsls r0, r2, 16
cmp r1, r0
blt _08113E3E
strh r2, [r4, 0x24]
_08113E3E:
ldr r3, =gBattle_WIN0H
ldrh r2, [r4, 0x24]
lsls r0, r2, 8
ldrh r1, [r4, 0x26]
orrs r0, r1
strh r0, [r3]
lsls r2, 16
lsls r1, 16
cmp r2, r1
bne _08113E72
b _08113E5E
.pool
_08113E58:
ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_08113E5E:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _08113E72
.pool
_08113E6C:
adds r0, r2, 0
bl DestroyAnimVisualTask
_08113E72:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8113D60
thumb_func_start sub_8113E78
sub_8113E78: @ 8113E78
push {r4-r7,lr}
sub sp, 0x1C
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, =gTasks
adds r5, r0, r1
movs r1, 0x8
ldrsh r0, [r5, r1]
cmp r0, 0x4
bls _08113E94
b _081140A6
_08113E94:
lsls r0, 2
ldr r1, =_08113EA8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08113EA8:
.4byte _08113EBC
.4byte _08113F40
.4byte _08113F84
.4byte _08113FF0
.4byte _08114058
_08113EBC:
bl IsContest
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08113EF8
ldr r0, =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_WIN0V
strh r1, [r0]
ldr r4, =0x00003f3f
movs r0, 0x48
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
adds r0, r6, 0
bl DestroyAnimVisualTask
b _081140A6
.pool
_08113EF8:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0xE]
cmp r0, 0x1
bne _08113F24
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
ldr r1, =gBattle_BG2_X
b _08113F2E
.pool
_08113F24:
ldr r1, =0x00003f44
movs r0, 0x50
bl SetGpuReg
ldr r1, =gBattle_BG1_X
_08113F2E:
ldrh r0, [r1]
adds r0, 0xF0
strh r0, [r1]
b _08114044
.pool
_08113F40:
movs r1, 0xE
ldrsh r0, [r5, r1]
cmp r0, 0x1
bne _08113F68
mov r0, sp
bl sub_80A6B30
ldr r0, =gBattle_BG1_Y
ldrh r0, [r0]
strh r0, [r5, 0x1C]
mov r0, sp
ldrb r1, [r0, 0x8]
lsls r1, 4
movs r0, 0
movs r2, 0x20
bl FillPalette
b _08113F78
.pool
_08113F68:
ldr r0, =gBattle_BG2_Y
ldrh r0, [r0]
strh r0, [r5, 0x1C]
movs r0, 0
movs r1, 0x90
movs r2, 0x20
bl FillPalette
_08113F78:
movs r0, 0x3
bl sub_8114374
b _08114044
.pool
_08113F84:
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, 0x1F
movs r6, 0
strh r0, [r5, 0x16]
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A861C
subs r0, 0x7
strh r0, [r5, 0x14]
ldrh r1, [r5, 0x16]
subs r1, r0
lsls r1, 8
strh r1, [r5, 0x22]
ldrb r0, [r4]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
subs r1, r0, 0x4
strh r1, [r5, 0x24]
adds r0, 0x4
strh r0, [r5, 0x26]
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08113FD8
ldr r0, =0x0000fff4
b _08113FDA
.pool
_08113FD8:
ldr r0, =0x0000ffc0
_08113FDA:
strh r0, [r5, 0x18]
ldrh r0, [r5, 0x18]
strh r0, [r5, 0x10]
strh r0, [r5, 0x12]
movs r0, 0xC
strh r0, [r5, 0x1E]
movs r0, 0x8
strh r0, [r5, 0x20]
b _08114044
.pool
_08113FF0:
movs r1, 0xE
ldrsh r0, [r5, r1]
cmp r0, 0x1
bne _08114000
ldr r0, =0x04000016
b _08114002
.pool
_08114000:
ldr r0, =0x0400001a
_08114002:
str r0, [sp, 0x10]
movs r3, 0
add r4, sp, 0x10
ldr r6, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r7, r6, r0
_08114010:
lsls r1, r3, 1
adds r2, r1, r6
ldrh r0, [r5, 0x1C]
adds r0, 0x9F
subs r0, r3
strh r0, [r2]
adds r1, r7
ldrh r0, [r5, 0x1C]
adds r0, 0x9F
subs r0, r3
strh r0, [r1]
adds r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0x6F
bls _08114010
ldr r1, =0xa2600001
str r1, [r4, 0x4]
movs r2, 0
movs r0, 0x1
strb r0, [r4, 0x8]
strb r2, [r4, 0x9]
ldr r0, [sp, 0x10]
ldr r2, [r4, 0x8]
bl ScanlineEffect_SetParams
_08114044:
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
b _081140A6
.pool
_08114058:
movs r1, 0xE
ldrsh r0, [r5, r1]
cmp r0, 0x1
bne _08114070
ldr r1, =0x00003f3d
movs r0, 0x4A
bl SetGpuReg
b _08114078
.pool
_08114070:
ldr r1, =0x00003f3b
movs r0, 0x4A
bl SetGpuReg
_08114078:
ldr r1, =0x00003f3f
movs r0, 0x48
bl SetGpuReg
ldr r2, =gBattle_WIN0H
ldrh r0, [r5, 0x24]
lsls r0, 8
ldrh r1, [r5, 0x26]
orrs r0, r1
strh r0, [r2]
ldr r1, =gBattle_WIN0V
movs r0, 0xA0
strh r0, [r1]
movs r0, 0
strh r0, [r5, 0x8]
strh r0, [r5, 0xA]
strh r0, [r5, 0xC]
ldr r1, =0x0000080c
movs r0, 0x52
bl SetGpuReg
ldr r0, =sub_81140C8
str r0, [r5]
_081140A6:
add sp, 0x1C
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8113E78
thumb_func_start sub_81140C8
sub_81140C8: @ 81140C8
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0x4
bls _081140E2
b _08114232
_081140E2:
lsls r0, 2
ldr r1, =_081140F4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081140F4:
.4byte _08114108
.4byte _08114134
.4byte _0811419C
.4byte _081141FE
.4byte _08114210
_08114108:
ldrh r0, [r4, 0x12]
adds r0, 0x8
strh r0, [r4, 0x12]
lsls r0, 16
asrs r0, 16
ldrh r2, [r4, 0x16]
movs r3, 0x16
ldrsh r1, [r4, r3]
cmp r0, r1
blt _0811411E
strh r2, [r4, 0x12]
_0811411E:
adds r0, r4, 0
bl sub_8114244
movs r0, 0x12
ldrsh r1, [r4, r0]
movs r2, 0x16
ldrsh r0, [r4, r2]
cmp r1, r0
beq _08114132
b _08114232
_08114132:
b _08114204
_08114134:
movs r3, 0x26
ldrsh r0, [r4, r3]
movs r2, 0x24
ldrsh r1, [r4, r2]
subs r0, r1
cmp r0, 0x3F
bgt _08114150
ldrh r0, [r4, 0x24]
subs r0, 0x4
strh r0, [r4, 0x24]
ldrh r0, [r4, 0x26]
adds r0, 0x4
strh r0, [r4, 0x26]
b _08114154
_08114150:
movs r0, 0x1
strh r0, [r4, 0xA]
_08114154:
ldr r2, =gBattle_WIN0H
ldrh r0, [r4, 0x24]
lsls r0, 8
ldrh r1, [r4, 0x26]
orrs r0, r1
strh r0, [r2]
ldrh r0, [r4, 0x10]
adds r0, 0x8
strh r0, [r4, 0x10]
lsls r0, 16
asrs r0, 16
ldrh r2, [r4, 0x14]
movs r3, 0x14
ldrsh r1, [r4, r3]
cmp r0, r1
blt _08114176
strh r2, [r4, 0x10]
_08114176:
adds r0, r4, 0
bl sub_8114244
movs r0, 0x10
ldrsh r1, [r4, r0]
movs r2, 0x14
ldrsh r0, [r4, r2]
cmp r1, r0
bne _08114232
movs r3, 0xA
ldrsh r0, [r4, r3]
cmp r0, 0
beq _08114232
movs r0, 0
strh r0, [r4, 0xA]
b _08114204
.pool
_0811419C:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _08114232
movs r0, 0
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _081141CC
ldrh r1, [r4, 0x1E]
movs r2, 0x1E
ldrsh r0, [r4, r2]
cmp r0, 0
beq _081141DA
subs r0, r1, 0x1
strh r0, [r4, 0x1E]
b _081141DA
_081141CC:
ldrh r1, [r4, 0x20]
movs r3, 0x20
ldrsh r0, [r4, r3]
cmp r0, 0xF
bgt _081141DA
adds r0, r1, 0x1
strh r0, [r4, 0x20]
_081141DA:
ldrh r1, [r4, 0x20]
lsls r1, 8
ldrh r0, [r4, 0x1E]
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0x1E
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08114232
movs r2, 0x20
ldrsh r0, [r4, r2]
cmp r0, 0x10
bne _08114232
b _08114204
_081141FE:
ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_08114204:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _08114232
.pool
_08114210:
ldr r0, =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_WIN0V
strh r1, [r0]
ldr r4, =0x00003f3f
movs r0, 0x48
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
adds r0, r5, 0
bl DestroyAnimVisualTask
_08114232:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81140C8
thumb_func_start sub_8114244
sub_8114244: @ 8114244
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
ldrh r0, [r6, 0x12]
ldrh r4, [r6, 0x10]
subs r0, r4
lsls r0, 16
asrs r1, r0, 16
cmp r1, 0
beq _08114338
movs r2, 0x22
ldrsh r0, [r6, r2]
bl __divsi3
mov r8, r0
movs r3, 0x14
ldrsh r0, [r6, r3]
lsls r5, r0, 8
lsls r0, r4, 16
movs r4, 0
cmp r0, 0
ble _081142A4
ldr r0, =gScanlineEffectRegBuffers
mov r12, r0
ldr r7, =gScanlineEffect
_08114278:
lsls r2, r4, 16
asrs r2, 16
lsls r3, r2, 1
ldrb r1, [r7, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r3, r0
add r3, r12
adds r1, r2, 0
subs r1, 0x9F
ldrh r0, [r6, 0x1C]
subs r0, r1
strh r0, [r3]
adds r2, 0x1
lsls r2, 16
lsrs r4, r2, 16
asrs r2, 16
movs r1, 0x10
ldrsh r0, [r6, r1]
cmp r2, r0
blt _08114278
_081142A4:
ldrh r4, [r6, 0x10]
lsls r3, r4, 16
asrs r1, r3, 16
movs r2, 0x12
ldrsh r0, [r6, r2]
cmp r1, r0
bgt _081142EE
ldr r0, =gScanlineEffectRegBuffers
mov r12, r0
ldr r7, =gScanlineEffect
_081142B8:
asrs r4, r3, 16
cmp r4, 0
blt _081142DA
asrs r1, r5, 8
subs r1, r4
lsls r3, r4, 1
ldrb r2, [r7, 0x14]
lsls r0, r2, 4
subs r0, r2
lsls r0, 7
adds r3, r0
add r3, r12
lsls r1, 16
asrs r1, 16
ldrh r2, [r6, 0x1C]
adds r1, r2
strh r1, [r3]
_081142DA:
add r5, r8
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
lsls r3, r4, 16
asrs r1, r3, 16
movs r2, 0x12
ldrsh r0, [r6, r2]
cmp r1, r0
ble _081142B8
_081142EE:
movs r3, 0x1C
ldrsh r0, [r6, r3]
adds r0, 0x9F
lsls r2, r4, 16
asrs r1, r2, 16
subs r5, r0, r1
movs r3, 0x16
ldrsh r0, [r6, r3]
cmp r1, r0
bge _08114366
ldr r7, =gScanlineEffectRegBuffers
ldr r4, =gScanlineEffect
_08114306:
asrs r3, r2, 16
cmp r3, 0
blt _0811431E
lsls r2, r3, 1
ldrb r1, [r4, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r2, r0
adds r2, r7
strh r5, [r2]
subs r5, 0x1
_0811431E:
adds r0, r3, 0x1
lsls r2, r0, 16
asrs r1, r2, 16
movs r3, 0x16
ldrsh r0, [r6, r3]
cmp r1, r0
blt _08114306
b _08114366
.pool
_08114338:
movs r1, 0x1C
ldrsh r0, [r6, r1]
adds r5, r0, 0
adds r5, 0x9F
movs r4, 0
ldr r3, =gScanlineEffectRegBuffers
movs r2, 0xF0
lsls r2, 3
adds r6, r3, r2
_0811434A:
lsls r0, r4, 16
asrs r0, 16
lsls r2, r0, 1
adds r1, r2, r3
strh r5, [r1]
adds r2, r6
strh r5, [r2]
subs r5, 0x1
adds r0, 0x1
lsls r0, 16
lsrs r4, r0, 16
asrs r0, 16
cmp r0, 0x6F
ble _0811434A
_08114366:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8114244
thumb_func_start sub_8114374
sub_8114374: @ 8114374
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
movs r4, 0
ldr r7, =gSprites
movs r1, 0x3
ands r0, r1
lsls r5, r0, 2
movs r0, 0xD
negs r0, r0
adds r6, r0, 0
_0811438A:
lsls r0, r4, 24
lsrs r0, 24
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
beq _081143AA
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r7
ldrb r0, [r1, 0x5]
ands r0, r6
orrs r0, r5
strb r0, [r1, 0x5]
_081143AA:
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0x3
bls _0811438A
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8114374
thumb_func_start sub_81143C0
sub_81143C0: @ 81143C0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r0, 24
mov r10, r0
ldr r6, =gBattleAnimAttacker
ldrb r0, [r6]
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
eors r0, r1
negs r1, r0
orrs r1, r0
lsrs r4, r1, 31
ldrb r0, [r6]
adds r1, r4, 0
movs r2, 0x1
bl sub_80A438C
ldr r0, =gSprites
mov r9, r0
ldr r0, =gBattlerSpriteIds
mov r8, r0
ldrb r0, [r6]
add r0, r8
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
add r1, r9
adds r1, 0x3E
ldrb r2, [r1]
movs r7, 0x5
negs r7, r7
adds r0, r7, 0
ands r0, r2
strb r0, [r1]
ldrb r0, [r6]
movs r5, 0x2
eors r0, r5
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0811444E
ldrb r0, [r6]
eors r0, r5
movs r1, 0x1
eors r4, r1
adds r1, r4, 0
movs r2, 0x1
bl sub_80A438C
ldrb r0, [r6]
eors r0, r5
add r0, r8
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r9
adds r0, 0x3E
ldrb r2, [r0]
adds r1, r7, 0
ands r1, r2
strb r1, [r0]
_0811444E:
mov r0, r10
bl DestroyAnimVisualTask
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81143C0
thumb_func_start sub_8114470
sub_8114470: @ 8114470
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
eors r0, r1
negs r1, r0
orrs r1, r0
lsrs r5, r1, 31
adds r0, r5, 0
bl sub_80A477C
ldrb r1, [r4]
movs r0, 0x2
eors r0, r1
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _081144AC
movs r0, 0x1
eors r5, r0
adds r0, r5, 0
bl sub_80A477C
_081144AC:
adds r0, r6, 0
bl DestroyAnimVisualTask
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8114470
thumb_func_start sub_81144BC
sub_81144BC: @ 81144BC
push {r4,lr}
adds r4, r0, 0
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
strh r0, [r4, 0x20]
ldrh r0, [r1, 0x2]
ldrh r2, [r4, 0x22]
adds r0, r2
strh r0, [r4, 0x22]
ldrb r1, [r1, 0x4]
adds r0, r4, 0
bl StartSpriteAnim
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81144BC
thumb_func_start sub_81144F8
sub_81144F8: @ 81144F8
push {r4-r7,lr}
sub sp, 0x10
lsls r0, 24
lsrs r7, r0, 24
movs r6, 0
ldr r0, =gBattle_WIN0H
strh r6, [r0]
ldr r0, =gBattle_WIN0V
strh r6, [r0]
ldr r1, =0x00003f3f
movs r0, 0x48
bl SetGpuReg
ldr r1, =0x00003f3d
movs r0, 0x4A
bl SetGpuReg
movs r1, 0x80
lsls r1, 8
movs r0, 0
bl SetGpuRegBits
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
ldr r1, =0x00000c08
movs r0, 0x52
bl SetGpuReg
movs r0, 0x1
movs r1, 0x4
movs r2, 0
bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0
movs r2, 0
bl SetAnimBgAttribute
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0811455C
movs r0, 0x1
movs r1, 0x3
movs r2, 0x1
bl SetAnimBgAttribute
_0811455C:
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _081145D6
bl IsContest
lsls r0, 24
cmp r0, 0
bne _081145D6
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _0811458C
ldrb r0, [r4]
bl GetBattlerPosition
lsls r0, 24
cmp r0, 0
bne _081145D6
_0811458C:
ldrb r0, [r4]
movs r5, 0x2
eors r0, r5
bl IsBattlerSpriteVisible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081145D6
ldr r3, =gSprites
ldr r1, =gBattlerSpriteIds
ldrb r0, [r4]
eors r0, r5
adds r0, r1
ldrb r0, [r0]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r3
ldrb r3, [r2, 0x5]
lsls r1, r3, 28
lsrs r1, 30
subs r1, 0x1
movs r0, 0x3
ands r1, r0
lsls r1, 2
movs r0, 0xD
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2, 0x5]
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
movs r6, 0x1
_081145D6:
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08114614
ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x18]
ldrh r5, [r0]
b _0811465C
.pool
_08114614:
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08114640
ldr r1, =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gEnemyParty
b _08114650
.pool
_08114640:
ldr r1, =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
_08114650:
adds r0, r1
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
_0811465C:
movs r0, 0
bl GetAnimBattlerSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r1, r4, 0
adds r2, r5, 0
bl sub_80A89C8
lsls r0, 24
lsrs r5, r0, 24
mov r0, sp
bl sub_80A6B30
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, =gUnknown_08C1D210
bl sub_80A6D48
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, =gUnknown_08C1D0AC
mov r2, sp
ldrh r2, [r2, 0xA]
bl sub_80A6CC0
ldr r0, =gUnknown_08C1D1E8
mov r1, sp
ldrb r1, [r1, 0x8]
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
ldr r2, =gBattle_BG1_X
ldr r0, =gSprites
lsls r1, r4, 4
adds r1, r4
lsls r1, 2
adds r1, r0
ldrh r0, [r1, 0x20]
negs r0, r0
adds r0, 0x60
strh r0, [r2]
ldr r2, =gBattle_BG1_Y
ldrh r0, [r1, 0x22]
negs r0, r0
adds r0, 0x20
strh r0, [r2]
ldrb r0, [r1, 0x5]
lsrs r0, 4
adds r0, 0x10
adds r1, r0, 0
ldr r2, =gBattleAnimArgs
movs r3, 0x2
ldrsh r0, [r2, r3]
cmp r0, 0
bne _08114708
adds r0, r1, 0
movs r1, 0
bl sub_80A750C
b _08114714
.pool
_08114708:
lsls r0, r1, 4
ldrh r3, [r2, 0x4]
movs r1, 0x10
movs r2, 0xB
bl BlendPalette
_08114714:
ldr r1, =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r0, r1
strh r5, [r0, 0x8]
ldr r2, =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r0, 0xA]
ldrh r1, [r2, 0x2]
strh r1, [r0, 0xC]
ldrh r1, [r2, 0x4]
strh r1, [r0, 0xE]
strh r6, [r0, 0x14]
ldr r1, =sub_8114748
str r1, [r0]
add sp, 0x10
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81144F8
thumb_func_start sub_8114748
sub_8114748: @ 8114748
push {r4-r6,lr}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
ldr r1, =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r4, r0, r1
ldrh r0, [r4, 0x1C]
adds r0, 0x4
movs r5, 0
strh r0, [r4, 0x1C]
ldr r2, =gBattle_BG1_X
ldrh r3, [r2]
subs r1, r3, 0x4
strh r1, [r2]
lsls r0, 16
asrs r0, 16
cmp r0, 0x80
beq _08114776
b _08114886
_08114776:
strh r5, [r4, 0x1C]
adds r0, r3, 0
adds r0, 0x7C
strh r0, [r2]
ldrh r0, [r4, 0x1E]
adds r0, 0x1
strh r0, [r4, 0x1E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
bne _08114824
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
ldr r5, =gSprites
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r5
ldrb r0, [r1, 0x5]
lsrs r0, 4
adds r0, 0x10
adds r1, r0, 0
movs r2, 0xA
ldrsh r0, [r4, r2]
cmp r0, 0
bne _081147B8
adds r0, r1, 0
movs r1, 0x1
bl sub_80A750C
_081147B8:
movs r0, 0x8
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
bl DestroySprite
mov r0, sp
bl sub_80A6B30
mov r0, sp
ldrb r0, [r0, 0x9]
bl sub_80A6C68
movs r1, 0x14
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _08114886
ldr r2, =gBattlerSpriteIds
ldr r0, =gBattleAnimAttacker
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
adds r0, r2
ldrb r0, [r0]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r5
ldrb r3, [r2, 0x5]
lsls r1, r3, 28
lsrs r1, 30
adds r1, 0x1
movs r0, 0x3
ands r1, r0
lsls r1, 2
movs r0, 0xD
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2, 0x5]
b _08114886
.pool
_08114824:
cmp r0, 0x3
bne _08114886
ldr r0, =gBattle_WIN0H
strh r5, [r0]
ldr r0, =gBattle_WIN0V
strh r5, [r0]
ldr r4, =0x00003f3f
movs r0, 0x48
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08114856
movs r0, 0x1
movs r1, 0x3
movs r2, 0
bl SetAnimBgAttribute
_08114856:
movs r0, 0
bl GetGpuReg
adds r1, r0, 0
movs r2, 0x80
lsls r2, 8
adds r0, r2, 0
eors r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0
bl SetGpuReg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
adds r0, r6, 0
bl DestroyAnimVisualTask
_08114886:
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8114748
thumb_func_start sub_811489C
sub_811489C: @ 811489C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
ldr r0, =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r2, r0, 0
cmp r1, 0x7
bhi _08114900
lsls r0, r1, 2
ldr r1, =_081148C4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081148C4:
.4byte _081148E4
.4byte _081148E4
.4byte _081148E4
.4byte _081148E4
.4byte _081148F0
.4byte _081148F4
.4byte _081148F8
.4byte _081148FC
_081148E4:
ldrb r0, [r2]
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r2, r0, 24
b _08114902
_081148F0:
movs r4, 0
b _08114908
_081148F4:
movs r4, 0x2
b _08114908
_081148F8:
movs r4, 0x1
b _08114908
_081148FC:
movs r4, 0x3
b _08114908
_08114900:
movs r2, 0xFF
_08114902:
movs r0, 0
cmp r0, 0
beq _0811492E
_08114908:
adds r0, r4, 0
bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0811492C
ldr r0, =gBattlerSpriteIds
adds r0, r4, r0
ldrb r2, [r0]
b _0811492E
.pool
_0811492C:
movs r2, 0xFF
_0811492E:
cmp r2, 0xFF
beq _0811494A
ldr r1, =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r0, [r0, 0x5]
lsrs r0, 4
adds r0, 0x10
ldr r1, =gBattleAnimArgs
ldrb r1, [r1, 0x2]
bl sub_80A750C
_0811494A:
adds r0, r5, 0
bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_811489C
thumb_func_start sub_8114960
sub_8114960: @ 8114960
push {lr}
lsls r0, 24
lsrs r3, r0, 24
ldr r2, =gAnimMoveTurn
ldrb r0, [r2]
cmp r0, 0x1
bhi _08114974
ldr r1, =gBattleAnimArgs
movs r0, 0
strh r0, [r1, 0xE]
_08114974:
ldrb r0, [r2]
cmp r0, 0x2
bne _08114980
ldr r1, =gBattleAnimArgs
movs r0, 0x1
strh r0, [r1, 0xE]
_08114980:
adds r0, r3, 0
bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
thumb_func_end sub_8114960
thumb_func_start sub_8114994
sub_8114994: @ 8114994
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
movs r0, 0x14
strh r0, [r4, 0x2E]
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
ldr r0, =0x0000ffd8
strh r0, [r4, 0x38]
adds r0, r4, 0
bl sub_80A68D4
ldr r0, =sub_81149FC
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8114994
thumb_func_start sub_81149FC
sub_81149FC: @ 81149FC
push {r4,r5,lr}
adds r5, r0, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
beq _08114A50
ldrh r0, [r5, 0x24]
ldrh r1, [r5, 0x20]
adds r0, r1
movs r1, 0
strh r0, [r5, 0x20]
ldrh r0, [r5, 0x26]
ldrh r2, [r5, 0x22]
adds r0, r2
strh r0, [r5, 0x22]
strh r1, [r5, 0x26]
strh r1, [r5, 0x24]
movs r0, 0x14
strh r0, [r5, 0x2E]
ldr r4, =gBattleAnimAttacker
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]
movs r0, 0x28
strh r0, [r5, 0x38]
adds r0, r5, 0
bl sub_80A68D4
ldr r0, =sub_8114A60
str r0, [r5, 0x1C]
_08114A50:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81149FC
thumb_func_start sub_8114A60
sub_8114A60: @ 8114A60
push {r4,lr}
adds r4, r0, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
beq _08114A74
adds r0, r4, 0
bl DestroyAnimSprite
_08114A74:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8114A60
thumb_func_start sub_8114A7C
sub_8114A7C: @ 8114A7C
push {r4-r6,lr}
adds r6, r0, 0
movs r1, 0x1
bl sub_80A6980
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08114A9C
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_08114A9C:
ldr r4, =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x4]
adds r0, r1
strh r0, [r6, 0x32]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r4, [r4, 0x6]
adds r0, r4
strh r0, [r6, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r6, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r6, 0
bl StoreSpriteCallbackInData6
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8114A7C
thumb_func_start sub_8114AF0
sub_8114AF0: @ 8114AF0
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
movs r1, 0x1
bl sub_80A69CC
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A60AC
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldrb r0, [r4]
movs r1, 0x3
bl sub_80A60AC
lsls r0, 24
lsrs r7, r0, 24
bl Random2
movs r4, 0x1F
adds r5, r4, 0
ands r5, r0
bl Random2
ands r4, r0
adds r1, r5, 0
cmp r1, 0x10
ble _08114B38
movs r0, 0x10
subs r0, r1
lsls r0, 16
lsrs r5, r0, 16
_08114B38:
lsls r0, r4, 16
asrs r1, r0, 16
cmp r1, 0x10
ble _08114B48
movs r0, 0x10
subs r0, r1
lsls r0, 16
lsrs r4, r0, 16
_08114B48:
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r6, 0x2E]
mov r1, r8
adds r0, r1, r5
strh r0, [r6, 0x32]
adds r0, r7, r4
strh r0, [r6, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r6, 0x1C]
ldr r1, =move_anim_8074EE0
adds r0, r6, 0
bl StoreSpriteCallbackInData6
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8114AF0
thumb_func_start sub_8114B80
sub_8114B80: @ 8114B80
push {r4-r6,lr}
adds r5, r0, 0
ldrh r2, [r5, 0x4]
lsls r1, r2, 22
lsrs r1, 22
adds r1, 0x1
ldr r3, =0x000003ff
adds r0, r3, 0
ands r1, r0
ldr r0, =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r5, 0x4]
ldr r6, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
bne _08114BF4
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r2, [r6, 0x2]
adds r0, r2
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r3, [r6, 0x4]
adds r0, r3
strh r0, [r5, 0x22]
movs r1, 0x2
ldrsh r0, [r6, r1]
movs r2, 0x1
negs r2, r2
adds r1, r2, 0
cmp r0, 0
ble _08114BDA
movs r1, 0x1
_08114BDA:
strh r1, [r5, 0x2E]
ldr r0, =sub_8114C10
b _08114C02
.pool
_08114BF4:
ldrh r0, [r6, 0x2]
strh r0, [r5, 0x20]
ldrh r0, [r6, 0x4]
strh r0, [r5, 0x22]
negs r0, r0
strh r0, [r5, 0x26]
ldr r0, =sub_8114C4C
_08114C02:
str r0, [r5, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8114B80
thumb_func_start sub_8114C10
sub_8114C10: @ 8114C10
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x30]
adds r0, 0x1
strh r0, [r2, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _08114C2E
movs r0, 0
strh r0, [r2, 0x30]
ldrh r0, [r2, 0x2E]
ldrh r1, [r2, 0x20]
adds r0, r1
strh r0, [r2, 0x20]
_08114C2E:
ldrh r0, [r2, 0x22]
subs r0, 0x4
strh r0, [r2, 0x22]
lsls r0, 16
asrs r0, 16
movs r1, 0x4
negs r1, r1
cmp r0, r1
bge _08114C46
adds r0, r2, 0
bl DestroyAnimSprite
_08114C46:
pop {r0}
bx r0
thumb_func_end sub_8114C10
thumb_func_start sub_8114C4C
sub_8114C4C: @ 8114C4C
push {lr}
adds r3, r0, 0
movs r0, 0x2E
ldrsh r1, [r3, r0]
cmp r1, 0
beq _08114C5E
cmp r1, 0x1
beq _08114C74
b _08114CB6
_08114C5E:
ldrh r0, [r3, 0x26]
adds r0, 0x4
strh r0, [r3, 0x26]
lsls r0, 16
cmp r0, 0
blt _08114CB6
strh r1, [r3, 0x26]
ldrh r0, [r3, 0x2E]
adds r0, 0x1
strh r0, [r3, 0x2E]
b _08114CB6
_08114C74:
ldrh r0, [r3, 0x30]
adds r0, 0x1
strh r0, [r3, 0x30]
lsls r0, 16
cmp r0, 0
ble _08114CB6
movs r0, 0
strh r0, [r3, 0x30]
movs r1, 0x3E
adds r1, r3
mov r12, r1
ldrb r2, [r1]
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
mov r1, r12
strb r0, [r1]
ldrh r0, [r3, 0x32]
adds r0, 0x1
strh r0, [r3, 0x32]
lsls r0, 16
asrs r0, 16
cmp r0, 0xA
bne _08114CB6
adds r0, r3, 0
bl DestroyAnimSprite
_08114CB6:
pop {r0}
bx r0
thumb_func_end sub_8114C4C
thumb_func_start sub_8114CBC
sub_8114CBC: @ 8114CBC
push {lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r1, r0, r1
ldr r0, =gBattleAnimArgs
movs r3, 0
ldrsh r0, [r0, r3]
cmp r0, 0
bne _08114CE8
ldr r0, =sub_8114CFC
b _08114CEA
.pool
_08114CE8:
ldr r0, =sub_8114EB4
_08114CEA:
str r0, [r1]
ldr r1, [r1]
adds r0, r2, 0
bl _call_via_r1
pop {r0}
bx r0
.pool
thumb_func_end sub_8114CBC
thumb_func_start sub_8114CFC
sub_8114CFC: @ 8114CFC
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0x4
bls _08114D16
b _08114EAA
_08114D16:
lsls r0, 2
ldr r1, =_08114D28
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08114D28:
.4byte _08114D3C
.4byte _08114DC4
.4byte _08114DD4
.4byte _08114E78
.4byte _08114E8C
_08114D3C:
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1E]
cmp r0, 0x1
bne _08114D70
ldr r0, =gBattle_BG1_X
ldrh r0, [r0]
strh r0, [r4, 0x20]
ldr r0, =gBattle_BG1_Y
b _08114D78
.pool
_08114D70:
ldr r0, =gBattle_BG2_X
ldrh r0, [r0]
strh r0, [r4, 0x20]
ldr r0, =gBattle_BG2_Y
_08114D78:
ldrh r0, [r0]
strh r0, [r4, 0x22]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A6190
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
subs r1, 0x20
strh r1, [r4, 0x24]
adds r0, 0x20
strh r0, [r4, 0x26]
cmp r1, 0
bge _08114D9A
movs r0, 0
strh r0, [r4, 0x24]
_08114D9A:
ldr r2, =gSprites
movs r3, 0x1C
ldrsh r1, [r4, r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
b _08114E7E
.pool
_08114DC4:
ldrb r0, [r4, 0x1E]
movs r2, 0x24
ldrsh r1, [r4, r2]
movs r3, 0x26
ldrsh r2, [r4, r3]
bl sub_81150E0
b _08114E7E
_08114DD4:
ldrh r0, [r4, 0xC]
adds r0, 0x6
movs r1, 0x7F
ands r0, r1
strh r0, [r4, 0xC]
ldrh r0, [r4, 0x10]
adds r0, 0x1
strh r0, [r4, 0x10]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
ble _08114DF6
movs r0, 0
strh r0, [r4, 0x10]
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
_08114DF6:
ldr r1, =gSineTable
movs r2, 0xC
ldrsh r0, [r4, r2]
lsls r0, 1
adds r0, r1
ldrh r0, [r0]
lsls r0, 16
asrs r0, 20
ldrh r3, [r4, 0xE]
adds r2, r0, r3
strh r2, [r4, 0x12]
movs r1, 0x1E
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _08114E20
ldr r1, =gBattle_BG1_Y
b _08114E22
.pool
_08114E20:
ldr r1, =gBattle_BG2_Y
_08114E22:
ldrh r0, [r4, 0x22]
subs r0, r2
strh r0, [r1]
movs r2, 0x12
ldrsh r0, [r4, r2]
cmp r0, 0x3F
ble _08114EAA
ldrh r0, [r4, 0x24]
movs r1, 0x78
subs r2, r1, r0
strh r2, [r4, 0x12]
movs r3, 0x1E
ldrsh r0, [r4, r3]
cmp r0, 0x1
bne _08114E4C
ldr r1, =gBattle_BG1_Y
b _08114E4E
.pool
_08114E4C:
ldr r1, =gBattle_BG2_Y
_08114E4E:
ldrh r0, [r4, 0x22]
subs r0, r2
strh r0, [r1]
ldr r2, =gSprites
movs r1, 0x1C
ldrsh r0, [r4, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
ldrh r2, [r1, 0x20]
movs r3, 0x88
lsls r3, 1
adds r0, r3, 0
subs r0, r2
strh r0, [r1, 0x24]
b _08114E7E
.pool
_08114E78:
ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_08114E7E:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _08114EAA
.pool
_08114E8C:
adds r0, r2, 0
bl DestroyAnimVisualTask
ldr r2, =gSprites
movs r0, 0x1C
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
_08114EAA:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8114CFC
thumb_func_start sub_8114EB4
sub_8114EB4: @ 8114EB4
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, =gSprites
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
adds r3, r1, 0
adds r3, 0x3E
ldrb r0, [r3]
movs r2, 0x4
orrs r0, r2
strb r0, [r3]
movs r4, 0
strh r4, [r1, 0x24]
strh r4, [r1, 0x26]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08114F00
ldr r0, =gBattle_BG1_Y
b _08114F02
.pool
_08114F00:
ldr r0, =gBattle_BG2_Y
_08114F02:
strh r4, [r0]
adds r0, r5, 0
bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8114EB4
thumb_func_start sub_8114F14
sub_8114F14: @ 8114F14
push {lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r1, r0, r1
ldr r0, =gBattleAnimArgs
movs r3, 0
ldrsh r0, [r0, r3]
cmp r0, 0
bne _08114F40
ldr r0, =sub_8114F54
b _08114F42
.pool
_08114F40:
ldr r0, =sub_8114FD8
_08114F42:
str r0, [r1]
ldr r1, [r1]
adds r0, r2, 0
bl _call_via_r1
pop {r0}
bx r0
.pool
thumb_func_end sub_8114F14
thumb_func_start sub_8114F54
sub_8114F54: @ 8114F54
push {r4,r5,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r0, 0x8
ldrsh r5, [r4, r0]
cmp r5, 0
beq _08114F78
cmp r5, 0x1
beq _08114FCC
b _08114FD2
.pool
_08114F78:
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
ldr r3, =gSprites
movs r0, 0x1C
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
movs r0, 0x1C
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
strh r5, [r0, 0x24]
movs r1, 0x1C
ldrsh r0, [r4, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r3
ldrh r2, [r1, 0x22]
movs r0, 0xA0
subs r0, r2
strh r0, [r1, 0x26]
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _08114FD2
.pool
_08114FCC:
adds r0, r2, 0
bl DestroyAnimVisualTask
_08114FD2:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8114F54
thumb_func_start sub_8114FD8
sub_8114FD8: @ 8114FD8
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0x4
bhi _081150DA
lsls r0, 2
ldr r1, =_08115004
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08115004:
.4byte _08115018
.4byte _0811506C
.4byte _0811507A
.4byte _08115094
.4byte _081150D4
_08115018:
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1E]
cmp r0, 0x1
bne _08115044
ldr r0, =gBattle_BG1_X
b _08115046
.pool
_08115044:
ldr r0, =gBattle_BG2_X
_08115046:
ldrh r0, [r0]
strh r0, [r4, 0x20]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A6190
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
subs r1, 0x20
strh r1, [r4, 0x24]
adds r0, 0x20
strh r0, [r4, 0x26]
b _081150C2
.pool
_0811506C:
ldrb r0, [r4, 0x1E]
movs r1, 0x26
ldrsh r2, [r4, r1]
movs r1, 0
bl sub_81150E0
b _081150C2
_0811507A:
ldr r2, =gSprites
movs r0, 0x1C
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x60
strh r1, [r0, 0x26]
b _081150C2
.pool
_08115094:
ldr r2, =gSprites
movs r0, 0x1C
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x26]
subs r1, 0x8
strh r1, [r0, 0x26]
movs r0, 0x1C
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x26
ldrsh r0, [r0, r1]
cmp r0, 0
bne _081150DA
ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_081150C2:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _081150DA
.pool
_081150D4:
adds r0, r2, 0
bl DestroyAnimVisualTask
_081150DA:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8114FD8
thumb_func_start sub_81150E0
sub_81150E0: @ 81150E0
push {r4-r6,lr}
sub sp, 0xC
lsls r0, 24
lsrs r0, 24
lsls r1, 16
lsrs r1, 16
lsls r2, 16
lsrs r4, r2, 16
cmp r0, 0x1
bne _08115104
ldr r0, =gBattle_BG1_X
ldrh r3, [r0]
ldr r0, =0x04000014
b _0811510A
.pool
_08115104:
ldr r0, =gBattle_BG2_X
ldrh r3, [r0]
ldr r0, =0x04000018
_0811510A:
str r0, [sp]
lsls r0, r1, 16
cmp r0, 0
bge _08115114
movs r1, 0
_08115114:
lsls r2, r1, 16
lsls r0, r4, 16
asrs r4, r0, 16
cmp r2, r0
bge _08115140
ldr r5, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
_08115126:
asrs r2, 16
lsls r1, r2, 1
adds r0, r1, r5
strh r3, [r0]
adds r1, r6
strh r3, [r1]
adds r2, 0x1
lsls r2, 16
lsrs r1, r2, 16
lsls r2, r1, 16
asrs r0, r2, 16
cmp r0, r4
blt _08115126
_08115140:
lsls r1, 16
asrs r0, r1, 16
cmp r0, 0x9F
bgt _0811516E
ldr r4, =gScanlineEffectRegBuffers
lsls r0, r3, 16
asrs r0, 16
adds r3, r0, 0
adds r3, 0xF0
movs r0, 0xF0
lsls r0, 3
adds r5, r4, r0
_08115158:
asrs r2, r1, 16
lsls r1, r2, 1
adds r0, r1, r4
strh r3, [r0]
adds r1, r5
strh r3, [r1]
adds r2, 0x1
lsls r1, r2, 16
asrs r0, r1, 16
cmp r0, 0x9F
ble _08115158
_0811516E:
ldr r0, =0xa2600001
str r0, [sp, 0x4]
mov r1, sp
movs r2, 0
movs r0, 0x1
strb r0, [r1, 0x8]
mov r0, sp
strb r2, [r0, 0x9]
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
bl ScanlineEffect_SetParams
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81150E0
thumb_func_start sub_81151A0
sub_81151A0: @ 81151A0
push {r4-r7,lr}
adds r5, r0, 0
ldr r0, =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r7, r0, 0
cmp r1, 0
bne _081151BC
ldr r0, =gBattleAnimAttacker
b _081151BE
.pool
_081151BC:
ldr r0, =gBattleAnimTarget
_081151BE:
ldrb r4, [r0]
movs r6, 0x18
adds r1, r7, 0
movs r2, 0x2
ldrsh r0, [r1, r2]
cmp r0, 0x1
bne _081151DA
negs r0, r6
lsls r0, 16
lsrs r6, r0, 16
movs r2, 0x4
ldrsh r0, [r1, r2]
negs r0, r0
strh r0, [r1, 0x4]
_081151DA:
adds r0, r4, 0
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r6
strh r0, [r5, 0x20]
adds r0, r4, 0
bl sub_80A6190
lsls r0, 24
lsrs r0, 24
adds r0, 0x1E
strh r0, [r5, 0x22]
ldrh r1, [r7, 0xA]
strh r1, [r5, 0x2E]
ldrh r1, [r7, 0x4]
ldrh r2, [r5, 0x20]
adds r1, r2
strh r1, [r5, 0x32]
ldrh r1, [r7, 0x6]
adds r0, r1
strh r0, [r5, 0x36]
ldrh r0, [r7, 0x8]
strh r0, [r5, 0x38]
adds r0, r5, 0
bl sub_80A68D4
ldr r0, =sub_8115228
str r0, [r5, 0x1C]
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81151A0
thumb_func_start sub_8115228
sub_8115228: @ 8115228
push {r4,lr}
adds r4, r0, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
beq _0811523C
adds r0, r4, 0
bl DestroyAnimSprite
_0811523C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8115228
thumb_func_start sub_8115244
sub_8115244: @ 8115244
push {r4-r6,lr}
adds r6, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08115260
ldr r0, =gBattleAnimAttacker
b _08115262
.pool
_08115260:
ldr r0, =gBattleAnimTarget
_08115262:
ldrb r5, [r0]
adds r0, r5, 0
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldr r2, =0x0000fff0
adds r0, r2
ldr r4, =gBattleAnimArgs
movs r3, 0x2
ldrsh r1, [r4, r3]
lsls r1, 5
adds r0, r1
strh r0, [r6, 0x20]
adds r0, r5, 0
bl sub_80A6190
lsls r0, 24
lsrs r0, 24
adds r0, 0x20
strh r0, [r6, 0x22]
ldrh r2, [r6, 0x4]
lsls r1, r2, 22
lsrs r1, 22
movs r3, 0x2
ldrsh r0, [r4, r3]
lsls r0, 3
adds r1, r0
ldr r3, =0x000003ff
adds r0, r3, 0
ands r1, r0
ldr r0, =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r6, 0x4]
ldr r1, =DestroyAnimSprite
adds r0, r6, 0
bl StoreSpriteCallbackInData6
ldrh r0, [r4, 0x4]
strh r0, [r6, 0x2E]
ldr r0, =sub_80A64B0
str r0, [r6, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8115244
thumb_func_start sub_81152DC
sub_81152DC: @ 81152DC
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
ldr r0, =gBattleAnimArgs
ldrh r2, [r0, 0x2]
movs r3, 0x2
ldrsh r1, [r0, r3]
adds r6, r0, 0
cmp r1, 0
beq _08115308
adds r0, r2, 0x3
b _08115314
.pool
_08115308:
ldr r0, =gAnimMovePower
ldrh r0, [r0]
movs r1, 0xA
bl __udivsi3
adds r0, 0x3
_08115314:
strh r0, [r4, 0x26]
strh r0, [r4, 0x24]
adds r1, r6, 0
ldrh r0, [r1, 0x4]
strh r0, [r4, 0xE]
movs r2, 0
ldrsh r0, [r1, r2]
cmp r0, 0x4
beq _08115340
cmp r0, 0x5
bne _08115380
ldr r0, =gBattle_BG3_X
ldrh r0, [r0]
strh r0, [r4, 0x22]
ldr r0, =sub_81153AC
b _0811539E
.pool
_08115340:
movs r0, 0
strh r0, [r4, 0x22]
movs r5, 0
_08115346:
lsls r0, r5, 24
lsrs r0, 24
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08115370
movs r3, 0x22
ldrsh r0, [r4, r3]
adds r0, 0x9
lsls r0, 1
adds r1, r4, 0
adds r1, 0x8
adds r1, r0
ldr r0, =gBattlerSpriteIds
adds r0, r5, r0
ldrb r0, [r0]
strh r0, [r1]
ldrh r0, [r4, 0x22]
adds r0, 0x1
strh r0, [r4, 0x22]
_08115370:
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0x3
bls _08115346
b _0811539C
.pool
_08115380:
ldrb r0, [r6]
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1A]
cmp r0, 0xFF
bne _08115398
adds r0, r5, 0
bl DestroyAnimVisualTask
b _081153A0
_08115398:
movs r0, 0x1
strh r0, [r4, 0x22]
_0811539C:
ldr r0, =sub_81154A4
_0811539E:
str r0, [r4]
_081153A0:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81152DC
thumb_func_start sub_81153AC
sub_81153AC: @ 81153AC
push {lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r3, r0, r1
movs r0, 0x8
ldrsh r1, [r3, r0]
cmp r1, 0x1
beq _08115430
cmp r1, 0x1
bgt _081153D4
cmp r1, 0
beq _081153DA
b _0811549C
.pool
_081153D4:
cmp r1, 0x2
beq _08115490
b _0811549C
_081153DA:
ldrh r0, [r3, 0xA]
adds r0, 0x1
strh r0, [r3, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _0811549C
strh r1, [r3, 0xA]
ldrh r1, [r3, 0xC]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _08115404
ldr r1, =gBattle_BG3_X
ldrh r0, [r3, 0x26]
ldrh r2, [r3, 0x22]
adds r0, r2
strh r0, [r1]
b _0811540E
.pool
_08115404:
ldr r0, =gBattle_BG3_X
ldrh r1, [r3, 0x22]
ldrh r2, [r3, 0x26]
subs r1, r2
strh r1, [r0]
_0811540E:
ldrh r0, [r3, 0xC]
adds r0, 0x1
strh r0, [r3, 0xC]
lsls r0, 16
asrs r0, 16
movs r2, 0xE
ldrsh r1, [r3, r2]
cmp r0, r1
bne _0811549C
movs r0, 0
strh r0, [r3, 0xC]
ldrh r0, [r3, 0x24]
subs r0, 0x1
strh r0, [r3, 0x24]
b _08115484
.pool
_08115430:
ldrh r0, [r3, 0xA]
adds r0, 0x1
strh r0, [r3, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _0811549C
movs r0, 0
strh r0, [r3, 0xA]
ldrh r0, [r3, 0xC]
ands r1, r0
cmp r1, 0
bne _0811545C
ldr r1, =gBattle_BG3_X
ldrh r0, [r3, 0x24]
ldrh r2, [r3, 0x22]
adds r0, r2
strh r0, [r1]
b _08115466
.pool
_0811545C:
ldr r0, =gBattle_BG3_X
ldrh r1, [r3, 0x22]
ldrh r2, [r3, 0x24]
subs r1, r2
strh r1, [r0]
_08115466:
ldrh r0, [r3, 0xC]
adds r0, 0x1
strh r0, [r3, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bne _0811549C
movs r0, 0
strh r0, [r3, 0xC]
ldrh r0, [r3, 0x24]
subs r0, 0x1
strh r0, [r3, 0x24]
lsls r0, 16
cmp r0, 0
bne _0811549C
_08115484:
ldrh r0, [r3, 0x8]
adds r0, 0x1
strh r0, [r3, 0x8]
b _0811549C
.pool
_08115490:
ldr r1, =gBattle_BG3_X
ldrh r0, [r3, 0x22]
strh r0, [r1]
adds r0, r2, 0
bl DestroyAnimVisualTask
_0811549C:
pop {r0}
bx r0
.pool
thumb_func_end sub_81153AC
thumb_func_start sub_81154A4
sub_81154A4: @ 81154A4
push {r4-r7,lr}
lsls r0, 24
lsrs r3, r0, 24
lsls r0, r3, 2
adds r0, r3
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r0, 0x8
ldrsh r5, [r4, r0]
cmp r5, 0x1
beq _08115504
cmp r5, 0x1
bgt _081154CC
cmp r5, 0
beq _081154D2
b _0811557E
.pool
_081154CC:
cmp r5, 0x2
beq _08115540
b _0811557E
_081154D2:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _0811557E
strh r5, [r4, 0xA]
adds r0, r4, 0
bl sub_8115588
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
lsls r0, 16
asrs r0, 16
movs r2, 0xE
ldrsh r1, [r4, r2]
cmp r0, r1
bne _0811557E
strh r5, [r4, 0xC]
ldrh r0, [r4, 0x24]
subs r0, 0x1
strh r0, [r4, 0x24]
b _08115538
_08115504:
ldrh r0, [r4, 0xA]
adds r0, 0x1
movs r5, 0
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _0811557E
strh r5, [r4, 0xA]
adds r0, r4, 0
bl sub_8115588
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bne _0811557E
strh r5, [r4, 0xC]
ldrh r0, [r4, 0x24]
subs r0, 0x1
strh r0, [r4, 0x24]
lsls r0, 16
cmp r0, 0
bne _0811557E
_08115538:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _0811557E
_08115540:
movs r2, 0
movs r7, 0x22
ldrsh r0, [r4, r7]
cmp r2, r0
bge _08115578
ldr r0, =gSprites
mov r12, r0
adds r5, r4, 0
adds r5, 0x8
movs r6, 0
_08115554:
adds r0, r2, 0
adds r0, 0x9
lsls r0, 1
adds r0, r5, r0
movs r7, 0
ldrsh r1, [r0, r7]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r12
strh r6, [r0, 0x24]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
movs r1, 0x22
ldrsh r0, [r4, r1]
cmp r2, r0
blt _08115554
_08115578:
adds r0, r3, 0
bl DestroyAnimVisualTask
_0811557E:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81154A4
thumb_func_start sub_8115588
sub_8115588: @ 8115588
push {r4-r7,lr}
adds r3, r0, 0
ldrh r1, [r3, 0xC]
movs r4, 0x1
adds r0, r4, 0
ands r0, r1
cmp r0, 0
bne _081155B0
movs r0, 0x24
ldrsh r1, [r3, r0]
lsrs r0, r1, 31
adds r1, r0
asrs r1, 1
ldrh r2, [r3, 0x24]
adds r0, r4, 0
ands r0, r2
adds r1, r0
lsls r1, 16
lsrs r4, r1, 16
b _081155C0
_081155B0:
movs r1, 0x24
ldrsh r0, [r3, r1]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
negs r0, r0
lsls r0, 16
lsrs r4, r0, 16
_081155C0:
movs r2, 0
movs r7, 0x22
ldrsh r0, [r3, r7]
cmp r2, r0
bge _081155F4
ldr r6, =gSprites
adds r5, r3, 0
adds r5, 0x8
_081155D0:
adds r0, r2, 0
adds r0, 0x9
lsls r0, 1
adds r0, r5, r0
movs r7, 0
ldrsh r1, [r0, r7]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r4, [r0, 0x24]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
movs r1, 0x22
ldrsh r0, [r3, r1]
cmp r2, r0
blt _081155D0
_081155F4:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8115588
thumb_func_start AnimTask_IsPowerOver99
AnimTask_IsPowerOver99: @ 8115600
push {lr}
lsls r0, 24
lsrs r1, r0, 24
ldr r3, =gBattleAnimArgs
movs r2, 0
ldr r0, =gAnimMovePower
ldrh r0, [r0]
cmp r0, 0x63
bls _08115614
movs r2, 0x1
_08115614:
strh r2, [r3, 0x1E]
adds r0, r1, 0
bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_IsPowerOver99
thumb_func_start sub_8115628
sub_8115628: @ 8115628
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
ldr r2, =gBattleAnimArgs
ldrh r1, [r2]
movs r0, 0x1
ands r0, r1
adds r6, r2, 0
cmp r0, 0
beq _08115648
ldr r0, =gBattleAnimTarget
b _0811564A
.pool
_08115648:
ldr r0, =gBattleAnimAttacker
_0811564A:
ldrb r0, [r0]
adds r5, r0, 0
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0x1
ble _0811565A
movs r0, 0x2
eors r5, r0
_0811565A:
ldr r0, =sub_81156D0
ldrb r1, [r6, 0x2]
bl CreateTask
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, =gTasks
adds r4, r0
adds r0, r5, 0
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r1, 0x20
subs r1, r0
ldr r2, =0x000001ff
adds r0, r2, 0
ands r1, r0
strh r1, [r4, 0xA]
adds r0, r5, 0
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r1, 0x40
subs r1, r0
movs r0, 0xFF
ands r1, r0
strh r1, [r4, 0xC]
ldr r2, =gBattle_BG3_X
ldrh r0, [r4, 0xA]
strh r0, [r2]
ldr r0, =gBattle_BG3_Y
strh r1, [r0]
ldrh r0, [r6, 0x4]
strh r0, [r4, 0xE]
adds r0, r7, 0
bl DestroyAnimVisualTask
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8115628
thumb_func_start sub_81156D0
sub_81156D0: @ 81156D0
push {r4,lr}
lsls r0, 24
lsrs r3, r0, 24
lsls r0, r3, 2
adds r0, r3
lsls r0, 3
ldr r1, =gTasks
adds r2, r0, r1
ldr r0, =gBattleAnimArgs
movs r4, 0xE
ldrsh r1, [r0, r4]
movs r4, 0xE
ldrsh r0, [r2, r4]
cmp r1, r0
bne _08115710
ldr r0, =gBattle_BG3_X
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_BG3_Y
strh r1, [r0]
adds r0, r3, 0
bl DestroyTask
b _0811571C
.pool
_08115710:
ldr r1, =gBattle_BG3_X
ldrh r0, [r2, 0xA]
strh r0, [r1]
ldr r1, =gBattle_BG3_Y
ldrh r0, [r2, 0xC]
strh r0, [r1]
_0811571C:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81156D0
thumb_func_start sub_811572C
sub_811572C: @ 811572C
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimArgs
ldrh r0, [r5]
ldrh r1, [r4, 0x20]
adds r0, r1
strh r0, [r4, 0x20]
ldrh r0, [r5, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _0811576C
ldrh r0, [r5, 0x6]
negs r0, r0
strh r0, [r4, 0x30]
movs r0, 0x1
strh r0, [r4, 0x36]
b _0811577A
.pool
_0811576C:
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x30]
strh r1, [r4, 0x36]
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAnim
_0811577A:
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x8]
strh r0, [r4, 0x34]
ldr r1, =sub_8115798
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_811572C
thumb_func_start sub_8115798
sub_8115798: @ 8115798
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
movs r1, 0x1E
bl Cos
strh r0, [r4, 0x24]
movs r2, 0x2E
ldrsh r0, [r4, r2]
movs r1, 0xA
bl Sin
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x2E]
cmp r0, 0x7F
bhi _081157CA
ldrb r0, [r4, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r0
movs r0, 0x4
orrs r1, r0
strb r1, [r4, 0x5]
b _081157D2
_081157CA:
ldrb r0, [r4, 0x5]
movs r1, 0xC
orrs r0, r1
strb r0, [r4, 0x5]
_081157D2:
ldrh r0, [r4, 0x30]
ldrh r1, [r4, 0x2E]
adds r0, r1
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x32]
adds r0, 0x1
strh r0, [r4, 0x32]
lsls r0, 16
asrs r0, 16
movs r2, 0x34
ldrsh r1, [r4, r2]
cmp r0, r1
bne _081157F6
adds r0, r4, 0
bl DestroyAnimSprite
_081157F6:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8115798
thumb_func_start sub_81157FC
sub_81157FC: @ 81157FC
push {r4,r5,lr}
sub sp, 0x4
adds r5, r0, 0
ldr r4, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
bl sub_811583C
movs r1, 0x2
ldrsb r1, [r4, r1]
ldrb r2, [r4, 0x4]
ldrb r3, [r4, 0x6]
ldrh r4, [r4, 0x8]
str r4, [sp]
bl BeginNormalPaletteFade
adds r2, r5, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldr r0, =sub_8115884
str r0, [r5, 0x1C]
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81157FC
thumb_func_start sub_811583C
sub_811583C: @ 811583C
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0xC
lsls r0, 16
lsrs r0, 16
movs r4, 0x1
mov r8, r0
mov r1, r8
ands r1, r4
mov r8, r1
lsls r0, 16
asrs r1, r0, 17
ands r1, r4
asrs r2, r0, 18
ands r2, r4
asrs r3, r0, 19
ands r3, r4
asrs r6, r0, 20
ands r6, r4
asrs r5, r0, 21
ands r5, r4
asrs r0, 22
ands r0, r4
str r6, [sp]
str r5, [sp, 0x4]
str r0, [sp, 0x8]
mov r0, r8
bl sub_80A75AC
add sp, 0xC
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_811583C
thumb_func_start sub_8115884
sub_8115884: @ 8115884
push {lr}
adds r2, r0, 0
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0811589A
adds r0, r2, 0
bl DestroyAnimSprite
_0811589A:
pop {r0}
bx r0
.pool
thumb_func_end sub_8115884
thumb_func_start sub_81158A4
sub_81158A4: @ 81158A4
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, =gBattleAnimArgs
ldrh r0, [r4, 0x2]
strh r0, [r5, 0x2E]
strh r0, [r5, 0x30]
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x32]
ldrh r0, [r4, 0x6]
strh r0, [r5, 0x34]
ldrh r0, [r4, 0x8]
strh r0, [r5, 0x36]
ldrh r0, [r4, 0xA]
strh r0, [r5, 0x38]
ldrh r0, [r4, 0xC]
strh r0, [r5, 0x3A]
ldrh r0, [r4]
strh r0, [r5, 0x3C]
movs r1, 0x3C
ldrsh r0, [r5, r1]
bl sub_811583C
ldrb r1, [r4, 0x8]
ldrh r2, [r4, 0x6]
bl BlendPalettes
adds r2, r5, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldr r0, =sub_81158F8
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81158A4
thumb_func_start sub_81158F8
sub_81158F8: @ 81158F8
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x2E]
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r0, 0
ble _0811590C
subs r0, r1, 0x1
strh r0, [r4, 0x2E]
b _0811597C
_0811590C:
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0811597C
movs r1, 0x32
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08115930
ldr r0, =sub_8115984
str r0, [r4, 0x1C]
b _0811597C
.pool
_08115930:
movs r2, 0x3C
ldrsh r0, [r4, r2]
bl sub_811583C
adds r3, r0, 0
ldrh r1, [r4, 0x30]
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _08115956
ldrh r1, [r4, 0x36]
lsls r1, 24
lsrs r1, 24
ldrh r2, [r4, 0x34]
adds r0, r3, 0
bl BlendPalettes
b _08115964
_08115956:
ldrh r1, [r4, 0x3A]
lsls r1, 24
lsrs r1, 24
ldrh r2, [r4, 0x38]
adds r0, r3, 0
bl BlendPalettes
_08115964:
ldrh r0, [r4, 0x30]
movs r2, 0x80
lsls r2, 1
adds r1, r2, 0
eors r0, r1
strh r0, [r4, 0x30]
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x32]
subs r0, 0x1
strh r0, [r4, 0x32]
_0811597C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81158F8
thumb_func_start sub_8115984
sub_8115984: @ 8115984
push {r4,lr}
adds r4, r0, 0
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081159AA
movs r1, 0x3C
ldrsh r0, [r4, r1]
bl sub_811583C
movs r1, 0
movs r2, 0
bl BlendPalettes
adds r0, r4, 0
bl DestroyAnimSprite
_081159AA:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8115984
thumb_func_start sub_81159B4
sub_81159B4: @ 81159B4
push {r4,lr}
adds r4, r0, 0
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
movs r2, 0
strh r0, [r4, 0x20]
ldrh r0, [r1, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
strh r2, [r4, 0x2E]
movs r0, 0xA
strh r0, [r4, 0x30]
movs r0, 0x8
strh r0, [r4, 0x32]
movs r0, 0x28
strh r0, [r4, 0x34]
movs r0, 0x70
strh r0, [r4, 0x36]
strh r2, [r4, 0x38]
ldr r1, =move_anim_8074EE0
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r1, =sub_80A634C
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81159B4
thumb_func_start sub_8115A04
sub_8115A04: @ 8115A04
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r1, =gTasks
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
adds r4, r1
ldr r3, =gBattleAnimArgs
ldrh r1, [r3]
movs r5, 0
strh r1, [r4, 0x8]
ldrh r1, [r3, 0x2]
strh r1, [r4, 0xA]
ldrh r1, [r3, 0x4]
strh r1, [r4, 0xC]
ldrh r1, [r3, 0x6]
strh r1, [r4, 0xE]
ldrh r2, [r3, 0x8]
strh r2, [r4, 0x10]
ldrh r1, [r3, 0xA]
strh r1, [r4, 0x12]
strh r5, [r4, 0x18]
lsls r2, 24
lsrs r2, 24
movs r1, 0
bl sub_8115A54
ldr r0, =sub_8115AA4
str r0, [r4]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8115A04
thumb_func_start sub_8115A54
sub_8115A54: @ 8115A54
push {r4-r6,lr}
sub sp, 0x4
adds r5, r1, 0
adds r6, r2, 0
lsls r0, 24
lsrs r0, 24
lsls r5, 24
lsrs r5, 24
lsls r6, 24
lsrs r6, 24
ldr r1, =gTasks
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
adds r4, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
bl sub_811583C
movs r1, 0xA
ldrsb r1, [r4, r1]
ldrh r2, [r4, 0x12]
str r2, [sp]
adds r2, r5, 0
adds r3, r6, 0
bl BeginNormalPaletteFade
ldrh r0, [r4, 0xC]
subs r0, 0x1
strh r0, [r4, 0xC]
ldrh r0, [r4, 0x18]
movs r1, 0x1
eors r0, r1
strh r0, [r4, 0x18]
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8115A54
thumb_func_start sub_8115AA4
sub_8115AA4: @ 8115AA4
push {r4-r6,lr}
lsls r0, 24
lsrs r3, r0, 24
adds r4, r3, 0
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08115B06
ldr r1, =gTasks
lsls r2, r3, 2
adds r0, r2, r3
lsls r0, 3
adds r3, r0, r1
movs r5, 0xC
ldrsh r0, [r3, r5]
adds r6, r1, 0
adds r5, r2, 0
cmp r0, 0
ble _08115B00
movs r1, 0x18
ldrsh r0, [r3, r1]
cmp r0, 0
bne _08115AE4
ldrb r1, [r3, 0xE]
ldrb r2, [r3, 0x10]
b _08115AE8
.pool
_08115AE4:
ldrb r1, [r3, 0x10]
ldrb r2, [r3, 0xE]
_08115AE8:
adds r0, r5, r4
lsls r0, 3
adds r0, r6
movs r3, 0xC
ldrsh r0, [r0, r3]
cmp r0, 0x1
bne _08115AF8
movs r2, 0
_08115AF8:
adds r0, r4, 0
bl sub_8115A54
b _08115B06
_08115B00:
adds r0, r4, 0
bl DestroyAnimVisualTask
_08115B06:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8115AA4
thumb_func_start sub_8115B0C
sub_8115B0C: @ 8115B0C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r6, r0, 24
movs r5, 0
ldr r3, =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r0, r3
ldr r2, =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r0, 0x8]
ldrh r1, [r2, 0x2]
strh r1, [r0, 0xA]
ldrh r1, [r2, 0x4]
strh r1, [r0, 0xC]
ldrh r1, [r2, 0x6]
strh r1, [r0, 0xE]
ldrh r1, [r2, 0x8]
strh r1, [r0, 0x10]
ldrh r1, [r2, 0xA]
strh r1, [r0, 0x12]
strh r5, [r0, 0x18]
movs r4, 0
ldr r0, =gBattlersCount
ldrb r1, [r0]
mov r9, r3
mov r8, r2
cmp r5, r1
bge _08115B74
ldr r0, =gBattleAnimAttacker
ldrb r3, [r0]
ldr r7, =gBattleAnimTarget
movs r0, 0x1
mov r12, r0
adds r2, r1, 0
_08115B5A:
cmp r4, r3
beq _08115B6E
ldrb r1, [r7]
cmp r4, r1
beq _08115B6E
adds r1, r4, 0
adds r1, 0x10
mov r0, r12
lsls r0, r1
orrs r5, r0
_08115B6E:
adds r4, 0x1
cmp r4, r2
blt _08115B5A
_08115B74:
mov r2, r8
movs r1, 0
ldrsh r0, [r2, r1]
cmp r0, 0x1
bne _08115B82
movs r0, 0xE
orrs r5, r0
_08115B82:
lsls r4, r6, 2
adds r4, r6
lsls r4, 3
add r4, r9
lsrs r0, r5, 16
strh r0, [r4, 0x1A]
movs r0, 0xFF
ands r5, r0
strh r5, [r4, 0x1C]
ldrb r2, [r4, 0x10]
adds r0, r6, 0
movs r1, 0
bl sub_8115BC8
ldr r0, =sub_8115C18
str r0, [r4]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8115B0C
thumb_func_start sub_8115BC8
sub_8115BC8: @ 8115BC8
push {r4,r5,lr}
sub sp, 0x4
adds r5, r1, 0
adds r3, r2, 0
lsls r0, 24
lsrs r0, 24
lsls r5, 24
lsrs r5, 24
lsls r3, 24
lsrs r3, 24
ldr r1, =gTasks
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
adds r4, r1
ldrh r0, [r4, 0x1A]
lsls r0, 16
ldrh r1, [r4, 0x1C]
orrs r0, r1
movs r1, 0xA
ldrsb r1, [r4, r1]
ldrh r2, [r4, 0x12]
str r2, [sp]
adds r2, r5, 0
bl BeginNormalPaletteFade
ldrh r0, [r4, 0xC]
subs r0, 0x1
strh r0, [r4, 0xC]
ldrh r0, [r4, 0x18]
movs r1, 0x1
eors r0, r1
strh r0, [r4, 0x18]
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8115BC8
thumb_func_start sub_8115C18
sub_8115C18: @ 8115C18
push {r4-r6,lr}
lsls r0, 24
lsrs r3, r0, 24
adds r4, r3, 0
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08115C7A
ldr r1, =gTasks
lsls r2, r3, 2
adds r0, r2, r3
lsls r0, 3
adds r3, r0, r1
movs r5, 0xC
ldrsh r0, [r3, r5]
adds r6, r1, 0
adds r5, r2, 0
cmp r0, 0
ble _08115C74
movs r1, 0x18
ldrsh r0, [r3, r1]
cmp r0, 0
bne _08115C58
ldrb r1, [r3, 0xE]
ldrb r2, [r3, 0x10]
b _08115C5C
.pool
_08115C58:
ldrb r1, [r3, 0x10]
ldrb r2, [r3, 0xE]
_08115C5C:
adds r0, r5, r4
lsls r0, 3
adds r0, r6
movs r3, 0xC
ldrsh r0, [r0, r3]
cmp r0, 0x1
bne _08115C6C
movs r2, 0
_08115C6C:
adds r0, r4, 0
bl sub_8115BC8
b _08115C7A
_08115C74:
adds r0, r4, 0
bl DestroyAnimVisualTask
_08115C7A:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8115C18
thumb_func_start sub_8115C80
sub_8115C80: @ 8115C80
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r1, =gTasks
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
adds r4, r1
ldr r3, =gBattleAnimArgs
ldrh r1, [r3]
movs r5, 0
strh r1, [r4, 0x8]
ldrh r1, [r3, 0x2]
strh r1, [r4, 0xA]
ldrh r1, [r3, 0x4]
strh r1, [r4, 0xC]
ldrh r1, [r3, 0x6]
strh r1, [r4, 0xE]
ldrh r2, [r3, 0x8]
strh r2, [r4, 0x10]
ldrh r1, [r3, 0xA]
strh r1, [r4, 0x12]
strh r5, [r4, 0x18]
lsls r2, 24
lsrs r2, 24
movs r1, 0
bl sub_8115CD0
ldr r0, =sub_8115D2C
str r0, [r4]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8115C80
thumb_func_start sub_8115CD0
sub_8115CD0: @ 8115CD0
push {r4-r6,lr}
sub sp, 0x4
adds r5, r1, 0
adds r6, r2, 0
lsls r0, 24
lsrs r0, 24
lsls r5, 24
lsrs r5, 24
lsls r6, 24
lsrs r6, 24
ldr r1, =gTasks
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
adds r4, r1
ldrh r0, [r4, 0x8]
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
adds r0, 0x10
movs r2, 0x1
lsls r2, r0
movs r1, 0xA
ldrsb r1, [r4, r1]
ldrh r0, [r4, 0x12]
str r0, [sp]
adds r0, r2, 0
adds r2, r5, 0
adds r3, r6, 0
bl BeginNormalPaletteFade
ldrh r0, [r4, 0xC]
subs r0, 0x1
strh r0, [r4, 0xC]
ldrh r0, [r4, 0x18]
movs r1, 0x1
eors r0, r1
strh r0, [r4, 0x18]
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8115CD0
thumb_func_start sub_8115D2C
sub_8115D2C: @ 8115D2C
push {r4-r6,lr}
lsls r0, 24
lsrs r3, r0, 24
adds r4, r3, 0
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08115D8E
ldr r1, =gTasks
lsls r2, r3, 2
adds r0, r2, r3
lsls r0, 3
adds r3, r0, r1
movs r5, 0xC
ldrsh r0, [r3, r5]
adds r6, r1, 0
adds r5, r2, 0
cmp r0, 0
ble _08115D88
movs r1, 0x18
ldrsh r0, [r3, r1]
cmp r0, 0
bne _08115D6C
ldrb r1, [r3, 0xE]
ldrb r2, [r3, 0x10]
b _08115D70
.pool
_08115D6C:
ldrb r1, [r3, 0x10]
ldrb r2, [r3, 0xE]
_08115D70:
adds r0, r5, r4
lsls r0, 3
adds r0, r6
movs r3, 0xC
ldrsh r0, [r0, r3]
cmp r0, 0x1
bne _08115D80
movs r2, 0
_08115D80:
adds r0, r4, 0
bl sub_8115CD0
b _08115D8E
_08115D88:
adds r0, r4, 0
bl DestroyAnimVisualTask
_08115D8E:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8115D2C
thumb_func_start sub_8115D94
sub_8115D94: @ 8115D94
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
ldr r1, =gTasks
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
adds r4, r1
ldr r5, =gBattleAnimArgs
ldrh r0, [r5, 0x2]
strh r0, [r4, 0x8]
ldrh r0, [r5, 0x2]
strh r0, [r4, 0xA]
ldrh r0, [r5, 0x4]
strh r0, [r4, 0xC]
ldrh r0, [r5, 0x6]
strh r0, [r4, 0xE]
ldrh r0, [r5, 0x8]
strh r0, [r4, 0x10]
ldrh r0, [r5, 0xA]
strh r0, [r4, 0x12]
ldrh r0, [r5, 0xC]
strh r0, [r4, 0x14]
ldrh r0, [r5]
strh r0, [r4, 0x16]
ldrh r0, [r5]
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
adds r0, 0x10
movs r1, 0x1
lsls r1, r0
ldrb r3, [r5, 0x8]
ldrh r0, [r5, 0x6]
str r0, [sp]
adds r0, r1, 0
movs r1, 0
adds r2, r3, 0
bl BeginNormalPaletteFade
ldr r0, =sub_8115E00
str r0, [r4]
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8115D94
thumb_func_start sub_8115E00
sub_8115E00: @ 8115E00
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r4, r0, r1
ldrh r1, [r4, 0x8]
movs r2, 0x8
ldrsh r0, [r4, r2]
cmp r0, 0
ble _08115E28
subs r0, r1, 0x1
strh r0, [r4, 0x8]
b _08115EAC
.pool
_08115E28:
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08115EAC
movs r3, 0xC
ldrsh r0, [r4, r3]
cmp r0, 0
bne _08115E4C
ldr r0, =sub_8115EB8
str r0, [r4]
b _08115EAC
.pool
_08115E4C:
ldrh r0, [r4, 0x16]
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
adds r0, 0x10
movs r2, 0x1
lsls r2, r0
ldrh r1, [r4, 0xA]
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _08115E7A
ldrb r3, [r4, 0x10]
ldrh r0, [r4, 0xE]
str r0, [sp]
adds r0, r2, 0
movs r1, 0
adds r2, r3, 0
bl BeginNormalPaletteFade
b _08115E8A
_08115E7A:
ldrb r3, [r4, 0x14]
ldrh r0, [r4, 0x12]
str r0, [sp]
adds r0, r2, 0
movs r1, 0
adds r2, r3, 0
bl BeginNormalPaletteFade
_08115E8A:
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0xA]
movs r3, 0x80
lsls r3, 1
adds r2, r3, 0
eors r0, r2
strh r0, [r1, 0xA]
movs r2, 0xFF
ands r0, r2
strh r0, [r1, 0x8]
ldrh r0, [r1, 0xC]
subs r0, 0x1
strh r0, [r1, 0xC]
_08115EAC:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8115E00
thumb_func_start sub_8115EB8
sub_8115EB8: @ 8115EB8
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
bne _08115EFE
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldrh r0, [r0, 0x16]
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
adds r0, 0x10
movs r1, 0x1
lsls r1, r0
str r5, [sp]
adds r0, r1, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl BeginNormalPaletteFade
adds r0, r4, 0
bl DestroyAnimVisualTask
_08115EFE:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8115EB8
thumb_func_start sub_8115F10
sub_8115F10: @ 8115F10
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0xC
lsls r0, 24
lsrs r0, 24
mov r8, r0
movs r2, 0
ldr r0, =gBattleAnimAttacker
ldrb r6, [r0]
ldr r0, =gBattleAnimTarget
ldrb r7, [r0]
ldr r4, =gBattleAnimArgs
ldrh r1, [r4]
movs r5, 0x80
lsls r5, 1
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _08115F4A
str r2, [sp]
str r2, [sp, 0x4]
str r2, [sp, 0x8]
movs r0, 0x1
movs r1, 0
movs r3, 0
bl sub_80A75AC
adds r2, r0, 0
_08115F4A:
ldrh r1, [r4, 0x2]
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _08115F5C
movs r0, 0x80
lsls r0, 9
lsls r0, r6
orrs r2, r0
_08115F5C:
ldrh r1, [r4, 0x4]
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _08115F6E
movs r0, 0x80
lsls r0, 9
lsls r0, r7
orrs r2, r0
_08115F6E:
adds r0, r2, 0
bl InvertPlttBuffer
mov r0, r8
bl DestroyAnimVisualTask
add sp, 0xC
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8115F10
thumb_func_start sub_8115F94
sub_8115F94: @ 8115F94
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r0, 24
mov r8, r0
movs r5, 0
ldr r1, =gTasks
lsls r0, 2
add r0, r8
lsls r0, 3
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08115FD6
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0xC]
ldrh r0, [r1, 0x2]
strh r0, [r4, 0xE]
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x10]
ldrh r0, [r1, 0x6]
strh r0, [r4, 0xA]
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x12]
ldrh r0, [r1, 0xA]
strh r0, [r4, 0x14]
ldrh r0, [r1, 0xC]
strh r0, [r4, 0x16]
_08115FD6:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
mov r9, r0
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
mov r10, r0
ldrh r1, [r4, 0xC]
movs r7, 0x80
lsls r7, 1
adds r0, r7, 0
ands r0, r1
cmp r0, 0
beq _08115FF8
ldr r5, =0x0000ffff
_08115FF8:
movs r6, 0x1
adds r0, r6, 0
ands r0, r1
cmp r0, 0
beq _08116028
ldr r2, =gSprites
ldr r0, =gHealthboxSpriteIds
add r0, r9
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x14
adds r0, r2
ldr r0, [r0]
ldrh r0, [r0, 0x2]
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
adds r1, r6, 0
lsls r1, r0
lsls r1, 16
orrs r5, r1
_08116028:
ldrh r1, [r4, 0xE]
adds r0, r7, 0
ands r0, r1
cmp r0, 0
beq _0811603C
adds r0, r6, 0
mov r2, r9
lsls r0, r2
lsls r0, 16
orrs r5, r0
_0811603C:
ldrh r1, [r4, 0x10]
adds r0, r7, 0
ands r0, r1
cmp r0, 0
beq _08116050
adds r0, r6, 0
mov r1, r10
lsls r0, r1
lsls r0, 16
orrs r5, r0
_08116050:
movs r1, 0x12
ldrsb r1, [r4, r1]
movs r2, 0x14
ldrsb r2, [r4, r2]
movs r3, 0x16
ldrsb r3, [r4, r3]
adds r0, r5, 0
bl TintPlttBuffer
movs r2, 0x8
ldrsh r1, [r4, r2]
movs r2, 0xA
ldrsh r0, [r4, r2]
cmp r1, r0
bne _0811607A
adds r0, r5, 0
bl UnfadePlttBuffer
mov r0, r8
bl DestroyAnimVisualTask
_0811607A:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8115F94
thumb_func_start sub_81160A4
sub_81160A4: @ 81160A4
push {r4,lr}
adds r4, r0, 0
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldr r1, =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x2]
strh r0, [r4, 0x30]
strh r0, [r4, 0x32]
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x34]
movs r2, 0x6
ldrsh r0, [r1, r2]
cmp r0, 0x1
beq _081160EC
cmp r0, 0x1
bgt _081160DC
cmp r0, 0
beq _081160E2
b _08116104
.pool
_081160DC:
cmp r0, 0x2
beq _081160F4
b _08116104
_081160E2:
ldr r1, =gBattle_BG3_X
b _081160F6
.pool
_081160EC:
ldr r1, =gBattle_BG3_Y
b _081160F6
.pool
_081160F4:
ldr r1, =gSpriteCoordOffsetX
_081160F6:
adds r0, r4, 0
bl StoreSpriteCallbackInData6
b _0811610C
.pool
_08116104:
ldr r1, =gSpriteCoordOffsetY
adds r0, r4, 0
bl StoreSpriteCallbackInData6
_0811610C:
movs r0, 0x3A
ldrsh r1, [r4, r0]
movs r2, 0x3C
ldrsh r0, [r4, r2]
lsls r0, 16
orrs r1, r0
ldrh r0, [r1]
strh r0, [r4, 0x36]
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x6]
strh r0, [r4, 0x38]
subs r0, 0x2
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
bhi _08116130
bl sub_81161F4
_08116130:
ldr r0, =sub_8116148
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81160A4
thumb_func_start sub_8116148
sub_8116148: @ 8116148
push {r4-r7,lr}
adds r3, r0, 0
ldrh r1, [r3, 0x34]
movs r2, 0x34
ldrsh r0, [r3, r2]
cmp r0, 0
ble _0811618A
subs r0, r1, 0x1
strh r0, [r3, 0x34]
ldrh r1, [r3, 0x30]
movs r2, 0x30
ldrsh r0, [r3, r2]
cmp r0, 0
ble _0811616A
subs r0, r1, 0x1
strh r0, [r3, 0x30]
b _081161E2
_0811616A:
ldrh r0, [r3, 0x32]
strh r0, [r3, 0x30]
movs r0, 0x3A
ldrsh r1, [r3, r0]
movs r2, 0x3C
ldrsh r0, [r3, r2]
lsls r0, 16
orrs r1, r0
ldrh r0, [r3, 0x2E]
ldrh r2, [r1]
adds r0, r2
strh r0, [r1]
ldrh r0, [r3, 0x2E]
negs r0, r0
strh r0, [r3, 0x2E]
b _081161E2
_0811618A:
movs r0, 0x3A
ldrsh r1, [r3, r0]
movs r2, 0x3C
ldrsh r0, [r3, r2]
lsls r0, 16
orrs r1, r0
ldrh r0, [r3, 0x36]
strh r0, [r1]
ldrh r0, [r3, 0x38]
subs r0, 0x2
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
bhi _081161DC
movs r4, 0
ldr r5, =gBattlersCount
ldrb r0, [r5]
cmp r4, r0
bcs _081161DC
ldr r2, =gSprites
mov r12, r2
ldr r6, =gBattlerSpriteIds
movs r7, 0x3
negs r7, r7
_081161BA:
adds r0, r4, r6
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
add r1, r12
adds r1, 0x3E
ldrb r2, [r1]
adds r0, r7, 0
ands r0, r2
strb r0, [r1]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
ldrb r0, [r5]
cmp r4, r0
bcc _081161BA
_081161DC:
adds r0, r3, 0
bl DestroyAnimSprite
_081161E2:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8116148
thumb_func_start sub_81161F4
sub_81161F4: @ 81161F4
push {r4-r6,lr}
ldr r6, =gSprites
ldr r4, =gBattlerSpriteIds
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
adds r0, r4
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r6
adds r1, 0x3E
ldrb r3, [r1]
movs r2, 0x3
negs r2, r2
adds r0, r2, 0
ands r0, r3
strb r0, [r1]
ldr r3, =gBattleAnimTarget
ldrb r0, [r3]
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
adds r0, 0x3E
ldrb r1, [r0]
ands r2, r1
strb r2, [r0]
ldr r0, =gBattleAnimArgs
movs r1, 0x8
ldrsh r0, [r0, r1]
cmp r0, 0x2
bne _0811627C
ldrb r0, [r5]
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x2
orrs r1, r2
strb r1, [r0]
ldrb r0, [r3]
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
adds r0, 0x3E
ldrb r1, [r0]
b _08116298
.pool
_0811627C:
cmp r0, 0
bne _08116284
ldrb r0, [r5]
b _08116286
_08116284:
ldrb r0, [r3]
_08116286:
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x2
_08116298:
orrs r1, r2
strb r1, [r0]
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81161F4
thumb_func_start sub_81162A4
sub_81162A4: @ 81162A4
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r1, =gTasks
lsls r2, r0, 2
adds r2, r0
lsls r2, 3
adds r2, r1
ldr r3, =gBattleAnimArgs
ldrh r1, [r3]
strh r1, [r2, 0x8]
ldrh r1, [r3, 0x2]
strh r1, [r2, 0xA]
ldrh r1, [r3, 0x4]
strh r1, [r2, 0xC]
ldrh r1, [r3, 0x6]
strh r1, [r2, 0xE]
ldrh r1, [r3, 0x6]
strh r1, [r2, 0x18]
ldr r4, =gBattle_BG3_X
ldrh r1, [r3]
strh r1, [r4]
ldr r4, =gBattle_BG3_Y
ldrh r1, [r3, 0x2]
strh r1, [r4]
ldr r1, =sub_81162F8
str r1, [r2]
bl _call_via_r1
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81162A4
thumb_func_start sub_81162F8
sub_81162F8: @ 81162F8
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r3, r0, r1
ldrh r2, [r3, 0xE]
movs r4, 0xE
ldrsh r0, [r3, r4]
mov r12, r1
cmp r0, 0
bne _0811637E
ldr r0, =gBattle_BG3_X
ldrh r2, [r0]
movs r7, 0x8
ldrsh r1, [r3, r7]
adds r6, r0, 0
cmp r2, r1
bne _08116330
ldrh r0, [r3, 0x8]
negs r0, r0
b _08116332
.pool
_08116330:
ldrh r0, [r3, 0x8]
_08116332:
strh r0, [r6]
ldr r2, =gBattle_BG3_Y
ldrh r3, [r2]
lsls r1, r5, 2
adds r0, r1, r5
lsls r0, 3
mov r7, r12
adds r4, r0, r7
movs r7, 0xA
ldrsh r0, [r4, r7]
cmn r3, r0
bne _08116354
movs r0, 0
b _08116358
.pool
_08116354:
ldrh r0, [r4, 0xA]
negs r0, r0
_08116358:
strh r0, [r2]
adds r0, r1, r5
lsls r0, 3
add r0, r12
ldrh r1, [r0, 0x18]
strh r1, [r0, 0xE]
ldrh r1, [r0, 0xC]
subs r1, 0x1
strh r1, [r0, 0xC]
lsls r1, 16
asrs r1, 16
cmp r1, 0
bne _08116382
strh r1, [r6]
strh r1, [r2]
adds r0, r5, 0
bl DestroyAnimVisualTask
b _08116382
_0811637E:
subs r0, r2, 0x1
strh r0, [r3, 0xE]
_08116382:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81162F8
thumb_func_start sub_8116388
sub_8116388: @ 8116388
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, =gBattleAnimArgs
ldrb r1, [r4, 0x6]
bl StartSpriteAffineAnim
movs r1, 0x4
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081163AC
adds r0, r5, 0
movs r1, 0x1
bl sub_80A69CC
b _081163B4
.pool
_081163AC:
adds r0, r5, 0
movs r1, 0x1
bl sub_80A6980
_081163B4:
ldr r0, =sub_80A67BC
str r0, [r5, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8116388
thumb_func_start sub_81163D0
sub_81163D0: @ 81163D0
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, =gBattleAnimArgs
ldrb r1, [r4, 0x6]
bl StartSpriteAffineAnim
movs r1, 0x4
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081163F4
adds r0, r5, 0
movs r1, 0x1
bl sub_80A69CC
b _081163FC
.pool
_081163F4:
adds r0, r5, 0
movs r1, 0x1
bl sub_80A6980
_081163FC:
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x8]
strh r0, [r5, 0x2E]
ldr r0, =sub_80A67BC
str r0, [r5, 0x1C]
ldr r1, =sub_810E2C8
adds r0, r5, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81163D0
thumb_func_start sub_8116420
sub_8116420: @ 8116420
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08116444
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08116444
ldr r1, =gBattleAnimArgs
ldrh r0, [r1, 0x2]
negs r0, r0
strh r0, [r1, 0x2]
_08116444:
adds r0, r4, 0
bl sub_8116388
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8116420
thumb_func_start sub_8116458
sub_8116458: @ 8116458
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimArgs
movs r0, 0x2
ldrsh r1, [r5, r0]
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _08116474
bl Random2
movs r1, 0x3
ands r1, r0
strh r1, [r5, 0x2]
_08116474:
ldrb r1, [r5, 0x2]
adds r0, r4, 0
bl StartSpriteAffineAnim
movs r1, 0
ldrsh r0, [r5, r1]
cmp r0, 0
bne _08116494
adds r0, r4, 0
movs r1, 0
bl sub_80A69CC
b _0811649C
.pool
_08116494:
adds r0, r4, 0
movs r1, 0
bl sub_80A6980
_0811649C:
bl Random2
lsls r0, 16
lsrs r0, 16
movs r1, 0x30
bl __umodsi3
ldr r1, =0x0000ffe8
adds r0, r1
ldrh r1, [r4, 0x24]
adds r0, r1
strh r0, [r4, 0x24]
bl Random2
lsls r0, 16
lsrs r0, 16
movs r1, 0x18
bl __umodsi3
ldr r1, =0x0000fff4
adds r0, r1
ldrh r1, [r4, 0x26]
adds r0, r1
strh r0, [r4, 0x26]
ldr r1, =move_anim_8074EE0
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67BC
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8116458
thumb_func_start sub_81164F0
sub_81164F0: @ 81164F0
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimArgs
ldrb r0, [r5]
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x2E]
ldr r2, =gSprites
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x24]
ldrh r0, [r0, 0x20]
adds r1, r0
strh r1, [r4, 0x20]
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x26]
ldrh r0, [r0, 0x22]
adds r1, r0
strh r1, [r4, 0x22]
ldrh r0, [r5, 0x2]
strh r0, [r4, 0x24]
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x26]
ldrb r1, [r5, 0x6]
adds r0, r4, 0
bl StartSpriteAffineAnim
ldr r1, =move_anim_8074EE0
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67BC
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81164F0
thumb_func_start sub_8116560
sub_8116560: @ 8116560
push {r4,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0811657C
adds r0, r4, 0
movs r1, 0x1
bl sub_80A69CC
b _08116584
.pool
_0811657C:
adds r0, r4, 0
movs r1, 0x1
bl sub_80A6980
_08116584:
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x6]
strh r0, [r4, 0x2E]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A64B0
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8116560
thumb_func_start sub_81165A8
sub_81165A8: @ 81165A8
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, =gBattleAnimArgs
ldrb r1, [r4, 0x6]
bl StartSpriteAffineAnim
movs r1, 0x4
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081165CC
adds r0, r5, 0
movs r1, 0x1
bl sub_80A69CC
b _081165D4
.pool
_081165CC:
adds r0, r5, 0
movs r1, 0x1
bl sub_80A6980
_081165D4:
ldr r0, =sub_81165E4
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81165A8
thumb_func_start sub_81165E4
sub_81165E4: @ 81165E4
push {lr}
adds r3, r0, 0
movs r0, 0x3E
adds r0, r3
mov r12, r0
ldrb r2, [r0]
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
mov r1, r12
strb r0, [r1]
ldrh r0, [r3, 0x2E]
adds r1, r0, 0x1
strh r1, [r3, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0xC
ble _0811661A
adds r0, r3, 0
bl DestroyAnimSprite
_0811661A:
pop {r0}
bx r0
thumb_func_end sub_81165E4
thumb_func_start sub_8116620
sub_8116620: @ 8116620
push {r4-r6,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r4, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
bl sub_811583C
adds r6, r0, 0
ldrh r3, [r4]
lsls r3, 16
asrs r0, r3, 23
movs r4, 0x1
ands r0, r4
asrs r1, r3, 24
ands r1, r4
asrs r2, r3, 25
ands r2, r4
asrs r3, 26
ands r3, r4
bl sub_80A76C4
orrs r6, r0
adds r0, r5, 0
adds r1, r6, 0
bl sub_8116874
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8116620
thumb_func_start sub_8116664
sub_8116664: @ 8116664
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
lsrs r7, r0, 24
mov r1, sp
movs r0, 0xFF
strb r0, [r1, 0x1]
movs r0, 0x1
bl sub_811583C
adds r5, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x7
bhi _0811670E
lsls r0, 2
ldr r1, =_08116698
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08116698:
.4byte _081166BA
.4byte _081166C6
.4byte _081166B8
.4byte _081166C4
.4byte _081166D4
.4byte _081166EC
.4byte _081166F4
.4byte _08116700
_081166B8:
movs r5, 0
_081166BA:
mov r0, sp
ldr r1, =gBattleAnimAttacker
b _081166CA
.pool
_081166C4:
movs r5, 0
_081166C6:
mov r0, sp
ldr r1, =gBattleAnimTarget
_081166CA:
ldrb r1, [r1]
strb r1, [r0]
b _0811670E
.pool
_081166D4:
mov r1, sp
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
strb r0, [r1]
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
strb r0, [r1, 0x1]
b _0811670E
.pool
_081166EC:
mov r1, sp
movs r0, 0xFF
strb r0, [r1]
b _0811670E
_081166F4:
movs r5, 0
mov r2, sp
ldr r0, =gBattleAnimAttacker
b _08116706
.pool
_08116700:
movs r5, 0
mov r2, sp
ldr r0, =gBattleAnimTarget
_08116706:
ldrb r0, [r0]
movs r1, 0x2
eors r0, r1
strb r0, [r2]
_0811670E:
movs r4, 0
mov r6, sp
_08116712:
ldrb r0, [r6]
cmp r4, r0
beq _0811673C
ldrb r0, [r6, 0x1]
cmp r4, r0
beq _0811673C
adds r0, r4, 0
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0811673C
adds r0, r4, 0
bl sub_80A77AC
lsls r0, 24
lsrs r0, 24
movs r1, 0x80
lsls r1, 9
lsls r1, r0
orrs r5, r1
_0811673C:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _08116712
adds r0, r7, 0
adds r1, r5, 0
bl sub_8116874
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8116664
thumb_func_start sub_811675C
sub_811675C: @ 811675C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
bl sub_811583C
adds r2, r0, 0
ldr r0, =gBattleTerrain
ldrb r0, [r0]
cmp r0, 0x9
bhi _08116832
lsls r0, 2
ldr r1, =_0811678C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0811678C:
.4byte _081167B4
.4byte _081167C4
.4byte _081167D0
.4byte _081167E0
.4byte _081167EC
.4byte _081167FC
.4byte _0811680C
.4byte _0811681C
.4byte _0811682C
.4byte _0811682C
_081167B4:
ldr r1, =gBattleAnimArgs
ldr r0, =0x00000b0c
b _08116830
.pool
_081167C4:
ldr r1, =gBattleAnimArgs
movs r0, 0x9E
lsls r0, 4
b _08116830
.pool
_081167D0:
ldr r1, =gBattleAnimArgs
ldr r0, =0x00002f1e
b _08116830
.pool
_081167E0:
ldr r1, =gBattleAnimArgs
movs r0, 0x90
lsls r0, 7
b _08116830
.pool
_081167EC:
ldr r1, =gBattleAnimArgs
ldr r0, =0x00007ecb
b _08116830
.pool
_081167FC:
ldr r1, =gBattleAnimArgs
ldr r0, =0x00007ecb
b _08116830
.pool
_0811680C:
ldr r1, =gBattleAnimArgs
ldr r0, =0x00002a16
b _08116830
.pool
_0811681C:
ldr r1, =gBattleAnimArgs
ldr r0, =0x00000d2e
b _08116830
.pool
_0811682C:
ldr r1, =gBattleAnimArgs
ldr r0, =0x00007fff
_08116830:
strh r0, [r1, 0x8]
_08116832:
adds r0, r4, 0
adds r1, r2, 0
bl sub_8116874
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_811675C
thumb_func_start AnimTask_BlendParticle
AnimTask_BlendParticle: @ 8116848
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, =gBattleAnimArgs
ldrh r0, [r0]
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
adds r0, 0x10
movs r1, 0x1
lsls r1, r0
adds r0, r4, 0
bl sub_8116874
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_BlendParticle
thumb_func_start sub_8116874
sub_8116874: @ 8116874
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r3, =gTasks
lsls r2, r0, 2
adds r2, r0
lsls r2, 3
adds r2, r3
strh r1, [r2, 0x8]
lsrs r1, 16
strh r1, [r2, 0xA]
ldr r3, =gBattleAnimArgs
ldrh r1, [r3, 0x2]
strh r1, [r2, 0xC]
ldrh r1, [r3, 0x4]
strh r1, [r2, 0xE]
ldrh r1, [r3, 0x6]
strh r1, [r2, 0x10]
ldrh r1, [r3, 0x8]
strh r1, [r2, 0x12]
ldrh r1, [r3, 0x4]
strh r1, [r2, 0x1C]
ldr r1, =sub_81168B8
str r1, [r2]
bl _call_via_r1
pop {r0}
bx r0
.pool
thumb_func_end sub_8116874
thumb_func_start sub_81168B8
sub_81168B8: @ 81168B8
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r7, r0, 24
movs r6, 0
ldr r2, =gTasks
lsls r5, r7, 2
adds r0, r5, r7
lsls r0, 3
adds r3, r0, r2
ldrh r0, [r3, 0x1A]
mov r8, r0
movs r4, 0x1A
ldrsh r1, [r3, r4]
movs r4, 0xC
ldrsh r0, [r3, r4]
mov r9, r2
cmp r1, r0
bne _0811694E
strh r6, [r3, 0x1A]
movs r0, 0x8
ldrsh r4, [r3, r0]
movs r1, 0xA
ldrsh r0, [r3, r1]
lsls r0, 16
orrs r4, r0
mov r8, r5
cmp r4, 0
beq _0811691A
adds r5, r3, 0
_081168F8:
movs r0, 0x1
ands r0, r4
cmp r0, 0
beq _0811690C
ldrb r2, [r5, 0x1C]
ldrh r3, [r5, 0x12]
adds r0, r6, 0
movs r1, 0x10
bl BlendPalette
_0811690C:
adds r0, r6, 0
adds r0, 0x10
lsls r0, 16
lsrs r6, r0, 16
lsrs r4, 1
cmp r4, 0
bne _081168F8
_0811691A:
mov r4, r8
adds r0, r4, r7
lsls r0, 3
mov r1, r9
adds r2, r0, r1
ldrh r0, [r2, 0x1C]
movs r4, 0x1C
ldrsh r3, [r2, r4]
movs r4, 0x10
ldrsh r1, [r2, r4]
cmp r3, r1
bge _0811693C
adds r0, 0x1
strh r0, [r2, 0x1C]
b _08116954
.pool
_0811693C:
cmp r3, r1
ble _08116946
subs r0, 0x1
strh r0, [r2, 0x1C]
b _08116954
_08116946:
adds r0, r7, 0
bl DestroyAnimVisualTask
b _08116954
_0811694E:
mov r0, r8
adds r0, 0x1
strh r0, [r3, 0x1A]
_08116954:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81168B8
thumb_func_start sub_8116960
sub_8116960: @ 8116960
push {r4,r5,lr}
sub sp, 0x4
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r4, =gBattleAnimArgs
ldrb r0, [r4]
ldrb r1, [r4, 0x2]
ldrb r2, [r4, 0x4]
ldrb r3, [r4, 0x6]
ldrb r4, [r4, 0x8]
str r4, [sp]
bl BeginHardwarePaletteFade
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, =sub_81169A0
str r1, [r0]
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8116960
thumb_func_start sub_81169A0
sub_81169A0: @ 81169A0
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081169B8
adds r0, r2, 0
bl DestroyAnimVisualTask
_081169B8:
pop {r0}
bx r0
.pool
thumb_func_end sub_81169A0
thumb_func_start sub_81169C0
sub_81169C0: @ 81169C0
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks
adds r1, r0
ldr r2, =gBattleAnimArgs
ldrh r0, [r2]
movs r3, 0
strh r0, [r1, 0x8]
strh r3, [r1, 0xA]
ldrh r0, [r2, 0x2]
strh r0, [r1, 0xC]
ldrh r0, [r2, 0x4]
strh r0, [r1, 0xE]
ldrh r0, [r2, 0x6]
strh r0, [r1, 0x10]
strh r3, [r1, 0x12]
ldr r0, =sub_81169F8
str r0, [r1]
bx lr
.pool
thumb_func_end sub_81169C0
thumb_func_start sub_81169F8
sub_81169F8: @ 81169F8
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
adds r2, r5, 0
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r1, 0x10
ldrsh r0, [r4, r1]
cmp r0, 0
beq _08116ABC
ldrh r1, [r4, 0xA]
movs r2, 0xA
ldrsh r0, [r4, r2]
cmp r0, 0
beq _08116A28
subs r0, r1, 0x1
strh r0, [r4, 0xA]
b _08116ACA
.pool
_08116A28:
ldrb r0, [r4, 0x8]
bl duplicate_obj_of_side_rel2move_in_transparent_mode
strh r0, [r4, 0x14]
lsls r0, 16
cmp r0, 0
blt _08116AA6
ldr r6, =gSprites
movs r1, 0x14
ldrsh r0, [r4, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r3, r1, r6
movs r2, 0x8
ldrsh r0, [r4, r2]
movs r2, 0x2
cmp r0, 0
beq _08116A50
movs r2, 0x1
_08116A50:
lsls r2, 2
ldrb r1, [r3, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r1
orrs r0, r2
strb r0, [r3, 0x5]
movs r0, 0x14
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
ldrh r1, [r4, 0xE]
strh r1, [r0, 0x2E]
movs r2, 0x14
ldrsh r1, [r4, r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r5, [r0, 0x30]
movs r0, 0x14
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x5
strh r1, [r0, 0x32]
movs r2, 0x14
ldrsh r1, [r4, r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r6, 0
adds r1, 0x1C
adds r0, r1
ldr r1, =sub_8116AD0
str r1, [r0]
ldrh r0, [r4, 0x12]
adds r0, 0x1
strh r0, [r4, 0x12]
_08116AA6:
ldrh r0, [r4, 0x10]
subs r0, 0x1
strh r0, [r4, 0x10]
ldrh r0, [r4, 0xC]
strh r0, [r4, 0xA]
b _08116ACA
.pool
_08116ABC:
movs r1, 0x12
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08116ACA
adds r0, r2, 0
bl DestroyAnimVisualTask
_08116ACA:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81169F8
thumb_func_start sub_8116AD0
sub_8116AD0: @ 8116AD0
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x2E]
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r0, 0
beq _08116AE4
subs r0, r1, 0x1
strh r0, [r4, 0x2E]
b _08116B08
_08116AE4:
ldr r3, =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 obj_delete_but_dont_free_vram
_08116B08:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8116AD0
thumb_func_start sub_8116B14
sub_8116B14: @ 8116B14
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x14
lsls r0, 24
lsrs r0, 24
mov r9, r0
movs r7, 0
ldr r0, =gBattle_WIN0H
strh r7, [r0]
ldr r0, =gBattle_WIN0V
strh r7, [r0]
ldr r1, =0x00003f3f
movs r0, 0x48
bl SetGpuReg
ldr r1, =0x00003f3d
movs r0, 0x4A
bl SetGpuReg
movs r1, 0x80
lsls r1, 8
movs r0, 0
bl SetGpuRegBits
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
ldr r1, =0x00000c08
movs r0, 0x52
bl SetGpuReg
movs r0, 0xA
bl GetGpuReg
add r4, sp, 0x10
strh r0, [r4]
ldrb r1, [r4]
movs r0, 0x4
negs r0, r0
mov r8, r0
ands r0, r1
strb r0, [r4]
mov r2, sp
adds r2, 0x11
ldrb r1, [r2]
movs r0, 0x3F
ands r0, r1
strb r0, [r2]
ldrh r1, [r4]
movs r0, 0xA
bl SetGpuReg
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08116BA2
ldrb r1, [r4]
movs r0, 0xD
negs r0, r0
ands r0, r1
movs r1, 0x4
orrs r0, r1
strb r0, [r4]
ldrh r1, [r4]
movs r0, 0xA
bl SetGpuReg
_08116BA2:
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08116C26
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08116C26
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _08116BD2
ldrb r0, [r5]
bl GetBattlerPosition
lsls r0, 24
cmp r0, 0
bne _08116C26
_08116BD2:
ldrb r0, [r5]
movs r6, 0x2
eors r0, r6
bl IsBattlerSpriteVisible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08116C26
ldr r3, =gSprites
ldr r1, =gBattlerSpriteIds
ldrb r0, [r5]
eors r0, r6
adds r0, r1
ldrb r0, [r0]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r3
ldrb r3, [r2, 0x5]
lsls r1, r3, 28
lsrs r1, 30
subs r1, 0x1
movs r0, 0x3
ands r1, r0
lsls r1, 2
movs r0, 0xD
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2, 0x5]
ldrb r1, [r4]
mov r0, r8
ands r0, r1
movs r1, 0x1
orrs r0, r1
strb r0, [r4]
ldrh r1, [r4]
movs r0, 0xA
bl SetGpuReg
movs r7, 0x1
_08116C26:
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08116C64
ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x18]
ldrh r5, [r0]
b _08116CAC
.pool
_08116C64:
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08116C90
ldr r1, =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gEnemyParty
b _08116CA0
.pool
_08116C90:
ldr r1, =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
_08116CA0:
adds r0, r1
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
_08116CAC:
movs r0, 0
bl GetAnimBattlerSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r1, r4, 0
adds r2, r5, 0
bl sub_80A89C8
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
mov r0, sp
bl sub_80A6B30
ldr r1, =gUnknown_08C20684
mov r0, sp
movs r2, 0
bl sub_80A6D60
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, =gUnknown_08C20668
mov r2, sp
ldrh r2, [r2, 0xA]
bl sub_80A6CC0
ldr r0, =gUnknown_08597418
mov r1, sp
ldrb r1, [r1, 0x8]
lsls r1, 4
adds r1, 0x1
movs r2, 0x2
bl LoadPalette
ldr r2, =gBattle_BG1_X
ldr r0, =gSprites
lsls r1, r4, 4
adds r1, r4
lsls r1, 2
adds r1, r0
ldrh r0, [r1, 0x20]
negs r0, r0
adds r0, 0x20
strh r0, [r2]
ldr r2, =gBattle_BG1_Y
ldrh r0, [r1, 0x22]
negs r0, r0
adds r0, 0x20
strh r0, [r2]
ldr r1, =gTasks
mov r2, r9
lsls r0, r2, 2
add r0, r9
lsls r0, 3
adds r0, r1
strh r5, [r0, 0x8]
strh r7, [r0, 0x14]
ldr r1, =sub_8116D64
str r1, [r0]
add sp, 0x14
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8116B14
thumb_func_start sub_8116D64
sub_8116D64: @ 8116D64
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x14
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
ldr r1, =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r5, r0, r1
ldrh r0, [r5, 0x1C]
adds r0, 0x4
movs r1, 0
mov r8, r1
strh r0, [r5, 0x1C]
ldr r7, =gBattle_BG1_Y
ldrh r2, [r7]
subs r1, r2, 0x4
strh r1, [r7]
lsls r0, 16
asrs r0, 16
cmp r0, 0x40
bne _08116E86
mov r0, r8
strh r0, [r5, 0x1C]
adds r0, r2, 0
adds r0, 0x3C
strh r0, [r7]
ldrh r0, [r5, 0x1E]
adds r0, 0x1
strh r0, [r5, 0x1E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bne _08116E86
movs r0, 0
bl sub_80A477C
ldr r0, =gBattle_WIN0H
mov r1, r8
strh r1, [r0]
ldr r0, =gBattle_WIN0V
strh r1, [r0]
ldr r4, =0x00003f3f
movs r0, 0x48
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08116DF6
movs r0, 0xA
bl GetGpuReg
add r1, sp, 0x10
strh r0, [r1]
ldrb r2, [r1]
movs r0, 0xD
negs r0, r0
ands r0, r2
strb r0, [r1]
ldrh r1, [r1]
movs r0, 0xA
bl SetGpuReg
_08116DF6:
movs r0, 0
bl GetGpuReg
adds r1, r0, 0
movs r2, 0x80
lsls r2, 8
adds r0, r2, 0
eors r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0
bl SetGpuReg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
movs r0, 0
bl GetAnimBattlerSpriteId
ldr r4, =gSprites
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
mov r0, sp
bl sub_80A6B30
mov r0, sp
ldrb r0, [r0, 0x9]
bl sub_80A6C68
movs r1, 0x14
ldrsh r0, [r5, r1]
cmp r0, 0x1
bne _08116E7C
ldr r2, =gBattlerSpriteIds
ldr r0, =gBattleAnimAttacker
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
adds r0, r2
ldrb r0, [r0]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r4
ldrb r3, [r2, 0x5]
lsls r1, r3, 28
lsrs r1, 30
adds r1, 0x1
movs r0, 0x3
ands r1, r0
lsls r1, 2
movs r0, 0xD
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2, 0x5]
_08116E7C:
mov r2, r8
strh r2, [r7]
adds r0, r6, 0
bl DestroyAnimVisualTask
_08116E86:
add sp, 0x14
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8116D64
thumb_func_start sub_8116EB4
sub_8116EB4: @ 8116EB4
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r4, =gUnknown_0203A110
movs r0, 0x18
bl AllocZeroed
str r0, [r4]
movs r2, 0
ldr r3, =gBattleAnimArgs
_08116EC8:
ldr r1, [r4]
lsls r0, r2, 1
adds r1, 0x4
adds r1, r0
adds r0, r3
ldrh r0, [r0]
strh r0, [r1]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x7
bls _08116EC8
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldr r0, =sub_8116F04
str r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8116EB4
thumb_func_start sub_8116F04
sub_8116F04: @ 8116F04
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r0, =gUnknown_0203A110
ldr r1, [r0]
movs r2, 0x8
ldrsh r0, [r1, r2]
cmp r0, 0
bne _08116F24
ldr r0, =gBattleAnimAttacker
b _08116F26
.pool
_08116F24:
ldr r0, =gBattleAnimTarget
_08116F26:
ldrb r0, [r0]
strb r0, [r1]
ldr r4, =gUnknown_0203A110
ldr r2, [r4]
ldrb r0, [r2]
movs r1, 0x2
eors r0, r1
strb r0, [r2, 0x1]
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08116F56
ldr r1, [r4]
movs r2, 0xA
ldrsh r0, [r1, r2]
cmp r0, 0
beq _08116F5C
ldrb r0, [r1, 0x1]
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
bne _08116F5C
_08116F56:
ldr r1, [r4]
movs r0, 0
strh r0, [r1, 0xA]
_08116F5C:
ldr r0, =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_WIN0V
strh r1, [r0]
ldr r1, =0x00003f3f
movs r0, 0x48
bl SetGpuReg
ldr r1, =0x00003f3d
movs r0, 0x4A
bl SetGpuReg
movs r1, 0x80
lsls r1, 8
movs r0, 0
bl SetGpuRegBits
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
movs r1, 0x80
lsls r1, 5
movs r0, 0x52
bl SetGpuReg
movs r0, 0x1
movs r1, 0x4
movs r2, 0
bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0
movs r2, 0
bl SetAnimBgAttribute
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08116FBA
movs r0, 0x1
movs r1, 0x3
movs r2, 0x1
bl SetAnimBgAttribute
_08116FBA:
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08117036
ldr r4, =gUnknown_0203A110
ldr r1, [r4]
movs r2, 0xA
ldrsh r0, [r1, r2]
cmp r0, 0
bne _08117036
ldrb r0, [r1]
bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _08116FEC
ldr r0, [r4]
ldrb r0, [r0]
bl GetBattlerPosition
lsls r0, 24
cmp r0, 0
bne _08117036
_08116FEC:
ldr r0, [r4]
ldrb r0, [r0, 0x1]
bl IsBattlerSpriteVisible
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x1
bne _08117036
ldr r3, =gSprites
ldr r1, =gBattlerSpriteIds
ldr r0, [r4]
ldrb r0, [r0, 0x1]
adds r0, r1
ldrb r0, [r0]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r3
ldrb r3, [r2, 0x5]
lsls r1, r3, 28
lsrs r1, 30
subs r1, 0x1
movs r0, 0x3
ands r1, r0
lsls r1, 2
movs r0, 0xD
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2, 0x5]
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
ldr r0, [r4]
strb r5, [r0, 0x2]
_08117036:
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08117078
ldr r0, =gUnknown_0203A110
ldr r1, [r0]
ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x18]
ldrh r0, [r0]
b _081170C4
.pool
_08117078:
ldr r4, =gUnknown_0203A110
ldr r0, [r4]
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _081170A8
ldr r1, =gBattlerPartyIndexes
ldr r0, [r4]
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gEnemyParty
b _081170BA
.pool
_081170A8:
ldr r1, =gBattlerPartyIndexes
ldr r0, [r4]
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
_081170BA:
adds r0, r1
movs r1, 0xB
bl GetMonData
ldr r1, [r4]
_081170C4:
strh r0, [r1, 0x14]
ldr r0, =gTasks
lsls r1, r6, 2
adds r1, r6
lsls r1, 3
adds r1, r0
ldr r0, =sub_81170EC
str r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8116F04
thumb_func_start sub_81170EC
sub_81170EC: @ 81170EC
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x10
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0
mov r8, r0
ldr r6, =gBattlerSpriteIds
ldr r4, =gUnknown_0203A110
ldr r2, [r4]
ldrb r0, [r2]
adds r1, r0, r6
ldrb r1, [r1]
ldrh r2, [r2, 0x14]
bl sub_80A89C8
lsls r0, 24
lsrs r7, r0, 24
ldr r2, [r4]
movs r1, 0xA
ldrsh r0, [r2, r1]
cmp r0, 0
beq _0811712E
ldrb r0, [r2, 0x1]
adds r1, r0, r6
ldrb r1, [r1]
ldrh r2, [r2, 0x14]
bl sub_80A89C8
lsls r0, 24
lsrs r0, 24
mov r8, r0
_0811712E:
mov r0, sp
bl sub_80A6B30
ldr r0, [r4]
movs r4, 0x4
ldrsh r0, [r0, r4]
cmp r0, 0
bne _08117158
ldr r1, =gUnknown_08C2D930
mov r0, sp
movs r2, 0
bl sub_80A6D60
b _08117162
.pool
_08117158:
ldr r1, =gUnknown_08C2DA4C
mov r0, sp
movs r2, 0
bl sub_80A6D60
_08117162:
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, =gUnknown_08C2D720
mov r2, sp
ldrh r2, [r2, 0xA]
bl sub_80A6CC0
ldr r0, =gUnknown_0203A110
ldr r0, [r0]
movs r1, 0x6
ldrsh r0, [r0, r1]
cmp r0, 0x6
bhi _081171F8
lsls r0, 2
ldr r1, =_08117198
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08117198:
.4byte _081171B4
.4byte _081171BC
.4byte _081171C4
.4byte _081171CC
.4byte _081171D4
.4byte _081171DC
.4byte _081171E4
_081171B4:
ldr r0, =gUnknown_08C2DB88
b _081171E6
.pool
_081171BC:
ldr r0, =gUnknown_08C2DB68
b _081171E6
.pool
_081171C4:
ldr r0, =gUnknown_08C2DBA8
b _081171E6
.pool
_081171CC:
ldr r0, =gUnknown_08C2DBC8
b _081171E6
.pool
_081171D4:
ldr r0, =gUnknown_08C2DC08
b _081171E6
.pool
_081171DC:
ldr r0, =gUnknown_08C2DC28
b _081171E6
.pool
_081171E4:
ldr r0, =gUnknown_08C2DC48
_081171E6:
mov r1, sp
ldrb r1, [r1, 0x8]
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
b _08117206
.pool
_081171F8:
ldr r0, =gUnknown_08C2DBE8
mov r1, sp
ldrb r1, [r1, 0x8]
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
_08117206:
ldr r3, =gBattle_BG1_X
movs r2, 0
strh r2, [r3]
ldr r0, =gBattle_BG1_Y
strh r2, [r0]
ldr r1, =gUnknown_0203A110
ldr r0, [r1]
movs r4, 0x4
ldrsh r0, [r0, r4]
adds r4, r1, 0
cmp r0, 0x1
bne _08117248
movs r0, 0x40
strh r0, [r3]
ldr r2, =gTasks
lsls r3, r5, 2
adds r0, r3, r5
lsls r0, 3
adds r0, r2
ldr r1, =0x0000fffd
b _08117254
.pool
_08117248:
ldr r2, =gTasks
lsls r3, r5, 2
adds r0, r3, r5
lsls r0, 3
adds r0, r2
movs r1, 0x3
_08117254:
strh r1, [r0, 0xA]
ldr r0, [r4]
movs r1, 0xC
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08117274
adds r0, r3, r5
lsls r0, 3
adds r0, r2
movs r1, 0xA
strh r1, [r0, 0x10]
movs r1, 0x14
b _08117280
.pool
_08117274:
adds r0, r3, r5
lsls r0, 3
adds r0, r2
movs r1, 0xD
strh r1, [r0, 0x10]
movs r1, 0x1E
_08117280:
strh r1, [r0, 0x12]
adds r1, r3, r5
lsls r1, 3
adds r1, r2
strh r7, [r1, 0x8]
ldr r3, [r4]
ldrh r0, [r3, 0xA]
strh r0, [r1, 0xC]
mov r4, r8
strh r4, [r1, 0xE]
ldrb r0, [r3, 0x2]
strh r0, [r1, 0x14]
ldr r2, =gBattlerSpriteIds
ldrb r0, [r3, 0x1]
adds r0, r2
ldrb r0, [r0]
strh r0, [r1, 0x16]
ldr r0, =sub_81172EC
str r0, [r1]
movs r1, 0x4
ldrsh r0, [r3, r1]
cmp r0, 0
bne _081172CC
movs r0, 0x40
negs r0, r0
bl BattleAnimAdjustPanning2
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
movs r0, 0xEF
bl PlaySE12WithPanning
b _081172E0
.pool
_081172CC:
movs r0, 0x40
negs r0, r0
bl BattleAnimAdjustPanning2
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
movs r0, 0xF5
bl PlaySE12WithPanning
_081172E0:
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81170EC
thumb_func_start sub_81172EC
sub_81172EC: @ 81172EC
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r2, =gBattle_BG1_Y
ldr r1, =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r5, r0, r1
ldrh r0, [r5, 0xA]
ldrh r1, [r2]
adds r0, r1
strh r0, [r2]
movs r0, 0x26
ldrsh r2, [r5, r0]
cmp r2, 0x1
beq _08117362
cmp r2, 0x1
bgt _08117320
cmp r2, 0
beq _0811732A
b _08117478
.pool
_08117320:
cmp r2, 0x2
beq _08117378
cmp r2, 0x3
beq _081173B6
b _08117478
_0811732A:
ldrh r0, [r5, 0x1E]
adds r1, r0, 0x1
strh r1, [r5, 0x1E]
lsls r0, 16
cmp r0, 0
bgt _08117338
b _08117478
_08117338:
strh r2, [r5, 0x1E]
ldrh r1, [r5, 0x20]
adds r1, 0x1
strh r1, [r5, 0x20]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r2, 0x20
ldrsh r1, [r5, r2]
movs r2, 0x10
ldrsh r0, [r5, r2]
cmp r1, r0
beq _08117360
b _08117478
_08117360:
b _081173AE
_08117362:
ldrh r0, [r5, 0x1C]
adds r0, 0x1
strh r0, [r5, 0x1C]
lsls r0, 16
asrs r0, 16
movs r2, 0x12
ldrsh r1, [r5, r2]
cmp r0, r1
beq _08117376
b _08117478
_08117376:
b _081173AE
_08117378:
ldrh r0, [r5, 0x1E]
adds r1, r0, 0x1
strh r1, [r5, 0x1E]
lsls r0, 16
cmp r0, 0
ble _08117478
movs r0, 0
strh r0, [r5, 0x1E]
ldrh r1, [r5, 0x20]
subs r1, 0x1
strh r1, [r5, 0x20]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0x20
ldrsh r0, [r5, r1]
cmp r0, 0
bne _08117478
movs r0, 0
bl sub_80A477C
_081173AE:
ldrh r0, [r5, 0x26]
adds r0, 0x1
strh r0, [r5, 0x26]
b _08117478
_081173B6:
ldr r0, =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_WIN0V
strh r1, [r0]
ldr r4, =0x00003f3f
movs r0, 0x48
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
bl IsContest
lsls r0, 24
cmp r0, 0
bne _081173E6
movs r0, 0x1
movs r1, 0x3
movs r2, 0
bl SetAnimBgAttribute
_081173E6:
movs r0, 0
bl GetGpuReg
adds r1, r0, 0
movs r2, 0x80
lsls r2, 8
adds r0, r2, 0
eors r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0
bl SetGpuReg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, =gSprites
adds r0, r4
bl DestroySprite
movs r1, 0xC
ldrsh r0, [r5, r1]
cmp r0, 0
beq _0811743A
movs r2, 0xE
ldrsh r1, [r5, r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
_0811743A:
movs r1, 0x14
ldrsh r0, [r5, r1]
cmp r0, 0x1
bne _08117466
movs r2, 0x16
ldrsh r0, [r5, r2]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r4
ldrb r3, [r2, 0x5]
lsls r1, r3, 28
lsrs r1, 30
adds r1, 0x1
movs r0, 0x3
ands r1, r0
lsls r1, 2
movs r0, 0xD
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2, 0x5]
_08117466:
ldr r4, =gUnknown_0203A110
ldr r0, [r4]
bl Free
movs r0, 0
str r0, [r4]
adds r0, r6, 0
bl DestroyAnimVisualTask
_08117478:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81172EC
thumb_func_start sub_8117494
sub_8117494: @ 8117494
push {r4-r6,lr}
sub sp, 0xC
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
movs r0, 0x1
movs r1, 0x1
movs r2, 0x1
movs r3, 0x1
bl sub_80A76C4
adds r6, r0, 0
movs r1, 0
bl sub_81175C4
ldr r0, =gTasks
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
adds r4, r0
lsrs r0, r6, 16
movs r5, 0
strh r0, [r4, 0x24]
str r5, [sp]
str r5, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80A75AC
adds r6, r0, 0
ldr r1, =0x0000ffff
ands r6, r1
adds r0, r6, 0
bl sub_81175C4
strh r6, [r4, 0x26]
strh r5, [r4, 0x8]
strh r5, [r4, 0xA]
ldr r0, =sub_8117500
str r0, [r4]
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117494
thumb_func_start sub_8117500
sub_8117500: @ 8117500
push {r4-r6,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r0, 0x8
ldrsh r1, [r4, r0]
cmp r1, 0x1
beq _08117544
cmp r1, 0x1
bgt _08117528
cmp r1, 0
beq _0811752E
b _081175BE
.pool
_08117528:
cmp r1, 0x2
beq _081175B8
b _081175BE
_0811752E:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x6
ble _081175BE
strh r1, [r4, 0xA]
movs r0, 0x10
strh r0, [r4, 0xC]
b _081175AC
_08117544:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _081175BE
movs r0, 0
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xC]
subs r0, 0x1
strh r0, [r4, 0xC]
movs r5, 0
movs r6, 0x1
_08117560:
movs r1, 0x26
ldrsh r0, [r4, r1]
asrs r0, r5
ands r0, r6
cmp r0, 0
beq _0811757A
lsls r0, r5, 20
lsrs r0, 16
ldrb r2, [r4, 0xC]
movs r1, 0x10
ldr r3, =0x0000ffff
bl BlendPalette
_0811757A:
movs r1, 0x24
ldrsh r0, [r4, r1]
asrs r0, r5
ands r0, r6
cmp r0, 0
beq _0811759A
lsls r0, r5, 20
movs r1, 0x80
lsls r1, 17
adds r0, r1
lsrs r0, 16
ldrb r2, [r4, 0xC]
movs r1, 0x10
movs r3, 0
bl BlendPalette
_0811759A:
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0xF
bls _08117560
movs r1, 0xC
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081175BE
_081175AC:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _081175BE
.pool
_081175B8:
adds r0, r2, 0
bl DestroyAnimVisualTask
_081175BE:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8117500
thumb_func_start sub_81175C4
sub_81175C4: @ 81175C4
push {r4-r6,lr}
adds r3, r0, 0
lsls r1, 16
lsrs r6, r1, 16
movs r2, 0
_081175CE:
movs r0, 0x1
ands r0, r3
lsrs r4, r3, 1
adds r5, r2, 0x1
cmp r0, 0
beq _081175FA
lsls r0, r2, 20
lsrs r2, r0, 16
adds r0, r2, 0
adds r0, 0x10
cmp r2, r0
bge _081175FA
ldr r1, =gPlttBufferFaded
adds r3, r0, 0
_081175EA:
lsls r0, r2, 1
adds r0, r1
strh r6, [r0]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, r3
blt _081175EA
_081175FA:
adds r3, r4, 0
lsls r0, r5, 16
lsrs r2, r0, 16
cmp r2, 0x1F
bls _081175CE
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81175C4
thumb_func_start sub_8117610
sub_8117610: @ 8117610
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
movs r4, 0
movs r2, 0
ldr r0, =gBattleAnimAttacker
ldrb r3, [r0]
movs r5, 0x1
_08117620:
cmp r3, r2
beq _0811762E
adds r1, r2, 0
adds r1, 0x10
adds r0, r5, 0
lsls r0, r1
orrs r4, r0
_0811762E:
adds r2, 0x1
cmp r2, 0x3
bls _08117620
movs r2, 0x5
ldr r0, =gBattleAnimArgs
adds r1, r0, 0
adds r1, 0x8
_0811763C:
ldrh r0, [r1]
strh r0, [r1, 0x2]
subs r1, 0x2
subs r2, 0x1
cmp r2, 0
bne _0811763C
adds r0, r6, 0
adds r1, r4, 0
bl sub_8116874
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117610
thumb_func_start sub_8117660
sub_8117660: @ 8117660
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0
bl sub_80A6DAC
ldr r0, =sub_81176D8
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r5, r0, 24
ldr r4, =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0811769C
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0811769C
ldrh r0, [r4]
negs r0, r0
strh r0, [r4]
ldrh r0, [r4, 0x2]
negs r0, r0
strh r0, [r4, 0x2]
_0811769C:
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldr r2, =gBattleAnimArgs
ldrh r0, [r2]
strh r0, [r1, 0xA]
ldrh r0, [r2, 0x2]
strh r0, [r1, 0xC]
ldrh r0, [r2, 0x6]
strh r0, [r1, 0xE]
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
adds r0, r6, 0
bl DestroyAnimVisualTask
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117660
thumb_func_start sub_81176D8
sub_81176D8: @ 81176D8
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldrh r3, [r1, 0xA]
ldrh r0, [r1, 0x1C]
adds r3, r0
movs r4, 0
mov r12, r4
strh r3, [r1, 0x1C]
ldrh r2, [r1, 0xC]
ldrh r7, [r1, 0x1E]
adds r2, r7
strh r2, [r1, 0x1E]
ldr r6, =gBattle_BG3_X
lsls r0, r3, 16
asrs r0, 24
ldrh r4, [r6]
adds r0, r4
strh r0, [r6]
ldr r4, =gBattle_BG3_Y
lsls r0, r2, 16
asrs r0, 24
ldrh r7, [r4]
adds r0, r7
strh r0, [r4]
movs r0, 0xFF
ands r3, r0
strh r3, [r1, 0x1C]
ands r2, r0
strh r2, [r1, 0x1E]
ldr r0, =gBattleAnimArgs
movs r3, 0xE
ldrsh r2, [r0, r3]
movs r7, 0xE
ldrsh r0, [r1, r7]
cmp r2, r0
bne _0811773E
mov r0, r12
strh r0, [r6]
strh r0, [r4]
movs r0, 0x1
bl sub_80A6DAC
adds r0, r5, 0
bl DestroyTask
_0811773E:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81176D8
thumb_func_start AnimTask_IsAttackerOpponentSide
AnimTask_IsAttackerOpponentSide: @ 8117754
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
ldr r1, =gBattleAnimArgs
lsls r0, 24
lsrs r0, 24
strh r0, [r1, 0xE]
adds r0, r4, 0
bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_IsAttackerOpponentSide
thumb_func_start AnimTask_IsTargetOpponentSide
AnimTask_IsTargetOpponentSide: @ 8117780
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
ldr r1, =gBattleAnimArgs
lsls r0, 24
lsrs r0, 24
strh r0, [r1, 0xE]
adds r0, r4, 0
bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_IsTargetOpponentSide
thumb_func_start AnimTask_IsTargetPartner
AnimTask_IsTargetPartner: @ 81177AC
push {r4,r5,lr}
lsls r0, 24
lsrs r3, r0, 24
ldr r5, =gBattleAnimArgs
movs r4, 0
ldr r0, =gBattleAnimAttacker
ldrb r2, [r0]
movs r0, 0x2
ldr r1, =gBattleAnimTarget
eors r0, r2
ldrb r1, [r1]
cmp r0, r1
bne _081177C8
movs r4, 0x1
_081177C8:
strh r4, [r5, 0xE]
adds r0, r3, 0
bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_IsTargetPartner
thumb_func_start sub_81177E4
sub_81177E4: @ 81177E4
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
ldr r6, =gSprites
_081177EE:
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
cmp r4, r0
beq _0811782C
lsls r0, r4, 24
lsrs r0, 24
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0811782C
ldr r0, =gBattlerSpriteIds
adds r0, r4, r0
ldrb r0, [r0]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r6
ldr r1, =gBattleAnimArgs
adds r2, 0x3E
movs r0, 0x1
ldrb r3, [r1]
ands r3, r0
lsls r3, 2
ldrb r0, [r2]
movs r7, 0x5
negs r7, r7
adds r1, r7, 0
ands r0, r1
orrs r0, r3
strb r0, [r2]
_0811782C:
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0x3
bls _081177EE
adds r0, r5, 0
bl DestroyAnimVisualTask
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81177E4
thumb_func_start sub_8117854
sub_8117854: @ 8117854
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x24
ldr r1, [sp, 0x44]
ldr r4, [sp, 0x48]
ldr r5, [sp, 0x4C]
ldr r6, [sp, 0x50]
lsls r0, 24
lsrs r0, 24
mov r9, r0
lsls r2, 16
lsrs r2, 16
str r2, [sp, 0x14]
lsls r3, 24
lsrs r7, r3, 24
lsls r1, 24
lsrs r1, 24
mov r8, r1
lsls r4, 24
lsrs r4, 24
str r4, [sp, 0x18]
lsls r5, 24
lsrs r5, 24
str r5, [sp, 0x1C]
lsls r6, 24
lsrs r6, 24
mov r10, r6
movs r0, 0
str r0, [sp, 0x20]
movs r0, 0x2
adds r6, r7, 0
eors r6, r0
bl IsContest
lsls r0, 24
cmp r0, 0
bne _081178B6
mov r1, r8
cmp r1, 0
beq _081178BA
adds r0, r6, 0
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
bne _081178BA
_081178B6:
movs r2, 0
mov r8, r2
_081178BA:
ldr r0, =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_WIN0V
strh r1, [r0]
ldr r1, =0x00003f3f
movs r0, 0x48
bl SetGpuReg
ldr r1, =0x00003f3d
movs r0, 0x4A
bl SetGpuReg
movs r1, 0x80
lsls r1, 8
movs r0, 0
bl SetGpuRegBits
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
movs r1, 0x80
lsls r1, 5
movs r0, 0x52
bl SetGpuReg
movs r0, 0xA
bl GetGpuReg
add r4, sp, 0x10
strh r0, [r4]
ldrb r1, [r4]
movs r0, 0x4
negs r0, r0
ands r0, r1
strb r0, [r4]
mov r2, sp
adds r2, 0x11
ldrb r1, [r2]
movs r0, 0x3F
ands r0, r1
strb r0, [r2]
ldrb r0, [r2]
movs r1, 0x20
orrs r0, r1
strb r0, [r2]
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08117930
ldrb r0, [r4]
movs r1, 0xD
negs r1, r1
ands r1, r0
movs r0, 0x4
orrs r1, r0
strb r1, [r4]
_08117930:
ldrh r1, [r4]
movs r0, 0xA
bl SetGpuReg
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08117964
ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x18]
ldrh r4, [r0]
b _081179A2
.pool
_08117964:
adds r0, r7, 0
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08117988
ldr r1, =gBattlerPartyIndexes
lsls r0, r7, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gEnemyParty
b _08117996
.pool
_08117988:
ldr r1, =gBattlerPartyIndexes
lsls r0, r7, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
_08117996:
adds r0, r1
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
_081179A2:
ldr r5, =gBattlerSpriteIds
adds r0, r7, r5
ldrb r1, [r0]
adds r0, r7, 0
adds r2, r4, 0
bl sub_80A89C8
lsls r0, 24
lsrs r7, r0, 24
mov r0, r8
cmp r0, 0
beq _081179CC
adds r0, r6, r5
ldrb r1, [r0]
adds r0, r6, 0
adds r2, r4, 0
bl sub_80A89C8
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x20]
_081179CC:
mov r0, sp
bl sub_80A6B30
mov r0, sp
ldr r1, [sp, 0x58]
movs r2, 0
bl sub_80A6D60
mov r0, sp
ldrb r0, [r0, 0x9]
mov r1, sp
ldrh r2, [r1, 0xA]
ldr r1, [sp, 0x54]
bl sub_80A6CC0
mov r0, sp
ldrb r1, [r0, 0x8]
lsls r1, 4
ldr r0, [sp, 0x5C]
movs r2, 0x20
bl LoadCompressedPalette
ldr r0, =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_BG1_Y
strh r1, [r0]
ldr r1, =gTasks
mov r2, r9
lsls r0, r2, 2
add r0, r9
lsls r0, 3
adds r0, r1
mov r1, sp
ldrh r1, [r1, 0x14]
strh r1, [r0, 0xA]
mov r2, sp
ldrh r2, [r2, 0x18]
strh r2, [r0, 0x10]
mov r1, r10
strh r1, [r0, 0x12]
mov r2, sp
ldrh r2, [r2, 0x1C]
strh r2, [r0, 0x14]
strh r7, [r0, 0x8]
mov r1, r8
strh r1, [r0, 0xC]
mov r2, sp
ldrh r2, [r2, 0x20]
strh r2, [r0, 0xE]
ldr r1, =sub_8117A60
str r1, [r0]
add sp, 0x24
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117854
thumb_func_start sub_8117A60
sub_8117A60: @ 8117A60
push {r4-r6,lr}
sub sp, 0x4
lsls r0, 24
lsrs r6, r0, 24
ldr r1, =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r3, r0, r1
movs r0, 0xA
ldrsh r2, [r3, r0]
adds r5, r1, 0
cmp r2, 0
bge _08117A7E
negs r2, r2
_08117A7E:
ldrh r0, [r3, 0x22]
adds r4, r0, r2
strh r4, [r3, 0x22]
movs r1, 0xA
ldrsh r0, [r3, r1]
cmp r0, 0
bge _08117AA4
ldr r2, =gBattle_BG1_Y
lsls r1, r4, 16
asrs r1, 24
ldrh r0, [r2]
subs r0, r1
strh r0, [r2]
b _08117AB0
.pool
_08117AA4:
ldr r1, =gBattle_BG1_Y
lsls r0, r4, 16
asrs r0, 24
ldrh r2, [r1]
adds r0, r2
strh r0, [r1]
_08117AB0:
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r5, r0, r5
ldrh r1, [r5, 0x22]
movs r0, 0xFF
ands r0, r1
movs r2, 0
strh r0, [r5, 0x22]
movs r3, 0x26
ldrsh r0, [r5, r3]
cmp r0, 0x1
beq _08117B1A
cmp r0, 0x1
bgt _08117AD8
cmp r0, 0
beq _08117ADE
b _08117C0C
.pool
_08117AD8:
cmp r0, 0x2
beq _08117B34
b _08117C0C
_08117ADE:
ldrh r0, [r5, 0x1E]
adds r1, r0, 0x1
strh r1, [r5, 0x1E]
lsls r0, 16
asrs r0, 16
movs r3, 0x14
ldrsh r1, [r5, r3]
cmp r0, r1
bge _08117AF2
b _08117C0C
_08117AF2:
strh r2, [r5, 0x1E]
ldrh r1, [r5, 0x20]
adds r1, 0x1
strh r1, [r5, 0x20]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r0, 0x20
ldrsh r1, [r5, r0]
movs r2, 0x10
ldrsh r0, [r5, r2]
cmp r1, r0
bne _08117C0C
b _08117B2C
_08117B1A:
ldrh r0, [r5, 0x1C]
adds r0, 0x1
strh r0, [r5, 0x1C]
lsls r0, 16
asrs r0, 16
movs r3, 0x12
ldrsh r1, [r5, r3]
cmp r0, r1
bne _08117C0C
_08117B2C:
ldrh r0, [r5, 0x26]
adds r0, 0x1
strh r0, [r5, 0x26]
b _08117C0C
_08117B34:
ldrh r0, [r5, 0x1E]
adds r1, r0, 0x1
strh r1, [r5, 0x1E]
lsls r0, 16
asrs r0, 16
movs r3, 0x14
ldrsh r1, [r5, r3]
cmp r0, r1
blt _08117C0C
strh r2, [r5, 0x1E]
ldrh r1, [r5, 0x20]
subs r1, 0x1
strh r1, [r5, 0x20]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r0, 0x20
ldrsh r4, [r5, r0]
cmp r4, 0
bne _08117C0C
movs r0, 0
bl sub_80A477C
ldr r0, =gBattle_WIN0H
strh r4, [r0]
ldr r0, =gBattle_WIN0V
strh r4, [r0]
ldr r4, =0x00003f3f
movs r0, 0x48
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08117BB2
movs r0, 0xA
bl GetGpuReg
mov r1, sp
strh r0, [r1]
mov r2, sp
ldrb r1, [r2]
movs r0, 0xD
negs r0, r0
ands r0, r1
strb r0, [r2]
mov r0, sp
ldrh r1, [r0]
movs r0, 0xA
bl SetGpuReg
_08117BB2:
movs r0, 0
bl GetGpuReg
adds r1, r0, 0
movs r2, 0x80
lsls r2, 8
adds r0, r2, 0
eors r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0
bl SetGpuReg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
movs r3, 0x8
ldrsh r1, [r5, r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, =gSprites
adds r0, r4
bl DestroySprite
movs r1, 0xC
ldrsh r0, [r5, r1]
cmp r0, 0
beq _08117C06
movs r2, 0xE
ldrsh r1, [r5, r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
_08117C06:
adds r0, r6, 0
bl DestroyAnimVisualTask
_08117C0C:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117A60
thumb_func_start AnimTask_GetBattleTerrain
AnimTask_GetBattleTerrain: @ 8117C24
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, =gBattleAnimArgs
ldr r1, =gBattleTerrain
ldrb r1, [r1]
strh r1, [r2]
bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_GetBattleTerrain
thumb_func_start sub_8117C44
sub_8117C44: @ 8117C44
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x80
lsls r0, 6
bl AllocZeroed
ldr r1, =gMonSpritesGfxPtr
ldr r1, [r1]
movs r2, 0xBE
lsls r2, 1
adds r1, r2
str r0, [r1]
adds r0, r4, 0
bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117C44
thumb_func_start sub_8117C70
sub_8117C70: @ 8117C70
push {r4-r6,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r6, =gMonSpritesGfxPtr
ldr r0, [r6]
movs r5, 0xBE
lsls r5, 1
adds r0, r5
ldr r0, [r0]
bl Free
ldr r0, [r6]
adds r0, r5
movs r1, 0
str r1, [r0]
adds r0, r4, 0
bl DestroyAnimVisualTask
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117C70
thumb_func_start sub_8117CA0
sub_8117CA0: @ 8117CA0
push {r4,r5,lr}
sub sp, 0xC
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08117CE4
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80A75AC
adds r1, r0, 0
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _08117CFC
movs r2, 0x1
_08117CD2:
lsrs r1, 1
adds r4, 0x1
adds r0, r1, 0
ands r0, r2
cmp r0, 0
beq _08117CD2
b _08117CFC
.pool
_08117CE4:
cmp r0, 0x1
bne _08117CF0
ldr r0, =gBattleAnimAttacker
b _08117CF6
.pool
_08117CF0:
cmp r0, 0x2
bne _08117CFC
ldr r0, =gBattleAnimTarget
_08117CF6:
ldrb r0, [r0]
adds r4, r0, 0
adds r4, 0x10
_08117CFC:
ldr r0, =gMonSpritesGfxPtr
ldr r1, [r0]
ldr r0, =gBattleAnimArgs
movs r2, 0x2
ldrsh r0, [r0, r2]
movs r2, 0xBE
lsls r2, 1
adds r1, r2
ldr r1, [r1]
lsls r0, 5
adds r0, r1
lsls r1, r4, 5
ldr r2, =gPlttBufferUnfaded
adds r1, r2
movs r2, 0x20
bl memcpy
adds r0, r5, 0
bl DestroyAnimVisualTask
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117CA0
thumb_func_start sub_8117D3C
sub_8117D3C: @ 8117D3C
push {r4,r5,lr}
sub sp, 0xC
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08117D80
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80A75AC
adds r1, r0, 0
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _08117D98
movs r2, 0x1
_08117D6E:
lsrs r1, 1
adds r4, 0x1
adds r0, r1, 0
ands r0, r2
cmp r0, 0
beq _08117D6E
b _08117D98
.pool
_08117D80:
cmp r0, 0x1
bne _08117D8C
ldr r0, =gBattleAnimAttacker
b _08117D92
.pool
_08117D8C:
cmp r0, 0x2
bne _08117D98
ldr r0, =gBattleAnimTarget
_08117D92:
ldrb r0, [r0]
adds r4, r0, 0
adds r4, 0x10
_08117D98:
lsls r0, r4, 5
ldr r1, =gPlttBufferUnfaded
adds r0, r1
ldr r1, =gMonSpritesGfxPtr
ldr r2, [r1]
ldr r1, =gBattleAnimArgs
movs r3, 0x2
ldrsh r1, [r1, r3]
movs r3, 0xBE
lsls r3, 1
adds r2, r3
ldr r2, [r2]
lsls r1, 5
adds r1, r2
movs r2, 0x20
bl memcpy
adds r0, r5, 0
bl DestroyAnimVisualTask
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117D3C
thumb_func_start sub_8117DD8
sub_8117DD8: @ 8117DD8
push {r4,r5,lr}
sub sp, 0xC
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08117E1C
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80A75AC
adds r1, r0, 0
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _08117E34
movs r2, 0x1
_08117E0A:
lsrs r1, 1
adds r4, 0x1
adds r0, r1, 0
ands r0, r2
cmp r0, 0
beq _08117E0A
b _08117E34
.pool
_08117E1C:
cmp r0, 0x1
bne _08117E28
ldr r0, =gBattleAnimAttacker
b _08117E2E
.pool
_08117E28:
cmp r0, 0x2
bne _08117E34
ldr r0, =gBattleAnimTarget
_08117E2E:
ldrb r0, [r0]
adds r4, r0, 0
adds r4, 0x10
_08117E34:
lsls r1, r4, 5
ldr r0, =gPlttBufferUnfaded
adds r0, r1, r0
ldr r2, =gPlttBufferFaded
adds r1, r2
movs r2, 0x20
bl memcpy
adds r0, r5, 0
bl DestroyAnimVisualTask
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117DD8
thumb_func_start AnimTask_IsContest
AnimTask_IsContest: @ 8117E60
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl IsContest
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _08117E80
ldr r1, =gBattleAnimArgs
movs r0, 0x1
strh r0, [r1, 0xE]
b _08117E84
.pool
_08117E80:
ldr r0, =gBattleAnimArgs
strh r1, [r0, 0xE]
_08117E84:
adds r0, r4, 0
bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_IsContest
thumb_func_start sub_8117E94
sub_8117E94: @ 8117E94
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, =gBattleAnimAttacker
ldr r1, =gBattlerTarget
ldrb r1, [r1]
strb r1, [r2]
ldr r2, =gBattleAnimTarget
ldr r1, =gEffectBattler
ldrb r1, [r1]
strb r1, [r2]
bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
thumb_func_end sub_8117E94
thumb_func_start AnimTask_IsTargetSameSide
AnimTask_IsTargetSameSide: @ 8117EC4
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
adds r4, r0, 0
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
bne _08117EF8
ldr r1, =gBattleAnimArgs
movs r0, 0x1
b _08117EFC
.pool
_08117EF8:
ldr r1, =gBattleAnimArgs
movs r0, 0
_08117EFC:
strh r0, [r1, 0xE]
adds r0, r5, 0
bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_IsTargetSameSide
thumb_func_start sub_8117F10
sub_8117F10: @ 8117F10
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, =gBattleAnimTarget
ldr r1, =gBattlerTarget
ldrb r1, [r1]
strb r1, [r2]
bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
thumb_func_end sub_8117F10
thumb_func_start sub_8117F30
sub_8117F30: @ 8117F30
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, =gBattleAnimAttacker
ldr r1, =gBattlerAttacker
ldrb r1, [r1]
strb r1, [r2]
ldr r2, =gBattleAnimTarget
ldr r1, =gEffectBattler
ldrb r1, [r1]
strb r1, [r2]
bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
thumb_func_end sub_8117F30
thumb_func_start sub_8117F60
sub_8117F60: @ 8117F60
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08117F78
adds r0, r4, 0
bl DestroyAnimVisualTask
b _08117FB4
_08117F78:
ldr r0, =gTasks
lsls r3, r4, 2
adds r3, r4
lsls r3, 3
adds r3, r0
ldr r0, =gBattleSpritesDataPtr
ldr r4, [r0]
ldr r2, =gBattleAnimAttacker
ldrb r0, [r2]
ldr r1, [r4]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
lsls r0, 31
lsrs r0, 31
strh r0, [r3, 0x8]
ldrb r1, [r2]
ldr r0, [r4]
lsls r1, 2
adds r1, r0
ldrb r0, [r1]
movs r2, 0x1
orrs r0, r2
strb r0, [r1]
ldr r0, =sub_8117FD0
str r0, [r3]
ldr r1, =gAnimVisualTaskCount
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
_08117FB4:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117F60
thumb_func_start sub_8117FD0
sub_8117FD0: @ 8117FD0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gBattleAnimArgs
movs r2, 0xE
ldrsh r1, [r0, r2]
movs r0, 0x80
lsls r0, 5
cmp r1, r0
bne _08118014
ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
ldr r0, =gBattleAnimAttacker
ldrb r3, [r0]
ldr r0, [r1]
lsls r3, 2
adds r3, r0
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldrb r0, [r0, 0x8]
movs r1, 0x1
ands r1, r0
ldrb r2, [r3]
movs r0, 0x2
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
adds r0, r4, 0
bl DestroyTask
_08118014:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117FD0
thumb_func_start SetAnimBgAttribute
SetAnimBgAttribute: @ 811802C
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
lsls r1, 24
lsrs r5, r1, 24
lsls r2, 24
lsrs r4, r2, 24
cmp r6, 0x3
bls _08118040
b _08118132
_08118040:
ldr r0, =gUnknown_0859741A
adds r0, r6, r0
ldrb r0, [r0]
bl GetGpuReg
ldr r1, =gUnknown_0203A114
strh r0, [r1]
cmp r5, 0x6
bhi _08118124
lsls r0, r5, 2
ldr r1, =_08118068
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08118068:
.4byte _08118084
.4byte _08118098
.4byte _081180B0
.4byte _081180C8
.4byte _081180E0
.4byte _081180FC
.4byte _08118110
_08118084:
ldr r2, =gUnknown_0203A114
lsls r3, r4, 6
ldrb r1, [r2, 0x1]
movs r0, 0x3F
ands r0, r1
orrs r0, r3
strb r0, [r2, 0x1]
b _08118124
.pool
_08118098:
ldr r3, =gUnknown_0203A114
movs r0, 0x1
adds r1, r4, 0
ands r1, r0
lsls r1, 5
ldrb r2, [r3, 0x1]
movs r0, 0x21
negs r0, r0
b _0811811E
.pool
_081180B0:
ldr r3, =gUnknown_0203A114
movs r0, 0x1
adds r1, r4, 0
ands r1, r0
lsls r1, 6
ldrb r2, [r3]
movs r0, 0x41
negs r0, r0
b _081180EE
.pool
_081180C8:
ldr r3, =gUnknown_0203A114
movs r0, 0x3
adds r1, r4, 0
ands r1, r0
lsls r1, 2
ldrb r2, [r3]
movs r0, 0xD
negs r0, r0
b _081180EE
.pool
_081180E0:
ldr r3, =gUnknown_0203A114
movs r0, 0x3
adds r1, r4, 0
ands r1, r0
ldrb r2, [r3]
movs r0, 0x4
negs r0, r0
_081180EE:
ands r0, r2
orrs r0, r1
strb r0, [r3]
b _08118124
.pool
_081180FC:
ldr r2, =gUnknown_0203A114
lsls r3, r4, 7
ldrb r1, [r2]
movs r0, 0x7F
ands r0, r1
orrs r0, r3
strb r0, [r2]
b _08118124
.pool
_08118110:
ldr r3, =gUnknown_0203A114
movs r0, 0x1F
adds r1, r4, 0
ands r1, r0
ldrb r2, [r3, 0x1]
movs r0, 0x20
negs r0, r0
_0811811E:
ands r0, r2
orrs r0, r1
strb r0, [r3, 0x1]
_08118124:
ldr r0, =gUnknown_0859741A
adds r0, r6, r0
ldrb r0, [r0]
ldr r1, =gUnknown_0203A114
ldrh r1, [r1]
bl SetGpuReg
_08118132:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end SetAnimBgAttribute
thumb_func_start sub_8118140
sub_8118140: @ 8118140
push {r4,lr}
sub sp, 0x4
lsls r0, 24
lsrs r2, r0, 24
lsls r1, 24
lsrs r4, r1, 24
cmp r2, 0x3
bhi _081181C8
ldr r0, =gUnknown_0859741E
adds r0, r2, r0
ldrb r0, [r0]
bl GetGpuReg
mov r1, sp
strh r0, [r1]
cmp r4, 0x6
bhi _081181C8
lsls r0, r4, 2
ldr r1, =_08118174
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08118174:
.4byte _08118190
.4byte _08118198
.4byte _081181A0
.4byte _081181A8
.4byte _081181B0
.4byte _081181B8
.4byte _081181C0
_08118190:
ldr r0, [sp]
lsls r0, 16
lsrs r0, 30
b _081181CA
_08118198:
ldr r0, [sp]
lsls r0, 18
lsrs r0, 31
b _081181CA
_081181A0:
ldr r0, [sp]
lsls r0, 25
lsrs r0, 31
b _081181CA
_081181A8:
ldr r0, [sp]
lsls r0, 28
lsrs r0, 30
b _081181CA
_081181B0:
ldr r0, [sp]
lsls r0, 30
lsrs r0, 30
b _081181CA
_081181B8:
ldr r0, [sp]
lsls r0, 24
lsrs r0, 31
b _081181CA
_081181C0:
ldr r0, [sp]
lsls r0, 19
lsrs r0, 27
b _081181CA
_081181C8:
movs r0, 0
_081181CA:
add sp, 0x4
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8118140
thumb_func_start HandleIntroSlide
HandleIntroSlide: @ 81181D4
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r2, =gBattleTypeFlags
ldr r0, [r2]
movs r1, 0x80
lsls r1, 15
ands r0, r1
cmp r0, 0
beq _08118208
ldr r0, =gPartnerTrainerId
ldrh r1, [r0]
ldr r0, =0x00000c03
cmp r1, r0
beq _08118208
ldr r0, =sub_8118D68
b _08118258
.pool
_08118208:
ldr r2, [r2]
movs r0, 0x2
ands r0, r2
cmp r0, 0
beq _0811821C
ldr r0, =task00_battle_intro_wireless
b _08118258
.pool
_0811821C:
ldr r0, =0x003f0100
ands r0, r2
cmp r0, 0
beq _08118230
ldr r0, =task_battle_intro_anim
b _08118258
.pool
_08118230:
movs r0, 0x80
lsls r0, 5
ands r2, r0
cmp r2, 0
beq _08118250
ldr r0, =gGameVersion
ldrb r0, [r0]
cmp r0, 0x2
beq _08118250
movs r4, 0x3
ldr r0, =task00_battle_intro_80BC6C8
b _08118258
.pool
_08118250:
ldr r1, =gUnknown_08597424
lsls r0, r4, 2
adds r0, r1
ldr r0, [r0]
_08118258:
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r2, r0, 24
ldr r0, =gTasks
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r1, r0
movs r0, 0
strh r0, [r1, 0x8]
strh r4, [r1, 0xA]
strh r0, [r1, 0xC]
strh r0, [r1, 0xE]
strh r0, [r1, 0x10]
strh r0, [r1, 0x12]
strh r0, [r1, 0x14]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end HandleIntroSlide
thumb_func_start sub_811828C
sub_811828C: @ 811828C
push {r4,lr}
lsls r0, 24
lsrs r0, 24
bl DestroyTask
ldr r0, =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_BG1_Y
strh r1, [r0]
ldr r0, =gBattle_BG2_X
strh r1, [r0]
ldr r0, =gBattle_BG2_Y
strh r1, [r0]
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
movs r0, 0x54
movs r1, 0
bl SetGpuReg
ldr r4, =0x00003f3f
movs r0, 0x48
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_811828C
thumb_func_start task_battle_intro_80BC47C
task_battle_intro_80BC47C: @ 81182EC
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gBattle_BG1_X
ldrh r0, [r1]
adds r0, 0x6
strh r0, [r1]
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
movs r2, 0x8
ldrsh r0, [r0, r2]
mov r8, r1
cmp r0, 0x4
bls _08118318
b _0811852A
_08118318:
lsls r0, 2
ldr r1, =_08118330
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08118330:
.4byte _08118344
.4byte _08118374
.4byte _0811839C
.4byte _081183E4
.4byte _08118524
_08118344:
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x2
ands r0, r1
cmp r0, 0
beq _08118360
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
add r0, r8
movs r1, 0x10
b _0811836A
.pool
_08118360:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
add r0, r8
movs r1, 0x1
_0811836A:
strh r1, [r0, 0xC]
ldrh r1, [r0, 0x8]
adds r1, 0x1
strh r1, [r0, 0x8]
b _0811852A
_08118374:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
mov r3, r8
adds r1, r0, r3
ldrh r0, [r1, 0xC]
subs r0, 0x1
strh r0, [r1, 0xC]
lsls r0, 16
cmp r0, 0
beq _0811838C
b _0811852A
_0811838C:
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
movs r0, 0x48
movs r1, 0x3F
bl SetGpuReg
b _0811852A
_0811839C:
ldr r1, =gBattle_WIN0V
ldrh r0, [r1]
subs r0, 0xFF
strh r0, [r1]
movs r1, 0xFF
lsls r1, 8
ands r0, r1
movs r1, 0xC0
lsls r1, 6
cmp r0, r1
beq _081183B4
b _0811852A
_081183B4:
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
add r1, r8
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
movs r0, 0xF0
strh r0, [r1, 0xC]
movs r0, 0x20
strh r0, [r1, 0xE]
ldr r2, =gIntroSlideFlags
ldrh r1, [r2]
ldr r0, =0x0000fffe
ands r0, r1
strh r0, [r2]
b _0811852A
.pool
_081183E4:
lsls r0, r4, 2
adds r1, r0, r4
lsls r1, 3
mov r5, r8
adds r2, r1, r5
ldrh r3, [r2, 0xE]
movs r5, 0xE
ldrsh r1, [r2, r5]
mov r12, r0
cmp r1, 0
beq _08118400
subs r0, r3, 0x1
strh r0, [r2, 0xE]
b _0811842E
_08118400:
movs r1, 0xA
ldrsh r0, [r2, r1]
cmp r0, 0x1
bne _08118420
ldr r2, =gBattle_BG1_Y
ldrh r1, [r2]
ldr r0, =0x0000ffb0
cmp r1, r0
beq _0811842E
subs r0, r1, 0x2
b _0811842C
.pool
_08118420:
ldr r2, =gBattle_BG1_Y
ldrh r1, [r2]
ldr r0, =0x0000ffc8
cmp r1, r0
beq _0811842E
subs r0, r1, 0x1
_0811842C:
strh r0, [r2]
_0811842E:
ldr r2, =gBattle_WIN0V
ldrh r1, [r2]
movs r0, 0xFF
lsls r0, 8
ands r0, r1
cmp r0, 0
beq _08118442
ldr r3, =0xfffffc04
adds r0, r1, r3
strh r0, [r2]
_08118442:
mov r5, r12
adds r0, r5, r4
lsls r0, 3
mov r2, r8
adds r1, r0, r2
ldrh r2, [r1, 0xC]
movs r3, 0xC
ldrsh r0, [r1, r3]
cmp r0, 0
beq _0811845A
subs r0, r2, 0x2
strh r0, [r1, 0xC]
_0811845A:
movs r3, 0
ldr r5, =gScanlineEffect
mov r9, r5
ldr r7, =gScanlineEffectRegBuffers
mov r6, r9
adds r5, r1, 0
_08118466:
lsls r2, r3, 1
ldrb r1, [r6, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r2, r0
adds r2, r7
ldrh r0, [r5, 0xC]
strh r0, [r2]
adds r3, 0x1
cmp r3, 0x4F
ble _08118466
cmp r3, 0x9F
bgt _081184AA
ldr r7, =gScanlineEffectRegBuffers
ldr r6, =gScanlineEffect
ldr r1, =gTasks
mov r2, r12
adds r0, r2, r4
lsls r0, 3
adds r5, r0, r1
_08118490:
lsls r2, r3, 1
ldrb r1, [r6, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r2, r0
adds r2, r7
ldrh r0, [r5, 0xC]
negs r0, r0
strh r0, [r2]
adds r3, 0x1
cmp r3, 0x9F
ble _08118490
_081184AA:
mov r3, r12
adds r0, r3, r4
lsls r0, 3
mov r5, r8
adds r1, r0, r5
movs r0, 0xC
ldrsh r2, [r1, r0]
cmp r2, 0
bne _0811852A
movs r0, 0x3
mov r3, r9
strb r0, [r3, 0x15]
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
str r2, [sp]
ldr r1, =0x0600e000
ldr r2, =0x05000200
mov r0, sp
bl CpuSet
movs r0, 0x1
movs r1, 0x1
movs r2, 0
bl SetBgAttribute
movs r0, 0x2
movs r1, 0x1
movs r2, 0
bl SetBgAttribute
movs r1, 0x9C
lsls r1, 8
movs r0, 0xA
bl SetGpuReg
movs r1, 0xBC
lsls r1, 7
movs r0, 0xC
bl SetGpuReg
b _0811852A
.pool
_08118524:
adds r0, r4, 0
bl sub_811828C
_0811852A:
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end task_battle_intro_80BC47C
thumb_func_start task00_battle_intro_80BC6C8
task00_battle_intro_80BC6C8: @ 8118538
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
movs r2, 0xA
ldrsh r0, [r0, r2]
adds r2, r1, 0
cmp r0, 0x3
beq _08118578
cmp r0, 0x3
bgt _08118568
cmp r0, 0x2
beq _0811856C
b _08118580
.pool
_08118568:
cmp r0, 0x4
bne _08118580
_0811856C:
ldr r1, =gBattle_BG1_X
ldrh r0, [r1]
adds r0, 0x8
b _0811857E
.pool
_08118578:
ldr r1, =gBattle_BG1_X
ldrh r0, [r1]
adds r0, 0x6
_0811857E:
strh r0, [r1]
_08118580:
lsls r0, r5, 2
adds r1, r0, r5
lsls r1, 3
adds r4, r1, r2
movs r3, 0xA
ldrsh r1, [r4, r3]
adds r6, r0, 0
cmp r1, 0x4
bne _081185E4
ldr r7, =gBattle_BG1_Y
ldrh r0, [r4, 0x14]
bl Cos2
lsls r0, 16
asrs r0, 16
cmp r0, 0
bge _081185A6
ldr r1, =0x000001ff
adds r0, r1
_081185A6:
asrs r0, 9
subs r0, 0x8
strh r0, [r7]
ldrh r1, [r4, 0x14]
movs r2, 0x14
ldrsh r0, [r4, r2]
cmp r0, 0xB3
bgt _081185C8
adds r0, r1, 0x4
b _081185CA
.pool
_081185C8:
adds r0, r1, 0x6
_081185CA:
strh r0, [r4, 0x14]
ldr r2, =gTasks
adds r0, r6, r5
lsls r0, 3
adds r3, r0, r2
movs r0, 0x14
ldrsh r1, [r3, r0]
movs r0, 0xB4
lsls r0, 1
cmp r1, r0
bne _081185E4
movs r0, 0
strh r0, [r3, 0x14]
_081185E4:
adds r0, r6, r5
lsls r0, 3
adds r0, r2
movs r1, 0x8
ldrsh r0, [r0, r1]
cmp r0, 0x4
bls _081185F4
b _0811881A
_081185F4:
lsls r0, 2
ldr r1, =_08118608
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08118608:
.4byte _0811861C
.4byte _0811864C
.4byte _08118678
.4byte _081186C8
.4byte _08118814
_0811861C:
ldr r1, =gTasks
adds r0, r6, r5
lsls r0, 3
adds r2, r0, r1
movs r3, 0x10
strh r3, [r2, 0x10]
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x2
ands r0, r1
cmp r0, 0
beq _08118640
strh r3, [r2, 0xC]
b _08118644
.pool
_08118640:
movs r0, 0x1
strh r0, [r2, 0xC]
_08118644:
ldrh r0, [r2, 0x8]
adds r0, 0x1
strh r0, [r2, 0x8]
b _0811881A
_0811864C:
ldr r0, =gTasks
adds r1, r6, r5
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0xC]
subs r0, 0x1
strh r0, [r1, 0xC]
lsls r0, 16
cmp r0, 0
beq _08118662
b _0811881A
_08118662:
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
movs r0, 0x48
movs r1, 0x3F
bl SetGpuReg
b _0811881A
.pool
_08118678:
ldr r1, =gBattle_WIN0V
ldrh r0, [r1]
subs r0, 0xFF
strh r0, [r1]
movs r1, 0xFF
lsls r1, 8
ands r0, r1
movs r1, 0xC0
lsls r1, 6
cmp r0, r1
beq _08118690
b _0811881A
_08118690:
ldr r0, =gTasks
adds r1, r6, r5
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
movs r0, 0xF0
strh r0, [r1, 0xC]
movs r0, 0x20
strh r0, [r1, 0xE]
movs r0, 0x1
strh r0, [r1, 0x12]
ldr r2, =gIntroSlideFlags
ldrh r1, [r2]
ldr r0, =0x0000fffe
ands r0, r1
strh r0, [r2]
b _0811881A
.pool
_081186C8:
ldr r0, =gTasks
adds r1, r6, r5
lsls r1, 3
adds r1, r0
ldrh r2, [r1, 0xE]
movs r3, 0xE
ldrsh r0, [r1, r3]
cmp r0, 0
beq _08118708
subs r0, r2, 0x1
strh r0, [r1, 0xE]
lsls r0, 16
cmp r0, 0
bne _08118728
ldr r1, =0x00001842
movs r0, 0x50
bl SetGpuReg
movs r0, 0x52
movs r1, 0xF
bl SetGpuReg
movs r0, 0x54
movs r1, 0
bl SetGpuReg
b _08118728
.pool
_08118708:
ldrh r2, [r1, 0x10]
movs r0, 0x1F
ands r0, r2
cmp r0, 0
beq _08118728
ldrh r0, [r1, 0x12]
subs r0, 0x1
strh r0, [r1, 0x12]
lsls r0, 16
cmp r0, 0
bne _08118728
adds r0, r2, 0
adds r0, 0xFF
strh r0, [r1, 0x10]
movs r0, 0x4
strh r0, [r1, 0x12]
_08118728:
ldr r2, =gBattle_WIN0V
ldrh r1, [r2]
movs r0, 0xFF
lsls r0, 8
ands r0, r1
cmp r0, 0
beq _0811873C
ldr r3, =0xfffffc04
adds r0, r1, r3
strh r0, [r2]
_0811873C:
ldr r0, =gTasks
adds r1, r6, r5
lsls r1, 3
adds r1, r0
ldrh r2, [r1, 0xC]
movs r3, 0xC
ldrsh r0, [r1, r3]
cmp r0, 0
beq _08118752
subs r0, r2, 0x2
strh r0, [r1, 0xC]
_08118752:
movs r3, 0
ldr r0, =gScanlineEffect
mov r8, r0
ldr r2, =gScanlineEffectRegBuffers
mov r12, r2
mov r7, r8
adds r4, r1, 0
_08118760:
lsls r2, r3, 1
ldrb r1, [r7, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r2, r0
add r2, r12
ldrh r0, [r4, 0xC]
strh r0, [r2]
adds r3, 0x1
cmp r3, 0x4F
ble _08118760
cmp r3, 0x9F
bgt _081187A4
ldr r0, =gScanlineEffectRegBuffers
mov r12, r0
ldr r7, =gScanlineEffect
ldr r1, =gTasks
adds r0, r6, r5
lsls r0, 3
adds r4, r0, r1
_0811878A:
lsls r2, r3, 1
ldrb r1, [r7, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r2, r0
add r2, r12
ldrh r0, [r4, 0xC]
negs r0, r0
strh r0, [r2]
adds r3, 0x1
cmp r3, 0x9F
ble _0811878A
_081187A4:
ldr r1, =gTasks
adds r0, r6, r5
lsls r0, 3
adds r1, r0, r1
movs r3, 0xC
ldrsh r2, [r1, r3]
cmp r2, 0
bne _0811881A
movs r0, 0x3
mov r3, r8
strb r0, [r3, 0x15]
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
str r2, [sp]
ldr r1, =0x0600e000
ldr r2, =0x05000200
mov r0, sp
bl CpuSet
movs r0, 0x1
movs r1, 0x1
movs r2, 0
bl SetBgAttribute
movs r0, 0x2
movs r1, 0x1
movs r2, 0
bl SetBgAttribute
movs r1, 0x9C
lsls r1, 8
movs r0, 0xA
bl SetGpuReg
movs r1, 0xBC
lsls r1, 7
movs r0, 0xC
bl SetGpuReg
b _0811881A
.pool
_08118814:
adds r0, r5, 0
bl sub_811828C
_0811881A:
ldr r0, =gTasks
adds r1, r6, r5
lsls r1, 3
adds r1, r0
movs r2, 0x8
ldrsh r0, [r1, r2]
cmp r0, 0x4
beq _08118832
ldrh r1, [r1, 0x10]
movs r0, 0x52
bl SetGpuReg
_08118832:
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end task00_battle_intro_80BC6C8
thumb_func_start task_battle_intro_anim
task_battle_intro_anim: @ 8118844
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =gBattle_BG1_X
ldrh r0, [r1]
adds r0, 0x8
strh r0, [r1]
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
movs r2, 0x8
ldrsh r0, [r0, r2]
adds r4, r1, 0
cmp r0, 0x4
bls _0811886E
b _08118A96
_0811886E:
lsls r0, 2
ldr r1, =_08118884
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08118884:
.4byte _08118898
.4byte _081188F0
.4byte _0811891C
.4byte _0811896C
.4byte _08118A90
_08118898:
ldr r1, =0x00001842
movs r0, 0x50
bl SetGpuReg
ldr r4, =0x00000808
movs r0, 0x52
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x54
movs r1, 0
bl SetGpuReg
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r2, r0, r1
strh r4, [r2, 0x10]
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
ldr r1, =0x02000002
ands r0, r1
cmp r0, 0
beq _081188E4
movs r0, 0x10
b _081188E6
.pool
_081188E4:
movs r0, 0x1
_081188E6:
strh r0, [r2, 0xC]
ldrh r0, [r2, 0x8]
adds r0, 0x1
strh r0, [r2, 0x8]
b _08118A96
_081188F0:
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0xC]
subs r0, 0x1
strh r0, [r1, 0xC]
lsls r0, 16
cmp r0, 0
beq _08118908
b _08118A96
_08118908:
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
movs r0, 0x48
movs r1, 0x3F
bl SetGpuReg
b _08118A96
.pool
_0811891C:
ldr r1, =gBattle_WIN0V
ldrh r0, [r1]
subs r0, 0xFF
strh r0, [r1]
movs r1, 0xFF
lsls r1, 8
ands r0, r1
movs r1, 0xC0
lsls r1, 6
cmp r0, r1
beq _08118934
b _08118A96
_08118934:
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
movs r0, 0xF0
strh r0, [r1, 0xC]
movs r0, 0x20
strh r0, [r1, 0xE]
movs r0, 0x1
strh r0, [r1, 0x12]
ldr r2, =gIntroSlideFlags
ldrh r1, [r2]
ldr r0, =0x0000fffe
ands r0, r1
strh r0, [r2]
b _08118A96
.pool
_0811896C:
lsls r0, r5, 2
adds r1, r0, r5
lsls r1, 3
adds r2, r1, r4
ldrh r3, [r2, 0xE]
movs r6, 0xE
ldrsh r1, [r2, r6]
mov r12, r0
cmp r1, 0
beq _08118986
subs r0, r3, 0x1
strh r0, [r2, 0xE]
b _081189A6
_08118986:
ldrh r1, [r2, 0x10]
movs r0, 0xF
ands r0, r1
cmp r0, 0
beq _081189A6
ldrh r0, [r2, 0x12]
subs r0, 0x1
strh r0, [r2, 0x12]
lsls r0, 16
cmp r0, 0
bne _081189A6
adds r0, r1, 0
adds r0, 0xFF
strh r0, [r2, 0x10]
movs r0, 0x6
strh r0, [r2, 0x12]
_081189A6:
ldr r2, =gBattle_WIN0V
ldrh r1, [r2]
movs r0, 0xFF
lsls r0, 8
ands r0, r1
cmp r0, 0
beq _081189BA
ldr r3, =0xfffffc04
adds r0, r1, r3
strh r0, [r2]
_081189BA:
mov r6, r12
adds r0, r6, r5
lsls r0, 3
adds r1, r0, r4
ldrh r2, [r1, 0xC]
movs r3, 0xC
ldrsh r0, [r1, r3]
cmp r0, 0
beq _081189D0
subs r0, r2, 0x2
strh r0, [r1, 0xC]
_081189D0:
movs r3, 0
ldr r6, =gScanlineEffect
mov r8, r6
ldr r7, =gScanlineEffectRegBuffers
adds r4, r1, 0
_081189DA:
lsls r2, r3, 1
ldrb r1, [r6, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r2, r0
adds r2, r7
ldrh r0, [r4, 0xC]
strh r0, [r2]
adds r3, 0x1
cmp r3, 0x4F
ble _081189DA
cmp r3, 0x9F
bgt _08118A1E
ldr r7, =gScanlineEffectRegBuffers
ldr r6, =gScanlineEffect
ldr r1, =gTasks
mov r2, r12
adds r0, r2, r5
lsls r0, 3
adds r4, r0, r1
_08118A04:
lsls r2, r3, 1
ldrb r1, [r6, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r2, r0
adds r2, r7
ldrh r0, [r4, 0xC]
negs r0, r0
strh r0, [r2]
adds r3, 0x1
cmp r3, 0x9F
ble _08118A04
_08118A1E:
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r1, r0, r1
movs r3, 0xC
ldrsh r2, [r1, r3]
cmp r2, 0
bne _08118A96
movs r0, 0x3
mov r6, r8
strb r0, [r6, 0x15]
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
str r2, [sp]
ldr r1, =0x0600e000
ldr r2, =0x05000200
mov r0, sp
bl CpuSet
movs r0, 0x1
movs r1, 0x1
movs r2, 0
bl SetBgAttribute
movs r0, 0x2
movs r1, 0x1
movs r2, 0
bl SetBgAttribute
movs r1, 0x9C
lsls r1, 8
movs r0, 0xA
bl SetGpuReg
movs r1, 0xBC
lsls r1, 7
movs r0, 0xC
bl SetGpuReg
b _08118A96
.pool
_08118A90:
adds r0, r5, 0
bl sub_811828C
_08118A96:
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
movs r2, 0x8
ldrsh r0, [r1, r2]
cmp r0, 0x4
beq _08118AB0
ldrh r1, [r1, 0x10]
movs r0, 0x52
bl SetGpuReg
_08118AB0:
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end task_battle_intro_anim
thumb_func_start task00_battle_intro_wireless
task00_battle_intro_wireless: @ 8118AC0
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x8
lsls r0, 24
lsrs r6, r0, 24
ldr r1, =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r7, r0, r1
movs r1, 0x8
ldrsh r0, [r7, r1]
cmp r0, 0x1
ble _08118B36
movs r2, 0x10
ldrsh r0, [r7, r2]
cmp r0, 0
bne _08118B36
ldr r2, =gBattle_BG1_X
ldrh r1, [r2]
movs r0, 0x80
lsls r0, 8
ands r0, r1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0
bne _08118AFE
cmp r1, 0x4F
bhi _08118B18
_08118AFE:
adds r0, r1, 0x3
strh r0, [r2]
ldr r1, =gBattle_BG2_X
ldrh r0, [r1]
subs r0, 0x3
strh r0, [r1]
b _08118B36
.pool
_08118B18:
str r5, [sp]
ldr r1, =0x0600e000
ldr r4, =0x05000200
mov r0, sp
adds r2, r4, 0
bl CpuSet
str r5, [sp, 0x4]
add r0, sp, 0x4
ldr r1, =0x0600f000
adds r2, r4, 0
bl CpuSet
movs r0, 0x1
strh r0, [r7, 0x10]
_08118B36:
ldr r0, =gTasks
lsls r2, r6, 2
adds r1, r2, r6
lsls r1, 3
adds r1, r0
movs r3, 0x8
ldrsh r1, [r1, r3]
mov r9, r0
adds r5, r2, 0
cmp r1, 0x4
bls _08118B4E
b _08118D5A
_08118B4E:
lsls r0, r1, 2
ldr r1, =_08118B6C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08118B6C:
.4byte _08118B80
.4byte _08118B92
.4byte _08118C38
.4byte _08118C7C
.4byte _08118D54
_08118B80:
adds r0, r5, r6
lsls r0, 3
add r0, r9
movs r1, 0x20
strh r1, [r0, 0xC]
ldrh r1, [r0, 0x8]
adds r1, 0x1
strh r1, [r0, 0x8]
b _08118D5A
_08118B92:
adds r0, r5, r6
lsls r0, 3
mov r2, r9
adds r1, r0, r2
ldrh r0, [r1, 0xC]
subs r0, 0x1
strh r0, [r1, 0xC]
lsls r0, 16
cmp r0, 0
beq _08118BA8
b _08118D5A
_08118BA8:
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
ldr r4, =gSprites
ldr r5, =gBattleStruct
ldr r0, [r5]
adds r0, 0x7D
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
ldrb r3, [r1, 0x1]
movs r2, 0xD
negs r2, r2
adds r0, r2, 0
ands r0, r3
movs r3, 0x8
mov r9, r3
mov r3, r9
orrs r0, r3
strb r0, [r1, 0x1]
ldr r3, [r5]
adds r0, r3, 0
adds r0, 0x7D
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
movs r1, 0x1C
adds r1, r4
mov r8, r1
add r0, r8
ldr r6, =sub_8038B74
str r6, [r0]
adds r3, 0x7E
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r1, [r0, 0x1]
ands r2, r1
mov r3, r9
orrs r2, r3
strb r2, [r0, 0x1]
ldr r0, [r5]
adds r0, 0x7E
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r8
str r6, [r0]
movs r0, 0x48
movs r1, 0x3F
bl SetGpuReg
ldr r1, =0x00003f06
movs r0, 0x4A
bl SetGpuReg
b _08118D5A
.pool
_08118C38:
ldr r1, =gBattle_WIN0V
ldrh r0, [r1]
subs r0, 0xFF
strh r0, [r1]
movs r1, 0xFF
lsls r1, 8
ands r0, r1
movs r1, 0xC0
lsls r1, 6
cmp r0, r1
beq _08118C50
b _08118D5A
_08118C50:
adds r1, r5, r6
lsls r1, 3
add r1, r9
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
movs r0, 0xF0
strh r0, [r1, 0xC]
movs r0, 0x20
strh r0, [r1, 0xE]
ldr r2, =gIntroSlideFlags
ldrh r1, [r2]
ldr r0, =0x0000fffe
ands r0, r1
strh r0, [r2]
b _08118D5A
.pool
_08118C7C:
ldr r2, =gBattle_WIN0V
ldrh r1, [r2]
movs r0, 0xFF
lsls r0, 8
ands r0, r1
cmp r0, 0
beq _08118C90
ldr r3, =0xfffffc04
adds r0, r1, r3
strh r0, [r2]
_08118C90:
adds r0, r5, r6
lsls r0, 3
mov r2, r9
adds r1, r0, r2
ldrh r2, [r1, 0xC]
movs r3, 0xC
ldrsh r0, [r1, r3]
cmp r0, 0
beq _08118CA6
subs r0, r2, 0x2
strh r0, [r1, 0xC]
_08118CA6:
movs r3, 0
ldr r0, =gScanlineEffect
mov r12, r0
ldr r2, =gScanlineEffectRegBuffers
mov r8, r2
mov r7, r12
adds r4, r1, 0
_08118CB4:
lsls r2, r3, 1
ldrb r1, [r7, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r2, r0
add r2, r8
ldrh r0, [r4, 0xC]
strh r0, [r2]
adds r3, 0x1
cmp r3, 0x4F
ble _08118CB4
cmp r3, 0x9F
bgt _08118CF8
ldr r0, =gScanlineEffectRegBuffers
mov r8, r0
ldr r7, =gScanlineEffect
ldr r1, =gTasks
adds r0, r5, r6
lsls r0, 3
adds r4, r0, r1
_08118CDE:
lsls r2, r3, 1
ldrb r1, [r7, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r2, r0
add r2, r8
ldrh r0, [r4, 0xC]
negs r0, r0
strh r0, [r2]
adds r3, 0x1
cmp r3, 0x9F
ble _08118CDE
_08118CF8:
adds r0, r5, r6
lsls r0, 3
mov r2, r9
adds r1, r0, r2
movs r3, 0xC
ldrsh r0, [r1, r3]
cmp r0, 0
bne _08118D5A
movs r0, 0x3
mov r2, r12
strb r0, [r2, 0x15]
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
movs r0, 0x1
movs r1, 0x1
movs r2, 0
bl SetBgAttribute
movs r0, 0x2
movs r1, 0x1
movs r2, 0
bl SetBgAttribute
movs r1, 0x9C
lsls r1, 8
movs r0, 0xA
bl SetGpuReg
movs r1, 0xBC
lsls r1, 7
movs r0, 0xC
bl SetGpuReg
b _08118D5A
.pool
_08118D54:
adds r0, r6, 0
bl sub_811828C
_08118D5A:
add sp, 0x8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end task00_battle_intro_wireless
thumb_func_start sub_8118D68
sub_8118D68: @ 8118D68
push {r4-r6,lr}
sub sp, 0x4
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
movs r2, 0x8
ldrsh r0, [r0, r2]
adds r6, r1, 0
cmp r0, 0x5
bls _08118D86
b _08118FB2
_08118D86:
lsls r0, 2
ldr r1, =_08118D98
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08118D98:
.4byte _08118DB0
.4byte _08118DBE
.4byte _08118E4C
.4byte _08118EA8
.4byte _08118F00
.4byte _08118FAC
_08118DB0:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r6
movs r1, 0x1
strh r1, [r0, 0xC]
b _08118F84
_08118DBE:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r1, r0, r6
ldrh r0, [r1, 0xC]
subs r0, 0x1
strh r0, [r1, 0xC]
lsls r0, 16
cmp r0, 0
beq _08118DD4
b _08118FB2
_08118DD4:
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
ldr r1, =0x00005c0a
movs r0, 0xA
bl SetGpuReg
ldr r1, =0x00005e0a
movs r0, 0xC
bl SetGpuReg
movs r0, 0
bl GetGpuReg
adds r1, r0, 0
ldr r2, =0x0000f040
adds r0, r2, 0
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0
bl SetGpuReg
movs r1, 0xF8
lsls r1, 6
movs r0, 0x48
bl SetGpuReg
ldr r1, =0x00003f3f
movs r0, 0x4A
bl SetGpuReg
ldr r1, =gBattle_BG0_Y
ldr r2, =0x0000ffd0
adds r0, r2, 0
strh r0, [r1]
ldr r1, =gBattle_BG1_X
movs r0, 0xF0
strh r0, [r1]
ldr r1, =gBattle_BG2_X
subs r2, 0xC0
adds r0, r2, 0
strh r0, [r1]
b _08118FB2
.pool
_08118E4C:
ldr r2, =gBattle_WIN0V
ldrh r3, [r2]
movs r1, 0x80
lsls r1, 1
adds r0, r1, 0
adds r1, r3, r0
strh r1, [r2]
movs r5, 0xFF
lsls r5, 8
ands r1, r5
lsls r0, 16
lsrs r0, 16
cmp r1, r0
beq _08118E6E
adds r0, r3, 0
adds r0, 0xFF
strh r0, [r2]
_08118E6E:
ldrh r0, [r2]
adds r1, r5, 0
ands r1, r0
movs r0, 0x80
lsls r0, 6
cmp r1, r0
beq _08118E7E
b _08118FB2
_08118E7E:
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r6
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
movs r0, 0xF0
strh r0, [r1, 0xC]
ldr r2, =gIntroSlideFlags
ldrh r1, [r2]
ldr r0, =0x0000fffe
ands r0, r1
strh r0, [r2]
b _08118FB2
.pool
_08118EA8:
ldr r3, =gBattle_WIN0V
ldrh r2, [r3]
movs r0, 0xFF
lsls r0, 8
ands r0, r2
movs r1, 0x98
lsls r1, 7
cmp r0, r1
beq _08118EC2
movs r1, 0xFF
lsls r1, 2
adds r0, r2, r1
strh r0, [r3]
_08118EC2:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r3, r0, r6
ldrh r1, [r3, 0xC]
movs r2, 0xC
ldrsh r0, [r3, r2]
cmp r0, 0
beq _08118ED8
subs r0, r1, 0x2
strh r0, [r3, 0xC]
_08118ED8:
ldr r1, =gBattle_BG1_X
ldrh r0, [r3, 0xC]
strh r0, [r1]
ldr r2, =gBattle_BG2_X
negs r1, r0
strh r1, [r2]
lsls r0, 16
cmp r0, 0
bne _08118FB2
ldrh r0, [r3, 0x8]
adds r0, 0x1
strh r0, [r3, 0x8]
b _08118FB2
.pool
_08118F00:
ldr r1, =gBattle_BG0_Y
ldrh r0, [r1]
adds r3, r0, 0x2
strh r3, [r1]
ldr r1, =gBattle_BG2_Y
ldrh r0, [r1]
adds r0, 0x2
strh r0, [r1]
ldr r5, =gBattle_WIN0V
ldrh r2, [r5]
movs r0, 0xFF
lsls r0, 8
ands r0, r2
movs r1, 0xA0
lsls r1, 7
cmp r0, r1
beq _08118F28
adds r0, r2, 0
adds r0, 0xFF
strh r0, [r5]
_08118F28:
lsls r0, r3, 16
lsrs r0, 16
cmp r0, 0
bne _08118FB2
str r0, [sp]
ldr r1, =0x0600e000
ldr r2, =0x05000800
mov r0, sp
bl CpuSet
movs r0, 0
bl GetGpuReg
ldr r1, =0x0000bfff
ands r1, r0
movs r0, 0
bl SetGpuReg
movs r0, 0x1
movs r1, 0x1
movs r2, 0
bl SetBgAttribute
movs r0, 0x2
movs r1, 0x1
movs r2, 0
bl SetBgAttribute
movs r1, 0x9C
lsls r1, 8
movs r0, 0xA
bl SetGpuReg
movs r1, 0xBC
lsls r1, 7
movs r0, 0xC
bl SetGpuReg
ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
_08118F84:
ldrh r1, [r0, 0x8]
adds r1, 0x1
strh r1, [r0, 0x8]
b _08118FB2
.pool
_08118FAC:
adds r0, r4, 0
bl sub_811828C
_08118FB2:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8118D68
thumb_func_start sub_8118FBC
sub_8118FBC: @ 8118FBC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
str r0, [sp]
adds r6, r2, 0
adds r4, r3, 0
ldr r0, [sp, 0x24]
ldr r7, [sp, 0x28]
ldr r2, [sp, 0x2C]
mov r9, r2
ldr r5, [sp, 0x30]
lsls r1, 24
lsrs r1, 24
mov r8, r1
lsls r6, 24
lsrs r6, 24
lsls r4, 24
lsrs r4, 24
lsls r0, 24
lsrs r0, 24
mov r10, r0
lsls r5, 16
lsrs r5, 16
adds r0, r4, 0
bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
ldr r1, =gMonSpritesGfxPtr
ldr r2, [r1]
lsls r4, 2
adds r2, 0x4
adds r2, r4
ldr r1, =gBattleMonForms
adds r0, r1
ldrb r1, [r0]
lsls r1, 11
ldr r0, [r2]
adds r0, r1
movs r2, 0x80
lsls r2, 3
adds r1, r7, 0
bl CpuSet
ldr r1, [sp]
lsls r0, r1, 24
lsrs r0, 24
movs r2, 0x80
lsls r2, 5
adds r1, r7, 0
adds r3, r5, 0
bl LoadBgTiles
adds r0, r6, 0
adds r0, 0x8
cmp r6, r0
bge _08119068
mov r12, r0
mov r2, r8
lsls r7, r2, 1
_0811903A:
mov r1, r8
adds r2, r1, 0
adds r2, 0x8
adds r4, r6, 0x1
cmp r1, r2
bge _08119062
mov r0, r10
lsls r3, r0, 12
lsls r0, r6, 6
add r0, r9
adds r6, r7, r0
subs r1, r2, r1
_08119052:
adds r0, r5, 0
orrs r0, r3
strh r0, [r6]
adds r5, 0x1
adds r6, 0x2
subs r1, 0x1
cmp r1, 0
bne _08119052
_08119062:
adds r6, r4, 0
cmp r6, r12
blt _0811903A
_08119068:
ldr r1, [sp]
lsls r0, r1, 24
lsrs r0, 24
movs r2, 0x80
lsls r2, 4
mov r1, r9
movs r3, 0
bl LoadBgTilemap
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8118FBC
thumb_func_start sub_8119094
sub_8119094: @ 8119094
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
ldr r4, [sp, 0x24]
ldr r5, [sp, 0x28]
mov r8, r5
ldr r5, [sp, 0x2C]
ldr r6, [sp, 0x30]
mov r9, r6
lsls r0, 24
lsrs r0, 24
mov r12, r0
lsls r1, 24
lsls r2, 24
lsls r3, 24
lsls r4, 24
lsrs r4, 24
mov r10, r4
mov r7, r8
lsls r7, 16
lsrs r6, r7, 16
lsls r5, 24
lsrs r5, 24
mov r0, r9
lsls r0, 24
mov r9, r0
ldr r4, =0x040000d4
ldr r0, =gMonSpritesGfxPtr
ldr r0, [r0]
lsrs r2, 22
adds r0, 0x4
adds r0, r2
lsrs r3, 13
ldr r0, [r0]
adds r0, r3
str r0, [r4]
movs r0, 0xC0
lsls r0, 19
adds r6, r0
str r6, [r4, 0x4]
ldr r0, =0x80000400
str r0, [r4, 0x8]
ldr r0, [r4, 0x8]
adds r2, r7, 0
lsrs r2, 21
mov r6, r9
lsrs r6, 15
subs r4, r2, r6
lsrs r0, r1, 24
adds r1, r0, 0
adds r1, 0x8
cmp r0, r1
bge _08119148
mov r9, r1
mov r7, r12
lsls r7, 1
mov r8, r7
lsls r5, 11
str r5, [sp]
_08119110:
mov r2, r12
adds r3, r2, 0
adds r3, 0x8
adds r5, r0, 0x1
cmp r2, r3
bge _08119142
mov r1, r10
lsls r6, r1, 12
lsls r0, 6
movs r7, 0xC0
lsls r7, 19
adds r0, r7
ldr r1, [sp]
adds r0, r1, r0
mov r7, r8
adds r1, r7, r0
subs r2, r3, r2
_08119132:
adds r0, r4, 0
orrs r0, r6
strh r0, [r1]
adds r4, 0x1
adds r1, 0x2
subs r2, 0x1
cmp r2, 0
bne _08119132
_08119142:
adds r0, r5, 0
cmp r0, r9
blt _08119110
_08119148:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8119094
.align 2, 0 @ Don't pad with nop.