summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/battle_anim_80FE840.s52267
-rw-r--r--asm/battle_anim_effects_1.s9550
-rw-r--r--asm/battle_anim_effects_2.s7544
-rw-r--r--asm/battle_anim_utility_funcs.s3059
-rw-r--r--asm/battle_intro.s2035
-rw-r--r--asm/bug.s791
-rw-r--r--asm/dark.s2199
-rw-r--r--asm/dragon.s793
-rw-r--r--asm/electric.s2547
-rw-r--r--asm/fight.s1649
-rw-r--r--asm/fire.s2397
-rw-r--r--asm/flying.s2551
-rw-r--r--asm/ghost.s3251
-rw-r--r--asm/ground.s1675
-rw-r--r--asm/ice.s2944
-rw-r--r--asm/normal.s1876
-rw-r--r--asm/poison.s306
-rw-r--r--asm/psychic.s2172
-rw-r--r--asm/rock.s1469
-rw-r--r--asm/water.s3607
20 files changed, 52415 insertions, 52267 deletions
diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s
deleted file mode 100644
index 620940730..000000000
--- a/asm/battle_anim_80FE840.s
+++ /dev/null
@@ -1,52267 +0,0 @@
- .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 InitAnimLinearTranslation
- 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 TranslateAnimLinear
- 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 TranslateAnimArc
- 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 TranslateAnimArc
- 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 InitAnimLinearTranslation
- 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 TranslateAnimLinear
- 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 InitAnimLinearTranslation
- 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 TranslateAnimLinear
- 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 SetAverageBattlerPositions
- 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 TranslateAnimArc
- 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 SetAverageBattlerPositions
-_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 TranslateAnimArc
- 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 TranslateAnimArc
- 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 TranslateAnimArc
- 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 TranslateAnimArc
- 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 TranslateAnimArc
- 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 TranslateAnimArc
- 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 TranslateAnimArc
- 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 ArcTan2Neg
- 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 GetBattlerSpriteCoord2
- 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 GetBattlerSpriteCoord2
- 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 SetAverageBattlerPositions
- 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 InitAnimLinearTranslation
- 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 TranslateAnimLinear
- 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 ArcTan2Neg
- 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 SetAverageBattlerPositions
- 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 ArcTan2Neg
- 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 InitAnimLinearTranslation
- 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 TranslateAnimLinear
- 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 TranslateAnimLinear
- 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 GetBattlerYCoordWithElevation
- 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 GetBattlerYCoordWithElevation
- 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 SetAverageBattlerPositions
- 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 TranslateAnimLinear
- 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 SetAverageBattlerPositions
- 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 InitAnimLinearTranslation
- 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 InitAnimLinearTranslation
- 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 TranslateAnimLinear
- 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 SetAverageBattlerPositions
- 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 InitAnimLinearTranslation
- 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 TranslateAnimLinear
- 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 InitAnimLinearTranslation
- 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 TranslateAnimLinear
- 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 InitAnimLinearTranslation
- 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 TranslateAnimLinear
- 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 TranslateAnimArc
- 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 TranslateAnimArc
- 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 InitAnimLinearTranslation
- 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 TranslateAnimLinear
- 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 TranslateAnimLinear
- 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 InitAnimLinearTranslation
- 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 TranslateAnimLinear
- 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 InitAnimLinearTranslation
- 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 TranslateAnimLinear
- 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 SetAverageBattlerPositions
- 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 SetAverageBattlerPositions
-_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 SetAverageBattlerPositions
-_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 SetAverageBattlerPositions
- 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 SetAverageBattlerPositions
- 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 SetAverageBattlerPositions
- 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 InitAnimLinearTranslation
- 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 TranslateAnimLinear
- 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, =TranslateAnimSpriteToTargetMonLocation
- 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 InitAnimLinearTranslation
- 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 TranslateAnimLinear
- 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 InitAnimLinearTranslation
- b _0810C90C
- .pool
-_0810C7BC:
- adds r0, r4, 0
- bl TranslateAnimLinear
- 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 TranslateAnimLinear
- 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 TranslateAnimArc
- 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 InitAnimLinearTranslation
- 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 TranslateAnimLinear
- 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 InitAnimLinearTranslation
- 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 InitAnimLinearTranslation
- 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 TranslateAnimArc
- 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 SetAverageBattlerPositions
- 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 TranslateAnimArc
- 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 SetAverageBattlerPositions
- 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 SetAverageBattlerPositions
- 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 InitAnimLinearTranslation
- 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 TranslateAnimLinear
- 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 SetAverageBattlerPositions
-_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 InitAnimLinearTranslation
- 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 TranslateAnimLinear
- 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, =TranslateAnimSpriteToTargetMonLocation
- 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 ArcTan2Neg
- 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 TranslateAnimArc
- 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 GetBattlerYCoordWithElevation
- 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 GetBattlerSpriteCoord2
- 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 GetBattlerSpriteCoord2
- 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 GetBattlerSpriteCoord2
- 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 GetBattlerSpriteCoord2
- 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 SetAverageBattlerPositions
-_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 TranslateAnimLinear
- 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 SetAverageBattlerPositions
- 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 ArcTan2Neg
- 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 TranslateAnimArc
- 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 TranslateAnimArc
- 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 ArcTan2Neg
- 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 SetAverageBattlerPositions
-_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 TranslateAnimArc
- 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 TranslateAnimSpriteToTargetMonLocation
- 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 TranslateAnimLinear
- 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 TranslateAnimLinear
- 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 GetBattlerYCoordWithElevation
- 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 GetBattlerYCoordWithElevation
- 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 TranslateAnimArc
- 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 TranslateAnimArc
- 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 TranslateAnimArc
- 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 GetBattlerSpriteCoord2
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord2
- 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 GetBattlerYCoordWithElevation
- 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 GetBattlerYCoordWithElevation
- 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 GetBattlerYCoordWithElevation
- 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 TranslateAnimArc
- 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 GetBattlerYCoordWithElevation
- 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 GetAnimBgAttribute
-GetAnimBgAttribute: @ 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 GetAnimBgAttribute
-
- 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.
diff --git a/asm/battle_anim_effects_1.s b/asm/battle_anim_effects_1.s
new file mode 100644
index 000000000..138cc271e
--- /dev/null
+++ b/asm/battle_anim_effects_1.s
@@ -0,0 +1,9550 @@
+ .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 InitAnimLinearTranslation
+ 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 TranslateAnimLinear
+ 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 TranslateAnimArc
+ 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 TranslateAnimArc
+ 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 InitAnimLinearTranslation
+ 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 TranslateAnimLinear
+ 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 InitAnimLinearTranslation
+ 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 TranslateAnimLinear
+ 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 SetAverageBattlerPositions
+ 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 TranslateAnimArc
+ 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 SetAverageBattlerPositions
+_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 TranslateAnimArc
+ 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 TranslateAnimArc
+ 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 TranslateAnimArc
+ 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 TranslateAnimArc
+ 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 TranslateAnimArc
+ 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 TranslateAnimArc
+ 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 TranslateAnimArc
+ 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 ArcTan2Neg
+ 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 GetBattlerSpriteCoord2
+ 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 GetBattlerSpriteCoord2
+ 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 SetAverageBattlerPositions
+ 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 InitAnimLinearTranslation
+ 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 TranslateAnimLinear
+ 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
+
+ .align 2, 0
diff --git a/asm/battle_anim_effects_2.s b/asm/battle_anim_effects_2.s
new file mode 100644
index 000000000..8ace81dbb
--- /dev/null
+++ b/asm/battle_anim_effects_2.s
@@ -0,0 +1,7544 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ 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 ArcTan2Neg
+ 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 SetAverageBattlerPositions
+ 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 ArcTan2Neg
+ 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 InitAnimLinearTranslation
+ 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 TranslateAnimLinear
+ 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 TranslateAnimLinear
+ 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 GetBattlerYCoordWithElevation
+ 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 GetBattlerYCoordWithElevation
+ 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 SetAverageBattlerPositions
+ 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 TranslateAnimLinear
+ 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 SetAverageBattlerPositions
+ 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 InitAnimLinearTranslation
+ 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 InitAnimLinearTranslation
+ 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 TranslateAnimLinear
+ 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 SetAverageBattlerPositions
+ 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
+
+ .align 2, 0
diff --git a/asm/battle_anim_utility_funcs.s b/asm/battle_anim_utility_funcs.s
new file mode 100644
index 000000000..138d303ac
--- /dev/null
+++ b/asm/battle_anim_utility_funcs.s
@@ -0,0 +1,3059 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ 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
+
+ .align 2, 0
diff --git a/asm/battle_intro.s b/asm/battle_intro.s
new file mode 100644
index 000000000..04a0301ce
--- /dev/null
+++ b/asm/battle_intro.s
@@ -0,0 +1,2035 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ 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 GetAnimBgAttribute
+GetAnimBgAttribute: @ 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 GetAnimBgAttribute
+
+ 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.
diff --git a/asm/bug.s b/asm/bug.s
new file mode 100644
index 000000000..36ac05ace
--- /dev/null
+++ b/asm/bug.s
@@ -0,0 +1,791 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ 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 GetBattlerSpriteCoord2
+ 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 GetBattlerSpriteCoord2
+ 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 GetBattlerSpriteCoord2
+ 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 GetBattlerSpriteCoord2
+ 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 SetAverageBattlerPositions
+_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 TranslateAnimLinear
+ 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 SetAverageBattlerPositions
+ 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 ArcTan2Neg
+ 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 TranslateAnimArc
+ 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 TranslateAnimArc
+ 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 ArcTan2Neg
+ 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
+
+ .align 2, 0
diff --git a/asm/dark.s b/asm/dark.s
new file mode 100644
index 000000000..07f24d27e
--- /dev/null
+++ b/asm/dark.s
@@ -0,0 +1,2199 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ 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 TranslateAnimArc
+ 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
+
+ .align 2, 0
diff --git a/asm/dragon.s b/asm/dragon.s
new file mode 100644
index 000000000..dc3ca1d0b
--- /dev/null
+++ b/asm/dragon.s
@@ -0,0 +1,793 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ 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 GetBattlerYCoordWithElevation
+ 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
+
+ .align 2, 0
diff --git a/asm/electric.s b/asm/electric.s
new file mode 100644
index 000000000..3d8864186
--- /dev/null
+++ b/asm/electric.s
@@ -0,0 +1,2547 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ 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 InitAnimLinearTranslation
+ 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 TranslateAnimLinear
+ 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 InitAnimLinearTranslation
+ 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 TranslateAnimLinear
+ 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
+
+ .align 2, 0
diff --git a/asm/fight.s b/asm/fight.s
new file mode 100644
index 000000000..508b942bc
--- /dev/null
+++ b/asm/fight.s
@@ -0,0 +1,1649 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ 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 InitAnimLinearTranslation
+ 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 TranslateAnimLinear
+ 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 InitAnimLinearTranslation
+ 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 InitAnimLinearTranslation
+ 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
+
+ .align 2, 0
diff --git a/asm/fire.s b/asm/fire.s
new file mode 100644
index 000000000..e7ca3072b
--- /dev/null
+++ b/asm/fire.s
@@ -0,0 +1,2397 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ 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 InitAnimLinearTranslation
+ 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 TranslateAnimLinear
+ 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 TranslateAnimLinear
+ 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
+
+ .align 2, 0
diff --git a/asm/flying.s b/asm/flying.s
new file mode 100644
index 000000000..87ba79c91
--- /dev/null
+++ b/asm/flying.s
@@ -0,0 +1,2551 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ 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 InitAnimLinearTranslation
+ 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 TranslateAnimLinear
+ 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 SetAverageBattlerPositions
+_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 InitAnimLinearTranslation
+ 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 TranslateAnimLinear
+ 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, =TranslateAnimSpriteToTargetMonLocation
+ 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 ArcTan2Neg
+ 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
+
+ .align 2, 0
diff --git a/asm/ghost.s b/asm/ghost.s
new file mode 100644
index 000000000..8b16d94c5
--- /dev/null
+++ b/asm/ghost.s
@@ -0,0 +1,3251 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ 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 TranslateAnimLinear
+ 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 TranslateAnimLinear
+ 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 GetBattlerYCoordWithElevation
+ 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
+
+ .align 2, 0
diff --git a/asm/ground.s b/asm/ground.s
new file mode 100644
index 000000000..c5f3d80b6
--- /dev/null
+++ b/asm/ground.s
@@ -0,0 +1,1675 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ 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 TranslateAnimArc
+ 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 TranslateAnimArc
+ 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 GetBattlerSpriteCoord2
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord2
+ 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 GetBattlerYCoordWithElevation
+ 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 GetBattlerYCoordWithElevation
+ 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 GetBattlerYCoordWithElevation
+ 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 TranslateAnimArc
+ 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 GetBattlerYCoordWithElevation
+ 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
+
+ .align 2, 0
diff --git a/asm/ice.s b/asm/ice.s
new file mode 100644
index 000000000..bc55ba804
--- /dev/null
+++ b/asm/ice.s
@@ -0,0 +1,2944 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ 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 SetAverageBattlerPositions
+ 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 SetAverageBattlerPositions
+_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 SetAverageBattlerPositions
+_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 SetAverageBattlerPositions
+ 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 SetAverageBattlerPositions
+ 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 SetAverageBattlerPositions
+ 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 InitAnimLinearTranslation
+ 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 TranslateAnimLinear
+ 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, =TranslateAnimSpriteToTargetMonLocation
+ 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 InitAnimLinearTranslation
+ 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 TranslateAnimLinear
+ 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 InitAnimLinearTranslation
+ b _0810C90C
+ .pool
+_0810C7BC:
+ adds r0, r4, 0
+ bl TranslateAnimLinear
+ 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 TranslateAnimLinear
+ 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 TranslateAnimArc
+ 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
+
+ .align 2, 0
diff --git a/asm/normal.s b/asm/normal.s
new file mode 100644
index 000000000..b52477221
--- /dev/null
+++ b/asm/normal.s
@@ -0,0 +1,1876 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ 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
+
+ .align 2, 0
diff --git a/asm/poison.s b/asm/poison.s
new file mode 100644
index 000000000..22f6c3971
--- /dev/null
+++ b/asm/poison.s
@@ -0,0 +1,306 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ 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 TranslateAnimArc
+ 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 SetAverageBattlerPositions
+ 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 TranslateAnimArc
+ 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 SetAverageBattlerPositions
+ 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 SetAverageBattlerPositions
+ 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
+
+ .align 2, 0
diff --git a/asm/psychic.s b/asm/psychic.s
new file mode 100644
index 000000000..8cd95d95a
--- /dev/null
+++ b/asm/psychic.s
@@ -0,0 +1,2172 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ 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
+ .pool
+ 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 TranslateAnimArc
+ 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 GetBattlerYCoordWithElevation
+ 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
+
+ .align 2, 0
diff --git a/asm/rock.s b/asm/rock.s
new file mode 100644
index 000000000..ed8147600
--- /dev/null
+++ b/asm/rock.s
@@ -0,0 +1,1469 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ 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 SetAverageBattlerPositions
+_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 TranslateAnimArc
+ 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 TranslateAnimSpriteToTargetMonLocation
+ 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
+
+ .align 2, 0
diff --git a/asm/water.s b/asm/water.s
new file mode 100644
index 000000000..cce11a615
--- /dev/null
+++ b/asm/water.s
@@ -0,0 +1,3607 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ 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 InitAnimLinearTranslation
+ 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 TranslateAnimLinear
+ 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 InitAnimLinearTranslation
+ 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 TranslateAnimLinear
+ 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 InitAnimLinearTranslation
+ 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 TranslateAnimLinear
+ 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 TranslateAnimArc
+ 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 TranslateAnimArc
+ 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
+
+ .align 2, 0