summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgarak <garakmon@gmail.com>2019-05-23 16:31:12 -0400
committergarak <garakmon@gmail.com>2019-05-23 16:31:12 -0400
commit2f336c05bfc1c28db81d85a74056305e42a32fff (patch)
treebce4bb9cac06c9d5213f7ac10b071806eb678cd6
parent4ea6dcc4ab7808826d27204b6043b318b1c25dd4 (diff)
split battle anim effects 1 and 2, fire, water, and electric
-rw-r--r--asm/battle_anim_80A22E8.s26738
-rw-r--r--asm/battle_anim_effects_1.s9882
-rw-r--r--asm/battle_anim_effects_2.s7946
-rw-r--r--asm/electric.s2675
-rw-r--r--asm/fire.s2500
-rw-r--r--asm/water.s3775
-rw-r--r--ld_script.txt5
7 files changed, 26783 insertions, 26738 deletions
diff --git a/asm/battle_anim_80A22E8.s b/asm/battle_anim_80A22E8.s
index fda553750..18e22078e 100644
--- a/asm/battle_anim_80A22E8.s
+++ b/asm/battle_anim_80A22E8.s
@@ -5,26744 +5,6 @@
.text
- thumb_func_start sub_80A22E8
-sub_80A22E8: @ 80A22E8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080A231C @ =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, _080A2320 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A2324
- ldrh r0, [r5, 0x8]
- negs r0, r0
- b _080A2326
- .align 2, 0
-_080A231C: .4byte gBattleAnimArgs
-_080A2320: .4byte gBattleAnimAttacker
-_080A2324:
- ldrh r0, [r5, 0x8]
-_080A2326:
- strh r0, [r4, 0x34]
- ldr r0, _080A2338 @ =gBattleAnimArgs
- ldrh r0, [r0, 0xA]
- strh r0, [r4, 0x36]
- ldr r0, _080A233C @ =sub_80A2340
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2338: .4byte gBattleAnimArgs
-_080A233C: .4byte sub_80A2340
- thumb_func_end sub_80A22E8
-
- thumb_func_start sub_80A2340
-sub_80A2340: @ 80A2340
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A237C
- 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 _080A2382
-_080A237C:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A2382:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2340
-
- thumb_func_start sub_80A2388
-sub_80A2388: @ 80A2388
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r0, _080A23C8 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r5, _080A23CC @ =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080A23D0 @ =sub_8075590
- str r0, [r4, 0x1C]
- ldr r1, _080A23D4 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A23C8: .4byte gBattleAnimArgs
-_080A23CC: .4byte gBattleAnimAttacker
-_080A23D0: .4byte sub_8075590
-_080A23D4: .4byte move_anim_8074EE0
- thumb_func_end sub_80A2388
-
- thumb_func_start sub_80A23D8
-sub_80A23D8: @ 80A23D8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r5, _080A2420 @ =gBattleAnimArgs
- ldrb r1, [r5, 0x6]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldr r5, _080A2424 @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080A2428 @ =sub_8075590
- str r0, [r4, 0x1C]
- ldr r1, _080A242C @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2420: .4byte gBattleAnimArgs
-_080A2424: .4byte gBattleAnimTarget
-_080A2428: .4byte sub_8075590
-_080A242C: .4byte DestroyAnimSprite
- thumb_func_end sub_80A23D8
-
- thumb_func_start sub_80A2430
-sub_80A2430: @ 80A2430
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r6, _080A2480 @ =gBattleAnimArgs
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r5, _080A2484 @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- 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 sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r6, 0x6]
- strh r0, [r4, 0x38]
- ldr r1, _080A2488 @ =sub_80A248C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2480: .4byte gBattleAnimArgs
-_080A2484: .4byte gBattleAnimTarget
-_080A2488: .4byte sub_80A248C
- thumb_func_end sub_80A2430
-
- thumb_func_start sub_80A248C
-sub_80A248C: @ 80A248C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _080A24A2
- adds r0, r4, 0
- bl DestroySprite
- b _080A24F6
-_080A24A2:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- ble _080A24BC
- ldr r0, _080A24B8 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_807685C
- adds r0, 0x1
- b _080A24C6
- .align 2, 0
-_080A24B8: .4byte gBattleAnimTarget
-_080A24BC:
- ldr r0, _080A24FC @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_807685C
- adds r0, 0x6
-_080A24C6:
- 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]
-_080A24F6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A24FC: .4byte gBattleAnimTarget
- thumb_func_end sub_80A248C
-
- thumb_func_start sub_80A2500
-sub_80A2500: @ 80A2500
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080A2570 @ =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 _080A255A
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- movs r0, 0x6
- strh r0, [r5, 0x8]
- ldr r1, _080A2574 @ =gBattleAnimArgs
- movs r0, 0xF
- strh r0, [r1]
- strh r2, [r1, 0x2]
- movs r0, 0x50
- strh r0, [r1, 0x4]
- strh r2, [r1, 0x6]
- ldr r4, _080A2578 @ =gUnknown_83E2A88
- ldr r0, _080A257C @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_807685C
- 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
-_080A255A:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0xF
- bne _080A2568
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080A2568:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2570: .4byte gTasks
-_080A2574: .4byte gBattleAnimArgs
-_080A2578: .4byte gUnknown_83E2A88
-_080A257C: .4byte gBattleAnimTarget
- thumb_func_end sub_80A2500
-
- thumb_func_start sub_80A2580
-sub_80A2580: @ 80A2580
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075114
- ldr r6, _080A25C4 @ =gBattleAnimArgs
- ldrh r0, [r6, 0x6]
- strh r0, [r4, 0x2E]
- ldr r5, _080A25C8 @ =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_8075068
- ldr r0, _080A25CC @ =sub_80A25D0
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A25C4: .4byte gBattleAnimArgs
-_080A25C8: .4byte gBattleAnimAttacker
-_080A25CC: .4byte sub_80A25D0
- thumb_func_end sub_80A2580
-
- thumb_func_start sub_80A25D0
-sub_80A25D0: @ 80A25D0
- push {r4,lr}
- adds r4, r0, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080A25E4
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A25E4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A25D0
-
- thumb_func_start sub_80A25EC
-sub_80A25EC: @ 80A25EC
- push {r4,r5,lr}
- adds r5, r0, 0
- bl Random
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x7
- ands r1, r0
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r4, _080A2634 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A2638
- ldrh r0, [r5, 0x20]
- subs r0, 0x14
- b _080A263C
- .align 2, 0
-_080A2634: .4byte gBattleAnimAttacker
-_080A2638:
- ldrh r0, [r5, 0x20]
- adds r0, 0x14
-_080A263C:
- strh r0, [r5, 0x20]
- bl Random
- 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, _080A269C @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- 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 sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8075804
- bl Random
- 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, _080A26A0 @ =sub_80A26A4
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A269C: .4byte gBattleAnimTarget
-_080A26A0: .4byte sub_80A26A4
- thumb_func_end sub_80A25EC
-
- thumb_func_start sub_80A26A4
-sub_80A26A4: @ 80A26A4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_807578C
- lsls r0, 24
- cmp r0, 0
- beq _080A26BA
- adds r0, r4, 0
- bl DestroyAnimSprite
- b _080A26EA
-_080A26BA:
- 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 _080A26D6
- ldrh r0, [r4, 0x3A]
- b _080A26DA
-_080A26D6:
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
-_080A26DA:
- 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]
-_080A26EA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A26A4
-
- thumb_func_start sub_80A26F0
-sub_80A26F0: @ 80A26F0
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r0, _080A2750 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A2710
- ldr r1, _080A2754 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080A2710:
- ldr r4, _080A2754 @ =gBattleAnimArgs
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldr r5, _080A2758 @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8074480
- 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_8075068
- ldr r0, _080A275C @ =sub_80A2760
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2750: .4byte gBattleAnimAttacker
-_080A2754: .4byte gBattleAnimArgs
-_080A2758: .4byte gBattleAnimTarget
-_080A275C: .4byte sub_80A2760
- thumb_func_end sub_80A26F0
-
- thumb_func_start sub_80A2760
-sub_80A2760: @ 80A2760
- push {r4,lr}
- adds r4, r0, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080A278A
- 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, _080A2790 @ =sub_8074C44
- str r0, [r4, 0x1C]
- ldr r1, _080A2794 @ =sub_80A2798
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
-_080A278A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2790: .4byte sub_8074C44
-_080A2794: .4byte sub_80A2798
- thumb_func_end sub_80A2760
-
- thumb_func_start sub_80A2798
-sub_80A2798: @ 80A2798
- 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, _080A27C8 @ =sub_8074C44
- str r0, [r4, 0x1C]
- ldr r1, _080A27CC @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A27C8: .4byte sub_8074C44
-_080A27CC: .4byte DestroyAnimSprite
- thumb_func_end sub_80A2798
-
- thumb_func_start sub_80A27D0
-sub_80A27D0: @ 80A27D0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075114
- ldr r5, _080A2814 @ =gBattleAnimArgs
- ldrb r1, [r5, 0x8]
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080A27FA
- ldrb r0, [r4, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4, 0x1]
-_080A27FA:
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x30]
- ldr r1, _080A2818 @ =sub_80A281C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2814: .4byte gBattleAnimArgs
-_080A2818: .4byte sub_80A281C
- thumb_func_end sub_80A27D0
-
- thumb_func_start sub_80A281C
-sub_80A281C: @ 80A281C
- 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 _080A2870
- ldr r0, _080A286C @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_8076884
- 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 _080A2894
- .align 2, 0
-_080A286C: .4byte gBattleAnimTarget
-_080A2870:
- ldr r0, _080A28C0 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_8076884
- adds r0, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _080A2884
- movs r2, 0x3
-_080A2884:
- 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
-_080A2894:
- 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 _080A28B8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A28B8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A28C0: .4byte gBattleAnimTarget
- thumb_func_end sub_80A281C
-
- thumb_func_start sub_80A28C4
-sub_80A28C4: @ 80A28C4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080A28DE
- bl sub_8075290
- lsls r0, 24
- cmp r0, 0
- bne _080A28E6
-_080A28DE:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080A2918
-_080A28E6:
- ldr r0, _080A2904 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80768B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A2908
- movs r0, 0x2
- movs r1, 0x4
- movs r2, 0x3
- bl SetAnimBgAttribute
- b _080A2912
- .align 2, 0
-_080A2904: .4byte gBattleAnimTarget
-_080A2908:
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
-_080A2912:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080A2918:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A28C4
-
- thumb_func_start sub_80A2920
-sub_80A2920: @ 80A2920
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8075160
- ldr r5, _080A2968 @ =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, _080A296C @ =gBattleAnimAttacker
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x4]
- adds r0, r5
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- movs r0, 0x40
- strh r0, [r4, 0x38]
- ldr r1, _080A2970 @ =sub_80A2974
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2968: .4byte gBattleAnimArgs
-_080A296C: .4byte gBattleAnimAttacker
-_080A2970: .4byte sub_80A2974
- thumb_func_end sub_80A2920
-
- thumb_func_start sub_80A2974
-sub_80A2974: @ 80A2974
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- bne _080A29E0
- 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 _080A29C0
- ldr r0, _080A29BC @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_807685C
- subs r0, 0x1
- b _080A29CA
- .align 2, 0
-_080A29BC: .4byte gBattleAnimAttacker
-_080A29C0:
- ldr r0, _080A29DC @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_807685C
- adds r0, 0x1
-_080A29CA:
- 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 _080A29E6
- .align 2, 0
-_080A29DC: .4byte gBattleAnimAttacker
-_080A29E0:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A29E6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2974
-
- thumb_func_start sub_80A29EC
-sub_80A29EC: @ 80A29EC
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r5, _080A2A34 @ =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, _080A2A38 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x4]
- adds r0, r5
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- movs r0, 0x40
- strh r0, [r4, 0x38]
- ldr r1, _080A2A3C @ =sub_80A2A40
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2A34: .4byte gBattleAnimArgs
-_080A2A38: .4byte gBattleAnimAttacker
-_080A2A3C: .4byte sub_80A2A40
- thumb_func_end sub_80A29EC
-
- thumb_func_start sub_80A2A40
-sub_80A2A40: @ 80A2A40
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- bne _080A2A98
- 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 _080A2A78
- adds r0, r1, 0
- subs r0, 0xBB
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bhi _080A2A8C
-_080A2A78:
- 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]
-_080A2A8C:
- ldrh r0, [r4, 0x38]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080A2A9E
-_080A2A98:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A2A9E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2A40
-
- thumb_func_start sub_80A2AA4
-sub_80A2AA4: @ 80A2AA4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080A2AE0 @ =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r1, _080A2AE4 @ =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, _080A2AE8 @ =sub_80A2AEC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2AE0: .4byte gBattleAnimAttacker
-_080A2AE4: .4byte gBattleAnimArgs
-_080A2AE8: .4byte sub_80A2AEC
- thumb_func_end sub_80A2AA4
-
- thumb_func_start sub_80A2AEC
-sub_80A2AEC: @ 80A2AEC
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x32]
- movs r2, 0x32
- ldrsh r3, [r1, r2]
- cmp r3, 0
- bne _080A2B20
- ldrh r0, [r1, 0x30]
- movs r2, 0x1
- ands r2, r0
- cmp r2, 0
- beq _080A2B0E
- movs r0, 0x80
- strh r0, [r1, 0x2E]
- strh r3, [r1, 0x30]
- strh r3, [r1, 0x32]
- b _080A2B14
-_080A2B0E:
- strh r2, [r1, 0x2E]
- strh r2, [r1, 0x30]
- strh r2, [r1, 0x32]
-_080A2B14:
- ldr r0, _080A2B1C @ =sub_80A2B38
- str r0, [r1, 0x1C]
- b _080A2B34
- .align 2, 0
-_080A2B1C: .4byte sub_80A2B38
-_080A2B20:
- 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]
-_080A2B34:
- pop {r0}
- bx r0
- thumb_func_end sub_80A2AEC
-
- thumb_func_start sub_80A2B38
-sub_80A2B38: @ 80A2B38
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A2B58 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A2B5C
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x19
- bl Sin
- negs r0, r0
- b _080A2B66
- .align 2, 0
-_080A2B58: .4byte gBattleAnimAttacker
-_080A2B5C:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x19
- bl Sin
-_080A2B66:
- 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 _080A2B86
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
-_080A2B86:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x50
- ble _080A2B94
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A2B94:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2B38
-
- thumb_func_start sub_80A2B9C
-sub_80A2B9C: @ 80A2B9C
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r0, _080A2BF0 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A2BBC
- ldr r1, _080A2BF4 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080A2BBC:
- ldr r6, _080A2BF4 @ =gBattleAnimArgs
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A2BFC
- ldr r4, _080A2BF8 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x6]
- adds r0, r6
- b _080A2C1C
- .align 2, 0
-_080A2BF0: .4byte gBattleAnimAttacker
-_080A2BF4: .4byte gBattleAnimArgs
-_080A2BF8: .4byte gBattleAnimTarget
-_080A2BFC:
- ldr r0, _080A2C48 @ =gBattleAnimTarget
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl sub_8076D9C
- 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
-_080A2C1C:
- strh r0, [r5, 0x36]
- ldr r0, _080A2C4C @ =gBattleAnimArgs
- ldrh r0, [r0, 0xA]
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_8075068
- ldr r0, _080A2C50 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- adds r4, r0, 0
- ldr r0, _080A2C48 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080A2C54
- movs r0, 0x1
- b _080A2C56
- .align 2, 0
-_080A2C48: .4byte gBattleAnimTarget
-_080A2C4C: .4byte gBattleAnimArgs
-_080A2C50: .4byte gBattleAnimAttacker
-_080A2C54:
- movs r0, 0
-_080A2C56:
- strh r0, [r5, 0x2E]
- ldr r0, _080A2C64 @ =sub_80A2C68
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2C64: .4byte sub_80A2C68
- thumb_func_end sub_80A2B9C
-
- thumb_func_start sub_80A2C68
-sub_80A2C68: @ 80A2C68
- push {r4-r7,lr}
- adds r6, r0, 0
- movs r7, 0
- ldrh r5, [r6, 0x2E]
- ldrh r4, [r6, 0x3C]
- movs r0, 0x1
- strh r0, [r6, 0x2E]
- adds r0, r6, 0
- bl AnimateBallThrow
- ldrh r0, [r6, 0x3C]
- strh r5, [r6, 0x2E]
- lsls r4, 16
- asrs r4, 16
- cmp r4, 0xC8
- ble _080A2C9A
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x37
- bgt _080A2C9A
- ldrh r0, [r6, 0x6]
- cmp r0, 0
- bne _080A2CA0
- adds r0, 0x1
- strh r0, [r6, 0x6]
-_080A2C9A:
- ldrh r0, [r6, 0x6]
- cmp r0, 0
- beq _080A2CD2
-_080A2CA0:
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _080A2CD2
- 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 _080A2CD2
- movs r7, 0x1
-_080A2CD2:
- 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 _080A2CFC
- movs r0, 0x22
- ldrsh r1, [r6, r0]
- movs r2, 0x26
- ldrsh r0, [r6, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080A2CFC
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080A2CFE
-_080A2CFC:
- movs r7, 0x1
-_080A2CFE:
- cmp r7, 0
- beq _080A2D08
- adds r0, r6, 0
- bl DestroyAnimSprite
-_080A2D08:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2C68
-
- thumb_func_start sub_80A2D10
-sub_80A2D10: @ 80A2D10
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080A2D3C
- bl sub_8075290
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A2D3C
- ldr r0, _080A2D64 @ =gBattleAnimTarget
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0x1
- bl sub_8076D9C
-_080A2D3C:
- ldrh r0, [r4, 0x22]
- adds r0, 0x20
- strh r0, [r4, 0x22]
- ldr r1, _080A2D68 @ =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, _080A2D6C @ =sub_80A2D70
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2D64: .4byte gBattleAnimTarget
-_080A2D68: .4byte gBattleAnimArgs
-_080A2D6C: .4byte sub_80A2D70
- thumb_func_end sub_80A2D10
-
- thumb_func_start sub_80A2D70
-sub_80A2D70: @ 80A2D70
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0xFF
- bne _080A2D86
- ldrh r0, [r4, 0x22]
- subs r0, 0x2
- strh r0, [r4, 0x22]
- b _080A2D94
-_080A2D86:
- cmp r0, 0
- ble _080A2D94
- ldrh r0, [r4, 0x22]
- subs r0, 0x2
- strh r0, [r4, 0x22]
- subs r0, r1, 0x2
- strh r0, [r4, 0x30]
-_080A2D94:
- 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 _080A2DAC
- adds r0, r2, r3
- strh r0, [r4, 0x38]
-_080A2DAC:
- 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 _080A2DEC
- ldr r0, _080A2DE8 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_8076884
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- b _080A2DFA
- .align 2, 0
-_080A2DE8: .4byte gBattleAnimTarget
-_080A2DEC:
- ldr r0, _080A2E24 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_8076884
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
-_080A2DFA:
- 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 _080A2E1E
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A2E1E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2E24: .4byte gBattleAnimTarget
- thumb_func_end sub_80A2D70
-
- thumb_func_start sub_80A2E28
-sub_80A2E28: @ 80A2E28
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_8075114
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r4, _080A2E5C @ =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, _080A2E60 @ =sub_80A2E64
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2E5C: .4byte gBattleAnimArgs
-_080A2E60: .4byte sub_80A2E64
- thumb_func_end sub_80A2E28
-
- thumb_func_start sub_80A2E64
-sub_80A2E64: @ 80A2E64
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A2E94 @ =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, _080A2E98 @ =0x0000ffff
- cmp r1, r0
- bne _080A2E8E
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1
- bl GetAnimBankSpriteId
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x2E]
- ldr r0, _080A2E9C @ =sub_80A2EA0
- str r0, [r4, 0x1C]
-_080A2E8E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2E94: .4byte gBattleAnimArgs
-_080A2E98: .4byte 0x0000ffff
-_080A2E9C: .4byte sub_80A2EA0
- thumb_func_end sub_80A2E64
-
- thumb_func_start sub_80A2EA0
-sub_80A2EA0: @ 80A2EA0
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- bl GetAnimBankSpriteId
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A2EB8
- ldrh r0, [r4, 0x2E]
- adds r0, 0xB
- b _080A2EBC
-_080A2EB8:
- ldrh r0, [r4, 0x2E]
- subs r0, 0xB
-_080A2EBC:
- 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 _080A2ED8
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x32]
-_080A2ED8:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080A2F06
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- cmp r0, 0
- ble _080A2F00
- ldrh r1, [r4, 0x3A]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- b _080A2F06
-_080A2F00:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A2F06:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2EA0
-
- thumb_func_start sub_80A2F0C
-sub_80A2F0C: @ 80A2F0C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080A2F38 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _080A2F3C
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080A2F62
- .align 2, 0
-_080A2F38: .4byte gSprites
-_080A2F3C:
- adds r0, r2, 0
- movs r1, 0x1
- bl sub_80758E0
- ldr r1, _080A2F68 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r2, _080A2F6C @ =gBattleAnimArgs
- ldrh r1, [r2]
- strh r1, [r0, 0x8]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0xA]
- movs r1, 0x80
- lsls r1, 1
- strh r1, [r0, 0x1E]
- ldr r1, _080A2F70 @ =sub_80A2F74
- str r1, [r0]
-_080A2F62:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2F68: .4byte gTasks
-_080A2F6C: .4byte gBattleAnimArgs
-_080A2F70: .4byte sub_80A2F74
- thumb_func_end sub_80A2F0C
-
- thumb_func_start sub_80A2F74
-sub_80A2F74: @ 80A2F74
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080A2FF4 @ =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, _080A2FF8 @ =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, _080A2FFC @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A2FBE
- ldrh r0, [r5, 0x24]
- negs r0, r0
- strh r0, [r5, 0x24]
-_080A2FBE:
- 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_8076440
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080A2FEC
- strh r0, [r4, 0x8]
- ldr r0, _080A3000 @ =sub_80A3004
- str r0, [r4]
-_080A2FEC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2FF4: .4byte gTasks
-_080A2FF8: .4byte gSprites
-_080A2FFC: .4byte gBattleAnimTarget
-_080A3000: .4byte sub_80A3004
- thumb_func_end sub_80A2F74
-
- thumb_func_start sub_80A3004
-sub_80A3004: @ 80A3004
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080A3050 @ =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, _080A3054 @ =0x0000ffff
- cmp r1, r0
- bne _080A3060
- ldr r0, _080A3058 @ =gTasks
- lsls r2, r3, 2
- adds r1, r2, r3
- lsls r1, 3
- adds r6, r1, r0
- movs r1, 0x8
- ldrsh r5, [r6, r1]
- adds r4, r0, 0
- cmp r5, 0
- bne _080A3074
- movs r0, 0x1
- bl GetAnimBankSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_8075980
- ldr r1, _080A305C @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- strh r5, [r0, 0x24]
- strh r5, [r0, 0x26]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _080A308E
- .align 2, 0
-_080A3050: .4byte gBattleAnimArgs
-_080A3054: .4byte 0x0000ffff
-_080A3058: .4byte gTasks
-_080A305C: .4byte gSprites
-_080A3060:
- ldr r1, _080A3094 @ =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 _080A308E
-_080A3074:
- 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 _080A308E
- adds r0, r3, 0
- bl DestroyAnimVisualTask
-_080A308E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3094: .4byte gTasks
- thumb_func_end sub_80A3004
-
- thumb_func_start sub_80A3098
-sub_80A3098: @ 80A3098
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080A30AA
- cmp r0, 0x1
- beq _080A3104
- b _080A3156
-_080A30AA:
- ldr r6, _080A30FC @ =gBattleAnimTarget
- ldrb r0, [r6]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A30C2
- ldr r1, _080A3100 @ =gBattleAnimArgs
- movs r2, 0
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1]
-_080A30C2:
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- ldr r4, _080A3100 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8074480
- 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 _080A3156
- .align 2, 0
-_080A30FC: .4byte gBattleAnimTarget
-_080A3100: .4byte gBattleAnimArgs
-_080A3104:
- 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 _080A3156
- adds r0, r5, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- movs r0, 0x19
- strh r0, [r5, 0x2E]
- ldr r4, _080A315C @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080A3160 @ =sub_8075764
- str r0, [r5, 0x1C]
- ldr r1, _080A3164 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
-_080A3156:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A315C: .4byte gBattleAnimAttacker
-_080A3160: .4byte sub_8075764
-_080A3164: .4byte DestroyAnimSprite
- thumb_func_end sub_80A3098
-
- thumb_func_start sub_80A3168
-sub_80A3168: @ 80A3168
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A31D4
- ldr r4, _080A31E0 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080A31E4 @ =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 _080A31D4
- 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]
-_080A31D4:
- ldr r0, _080A31E8 @ =sub_80A32DC
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A31E0: .4byte gBattleAnimAttacker
-_080A31E4: .4byte gBattleAnimArgs
-_080A31E8: .4byte sub_80A32DC
- thumb_func_end sub_80A3168
-
- thumb_func_start sub_80A31EC
-sub_80A31EC: @ 80A31EC
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x4
- mov r9, r0
- ldr r4, _080A32C8 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r6, _080A32CC @ =gBattleAnimTarget
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8074480
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8074480
- 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, _080A32D0 @ =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, _080A32D4 @ =sub_80A32DC
- str r0, [r1, 0x1C]
- ldr r1, _080A32D8 @ =gUnknown_203999C
- 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
- .align 2, 0
-_080A32C8: .4byte gBattleAnimAttacker
-_080A32CC: .4byte gBattleAnimTarget
-_080A32D0: .4byte gBattleAnimArgs
-_080A32D4: .4byte sub_80A32DC
-_080A32D8: .4byte gUnknown_203999C
- thumb_func_end sub_80A31EC
-
- thumb_func_start sub_80A32DC
-sub_80A32DC: @ 80A32DC
- 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 _080A331C
- 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]
-_080A331C:
- movs r2, 0x2E
- ldrsh r1, [r3, r2]
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- cmp r1, r0
- ble _080A332E
- adds r0, r3, 0
- bl DestroyAnimSprite
-_080A332E:
- pop {r0}
- bx r0
- thumb_func_end sub_80A32DC
-
- thumb_func_start sub_80A3334
-sub_80A3334: @ 80A3334
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A3374
- ldr r5, _080A33B0 @ =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- ldr r4, _080A33B4 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r2, [r4]
- adds r0, r2
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8074480
- 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]
-_080A3374:
- 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 _080A33AA
- adds r0, r6, 0
- bl DestroyAnimSprite
-_080A33AA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A33B0: .4byte gBattleAnimAttacker
-_080A33B4: .4byte gBattleAnimArgs
- thumb_func_end sub_80A3334
-
- thumb_func_start sub_80A33B8
-sub_80A33B8: @ 80A33B8
- 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_80A33B8
-
- thumb_func_start sub_80A33E0
-sub_80A33E0: @ 80A33E0
- 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 _080A341A
- movs r2, 0x20
- negs r2, r2
- b _080A3422
-_080A341A:
- cmp r2, 0xFF
- bne _080A3422
- movs r2, 0x88
- lsls r2, 1
-_080A3422:
- 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 _080A3474
- 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 _080A3476
-_080A3474:
- movs r0, 0x1
-_080A3476:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A33E0
-
- thumb_func_start sub_80A3484
-sub_80A3484: @ 80A3484
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xA
- bne _080A3498
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080A3498:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- ble _080A34AC
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A34AC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3484
-
- thumb_func_start sub_80A34B4
-sub_80A34B4: @ 80A34B4
- 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 _080A34DE
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x2E]
-_080A34DE:
- 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_80A33E0
- lsls r0, 24
- cmp r0, 0
- beq _080A350E
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x2E]
- ldr r0, _080A3514 @ =sub_80A3484
- str r0, [r4, 0x1C]
-_080A350E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3514: .4byte sub_80A3484
- thumb_func_end sub_80A34B4
-
- thumb_func_start sub_80A3518
-sub_80A3518: @ 80A3518
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_8075160
- ldr r4, _080A3560 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080A3564 @ =gBattleAnimAttacker
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- ldrb r4, [r4]
- cmp r0, r4
- bne _080A3568
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80A33B8
- movs r0, 0x1
- b _080A357A
- .align 2, 0
-_080A3560: .4byte gBattleAnimTarget
-_080A3564: .4byte gBattleAnimAttacker
-_080A3568:
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80A33B8
- movs r0, 0x3
-_080A357A:
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080A358C @ =sub_80A34B4
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A358C: .4byte sub_80A34B4
- thumb_func_end sub_80A3518
-
- thumb_func_start sub_80A3590
-sub_80A3590: @ 80A3590
- 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 _080A35BA
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x2E]
-_080A35BA:
- 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_80A33E0
- lsls r0, 24
- cmp r0, 0
- beq _080A35EC
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x2E]
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A35EC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3590
-
- thumb_func_start sub_80A35F4
-sub_80A35F4: @ 80A35F4
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _080A3630 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080A3638
- strh r0, [r5, 0x3A]
- adds r0, r6, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x28
- bl sub_80A33B8
- movs r0, 0x3
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080A3634 @ =sub_80A34B4
- b _080A3662
- .align 2, 0
-_080A3630: .4byte gBattleAnimTarget
-_080A3634: .4byte sub_80A34B4
-_080A3638:
- movs r0, 0xFF
- strh r0, [r5, 0x3A]
- adds r0, r6, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A3650
- movs r0, 0
- strh r0, [r5, 0x3A]
-_080A3650:
- adds r0, r5, 0
- movs r1, 0x28
- bl sub_80A33B8
- movs r0, 0x3
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080A366C @ =sub_80A3590
-_080A3662:
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A366C: .4byte sub_80A3590
- thumb_func_end sub_80A35F4
-
- thumb_func_start sub_80A3670
-sub_80A3670: @ 80A3670
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A368A
- adds r0, r4, 0
- movs r1, 0
- bl sub_8075114
- ldr r0, _080A36B0 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x30]
-_080A368A:
- 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 _080A36AA
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A36AA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A36B0: .4byte gBattleAnimArgs
- thumb_func_end sub_80A3670
-
- thumb_func_start sub_80A36B4
-sub_80A36B4: @ 80A36B4
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_8075114
- ldr r4, _080A36FC @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080A3700 @ =gBattleAnimTarget
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- ldrb r4, [r4]
- cmp r0, r4
- bne _080A3704
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80A33B8
- movs r0, 0x1
- b _080A3716
- .align 2, 0
-_080A36FC: .4byte gBattleAnimAttacker
-_080A3700: .4byte gBattleAnimTarget
-_080A3704:
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80A33B8
- movs r0, 0x3
-_080A3716:
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080A3728 @ =sub_80A372C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3728: .4byte sub_80A372C
- thumb_func_end sub_80A36B4
-
- thumb_func_start sub_80A372C
-sub_80A372C: @ 80A372C
- 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 _080A3756
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x2E]
-_080A3756:
- 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 _080A378A
- movs r0, 0x3F
- bl sub_8073A44
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x76
- bl PlaySE12WithPanning
-_080A378A:
- adds r0, r4, 0
- bl sub_80A33E0
- lsls r0, 24
- cmp r0, 0
- beq _080A37B2
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x2E]
- ldr r0, _080A37B8 @ =sub_80A3484
- str r0, [r4, 0x1C]
- movs r0, 0x40
- negs r0, r0
- bl sub_8073A44
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x76
- bl PlaySE12WithPanning
-_080A37B2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A37B8: .4byte sub_80A3484
- thumb_func_end sub_80A372C
-
- thumb_func_start sub_80A37BC
-sub_80A37BC: @ 80A37BC
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A3850
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080A37E4
- ldr r0, _080A37E0 @ =gBattleAnimArgs
- ldrh r1, [r0, 0x2]
- strh r1, [r4, 0x30]
- movs r1, 0x78
- strh r1, [r4, 0x20]
- adds r5, r0, 0
- b _080A3806
- .align 2, 0
-_080A37E0: .4byte gBattleAnimArgs
-_080A37E4:
- ldr r0, _080A3840 @ =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 _080A37FA
- adds r2, r3, 0
- adds r2, 0xDF
-_080A37FA:
- asrs r0, r2, 8
- lsls r0, 8
- subs r0, r1, r0
- strh r0, [r4, 0x30]
- movs r0, 0x46
- strh r0, [r4, 0x20]
-_080A3806:
- 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, _080A3844 @ =sub_80A3858
- str r0, [r4, 0x1C]
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xBE
- bhi _080A3848
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
- b _080A384E
- .align 2, 0
-_080A3840: .4byte gBattleAnimArgs
-_080A3844: .4byte sub_80A3858
-_080A3848:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
-_080A384E:
- strb r0, [r1]
-_080A3850:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A37BC
-
- thumb_func_start sub_80A3858
-sub_80A3858: @ 80A3858
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A386A
- cmp r0, 0x1
- beq _080A389A
- b _080A38BA
-_080A386A:
- ldrh r5, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x4E
- ble _080A3882
- movs r0, 0x1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080A38BA
-_080A3882:
- 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 _080A38BA
-_080A389A:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A38BA
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080A38BA
- movs r0, 0
- strh r0, [r4, 0x2E]
- strh r0, [r4, 0x32]
- ldr r0, _080A38C0 @ =sub_80A38C4
- str r0, [r4, 0x1C]
-_080A38BA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A38C0: .4byte sub_80A38C4
- thumb_func_end sub_80A3858
-
- thumb_func_start sub_80A38C4
-sub_80A38C4: @ 80A38C4
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _080A3908 @ =gUnknown_83E2F78
- 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 _080A3910
- adds r0, r5, 0x2
- adds r0, r3, r0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x7F
- bne _080A38FC
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080A390C @ =sub_80A397C
- str r0, [r4, 0x1C]
-_080A38FC:
- movs r0, 0
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080A3976
- .align 2, 0
-_080A3908: .4byte gUnknown_83E2F78
-_080A390C: .4byte sub_80A397C
-_080A3910:
- 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 sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080A395E
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xBE
- bhi _080A3956
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
- b _080A395C
-_080A3956:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
-_080A395C:
- strb r0, [r1]
-_080A395E:
- 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]
-_080A3976:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A38C4
-
- thumb_func_start sub_80A397C
-sub_80A397C: @ 80A397C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x14
- ble _080A398E
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A398E:
- 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_80A397C
-
- thumb_func_start sub_80A39C0
-sub_80A39C0: @ 80A39C0
- 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, _080A3B14 @ =gTasks
- adds r5, r0, r1
- ldr r4, _080A3B18 @ =gBattleAnimTarget
- ldrb r0, [r4]
- bl sub_807685C
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- strh r0, [r5, 0x10]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x16]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8076B2C
- strh r0, [r5, 0x1C]
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8076B2C
- 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 _080A3A28
- movs r1, 0x1
-_080A3A28:
- 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, _080A3B1C @ =gUnknown_83E2FF0
- 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 _080A3A60
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080A3A60:
- ldr r4, _080A3B20 @ =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_80A3F04
- 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_8075068
- ldr r0, _080A3B24 @ =sub_80A3B28
- str r0, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3B14: .4byte gTasks
-_080A3B18: .4byte gBattleAnimTarget
-_080A3B1C: .4byte gUnknown_83E2FF0
-_080A3B20: .4byte gSprites
-_080A3B24: .4byte sub_80A3B28
- thumb_func_end sub_80A39C0
-
- thumb_func_start sub_80A3B28
-sub_80A3B28: @ 80A3B28
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080A3B6C @ =gTasks
- adds r6, r0, r1
- movs r0, 0xC
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A3B70 @ =gSprites
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r5, [r6, r1]
- cmp r5, 0x7
- bne _080A3B50
- b _080A3D80
-_080A3B50:
- cmp r5, 0x7
- bgt _080A3B9E
- cmp r5, 0x3
- bne _080A3B5A
- b _080A3C72
-_080A3B5A:
- cmp r5, 0x3
- bgt _080A3B74
- cmp r5, 0x1
- beq _080A3C04
- cmp r5, 0x1
- bgt _080A3C54
- cmp r5, 0
- beq _080A3BE6
- b _080A3EFC
- .align 2, 0
-_080A3B6C: .4byte gTasks
-_080A3B70: .4byte gSprites
-_080A3B74:
- cmp r5, 0x5
- bne _080A3B7A
- b _080A3CE8
-_080A3B7A:
- cmp r5, 0x5
- ble _080A3B80
- b _080A3D62
-_080A3B80:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80A3F24
- adds r0, r4, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- bne _080A3B96
- b _080A3EFC
-_080A3B96:
- movs r0, 0x5
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080A3EFA
-_080A3B9E:
- cmp r5, 0xB
- bne _080A3BA4
- b _080A3E64
-_080A3BA4:
- cmp r5, 0xB
- bgt _080A3BD2
- cmp r5, 0x9
- bne _080A3BAE
- b _080A3DD2
-_080A3BAE:
- cmp r5, 0x9
- ble _080A3BB4
- b _080A3E48
-_080A3BB4:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80A3F24
- adds r0, r4, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- bne _080A3BCA
- b _080A3EFC
-_080A3BCA:
- movs r0, 0x9
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080A3EFA
-_080A3BD2:
- cmp r5, 0xD
- bne _080A3BD8
- b _080A3ED6
-_080A3BD8:
- cmp r5, 0xD
- bge _080A3BDE
- b _080A3EB6
-_080A3BDE:
- cmp r5, 0xFF
- bne _080A3BE4
- b _080A3EE6
-_080A3BE4:
- b _080A3EFC
-_080A3BE6:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80A3F24
- adds r0, r4, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- bne _080A3BFC
- b _080A3EFC
-_080A3BFC:
- movs r0, 0x1
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080A3EFA
-_080A3C04:
- 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_80A3F04
- 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_8075068
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080A3EFA
-_080A3C54:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80A3F24
- adds r0, r4, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- bne _080A3C6A
- b _080A3EFC
-_080A3C6A:
- movs r0, 0x3
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080A3EFA
-_080A3C72:
- 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_80A3F04
- 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_8075068
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080A3EFA
-_080A3CE8:
- 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_80A3F04
- 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_8075068
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080A3EFA
-_080A3D62:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80A3F24
- adds r0, r4, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- bne _080A3D78
- b _080A3EFC
-_080A3D78:
- movs r0, 0x7
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080A3EFA
-_080A3D80:
- 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_80A3F04
- 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_8075068
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080A3EFA
-_080A3DD2:
- 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_80A3F04
- 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_8075068
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080A3EFA
-_080A3E48:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80A3F24
- adds r0, r4, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080A3EFC
- movs r0, 0xB
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080A3EFA
-_080A3E64:
- 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_80A3F04
- 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_8075068
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080A3EFA
-_080A3EB6:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80A3F24
- adds r0, r4, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080A3EFC
- adds r0, r4, 0
- bl DestroySprite
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080A3EFA
-_080A3ED6:
- movs r1, 0x20
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A3EFC
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- b _080A3EFC
-_080A3EE6:
- ldrh r0, [r6, 0xA]
- adds r0, 0x1
- strh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080A3EFC
- movs r0, 0
- strh r0, [r6, 0xA]
- ldrh r0, [r6, 0x26]
-_080A3EFA:
- strh r0, [r6, 0x8]
-_080A3EFC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3B28
-
- thumb_func_start sub_80A3F04
-sub_80A3F04: @ 80A3F04
- push {lr}
- movs r2, 0x8
- movs r3, 0x36
- ldrsh r1, [r0, r3]
- movs r3, 0x22
- ldrsh r0, [r0, r3]
- cmp r1, r0
- bge _080A3F1A
- negs r0, r2
- lsls r0, 16
- lsrs r2, r0, 16
-_080A3F1A:
- lsls r0, r2, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80A3F04
-
- thumb_func_start sub_80A3F24
-sub_80A3F24: @ 80A3F24
- 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 _080A3FBA
- movs r0, 0
- strh r0, [r6, 0x24]
- ldr r0, _080A3FC4 @ =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, _080A3FC8 @ =gUnknown_83E2FF0
- 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 _080A3FBA
- 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, _080A3FCC @ =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, _080A3FD0 @ =sub_80A3FD4
- str r0, [r5]
-_080A3FBA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3FC4: .4byte gSprites
-_080A3FC8: .4byte gUnknown_83E2FF0
-_080A3FCC: .4byte gTasks
-_080A3FD0: .4byte sub_80A3FD4
- thumb_func_end sub_80A3F24
-
- thumb_func_start sub_80A3FD4
-sub_80A3FD4: @ 80A3FD4
- 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 _080A4036
- 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 _080A4036
- ldr r3, _080A403C @ =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
-_080A4036:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A403C: .4byte gTasks
- thumb_func_end sub_80A3FD4
-
- thumb_func_start sub_80A4040
-sub_80A4040: @ 80A4040
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, _080A4054 @ =gBattleAnimArgs
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A405C
- ldr r0, _080A4058 @ =gBattleAnimAttacker
- b _080A405E
- .align 2, 0
-_080A4054: .4byte gBattleAnimArgs
-_080A4058: .4byte gBattleAnimAttacker
-_080A405C:
- ldr r0, _080A407C @ =gBattleAnimTarget
-_080A405E:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A4088
- movs r0, 0
- strh r0, [r4, 0x36]
- ldr r1, _080A4080 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x32]
- ldr r0, _080A4084 @ =0x0000fff0
- b _080A4098
- .align 2, 0
-_080A407C: .4byte gBattleAnimTarget
-_080A4080: .4byte gBattleAnimArgs
-_080A4084: .4byte 0x0000fff0
-_080A4088:
- movs r0, 0x1
- strh r0, [r4, 0x36]
- ldr r1, _080A40BC @ =gBattleAnimArgs
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r4, 0x32]
- movs r0, 0x80
- lsls r0, 1
-_080A4098:
- 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 _080A40CE
- cmp r0, 0x1
- bgt _080A40C0
- cmp r0, 0
- beq _080A40CA
- b _080A4138
- .align 2, 0
-_080A40BC: .4byte gBattleAnimArgs
-_080A40C0:
- cmp r0, 0x2
- beq _080A40D4
- cmp r0, 0x3
- beq _080A4100
- b _080A4138
-_080A40CA:
- ldrh r0, [r5]
- b _080A40E4
-_080A40CE:
- ldrh r0, [r5]
- strh r0, [r4, 0x22]
- b _080A411A
-_080A40D4:
- adds r0, r6, 0
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5]
- adds r0, r5
-_080A40E4:
- strh r0, [r4, 0x22]
- adds r0, r6, 0
- bl sub_8076884
- 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 _080A4138
-_080A4100:
- ldr r0, _080A4144 @ =gBattleAnimTarget
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r7, [r7]
- adds r0, r7
- strh r0, [r4, 0x22]
- movs r0, 0x1
- bl GetAnimBankSpriteId
-_080A411A:
- adds r0, r6, 0
- bl sub_8076884
- 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]
-_080A4138:
- ldr r0, _080A4148 @ =sub_80A414C
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4144: .4byte gBattleAnimTarget
-_080A4148: .4byte sub_80A414C
- thumb_func_end sub_80A4040
-
- thumb_func_start sub_80A414C
-sub_80A414C: @ 80A414C
- 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, _080A41A0 @ =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 _080A41A4
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- movs r5, 0x20
- ldrsh r1, [r4, r5]
- adds r0, r1
- cmp r0, 0xF7
- ble _080A41BC
- b _080A41B6
- .align 2, 0
-_080A41A0: .4byte gSineTable
-_080A41A4:
- 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 _080A41BC
-_080A41B6:
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080A41BC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A414C
-
- thumb_func_start sub_80A41C4
-sub_80A41C4: @ 80A41C4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080A41E4 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080A41E8
- cmp r0, 0x1
- beq _080A421C
- b _080A4276
- .align 2, 0
-_080A41E4: .4byte gTasks
-_080A41E8:
- ldr r0, _080A4214 @ =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, _080A4218 @ =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 _080A4276
- .align 2, 0
-_080A4214: .4byte 0x0000274f
-_080A4218: .4byte 0x000027b0
-_080A421C:
- ldrh r0, [r5, 0x1A]
- adds r0, 0x1
- movs r7, 0
- strh r0, [r5, 0x1A]
- lsls r0, 16
- cmp r0, 0
- blt _080A4276
- strh r7, [r5, 0x1A]
- ldrh r0, [r5, 0x18]
- ldrb r2, [r5, 0x1C]
- ldr r4, _080A4290 @ =gUnknown_83E30F0
- 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 _080A4276
- 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 _080A4276
- strh r7, [r5, 0x1E]
-_080A4276:
- ldr r0, _080A4294 @ =gBattleAnimArgs
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080A428A
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080A428A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4290: .4byte gUnknown_83E30F0
-_080A4294: .4byte gBattleAnimArgs
- thumb_func_end sub_80A41C4
-
- thumb_func_start sub_80A4298
-sub_80A4298: @ 80A4298
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r1, _080A42B0 @ =gBattleAnimArgs
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080A42B4
- adds r0, r6, 0
- bl DestroyAnimSprite
- b _080A438E
- .align 2, 0
-_080A42B0: .4byte gBattleAnimArgs
-_080A42B4:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080A42C4
- ldr r4, _080A42C0 @ =gBattleAnimAttacker
- b _080A42C6
- .align 2, 0
-_080A42C0: .4byte gBattleAnimAttacker
-_080A42C4:
- ldr r4, _080A4300 @ =gBattleAnimTarget
-_080A42C6:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r5, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080A4304 @ =gBattleAnimArgs
- ldrh r1, [r0, 0x8]
- strh r1, [r6, 0x2E]
- movs r3, 0x2
- ldrsh r1, [r0, r3]
- adds r7, r0, 0
- cmp r1, 0
- bne _080A4308
- 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 _080A4318
- .align 2, 0
-_080A4300: .4byte gBattleAnimTarget
-_080A4304: .4byte gBattleAnimArgs
-_080A4308:
- 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]
-_080A4318:
- ldrh r4, [r6, 0x20]
- lsls r0, r4, 4
- strh r0, [r6, 0x30]
- ldrh r5, [r6, 0x22]
- lsls r0, r5, 4
- strh r0, [r6, 0x32]
- movs r1, 0x38
- ldrsh r0, [r6, r1]
- movs r2, 0x20
- ldrsh r1, [r6, r2]
- subs r0, r1
- lsls r0, 4
- movs r3, 0x8
- ldrsh r1, [r7, r3]
- bl __divsi3
- strh r0, [r6, 0x34]
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r2, 0x22
- ldrsh r1, [r6, r2]
- subs r0, r1
- lsls r0, 4
- movs r3, 0x8
- ldrsh r1, [r7, r3]
- bl __divsi3
- strh r0, [r6, 0x36]
- ldrh r0, [r6, 0x38]
- subs r0, r4
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r6, 0x3A]
- subs r1, r5
- lsls r1, 16
- asrs r1, 16
- bl sub_8075B30
- lsls r0, 16
- lsrs r4, r0, 16
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A437A
- ldr r1, _080A4398 @ =0xffff8000
- adds r0, r4, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_080A437A:
- movs r3, 0x80
- lsls r3, 1
- str r4, [sp]
- adds r0, r6, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8075A1C
- ldr r0, _080A439C @ =sub_80A43A0
- str r0, [r6, 0x1C]
-_080A438E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4398: .4byte 0xffff8000
-_080A439C: .4byte sub_80A43A0
- thumb_func_end sub_80A4298
-
- thumb_func_start sub_80A43A0
-sub_80A43A0: @ 80A43A0
- push {r4,lr}
- adds r2, r0, 0
- ldrh r3, [r2, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _080A43D0
- 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 _080A43D6
-_080A43D0:
- adds r0, r2, 0
- bl move_anim_8074EE0
-_080A43D6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A43A0
-
- thumb_func_start sub_80A43DC
-sub_80A43DC: @ 80A43DC
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A43F2
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080A43F2:
- pop {r0}
- bx r0
- thumb_func_end sub_80A43DC
-
- thumb_func_start sub_80A43F8
-sub_80A43F8: @ 80A43F8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A4418 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A4420
- ldr r2, _080A441C @ =gBattleAnimArgs
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- b _080A442C
- .align 2, 0
-_080A4418: .4byte gBattleAnimAttacker
-_080A441C: .4byte gBattleAnimArgs
-_080A4420:
- ldr r0, _080A4444 @ =gBattleAnimArgs
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
-_080A442C:
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _080A4448 @ =sub_8074F6C
- str r0, [r4, 0x1C]
- ldr r1, _080A444C @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4444: .4byte gBattleAnimArgs
-_080A4448: .4byte sub_8074F6C
-_080A444C: .4byte DestroyAnimSprite
- thumb_func_end sub_80A43F8
-
- thumb_func_start sub_80A4450
-sub_80A4450: @ 80A4450
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080A4488 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A446A
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080A446A:
- ldr r0, _080A448C @ =sub_80A43DC
- str r0, [r5, 0x1C]
- ldr r4, _080A4490 @ =gBattleAnimArgs
- movs r0, 0
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- bl sub_8074FF8
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4488: .4byte gBattleAnimAttacker
-_080A448C: .4byte sub_80A43DC
-_080A4490: .4byte gBattleAnimArgs
- thumb_func_end sub_80A4450
-
- thumb_func_start sub_80A4494
-sub_80A4494: @ 80A4494
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080A44D4 @ =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, _080A44D8 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A44DC @ =sub_8074E70
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A44D4: .4byte gBattleAnimArgs
-_080A44D8: .4byte move_anim_8074EE0
-_080A44DC: .4byte sub_8074E70
- thumb_func_end sub_80A4494
-
- thumb_func_start sub_80A44E0
-sub_80A44E0: @ 80A44E0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080A4530 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A4514
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r5, 0x22]
-_080A4514:
- ldr r0, _080A4534 @ =sub_80A46CC
- str r0, [r5, 0x1C]
- ldr r0, _080A4538 @ =gBattleAnimArgs
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- adds r3, r0, 0
- cmp r1, 0
- bne _080A453C
- ldrh r0, [r3]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x20]
- b _080A4550
- .align 2, 0
-_080A4530: .4byte gBattleAnimTarget
-_080A4534: .4byte sub_80A46CC
-_080A4538: .4byte gBattleAnimArgs
-_080A453C:
- 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]
-_080A4550:
- ldrh r0, [r3, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldr r1, _080A4584 @ =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 _080A457E
- negs r0, r1
- strh r0, [r5, 0x30]
-_080A457E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4584: .4byte 0xfffffc00
- thumb_func_end sub_80A44E0
-
- thumb_func_start sub_80A4588
-sub_80A4588: @ 80A4588
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldr r0, _080A45A4 @ =gBattleAnimArgs
- movs r1, 0x6
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080A45A8
- cmp r0, 0x1
- ble _080A4624
- cmp r0, 0x2
- beq _080A45C8
- b _080A4624
- .align 2, 0
-_080A45A4: .4byte gBattleAnimArgs
-_080A45A8:
- ldr r5, _080A45C4 @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r5]
- eors r4, r0
- adds r0, r4, 0
- b _080A4634
- .align 2, 0
-_080A45C4: .4byte gBattleAnimTarget
-_080A45C8:
- ldr r5, _080A4620 @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r5]
- movs r2, 0x2
- mov r8, r2
- mov r1, r8
- eors r0, r1
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080A463E
- ldrb r0, [r5]
- mov r2, r8
- eors r0, r2
- movs r1, 0
- bl sub_8074480
- 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 sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- lsrs r4, r0, 1
- b _080A463E
- .align 2, 0
-_080A4620: .4byte gBattleAnimTarget
-_080A4624:
- ldr r4, _080A4670 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r4]
-_080A4634:
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r4, r0, 24
-_080A463E:
- strh r7, [r6, 0x20]
- strh r4, [r6, 0x22]
- ldr r0, _080A4670 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A4656
- ldrh r0, [r6, 0x22]
- adds r0, 0x8
- strh r0, [r6, 0x22]
-_080A4656:
- ldr r0, _080A4674 @ =sub_80A46CC
- str r0, [r6, 0x1C]
- ldr r0, _080A4678 @ =gBattleAnimArgs
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- adds r3, r0, 0
- cmp r1, 0
- bne _080A467C
- ldrh r0, [r3]
- ldrh r1, [r6, 0x20]
- adds r0, r1
- strh r0, [r6, 0x20]
- b _080A4690
- .align 2, 0
-_080A4670: .4byte gBattleAnimTarget
-_080A4674: .4byte sub_80A46CC
-_080A4678: .4byte gBattleAnimArgs
-_080A467C:
- 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]
-_080A4690:
- ldrh r0, [r3, 0x2]
- ldrh r2, [r6, 0x22]
- adds r0, r2
- strh r0, [r6, 0x22]
- ldr r1, _080A46C8 @ =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 _080A46BE
- negs r0, r1
- strh r0, [r6, 0x30]
-_080A46BE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A46C8: .4byte 0xfffffc00
- thumb_func_end sub_80A4588
-
- thumb_func_start sub_80A46CC
-sub_80A46CC: @ 80A46CC
- 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 _080A46EE
- adds r0, r1, 0
- adds r0, 0x18
- b _080A46F2
-_080A46EE:
- adds r0, r1, 0
- subs r0, 0x18
-_080A46F2:
- 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 _080A4728
- ldr r1, _080A4730 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- movs r0, 0x3
- strh r0, [r4, 0x2E]
- ldr r0, _080A4734 @ =sub_8074C44
- str r0, [r4, 0x1C]
-_080A4728:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4730: .4byte DestroyAnimSprite
-_080A4734: .4byte sub_8074C44
- thumb_func_end sub_80A46CC
-
- thumb_func_start sub_80A4738
-sub_80A4738: @ 80A4738
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x32]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- cmp r0, 0x1
- ble _080A47DC
- ldrh r1, [r5, 0x34]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A4794
- 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, _080A4790 @ =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 _080A47CA
- .align 2, 0
-_080A4790: .4byte gSprites
-_080A4794:
- adds r1, r5, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldr r3, _080A47D8 @ =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]
-_080A47CA:
- movs r0, 0
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- b _080A47E0
- .align 2, 0
-_080A47D8: .4byte gSprites
-_080A47DC:
- adds r0, r1, 0x1
- strh r0, [r5, 0x32]
-_080A47E0:
- movs r1, 0x34
- ldrsh r0, [r5, r1]
- cmp r0, 0xA
- bne _080A4810
- movs r2, 0x2E
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080A4818 @ =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
-_080A4810:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4818: .4byte gSprites
- thumb_func_end sub_80A4738
-
- thumb_func_start sub_80A481C
-sub_80A481C: @ 80A481C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080A483C @ =gBattleAnimArgs
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x2E]
- ldr r0, _080A4840 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A4844
- ldrh r0, [r5, 0x20]
- ldrh r1, [r4]
- subs r0, r1
- b _080A484A
- .align 2, 0
-_080A483C: .4byte gBattleAnimArgs
-_080A4840: .4byte gBattleAnimAttacker
-_080A4844:
- ldrh r0, [r4]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_080A484A:
- strh r0, [r5, 0x20]
- ldr r4, _080A4878 @ =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, _080A487C @ =sub_80A4880
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4878: .4byte gBattleAnimArgs
-_080A487C: .4byte sub_80A4880
- thumb_func_end sub_80A481C
-
- thumb_func_start sub_80A4880
-sub_80A4880: @ 80A4880
- 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 _080A48AC
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0
- b _080A48B2
-_080A48AC:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0xE
-_080A48B2:
- 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 _080A48E8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A48E8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4880
-
- thumb_func_start sub_80A48F0
-sub_80A48F0: @ 80A48F0
- push {r4-r6,lr}
- adds r5, r0, 0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A4906
- ldr r1, _080A4964 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- adds r0, 0x8
- strh r0, [r1, 0x2]
-_080A4906:
- ldr r6, _080A4968 @ =gBattleAnimAttacker
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8074844
- lsls r0, 24
- ldr r4, _080A4964 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8074844
- 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 _080A4944
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A496C
-_080A4944:
- ldrb r0, [r6]
- bl sub_8076884
- 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 _080A4984
- .align 2, 0
-_080A4964: .4byte gBattleAnimArgs
-_080A4968: .4byte gBattleAnimAttacker
-_080A496C:
- ldrb r0, [r6]
- bl sub_8076884
- 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]
-_080A4984:
- ldr r0, _080A49C8 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x2E]
- ldr r0, _080A49CC @ =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, _080A49D0 @ =sub_80A49D4
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A49C8: .4byte gBattleAnimArgs
-_080A49CC: .4byte 0x00002828
-_080A49D0: .4byte sub_80A49D4
- thumb_func_end sub_80A48F0
-
- thumb_func_start sub_80A49D4
-sub_80A49D4: @ 80A49D4
- 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 _080A4A32
- movs r0, 0
- strh r0, [r4, 0x30]
- ldr r1, _080A4A7C @ =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
-_080A4A0C:
- 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 _080A4A0C
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- adds r0, 0x7
- lsls r0, 1
- adds r0, r6
- strh r5, [r0]
-_080A4A32:
- ldrh r2, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- ble _080A4A6C
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- ble _080A4A80
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A4A6C
- 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
-_080A4A6C:
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A4A80
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- b _080A4AC2
- .align 2, 0
-_080A4A7C: .4byte gPlttBufferFaded
-_080A4A80:
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A4AC2
- 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 _080A4AC2
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080A4AC8 @ =sub_8074F88
- str r0, [r4, 0x1C]
-_080A4AC2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4AC8: .4byte sub_8074F88
- thumb_func_end sub_80A49D4
-
- thumb_func_start sub_80A4ACC
-sub_80A4ACC: @ 80A4ACC
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080A4B2C @ =gBattleAnimTarget
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A4B30 @ =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, _080A4B34 @ =sub_80A4B38
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4B2C: .4byte gBattleAnimTarget
-_080A4B30: .4byte 0x0000ffe8
-_080A4B34: .4byte sub_80A4B38
- thumb_func_end sub_80A4ACC
-
- thumb_func_start sub_80A4B38
-sub_80A4B38: @ 80A4B38
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080A4B46
- b _080A4C90
-_080A4B46:
- lsls r0, 2
- ldr r1, _080A4B50 @ =_080A4B54
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A4B50: .4byte _080A4B54
- .align 2, 0
-_080A4B54:
- .4byte _080A4B68
- .4byte _080A4BCC
- .4byte _080A4BE8
- .4byte _080A4C66
- .4byte _080A4C7A
-_080A4B68:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- cmp r0, 0
- bgt _080A4B76
- b _080A4C90
-_080A4B76:
- 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 _080A4B98
- ldrh r1, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080A4BA6
- adds r0, r1, 0x1
- strh r0, [r4, 0x3A]
- b _080A4BA6
-_080A4B98:
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A4BA6
- subs r0, r1, 0x1
- strh r0, [r4, 0x3C]
-_080A4BA6:
- 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 _080A4C90
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080A4C90
- strh r0, [r4, 0x30]
- b _080A4C72
-_080A4BCC:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080A4C90
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080A4C72
-_080A4BE8:
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x4
- bl sub_80A4C98
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080A4C0A
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
-_080A4C0A:
- ldrh r0, [r4, 0x32]
- adds r1, r0, 0x1
- strh r1, [r4, 0x32]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x1D
- ble _080A4C90
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080A4C30
- ldrh r1, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A4C3E
- subs r0, r1, 0x1
- strh r0, [r4, 0x3A]
- b _080A4C3E
-_080A4C30:
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080A4C3E
- adds r0, r1, 0x1
- strh r0, [r4, 0x3C]
-_080A4C3E:
- 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 _080A4C90
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0x10
- bne _080A4C90
- strh r1, [r4, 0x30]
- strh r1, [r4, 0x32]
- b _080A4C72
-_080A4C66:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080A4C72:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080A4C90
-_080A4C7A:
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A4C90:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4B38
-
- thumb_func_start sub_80A4C98
-sub_80A4C98: @ 80A4C98
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0xB
- bgt _080A4CAA
- ldrh r0, [r4, 0x36]
- adds r0, 0x2
- strh r0, [r4, 0x36]
-_080A4CAA:
- 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 _080A4CC0
- ldrh r0, [r4, 0x36]
- subs r0, 0x2
- strh r0, [r4, 0x36]
-_080A4CC0:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x2F
- ble _080A4CCE
- ldrh r0, [r4, 0x36]
- adds r0, 0x2
- strh r0, [r4, 0x36]
-_080A4CCE:
- 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 _080A4CF4
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x26]
-_080A4CF4:
- adds r0, r5, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- ble _080A4D04
- movs r0, 0
- strh r0, [r4, 0x34]
-_080A4D04:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4C98
-
- thumb_func_start sub_80A4D0C
-sub_80A4D0C: @ 80A4D0C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080A4D50 @ =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A4D20
- adds r0, r4, 0
- bl sub_8074FCC
-_080A4D20:
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_8074FF8
- 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, _080A4D54 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A4D58 @ =sub_8074D00
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4D50: .4byte gBattleAnimArgs
-_080A4D54: .4byte DestroyAnimSprite
-_080A4D58: .4byte sub_8074D00
- thumb_func_end sub_80A4D0C
-
- thumb_func_start sub_80A4D5C
-sub_80A4D5C: @ 80A4D5C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080A4D70 @ =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A4D78
- ldr r0, _080A4D74 @ =gBattleAnimAttacker
- b _080A4D7A
- .align 2, 0
-_080A4D70: .4byte gBattleAnimArgs
-_080A4D74: .4byte gBattleAnimAttacker
-_080A4D78:
- ldr r0, _080A4DBC @ =gBattleAnimTarget
-_080A4D7A:
- ldrb r6, [r0]
- bl sub_8075290
- lsls r0, 24
- cmp r0, 0
- beq _080A4DC4
- movs r1, 0x2
- adds r0, r6, 0
- eors r0, r1
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080A4DC4
- ldr r4, _080A4DC0 @ =gBattleAnimArgs
- ldrb r1, [r4, 0xC]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- adds r0, r6, 0
- bl sub_8076D9C
- movs r2, 0
- ldrsh r1, [r4, r2]
- adds r0, r5, 0
- bl sub_8074FF8
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- b _080A4E14
- .align 2, 0
-_080A4DBC: .4byte gBattleAnimTarget
-_080A4DC0: .4byte gBattleAnimArgs
-_080A4DC4:
- ldr r4, _080A4DE4 @ =gBattleAnimArgs
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080A4DE8
- adds r0, r6, 0
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x1
- b _080A4DFA
- .align 2, 0
-_080A4DE4: .4byte gBattleAnimArgs
-_080A4DE8:
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x3
-_080A4DFA:
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r5, 0x22]
- ldr r0, _080A4E34 @ =gBattleAnimArgs
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r0, r5, 0
- bl sub_8074FF8
-_080A4E14:
- ldr r1, _080A4E34 @ =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, _080A4E38 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A4E3C @ =sub_8074D00
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4E34: .4byte gBattleAnimArgs
-_080A4E38: .4byte DestroyAnimSprite
-_080A4E3C: .4byte sub_8074D00
- thumb_func_end sub_80A4D5C
-
- thumb_func_start sub_80A4E40
-sub_80A4E40: @ 80A4E40
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8074FCC
- ldr r0, _080A4E6C @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A4E74
- ldr r0, _080A4E70 @ =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 _080A4E8E
- .align 2, 0
-_080A4E6C: .4byte gBattleAnimAttacker
-_080A4E70: .4byte gBattleAnimArgs
-_080A4E74:
- ldr r2, _080A4E98 @ =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
-_080A4E8E:
- ldr r0, _080A4E9C @ =sub_80A4EA0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4E98: .4byte gBattleAnimArgs
-_080A4E9C: .4byte sub_80A4EA0
- thumb_func_end sub_80A4E40
-
- thumb_func_start sub_80A4EA0
-sub_80A4EA0: @ 80A4EA0
- 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 _080A4ED8
- 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]
-_080A4ED8:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A4EEC
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A4EEC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4EA0
-
- thumb_func_start sub_80A4EF4
-sub_80A4EF4: @ 80A4EF4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8074FCC
- ldr r0, _080A4F24 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A4F2C
- ldr r1, _080A4F28 @ =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 _080A4F4A
- .align 2, 0
-_080A4F24: .4byte gBattleAnimAttacker
-_080A4F28: .4byte gBattleAnimArgs
-_080A4F2C:
- ldr r2, _080A4F54 @ =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, _080A4F58 @ =0x0000ffff
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080A4F4A:
- ldr r0, _080A4F5C @ =sub_80A4F60
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4F54: .4byte gBattleAnimArgs
-_080A4F58: .4byte 0x0000ffff
-_080A4F5C: .4byte sub_80A4F60
- thumb_func_end sub_80A4EF4
-
- thumb_func_start sub_80A4F60
-sub_80A4F60: @ 80A4F60
- 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 _080A4FA4
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080A4FA4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4F60
-
- thumb_func_start sub_80A4FAC
-sub_80A4FAC: @ 80A4FAC
- 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, _080A4FCC @ =sub_8074C44
- str r1, [r0, 0x1C]
- ldr r1, _080A4FD0 @ =sub_80A4FD4
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080A4FCC: .4byte sub_8074C44
-_080A4FD0: .4byte sub_80A4FD4
- thumb_func_end sub_80A4FAC
-
- thumb_func_start sub_80A4FD4
-sub_80A4FD4: @ 80A4FD4
- 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 _080A4FEA
- cmp r0, 0x1
- beq _080A5004
- b _080A506A
-_080A4FEA:
- strh r1, [r5, 0x2E]
- ldr r0, _080A4FFC @ =sub_8074C44
- str r0, [r5, 0x1C]
- ldr r1, _080A5000 @ =sub_80A4FD4
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- b _080A506A
- .align 2, 0
-_080A4FFC: .4byte sub_8074C44
-_080A5000: .4byte sub_80A4FD4
-_080A5004:
- 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, _080A5078 @ =gUnknown_83E3548
- 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, _080A507C @ =sub_8075590
- str r0, [r5, 0x1C]
- ldr r1, _080A5080 @ =sub_80A5084
- 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 sub_8073A44
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xCB
- bl PlaySE12WithPanning
-_080A506A:
- ldrh r0, [r5, 0x38]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x38]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5078: .4byte gUnknown_83E3548
-_080A507C: .4byte sub_8075590
-_080A5080: .4byte sub_80A5084
- thumb_func_end sub_80A4FD4
-
- thumb_func_start sub_80A5084
-sub_80A5084: @ 80A5084
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x38]
- lsls r0, 16
- asrs r0, 24
- cmp r0, 0x4
- bne _080A50AC
- movs r0, 0xA
- strh r0, [r2, 0x2E]
- ldr r0, _080A50A4 @ =sub_8074C44
- str r0, [r2, 0x1C]
- ldr r1, _080A50A8 @ =sub_80A50B8
- adds r0, r2, 0
- bl StoreSpriteCallbackInData6
- b _080A50B0
- .align 2, 0
-_080A50A4: .4byte sub_8074C44
-_080A50A8: .4byte sub_80A50B8
-_080A50AC:
- ldr r0, _080A50B4 @ =sub_80A4FD4
- str r0, [r2, 0x1C]
-_080A50B0:
- pop {r0}
- bx r0
- .align 2, 0
-_080A50B4: .4byte sub_80A4FD4
- thumb_func_end sub_80A5084
-
- thumb_func_start sub_80A50B8
-sub_80A50B8: @ 80A50B8
- push {r4-r7,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x6]
- cmp r1, 0
- bne _080A50E0
- movs r0, 0x3
- strh r0, [r5, 0x2E]
- strh r1, [r5, 0x30]
- strh r1, [r5, 0x32]
- ldr r0, _080A50D8 @ =sub_8074C44
- str r0, [r5, 0x1C]
- ldr r1, _080A50DC @ =sub_80A5174
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- b _080A5160
- .align 2, 0
-_080A50D8: .4byte sub_8074C44
-_080A50DC: .4byte sub_80A5174
-_080A50E0:
- ldrh r0, [r5, 0x6]
- cmp r0, 0x2
- beq _080A5100
- cmp r0, 0x2
- bgt _080A50F0
- cmp r0, 0x1
- beq _080A50F6
- b _080A5114
-_080A50F0:
- cmp r0, 0x3
- beq _080A5108
- b _080A5114
-_080A50F6:
- ldr r6, _080A50FC @ =0x0000fff8
- adds r7, r6, 0
- b _080A5118
- .align 2, 0
-_080A50FC: .4byte 0x0000fff8
-_080A5100:
- ldr r7, _080A5104 @ =0x0000fff8
- b _080A5116
- .align 2, 0
-_080A5104: .4byte 0x0000fff8
-_080A5108:
- movs r7, 0x8
- ldr r6, _080A5110 @ =0x0000fff8
- b _080A5118
- .align 2, 0
-_080A5110: .4byte 0x0000fff8
-_080A5114:
- movs r7, 0x8
-_080A5116:
- movs r6, 0x8
-_080A5118:
- 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, _080A5168 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, r7
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x36]
- ldr r0, _080A516C @ =sub_8075590
- str r0, [r5, 0x1C]
- ldr r1, _080A5170 @ =sub_80A5220
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
-_080A5160:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5168: .4byte gBattleAnimTarget
-_080A516C: .4byte sub_8075590
-_080A5170: .4byte sub_80A5220
- thumb_func_end sub_80A50B8
-
- thumb_func_start sub_80A5174
-sub_80A5174: @ 80A5174
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A5194
- ldrh r0, [r4, 0x30]
- adds r0, 0x3
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080A51A4
- movs r0, 0x10
- b _080A51A2
-_080A5194:
- ldrh r0, [r4, 0x30]
- subs r0, 0x3
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _080A51A4
- movs r0, 0
-_080A51A2:
- strh r0, [r4, 0x30]
-_080A51A4:
- 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_8075BE8
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080A5200 @ =0x00007fff
- bl BlendPalettes
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- cmp r0, 0x10
- bne _080A520C
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- lsls r0, r1, 5
- ldr r2, _080A5204 @ =gPlttBufferUnfaded + 0x210
- adds r0, r2
- lsls r1, 4
- ldr r3, _080A5208 @ =0x00000101
- adds r2, r3, 0
- orrs r1, r2
- movs r2, 0x4
- bl LoadPalette
- movs r0, 0x3F
- bl sub_8073A44
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xB9
- bl PlaySE12WithPanning
- b _080A5214
- .align 2, 0
-_080A5200: .4byte 0x00007fff
-_080A5204: .4byte gPlttBufferUnfaded + 0x210
-_080A5208: .4byte 0x00000101
-_080A520C:
- cmp r0, 0
- bne _080A5214
- ldr r0, _080A521C @ =sub_80A5220
- str r0, [r4, 0x1C]
-_080A5214:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A521C: .4byte sub_80A5220
- thumb_func_end sub_80A5174
-
- thumb_func_start sub_80A5220
-sub_80A5220: @ 80A5220
- push {lr}
- adds r2, r0, 0
- ldr r0, _080A523C @ =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, _080A5240 @ =0x0000ffff
- cmp r1, r0
- bne _080A5238
- movs r0, 0
- strh r0, [r2, 0x30]
- strh r0, [r2, 0x2E]
- ldr r0, _080A5244 @ =sub_80A5248
- str r0, [r2, 0x1C]
-_080A5238:
- pop {r0}
- bx r0
- .align 2, 0
-_080A523C: .4byte gBattleAnimArgs
-_080A5240: .4byte 0x0000ffff
-_080A5244: .4byte sub_80A5248
- thumb_func_end sub_80A5220
-
- thumb_func_start sub_80A5248
-sub_80A5248: @ 80A5248
- 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 _080A527C
- 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]
-_080A527C:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bne _080A5290
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A5290:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5248
-
- thumb_func_start sub_80A5298
-sub_80A5298: @ 80A5298
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _080A52B8 @ =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r3, 0x6]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080A52BC
- ldrh r0, [r3, 0x20]
- subs r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- subs r0, 0x18
- strh r0, [r3, 0x22]
- b _080A530E
- .align 2, 0
-_080A52B8: .4byte gBattleAnimArgs
-_080A52BC:
- cmp r0, 0x2
- bne _080A52D8
- 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 _080A530A
-_080A52D8:
- cmp r0, 0x3
- bne _080A52F4
- 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 _080A530A
-_080A52F4:
- 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
-_080A530A:
- orrs r0, r1
- strb r0, [r3, 0x3]
-_080A530E:
- ldrh r2, [r3, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r4, _080A5334 @ =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _080A5338 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- ldr r1, _080A533C @ =sub_80A4FAC
- str r1, [r3, 0x1C]
- adds r0, r3, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5334: .4byte 0x000003ff
-_080A5338: .4byte 0xfffffc00
-_080A533C: .4byte sub_80A4FAC
- thumb_func_end sub_80A5298
-
- thumb_func_start sub_80A5340
-sub_80A5340: @ 80A5340
- 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, _080A5368 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080A537C
- cmp r0, 0x1
- bgt _080A536C
- cmp r0, 0
- beq _080A5372
- b _080A538C
- .align 2, 0
-_080A5368: .4byte gBattleAnimArgs
-_080A536C:
- cmp r0, 0x2
- beq _080A5384
- b _080A538C
-_080A5372:
- ldr r0, _080A5378 @ =sub_80A5398
- b _080A538E
- .align 2, 0
-_080A5378: .4byte sub_80A5398
-_080A537C:
- ldr r0, _080A5380 @ =sub_80A5474
- b _080A538E
- .align 2, 0
-_080A5380: .4byte sub_80A5474
-_080A5384:
- ldr r0, _080A5388 @ =sub_80A54C4
- b _080A538E
- .align 2, 0
-_080A5388: .4byte sub_80A54C4
-_080A538C:
- ldr r0, _080A5394 @ =sub_80A5584
-_080A538E:
- str r0, [r3, 0x1C]
- pop {r0}
- bx r0
- .align 2, 0
-_080A5394: .4byte sub_80A5584
- thumb_func_end sub_80A5340
-
- thumb_func_start sub_80A5398
-sub_80A5398: @ 80A5398
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x6
- strh r0, [r4, 0x2E]
- ldr r5, _080A53D8 @ =gBattleAnimAttacker
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- movs r2, 0x2
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- beq _080A53B6
- movs r1, 0x2
-_080A53B6:
- strh r1, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r1, _080A53DC @ =gUnknown_2023D44
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- ldr r1, _080A53E0 @ =sub_80A53E8
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A53E4 @ =sub_8074DC4
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A53D8: .4byte gBattleAnimAttacker
-_080A53DC: .4byte gUnknown_2023D44
-_080A53E0: .4byte sub_80A53E8
-_080A53E4: .4byte sub_8074DC4
- thumb_func_end sub_80A5398
-
- thumb_func_start sub_80A53E8
-sub_80A53E8: @ 80A53E8
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0x2E
- ldrsh r6, [r5, r0]
- cmp r6, 0
- bne _080A5424
- ldr r1, _080A5464 @ =gUnknown_2023D44
- ldr r4, _080A5468 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r5, 0x34]
- movs r1, 0
- bl sub_80758E0
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3A]
- ldr r2, _080A546C @ =0xfffffd00
- adds r1, r2, 0
- cmp r0, 0
- beq _080A5420
- movs r0, 0xC0
- lsls r0, 2
- adds r1, r0, 0
-_080A5420:
- strh r1, [r5, 0x36]
- strh r6, [r5, 0x38]
-_080A5424:
- 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_80759DC
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080A545E
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080A5470 @ =sub_80A5584
- str r0, [r5, 0x1C]
-_080A545E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5464: .4byte gUnknown_2023D44
-_080A5468: .4byte gBattleAnimAttacker
-_080A546C: .4byte 0xfffffd00
-_080A5470: .4byte sub_80A5584
- thumb_func_end sub_80A53E8
-
- thumb_func_start sub_80A5474
-sub_80A5474: @ 80A5474
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x4
- strh r0, [r4, 0x2E]
- ldr r5, _080A54B4 @ =gBattleAnimAttacker
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- movs r1, 0x3
- cmp r0, 0
- beq _080A5492
- movs r0, 0x3
- negs r0, r0
- adds r1, r0, 0
-_080A5492:
- strh r1, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r1, _080A54B8 @ =gUnknown_2023D44
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- ldr r1, _080A54BC @ =sub_80A5584
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A54C0 @ =sub_8074DC4
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A54B4: .4byte gBattleAnimAttacker
-_080A54B8: .4byte gUnknown_2023D44
-_080A54BC: .4byte sub_80A5584
-_080A54C0: .4byte sub_8074DC4
- thumb_func_end sub_80A5474
-
- thumb_func_start sub_80A54C4
-sub_80A54C4: @ 80A54C4
- 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 _080A54DE
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _080A54E4 @ =sub_80A54E8
- str r0, [r1, 0x1C]
-_080A54DE:
- pop {r0}
- bx r0
- .align 2, 0
-_080A54E4: .4byte sub_80A54E8
- thumb_func_end sub_80A54C4
-
- thumb_func_start sub_80A54E8
-sub_80A54E8: @ 80A54E8
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A5538
- ldr r1, _080A5524 @ =gUnknown_2023D44
- ldr r4, _080A5528 @ =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 _080A552C
- movs r0, 0xFC
- lsls r0, 8
- strh r0, [r5, 0x36]
- movs r0, 0xC0
- lsls r0, 4
- b _080A5536
- .align 2, 0
-_080A5524: .4byte gUnknown_2023D44
-_080A5528: .4byte gBattleAnimAttacker
-_080A552C:
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r5, 0x36]
- movs r0, 0xF4
- lsls r0, 8
-_080A5536:
- strh r0, [r5, 0x38]
-_080A5538:
- 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_80759DC
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080A5578
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8075980
- ldr r0, _080A5580 @ =sub_80A5584
- str r0, [r5, 0x1C]
-_080A5578:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5580: .4byte sub_80A5584
- thumb_func_end sub_80A54E8
-
- thumb_func_start sub_80A5584
-sub_80A5584: @ 80A5584
- push {lr}
- bl DestroyAnimSprite
- pop {r0}
- bx r0
- thumb_func_end sub_80A5584
-
- thumb_func_start sub_80A5590
-sub_80A5590: @ 80A5590
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r1, _080A559C @ =sub_80A55A0
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080A559C: .4byte sub_80A55A0
- thumb_func_end sub_80A5590
-
- thumb_func_start sub_80A55A0
-sub_80A55A0: @ 80A55A0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080A55FA
- cmp r5, 0x1
- bgt _080A55B6
- cmp r5, 0
- beq _080A55BC
- b _080A568E
-_080A55B6:
- cmp r5, 0x2
- beq _080A564C
- b _080A568E
-_080A55BC:
- strh r5, [r4, 0x30]
- ldr r1, _080A5640 @ =gUnknown_2023D44
- ldr r2, _080A5644 @ =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, _080A5648 @ =0xfffffe00
- adds r1, r2, 0
- cmp r0, 0
- beq _080A55E4
- movs r0, 0x80
- lsls r0, 2
- adds r1, r0, 0
-_080A55E4:
- strh r1, [r4, 0x36]
- strh r5, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_80758E0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_080A55FA:
- 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_80759DC
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080A568E
- 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 _080A568E
- .align 2, 0
-_080A5640: .4byte gUnknown_2023D44
-_080A5644: .4byte gBattleAnimAttacker
-_080A5648: .4byte 0xfffffe00
-_080A564C:
- 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_80759DC
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080A568E
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8075980
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A568E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A55A0
-
- thumb_func_start sub_80A5694
-sub_80A5694: @ 80A5694
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080A56D8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldr r1, _080A56DC @ =gUnknown_2023D44
- ldr r2, _080A56E0 @ =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, _080A56E4 @ =gBattleAnimArgs
- movs r3, 0
- ldrsh r1, [r0, r3]
- cmp r1, 0
- beq _080A56E8
- cmp r1, 0x1
- beq _080A5704
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- b _080A5722
- .align 2, 0
-_080A56D8: .4byte gTasks
-_080A56DC: .4byte gUnknown_2023D44
-_080A56E0: .4byte gBattleAnimAttacker
-_080A56E4: .4byte gBattleAnimArgs
-_080A56E8:
- 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 _080A56FC
- negs r0, r0
- strh r0, [r5, 0x12]
-_080A56FC:
- ldr r0, _080A5700 @ =sub_80A572C
- b _080A5720
- .align 2, 0
-_080A5700: .4byte sub_80A572C
-_080A5704:
- 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 _080A571E
- negs r0, r0
- strh r0, [r5, 0x10]
- negs r0, r1
- strh r0, [r5, 0x12]
-_080A571E:
- ldr r0, _080A5728 @ =sub_80A58EC
-_080A5720:
- str r0, [r5]
-_080A5722:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5728: .4byte sub_80A58EC
- thumb_func_end sub_80A5694
-
- thumb_func_start sub_80A572C
-sub_80A572C: @ 80A572C
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080A5750 @ =gTasks
- adds r4, r0, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080A5746
- b _080A58E6
-_080A5746:
- lsls r0, 2
- ldr r1, _080A5754 @ =_080A5758
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A5750: .4byte gTasks
-_080A5754: .4byte _080A5758
- .align 2, 0
-_080A5758:
- .4byte _080A576C
- .4byte _080A579E
- .4byte _080A57F8
- .4byte _080A5870
- .4byte _080A58B4
-_080A576C:
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _080A577C
- ldrh r2, [r4, 0x12]
- ldrh r3, [r4, 0x10]
- adds r2, r3
- b _080A58C2
-_080A577C:
- 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 _080A5792
- movs r2, 0xC0
- negs r2, r2
- adds r1, r2, 0
-_080A5792:
- strh r1, [r4, 0x12]
- ldrb r0, [r4, 0x8]
- movs r1, 0
- bl sub_80758E0
- b _080A58A8
-_080A579E:
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080A57C4
- 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_80759DC
- b _080A58D4
-_080A57C4:
- movs r0, 0x8
- strh r0, [r4, 0xE]
- ldr r2, _080A57F4 @ =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 _080A57EA
- movs r1, 0x2
-_080A57EA:
- strh r1, [r4, 0x12]
- movs r0, 0x1
- strh r0, [r4, 0x14]
- b _080A58A8
- .align 2, 0
-_080A57F4: .4byte gSprites
-_080A57F8:
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080A5854
- ldrh r1, [r4, 0x14]
- movs r3, 0x14
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080A5812
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- b _080A58E6
-_080A5812:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _080A5834
- ldr r2, _080A5830 @ =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 _080A5848
- .align 2, 0
-_080A5830: .4byte gSprites
-_080A5834:
- ldr r2, _080A5850 @ =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
-_080A5848:
- strh r1, [r0, 0x24]
- movs r0, 0x1
- strh r0, [r4, 0x14]
- b _080A58D4
- .align 2, 0
-_080A5850: .4byte gSprites
-_080A5854:
- ldr r2, _080A586C @ =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 _080A58A8
- .align 2, 0
-_080A586C: .4byte gSprites
-_080A5870:
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080A5880
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _080A58E6
-_080A5880:
- movs r0, 0x3
- strh r0, [r4, 0xE]
- ldr r2, _080A58B0 @ =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 _080A58A6
- movs r1, 0x8
-_080A58A6:
- strh r1, [r4, 0x12]
-_080A58A8:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _080A58E6
- .align 2, 0
-_080A58B0: .4byte gSprites
-_080A58B4:
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080A58E0
- ldrh r2, [r4, 0x12]
- ldrh r0, [r4, 0x10]
- adds r2, r0
-_080A58C2:
- strh r2, [r4, 0x10]
- ldr r3, _080A58DC @ =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]
-_080A58D4:
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _080A58E6
- .align 2, 0
-_080A58DC: .4byte gSprites
-_080A58E0:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080A58E6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A572C
-
- thumb_func_start sub_80A58EC
-sub_80A58EC: @ 80A58EC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080A5928 @ =gTasks
- adds r4, r0, r1
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A592C
- 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_80759DC
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _080A5938
- .align 2, 0
-_080A5928: .4byte gTasks
-_080A592C:
- ldrb r0, [r4, 0x8]
- bl sub_8075980
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080A5938:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A58EC
-
- thumb_func_start sub_80A5940
-sub_80A5940: @ 80A5940
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080A5954 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A595C
- ldr r4, _080A5958 @ =gBattleAnimAttacker
- b _080A595E
- .align 2, 0
-_080A5954: .4byte gBattleAnimArgs
-_080A5958: .4byte gBattleAnimAttacker
-_080A595C:
- ldr r4, _080A599C @ =gBattleAnimTarget
-_080A595E:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- 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, _080A59A0 @ =sub_80A5A8C
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A59A4 @ =sub_8074F6C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A599C: .4byte gBattleAnimTarget
-_080A59A0: .4byte sub_80A5A8C
-_080A59A4: .4byte sub_8074F6C
- thumb_func_end sub_80A5940
-
- thumb_func_start sub_80A59A8
-sub_80A59A8: @ 80A59A8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080A59E0 @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A59E4 @ =0x0000ffd0
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r1, _080A59E8 @ =sub_80A5A44
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A59EC @ =sub_8074F6C
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A59E0: .4byte gBattleAnimTarget
-_080A59E4: .4byte 0x0000ffd0
-_080A59E8: .4byte sub_80A5A44
-_080A59EC: .4byte sub_8074F6C
- thumb_func_end sub_80A59A8
-
- thumb_func_start sub_80A59F0
-sub_80A59F0: @ 80A59F0
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _080A5A34 @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A5A38 @ =gBattleAnimArgs
- ldr r2, _080A5A3C @ =0x0000ffd0
- adds r0, r2
- ldrh r1, [r1]
- adds r0, r1
- movs r6, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- 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, _080A5A40 @ =sub_80A5A8C
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5A34: .4byte gBattleAnimTarget
-_080A5A38: .4byte gBattleAnimArgs
-_080A5A3C: .4byte 0x0000ffd0
-_080A5A40: .4byte sub_80A5A8C
- thumb_func_end sub_80A59F0
-
- thumb_func_start sub_80A5A44
-sub_80A5A44: @ 80A5A44
- 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 _080A5A6E
- movs r0, 0xC
- strh r0, [r4, 0x2E]
- movs r0, 0x8
- strh r0, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r1, _080A5A74 @ =sub_80A5A7C
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A5A78 @ =sub_8074CD0
- str r0, [r4, 0x1C]
-_080A5A6E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5A74: .4byte sub_80A5A7C
-_080A5A78: .4byte sub_8074CD0
- thumb_func_end sub_80A5A44
-
- thumb_func_start sub_80A5A7C
-sub_80A5A7C: @ 80A5A7C
- movs r1, 0
- strh r1, [r0, 0x2E]
- strh r1, [r0, 0x30]
- ldr r1, _080A5A88 @ =sub_80A5A8C
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080A5A88: .4byte sub_80A5A8C
- thumb_func_end sub_80A5A7C
-
- thumb_func_start sub_80A5A8C
-sub_80A5A8C: @ 80A5A8C
- 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 _080A5AD4
- 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 _080A5AD4
- adds r0, r3, 0
- bl DestroyAnimSprite
-_080A5AD4:
- pop {r0}
- bx r0
- thumb_func_end sub_80A5A8C
-
- thumb_func_start sub_80A5AD8
-sub_80A5AD8: @ 80A5AD8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080A5AEC @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A5AF4
- ldr r4, _080A5AF0 @ =gBattleAnimAttacker
- b _080A5AF6
- .align 2, 0
-_080A5AEC: .4byte gBattleAnimArgs
-_080A5AF0: .4byte gBattleAnimAttacker
-_080A5AF4:
- ldr r4, _080A5B30 @ =gBattleAnimTarget
-_080A5AF6:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- 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, _080A5B34 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x6]
- strh r0, [r5, 0x30]
- ldr r0, _080A5B38 @ =sub_80A5B3C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5B30: .4byte gBattleAnimTarget
-_080A5B34: .4byte gBattleAnimArgs
-_080A5B38: .4byte sub_80A5B3C
- thumb_func_end sub_80A5AD8
-
- thumb_func_start sub_80A5B3C
-sub_80A5B3C: @ 80A5B3C
- 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 _080A5B5C
- movs r0, 0
- strh r0, [r2, 0x2E]
- ldrh r0, [r2, 0x22]
- subs r0, 0x1
- strh r0, [r2, 0x22]
-_080A5B5C:
- 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 _080A5B78
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080A5B78:
- pop {r0}
- bx r0
- thumb_func_end sub_80A5B3C
-
- thumb_func_start sub_80A5B7C
-sub_80A5B7C: @ 80A5B7C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080A5BC4 @ =gBattleAnimAttacker
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8074480
- 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 sub_8073A44
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x38]
- ldr r0, _080A5BC8 @ =sub_80A5BCC
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5BC4: .4byte gBattleAnimAttacker
-_080A5BC8: .4byte sub_80A5BCC
- thumb_func_end sub_80A5B7C
-
- thumb_func_start sub_80A5BCC
-sub_80A5BCC: @ 80A5BCC
- 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 _080A5C38
- 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 _080A5C1E
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A5C1E
- ldrh r1, [r4, 0x38]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xBB
- bl PlaySE12WithPanning
-_080A5C1E:
- 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 _080A5C38
- strh r1, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_080A5C38:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A5C62
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- ble _080A5C62
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080A5C62
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A5C62:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5BCC
-
- thumb_func_start sub_80A5C68
-sub_80A5C68: @ 80A5C68
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A5CB2
- ldr r4, _080A5CC8 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- ldr r5, _080A5CCC @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x2]
- adds r0, r5
- strh r0, [r6, 0x22]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A5CAC
- ldrh r0, [r6, 0x22]
- adds r0, 0xA
- strh r0, [r6, 0x22]
-_080A5CAC:
- ldrh r0, [r6, 0x2E]
- adds r0, 0x1
- strh r0, [r6, 0x2E]
-_080A5CB2:
- ldr r0, _080A5CCC @ =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, _080A5CD0 @ =0x0000ffff
- cmp r1, r0
- bne _080A5CC2
- adds r0, r6, 0
- bl DestroyAnimSprite
-_080A5CC2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5CC8: .4byte gBattleAnimAttacker
-_080A5CCC: .4byte gBattleAnimArgs
-_080A5CD0: .4byte 0x0000ffff
- thumb_func_end sub_80A5C68
-
- thumb_func_start sub_80A5CD4
-sub_80A5CD4: @ 80A5CD4
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080A5CF4 @ =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 _080A5D00
- ldr r1, _080A5CF8 @ =gBattleAnimArgs
- ldr r0, _080A5CFC @ =0x0000ffff
- strh r0, [r1, 0xE]
- b _080A5D3E
- .align 2, 0
-_080A5CF4: .4byte gTasks
-_080A5CF8: .4byte gBattleAnimArgs
-_080A5CFC: .4byte 0x0000ffff
-_080A5D00:
- cmp r0, 0x2
- bne _080A5D0C
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- b _080A5D44
-_080A5D0C:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080A5D44
- 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 _080A5D44
-_080A5D3E:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_080A5D44:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5CD4
-
- thumb_func_start sub_80A5D4C
-sub_80A5D4C: @ 80A5D4C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8075114
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080A5D74 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, _080A5D78 @ =sub_80A5D7C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5D74: .4byte gBattleAnimArgs
-_080A5D78: .4byte sub_80A5D7C
- thumb_func_end sub_80A5D4C
-
- thumb_func_start sub_80A5D7C
-sub_80A5D7C: @ 80A5D7C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080A5D90
- subs r0, r1, 0x1
- strh r0, [r5, 0x2E]
- b _080A5DCC
-_080A5D90:
- 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, _080A5DD4 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080A5DD8 @ =sub_8075590
- str r0, [r5, 0x1C]
- ldr r1, _080A5DDC @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
-_080A5DCC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5DD4: .4byte gBattleAnimAttacker
-_080A5DD8: .4byte sub_8075590
-_080A5DDC: .4byte DestroyAnimSprite
- thumb_func_end sub_80A5D7C
-
- thumb_func_start sub_80A5DE0
-sub_80A5DE0: @ 80A5DE0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A5E30 @ =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 _080A5E28
- 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 _080A5E28
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080A5E28:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5E30: .4byte gTasks
- thumb_func_end sub_80A5DE0
-
- thumb_func_start sub_80A5E34
-sub_80A5E34: @ 80A5E34
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r4, 0
- ldr r0, _080A5E9C @ =gBattlersCount
- ldrb r0, [r0]
- cmp r4, r0
- bcs _080A5E90
- ldr r6, _080A5EA0 @ =gBattleAnimArgs
- ldr r5, _080A5EA4 @ =gUnknown_3004FF0
-_080A5E48:
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _080A5E64
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A5E64
- adds r0, r4, r5
- ldrb r0, [r0]
- bl SetHealthboxSpriteInvisible
-_080A5E64:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _080A5E82
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A5E82
- adds r0, r4, r5
- ldrb r0, [r0]
- bl SetHealthboxSpriteInvisible
-_080A5E82:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A5E9C @ =gBattlersCount
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080A5E48
-_080A5E90:
- adds r0, r7, 0
- bl DestroyAnimVisualTask
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5E9C: .4byte gBattlersCount
-_080A5EA0: .4byte gBattleAnimArgs
-_080A5EA4: .4byte gUnknown_3004FF0
- thumb_func_end sub_80A5E34
-
- thumb_func_start sub_80A5EA8
-sub_80A5EA8: @ 80A5EA8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- b _080A5EC2
-_080A5EB2:
- ldr r0, _080A5ED8 @ =gUnknown_3004FF0
- adds r0, r4, r0
- ldrb r0, [r0]
- bl SetHealthboxSpriteVisible
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080A5EC2:
- ldr r0, _080A5EDC @ =gBattlersCount
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080A5EB2
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5ED8: .4byte gUnknown_3004FF0
-_080A5EDC: .4byte gBattlersCount
- thumb_func_end sub_80A5EA8
-
- thumb_func_start sub_80A5EE0
-sub_80A5EE0: @ 80A5EE0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A5EF6
- movs r0, 0x30
- strh r0, [r4, 0x20]
- movs r0, 0x28
- b _080A5EFE
-_080A5EF6:
- ldr r0, _080A5F20 @ =gBattleAnimArgs
- ldrh r1, [r0]
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
-_080A5EFE:
- 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, _080A5F24 @ =sub_80A5F28
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5F20: .4byte gBattleAnimArgs
-_080A5F24: .4byte sub_80A5F28
- thumb_func_end sub_80A5EE0
-
- thumb_func_start sub_80A5F28
-sub_80A5F28: @ 80A5F28
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080A5F3A
- adds r0, r1, 0
- bl DestroyAnimSprite
-_080A5F3A:
- pop {r0}
- bx r0
- thumb_func_end sub_80A5F28
-
- thumb_func_start sub_80A5F40
-sub_80A5F40: @ 80A5F40
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A5F78 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- ldr r2, _080A5F7C @ =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, _080A5F80 @ =sub_80A5F84
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5F78: .4byte gBattleAnimAttacker
-_080A5F7C: .4byte gBattleAnimArgs
-_080A5F80: .4byte sub_80A5F84
- thumb_func_end sub_80A5F40
-
- thumb_func_start sub_80A5F84
-sub_80A5F84: @ 80A5F84
- 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 _080A5FAE
- movs r0, 0
- strh r0, [r1, 0x30]
- ldrh r2, [r1, 0x32]
- movs r3, 0x32
- ldrsh r0, [r1, r3]
- cmp r0, 0x77
- bgt _080A5FAE
- ldrh r0, [r1, 0x22]
- adds r0, 0x1
- strh r0, [r1, 0x22]
- adds r0, r2, 0x1
- strh r0, [r1, 0x32]
-_080A5FAE:
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080A5FBC
- adds r0, r1, 0
- bl DestroyAnimSprite
-_080A5FBC:
- pop {r0}
- bx r0
- thumb_func_end sub_80A5F84
-
- thumb_func_start sub_80A5FC0
-sub_80A5FC0: @ 80A5FC0
- 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_8075BE8
- mov r8, r0
- ldr r0, _080A6090 @ =0x0000ffff
- mov r1, r8
- ands r1, r0
- mov r8, r1
- ldr r0, _080A6094 @ =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_8075CB8
- 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_80765C0
- ldr r0, _080A6098 @ =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, _080A609C @ =0x000027d3
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0
- mov r1, r10
- orrs r4, r1
- ldr r0, _080A60A0 @ =0x00007fbb
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080A60A4 @ =sub_80A60A8
- 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
- .align 2, 0
-_080A6090: .4byte 0x0000ffff
-_080A6094: .4byte gTasks
-_080A6098: .4byte 0x000027d2
-_080A609C: .4byte 0x000027d3
-_080A60A0: .4byte 0x00007fbb
-_080A60A4: .4byte sub_80A60A8
- thumb_func_end sub_80A5FC0
-
- thumb_func_start sub_80A60A8
-sub_80A60A8: @ 80A60A8
- 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, _080A60D0 @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080A6194
- cmp r1, 0x1
- bgt _080A60D4
- cmp r1, 0
- beq _080A60E2
- b _080A6232
- .align 2, 0
-_080A60D0: .4byte gTasks
-_080A60D4:
- cmp r1, 0x2
- bne _080A60DA
- b _080A61EC
-_080A60DA:
- cmp r1, 0x3
- bne _080A60E0
- b _080A6220
-_080A60E0:
- b _080A6232
-_080A60E2:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bgt _080A60F0
- b _080A6232
-_080A60F0:
- 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 _080A613C
- 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 _080A6146
-_080A613C:
- ldr r7, _080A618C @ =0x00007fbb
- mov r12, r7
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080A6146:
- movs r2, 0x1
- movs r3, 0
- movs r1, 0
-_080A614C:
- 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 _080A6178
- movs r1, 0x1
- ldr r2, _080A6190 @ =gPlttBufferFaded
-_080A6164:
- 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 _080A6164
-_080A6178:
- 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 _080A614C
- b _080A6232
- .align 2, 0
-_080A618C: .4byte 0x00007fbb
-_080A6190: .4byte gPlttBufferFaded
-_080A6194:
- ldr r0, _080A61DC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A6232
- movs r2, 0
- ldr r3, _080A61E0 @ =gSprites
- movs r5, 0x14
- adds r5, r3
- mov r12, r5
- ldr r7, _080A61E4 @ =gUnknown_83E3734
- mov r8, r7
- ldr r6, _080A61E8 @ =gUnknown_83E3764
- movs r5, 0x1
-_080A61B2:
- 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 _080A61C6
- cmp r0, r6
- bne _080A61CA
-_080A61C6:
- adds r0, r1, r3
- strh r5, [r0, 0x2E]
-_080A61CA:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3F
- bls _080A61B2
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080A6214
- .align 2, 0
-_080A61DC: .4byte gPaletteFade
-_080A61E0: .4byte gSprites
-_080A61E4: .4byte gUnknown_83E3734
-_080A61E8: .4byte gUnknown_83E3764
-_080A61EC:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _080A6232
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- bl sub_80765C8
- ldr r1, _080A621C @ =0x00007fbb
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_080A6214:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080A6232
- .align 2, 0
-_080A621C: .4byte 0x00007fbb
-_080A6220:
- ldr r0, _080A6240 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A6232
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080A6232:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6240: .4byte gPaletteFade
- thumb_func_end sub_80A60A8
-
- thumb_func_start sub_80A6244
-sub_80A6244: @ 80A6244
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080A62C8 @ =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bgt _080A6256
- movs r0, 0x2
- strh r0, [r6, 0x4]
-_080A6256:
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0x7F
- ble _080A6262
- movs r0, 0x7F
- strh r0, [r6, 0x4]
-_080A6262:
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldrh r0, [r6, 0x4]
- strh r0, [r5, 0x30]
- ldr r4, _080A62CC @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- 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 sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A62D4
- 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, _080A62D0 @ =0xffffec00
- b _080A62FA
- .align 2, 0
-_080A62C8: .4byte gBattleAnimArgs
-_080A62CC: .4byte gBattleAnimTarget
-_080A62D0: .4byte 0xffffec00
-_080A62D4:
- ldr r0, _080A6314 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A631C
- 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
-_080A62FA:
- bl __divsi3
- strh r0, [r5, 0x34]
- lsls r4, 7
- strh r4, [r5, 0x36]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- ldr r0, _080A6318 @ =0xfffff600
- bl __divsi3
- strh r0, [r5, 0x38]
- b _080A6358
- .align 2, 0
-_080A6314: .4byte gBattleAnimAttacker
-_080A6318: .4byte 0xfffff600
-_080A631C:
- 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, _080A6364 @ =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]
-_080A6358:
- ldr r0, _080A6368 @ =sub_80A636C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6364: .4byte 0xffffec00
-_080A6368: .4byte sub_80A636C
- thumb_func_end sub_80A6244
-
- thumb_func_start sub_80A636C
-sub_80A636C: @ 80A636C
- 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 _080A63A2
- ldrh r0, [r2, 0x3A]
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x3C]
- strh r0, [r2, 0x22]
-_080A63A2:
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080A63B0
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080A63B0:
- pop {r0}
- bx r0
- thumb_func_end sub_80A636C
-
- thumb_func_start sub_80A63B4
-sub_80A63B4: @ 80A63B4
- 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, _080A6444 @ =gTasks
- adds r6, r0, r1
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x8]
- ldr r0, _080A6448 @ =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, _080A644C @ =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, _080A6450 @ =gPlttBufferUnfaded
-_080A640C:
- 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 _080A640C
- 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, _080A644C @ =gSprites
- movs r1, 0x1C
- adds r1, r7
- mov r9, r1
- b _080A6488
- .align 2, 0
-_080A6444: .4byte gTasks
-_080A6448: .4byte 0x00002771
-_080A644C: .4byte gSprites
-_080A6450: .4byte gPlttBufferUnfaded
-_080A6454:
- 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, _080A64BC @ =sub_80A653C
- 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
-_080A6488:
- cmp r5, 0x1
- bhi _080A649A
- movs r0, 0
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080A6454
-_080A649A:
- ldr r0, _080A64C0 @ =sub_80A64E0
- str r0, [r6]
- ldr r0, _080A64C4 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_80768B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A64C8
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- bl ClearGpuRegBits
- b _080A64D2
- .align 2, 0
-_080A64BC: .4byte sub_80A653C
-_080A64C0: .4byte sub_80A64E0
-_080A64C4: .4byte gBattleAnimAttacker
-_080A64C8:
- movs r1, 0x80
- lsls r1, 3
- movs r0, 0
- bl ClearGpuRegBits
-_080A64D2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A63B4
-
- thumb_func_start sub_80A64E0
-sub_80A64E0: @ 80A64E0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A6514 @ =gTasks
- adds r0, r1
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A6532
- ldr r0, _080A6518 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_80768B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A651C
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- bl SetGpuRegBits
- b _080A6526
- .align 2, 0
-_080A6514: .4byte gTasks
-_080A6518: .4byte gBattleAnimAttacker
-_080A651C:
- movs r1, 0x80
- lsls r1, 3
- movs r0, 0
- bl SetGpuRegBits
-_080A6526:
- ldr r0, _080A6538 @ =0x00002771
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080A6532:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6538: .4byte 0x00002771
- thumb_func_end sub_80A64E0
-
- thumb_func_start sub_80A653C
-sub_80A653C: @ 80A653C
- 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 _080A6558
- movs r0, 0
- strh r0, [r5, 0x34]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_080A6558:
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x40
- ble _080A6580
- ldr r2, _080A657C @ =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 _080A65C2
- .align 2, 0
-_080A657C: .4byte gTasks
-_080A6580:
- ldr r4, _080A65C8 @ =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]
-_080A65C2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A65C8: .4byte gSineTable
- thumb_func_end sub_80A653C
-
- thumb_func_start sub_80A65CC
-sub_80A65CC: @ 80A65CC
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080A65E0 @ =DestroyAnimSprite
- bl StoreSpriteCallbackInData6
- ldr r0, _080A65E4 @ =sub_8074F6C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A65E0: .4byte DestroyAnimSprite
-_080A65E4: .4byte sub_8074F6C
- thumb_func_end sub_80A65CC
-
- thumb_func_start sub_80A65E8
-sub_80A65E8: @ 80A65E8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r4, _080A6698 @ =gUnknown_83E3898
- ldrh r0, [r4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xFF
- beq _080A662C
- lsls r0, r3, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r3, r0, 16
- movs r2, 0x1
- ldr r5, _080A669C @ =gPlttBufferFaded
-_080A6614:
- 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 _080A6614
-_080A662C:
- movs r4, 0x1
- ldr r0, _080A6698 @ =gUnknown_83E3898
- mov r8, r0
-_080A6632:
- 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 _080A667A
- lsls r0, r3, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r3, r0, 16
- movs r2, 0x1
- ldr r7, _080A669C @ =gPlttBufferFaded
- ldr r6, _080A6698 @ =gUnknown_83E3898
- adds r4, r5, 0
-_080A6660:
- 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 _080A6660
-_080A667A:
- mov r1, r12
- lsls r0, r1, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080A6632
- mov r0, r9
- bl DestroyAnimVisualTask
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6698: .4byte gUnknown_83E3898
-_080A669C: .4byte gPlttBufferFaded
- thumb_func_end sub_80A65E8
-
- thumb_func_start sub_80A66A0
-sub_80A66A0: @ 80A66A0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0x1
- ldr r6, _080A66D0 @ =gUnknown_83E3898
-_080A66AA:
- 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 _080A66AA
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A66D0: .4byte gUnknown_83E3898
- thumb_func_end sub_80A66A0
-
- thumb_func_start sub_80A66D4
-sub_80A66D4: @ 80A66D4
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- bl sub_8074FCC
- ldr r4, _080A672C @ =gBattleAnimArgs
- ldrb r1, [r4]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r2, _080A6730 @ =gUnknown_83E3898
- 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 _080A6710
- lsls r2, r0, 4
- ldrb r1, [r5, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
-_080A6710:
- ldrh r0, [r4, 0x2]
- movs r1, 0
- strh r0, [r5, 0x30]
- strh r1, [r5, 0x32]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x34]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A6734
- movs r6, 0x30
- movs r3, 0x28
- b _080A674E
- .align 2, 0
-_080A672C: .4byte gBattleAnimArgs
-_080A6730: .4byte gUnknown_83E3898
-_080A6734:
- ldr r4, _080A6784 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r3, r0, 24
-_080A674E:
- 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_80A678C
- ldr r0, _080A6788 @ =sub_80A67E4
- str r0, [r5, 0x1C]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6784: .4byte gBattleAnimTarget
-_080A6788: .4byte sub_80A67E4
- thumb_func_end sub_80A66D4
-
- thumb_func_start sub_80A678C
-sub_80A678C: @ 80A678C
- 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 _080A67AE
- lsls r0, r1, 24
- negs r0, r0
- lsrs r1, r0, 24
-_080A67AE:
- lsls r5, r2, 8
- lsls r1, 24
- asrs r1, 24
- adds r0, r5, 0
- bl __divsi3
- adds r4, r0, 0
- cmp r4, 0
- bne _080A67C2
- movs r4, 0x1
-_080A67C2:
- 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_80A678C
-
- thumb_func_start sub_80A67E4
-sub_80A67E4: @ 80A67E4
- 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 _080A6800
- adds r0, 0xFF
-_080A6800:
- 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 _080A684E
- lsls r0, r2, 16
- asrs r1, r0, 16
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- blt _080A684E
- cmp r1, 0x80
- ble _080A6856
-_080A684E:
- adds r0, r4, 0
- bl move_anim_8074EE0
- b _080A68A6
-_080A6856:
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- cmp r1, 0
- beq _080A68A6
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, r1
- ble _080A68A6
- 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 _080A687E
- strh r5, [r4, 0x30]
-_080A687E:
- ldr r2, _080A68AC @ =gUnknown_83E3898
- 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 _080A68A6
- lsls r2, r0, 4
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
-_080A68A6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A68AC: .4byte gUnknown_83E3898
- thumb_func_end sub_80A67E4
-
- thumb_func_start sub_80A68B0
-sub_80A68B0: @ 80A68B0
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r7, _080A6934 @ =gBattleAnimAttacker
- ldrb r0, [r7]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A68CE
- ldr r1, _080A6938 @ =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080A68CE:
- ldrb r0, [r7]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- ldr r4, _080A6938 @ =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 sub_8074480
- 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, _080A693C @ =sub_80A6940
- str r0, [r6, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6934: .4byte gBattleAnimAttacker
-_080A6938: .4byte gBattleAnimArgs
-_080A693C: .4byte sub_80A6940
- thumb_func_end sub_80A68B0
-
- thumb_func_start sub_80A6940
-sub_80A6940: @ 80A6940
- 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 _080A699E
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080A699E
- 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 _080A699E
- movs r0, 0x1
- strh r0, [r4, 0x34]
-_080A699E:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x30
- bne _080A69B2
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080A69B2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A6940
-
- thumb_func_start sub_80A69B8
-sub_80A69B8: @ 80A69B8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080A69D8 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _080A69DC
- 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 _080A69DE
- .align 2, 0
-_080A69D8: .4byte gBattleAnimArgs
-_080A69DC:
- ldr r6, _080A6A18 @ =0x0000fff0
-_080A69DE:
- ldr r4, _080A6A1C @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x8
- strh r0, [r5, 0x22]
- movs r0, 0x8
- strh r0, [r5, 0x2E]
- ldr r0, _080A6A20 @ =sub_8074C44
- str r0, [r5, 0x1C]
- ldr r1, _080A6A24 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6A18: .4byte 0x0000fff0
-_080A6A1C: .4byte gBattleAnimAttacker
-_080A6A20: .4byte sub_8074C44
-_080A6A24: .4byte DestroyAnimSprite
- thumb_func_end sub_80A69B8
-
- thumb_func_start sub_80A6A28
-sub_80A6A28: @ 80A6A28
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_8074FCC
- ldrh r0, [r4, 0x22]
- adds r0, 0x8
- strh r0, [r4, 0x22]
- ldr r5, _080A6AA0 @ =gBattleAnimArgs
- ldrb r1, [r5, 0x2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r2, _080A6AA4 @ =gUnknown_83E3898
- 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 _080A6A68
- lsls r2, r0, 4
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
-_080A6A68:
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- cmp r0, 0
- bne _080A6A74
- ldr r2, _080A6AA8 @ =0x0000ffe0
-_080A6A74:
- movs r0, 0x28
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x20]
- strh r1, [r4, 0x30]
- lsls r0, r2, 16
- asrs r0, 16
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- subs r0, 0x28
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x38]
- ldr r0, _080A6AAC @ =sub_80A6AB0
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6AA0: .4byte gBattleAnimArgs
-_080A6AA4: .4byte gUnknown_83E3898
-_080A6AA8: .4byte 0x0000ffe0
-_080A6AAC: .4byte sub_80A6AB0
- thumb_func_end sub_80A6A28
-
- thumb_func_start sub_80A6AB0
-sub_80A6AB0: @ 80A6AB0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- bne _080A6B00
- 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 _080A6ADC
- lsls r0, r1, 16
- negs r0, r0
- lsrs r1, r0, 16
-_080A6ADC:
- 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 _080A6B06
-_080A6B00:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A6B06:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A6AB0
-
- thumb_func_start sub_80A6B0C
-sub_80A6B0C: @ 80A6B0C
- 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 _080A6B2C
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_8076B2C
- adds r0, 0x8
- b _080A6B36
-_080A6B2C:
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_8076B2C
- subs r0, 0x8
-_080A6B36:
- strh r0, [r6, 0x20]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8074480
- adds r4, r0, 0
- adds r0, r5, 0
- movs r1, 0
- bl sub_8076B2C
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080A6B58
- adds r0, 0x3
-_080A6B58:
- asrs r0, 2
- subs r0, r4, r0
- strh r0, [r6, 0x22]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A6B0C
-
- thumb_func_start sub_80A6B64
-sub_80A6B64: @ 80A6B64
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080A6B78 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A6B80
- ldr r0, _080A6B7C @ =gBattleAnimAttacker
- b _080A6B82
- .align 2, 0
-_080A6B78: .4byte gBattleAnimArgs
-_080A6B7C: .4byte gBattleAnimAttacker
-_080A6B80:
- ldr r0, _080A6BC0 @ =gBattleAnimTarget
-_080A6B82:
- ldrb r4, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A6B0C
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- ldr r0, _080A6BC4 @ =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, _080A6BC8 @ =sub_80A6BD0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A6BCC @ =sub_8074F6C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6BC0: .4byte gBattleAnimTarget
-_080A6BC4: .4byte gBattleAnimArgs
-_080A6BC8: .4byte sub_80A6BD0
-_080A6BCC: .4byte sub_8074F6C
- thumb_func_end sub_80A6B64
-
- thumb_func_start sub_80A6BD0
-sub_80A6BD0: @ 80A6BD0
- 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 _080A6BF8
- ldr r1, _080A6C00 @ =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, _080A6C04 @ =sub_8074F6C
- str r0, [r4, 0x1C]
-_080A6BF8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6C00: .4byte DestroyAnimSprite
-_080A6C04: .4byte sub_8074F6C
- thumb_func_end sub_80A6BD0
-
- thumb_func_start sub_80A6C08
-sub_80A6C08: @ 80A6C08
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A6C1C @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A6C24
- ldr r0, _080A6C20 @ =gBattleAnimAttacker
- b _080A6C26
- .align 2, 0
-_080A6C1C: .4byte gBattleAnimArgs
-_080A6C20: .4byte gBattleAnimAttacker
-_080A6C24:
- ldr r0, _080A6C44 @ =gBattleAnimTarget
-_080A6C26:
- ldrb r0, [r0]
- adds r1, r4, 0
- bl sub_80A6B0C
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r1, _080A6C48 @ =sub_80A6C50
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A6C4C @ =sub_8074F50
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6C44: .4byte gBattleAnimTarget
-_080A6C48: .4byte sub_80A6C50
-_080A6C4C: .4byte sub_8074F50
- thumb_func_end sub_80A6C08
-
- thumb_func_start sub_80A6C50
-sub_80A6C50: @ 80A6C50
- 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 _080A6C76
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r1, _080A6C7C @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A6C80 @ =sub_8074F50
- str r0, [r4, 0x1C]
-_080A6C76:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6C7C: .4byte move_anim_8074EE0
-_080A6C80: .4byte sub_8074F50
- thumb_func_end sub_80A6C50
-
- thumb_func_start sub_80A6C84
-sub_80A6C84: @ 80A6C84
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r0, _080A6C98 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A6CA0
- ldr r0, _080A6C9C @ =gBattleAnimAttacker
- b _080A6CA2
- .align 2, 0
-_080A6C98: .4byte gBattleAnimArgs
-_080A6C9C: .4byte gBattleAnimAttacker
-_080A6CA0:
- ldr r0, _080A6CF4 @ =gBattleAnimTarget
-_080A6CA2:
- ldrb r5, [r0]
- adds r0, r5, 0
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8076B2C
- strh r0, [r4, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bgt _080A6CCA
- movs r0, 0xA
- strh r0, [r4, 0x22]
-_080A6CCA:
- 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, _080A6CF8 @ =sub_80A6D00
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A6CFC @ =sub_8074F50
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6CF4: .4byte gBattleAnimTarget
-_080A6CF8: .4byte sub_80A6D00
-_080A6CFC: .4byte sub_8074F50
- thumb_func_end sub_80A6C84
-
- thumb_func_start sub_80A6D00
-sub_80A6D00: @ 80A6D00
- 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 _080A6D16
- ldr r0, _080A6D1C @ =sub_80A6D20
- str r0, [r1, 0x1C]
-_080A6D16:
- pop {r0}
- bx r0
- .align 2, 0
-_080A6D1C: .4byte sub_80A6D20
- thumb_func_end sub_80A6D00
-
- thumb_func_start sub_80A6D20
-sub_80A6D20: @ 80A6D20
- 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 _080A6D52
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080A6D4C
- strh r0, [r2, 0x24]
- ldr r0, _080A6D48 @ =sub_80A6C50
- str r0, [r2, 0x1C]
- b _080A6D88
- .align 2, 0
-_080A6D48: .4byte sub_80A6C50
-_080A6D4C:
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2, 0x30]
-_080A6D52:
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r0, 0x4F
- ble _080A6D62
- ldrh r0, [r2, 0x34]
- adds r1, r2, 0
- adds r1, 0x43
- strb r0, [r1]
-_080A6D62:
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0x9F
- ble _080A6D72
- ldrh r0, [r2, 0x32]
- adds r1, r2, 0
- adds r1, 0x43
- strb r0, [r1]
-_080A6D72:
- ldr r1, _080A6D8C @ =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]
-_080A6D88:
- pop {r0}
- bx r0
- .align 2, 0
-_080A6D8C: .4byte gSineTable
- thumb_func_end sub_80A6D20
-
- thumb_func_start sub_80A6D90
-sub_80A6D90: @ 80A6D90
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080A6DA4 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A6DAC
- ldr r0, _080A6DA8 @ =gBattleAnimAttacker
- b _080A6DAE
- .align 2, 0
-_080A6DA4: .4byte gBattleAnimArgs
-_080A6DA8: .4byte gBattleAnimAttacker
-_080A6DAC:
- ldr r0, _080A6DD0 @ =gBattleAnimTarget
-_080A6DAE:
- ldrb r4, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A6B0C
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A6DD4
- adds r0, r5, 0
- movs r1, 0
- bl StartSpriteAnim
- movs r0, 0x2
- b _080A6DDE
- .align 2, 0
-_080A6DD0: .4byte gBattleAnimTarget
-_080A6DD4:
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0x3
-_080A6DDE:
- strh r0, [r5, 0x2E]
- ldr r0, _080A6DEC @ =sub_80A6DF0
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6DEC: .4byte sub_80A6DF0
- thumb_func_end sub_80A6D90
-
- thumb_func_start sub_80A6DF0
-sub_80A6DF0: @ 80A6DF0
- 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 _080A6E1E
- 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, _080A6E24 @ =sub_80A6E2C
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A6E28 @ =sub_8074F6C
- str r0, [r4, 0x1C]
-_080A6E1E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6E24: .4byte sub_80A6E2C
-_080A6E28: .4byte sub_8074F6C
- thumb_func_end sub_80A6DF0
-
- thumb_func_start sub_80A6E2C
-sub_80A6E2C: @ 80A6E2C
- 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 _080A6E44
- adds r0, r1, 0
- bl DestroyAnimSprite
-_080A6E44:
- pop {r0}
- bx r0
- thumb_func_end sub_80A6E2C
-
- thumb_func_start sub_80A6E48
-sub_80A6E48: @ 80A6E48
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_8074FCC
- ldr r5, _080A6E8C @ =gBattleAnimArgs
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_8074FF8
- 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, _080A6E90 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r1, _080A6E94 @ =sub_8074BE4
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6E8C: .4byte gBattleAnimArgs
-_080A6E90: .4byte move_anim_8074EE0
-_080A6E94: .4byte sub_8074BE4
- thumb_func_end sub_80A6E48
-
- thumb_func_start sub_80A6E98
-sub_80A6E98: @ 80A6E98
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A6EAC @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A6EB4
- ldr r0, _080A6EB0 @ =gBattleAnimAttacker
- b _080A6EB6
- .align 2, 0
-_080A6EAC: .4byte gBattleAnimArgs
-_080A6EB0: .4byte gBattleAnimAttacker
-_080A6EB4:
- ldr r0, _080A6ED0 @ =gBattleAnimTarget
-_080A6EB6:
- ldrb r0, [r0]
- adds r1, r4, 0
- bl sub_80A6B0C
- movs r0, 0
- strh r0, [r4, 0x2E]
- strh r0, [r4, 0x30]
- ldr r0, _080A6ED4 @ =sub_80A6ED8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6ED0: .4byte gBattleAnimTarget
-_080A6ED4: .4byte sub_80A6ED8
- thumb_func_end sub_80A6E98
-
- thumb_func_start sub_80A6ED8
-sub_80A6ED8: @ 80A6ED8
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _080A6F0A
- cmp r0, 0x1
- bgt _080A6EEE
- cmp r0, 0
- beq _080A6EF4
- b _080A6F38
-_080A6EEE:
- cmp r0, 0x2
- beq _080A6F24
- b _080A6F38
-_080A6EF4:
- 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 _080A6F38
- b _080A6F1C
-_080A6F0A:
- 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 _080A6F38
-_080A6F1C:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- b _080A6F38
-_080A6F24:
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- bne _080A6F38
- adds r0, r1, 0
- bl DestroyAnimSprite
-_080A6F38:
- pop {r0}
- bx r0
- thumb_func_end sub_80A6ED8
-
- thumb_func_start sub_80A6F3C
-sub_80A6F3C: @ 80A6F3C
- push {r4,lr}
- adds r4, r0, 0
- ldr r3, _080A6F88 @ =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 _080A6F7A
- 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
-_080A6F7A:
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6F88: .4byte gSprites
- thumb_func_end sub_80A6F3C
-
- thumb_func_start sub_80A6F8C
-sub_80A6F8C: @ 80A6F8C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _080A6FD4 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080A6FD8 @ =gUnknown_2023D44
- ldr r0, _080A6FDC @ =gBattleAnimTarget
- ldrb r0, [r0]
- adds r0, r1
- ldrb r6, [r0]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A6FE4
- ldr r0, _080A6FE0 @ =gBattleAnimArgs
- ldrh r1, [r5, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r5, 0x20]
- adds r1, r0, 0
- b _080A6FEE
- .align 2, 0
-_080A6FD4: .4byte gBattleAnimAttacker
-_080A6FD8: .4byte gUnknown_2023D44
-_080A6FDC: .4byte gBattleAnimTarget
-_080A6FE0: .4byte gBattleAnimArgs
-_080A6FE4:
- ldr r1, _080A7018 @ =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
-_080A6FEE:
- 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, _080A701C @ =sub_80A6F3C
- 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
- .align 2, 0
-_080A7018: .4byte gBattleAnimArgs
-_080A701C: .4byte sub_80A6F3C
- thumb_func_end sub_80A6F8C
-
- thumb_func_start sub_80A7020
-sub_80A7020: @ 80A7020
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r1, _080A704C @ =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, _080A7050 @ =sub_8074C44
- str r0, [r4, 0x1C]
- ldr r1, _080A7054 @ =sub_80A7058
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A704C: .4byte gBattleAnimArgs
-_080A7050: .4byte sub_8074C44
-_080A7054: .4byte sub_80A7058
- thumb_func_end sub_80A7020
-
- thumb_func_start sub_80A7058
-sub_80A7058: @ 80A7058
- 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, _080A7078 @ =sub_8075590
- str r1, [r0, 0x1C]
- ldr r1, _080A707C @ =sub_80A7080
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080A7078: .4byte sub_8075590
-_080A707C: .4byte sub_80A7080
- thumb_func_end sub_80A7058
-
- thumb_func_start sub_80A7080
-sub_80A7080: @ 80A7080
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x38]
- movs r3, 0x38
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080A7096
- adds r0, r1, 0
- bl DestroyAnimSprite
- b _080A709A
-_080A7096:
- subs r0, r2, 0x1
- strh r0, [r1, 0x38]
-_080A709A:
- pop {r0}
- bx r0
- thumb_func_end sub_80A7080
-
- thumb_func_start sub_80A70A0
-sub_80A70A0: @ 80A70A0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080A70CC @ =gUnknown_2023D44
- ldr r0, _080A70D0 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_80758E0
- ldr r1, _080A70D4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A70D8 @ =sub_80A70DC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A70CC: .4byte gUnknown_2023D44
-_080A70D0: .4byte gBattleAnimAttacker
-_080A70D4: .4byte gTasks
-_080A70D8: .4byte sub_80A70DC
- thumb_func_end sub_80A70A0
-
- thumb_func_start sub_80A70DC
-sub_80A70DC: @ 80A70DC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A710C @ =gUnknown_2023D44
- ldr r0, _080A7110 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- adds r1, r0, r1
- ldrb r4, [r1]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A7118
- ldr r1, _080A7114 @ =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 _080A7126
- .align 2, 0
-_080A710C: .4byte gUnknown_2023D44
-_080A7110: .4byte gBattleAnimAttacker
-_080A7114: .4byte gTasks
-_080A7118:
- ldr r2, _080A7158 @ =gTasks
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r0, r2
- ldrh r3, [r0, 0x8]
- adds r6, r1, 0
-_080A7126:
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldr r1, _080A7158 @ =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080A7160
- ldrh r0, [r1, 0x8]
- adds r0, 0xB0
- strh r0, [r1, 0x8]
- ldr r1, _080A715C @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x26]
- adds r1, 0x1
- b _080A718A
- .align 2, 0
-_080A7158: .4byte gTasks
-_080A715C: .4byte gSprites
-_080A7160:
- cmp r0, 0x1
- bne _080A7176
- ldrh r0, [r1, 0xE]
- adds r0, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- bne _080A71D0
- movs r0, 0x2
- b _080A71CE
-_080A7176:
- ldrh r0, [r1, 0x8]
- subs r0, 0xB0
- strh r0, [r1, 0x8]
- ldr r1, _080A71C4 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x26]
- subs r1, 0x1
-_080A718A:
- strh r1, [r0, 0x26]
- adds r0, r4, 0
- bl sub_80759DC
- ldr r0, _080A71C8 @ =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 _080A71AA
- cmp r2, 0
- bne _080A71D0
-_080A71AA:
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x2
- bne _080A71CC
- adds r0, r4, 0
- bl sub_8075980
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- b _080A71D0
- .align 2, 0
-_080A71C4: .4byte gSprites
-_080A71C8: .4byte gTasks
-_080A71CC:
- adds r0, r2, 0x1
-_080A71CE:
- strh r0, [r1, 0xA]
-_080A71D0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A70DC
-
- thumb_func_start sub_80A71D8
-sub_80A71D8: @ 80A71D8
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_8074FCC
- ldr r0, _080A71FC @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A7204
- ldr r0, _080A7200 @ =gBattleAnimArgs
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- adds r5, r0, 0
- b _080A7210
- .align 2, 0
-_080A71FC: .4byte gBattleAnimAttacker
-_080A7200: .4byte gBattleAnimArgs
-_080A7204:
- ldr r1, _080A7244 @ =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- adds r5, r1, 0
-_080A7210:
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _080A7248 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A724C
- 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 _080A7260
- movs r0, 0x2
- orrs r2, r0
- strb r2, [r3]
- b _080A7260
- .align 2, 0
-_080A7244: .4byte gBattleAnimArgs
-_080A7248: .4byte gBattleAnimAttacker
-_080A724C:
- movs r2, 0x4
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080A7260
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
-_080A7260:
- ldr r0, _080A7274 @ =sub_8074F6C
- str r0, [r4, 0x1C]
- ldr r1, _080A7278 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7274: .4byte sub_8074F6C
-_080A7278: .4byte DestroyAnimSprite
- thumb_func_end sub_80A71D8
-
- thumb_func_start sub_80A727C
-sub_80A727C: @ 80A727C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8075160
- ldr r0, _080A7298 @ =sub_8074F50
- str r0, [r4, 0x1C]
- ldr r1, _080A729C @ =sub_80A72A0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7298: .4byte sub_8074F50
-_080A729C: .4byte sub_80A72A0
- thumb_func_end sub_80A727C
-
- thumb_func_start sub_80A72A0
-sub_80A72A0: @ 80A72A0
- 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, _080A72C0 @ =sub_8075590
- str r1, [r0, 0x1C]
- ldr r1, _080A72C4 @ =DestroyAnimSprite
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080A72C0: .4byte sub_8075590
-_080A72C4: .4byte DestroyAnimSprite
- thumb_func_end sub_80A72A0
-
- thumb_func_start sub_80A72C8
-sub_80A72C8: @ 80A72C8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A72EC
- ldr r1, _080A72E8 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- b _080A730E
- .align 2, 0
-_080A72E8: .4byte gBattleAnimArgs
-_080A72EC:
- ldr r0, _080A73B4 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A730E
- ldr r1, _080A73B8 @ =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]
-_080A730E:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r4, _080A73BC @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- ldr r6, _080A73B8 @ =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 sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r6, 0x6]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- adds r7, r0, 0
- ldrh r1, [r5, 0x20]
- mov r2, r8
- lsls r0, r2, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r5, 0x22]
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl sub_8075B30
- lsls r0, 16
- movs r1, 0xF0
- lsls r1, 24
- adds r0, r1
- lsrs r4, r0, 16
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A7380
- ldr r2, _080A73C0 @ =0xffffa000
- adds r0, r4, r2
- lsls r0, 16
- lsrs r4, r0, 16
-_080A7380:
- movs r3, 0x80
- lsls r3, 1
- str r4, [sp]
- adds r0, r5, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8075A1C
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- mov r0, r8
- strh r0, [r5, 0x32]
- strh r7, [r5, 0x36]
- ldr r0, _080A73C4 @ =sub_8075590
- str r0, [r5, 0x1C]
- ldr r1, _080A73C8 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A73B4: .4byte gBattleAnimAttacker
-_080A73B8: .4byte gBattleAnimArgs
-_080A73BC: .4byte gBattleAnimTarget
-_080A73C0: .4byte 0xffffa000
-_080A73C4: .4byte sub_8075590
-_080A73C8: .4byte DestroyAnimSprite
- thumb_func_end sub_80A72C8
-
- thumb_func_start sub_80A73CC
-sub_80A73CC: @ 80A73CC
- 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 _080A73F6
- ldr r2, _080A73FC @ =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
-_080A73F6:
- pop {r0}
- bx r0
- .align 2, 0
-_080A73FC: .4byte gTasks
- thumb_func_end sub_80A73CC
-
- thumb_func_start sub_80A7400
-sub_80A7400: @ 80A7400
- 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, _080A7430 @ =gTasks
- adds r4, r0, r1
- movs r3, 0x2E
- ldrsh r1, [r2, r3]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- ble _080A7434
- 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 _080A7442
- .align 2, 0
-_080A7430: .4byte gTasks
-_080A7434:
- 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
-_080A7442:
- 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 _080A7466
- lsls r0, r3, 16
- lsrs r0, 24
- negs r0, r0
- b _080A746A
-_080A7466:
- lsls r0, r3, 16
- lsrs r0, 24
-_080A746A:
- strh r0, [r2, 0x24]
- ldrh r1, [r4, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A747E
- ldrh r0, [r2, 0x32]
- lsrs r0, 8
- negs r0, r0
- b _080A7482
-_080A747E:
- ldrh r0, [r2, 0x32]
- lsrs r0, 8
-_080A7482:
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r2, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080A7498
- movs r0, 0x1E
- strh r0, [r2, 0x2E]
- ldr r0, _080A74A0 @ =sub_80A73CC
- str r0, [r2, 0x1C]
-_080A7498:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A74A0: .4byte sub_80A73CC
- thumb_func_end sub_80A7400
-
- thumb_func_start sub_80A74A4
-sub_80A74A4: @ 80A74A4
- 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, _080A74E8 @ =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 _080A74EC
- lsls r0, r2, 16
- lsrs r0, 24
- negs r0, r0
- b _080A74F0
- .align 2, 0
-_080A74E8: .4byte gTasks
-_080A74EC:
- lsls r0, r2, 16
- lsrs r0, 24
-_080A74F0:
- strh r0, [r7, 0x24]
- ldrh r1, [r6, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A7504
- ldrh r0, [r7, 0x32]
- lsrs r0, 8
- negs r0, r0
- b _080A7508
-_080A7504:
- ldrh r0, [r7, 0x32]
- lsrs r0, 8
-_080A7508:
- strh r0, [r7, 0x26]
- ldrh r0, [r7, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r7, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080A75D4
- 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_80D8B90
- 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 _080A7552
- subs r0, r3, r2
- b _080A7554
-_080A7552:
- subs r0, r2, r3
-_080A7554:
- 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 _080A756C
- subs r0, r3, r2
- b _080A756E
-_080A756C:
- subs r0, r2, r3
-_080A756E:
- 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_80D8AA0
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- movs r6, 0xE0
- lsls r6, 1
- adds r0, r6, 0
- bl sub_80D8B90
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_80D8AA0
- strh r0, [r7, 0x34]
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- adds r1, r5, 0
- bl sub_80D8AA0
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- adds r0, r6, 0
- bl sub_80D8B90
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_80D8AA0
- strh r0, [r7, 0x36]
- ldr r0, _080A75E0 @ =sub_80A7400
- str r0, [r7, 0x1C]
-_080A75D4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A75E0: .4byte sub_80A7400
- thumb_func_end sub_80A74A4
-
- thumb_func_start sub_80A75E4
-sub_80A75E4: @ 80A75E4
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080A7608 @ =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 _080A7602
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080A7602:
- pop {r0}
- bx r0
- .align 2, 0
-_080A7608: .4byte gTasks
- thumb_func_end sub_80A75E4
-
- thumb_func_start sub_80A760C
-sub_80A760C: @ 80A760C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080A7660 @ =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 _080A76E0
- ldr r0, _080A7664 @ =gUnknown_83E3C28
- 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, _080A7668 @ =gSprites
- adds r6, r0, r1
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080A766C
- cmp r0, 0x2
- beq _080A7682
- b _080A7690
- .align 2, 0
-_080A7660: .4byte gTasks
-_080A7664: .4byte gUnknown_83E3C28
-_080A7668: .4byte gSprites
-_080A766C:
- 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 _080A7690
-_080A7682:
- ldrb r0, [r6, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r6, 0x3]
-_080A7690:
- ldr r3, _080A76E8 @ =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 sub_8073A44
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x93
- bl PlaySE12WithPanning
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- cmp r0, 0x2
- ble _080A76E0
- ldr r0, _080A76EC @ =sub_80A75E4
- str r0, [r4]
-_080A76E0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A76E8: .4byte gTasks
-_080A76EC: .4byte sub_80A75E4
- thumb_func_end sub_80A760C
-
- thumb_func_start sub_80A76F0
-sub_80A76F0: @ 80A76F0
- 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 sub_8073788
- lsls r0, 24
- mov r10, r4
- cmp r0, 0
- beq _080A775C
- ldr r1, _080A774C @ =gTasks
- lsls r2, r7, 2
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x10]
- ldr r3, _080A7750 @ =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 _080A7754
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strh r0, [r3, 0x4]
- b _080A77B6
- .align 2, 0
-_080A774C: .4byte gTasks
-_080A7750: .4byte gBattleAnimArgs
-_080A7754:
- movs r0, 0x1
- orrs r0, r1
- strh r0, [r3, 0x4]
- b _080A77B6
-_080A775C:
- ldr r1, _080A77A0 @ =gUnknown_2023BD6
- ldr r0, _080A77A4 @ =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 _080A77B6
- ldr r1, _080A77A8 @ =gTasks
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0x10]
- ldr r2, _080A77AC @ =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 _080A77B0
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- b _080A77B4
- .align 2, 0
-_080A77A0: .4byte gUnknown_2023BD6
-_080A77A4: .4byte gBattleAnimTarget
-_080A77A8: .4byte gTasks
-_080A77AC: .4byte gBattleAnimArgs
-_080A77B0:
- movs r0, 0x1
- orrs r0, r1
-_080A77B4:
- strh r0, [r2, 0x4]
-_080A77B6:
- ldr r5, _080A7810 @ =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8074480
- ldr r1, _080A7814 @ =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 sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- mov r9, r0
- ldr r0, _080A7818 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A7820
- ldr r4, _080A781C @ =gBattleAnimTarget
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080A7820
- ldrb r0, [r4]
- movs r1, 0
- mov r2, sp
- mov r3, r10
- bl sub_8076D9C
- b _080A7842
- .align 2, 0
-_080A7810: .4byte gBattleAnimAttacker
-_080A7814: .4byte gTasks
-_080A7818: .4byte gBattleTypeFlags
-_080A781C: .4byte gBattleAnimTarget
-_080A7820:
- mov r5, sp
- ldr r4, _080A787C @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- mov r1, r10
- strh r0, [r1]
-_080A7842:
- mov r4, sp
- ldr r0, _080A7880 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- mov r2, sp
- ldr r3, _080A7884 @ =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 _080A7888
- subs r0, r2, r1
- b _080A788A
- .align 2, 0
-_080A787C: .4byte gBattleAnimTarget
-_080A7880: .4byte gTasks
-_080A7884: .4byte gBattleAnimArgs
-_080A7888:
- subs r0, r1, r2
-_080A788A:
- lsls r0, 16
- lsrs r0, 16
- lsls r4, r0, 16
- asrs r4, 16
- ldr r5, _080A7900 @ =gBattleAnimArgs
- ldrh r1, [r5, 0x4]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- lsls r0, 16
- asrs r0, 16
- bl sub_80D8B90
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_80D8AA0
- ldr r2, _080A7904 @ =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_80D8AA0
- 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 _080A7908
- subs r4, r1, r4
- lsls r4, 16
- asrs r4, 16
- movs r1, 0x12
- ldrsh r0, [r6, r1]
- bl sub_80D8B90
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_80D8AA0
- movs r1, 0x2
- negs r1, r1
- ands r1, r0
- strh r1, [r6, 0x18]
- b _080A7928
- .align 2, 0
-_080A7900: .4byte gBattleAnimArgs
-_080A7904: .4byte gTasks
-_080A7908:
- subs r4, r1
- lsls r4, 16
- asrs r4, 16
- movs r2, 0x12
- ldrsh r0, [r6, r2]
- bl sub_80D8B90
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_80D8AA0
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r6, 0x18]
-_080A7928:
- ldr r1, _080A7968 @ =gTasks
- mov r3, r8
- adds r0, r3, r7
- lsls r0, 3
- adds r5, r0, r1
- ldr r4, _080A796C @ =gBattleAnimArgs
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0xE]
- ldrh r1, [r4, 0x8]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080A7978
- movs r0, 0x80
- eors r0, r1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _080A79A0
- ldr r0, _080A7970 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_807685C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A7974 @ =0x0000ffc0
- adds r1, r2, 0
- ldrh r4, [r4, 0x8]
- adds r1, r4
- adds r0, r1
- b _080A79B0
- .align 2, 0
-_080A7968: .4byte gTasks
-_080A796C: .4byte gBattleAnimArgs
-_080A7970: .4byte gBattleAnimTarget
-_080A7974: .4byte 0x0000ffc0
-_080A7978:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _080A79A0
- ldr r0, _080A7998 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_807685C
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080A799C @ =0x0000ffc0
- adds r1, r3, 0
- ldrh r4, [r4, 0x8]
- adds r1, r4
- adds r0, r1
- b _080A79B0
- .align 2, 0
-_080A7998: .4byte gBattleAnimTarget
-_080A799C: .4byte 0x0000ffc0
-_080A79A0:
- ldr r0, _080A79DC @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_807685C
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x8]
- subs r0, r1
-_080A79B0:
- strh r0, [r5, 0xC]
- ldr r0, _080A79E0 @ =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 _080A79C8
- movs r0, 0x3
- strh r0, [r1, 0xC]
-_080A79C8:
- ldr r0, _080A79E4 @ =sub_80A760C
- 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
- .align 2, 0
-_080A79DC: .4byte gBattleAnimTarget
-_080A79E0: .4byte gTasks
-_080A79E4: .4byte sub_80A760C
- thumb_func_end sub_80A76F0
-
- thumb_func_start sub_80A79E8
-sub_80A79E8: @ 80A79E8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8075160
- ldr r0, _080A7A10 @ =gUnknown_83E3D18
- 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, _080A7A14 @ =sub_80A7A18
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7A10: .4byte gUnknown_83E3D18
-_080A7A14: .4byte sub_80A7A18
- thumb_func_end sub_80A79E8
-
- thumb_func_start sub_80A7A18
-sub_80A7A18: @ 80A7A18
- 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 _080A7A7C
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r5, [r4, 0x2E]
- ldr r1, _080A7A84 @ =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
-_080A7A50:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080A7A50
- 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 _080A7A7C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A7A7C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7A84: .4byte gPlttBufferFaded
- thumb_func_end sub_80A7A18
-
- thumb_func_start sub_80A7A88
-sub_80A7A88: @ 80A7A88
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r4, _080A7B28 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- ldr r4, _080A7B2C @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, _080A7B30 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A7ACC
- ldrh r0, [r4, 0x4]
- negs r0, r0
- strh r0, [r4, 0x4]
-_080A7ACC:
- lsls r0, r6, 16
- asrs r0, 16
- ldrh r1, [r4, 0x4]
- adds r0, r1
- lsls r0, 16
- ldrh r1, [r5, 0x20]
- lsrs r6, r0, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r5, 0x22]
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl sub_8075B30
- 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_8075A1C
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x2E]
- strh r6, [r5, 0x32]
- strh r7, [r5, 0x36]
- ldr r0, _080A7B34 @ =sub_80756A4
- str r0, [r5, 0x1C]
- ldr r1, _080A7B38 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7B28: .4byte gBattleAnimTarget
-_080A7B2C: .4byte gBattleAnimArgs
-_080A7B30: .4byte gBattleAnimAttacker
-_080A7B34: .4byte sub_80756A4
-_080A7B38: .4byte DestroyAnimSprite
- thumb_func_end sub_80A7A88
-
- thumb_func_start sub_80A7B3C
-sub_80A7B3C: @ 80A7B3C
- ldr r1, _080A7B4C @ =0x0000fff0
- strh r1, [r0, 0x32]
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- ldr r1, _080A7B50 @ =sub_80A7B54
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080A7B4C: .4byte 0x0000fff0
-_080A7B50: .4byte sub_80A7B54
- thumb_func_end sub_80A7B3C
-
- thumb_func_start sub_80A7B54
-sub_80A7B54: @ 80A7B54
- 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, _080A7BC0 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A7B78
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
-_080A7B78:
- 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 _080A7BB8
- 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 _080A7BB8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A7BB8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7BC0: .4byte gBattleAnimAttacker
- thumb_func_end sub_80A7B54
-
- thumb_func_start sub_80A7BC4
-sub_80A7BC4: @ 80A7BC4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- ldr r5, _080A7C10 @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080A7C14 @ =sub_8075590
- 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, _080A7C18 @ =sub_80A7C1C
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7C10: .4byte gBattleAnimTarget
-_080A7C14: .4byte sub_8075590
-_080A7C18: .4byte sub_80A7C1C
- thumb_func_end sub_80A7BC4
-
- thumb_func_start sub_80A7C1C
-sub_80A7C1C: @ 80A7C1C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3F
- bl sub_8073A44
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x9F
- 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
-_080A7C50:
- strh r2, [r0]
- subs r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080A7C50
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- ands r0, r1
- ldr r2, _080A7C98 @ =0x0000fff4
- adds r1, r2, 0
- subs r1, r0
- strh r1, [r4, 0x3A]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA0
- bl __umodsi3
- adds r0, 0xA0
- strh r0, [r4, 0x3C]
- ldr r0, _080A7C9C @ =sub_80A7CA0
- 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
- .align 2, 0
-_080A7C98: .4byte 0x0000fff4
-_080A7C9C: .4byte sub_80A7CA0
- thumb_func_end sub_80A7C1C
-
- thumb_func_start sub_80A7CA0
-sub_80A7CA0: @ 80A7CA0
- 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 _080A7CBE
- negs r0, r2
- strh r0, [r4, 0x24]
-_080A7CBE:
- 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 _080A7CFE
- 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 _080A7CFE
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A7CFE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7CA0
-
- thumb_func_start sub_80A7D04
-sub_80A7D04: @ 80A7D04
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8075160
- ldr r0, _080A7D54 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A7D22
- ldrh r0, [r4, 0x22]
- adds r0, 0x10
- strh r0, [r4, 0x22]
-_080A7D22:
- ldr r1, _080A7D58 @ =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, _080A7D5C @ =sub_8074A80
- str r0, [r4, 0x1C]
- ldr r1, _080A7D60 @ =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
- .align 2, 0
-_080A7D54: .4byte gBattleAnimAttacker
-_080A7D58: .4byte gBattleAnimArgs
-_080A7D5C: .4byte sub_8074A80
-_080A7D60: .4byte DestroyAnimSprite
- thumb_func_end sub_80A7D04
-
- thumb_func_start sub_80A7D64
-sub_80A7D64: @ 80A7D64
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- movs r7, 0x20
- ldr r4, _080A7DE0 @ =0x0000ffe0
- movs r0, 0x10
- mov r8, r0
- ldr r6, _080A7DE4 @ =0x0000fff0
- ldr r0, _080A7DE8 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080A7D90
- adds r7, r4, 0
- movs r4, 0x20
- mov r8, r6
- movs r6, 0x10
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080A7D90:
- 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, _080A7DEC @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- add r0, r8
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x36]
- ldr r0, _080A7DF0 @ =sub_8075590
- str r0, [r5, 0x1C]
- ldr r1, _080A7DF4 @ =sub_80A7DF8
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7DE0: .4byte 0x0000ffe0
-_080A7DE4: .4byte 0x0000fff0
-_080A7DE8: .4byte gBattleAnimArgs
-_080A7DEC: .4byte gBattleAnimTarget
-_080A7DF0: .4byte sub_8075590
-_080A7DF4: .4byte sub_80A7DF8
- thumb_func_end sub_80A7D64
-
- thumb_func_start sub_80A7DF8
-sub_80A7DF8: @ 80A7DF8
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A7E0E
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080A7E0E:
- pop {r0}
- bx r0
- thumb_func_end sub_80A7DF8
-
- thumb_func_start sub_80A7E14
-sub_80A7E14: @ 80A7E14
- 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, _080A7EA8 @ =0x0000ffe0
- movs r2, 0x10
- mov r9, r2
- ldr r6, _080A7EAC @ =0x0000fff0
- ldr r7, _080A7EB0 @ =gBattleAnimArgs
- ldrh r1, [r7]
- movs r2, 0
- ldrsh r0, [r7, r2]
- cmp r0, 0
- beq _080A7E48
- mov r8, r4
- movs r4, 0x20
- mov r9, r6
- movs r6, 0x10
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
-_080A7E48:
- 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, _080A7EB4 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- 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 sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r7]
- strh r0, [r5, 0x38]
- ldrh r0, [r5, 0x2E]
- strh r0, [r5, 0x3A]
- ldr r0, _080A7EB8 @ =sub_80A7EBC
- str r0, [r5, 0x1C]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7EA8: .4byte 0x0000ffe0
-_080A7EAC: .4byte 0x0000fff0
-_080A7EB0: .4byte gBattleAnimArgs
-_080A7EB4: .4byte gBattleAnimTarget
-_080A7EB8: .4byte sub_80A7EBC
- thumb_func_end sub_80A7E14
-
- thumb_func_start sub_80A7EBC
-sub_80A7EBC: @ 80A7EBC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _080A7F20
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A7F20
- 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, _080A7F28 @ =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, _080A7F2C @ =sub_80A7F30
- str r0, [r4, 0x1C]
-_080A7F20:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7F28: .4byte 0x0000fffe
-_080A7F2C: .4byte sub_80A7F30
- thumb_func_end sub_80A7EBC
-
- thumb_func_start sub_80A7F30
-sub_80A7F30: @ 80A7F30
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A7F48
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- negs r0, r0
- strh r0, [r4, 0x26]
-_080A7F48:
- 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 _080A7F8A
- 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, _080A7F90 @ =sub_80A7F94
- str r0, [r4, 0x1C]
-_080A7F8A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7F90: .4byte sub_80A7F94
- thumb_func_end sub_80A7F30
-
- thumb_func_start sub_80A7F94
-sub_80A7F94: @ 80A7F94
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _080A7FA8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A7FA8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7F94
-
- thumb_func_start sub_80A7FB0
-sub_80A7FB0: @ 80A7FB0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x1
- bl GetAnimBankSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80758E0
- adds r0, r4, 0
- movs r1, 0xD0
- movs r2, 0xD0
- movs r3, 0
- bl obj_id_set_rotscale
- ldr r1, _080A8008 @ =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_8075B48
- ldr r1, _080A800C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x50
- strh r1, [r0, 0x8]
- ldr r1, _080A8010 @ =sub_80A8014
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8008: .4byte gSprites
-_080A800C: .4byte gTasks
-_080A8010: .4byte sub_80A8014
- thumb_func_end sub_80A7FB0
-
- thumb_func_start sub_80A8014
-sub_80A8014: @ 80A8014
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A806C @ =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 _080A8064
- movs r0, 0x1
- bl GetAnimBankSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_8075980
- ldr r1, _080A8070 @ =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_8075B48
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080A8064:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A806C: .4byte gTasks
-_080A8070: .4byte gSprites
- thumb_func_end sub_80A8014
-
- thumb_func_start sub_80A8074
-sub_80A8074: @ 80A8074
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080A80C0 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x8]
- movs r1, 0
- bl sub_80758E0
- 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, _080A80C4 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_807685C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x16]
- ldr r0, _080A80C8 @ =sub_80A80CC
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A80C0: .4byte gTasks
-_080A80C4: .4byte gBattleAnimAttacker
-_080A80C8: .4byte sub_80A80CC
- thumb_func_end sub_80A8074
-
- thumb_func_start sub_80A80CC
-sub_80A80CC: @ 80A80CC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080A80F0 @ =gTasks
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bls _080A80E6
- b _080A81F6
-_080A80E6:
- lsls r0, 2
- ldr r1, _080A80F4 @ =_080A80F8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A80F0: .4byte gTasks
-_080A80F4: .4byte _080A80F8
- .align 2, 0
-_080A80F8:
- .4byte _080A8110
- .4byte _080A8158
- .4byte _080A818E
- .4byte _080A8194
- .4byte _080A81A4
- .4byte _080A81D8
-_080A8110:
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080A8120
- cmp r0, 0x3
- beq _080A8120
- cmp r0, 0x6
- bne _080A8128
-_080A8120:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A8200
-_080A8128:
- 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_8076440
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x20
- bne _080A81F6
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- b _080A81D0
-_080A8158:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A81F6
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- cmp r1, 0x3
- bne _080A816E
- strh r0, [r4, 0xC]
- strh r1, [r4, 0xA]
- b _080A81F6
-_080A816E:
- 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_8076440
- movs r0, 0x2
- strh r0, [r4, 0xA]
- b _080A81F6
-_080A818E:
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080A81F6
-_080A8194:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- ble _080A81F6
- b _080A81CC
-_080A81A4:
- 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_8076440
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x20
- bne _080A81F6
-_080A81CC:
- movs r0, 0
- strh r0, [r4, 0xC]
-_080A81D0:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _080A81F6
-_080A81D8:
- ldrb r0, [r4, 0x8]
- bl sub_8075980
- ldr r2, _080A81FC @ =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
-_080A81F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A81FC: .4byte gSprites
- thumb_func_end sub_80A80CC
-
- thumb_func_start sub_80A8200
-sub_80A8200: @ 80A8200
- 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 _080A82DA
- bl AllocOamMatrix
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xFF
- bne _080A8244
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _080A8240 @ =gSprites
- adds r0, r1
- bl obj_delete_but_dont_free_vram
- b _080A82DA
- .align 2, 0
-_080A8240: .4byte gSprites
-_080A8244:
- ldr r5, _080A82E8 @ =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, _080A82EC @ =sub_80A82F0
- 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
-_080A82DA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A82E8: .4byte gSprites
-_080A82EC: .4byte sub_80A82F0
- thumb_func_end sub_80A8200
-
- thumb_func_start sub_80A82F0
-sub_80A82F0: @ 80A82F0
- 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 _080A832E
- ldr r3, _080A8334 @ =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
-_080A832E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8334: .4byte gTasks
- thumb_func_end sub_80A82F0
-
- thumb_func_start sub_80A8338
-sub_80A8338: @ 80A8338
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080A835C @ =gTasks
- adds r4, r0, r1
- ldr r5, _080A8360 @ =gBattleAnimArgs
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A8364
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- b _080A838A
- .align 2, 0
-_080A835C: .4byte gTasks
-_080A8360: .4byte gBattleAnimArgs
-_080A8364:
- ldrb r0, [r5]
- bl GetAnimBankSpriteId
- 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, _080A8390 @ =gUnknown_83E3E60
- adds r0, r4, 0
- bl sub_80762D0
- ldr r0, _080A8394 @ =sub_80A8398
- str r0, [r4]
-_080A838A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8390: .4byte gUnknown_83E3E60
-_080A8394: .4byte sub_80A8398
- thumb_func_end sub_80A8338
-
- thumb_func_start sub_80A8398
-sub_80A8398: @ 80A8398
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080A83BC @ =gTasks
- adds r4, r0, r1
- movs r0, 0xA
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080A8400
- cmp r5, 0x1
- bgt _080A83C0
- cmp r5, 0
- beq _080A83CA
- b _080A84A8
- .align 2, 0
-_080A83BC: .4byte gTasks
-_080A83C0:
- cmp r5, 0x2
- beq _080A8434
- cmp r5, 0x3
- beq _080A8464
- b _080A84A8
-_080A83CA:
- adds r0, r4, 0
- bl sub_8076308
- ldrh r2, [r4, 0x10]
- adds r2, 0x3
- strh r2, [r4, 0x10]
- ldr r3, _080A83FC @ =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 _080A84A8
- strh r5, [r4, 0xE]
- b _080A845C
- .align 2, 0
-_080A83FC: .4byte gSprites
-_080A8400:
- adds r0, r4, 0
- bl sub_8076308
- ldr r2, _080A8430 @ =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 _080A84A8
- movs r0, 0
- strh r0, [r4, 0xE]
- b _080A845C
- .align 2, 0
-_080A8430: .4byte gSprites
-_080A8434:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A845C
- ldr r2, _080A8458 @ =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 _080A84A8
- .align 2, 0
-_080A8458: .4byte gSprites
-_080A845C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _080A84A8
-_080A8464:
- adds r0, r4, 0
- bl sub_8076308
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080A84A8
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _080A849C
- ldr r2, _080A8498 @ =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 _080A84A8
- .align 2, 0
-_080A8498: .4byte gSprites
-_080A849C:
- ldrb r1, [r4, 0x8]
- ldr r2, _080A84B0 @ =gUnknown_83E3E60
- adds r0, r4, 0
- bl sub_80762D0
- strh r5, [r4, 0xA]
-_080A84A8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A84B0: .4byte gUnknown_83E3E60
- thumb_func_end sub_80A8398
-
- thumb_func_start sub_80A84B4
-sub_80A84B4: @ 80A84B4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080A84E4 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080A84E8 @ =gUnknown_83E3E80
- adds r0, r4, 0
- bl sub_80762D0
- ldr r0, _080A84EC @ =sub_80A84F0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A84E4: .4byte gTasks
-_080A84E8: .4byte gUnknown_83E3E80
-_080A84EC: .4byte sub_80A84F0
- thumb_func_end sub_80A84B4
-
- thumb_func_start sub_80A84F0
-sub_80A84F0: @ 80A84F0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A8518 @ =gTasks
- adds r0, r1
- bl sub_8076308
- lsls r0, 24
- cmp r0, 0
- bne _080A8510
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080A8510:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8518: .4byte gTasks
- thumb_func_end sub_80A84F0
-
- thumb_func_start sub_80A851C
-sub_80A851C: @ 80A851C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080A854C @ =gBattleAnimAttacker
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A8550
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r4, 0x20]
- movs r0, 0x40
- b _080A856A
- .align 2, 0
-_080A854C: .4byte gBattleAnimAttacker
-_080A8550:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x20
- strh r0, [r4, 0x20]
- ldr r0, _080A859C @ =0x0000ffc0
-_080A856A:
- strh r0, [r4, 0x30]
- ldr r0, _080A85A0 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8074480
- 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, _080A85A4 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A85A8 @ =sub_8074D00
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A859C: .4byte 0x0000ffc0
-_080A85A0: .4byte gBattleAnimAttacker
-_080A85A4: .4byte DestroyAnimSprite
-_080A85A8: .4byte sub_8074D00
- thumb_func_end sub_80A851C
-
- thumb_func_start sub_80A85AC
-sub_80A85AC: @ 80A85AC
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _080A85C0 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A85C8
- ldr r0, _080A85C4 @ =gBattleAnimAttacker
- b _080A85CA
- .align 2, 0
-_080A85C0: .4byte gBattleAnimArgs
-_080A85C4: .4byte gBattleAnimAttacker
-_080A85C8:
- ldr r0, _080A8628 @ =gBattleAnimTarget
-_080A85CA:
- ldrb r5, [r0]
- adds r0, r5, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A85E4
- ldr r1, _080A862C @ =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080A85E4:
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- ldr r4, _080A862C @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x20]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8074480
- 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 _080A8616
- movs r0, 0x8
- strh r0, [r6, 0x22]
-_080A8616:
- ldr r1, _080A8630 @ =move_anim_8074EE0
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A8634 @ =sub_8074F50
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8628: .4byte gBattleAnimTarget
-_080A862C: .4byte gBattleAnimArgs
-_080A8630: .4byte move_anim_8074EE0
-_080A8634: .4byte sub_8074F50
- thumb_func_end sub_80A85AC
-
- thumb_func_start sub_80A8638
-sub_80A8638: @ 80A8638
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080A866C @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- strh r1, [r4, 0x8]
- strh r0, [r4, 0xA]
- ldr r2, _080A8670 @ =gUnknown_83E3F1C
- adds r0, r4, 0
- bl sub_80762D0
- ldr r0, _080A8674 @ =sub_80A8678
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A866C: .4byte gTasks
-_080A8670: .4byte gUnknown_83E3F1C
-_080A8674: .4byte sub_80A8678
- thumb_func_end sub_80A8638
-
- thumb_func_start sub_80A8678
-sub_80A8678: @ 80A8678
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A86A0 @ =gTasks
- adds r0, r1
- bl sub_8076308
- lsls r0, 24
- cmp r0, 0
- bne _080A8698
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080A8698:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A86A0: .4byte gTasks
- thumb_func_end sub_80A8678
-
- thumb_func_start sub_80A86A4
-sub_80A86A4: @ 80A86A4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080A8718 @ =gTasks
- adds r4, r1, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- 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, _080A871C @ =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, _080A8720 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A870E
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0xC]
-_080A870E:
- ldr r0, _080A8724 @ =sub_80A8728
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8718: .4byte gTasks
-_080A871C: .4byte gSprites
-_080A8720: .4byte gBattleAnimAttacker
-_080A8724: .4byte sub_80A8728
- thumb_func_end sub_80A86A4
-
- thumb_func_start sub_80A8728
-sub_80A8728: @ 80A8728
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A8770 @ =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 _080A878E
- 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 _080A8778
- ldr r2, _080A8774 @ =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 _080A878C
- .align 2, 0
-_080A8770: .4byte gTasks
-_080A8774: .4byte gSprites
-_080A8778:
- ldr r2, _080A87A0 @ =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
-_080A878C:
- strh r1, [r0, 0x22]
-_080A878E:
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- beq _080A87DC
- cmp r0, 0x1
- bgt _080A87A4
- cmp r0, 0
- beq _080A87AA
- b _080A886C
- .align 2, 0
-_080A87A0: .4byte gSprites
-_080A87A4:
- cmp r0, 0x2
- beq _080A880C
- b _080A886C
-_080A87AA:
- ldr r2, _080A87D8 @ =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 _080A886C
- movs r0, 0xE
- strh r0, [r3, 0xE]
- movs r0, 0x1
- strh r0, [r3, 0xA]
- b _080A886C
- .align 2, 0
-_080A87D8: .4byte gSprites
-_080A87DC:
- ldr r2, _080A8808 @ =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 _080A886C
- movs r0, 0x7
- strh r0, [r3, 0xE]
- movs r0, 0x2
- strh r0, [r3, 0xA]
- b _080A886C
- .align 2, 0
-_080A8808: .4byte gSprites
-_080A880C:
- ldr r2, _080A8844 @ =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 _080A886C
- ldrh r0, [r3, 0x10]
- subs r0, 0x1
- strh r0, [r3, 0x10]
- lsls r0, 16
- cmp r0, 0
- beq _080A8848
- movs r0, 0x7
- strh r0, [r3, 0xE]
- strh r1, [r3, 0xA]
- b _080A886C
- .align 2, 0
-_080A8844: .4byte gSprites
-_080A8848:
- ldrh r1, [r3, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A8866
- 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]
-_080A8866:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080A886C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A8728
-
- thumb_func_start sub_80A8874
-sub_80A8874: @ 80A8874
- 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, _080A88C4 @ =gTasks
- adds r5, r1, r0
- ldr r4, _080A88C8 @ =gBattleAnimTarget
- ldrb r0, [r4]
- bl sub_807492C
- 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_8076B2C
- strh r0, [r5, 0x26]
- ldrb r0, [r4]
- bl sub_80768B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A88D4
- ldr r0, _080A88CC @ =gBattle_BG1_X
- ldrh r0, [r0]
- strh r0, [r5, 0x14]
- ldr r0, _080A88D0 @ =0x04000014
- b _080A88DC
- .align 2, 0
-_080A88C4: .4byte gTasks
-_080A88C8: .4byte gBattleAnimTarget
-_080A88CC: .4byte gBattle_BG1_X
-_080A88D0: .4byte 0x04000014
-_080A88D4:
- ldr r0, _080A8940 @ =gBattle_BG2_X
- ldrh r0, [r0]
- strh r0, [r5, 0x14]
- ldr r0, _080A8944 @ =0x04000018
-_080A88DC:
- 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 _080A891A
- ldr r4, _080A8948 @ =gScanlineEffectRegBuffers
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r4, r0
-_080A88F4:
- asrs r3, r2, 16
- cmp r3, 0
- blt _080A890C
- 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]
-_080A890C:
- adds r0, r3, 0x1
- lsls r2, r0, 16
- asrs r1, r2, 16
- movs r3, 0x8
- ldrsh r0, [r5, r3]
- cmp r1, r0
- ble _080A88F4
-_080A891A:
- ldr r0, _080A894C @ =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, _080A8950 @ =sub_80A8954
- str r0, [r5]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8940: .4byte gBattle_BG2_X
-_080A8944: .4byte 0x04000018
-_080A8948: .4byte gScanlineEffectRegBuffers
-_080A894C: .4byte 0xa2600001
-_080A8950: .4byte sub_80A8954
- thumb_func_end sub_80A8874
-
- thumb_func_start sub_80A8954
-sub_80A8954: @ 80A8954
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A8974 @ =gTasks
- adds r3, r0, r1
- movs r1, 0x10
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _080A8978
- cmp r0, 0x1
- beq _080A898E
- b _080A8A0E
- .align 2, 0
-_080A8974: .4byte gTasks
-_080A8978:
- ldrh r0, [r3, 0x12]
- adds r0, 0x1
- strh r0, [r3, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080A8A0E
- ldrh r0, [r3, 0x10]
- adds r0, 0x1
- strh r0, [r3, 0x10]
- b _080A8A0E
-_080A898E:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080A8A0E
- 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 _080A89C4
- cmp r1, 0x1
- ble _080A89CC
- cmp r1, 0x2
- beq _080A89C8
- cmp r1, 0x3
- beq _080A89C8
- b _080A89CC
-_080A89C4:
- subs r0, 0x2
- b _080A89CA
-_080A89C8:
- adds r0, 0x1
-_080A89CA:
- strh r0, [r3, 0x12]
-_080A89CC:
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- cmp r0, 0
- blt _080A89F0
- ldr r2, _080A8A14 @ =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]
-_080A89F0:
- 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 _080A8A0E
- ldr r1, _080A8A18 @ =gScanlineEffect
- movs r0, 0x3
- strb r0, [r1, 0x15]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080A8A0E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8A14: .4byte gScanlineEffectRegBuffers
-_080A8A18: .4byte gScanlineEffect
- thumb_func_end sub_80A8954
-
- thumb_func_start sub_80A8A1C
-sub_80A8A1C: @ 80A8A1C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080A8A70 @ =gBattleAnimTarget
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x10
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r6]
- bl sub_807492C
- 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_8076B2C
- adds r0, 0x2
- strh r0, [r4, 0x38]
- movs r0, 0x3F
- bl sub_8073A44
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x3A]
- ldr r0, _080A8A74 @ =sub_80A8A78
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8A70: .4byte gBattleAnimTarget
-_080A8A74: .4byte sub_80A8A78
- thumb_func_end sub_80A8A1C
-
- thumb_func_start sub_80A8A78
-sub_80A8A78: @ 80A8A78
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080A8ADC
- cmp r1, 0x1
- bgt _080A8A8E
- cmp r1, 0
- beq _080A8A94
- b _080A8BBC
-_080A8A8E:
- cmp r1, 0x2
- beq _080A8B6E
- b _080A8BBC
-_080A8A94:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A8ABE
- 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]
-_080A8ABE:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080A8BBC
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- b _080A8B66
-_080A8ADC:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080A8B22
- ldrh r2, [r4, 0x32]
- movs r3, 0x32
- ldrsh r1, [r4, r3]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080A8B22
- 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 _080A8B22
- ldrh r1, [r4, 0x3A]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xC6
- bl PlaySE12WithPanning
-_080A8B22:
- 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 _080A8B36
- movs r0, 0x40
- b _080A8B44
-_080A8B36:
- movs r0, 0x20
- negs r0, r0
- cmp r2, r0
- bgt _080A8B50
- movs r2, 0x40
- negs r2, r2
- adds r0, r2, 0
-_080A8B44:
- subs r0, r1
- strh r0, [r4, 0x36]
- movs r3, 0x34
- ldrsh r0, [r4, r3]
- negs r0, r0
- strh r0, [r4, 0x34]
-_080A8B50:
- 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 _080A8BBC
- strh r2, [r4, 0x30]
- strh r2, [r4, 0x32]
-_080A8B66:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080A8BBC
-_080A8B6E:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A8B9A
- 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]
-_080A8B9A:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080A8BBC
- 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
-_080A8BBC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A8A78
-
- thumb_func_start sub_80A8BC4
-sub_80A8BC4: @ 80A8BC4
- 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, _080A8BE8 @ =gBattleAnimArgs
- movs r3, 0x4
- ldrsh r2, [r0, r3]
- adds r7, r1, 0
- adds r1, r0, 0
- cmp r2, 0
- bne _080A8BF0
- ldr r0, _080A8BEC @ =gBattleAnimAttacker
- b _080A8BF2
- .align 2, 0
-_080A8BE8: .4byte gBattleAnimArgs
-_080A8BEC: .4byte gBattleAnimAttacker
-_080A8BF0:
- ldr r0, _080A8C2C @ =gBattleAnimTarget
-_080A8BF2:
- ldrb r5, [r0]
- ldrb r1, [r1, 0x6]
- movs r0, 0x1
- adds r4, r0, 0
- eors r4, r1
- bl sub_8075290
- lsls r0, 24
- cmp r0, 0
- beq _080A8C6A
- movs r1, 0x2
- adds r0, r5, 0
- eors r0, r1
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080A8C6A
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, sp
- adds r3, r7, 0
- bl sub_8076D9C
- cmp r4, 0
- bne _080A8C30
- adds r0, r5, 0
- movs r1, 0
- b _080A8C34
- .align 2, 0
-_080A8C2C: .4byte gBattleAnimTarget
-_080A8C30:
- adds r0, r5, 0
- movs r1, 0x2
-_080A8C34:
- bl sub_8074480
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A8C60
- ldr r2, _080A8C5C @ =gBattleAnimArgs
- mov r0, sp
- ldrh r1, [r0]
- subs r1, r4
- ldrh r0, [r2]
- subs r1, r0
- subs r0, r1
- strh r0, [r2]
- b _080A8C6A
- .align 2, 0
-_080A8C5C: .4byte gBattleAnimArgs
-_080A8C60:
- ldr r1, _080A8C7C @ =gBattleAnimArgs
- mov r0, sp
- ldrh r0, [r0]
- subs r0, r4
- strh r0, [r1]
-_080A8C6A:
- ldr r1, _080A8C80 @ =sub_8075D9C
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8C7C: .4byte gBattleAnimArgs
-_080A8C80: .4byte sub_8075D9C
- thumb_func_end sub_80A8BC4
-
- thumb_func_start sub_80A8C84
-sub_80A8C84: @ 80A8C84
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _080A8C9E
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A8C9E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A8C84
-
- thumb_func_start sub_80A8CA4
-sub_80A8CA4: @ 80A8CA4
- 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, _080A8CD0 @ =gBattleAnimArgs
- movs r2, 0xA
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _080A8CDC
- ldr r0, _080A8CD4 @ =gBattleAnimAttacker
- ldrb r7, [r0]
- ldr r0, _080A8CD8 @ =gBattleAnimTarget
- b _080A8CE2
- .align 2, 0
-_080A8CD0: .4byte gBattleAnimArgs
-_080A8CD4: .4byte gBattleAnimAttacker
-_080A8CD8: .4byte gBattleAnimTarget
-_080A8CDC:
- ldr r0, _080A8CFC @ =gBattleAnimTarget
- ldrb r7, [r0]
- ldr r0, _080A8D00 @ =gBattleAnimAttacker
-_080A8CE2:
- ldrb r0, [r0]
- mov r8, r0
- ldr r0, _080A8D04 @ =gBattleAnimArgs
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bne _080A8D08
- movs r0, 0
- mov r10, r0
- movs r1, 0x1
- str r1, [sp, 0x4]
- b _080A8D10
- .align 2, 0
-_080A8CFC: .4byte gBattleAnimTarget
-_080A8D00: .4byte gBattleAnimAttacker
-_080A8D04: .4byte gBattleAnimArgs
-_080A8D08:
- movs r2, 0x2
- mov r10, r2
- movs r3, 0x3
- str r3, [sp, 0x4]
-_080A8D10:
- adds r0, r7, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A8D6C
- adds r0, r7, 0
- mov r1, r10
- bl sub_8074480
- lsls r0, 24
- ldr r1, _080A8D50 @ =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 sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080A8D5C
- ldr r2, _080A8D54 @ =gSprites
- ldr r0, _080A8D58 @ =gUnknown_2023D44
- adds r0, r4, r0
- b _080A8DEA
- .align 2, 0
-_080A8D50: .4byte gBattleAnimArgs
-_080A8D54: .4byte gSprites
-_080A8D58: .4byte gUnknown_2023D44
-_080A8D5C:
- ldr r2, _080A8D64 @ =gSprites
- ldr r0, _080A8D68 @ =gUnknown_2023D44
- add r0, r8
- b _080A8DEA
- .align 2, 0
-_080A8D64: .4byte gSprites
-_080A8D68: .4byte gUnknown_2023D44
-_080A8D6C:
- adds r0, r7, 0
- mov r1, r10
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A8DD4 @ =gBattleAnimArgs
- ldrh r1, [r1]
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080A8DE4
- movs r0, 0x2
- adds r4, r7, 0
- eors r4, r0
- adds r0, r4, 0
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080A8DE4
- ldr r3, _080A8DD8 @ =gSprites
- ldr r2, _080A8DDC @ =gUnknown_2023D44
- 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 _080A8DE0
- adds r0, r2, 0
- adds r0, 0x43
- ldrb r0, [r0]
- adds r0, 0x1
- b _080A8DFA
- .align 2, 0
-_080A8DD4: .4byte gBattleAnimArgs
-_080A8DD8: .4byte gSprites
-_080A8DDC: .4byte gUnknown_2023D44
-_080A8DE0:
- adds r0, r6, 0
- b _080A8DF4
-_080A8DE4:
- ldr r2, _080A8E40 @ =gSprites
- ldr r0, _080A8E44 @ =gUnknown_2023D44
- adds r0, r7, r0
-_080A8DEA:
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
-_080A8DF4:
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
-_080A8DFA:
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r7, 0
- ldr r1, [sp, 0x4]
- bl sub_8074480
- lsls r0, 24
- ldr r4, _080A8E48 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080A8E4C
- movs r1, 0x2
- mov r0, r8
- eors r0, r1
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080A8E4C
- ldrb r1, [r4, 0xC]
- mov r0, r8
- mov r2, sp
- mov r3, sp
- adds r3, 0x2
- bl sub_8076D9C
- b _080A8E6C
- .align 2, 0
-_080A8E40: .4byte gSprites
-_080A8E44: .4byte gUnknown_2023D44
-_080A8E48: .4byte gBattleAnimArgs
-_080A8E4C:
- mov r4, sp
- mov r0, r8
- mov r1, r10
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- mov r0, r8
- ldr r1, [sp, 0x4]
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- mov r2, sp
- strh r0, [r2, 0x2]
-_080A8E6C:
- mov r0, r8
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A8E90
- mov r3, sp
- mov r2, sp
- ldr r1, _080A8E8C @ =gBattleAnimArgs
- ldrh r0, [r1, 0x6]
- ldrh r2, [r2]
- adds r0, r2
- strh r0, [r3]
- adds r2, r1, 0
- b _080A8E9E
- .align 2, 0
-_080A8E8C: .4byte gBattleAnimArgs
-_080A8E90:
- mov r3, sp
- mov r0, sp
- ldr r2, _080A8EE0 @ =gBattleAnimArgs
- ldrh r0, [r0]
- ldrh r1, [r2, 0x6]
- subs r0, r1
- strh r0, [r3]
-_080A8E9E:
- ldrh r1, [r2, 0x8]
- mov r3, sp
- ldrh r3, [r3, 0x2]
- adds r1, r3
- mov r0, sp
- strh r1, [r0, 0x2]
- mov r3, r9
- strh r3, [r5, 0x30]
- strh r3, [r5, 0x20]
- strh r6, [r5, 0x34]
- strh r6, [r5, 0x22]
- ldrh r0, [r0]
- strh r0, [r5, 0x32]
- strh r1, [r5, 0x36]
- ldrh r0, [r2]
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _080A8EE4 @ =sub_80A8C84
- 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
- .align 2, 0
-_080A8EE0: .4byte gBattleAnimArgs
-_080A8EE4: .4byte sub_80A8C84
- thumb_func_end sub_80A8CA4
-
- thumb_func_start sub_80A8EE8
-sub_80A8EE8: @ 80A8EE8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A8F28 @ =0x000027db
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080A8F0E
- lsls r0, 20
- ldr r1, _080A8F2C @ =0x01010000
- adds r0, r1
- lsrs r0, 16
- ldr r1, _080A8F30 @ =gBattleAnimArgs
- ldrb r2, [r1, 0xA]
- ldrh r3, [r1, 0x8]
- movs r1, 0xF
- bl BlendPalette
-_080A8F0E:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r1, _080A8F34 @ =sub_8075D9C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8F28: .4byte 0x000027db
-_080A8F2C: .4byte 0x01010000
-_080A8F30: .4byte gBattleAnimArgs
-_080A8F34: .4byte sub_8075D9C
- thumb_func_end sub_80A8EE8
-
- thumb_func_start sub_80A8F38
-sub_80A8F38: @ 80A8F38
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8075160
- ldr r0, _080A8F6C @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- movs r1, 0xA0
- cmp r0, 0
- beq _080A8F54
- ldr r1, _080A8F70 @ =0x0000ff60
-_080A8F54:
- movs r0, 0xE0
- lsls r0, 2
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- ldr r0, _080A8F74 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x3C]
- ldr r0, _080A8F78 @ =sub_80A8F7C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8F6C: .4byte gBattleAnimAttacker
-_080A8F70: .4byte 0x0000ff60
-_080A8F74: .4byte gBattleAnimArgs
-_080A8F78: .4byte sub_80A8F7C
- thumb_func_end sub_80A8F38
-
- thumb_func_start sub_80A8F7C
-sub_80A8F7C: @ 80A8F7C
- 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, _080A8FE8 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- movs r1, 0xA0
- cmp r0, 0
- beq _080A8FAC
- ldr r1, _080A8FEC @ =0x0000ff60
-_080A8FAC:
- 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 _080A8FE0
- 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, _080A8FF0 @ =sub_80A8FF4
- str r0, [r4, 0x1C]
-_080A8FE0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8FE8: .4byte gBattleAnimAttacker
-_080A8FEC: .4byte 0x0000ff60
-_080A8FF0: .4byte sub_80A8FF4
- thumb_func_end sub_80A8F7C
-
- thumb_func_start sub_80A8FF4
-sub_80A8FF4: @ 80A8FF4
- 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 _080A9012
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r0, _080A9018 @ =sub_80A901C
- str r0, [r4, 0x1C]
-_080A9012:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9018: .4byte sub_80A901C
- thumb_func_end sub_80A8FF4
-
- thumb_func_start sub_80A901C
-sub_80A901C: @ 80A901C
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080A9082
- 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 _080A9068
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r3, _080A905C @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080A9060 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r0, _080A9064 @ =sub_80A9094
- b _080A9080
- .align 2, 0
-_080A905C: .4byte 0x000003ff
-_080A9060: .4byte 0xfffffc00
-_080A9064: .4byte sub_80A9094
-_080A9068:
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x20
- ldr r3, _080A9088 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080A908C @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r0, _080A9090 @ =sub_80A911C
-_080A9080:
- str r0, [r4, 0x1C]
-_080A9082:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9088: .4byte 0x000003ff
-_080A908C: .4byte 0xfffffc00
-_080A9090: .4byte sub_80A911C
- thumb_func_end sub_80A901C
-
- thumb_func_start sub_80A9094
-sub_80A9094: @ 80A9094
- 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 _080A90CA
- 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, _080A90D0 @ =sub_80A90D4
- str r0, [r4, 0x1C]
-_080A90CA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A90D0: .4byte sub_80A90D4
- thumb_func_end sub_80A9094
-
- thumb_func_start sub_80A90D4
-sub_80A90D4: @ 80A90D4
- 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 _080A9112
- 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 _080A9112
- ldr r0, _080A9118 @ =sub_80A911C
- str r0, [r4, 0x1C]
-_080A9112:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9118: .4byte sub_80A911C
- thumb_func_end sub_80A90D4
-
- thumb_func_start sub_80A911C
-sub_80A911C: @ 80A911C
- push {lr}
- adds r3, r0, 0
- ldr r0, _080A9144 @ =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, _080A9148 @ =0x0000ffff
- cmp r1, r0
- bne _080A9154
- 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 _080A9150
- ldr r0, _080A914C @ =sub_80A915C
- b _080A9152
- .align 2, 0
-_080A9144: .4byte gBattleAnimArgs
-_080A9148: .4byte 0x0000ffff
-_080A914C: .4byte sub_80A915C
-_080A9150:
- ldr r0, _080A9158 @ =DestroyAnimSprite
-_080A9152:
- str r0, [r3, 0x1C]
-_080A9154:
- pop {r0}
- bx r0
- .align 2, 0
-_080A9158: .4byte DestroyAnimSprite
- thumb_func_end sub_80A911C
-
- thumb_func_start sub_80A915C
-sub_80A915C: @ 80A915C
- 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_80A915C
-
- thumb_func_start sub_80A917C
-sub_80A917C: @ 80A917C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080A91AC @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x8]
- ldr r2, _080A91B0 @ =gUnknown_83E4128
- adds r0, r4, 0
- bl sub_80762D0
- ldr r0, _080A91B4 @ =sub_80A91B8
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A91AC: .4byte gTasks
-_080A91B0: .4byte gUnknown_83E4128
-_080A91B4: .4byte sub_80A91B8
- thumb_func_end sub_80A917C
-
- thumb_func_start sub_80A91B8
-sub_80A91B8: @ 80A91B8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080A9208 @ =gTasks
- adds r4, r0, r1
- adds r0, r4, 0
- bl sub_8076308
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _080A9202
- ldr r2, _080A920C @ =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
-_080A9202:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9208: .4byte gTasks
-_080A920C: .4byte gSprites
- thumb_func_end sub_80A91B8
-
- thumb_func_start sub_80A9210
-sub_80A9210: @ 80A9210
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080A9244 @ =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, _080A9248 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A9250
- ldr r0, _080A924C @ =0x0000ffff
- strh r0, [r4, 0x22]
- movs r0, 0x8
- b _080A9256
- .align 2, 0
-_080A9244: .4byte gTasks
-_080A9248: .4byte gBattleAnimTarget
-_080A924C: .4byte 0x0000ffff
-_080A9250:
- movs r0, 0x1
- strh r0, [r4, 0x22]
- ldr r0, _080A9270 @ =0x0000fff8
-_080A9256:
- strh r0, [r4, 0x24]
- movs r0, 0x1
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080A9274 @ =sub_80A9278
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9270: .4byte 0x0000fff8
-_080A9274: .4byte sub_80A9278
- thumb_func_end sub_80A9210
-
- thumb_func_start sub_80A9278
-sub_80A9278: @ 80A9278
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080A929C @ =gTasks
- adds r3, r0, r1
- movs r0, 0x8
- ldrsh r4, [r3, r0]
- cmp r4, 0x1
- beq _080A92CC
- cmp r4, 0x1
- bgt _080A92A0
- cmp r4, 0
- beq _080A92AA
- b _080A9392
- .align 2, 0
-_080A929C: .4byte gTasks
-_080A92A0:
- cmp r4, 0x2
- beq _080A9348
- cmp r4, 0x3
- beq _080A9362
- b _080A9392
-_080A92AA:
- ldr r2, _080A92C8 @ =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 _080A935A
- .align 2, 0
-_080A92C8: .4byte gSprites
-_080A92CC:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A9392
- 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 _080A9304
- ldr r2, _080A9300 @ =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 _080A9316
- .align 2, 0
-_080A9300: .4byte gSprites
-_080A9304:
- ldr r2, _080A9344 @ =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
-_080A9316:
- 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 _080A9392
- ldrh r1, [r3, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A935A
- 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 _080A935A
- .align 2, 0
-_080A9344: .4byte gSprites
-_080A9348:
- ldrh r0, [r3, 0x20]
- subs r0, 0x1
- strh r0, [r3, 0x20]
- lsls r0, 16
- cmp r0, 0
- beq _080A935A
- movs r0, 0
- strh r0, [r3, 0x8]
- b _080A9392
-_080A935A:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _080A9392
-_080A9362:
- ldr r2, _080A9398 @ =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 _080A9392
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080A9392:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9398: .4byte gSprites
- thumb_func_end sub_80A9278
-
- thumb_func_start sub_80A939C
-sub_80A939C: @ 80A939C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080A93D8 @ =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 GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080A93DC @ =sub_80A93E0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A93D8: .4byte gTasks
-_080A93DC: .4byte sub_80A93E0
- thumb_func_end sub_80A939C
-
- thumb_func_start sub_80A93E0
-sub_80A93E0: @ 80A93E0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080A9434 @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _080A94A6
- 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 _080A94A6
- 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 _080A943C
- ldr r3, _080A9438 @ =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 _080A9452
- .align 2, 0
-_080A9434: .4byte gTasks
-_080A9438: .4byte gSprites
-_080A943C:
- ldr r3, _080A9484 @ =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
-_080A9452:
- 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 _080A94A6
- 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 _080A9488
- strh r2, [r4, 0xA]
- strh r2, [r4, 0xC]
- strh r2, [r4, 0xE]
- b _080A94A6
- .align 2, 0
-_080A9484: .4byte gSprites
-_080A9488:
- 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
-_080A94A6:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A93E0
-
- thumb_func_start sub_80A94AC
-sub_80A94AC: @ 80A94AC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080A94FC @ =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, _080A9500 @ =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x24]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080A9504 @ =sub_80A9508
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A94FC: .4byte gTasks
-_080A9500: .4byte gBattleAnimAttacker
-_080A9504: .4byte sub_80A9508
- thumb_func_end sub_80A94AC
-
- thumb_func_start sub_80A9508
-sub_80A9508: @ 80A9508
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080A952C @ =gTasks
- adds r4, r0, r1
- movs r0, 0x18
- ldrsh r2, [r4, r0]
- cmp r2, 0x1
- beq _080A9574
- cmp r2, 0x1
- bgt _080A9530
- cmp r2, 0
- beq _080A9536
- b _080A9590
- .align 2, 0
-_080A952C: .4byte gTasks
-_080A9530:
- cmp r2, 0x2
- beq _080A958C
- b _080A9590
-_080A9536:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A9590
- 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 _080A9590
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A956E
- strh r2, [r4, 0x14]
- movs r0, 0x1
- strh r0, [r4, 0x18]
- b _080A9590
-_080A956E:
- movs r0, 0x2
- strh r0, [r4, 0x18]
- b _080A9590
-_080A9574:
- 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 _080A9590
- strh r2, [r4, 0x16]
- strh r1, [r4, 0x18]
- b _080A9590
-_080A958C:
- movs r0, 0x1
- strh r0, [r4, 0x12]
-_080A9590:
- movs r2, 0x8
- ldrsh r5, [r4, r2]
- cmp r5, 0
- beq _080A959E
- cmp r5, 0x1
- beq _080A9634
- b _080A9642
-_080A959E:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080A9642
- strh r5, [r4, 0xA]
- ldr r0, _080A9628 @ =gUnknown_83E4154
- 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 _080A9642
- ldr r0, _080A962C @ =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, _080A9630 @ =gUnknown_83E416C
- 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 _080A9642
- 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 _080A9642
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080A9642
- .align 2, 0
-_080A9628: .4byte gUnknown_83E4154
-_080A962C: .4byte gSprites
-_080A9630: .4byte gUnknown_83E416C
-_080A9634:
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A9642
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080A9642:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A9508
-
- thumb_func_start sub_80A9648
-sub_80A9648: @ 80A9648
- push {r4,lr}
- adds r3, r0, 0
- ldr r4, _080A96B0 @ =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 _080A96AA
- 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
-_080A96AA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A96B0: .4byte gTasks
- thumb_func_end sub_80A9648
-
- thumb_func_start sub_80A96B4
-sub_80A96B4: @ 80A96B4
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080A9750 @ =0x000027de
- bl IndexOfSpritePaletteTag
- mov r1, sp
- strb r0, [r1]
- movs r4, 0x1
- ldr r0, _080A9754 @ =0x00002710
- adds r5, r0, 0
-_080A96CC:
- 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 _080A96CC
- movs r0, 0x80
- lsls r0, 6
- bl AllocZeroed
- adds r1, r0, 0
- ldr r0, _080A9758 @ =gMonSpritesGfxPtr
- ldr r0, [r0]
- movs r2, 0xBE
- lsls r2, 1
- adds r0, r2
- str r1, [r0]
- ldr r0, _080A975C @ =gFile_graphics_battle_anims_sprites_206_palette
- bl LZDecompressWram
- movs r4, 0
-_080A9700:
- ldr r5, _080A9758 @ =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 _080A9700
- 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
- .align 2, 0
-_080A9750: .4byte 0x000027de
-_080A9754: .4byte 0x00002710
-_080A9758: .4byte gMonSpritesGfxPtr
-_080A975C: .4byte gFile_graphics_battle_anims_sprites_206_palette
- thumb_func_end sub_80A96B4
-
- thumb_func_start sub_80A9760
-sub_80A9760: @ 80A9760
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _080A9784 @ =gUnknown_83E41C8
- movs r4, 0x2
-_080A976A:
- ldrh r0, [r5]
- bl FreeSpritePaletteByTag
- adds r5, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080A976A
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9784: .4byte gUnknown_83E41C8
- thumb_func_end sub_80A9760
-
- thumb_func_start sub_80A9788
-sub_80A9788: @ 80A9788
- 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, _080A97DC @ =0x000003ff
- adds r0, r1, 0
- ands r3, r0
- ldr r0, _080A97E0 @ =0xfffffc00
- ands r0, r4
- orrs r0, r3
- strh r0, [r5, 0x4]
- ldr r0, _080A97E4 @ =gUnknown_83E41C8
- 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
- .align 2, 0
-_080A97DC: .4byte 0x000003ff
-_080A97E0: .4byte 0xfffffc00
-_080A97E4: .4byte gUnknown_83E41C8
- thumb_func_end sub_80A9788
-
- thumb_func_start sub_80A97E8
-sub_80A97E8: @ 80A97E8
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_8075160
- ldr r6, _080A9850 @ =gBattleAnimAttacker
- ldrb r0, [r6]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A9808
- ldr r1, _080A9854 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080A9808:
- ldr r4, _080A9854 @ =gBattleAnimArgs
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x2E]
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldr r0, _080A9858 @ =sub_8075590
- str r0, [r5, 0x1C]
- ldr r1, _080A985C @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldrb r1, [r4, 0xA]
- ldrb r2, [r4, 0xC]
- adds r0, r5, 0
- bl sub_80A9788
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9850: .4byte gBattleAnimAttacker
-_080A9854: .4byte gBattleAnimArgs
-_080A9858: .4byte sub_8075590
-_080A985C: .4byte DestroyAnimSprite
- thumb_func_end sub_80A97E8
-
- thumb_func_start sub_80A9860
-sub_80A9860: @ 80A9860
- 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 _080A987A
- adds r0, r4, 0
- movs r1, 0
- bl sub_8075160
-_080A987A:
- 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 _080A98AA
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A98AA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A9860
-
- thumb_func_start sub_80A98B0
-sub_80A98B0: @ 80A98B0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- bl sub_8073788
- lsls r0, 24
- movs r6, 0xF0
- cmp r0, 0
- beq _080A98C4
- movs r6, 0x98
-_080A98C4:
- movs r5, 0
- ldr r1, _080A9918 @ =gUnknown_2022984
- strh r6, [r1]
- ldr r4, _080A991C @ =gUnknown_2022986
- movs r0, 0xA0
- strh r0, [r4]
- ldrh r1, [r1]
- movs r0, 0x40
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x44
- bl SetGpuReg
- ldr r1, _080A9920 @ =0x00003f1f
- movs r0, 0x48
- bl SetGpuReg
- ldr r1, _080A9924 @ =0x00003f3f
- movs r0, 0x4A
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0xC8
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0x10
- bl SetGpuReg
- ldr r1, _080A9928 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- strh r6, [r0, 0xA]
- ldr r1, _080A992C @ =sub_80A9930
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9918: .4byte gUnknown_2022984
-_080A991C: .4byte gUnknown_2022986
-_080A9920: .4byte 0x00003f1f
-_080A9924: .4byte 0x00003f3f
-_080A9928: .4byte gTasks
-_080A992C: .4byte sub_80A9930
- thumb_func_end sub_80A98B0
-
- thumb_func_start sub_80A9930
-sub_80A9930: @ 80A9930
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A9964 @ =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 _080A9970
- ldr r0, _080A9968 @ =gUnknown_2022984
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080A996C @ =sub_80A9984
- str r0, [r3]
- b _080A9978
- .align 2, 0
-_080A9964: .4byte gTasks
-_080A9968: .4byte gUnknown_2022984
-_080A996C: .4byte sub_80A9984
-_080A9970:
- ldr r1, _080A9980 @ =gUnknown_2022984
- lsls r0, r4, 8
- orrs r2, r0
- strh r2, [r1]
-_080A9978:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9980: .4byte gUnknown_2022984
- thumb_func_end sub_80A9930
-
- thumb_func_start sub_80A9984
-sub_80A9984: @ 80A9984
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080A99D0 @ =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 _080A99D8
- 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_8075BE8
- ldr r2, _080A99D4 @ =0x00007fff
- movs r1, 0x10
- bl BlendPalettes
- b _080A9A0C
- .align 2, 0
-_080A99D0: .4byte gTasks
-_080A99D4: .4byte 0x00007fff
-_080A99D8:
- cmp r0, 0x4
- ble _080A9A0C
- ldr r0, _080A9A14 @ =gUnknown_2022984
- strh r4, [r0]
- ldr r0, _080A9A18 @ =gUnknown_2022986
- strh r4, [r0]
- ldr r4, _080A9A1C @ =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
-_080A9A0C:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9A14: .4byte gUnknown_2022984
-_080A9A18: .4byte gUnknown_2022986
-_080A9A1C: .4byte 0x00003f3f
- thumb_func_end sub_80A9984
-
- thumb_func_start sub_80A9A20
-sub_80A9A20: @ 80A9A20
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- movs r0, 0x1
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A9A70 @ =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 _080A9A7C
- movs r0, 0x1
- bl GetAnimBankSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080A9A74 @ =gUnknown_83E4200
- adds r0, r5, 0
- bl sub_80762D0
- ldr r1, _080A9A78 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x24]
- b _080A9AA4
- .align 2, 0
-_080A9A70: .4byte gTasks
-_080A9A74: .4byte gUnknown_83E4200
-_080A9A78: .4byte gSprites
-_080A9A7C:
- ldr r1, _080A9AAC @ =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_8076308
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080A9AA4
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080A9AA4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9AAC: .4byte gSprites
- thumb_func_end sub_80A9A20
-
- thumb_func_start sub_80A9AB0
-sub_80A9AB0: @ 80A9AB0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A9B00 @ =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 _080A9B0C
- movs r0, 0
- bl GetAnimBankSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080A9B04 @ =gUnknown_83E4200
- adds r0, r5, 0
- bl sub_80762D0
- ldr r1, _080A9B08 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x24]
- b _080A9B34
- .align 2, 0
-_080A9B00: .4byte gTasks
-_080A9B04: .4byte gUnknown_83E4200
-_080A9B08: .4byte gSprites
-_080A9B0C:
- ldr r1, _080A9B3C @ =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_8076308
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080A9B34
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080A9B34:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9B3C: .4byte gSprites
- thumb_func_end sub_80A9AB0
-
- thumb_func_start sub_80A9B40
-sub_80A9B40: @ 80A9B40
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- movs r0, 0x5F
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r5, _080A9B84 @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- 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 sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080A9B88 @ =sub_80A9B8C
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9B84: .4byte gBattleAnimTarget
-_080A9B88: .4byte sub_80A9B8C
- thumb_func_end sub_80A9B40
-
- thumb_func_start sub_80A9B8C
-sub_80A9B8C: @ 80A9B8C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- bne _080A9BB6
- 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 _080A9BBC
-_080A9BB6:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A9BBC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A9B8C
-
- thumb_func_start sub_80A9BC4
-sub_80A9BC4: @ 80A9BC4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A9BE8
- ldr r1, _080A9BE4 @ =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 _080A9C44
- .align 2, 0
-_080A9BE4: .4byte gBattleAnimArgs
-_080A9BE8:
- 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 _080A9C36
- 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]
-_080A9C36:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x78
- ble _080A9C44
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A9C44:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A9BC4
-
- thumb_func_start sub_80A9C4C
-sub_80A9C4C: @ 80A9C4C
- push {lr}
- ldr r2, _080A9C70 @ =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, _080A9C74 @ =sub_8074C44
- str r1, [r0, 0x1C]
- ldr r1, _080A9C78 @ =sub_80A9C7C
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080A9C70: .4byte gBattleAnimArgs
-_080A9C74: .4byte sub_8074C44
-_080A9C78: .4byte sub_80A9C7C
- thumb_func_end sub_80A9C4C
-
- thumb_func_start sub_80A9C7C
-sub_80A9C7C: @ 80A9C7C
- 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 _080A9CE2
- 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 _080A9CE2
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A9CE2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A9C7C
-
- thumb_func_start sub_80A9CE8
-sub_80A9CE8: @ 80A9CE8
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A9DA0 @ =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 sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080A9D2A
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
-_080A9D2A:
- ldr r0, _080A9DA4 @ =gBattle_BG1_X
- movs r1, 0
- strh r1, [r0]
- ldr r4, _080A9DA8 @ =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_80752A0
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080A9DAC @ =gFile_graphics_battle_anims_backgrounds_attract_tilemap
- bl sub_807543C
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080A9DB0 @ =gFile_graphics_battle_anims_backgrounds_attract_sheet
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80753B4
- ldr r0, _080A9DB4 @ =gFile_graphics_battle_anims_backgrounds_attract_palette
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A9D88
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80730C0
-_080A9D88:
- ldr r0, _080A9DB8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080A9DBC @ =sub_80A9DC0
- str r0, [r1]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9DA0: .4byte 0x00003f42
-_080A9DA4: .4byte gBattle_BG1_X
-_080A9DA8: .4byte gBattle_BG1_Y
-_080A9DAC: .4byte gFile_graphics_battle_anims_backgrounds_attract_tilemap
-_080A9DB0: .4byte gFile_graphics_battle_anims_backgrounds_attract_sheet
-_080A9DB4: .4byte gFile_graphics_battle_anims_backgrounds_attract_palette
-_080A9DB8: .4byte gTasks
-_080A9DBC: .4byte sub_80A9DC0
- thumb_func_end sub_80A9CE8
-
- thumb_func_start sub_80A9DC0
-sub_80A9DC0: @ 80A9DC0
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A9DE8 @ =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 _080A9DDE
- b _080A9F08
-_080A9DDE:
- lsls r0, 2
- ldr r1, _080A9DEC @ =_080A9DF0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A9DE8: .4byte gTasks
-_080A9DEC: .4byte _080A9DF0
- .align 2, 0
-_080A9DF0:
- .4byte _080A9E04
- .4byte _080A9E48
- .4byte _080A9E6A
- .4byte _080A9EAE
- .4byte _080A9ED4
-_080A9E04:
- 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 _080A9F08
- 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 _080A9F08
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r5, [r4, 0x1E]
- b _080A9F08
-_080A9E48:
- 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 _080A9F08
- movs r0, 0x10
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _080A9F08
-_080A9E6A:
- 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 _080A9F08
- 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 _080A9F08
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r1, [r4, 0x1E]
- b _080A9F08
-_080A9EAE:
- mov r0, sp
- bl sub_80752A0
- mov r0, sp
- ldrb r0, [r0, 0x9]
- bl sub_8075358
- ldr r1, _080A9ED0 @ =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 _080A9F08
- .align 2, 0
-_080A9ED0: .4byte gTasks
-_080A9ED4:
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080A9EE8
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_080A9EE8:
- 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
-_080A9F08:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A9DC0
-
- thumb_func_start sub_80A9F10
-sub_80A9F10: @ 80A9F10
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A9F88 @ =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 sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080A9F52
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
-_080A9F52:
- ldr r0, _080A9F8C @ =gBattle_BG1_X
- movs r1, 0
- strh r1, [r0]
- ldr r4, _080A9F90 @ =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_80752A0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A9F98
- ldr r0, _080A9F94 @ =gFile_graphics_battle_anims_backgrounds_scary_face_contest_tilemap
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
- b _080A9FC6
- .align 2, 0
-_080A9F88: .4byte 0x00003f42
-_080A9F8C: .4byte gBattle_BG1_X
-_080A9F90: .4byte gBattle_BG1_Y
-_080A9F94: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_contest_tilemap
-_080A9F98:
- ldr r0, _080A9FB4 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A9FBC
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080A9FB8 @ =gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap
- bl sub_807543C
- b _080A9FC6
- .align 2, 0
-_080A9FB4: .4byte gBattleAnimTarget
-_080A9FB8: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap
-_080A9FBC:
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080AA010 @ =gFile_graphics_battle_anims_backgrounds_scary_face_opponent_tilemap
- bl sub_807543C
-_080A9FC6:
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080AA014 @ =gFile_graphics_battle_anims_backgrounds_scary_face_sheet
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80753B4
- ldr r0, _080AA018 @ =gFile_graphics_battle_anims_backgrounds_scary_face_palette
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080A9FFA
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80730C0
-_080A9FFA:
- ldr r0, _080AA01C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080AA020 @ =sub_80AA024
- str r0, [r1]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA010: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_opponent_tilemap
-_080AA014: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_sheet
-_080AA018: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_palette
-_080AA01C: .4byte gTasks
-_080AA020: .4byte sub_80AA024
- thumb_func_end sub_80A9F10
-
- thumb_func_start sub_80AA024
-sub_80AA024: @ 80AA024
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080AA04C @ =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 _080AA042
- b _080AA168
-_080AA042:
- lsls r0, 2
- ldr r1, _080AA050 @ =_080AA054
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080AA04C: .4byte gTasks
-_080AA050: .4byte _080AA054
- .align 2, 0
-_080AA054:
- .4byte _080AA068
- .4byte _080AA0AC
- .4byte _080AA0CE
- .4byte _080AA112
- .4byte _080AA134
-_080AA068:
- 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 _080AA168
- 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 _080AA168
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r5, [r4, 0x1E]
- b _080AA168
-_080AA0AC:
- 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 _080AA168
- movs r0, 0xE
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _080AA168
-_080AA0CE:
- 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 _080AA168
- 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 _080AA168
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r1, [r4, 0x1E]
- b _080AA168
-_080AA112:
- mov r0, sp
- bl sub_80752A0
- movs r0, 0x1
- bl sub_8075358
- movs r0, 0x2
- bl sub_8075358
- ldr r0, _080AA170 @ =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]
-_080AA134:
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080AA148
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_080AA148:
- 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
-_080AA168:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA170: .4byte gTasks
- thumb_func_end sub_80AA024
-
- thumb_func_start sub_80AA174
-sub_80AA174: @ 80AA174
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080AA1C8 @ =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- 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, _080AA1CC @ =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldrb r0, [r5]
- bl sub_807685C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x3C]
- ldr r1, _080AA1D0 @ =sub_80AA1D4
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA1C8: .4byte gBattleAnimAttacker
-_080AA1CC: .4byte gBattleAnimArgs
-_080AA1D0: .4byte sub_80AA1D4
- thumb_func_end sub_80AA174
-
- thumb_func_start sub_80AA1D4
-sub_80AA1D4: @ 80AA1D4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080AA1EA
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- b _080AA1EE
-_080AA1EA:
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
-_080AA1EE:
- 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 _080AA260
- cmp r2, 0x1
- bne _080AA290
- ldr r1, _080AA258 @ =0xfffffc00
- adds r0, r1, 0
- ldrh r2, [r4, 0x32]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldr r3, _080AA25C @ =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 _080AA290
- movs r0, 0x2
- strh r0, [r4, 0x38]
- b _080AA2A0
- .align 2, 0
-_080AA258: .4byte 0xfffffc00
-_080AA25C: .4byte 0xffffff00
-_080AA260:
- 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 _080AA290
- strh r2, [r4, 0x36]
- movs r0, 0x1
- strh r0, [r4, 0x38]
-_080AA290:
- ldr r0, _080AA2A8 @ =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, _080AA2AC @ =0x0000ffff
- cmp r1, r0
- bne _080AA2A0
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AA2A0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA2A8: .4byte gBattleAnimArgs
-_080AA2AC: .4byte 0x0000ffff
- thumb_func_end sub_80AA1D4
-
- thumb_func_start sub_80AA2B0
-sub_80AA2B0: @ 80AA2B0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080AA2F8 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080AA2FC @ =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, _080AA300 @ =sub_80AA304
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA2F8: .4byte gBattleAnimAttacker
-_080AA2FC: .4byte gBattleAnimArgs
-_080AA300: .4byte sub_80AA304
- thumb_func_end sub_80AA2B0
-
- thumb_func_start sub_80AA304
-sub_80AA304: @ 80AA304
- 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 _080AA342
- movs r0, 0x22
- ldrsh r1, [r2, r0]
- movs r3, 0x26
- ldrsh r0, [r2, r3]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080AA342
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080AA348
-_080AA342:
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080AA348:
- pop {r0}
- bx r0
- thumb_func_end sub_80AA304
-
- thumb_func_start sub_80AA34C
-sub_80AA34C: @ 80AA34C
- 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 _080AA378
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080AA378:
- pop {r0}
- bx r0
- thumb_func_end sub_80AA34C
-
- thumb_func_start sub_80AA37C
-sub_80AA37C: @ 80AA37C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080AA3C8 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080AA3CC @ =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, _080AA3D0 @ =sub_80AA34C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA3C8: .4byte gBattleAnimAttacker
-_080AA3CC: .4byte gBattleAnimArgs
-_080AA3D0: .4byte sub_80AA34C
- thumb_func_end sub_80AA37C
-
- thumb_func_start sub_80AA3D4
-sub_80AA3D4: @ 80AA3D4
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080AA3EA
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080AA3EA:
- pop {r0}
- bx r0
- thumb_func_end sub_80AA3D4
-
- thumb_func_start sub_80AA3F0
-sub_80AA3F0: @ 80AA3F0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r0, _080AA404 @ =sub_80AA3D4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA404: .4byte sub_80AA3D4
- thumb_func_end sub_80AA3F0
-
- thumb_func_start sub_80AA408
-sub_80AA408: @ 80AA408
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AA426
- ldr r0, _080AA498 @ =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]
-_080AA426:
- 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 _080AA46A
- 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]
-_080AA46A:
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- cmp r2, 0x5A
- ble _080AA488
- 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]
-_080AA488:
- cmp r2, 0x64
- ble _080AA492
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AA492:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA498: .4byte gBattleAnimArgs
- thumb_func_end sub_80AA408
-
- thumb_func_start sub_80AA49C
-sub_80AA49C: @ 80AA49C
- 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 _080AA4F2
- 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]
-_080AA4F2:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x1E
- ble _080AA500
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AA500:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AA49C
-
- thumb_func_start sub_80AA508
-sub_80AA508: @ 80AA508
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AA52C
- ldr r1, _080AA528 @ =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 _080AA580
- .align 2, 0
-_080AA528: .4byte gBattleAnimArgs
-_080AA52C:
- 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 _080AA580
- ldr r0, _080AA588 @ =sub_80AA49C
- 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 Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xB4
- bl __umodsi3
- strh r0, [r4, 0x34]
-_080AA580:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA588: .4byte sub_80AA49C
- thumb_func_end sub_80AA508
-
- thumb_func_start sub_80AA58C
-sub_80AA58C: @ 80AA58C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AA5C6
- ldr r1, _080AA688 @ =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, _080AA68C @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_807685C
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r0, 0x1
- strh r0, [r4, 0x32]
-_080AA5C6:
- 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 _080AA5DC
- adds r0, 0xFF
-_080AA5DC:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _080AA5EE
- movs r0, 0
- strh r0, [r4, 0x30]
-_080AA5EE:
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _080AA5FC
- adds r0, 0x3
-_080AA5FC:
- 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 _080AA618
- adds r0, 0x7
-_080AA618:
- 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 _080AA63C
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080AA63C
- ldr r0, _080AA690 @ =0x0000ffff
- strh r0, [r4, 0x32]
-_080AA63C:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AA650
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _080AA650
- movs r0, 0x1
- strh r0, [r4, 0x32]
-_080AA650:
- 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 _080AA694
- 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 _080AA6A2
- .align 2, 0
-_080AA688: .4byte gBattleAnimArgs
-_080AA68C: .4byte gBattleAnimTarget
-_080AA690: .4byte 0x0000ffff
-_080AA694:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080AA6A2:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x5A
- ble _080AA6B0
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AA6B0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AA58C
-
- thumb_func_start sub_80AA6B8
-sub_80AA6B8: @ 80AA6B8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AA6EC
- ldr r1, _080AA6E8 @ =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 _080AA700
- .align 2, 0
-_080AA6E8: .4byte gBattleAnimArgs
-_080AA6EC:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080AA700
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AA700:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AA6B8
-
- thumb_func_start sub_80AA708
-sub_80AA708: @ 80AA708
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r1, _080AA720 @ =gBattleAnimArgs
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080AA724
- adds r0, r5, 0
- bl DestroyAnimSprite
- b _080AA788
- .align 2, 0
-_080AA720: .4byte gBattleAnimArgs
-_080AA724:
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080AA734
- ldr r4, _080AA730 @ =gBattleAnimAttacker
- b _080AA736
- .align 2, 0
-_080AA730: .4byte gBattleAnimAttacker
-_080AA734:
- ldr r4, _080AA764 @ =gBattleAnimTarget
-_080AA736:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, _080AA768 @ =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r1, [r0, r2]
- adds r2, r0, 0
- cmp r1, 0
- bne _080AA76C
- ldrh r0, [r5, 0x20]
- adds r0, 0x20
- b _080AA770
- .align 2, 0
-_080AA764: .4byte gBattleAnimTarget
-_080AA768: .4byte gBattleAnimArgs
-_080AA76C:
- ldrh r0, [r5, 0x20]
- subs r0, 0x20
-_080AA770:
- 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, _080AA790 @ =sub_80AA794
- str r0, [r5, 0x1C]
-_080AA788:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA790: .4byte sub_80AA794
- thumb_func_end sub_80AA708
-
- thumb_func_start sub_80AA794
-sub_80AA794: @ 80AA794
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080AA7C4
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- cmp r0, 0
- beq _080AA7BE
- ldrh r1, [r2, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl StartSpriteAnim
- b _080AA7C4
-_080AA7BE:
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080AA7C4:
- pop {r0}
- bx r0
- thumb_func_end sub_80AA794
-
- thumb_func_start sub_80AA7C8
-sub_80AA7C8: @ 80AA7C8
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080AA7FC @ =gBattleAnimArgs
- ldrb r0, [r0]
- bl GetAnimBankSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _080AA800 @ =gTasks
- adds r4, r0
- ldr r2, _080AA804 @ =gUnknown_83E4410
- adds r0, r4, 0
- bl sub_80762D0
- ldr r0, _080AA808 @ =sub_80AA80C
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA7FC: .4byte gBattleAnimArgs
-_080AA800: .4byte gTasks
-_080AA804: .4byte gUnknown_83E4410
-_080AA808: .4byte sub_80AA80C
- thumb_func_end sub_80AA7C8
-
- thumb_func_start sub_80AA80C
-sub_80AA80C: @ 80AA80C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080AA834 @ =gTasks
- adds r0, r1
- bl sub_8076308
- lsls r0, 24
- cmp r0, 0
- bne _080AA82C
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080AA82C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA834: .4byte gTasks
- thumb_func_end sub_80AA80C
-
- thumb_func_start sub_80AA838
-sub_80AA838: @ 80AA838
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, _080AA84C @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080AA854
- ldr r0, _080AA850 @ =gBattleAnimAttacker
- b _080AA856
- .align 2, 0
-_080AA84C: .4byte gBattleAnimArgs
-_080AA850: .4byte gBattleAnimAttacker
-_080AA854:
- ldr r0, _080AA8EC @ =gBattleAnimTarget
-_080AA856:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080AA870
- ldr r1, _080AA8F0 @ =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080AA870:
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- ldr r7, _080AA8F0 @ =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 sub_8074480
- 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 _080AA8B0
- adds r0, 0x7
-_080AA8B0:
- asrs r0, 3
- strh r0, [r5, 0x34]
- movs r3, 0x4
- ldrsh r0, [r7, r3]
- lsls r0, 3
- cmp r0, 0
- bge _080AA8C0
- adds r0, 0x7
-_080AA8C0:
- 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, _080AA8F4 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080AA8F8 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r0, _080AA8FC @ =sub_80AA900
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA8EC: .4byte gBattleAnimTarget
-_080AA8F0: .4byte gBattleAnimArgs
-_080AA8F4: .4byte 0x000003ff
-_080AA8F8: .4byte 0xfffffc00
-_080AA8FC: .4byte sub_80AA900
- thumb_func_end sub_80AA838
-
- thumb_func_start sub_80AA900
-sub_80AA900: @ 80AA900
- 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 _080AA934
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080AA934:
- pop {r0}
- bx r0
- thumb_func_end sub_80AA900
-
- thumb_func_start sub_80AA938
-sub_80AA938: @ 80AA938
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AA95A
- ldr r0, _080AA994 @ =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]
-_080AA95A:
- 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 _080AA978
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- movs r1, 0
- bl sub_8075B48
-_080AA978:
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- adds r0, 0x50
- cmp r1, r0
- bne _080AA98C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AA98C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA994: .4byte gBattleAnimArgs
- thumb_func_end sub_80AA938
-
- thumb_func_start sub_80AA998
-sub_80AA998: @ 80AA998
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080AA9C6
- movs r5, 0x78
- strh r5, [r6, 0x20]
- ldr r4, _080AAA48 @ =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]
-_080AA9C6:
- 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 _080AAA42
- ldr r0, _080AAA4C @ =sub_80AAA50
- 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
-_080AAA42:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAA48: .4byte gBattleAnimArgs
-_080AAA4C: .4byte sub_80AAA50
- thumb_func_end sub_80AA998
-
- thumb_func_start sub_80AAA50
-sub_80AAA50: @ 80AAA50
- 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 _080AAA6A
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _080AAA70 @ =sub_80AAA74
- str r0, [r1, 0x1C]
-_080AAA6A:
- pop {r0}
- bx r0
- .align 2, 0
-_080AAA70: .4byte sub_80AAA74
- thumb_func_end sub_80AAA50
-
- thumb_func_start sub_80AAA74
-sub_80AAA74: @ 80AAA74
- 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 _080AAA9E
- lsls r0, r1, 16
- cmp r0, 0
- ble _080AAA9E
- ldrh r0, [r4, 0x36]
- subs r1, r0, 0x5
- strh r1, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x36]
-_080AAA9E:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- ble _080AAAD0
- 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
-_080AAAD0:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bne _080AAADE
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AAADE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AAA74
-
- thumb_func_start sub_80AAAE4
-sub_80AAAE4: @ 80AAAE4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080AAB28 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AAB30
- ldr r4, _080AAB2C @ =gBattleAnimAttacker
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080AAB30
- ldrb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_8076D9C
- ldrh r0, [r5, 0x22]
- adds r0, 0x28
- strh r0, [r5, 0x22]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080AAB50
- .align 2, 0
-_080AAB28: .4byte gBattleTypeFlags
-_080AAB2C: .4byte gBattleAnimAttacker
-_080AAB30:
- ldr r4, _080AAB70 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x28
- strh r0, [r5, 0x22]
-_080AAB50:
- 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, _080AAB74 @ =sub_8075590
- str r0, [r5, 0x1C]
- ldr r1, _080AAB78 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAB70: .4byte gBattleAnimAttacker
-_080AAB74: .4byte sub_8075590
-_080AAB78: .4byte DestroyAnimSprite
- thumb_func_end sub_80AAAE4
-
- thumb_func_start sub_80AAB7C
-sub_80AAB7C: @ 80AAB7C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080AAB98 @ =gBattleAnimArgs
- ldr r1, _080AAB9C @ =gUnknown_2037EE4
- ldr r1, [r1]
- ldrb r2, [r1, 0x10]
- movs r1, 0x1
- ands r1, r2
- strh r1, [r3, 0xE]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080AAB98: .4byte gBattleAnimArgs
-_080AAB9C: .4byte gUnknown_2037EE4
- thumb_func_end sub_80AAB7C
-
- thumb_func_start update_fury_cutter_counter_copy
-update_fury_cutter_counter_copy: @ 80AABA0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080AABB8 @ =gBattleAnimArgs
- ldr r1, _080AABBC @ =gUnknown_2037EE4
- ldr r1, [r1]
- ldrb r1, [r1, 0x10]
- strh r1, [r2, 0xE]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080AABB8: .4byte gBattleAnimArgs
-_080AABBC: .4byte gUnknown_2037EE4
- thumb_func_end update_fury_cutter_counter_copy
-
- thumb_func_start sub_80AABC0
-sub_80AABC0: @ 80AABC0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080AAC48 @ =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 _080AABE8
- ldr r1, _080AAC4C @ =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r5, 0xA]
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0xC]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0xE]
-_080AABE8:
- 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 _080AAC30
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF0
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x50
- bl __umodsi3
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _080AAC50 @ =gUnknown_83E5898
- adds r1, r4, 0
- movs r3, 0x4
- bl CreateSprite
-_080AAC30:
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bne _080AAC42
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080AAC42:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAC48: .4byte gTasks
-_080AAC4C: .4byte gBattleAnimArgs
-_080AAC50: .4byte gUnknown_83E5898
- thumb_func_end sub_80AABC0
-
- thumb_func_start sub_80AAC54
-sub_80AAC54: @ 80AAC54
- ldr r1, _080AAC5C @ =sub_80AAC60
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080AAC5C: .4byte sub_80AAC60
- thumb_func_end sub_80AAC54
-
- thumb_func_start sub_80AAC60
-sub_80AAC60: @ 80AAC60
- 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 _080AAC7E
- ldrh r0, [r2, 0x24]
- adds r0, 0x1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x26]
- adds r0, 0x4
- strh r0, [r2, 0x26]
-_080AAC7E:
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080AAC92
- adds r0, r2, 0
- bl DestroySprite
-_080AAC92:
- pop {r0}
- bx r0
- thumb_func_end sub_80AAC60
-
- thumb_func_start sub_80AAC98
-sub_80AAC98: @ 80AAC98
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r5, _080AACC0 @ =gBattleAnimAttacker
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080AACC8
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _080AACC4 @ =gBattleAnimArgs
- ldrh r1, [r4]
- subs r0, r1
- b _080AACDA
- .align 2, 0
-_080AACC0: .4byte gBattleAnimAttacker
-_080AACC4: .4byte gBattleAnimArgs
-_080AACC8:
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- ldr r4, _080AADA0 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
-_080AACDA:
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- 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, _080AADA4 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080AAD10
- ldr r1, _080AADA0 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080AAD10:
- ldr r5, _080AADA0 @ =gBattleAnimArgs
- ldrh r0, [r5, 0xC]
- strh r0, [r6, 0x2E]
- ldrh r0, [r6, 0x20]
- strh r0, [r6, 0x30]
- ldr r4, _080AADA8 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- 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 sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080AADAC @ =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, _080AADB0 @ =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, _080AADB4 @ =sub_80AADB8
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AADA0: .4byte gBattleAnimArgs
-_080AADA4: .4byte gBattleAnimAttacker
-_080AADA8: .4byte gBattleAnimTarget
-_080AADAC: .4byte SpriteCallbackDummy
-_080AADB0: .4byte gSprites
-_080AADB4: .4byte sub_80AADB8
- thumb_func_end sub_80AAC98
-
- thumb_func_start sub_80AADB8
-sub_80AADB8: @ 80AADB8
- 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, _080AAE20 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r7, r0, r2
- ldrh r4, [r7, 0x36]
- lsls r4, 24
- lsrs r4, 24
- ldrh r0, [r7, 0x34]
- mov r8, r0
- movs r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl sub_80755E0
- 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 _080AAE24
- strh r4, [r7, 0x36]
- b _080AAE2E
- .align 2, 0
-_080AAE20: .4byte gSprites
-_080AAE24:
- ldr r0, _080AAE3C @ =sub_80AAE40
- str r0, [r5, 0x1C]
- adds r0, r7, 0
- bl DestroySprite
-_080AAE2E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAE3C: .4byte sub_80AAE40
- thumb_func_end sub_80AADB8
-
- thumb_func_start sub_80AAE40
-sub_80AAE40: @ 80AAE40
- 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, _080AAE60 @ =sub_8074F6C
- str r1, [r0, 0x1C]
- ldr r1, _080AAE64 @ =sub_80AAE68
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080AAE60: .4byte sub_8074F6C
-_080AAE64: .4byte sub_80AAE68
- thumb_func_end sub_80AAE40
-
- thumb_func_start sub_80AAE68
-sub_80AAE68: @ 80AAE68
- push {lr}
- movs r1, 0xA
- strh r1, [r0, 0x2E]
- ldr r1, _080AAE7C @ =sub_8074C44
- str r1, [r0, 0x1C]
- ldr r1, _080AAE80 @ =move_anim_8074EE0
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080AAE7C: .4byte sub_8074C44
-_080AAE80: .4byte move_anim_8074EE0
- thumb_func_end sub_80AAE68
-
- thumb_func_start sub_80AAE84
-sub_80AAE84: @ 80AAE84
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r0, _080AAEAC @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080AAEB4
- ldr r1, _080AAEB0 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- lsls r0, 16
- lsrs r6, r0, 16
- adds r7, r1, 0
- b _080AAEBA
- .align 2, 0
-_080AAEAC: .4byte gBattleAnimAttacker
-_080AAEB0: .4byte gBattleAnimArgs
-_080AAEB4:
- ldr r0, _080AAF10 @ =gBattleAnimArgs
- ldrh r6, [r0, 0x4]
- adds r7, r0, 0
-_080AAEBA:
- ldrh r0, [r7, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080AAF14 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- 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 sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r7, [r7, 0x6]
- adds r0, r7
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080AAF18 @ =sub_80AAF1C
- 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
- .align 2, 0
-_080AAF10: .4byte gBattleAnimArgs
-_080AAF14: .4byte gBattleAnimTarget
-_080AAF18: .4byte sub_80AAF1C
- thumb_func_end sub_80AAE84
-
- thumb_func_start sub_80AAF1C
-sub_80AAF1C: @ 80AAF1C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080AAF58 @ =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, _080AAF5C @ =0x0000ffff
- cmp r1, r0
- bne _080AAF3E
- 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]
-_080AAF3E:
- adds r0, r4, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _080AAF50
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AAF50:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAF58: .4byte gBattleAnimArgs
-_080AAF5C: .4byte 0x0000ffff
- thumb_func_end sub_80AAF1C
-
- thumb_func_start sub_80AAF60
-sub_80AAF60: @ 80AAF60
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080AAF94 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r0, _080AAF98 @ =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r4, 0x8]
- ldr r0, _080AAF9C @ =0x0000279c
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r4, 0xC]
- ldr r0, _080AAFA0 @ =sub_80AAFA4
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAF94: .4byte gTasks
-_080AAF98: .4byte gBattleAnimArgs
-_080AAF9C: .4byte 0x0000279c
-_080AAFA0: .4byte sub_80AAFA4
- thumb_func_end sub_80AAF60
-
- thumb_func_start sub_80AAFA4
-sub_80AAFA4: @ 80AAFA4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080AB01C @ =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 _080AAFF6
- movs r0, 0
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, _080AB020 @ =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
-_080AAFE0:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080AAFE0
- adds r0, r5, 0x7
- lsls r0, 1
- adds r0, r7
- strh r6, [r0]
-_080AAFF6:
- 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 _080AB016
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080AB016:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB01C: .4byte gTasks
-_080AB020: .4byte gPlttBufferFaded
- thumb_func_end sub_80AAFA4
-
- thumb_func_start sub_80AB024
-sub_80AB024: @ 80AB024
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_8075160
- movs r0, 0x1E
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080AB08C @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- 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 sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- movs r0, 0xD2
- lsls r0, 8
- bl __divsi3
- strh r0, [r5, 0x38]
- ldr r0, _080AB090 @ =gBattleAnimArgs
- ldrh r2, [r0, 0x6]
- strh r2, [r5, 0x3C]
- ldrh r1, [r0, 0xE]
- movs r3, 0xE
- ldrsh r0, [r0, r3]
- cmp r0, 0x7F
- ble _080AB094
- adds r0, r1, 0
- subs r0, 0x7F
- lsls r0, 8
- strh r0, [r5, 0x3A]
- negs r0, r2
- strh r0, [r5, 0x3C]
- b _080AB098
- .align 2, 0
-_080AB08C: .4byte gBattleAnimTarget
-_080AB090: .4byte gBattleAnimArgs
-_080AB094:
- lsls r0, r1, 8
- strh r0, [r5, 0x3A]
-_080AB098:
- ldr r1, _080AB0A8 @ =sub_80AB0AC
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB0A8: .4byte sub_80AB0AC
- thumb_func_end sub_80AB024
-
- thumb_func_start sub_80AB0AC
-sub_80AB0AC: @ 80AB0AC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _080AB0C0
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AB0C0:
- 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 _080AB0F0
- movs r0, 0
- strh r0, [r4, 0x3A]
- ldrh r0, [r4, 0x3C]
- negs r0, r0
- strh r0, [r4, 0x3C]
- b _080AB0F8
-_080AB0F0:
- ldrh r0, [r4, 0x38]
- ldrh r1, [r4, 0x3A]
- adds r0, r1
- strh r0, [r4, 0x3A]
-_080AB0F8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AB0AC
-
- thumb_func_start sub_80AB100
-sub_80AB100: @ 80AB100
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080AB120 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080AB124 @ =gBattleAnimArgs
- ldrh r0, [r3]
- movs r2, 0
- strh r0, [r1, 0x8]
- strh r2, [r3, 0xE]
- ldr r0, _080AB128 @ =sub_80AB12C
- str r0, [r1]
- bx lr
- .align 2, 0
-_080AB120: .4byte gTasks
-_080AB124: .4byte gBattleAnimArgs
-_080AB128: .4byte sub_80AB12C
- thumb_func_end sub_80AB100
-
- thumb_func_start sub_80AB12C
-sub_80AB12C: @ 80AB12C
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080AB160 @ =gBattleAnimArgs
- ldrh r0, [r2, 0xE]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r2, 0xE]
- ldr r1, _080AB164 @ =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 _080AB15A
- adds r0, r3, 0
- bl DestroyAnimVisualTask
-_080AB15A:
- pop {r0}
- bx r0
- .align 2, 0
-_080AB160: .4byte gBattleAnimArgs
-_080AB164: .4byte gTasks
- thumb_func_end sub_80AB12C
-
- thumb_func_start sub_80AB168
-sub_80AB168: @ 80AB168
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r7, _080AB1B4 @ =gBattleAnimAttacker
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r7]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r6, _080AB1B8 @ =0x0000fff6
- strh r6, [r4, 0x26]
- ldrb r0, [r7]
- bl sub_807685C
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080AB1C2
- ldrb r0, [r7]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080AB1BC
- movs r0, 0xA
- strh r0, [r4, 0x24]
- b _080AB1C4
- .align 2, 0
-_080AB1B4: .4byte gBattleAnimAttacker
-_080AB1B8: .4byte 0x0000fff6
-_080AB1BC:
- strh r6, [r4, 0x24]
- subs r0, r5, 0x2
- b _080AB1C6
-_080AB1C2:
- strh r6, [r4, 0x24]
-_080AB1C4:
- adds r0, r5, 0x2
-_080AB1C6:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldr r0, _080AB1D8 @ =sub_80AB1DC
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB1D8: .4byte sub_80AB1DC
- thumb_func_end sub_80AB168
-
- thumb_func_start sub_80AB1DC
-sub_80AB1DC: @ 80AB1DC
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080AB1F2
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080AB1F2:
- pop {r0}
- bx r0
- thumb_func_end sub_80AB1DC
-
- thumb_func_start sub_80AB1F8
-sub_80AB1F8: @ 80AB1F8
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r5, _080AB2B8 @ =gBattleAnimAttacker
- ldrb r0, [r5]
- bl GetBattlerSide
- adds r4, r0, 0
- ldr r0, _080AB2BC @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080AB242
- ldr r4, _080AB2C0 @ =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 _080AB23A
- ldrb r0, [r5]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080AB242
-_080AB23A:
- movs r1, 0
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4]
-_080AB242:
- ldr r5, _080AB2C0 @ =gBattleAnimArgs
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0
- cmp r0, 0
- bne _080AB256
- movs r1, 0x1
-_080AB256:
- ldrb r0, [r5, 0xA]
- movs r7, 0x1
- cmp r0, 0
- bne _080AB260
- movs r7, 0x3
-_080AB260:
- adds r0, r6, 0
- bl sub_8075160
- ldr r0, _080AB2B8 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080AB27A
- ldrh r0, [r5, 0x4]
- negs r0, r0
- strh r0, [r5, 0x4]
-_080AB27A:
- ldrh r0, [r5, 0x8]
- strh r0, [r6, 0x2E]
- ldr r4, _080AB2BC @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- 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 sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x6]
- adds r0, r5
- strh r0, [r6, 0x36]
- ldr r0, _080AB2C4 @ =sub_8075590
- str r0, [r6, 0x1C]
- ldr r1, _080AB2C8 @ =DestroyAnimSprite
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB2B8: .4byte gBattleAnimAttacker
-_080AB2BC: .4byte gBattleAnimTarget
-_080AB2C0: .4byte gBattleAnimArgs
-_080AB2C4: .4byte sub_8075590
-_080AB2C8: .4byte DestroyAnimSprite
- thumb_func_end sub_80AB1F8
-
- thumb_func_start sub_80AB2CC
-sub_80AB2CC: @ 80AB2CC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075114
- ldr r0, _080AB2FC @ =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, _080AB300 @ =sub_8075590
- str r0, [r4, 0x1C]
- ldr r1, _080AB304 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB2FC: .4byte gBattleAnimArgs
-_080AB300: .4byte sub_8075590
-_080AB304: .4byte DestroyAnimSprite
- thumb_func_end sub_80AB2CC
-
- thumb_func_start sub_80AB308
-sub_80AB308: @ 80AB308
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080AB320 @ =gBattleAnimArgs
- movs r1, 0x6
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080AB324
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8075114
- b _080AB32C
- .align 2, 0
-_080AB320: .4byte gBattleAnimArgs
-_080AB324:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8075160
-_080AB32C:
- ldr r0, _080AB33C @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x3C]
- ldr r0, _080AB340 @ =sub_80AB344
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB33C: .4byte gBattleAnimArgs
-_080AB340: .4byte sub_80AB344
- thumb_func_end sub_80AB308
-
- thumb_func_start sub_80AB344
-sub_80AB344: @ 80AB344
- 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 _080AB384
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AB384:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AB344
-
- thumb_func_start sub_80AB38C
-sub_80AB38C: @ 80AB38C
- 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, _080AB3FC @ =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_80752A0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080AB418
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
- ldr r0, _080AB400 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080AB408
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080AB404 @ =gFile_graphics_unknown_unknown_E81D14_tilemap
- bl sub_807543C
- b _080AB42E
- .align 2, 0
-_080AB3FC: .4byte 0x00003f42
-_080AB400: .4byte gBattleAnimAttacker
-_080AB404: .4byte gFile_graphics_unknown_unknown_E81D14_tilemap
-_080AB408:
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080AB414 @ =gFile_graphics_unknown_unknown_E81FE4_tilemap
- bl sub_807543C
- b _080AB42E
- .align 2, 0
-_080AB414: .4byte gFile_graphics_unknown_unknown_E81FE4_tilemap
-_080AB418:
- ldr r0, _080AB458 @ =gFile_graphics_unknown_unknown_E822B8_tilemap
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0x1
- bl sub_80730C0
-_080AB42E:
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080AB45C @ =gFile_graphics_battle_anims_backgrounds_water_sheet
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80753B4
- ldr r0, _080AB460 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080AB468
- ldr r0, _080AB464 @ =gFile_graphics_battle_anims_backgrounds_water_palette
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- b _080AB476
- .align 2, 0
-_080AB458: .4byte gFile_graphics_unknown_unknown_E822B8_tilemap
-_080AB45C: .4byte gFile_graphics_battle_anims_backgrounds_water_sheet
-_080AB460: .4byte gBattleAnimArgs
-_080AB464: .4byte gFile_graphics_battle_anims_backgrounds_water_palette
-_080AB468:
- ldr r0, _080AB4E0 @ =gFile_graphics_battle_anims_backgrounds_water_muddy_palette
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
-_080AB476:
- ldr r0, _080AB4E4 @ =sub_80AB79C
- ldr r4, _080AB4E8 @ =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 sub_8073788
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080AB4F8
- ldr r1, _080AB4EC @ =0x0000ffb0
- adds r0, r1, 0
- ldr r2, _080AB4F0 @ =gBattle_BG1_X
- strh r0, [r2]
- adds r1, 0x20
- adds r0, r1, 0
- ldr r2, _080AB4F4 @ =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 _080AB552
- .align 2, 0
-_080AB4E0: .4byte gFile_graphics_battle_anims_backgrounds_water_muddy_palette
-_080AB4E4: .4byte sub_80AB79C
-_080AB4E8: .4byte gTasks
-_080AB4EC: .4byte 0x0000ffb0
-_080AB4F0: .4byte gBattle_BG1_X
-_080AB4F4: .4byte gBattle_BG1_Y
-_080AB4F8:
- ldr r0, _080AB528 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- bne _080AB53C
- ldr r2, _080AB52C @ =0x0000ff20
- adds r0, r2, 0
- ldr r2, _080AB530 @ =gBattle_BG1_X
- strh r0, [r2]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- ldr r2, _080AB534 @ =gBattle_BG1_Y
- strh r0, [r2]
- movs r0, 0x2
- strh r0, [r6, 0x8]
- ldr r0, _080AB538 @ =0x0000ffff
- strh r0, [r6, 0xA]
- strh r1, [r7, 0xE]
- b _080AB552
- .align 2, 0
-_080AB528: .4byte gBattleAnimAttacker
-_080AB52C: .4byte 0x0000ff20
-_080AB530: .4byte gBattle_BG1_X
-_080AB534: .4byte gBattle_BG1_Y
-_080AB538: .4byte 0x0000ffff
-_080AB53C:
- ldr r0, _080AB584 @ =gBattle_BG1_X
- strh r4, [r0]
- ldr r1, _080AB588 @ =0x0000ffd0
- adds r0, r1, 0
- ldr r2, _080AB58C @ =gBattle_BG1_Y
- strh r0, [r2]
- ldr r0, _080AB590 @ =0x0000fffe
- strh r0, [r6, 0x8]
- movs r0, 0x1
- strh r0, [r6, 0xA]
- strh r4, [r7, 0xE]
-_080AB552:
- ldr r0, _080AB584 @ =gBattle_BG1_X
- ldrh r1, [r0]
- movs r0, 0x14
- bl SetGpuReg
- ldr r2, _080AB58C @ =gBattle_BG1_Y
- ldrh r1, [r2]
- movs r0, 0x16
- bl SetGpuReg
- ldr r1, _080AB594 @ =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 _080AB598
- movs r0, 0x30
- strh r0, [r1, 0x10]
- movs r0, 0x70
- b _080AB59C
- .align 2, 0
-_080AB584: .4byte gBattle_BG1_X
-_080AB588: .4byte 0x0000ffd0
-_080AB58C: .4byte gBattle_BG1_Y
-_080AB590: .4byte 0x0000fffe
-_080AB594: .4byte gTasks
-_080AB598:
- movs r0, 0
- strh r0, [r1, 0x10]
-_080AB59C:
- strh r0, [r1, 0x12]
- ldr r1, _080AB5C0 @ =gTasks
- mov r2, r10
- adds r0, r5, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x14]
- ldr r1, _080AB5C4 @ =sub_80AB5C8
- 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
- .align 2, 0
-_080AB5C0: .4byte gTasks
-_080AB5C4: .4byte sub_80AB5C8
- thumb_func_end sub_80AB38C
-
- thumb_func_start sub_80AB5C8
-sub_80AB5C8: @ 80AB5C8
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080AB6F4 @ =gBattle_BG1_X
- ldr r2, _080AB6F8 @ =gBattle_BG1_Y
- ldr r0, _080AB6FC @ =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_80752A0
- 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 _080AB65C
- ldr r1, _080AB700 @ =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
-_080AB622:
- 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 _080AB622
- mov r0, sp
- ldrb r0, [r0, 0x8]
- lsls r0, 4
- adds r0, 0x1
- lsls r0, 1
- adds r0, r7
- strh r6, [r0]
- ldr r1, _080AB6FC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x12]
-_080AB65C:
- ldr r1, _080AB6FC @ =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 _080AB6CA
- 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 _080AB6A6
- 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]
-_080AB6A6:
- movs r1, 0xE
- ldrsh r0, [r3, r1]
- cmp r0, 0x36
- ble _080AB6CA
- 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]
-_080AB6CA:
- 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 _080AB6EC
- strh r3, [r2, 0x8]
- ldr r0, _080AB704 @ =sub_80AB708
- str r0, [r2]
-_080AB6EC:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB6F4: .4byte gBattle_BG1_X
-_080AB6F8: .4byte gBattle_BG1_Y
-_080AB6FC: .4byte gTasks
-_080AB700: .4byte gPlttBufferFaded
-_080AB704: .4byte sub_80AB708
- thumb_func_end sub_80AB5C8
-
- thumb_func_start sub_80AB708
-sub_80AB708: @ 80AB708
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r7, _080AB740 @ =gBattle_BG1_X
- ldr r0, _080AB744 @ =gBattle_BG1_Y
- mov r8, r0
- ldr r6, _080AB748 @ =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 _080AB74C
- movs r0, 0x1
- bl sub_8075358
- movs r0, 0x2
- bl sub_8075358
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080AB78E
- .align 2, 0
-_080AB740: .4byte gBattle_BG1_X
-_080AB744: .4byte gBattle_BG1_Y
-_080AB748: .4byte gTasks
-_080AB74C:
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080AB760
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_080AB760:
- 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, _080AB798 @ =0x0000ffff
- strh r1, [r0, 0x26]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080AB78E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB798: .4byte 0x0000ffff
- thumb_func_end sub_80AB708
-
- thumb_func_start sub_80AB79C
-sub_80AB79C: @ 80AB79C
- 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, _080AB7C4 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080AB7B8
- b _080AB8F0
-_080AB7B8:
- cmp r0, 0x1
- bgt _080AB7C8
- cmp r0, 0
- beq _080AB7D0
- b _080ABA66
- .align 2, 0
-_080AB7C4: .4byte gTasks
-_080AB7C8:
- cmp r0, 0x2
- bne _080AB7CE
- b _080AB9BC
-_080AB7CE:
- b _080ABA66
-_080AB7D0:
- movs r3, 0
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- ldr r1, _080AB8A0 @ =gScanlineEffectRegBuffers
- mov r12, r1
- cmp r3, r0
- bge _080AB80E
- mov r7, r12
- movs r5, 0xF0
- lsls r5, 3
- add r5, r12
- ldr r6, _080AB8A4 @ =0x0000ffff
-_080AB7E8:
- 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 _080AB7E8
-_080AB80E:
- ldrh r3, [r4, 0x10]
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080AB848
- ldr r5, _080AB8A0 @ =gScanlineEffectRegBuffers
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
- ldr r7, _080AB8A4 @ =0x0000ffff
-_080AB826:
- 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 _080AB826
-_080AB848:
- ldrh r3, [r4, 0x12]
- lsls r2, r3, 16
- asrs r0, r2, 16
- cmp r0, 0x9F
- bgt _080AB87E
- ldr r5, _080AB8A0 @ =gScanlineEffectRegBuffers
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
- ldr r7, _080AB8A4 @ =0x0000ffff
-_080AB85C:
- 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 _080AB85C
-_080AB87E:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AB8A8
- 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 _080AB8BE
- .align 2, 0
-_080AB8A0: .4byte gScanlineEffectRegBuffers
-_080AB8A4: .4byte 0x0000ffff
-_080AB8A8:
- 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]
-_080AB8BE:
- strh r0, [r2]
- ldr r0, _080AB8E8 @ =0x04000052
- str r0, [sp]
- ldr r0, _080AB8EC @ =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 _080ABA66
- .align 2, 0
-_080AB8E8: .4byte 0x04000052
-_080AB8EC: .4byte 0xa2600001
-_080AB8F0:
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _080AB908
- ldrh r0, [r4, 0x10]
- subs r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bgt _080AB91C
- strh r1, [r4, 0x10]
- b _080AB916
-_080AB908:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6F
- ble _080AB91C
-_080AB916:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080AB91C:
- movs r3, 0
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- bge _080AB950
- ldr r6, _080AB9B4 @ =gScanlineEffectRegBuffers
- ldr r5, _080AB9B8 @ =gScanlineEffect
-_080AB92A:
- 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 _080AB92A
-_080AB950:
- ldrh r3, [r4, 0x10]
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080AB984
- ldr r6, _080AB9B4 @ =gScanlineEffectRegBuffers
- ldr r5, _080AB9B8 @ =gScanlineEffect
-_080AB962:
- 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 _080AB962
-_080AB984:
- ldrh r3, [r4, 0x12]
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- bgt _080ABA66
- ldr r6, _080AB9B4 @ =gScanlineEffectRegBuffers
- ldr r5, _080AB9B8 @ =gScanlineEffect
-_080AB992:
- 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 _080AB992
- b _080ABA66
- .align 2, 0
-_080AB9B4: .4byte gScanlineEffectRegBuffers
-_080AB9B8: .4byte gScanlineEffect
-_080AB9BC:
- movs r3, 0
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- bge _080AB9F0
- ldr r6, _080ABA70 @ =gScanlineEffectRegBuffers
- ldr r5, _080ABA74 @ =gScanlineEffect
-_080AB9CA:
- 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 _080AB9CA
-_080AB9F0:
- ldrh r3, [r4, 0x10]
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080ABA24
- ldr r6, _080ABA70 @ =gScanlineEffectRegBuffers
- ldr r5, _080ABA74 @ =gScanlineEffect
-_080ABA02:
- 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 _080ABA02
-_080ABA24:
- ldrh r3, [r4, 0x12]
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- bgt _080ABA50
- ldr r6, _080ABA70 @ =gScanlineEffectRegBuffers
- ldr r5, _080ABA74 @ =gScanlineEffect
-_080ABA32:
- 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 _080ABA32
-_080ABA50:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080ABA66
- bl ScanlineEffect_Stop
- adds r0, r7, 0
- bl DestroyTask
-_080ABA66:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ABA70: .4byte gScanlineEffectRegBuffers
-_080ABA74: .4byte gScanlineEffect
- thumb_func_end sub_80AB79C
-
- thumb_func_start sub_80ABA78
-sub_80ABA78: @ 80ABA78
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r3, _080ABACC @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080ABAD0 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8075114
- bl Random
- movs r5, 0xFF
- ands r5, r0
- movs r0, 0x80
- lsls r0, 1
- adds r6, r0, 0
- orrs r5, r6
- bl Random
- ldr r1, _080ABAD4 @ =0x000001ff
- ands r1, r0
- adds r0, r1, 0
- cmp r0, 0xFF
- ble _080ABABE
- subs r0, r6, r0
- lsls r0, 16
- lsrs r1, r0, 16
-_080ABABE:
- strh r5, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldr r0, _080ABAD8 @ =sub_80ABADC
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080ABACC: .4byte 0x000003ff
-_080ABAD0: .4byte 0xfffffc00
-_080ABAD4: .4byte 0x000001ff
-_080ABAD8: .4byte sub_80ABADC
- thumb_func_end sub_80ABA78
-
- thumb_func_start sub_80ABADC
-sub_80ABADC: @ 80ABADC
- 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 _080ABB00
- lsls r0, r3, 16
- asrs r0, 24
- negs r0, r0
- b _080ABB04
-_080ABB00:
- lsls r0, r3, 16
- asrs r0, 24
-_080ABB04:
- 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 _080ABB22
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080ABB22:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80ABADC
-
- thumb_func_start sub_80ABB28
-sub_80ABB28: @ 80ABB28
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080ABB78 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r2, _080ABB7C @ =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_80ABDC8
- 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_80758E0
- ldr r0, _080ABB80 @ =sub_80ABB84
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ABB78: .4byte gTasks
-_080ABB7C: .4byte gSprites
-_080ABB80: .4byte sub_80ABB84
- thumb_func_end sub_80ABB28
-
- thumb_func_start sub_80ABB84
-sub_80ABB84: @ 80ABB84
- 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, _080ABBAC @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bls _080ABBA0
- b _080ABDBE
-_080ABBA0:
- lsls r0, 2
- ldr r1, _080ABBB0 @ =_080ABBB4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ABBAC: .4byte gTasks
-_080ABBB0: .4byte _080ABBB4
- .align 2, 0
-_080ABBB4:
- .4byte _080ABBD4
- .4byte _080ABBFA
- .4byte _080ABC8C
- .4byte _080ABCC2
- .4byte _080ABCD6
- .4byte _080ABCE4
- .4byte _080ABD64
- .4byte _080ABDB0
-_080ABBD4:
- 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_80765D4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080ABBFA:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080ABC56
- 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 _080ABC44
- ldr r2, _080ABC40 @ =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 _080ABC56
- .align 2, 0
-_080ABC40: .4byte gSprites
-_080ABC44:
- ldr r2, _080ABC84 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _080ABC88 @ =0x0000fffd
- strh r1, [r0, 0x24]
-_080ABC56:
- adds r0, r4, 0
- bl sub_8076640
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _080ABC66
- b _080ABDBE
-_080ABC66:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8076440
- ldr r2, _080ABC84 @ =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 _080ABDA0
- .align 2, 0
-_080ABC84: .4byte gSprites
-_080ABC88: .4byte 0x0000fffd
-_080ABC8C:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _080ABC9C
- b _080ABDBE
-_080ABC9C:
- 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_80765D4
- movs r0, 0
- strh r0, [r4, 0xE]
- b _080ABDA2
-_080ABCC2:
- adds r0, r4, 0
- bl sub_8076640
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080ABDBE
- strh r0, [r4, 0xE]
- strh r0, [r4, 0x10]
- b _080ABDA2
-_080ABCD6:
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80ABE4C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080ABCE4:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080ABDBE
- 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 _080ABD1C
- ldr r2, _080ABD18 @ =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 _080ABD2E
- .align 2, 0
-_080ABD18: .4byte gSprites
-_080ABD1C:
- ldr r2, _080ABD60 @ =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
-_080ABD2E:
- strh r1, [r0, 0x26]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0xA
- bne _080ABDBE
- 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_80765D4
- movs r0, 0
- strh r0, [r4, 0xE]
- strh r0, [r4, 0x10]
- b _080ABDA2
- .align 2, 0
-_080ABD60: .4byte gSprites
-_080ABD64:
- ldr r6, _080ABDAC @ =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_8076640
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080ABDBE
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8075980
- 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]
-_080ABDA0:
- strh r5, [r4, 0x10]
-_080ABDA2:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080ABDBE
- .align 2, 0
-_080ABDAC: .4byte gSprites
-_080ABDB0:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080ABDBE
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080ABDBE:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80ABB84
-
- thumb_func_start sub_80ABDC8
-sub_80ABDC8: @ 80ABDC8
- push {r4,r5,lr}
- ldr r4, _080ABDEC @ =gBattleAnimAttacker
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080ABDFC
- ldr r1, _080ABDF0 @ =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080ABDF4 @ =gPlayerParty
- b _080ABE0C
- .align 2, 0
-_080ABDEC: .4byte gBattleAnimAttacker
-_080ABDF0: .4byte gBattlerPartyIndexes
-_080ABDF4: .4byte gPlayerParty
-_080ABDF8:
- adds r0, r2, 0
- b _080ABE3E
-_080ABDFC:
- ldr r1, _080ABE44 @ =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080ABE48 @ =gEnemyParty
-_080ABE0C:
- 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
-_080ABE2A:
- adds r1, r2, 0x1
- adds r0, r4, 0
- muls r0, r1
- cmp r3, r0
- blt _080ABDF8
- lsls r0, r1, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _080ABE2A
- movs r0, 0x3
-_080ABE3E:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080ABE44: .4byte gBattlerPartyIndexes
-_080ABE48: .4byte gEnemyParty
- thumb_func_end sub_80ABDC8
-
- thumb_func_start sub_80ABE4C
-sub_80ABE4C: @ 80ABE4C
- 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, _080ABF54 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0xAC
- ldrb r0, [r4]
- bl sub_807685C
- 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 _080ABE9C
- movs r1, 0x1
-_080ABE9C:
- 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
-_080ABEB6:
- ldr r0, _080ABF58 @ =gUnknown_83E5AE0
- 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 _080ABF1E
- ldr r1, _080ABF5C @ =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 _080ABF18
- adds r0, r5, 0
- bl sub_80ABF60
-_080ABF18:
- ldrh r0, [r7, 0xC]
- adds r0, 0x1
- strh r0, [r7, 0xC]
-_080ABF1E:
- 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 _080ABEB6
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ABF54: .4byte gBattleAnimAttacker
-_080ABF58: .4byte gUnknown_83E5AE0
-_080ABF5C: .4byte gSprites
- thumb_func_end sub_80ABE4C
-
- thumb_func_start sub_80ABF60
-sub_80ABF60: @ 80ABF60
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080ABF72
- cmp r0, 0x1
- beq _080ABFA8
- b _080AC002
-_080ABF72:
- 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]
-_080ABFA8:
- 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 _080ABFDE
- adds r1, r2, 0
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- blt _080ABFDE
- cmp r1, 0x78
- ble _080AC002
-_080ABFDE:
- ldr r3, _080AC008 @ =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
-_080AC002:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC008: .4byte gTasks
- thumb_func_end sub_80ABF60
-
- thumb_func_start sub_80AC00C
-sub_80AC00C: @ 80AC00C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080AC03C @ =gTasks
- adds r4, r1, r0
- bl sub_80ABDC8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- ldr r0, _080AC040 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080AC044
- movs r0, 0x88
- strh r0, [r4, 0x10]
- movs r0, 0x28
- b _080AC04A
- .align 2, 0
-_080AC03C: .4byte gTasks
-_080AC040: .4byte gBattleAnimAttacker
-_080AC044:
- movs r0, 0x10
- strh r0, [r4, 0x10]
- movs r0, 0x50
-_080AC04A:
- 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, _080AC06C @ =sub_80AC070
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC06C: .4byte sub_80AC070
- thumb_func_end sub_80AC00C
-
- thumb_func_start sub_80AC070
-sub_80AC070: @ 80AC070
- 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, _080AC094 @ =gTasks
- adds r4, r0, r7
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0
- beq _080AC098
- cmp r2, 0x1
- beq _080AC148
- b _080AC156
- .align 2, 0
-_080AC094: .4byte gTasks
-_080AC098:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080AC0AE
- strh r2, [r4, 0xC]
- adds r0, r4, 0
- bl sub_80AC160
-_080AC0AE:
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080AC128
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080AC128
- ldr r5, _080AC13C @ =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, _080AC140 @ =sub_80B94B4
- adds r0, r6, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080AC0F8
- 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, _080AC144 @ =gUnknown_2037EE2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080AC0F8:
- 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 _080AC124
- 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, _080AC144 @ =gUnknown_2037EE2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080AC124:
- mov r0, r8
- strh r0, [r4, 0x22]
-_080AC128:
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _080AC156
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080AC156
- .align 2, 0
-_080AC13C: .4byte gBattleAnimArgs
-_080AC140: .4byte sub_80B94B4
-_080AC144: .4byte gUnknown_2037EE2
-_080AC148:
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080AC156
- adds r0, r1, 0
- bl DestroyAnimVisualTask
-_080AC156:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80AC070
-
- thumb_func_start sub_80AC160
-sub_80AC160: @ 80AC160
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r1, _080AC1EC @ =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, _080AC1F0 @ =gUnknown_83E5AE0
- 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 _080AC1BA
- ldr r3, _080AC1F4 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, _080AC1F8 @ =sub_80AC204
- 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]
-_080AC1BA:
- 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, _080AC1FC @ =0x41c64e6d
- muls r0, r1
- ldr r1, _080AC200 @ =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
- .align 2, 0
-_080AC1EC: .4byte gSineTable
-_080AC1F0: .4byte gUnknown_83E5AE0
-_080AC1F4: .4byte gSprites
-_080AC1F8: .4byte sub_80AC204
-_080AC1FC: .4byte 0x41c64e6d
-_080AC200: .4byte 0x00003039
- thumb_func_end sub_80AC160
-
- thumb_func_start sub_80AC204
-sub_80AC204: @ 80AC204
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080AC29A
- 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 _080AC29A
- ldr r2, _080AC2A0 @ =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, _080AC2A4 @ =gUnknown_83E7C38
- 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 _080AC294
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080AC2A8 @ =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, _080AC2AC @ =sub_80AC2B0
- str r1, [r0]
-_080AC294:
- adds r0, r5, 0
- bl DestroySprite
-_080AC29A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC2A0: .4byte gTasks
-_080AC2A4: .4byte gUnknown_83E7C38
-_080AC2A8: .4byte gSprites
-_080AC2AC: .4byte sub_80AC2B0
- thumb_func_end sub_80AC204
-
- thumb_func_start sub_80AC2B0
-sub_80AC2B0: @ 80AC2B0
- 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 _080AC31C
- 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 _080AC31C
- ldr r3, _080AC324 @ =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
-_080AC31C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC324: .4byte gTasks
- thumb_func_end sub_80AC2B0
-
- thumb_func_start sub_80AC328
-sub_80AC328: @ 80AC328
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080AC3AC @ =gTasks
- adds r5, r1, r0
- ldr r4, _080AC3B0 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r5, 0xE]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- 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 _080AC36C
- movs r1, 0x1
-_080AC36C:
- strh r1, [r5, 0x16]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- beq _080AC380
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- negs r0, r0
- strh r0, [r5, 0x16]
-_080AC380:
- 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, _080AC3B4 @ =0x0000ffe0
- strh r0, [r5, 0x1A]
- strh r6, [r5, 0xA]
- strh r6, [r5, 0x8]
- ldr r0, _080AC3B8 @ =sub_80AC3BC
- str r0, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC3AC: .4byte gTasks
-_080AC3B0: .4byte gBattleAnimAttacker
-_080AC3B4: .4byte 0x0000ffe0
-_080AC3B8: .4byte sub_80AC3BC
- thumb_func_end sub_80AC328
-
- thumb_func_start sub_80AC3BC
-sub_80AC3BC: @ 80AC3BC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080AC3E0 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bls _080AC3D6
- b _080AC4F6
-_080AC3D6:
- lsls r0, 2
- ldr r1, _080AC3E4 @ =_080AC3E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080AC3E0: .4byte gTasks
-_080AC3E4: .4byte _080AC3E8
- .align 2, 0
-_080AC3E8:
- .4byte _080AC404
- .4byte _080AC414
- .4byte _080AC42E
- .4byte _080AC470
- .4byte _080AC492
- .4byte _080AC4C0
- .4byte _080AC4E6
-_080AC404:
- adds r0, r4, 0
- bl sub_80AC504
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080AC4FC
- b _080AC4EE
-_080AC414:
- adds r0, r4, 0
- bl sub_80AC504
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080AC4FC
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080AC4EE
-_080AC42E:
- adds r0, r4, 0
- bl sub_80AC504
- 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 _080AC4FC
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080AC46C
- movs r0, 0x1
- strh r0, [r4, 0x22]
- movs r0, 0x6
- strh r0, [r4, 0x8]
- strh r2, [r4, 0xA]
- b _080AC4FC
-_080AC46C:
- strh r2, [r4, 0xA]
- b _080AC4EE
-_080AC470:
- adds r0, r4, 0
- bl sub_80AC504
- 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 _080AC4FC
- b _080AC4EE
-_080AC492:
- adds r0, r4, 0
- bl sub_80AC504
- 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 _080AC4FC
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080AC4EE
-_080AC4C0:
- adds r0, r4, 0
- bl sub_80AC504
- 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 _080AC4FC
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080AC4FC
-_080AC4E6:
- movs r1, 0x18
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AC4FC
-_080AC4EE:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080AC4FC
-_080AC4F6:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080AC4FC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AC3BC
-
- thumb_func_start sub_80AC504
-sub_80AC504: @ 80AC504
- 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 _080AC55E
- movs r0, 0
- strh r0, [r6, 0xC]
- ldr r0, _080AC564 @ =gUnknown_83E5AE0
- 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 _080AC55E
- ldr r5, _080AC568 @ =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_8075068
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _080AC56C @ =sub_80AC570
- str r0, [r4]
- ldrh r0, [r6, 0x18]
- adds r0, 0x1
- strh r0, [r6, 0x18]
-_080AC55E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC564: .4byte gUnknown_83E5AE0
-_080AC568: .4byte gSprites
-_080AC56C: .4byte sub_80AC570
- thumb_func_end sub_80AC504
-
- thumb_func_start sub_80AC570
-sub_80AC570: @ 80AC570
- push {r4-r6,lr}
- adds r6, r0, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080AC5CA
- 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 Random
- movs r4, 0x1F
- adds r1, r4, 0
- ands r1, r0
- ldr r5, _080AC5D0 @ =0x0000fff0
- adds r1, r5
- ldrh r0, [r6, 0x20]
- adds r1, r0
- strh r1, [r6, 0x32]
- bl Random
- ands r4, r0
- adds r4, r5
- ldrh r1, [r6, 0x22]
- adds r4, r1
- strh r4, [r6, 0x36]
- bl Random
- movs r1, 0x7
- ands r1, r0
- mvns r1, r1
- strh r1, [r6, 0x38]
- adds r0, r6, 0
- bl sub_8075068
- ldr r0, _080AC5D4 @ =sub_80AC5D8
- str r0, [r6, 0x1C]
-_080AC5CA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC5D0: .4byte 0x0000fff0
-_080AC5D4: .4byte sub_80AC5D8
- thumb_func_end sub_80AC570
-
- thumb_func_start sub_80AC5D8
-sub_80AC5D8: @ 80AC5D8
- push {r4-r6,lr}
- adds r5, r0, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _080AC614
- movs r4, 0
- ldr r6, _080AC61C @ =gTasks
-_080AC5EA:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r6
- ldr r1, [r2]
- ldr r0, _080AC620 @ =sub_80AC3BC
- cmp r1, r0
- bne _080AC60A
- movs r0, 0x1
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0x18]
- subs r0, 0x1
- strh r0, [r2, 0x18]
- adds r0, r5, 0
- bl DestroySprite
-_080AC60A:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _080AC5EA
-_080AC614:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC61C: .4byte gTasks
-_080AC620: .4byte sub_80AC3BC
- thumb_func_end sub_80AC5D8
-
- thumb_func_start sub_80AC624
-sub_80AC624: @ 80AC624
- ldr r2, _080AC644 @ =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, _080AC648 @ =sub_80AC64C
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080AC644: .4byte gBattleAnimArgs
-_080AC648: .4byte sub_80AC64C
- thumb_func_end sub_80AC624
-
- thumb_func_start sub_80AC64C
-sub_80AC64C: @ 80AC64C
- 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 _080AC690
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AC690:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AC64C
-
- thumb_func_start sub_80AC698
-sub_80AC698: @ 80AC698
- 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 _080AC6D0
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080AC6D0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AC698
-
- thumb_func_start sub_80AC6D8
-sub_80AC6D8: @ 80AC6D8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r5, _080AC714 @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x30]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldr r1, _080AC718 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldr r0, _080AC71C @ =sub_80AC720
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC714: .4byte gBattleAnimTarget
-_080AC718: .4byte gBattleAnimArgs
-_080AC71C: .4byte sub_80AC720
- thumb_func_end sub_80AC6D8
-
- thumb_func_start sub_80AC720
-sub_80AC720: @ 80AC720
- 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 _080AC778
- movs r0, 0
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80AC798
-_080AC778:
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080AC78A
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AC78A:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80AC720
-
- thumb_func_start sub_80AC798
-sub_80AC798: @ 80AC798
- 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 Random
- 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 Random
- 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
-_080AC826:
- ldr r0, _080AC868 @ =gUnknown_83E5B88
- 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, _080AC86C @ =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, _080AC870 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_807685C
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- cmp r5, 0
- bge _080AC874
- mov r1, sp
- ldrh r1, [r1, 0x4]
- strh r1, [r4, 0x32]
- b _080AC876
- .align 2, 0
-_080AC868: .4byte gUnknown_83E5B88
-_080AC86C: .4byte gSprites
-_080AC870: .4byte gBattleAnimAttacker
-_080AC874:
- strh r7, [r4, 0x32]
-_080AC876:
- lsls r0, r6, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- lsrs r6, r0, 16
- cmp r0, 0
- ble _080AC826
- 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
-_080AC89C:
- ldr r0, _080AC8E0 @ =gUnknown_83E5B88
- 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, _080AC8E4 @ =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, _080AC8E8 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_807685C
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- cmp r5, 0
- ble _080AC8EC
- mov r1, sp
- ldrh r1, [r1, 0x8]
- strh r1, [r4, 0x32]
- b _080AC8EE
- .align 2, 0
-_080AC8E0: .4byte gUnknown_83E5B88
-_080AC8E4: .4byte gSprites
-_080AC8E8: .4byte gBattleAnimAttacker
-_080AC8EC:
- strh r7, [r4, 0x32]
-_080AC8EE:
- lsls r0, r6, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- lsrs r6, r0, 16
- cmp r0, 0
- ble _080AC89C
- 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_80AC798
-
- thumb_func_start sub_80AC90C
-sub_80AC90C: @ 80AC90C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080AC940 @ =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, _080AC944 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r1, _080AC948 @ =sub_8074AE0
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC940: .4byte gBattleAnimArgs
-_080AC944: .4byte DestroyAnimSprite
-_080AC948: .4byte sub_8074AE0
- thumb_func_end sub_80AC90C
-
- thumb_func_start sub_80AC94C
-sub_80AC94C: @ 80AC94C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080AC984 @ =gBattleAnimArgs
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_8074FF8
- 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, _080AC988 @ =sub_8074D00
- str r0, [r4, 0x1C]
- ldr r1, _080AC98C @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC984: .4byte gBattleAnimArgs
-_080AC988: .4byte sub_8074D00
-_080AC98C: .4byte DestroyAnimSprite
- thumb_func_end sub_80AC94C
-
- thumb_func_start sub_80AC990
-sub_80AC990: @ 80AC990
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8074FCC
- ldr r0, _080AC9C4 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080AC9CC
- ldr r2, _080AC9C8 @ =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 _080AC9E2
- .align 2, 0
-_080AC9C4: .4byte gBattleAnimAttacker
-_080AC9C8: .4byte gBattleAnimArgs
-_080AC9CC:
- ldr r1, _080AC9F8 @ =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]
-_080AC9E2:
- 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, _080AC9FC @ =sub_80ACA6C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC9F8: .4byte gBattleAnimArgs
-_080AC9FC: .4byte sub_80ACA6C
- thumb_func_end sub_80AC990
-
- thumb_func_start sub_80ACA00
-sub_80ACA00: @ 80ACA00
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080ACA2C @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080ACA34
- ldr r2, _080ACA30 @ =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 _080ACA4C
- .align 2, 0
-_080ACA2C: .4byte gBattleAnimAttacker
-_080ACA30: .4byte gBattleAnimArgs
-_080ACA34:
- ldr r1, _080ACA64 @ =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]
-_080ACA4C:
- 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, _080ACA68 @ =sub_80ACA6C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACA64: .4byte gBattleAnimArgs
-_080ACA68: .4byte sub_80ACA6C
- thumb_func_end sub_80ACA00
-
- thumb_func_start sub_80ACA6C
-sub_80ACA6C: @ 80ACA6C
- 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 _080ACA92
- 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]
-_080ACA92:
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bne _080ACAA4
- adds r0, r2, 0
- bl move_anim_8074EE0
-_080ACAA4:
- pop {r0}
- bx r0
- thumb_func_end sub_80ACA6C
-
- thumb_func_start sub_80ACAA8
-sub_80ACAA8: @ 80ACAA8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8074FCC
- ldr r0, _080ACACC @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080ACAD4
- ldr r0, _080ACAD0 @ =gBattleAnimArgs
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- b _080ACAE6
- .align 2, 0
-_080ACACC: .4byte gBattleAnimAttacker
-_080ACAD0: .4byte gBattleAnimArgs
-_080ACAD4:
- ldr r0, _080ACB14 @ =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]
-_080ACAE6:
- 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, _080ACB18 @ =sub_80ACB1C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACB14: .4byte gBattleAnimArgs
-_080ACB18: .4byte sub_80ACB1C
- thumb_func_end sub_80ACAA8
-
- thumb_func_start sub_80ACB1C
-sub_80ACB1C: @ 80ACB1C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080ACBA4
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- ldr r0, _080ACB88 @ =0x00002710
- cmp r1, r0
- ble _080ACB3A
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1
- strb r0, [r1]
-_080ACB3A:
- 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 _080ACB90
- ldr r2, _080ACB8C @ =0xffffff00
- b _080ACB98
- .align 2, 0
-_080ACB88: .4byte 0x00002710
-_080ACB8C: .4byte 0xffffff00
-_080ACB90:
- cmp r0, 0
- bge _080ACB9C
- movs r2, 0x80
- lsls r2, 1
-_080ACB98:
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
-_080ACB9C:
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _080ACBAA
-_080ACBA4:
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080ACBAA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80ACB1C
-
- thumb_func_start sub_80ACBB0
-sub_80ACBB0: @ 80ACBB0
- 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, _080ACBD4 @ =sub_8075590
- str r1, [r0, 0x1C]
- ldr r1, _080ACBD8 @ =DestroyAnimSprite
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080ACBD4: .4byte sub_8075590
-_080ACBD8: .4byte DestroyAnimSprite
- thumb_func_end sub_80ACBB0
-
- thumb_func_start sub_80ACBDC
-sub_80ACBDC: @ 80ACBDC
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r5, _080ACC34 @ =gBattleAnimAttacker
- ldrb r0, [r5]
- bl GetBattlerSide
- adds r4, r0, 0
- ldr r0, _080ACC38 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080ACC22
- movs r0, 0x2
- bl GetBattlerAtPosition
- ldrb r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- beq _080ACC1A
- movs r0, 0x3
- bl GetBattlerAtPosition
- ldrb r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _080ACC22
-_080ACC1A:
- ldr r1, _080ACC3C @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080ACC22:
- ldr r1, _080ACC40 @ =sub_8075F0C
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACC34: .4byte gBattleAnimAttacker
-_080ACC38: .4byte gBattleAnimTarget
-_080ACC3C: .4byte gBattleAnimArgs
-_080ACC40: .4byte sub_8075F0C
- thumb_func_end sub_80ACBDC
-
- thumb_func_start sub_80ACC44
-sub_80ACC44: @ 80ACC44
- ldr r2, _080ACC58 @ =gBattleAnimArgs
- ldrh r1, [r2]
- negs r1, r1
- strh r1, [r2]
- ldrh r1, [r2, 0x4]
- negs r1, r1
- strh r1, [r2, 0x4]
- ldr r1, _080ACC5C @ =sub_8075F0C
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080ACC58: .4byte gBattleAnimArgs
-_080ACC5C: .4byte sub_8075F0C
- thumb_func_end sub_80ACC44
-
- thumb_func_start sub_80ACC60
-sub_80ACC60: @ 80ACC60
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r0, _080ACC80 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- movs r1, 0
- strh r0, [r4, 0x3C]
- strh r1, [r4, 0x2E]
- ldr r0, _080ACC84 @ =sub_80ACC88
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACC80: .4byte gBattleAnimArgs
-_080ACC84: .4byte sub_80ACC88
- thumb_func_end sub_80ACC60
-
- thumb_func_start sub_80ACC88
-sub_80ACC88: @ 80ACC88
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_80ACD7C
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x12
- bne _080ACCD2
- movs r0, 0x19
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080ACCD8 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- 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 sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080ACCDC @ =sub_80ACCE0
- str r0, [r5, 0x1C]
-_080ACCD2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACCD8: .4byte gBattleAnimTarget
-_080ACCDC: .4byte sub_80ACCE0
- thumb_func_end sub_80ACC88
-
- thumb_func_start sub_80ACCE0
-sub_80ACCE0: @ 80ACCE0
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _080ACD28
- movs r4, 0
- strh r4, [r6, 0x2E]
- ldr r5, _080ACD20 @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x22]
- strh r4, [r6, 0x26]
- strh r4, [r6, 0x24]
- ldr r1, _080ACD24 @ =sub_80ACD58
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- b _080ACD52
- .align 2, 0
-_080ACD20: .4byte gBattleAnimTarget
-_080ACD24: .4byte sub_80ACD58
-_080ACD28:
- 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]
-_080ACD52:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80ACCE0
-
- thumb_func_start sub_80ACD58
-sub_80ACD58: @ 80ACD58
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80ACD7C
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _080ACD74
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080ACD74:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80ACD58
-
- thumb_func_start sub_80ACD7C
-sub_80ACD7C: @ 80ACD7C
- 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_80ACD7C
-
- thumb_func_start sub_80ACDA8
-sub_80ACDA8: @ 80ACDA8
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080ACDDC @ =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, _080ACDE0 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080ACDE4 @ =sub_8074CD0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACDDC: .4byte gBattleAnimArgs
-_080ACDE0: .4byte DestroyAnimSprite
-_080ACDE4: .4byte sub_8074CD0
- thumb_func_end sub_80ACDA8
-
- thumb_func_start sub_80ACDE8
-sub_80ACDE8: @ 80ACDE8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r1, _080ACE1C @ =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, _080ACE20 @ =sub_8074C44
- str r0, [r4, 0x1C]
- ldr r1, _080ACE24 @ =sub_80ACE28
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACE1C: .4byte gBattleAnimArgs
-_080ACE20: .4byte sub_8074C44
-_080ACE24: .4byte sub_80ACE28
- thumb_func_end sub_80ACDE8
-
- thumb_func_start sub_80ACE28
-sub_80ACE28: @ 80ACE28
- 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, _080ACE4C @ =sub_80ACE50
- str r1, [r0, 0x1C]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080ACE4C: .4byte sub_80ACE50
- thumb_func_end sub_80ACE28
-
- thumb_func_start sub_80ACE50
-sub_80ACE50: @ 80ACE50
- 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 _080ACE9C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080ACE9C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80ACE50
-
- thumb_func_start sub_80ACEA4
-sub_80ACEA4: @ 80ACEA4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080ACF04 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- 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, _080ACF08 @ =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, _080ACF0C @ =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_80758E0
- ldr r0, _080ACF10 @ =sub_80ACF14
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACF04: .4byte gTasks
-_080ACF08: .4byte gSprites
-_080ACF0C: .4byte gBattleAnimAttacker
-_080ACF10: .4byte sub_80ACF14
- thumb_func_end sub_80ACEA4
-
- thumb_func_start sub_80ACF14
-sub_80ACF14: @ 80ACF14
- 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, _080ACF3C @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bls _080ACF30
- b _080AD1EE
-_080ACF30:
- lsls r0, 2
- ldr r1, _080ACF40 @ =_080ACF44
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ACF3C: .4byte gTasks
-_080ACF40: .4byte _080ACF44
- .align 2, 0
-_080ACF44:
- .4byte _080ACF60
- .4byte _080ACF86
- .4byte _080AD038
- .4byte _080AD098
- .4byte _080AD0B6
- .4byte _080AD18C
- .4byte _080AD1E0
-_080ACF60:
- 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_80765D4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080ACF86:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080ACFCE
- 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 _080ACFBC
- ldr r2, _080ACFB8 @ =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 _080ACFCC
- .align 2, 0
-_080ACFB8: .4byte gSprites
-_080ACFBC:
- ldr r2, _080AD030 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _080AD034 @ =0x0000fffd
-_080ACFCC:
- strh r1, [r0, 0x24]
-_080ACFCE:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080ACFFC
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080ACFFC
- movs r0, 0
- strh r0, [r4, 0xE]
- ldr r2, _080AD030 @ =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]
-_080ACFFC:
- adds r0, r4, 0
- bl sub_8076640
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _080AD00C
- b _080AD1EE
-_080AD00C:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8076440
- ldr r2, _080AD030 @ =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 _080AD1D4
- .align 2, 0
-_080AD030: .4byte gSprites
-_080AD034: .4byte 0x0000fffd
-_080AD038:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _080AD048
- b _080AD1EE
-_080AD048:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080AD072
- 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_80765D4
- b _080AD092
-_080AD072:
- 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_80765D4
-_080AD092:
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080AD1D4
-_080AD098:
- adds r0, r4, 0
- bl sub_8076640
- lsls r0, 24
- cmp r0, 0
- beq _080AD0A6
- b _080AD1EE
-_080AD0A6:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- adds r1, r5, 0
- movs r2, 0x6
- bl sub_80AD1F8
- b _080AD1D4
-_080AD0B6:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080AD104
- 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 _080AD0F0
- ldr r2, _080AD0EC @ =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 _080AD102
- .align 2, 0
-_080AD0EC: .4byte gSprites
-_080AD0F0:
- ldr r2, _080AD13C @ =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
-_080AD102:
- strh r1, [r0, 0x26]
-_080AD104:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x18
- ble _080AD1EE
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080AD140
- 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_80765D4
- b _080AD15E
- .align 2, 0
-_080AD13C: .4byte gSprites
-_080AD140:
- 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_80765D4
-_080AD15E:
- ldrh r1, [r4, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AD17C
- ldr r2, _080AD188 @ =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]
-_080AD17C:
- movs r0, 0
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- b _080AD1D4
- .align 2, 0
-_080AD188: .4byte gSprites
-_080AD18C:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080AD1A8
- ldr r2, _080AD1DC @ =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]
-_080AD1A8:
- adds r0, r4, 0
- bl sub_8076640
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080AD1EE
- ldr r2, _080AD1DC @ =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_8075980
- strh r5, [r4, 0xC]
-_080AD1D4:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080AD1EE
- .align 2, 0
-_080AD1DC: .4byte gSprites
-_080AD1E0:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AD1EE
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080AD1EE:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80ACF14
-
- thumb_func_start sub_80AD1F8
-sub_80AD1F8: @ 80AD1F8
- 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_80AD374
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r1, _080AD248 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r4, [r0, 0x20]
- ldr r0, _080AD24C @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080AD250
- adds r0, r4, 0
- subs r0, 0xC
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x1
- b _080AD25A
- .align 2, 0
-_080AD248: .4byte gSprites
-_080AD24C: .4byte gBattleAnimAttacker
-_080AD250:
- adds r0, r4, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0xFF
-_080AD25A:
- 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, _080AD314 @ =gUnknown_83E5E44
- mov r9, r2
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r3, r8
- lsls r3, 1
- mov r10, r3
-_080AD278:
- ldr r0, _080AD318 @ =gUnknown_83E5E2C
- 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 _080AD2FA
- ldr r1, _080AD31C @ =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, _080AD320 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r3, _080AD324 @ =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 _080AD2C2
- movs r5, 0
-_080AD2C2:
- 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, _080AD328 @ =gUnknown_83E5E46
- adds r2, r0
- movs r3, 0
- ldrsh r2, [r2, r3]
- adds r0, r4, 0
- bl sub_80AD3C8
- 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, _080AD32C @ =gTasks+0x8
- adds r0, r1
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
-_080AD2FA:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x6
- bls _080AD278
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AD314: .4byte gUnknown_83E5E44
-_080AD318: .4byte gUnknown_83E5E2C
-_080AD31C: .4byte gSprites
-_080AD320: .4byte 0x000003ff
-_080AD324: .4byte 0xfffffc00
-_080AD328: .4byte gUnknown_83E5E46
-_080AD32C: .4byte gTasks+0x8
- thumb_func_end sub_80AD1F8
-
- thumb_func_start sub_80AD330
-sub_80AD330: @ 80AD330
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80AD3E4
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080AD36A
- ldr r3, _080AD370 @ =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
-_080AD36A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AD370: .4byte gTasks
- thumb_func_end sub_80AD330
-
- thumb_func_start sub_80AD374
-sub_80AD374: @ 80AD374
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080AD3AC @ =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, _080AD3B0 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080AD3B4
- lsls r0, r4, 16
- movs r1, 0x94
- lsls r1, 15
- b _080AD3BA
- .align 2, 0
-_080AD3AC: .4byte gSprites
-_080AD3B0: .4byte gBattleAnimAttacker
-_080AD3B4:
- lsls r0, r4, 16
- movs r1, 0xB0
- lsls r1, 14
-_080AD3BA:
- adds r0, r1
- lsrs r4, r0, 16
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80AD374
-
- thumb_func_start sub_80AD3C8
-sub_80AD3C8: @ 80AD3C8
- 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_80AD3C8
-
- thumb_func_start sub_80AD3E4
-sub_80AD3E4: @ 80AD3E4
- 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 _080AD40E
- 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]
-_080AD40E:
- 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 _080AD444
- adds r1, r3, 0
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- blt _080AD444
- cmp r1, 0x78
- ble _080AD450
-_080AD444:
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080AD450:
- pop {r0}
- bx r0
- thumb_func_end sub_80AD3E4
-
- thumb_func_start sub_80AD454
-sub_80AD454: @ 80AD454
- push {r4,r5,lr}
- ldr r3, _080AD498 @ =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, _080AD49C @ =0x000003ff
- adds r1, r3, 0
- ands r2, r1
- ldr r1, _080AD4A0 @ =0xfffffc00
- ands r1, r4
- orrs r1, r2
- strh r1, [r0, 0x4]
- ldr r1, _080AD4A4 @ =sub_80AD4A8
- str r1, [r0, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AD498: .4byte gBattleAnimArgs
-_080AD49C: .4byte 0x000003ff
-_080AD4A0: .4byte 0xfffffc00
-_080AD4A4: .4byte sub_80AD4A8
- thumb_func_end sub_80AD454
-
- thumb_func_start sub_80AD4A8
-sub_80AD4A8: @ 80AD4A8
- push {r4,lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _080AD4DA
- cmp r0, 0x1
- bgt _080AD4BE
- cmp r0, 0
- beq _080AD4C4
- b _080AD538
-_080AD4BE:
- cmp r0, 0x2
- beq _080AD4F8
- b _080AD538
-_080AD4C4:
- ldrh r1, [r2, 0x3A]
- movs r3, 0x3A
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _080AD4D4
- subs r0, r1, 0x1
- strh r0, [r2, 0x3A]
- b _080AD538
-_080AD4D4:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
-_080AD4DA:
- 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 _080AD538
- strh r3, [r2, 0x22]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- b _080AD538
-_080AD4F8:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080AD524
- 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 _080AD520
- ldr r0, _080AD51C @ =0x0000fffd
- b _080AD522
- .align 2, 0
-_080AD51C: .4byte 0x0000fffd
-_080AD520:
- movs r0, 0x3
-_080AD522:
- strh r0, [r2, 0x26]
-_080AD524:
- ldrh r0, [r2, 0x34]
- adds r0, 0x1
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080AD538
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080AD538:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AD4A8
-
- thumb_func_start sub_80AD540
-sub_80AD540: @ 80AD540
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080AD5B4
- cmp r0, 0x1
- bgt _080AD556
- cmp r0, 0
- beq _080AD55C
- b _080AD682
-_080AD556:
- cmp r0, 0x2
- beq _080AD612
- b _080AD682
-_080AD55C:
- adds r0, r5, 0
- movs r1, 0
- bl sub_8075160
- ldr r4, _080AD584 @ =gBattleAnimArgs
- ldrb r1, [r4, 0x4]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x3C]
- ldr r0, _080AD588 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080AD58C
- movs r0, 0x4
- b _080AD58E
- .align 2, 0
-_080AD584: .4byte gBattleAnimArgs
-_080AD588: .4byte gBattleAnimAttacker
-_080AD58C:
- ldr r0, _080AD5AC @ =0x0000fffc
-_080AD58E:
- strh r0, [r5, 0x36]
- ldr r0, _080AD5B0 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_8076884
- 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 _080AD60A
- .align 2, 0
-_080AD5AC: .4byte 0x0000fffc
-_080AD5B0: .4byte gBattleAnimTarget
-_080AD5B4:
- ldrh r0, [r5, 0x30]
- adds r0, 0xC0
- strh r0, [r5, 0x30]
- ldr r0, _080AD5D4 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080AD5D8
- ldrh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- b _080AD5DE
- .align 2, 0
-_080AD5D4: .4byte gBattleAnimAttacker
-_080AD5D8:
- ldrh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 24
-_080AD5DE:
- 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 _080AD682
- movs r0, 0
- strh r0, [r5, 0x34]
-_080AD60A:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080AD682
-_080AD612:
- 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 _080AD682
- 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, _080AD688 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- 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 sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8075678
- ldr r0, _080AD68C @ =sub_80AD690
- str r0, [r5, 0x1C]
-_080AD682:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AD688: .4byte gBattleAnimTarget
-_080AD68C: .4byte sub_80AD690
- thumb_func_end sub_80AD540
-
- thumb_func_start sub_80AD690
-sub_80AD690: @ 80AD690
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- bne _080AD6E8
- 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 _080AD6C6
- cmp r2, 0xC4
- ble _080AD6EE
-_080AD6C6:
- lsls r0, 16
- cmp r0, 0
- ble _080AD6EE
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AD6EE
- ldr r0, _080AD6E4 @ =gUnknown_2037F24
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x89
- bl PlaySE12WithPanning
- b _080AD6EE
- .align 2, 0
-_080AD6E4: .4byte gUnknown_2037F24
-_080AD6E8:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AD6EE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AD690
-
- thumb_func_start sub_80AD6F4
-sub_80AD6F4: @ 80AD6F4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080AD70C
- ldr r0, _080AD778 @ =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r4, 0x30]
- adds r0, r1, 0x1
- strh r0, [r4, 0x2E]
-_080AD70C:
- 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 sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080AD7A8
- ldrh r0, [r4, 0x30]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x83
- bls _080AD780
- ldr r0, _080AD77C @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_8076884
- 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 _080AD7C4
- .align 2, 0
-_080AD778: .4byte gBattleAnimArgs
-_080AD77C: .4byte gBattleAnimTarget
-_080AD780:
- ldr r0, _080AD7A4 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_8076884
- 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 _080AD7C4
- .align 2, 0
-_080AD7A4: .4byte gBattleAnimTarget
-_080AD7A8:
- ldrh r0, [r4, 0x30]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x83
- bls _080AD7BC
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
- b _080AD7C2
-_080AD7BC:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
-_080AD7C2:
- strb r0, [r1]
-_080AD7C4:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080AD7EC
- 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]
-_080AD7EC:
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0x1E
- bne _080AD7FA
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AD7FA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AD6F4
-
- thumb_func_start sub_80AD800
-sub_80AD800: @ 80AD800
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080AD860 @ =gTasks
- adds r4, r1, r0
- ldr r0, _080AD864 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080AD826
- movs r1, 0x1
-_080AD826:
- strh r1, [r4, 0x20]
- ldr r0, _080AD868 @ =gBattleAnimTarget
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- bl sub_8072DF0
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- strh r0, [r4, 0x22]
- movs r0, 0x1
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x24]
- movs r0, 0x3
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080AD86C @ =sub_80AD870
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AD860: .4byte gTasks
-_080AD864: .4byte gBattleAnimAttacker
-_080AD868: .4byte gBattleAnimTarget
-_080AD86C: .4byte sub_80AD870
- thumb_func_end sub_80AD800
-
- thumb_func_start sub_80AD870
-sub_80AD870: @ 80AD870
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080AD894 @ =gTasks
- adds r2, r0, r1
- movs r0, 0x8
- ldrsh r3, [r2, r0]
- cmp r3, 0x1
- beq _080AD938
- cmp r3, 0x1
- bgt _080AD898
- cmp r3, 0
- beq _080AD8A6
- b _080ADA98
- .align 2, 0
-_080AD894: .4byte gTasks
-_080AD898:
- cmp r3, 0x2
- bne _080AD89E
- b _080AD9C0
-_080AD89E:
- cmp r3, 0x3
- bne _080AD8A4
- b _080ADA54
-_080AD8A4:
- b _080ADA98
-_080AD8A6:
- 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 _080AD8D8
- 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 _080AD8D4
- movs r0, 0x2
- b _080AD8D6
-_080AD8D4:
- ldr r0, _080AD930 @ =0x0000fffe
-_080AD8D6:
- strh r0, [r2, 0x1E]
-_080AD8D8:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r7, 0x22
- ldrsh r0, [r2, r7]
- cmp r1, r0
- bge _080AD91A
- ldr r4, _080AD934 @ =gSprites
- adds r3, r2, 0
- adds r3, 0x8
-_080AD8EA:
- 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 _080AD8EA
-_080AD91A:
- ldrh r0, [r2, 0x1A]
- adds r0, 0x1
- strh r0, [r2, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- beq _080AD92A
- b _080ADA98
-_080AD92A:
- movs r0, 0
- strh r0, [r2, 0x1A]
- b _080ADA44
- .align 2, 0
-_080AD930: .4byte 0x0000fffe
-_080AD934: .4byte gSprites
-_080AD938:
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080AD960
- 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 _080AD95C
- movs r0, 0x2
- b _080AD95E
-_080AD95C:
- ldr r0, _080AD9B8 @ =0x0000fffe
-_080AD95E:
- strh r0, [r2, 0x1E]
-_080AD960:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r7, 0x22
- ldrsh r0, [r2, r7]
- cmp r1, r0
- bge _080AD9A2
- ldr r4, _080AD9BC @ =gSprites
- adds r3, r2, 0
- adds r3, 0x8
-_080AD972:
- 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 _080AD972
-_080AD9A2:
- ldrh r0, [r2, 0x1A]
- adds r0, 0x1
- strh r0, [r2, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x60
- bne _080ADA98
- movs r0, 0
- strh r0, [r2, 0x1A]
- b _080ADA44
- .align 2, 0
-_080AD9B8: .4byte 0x0000fffe
-_080AD9BC: .4byte gSprites
-_080AD9C0:
- 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 _080AD9F4
- 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 _080AD9F0
- strh r3, [r2, 0x1E]
- b _080AD9F4
-_080AD9F0:
- ldr r0, _080ADA4C @ =0x0000fffe
- strh r0, [r2, 0x1E]
-_080AD9F4:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bge _080ADA36
- ldr r4, _080ADA50 @ =gSprites
- adds r3, r2, 0
- adds r3, 0x8
-_080ADA06:
- 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 _080ADA06
-_080ADA36:
- ldrh r0, [r2, 0x1A]
- adds r0, 0x1
- strh r0, [r2, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bne _080ADA98
-_080ADA44:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080ADA98
- .align 2, 0
-_080ADA4C: .4byte 0x0000fffe
-_080ADA50: .4byte gSprites
-_080ADA54:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bge _080ADA92
- ldr r6, _080ADAA0 @ =gSprites
- adds r3, r2, 0
- adds r3, 0x8
- movs r5, 0
-_080ADA68:
- 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 _080ADA68
-_080ADA92:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080ADA98:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADAA0: .4byte gSprites
- thumb_func_end sub_80AD870
-
- thumb_func_start sub_80ADAA4
-sub_80ADAA4: @ 80ADAA4
- push {r4,lr}
- sub sp, 0x10
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r0, sp
- bl sub_80752A0
- mov r0, sp
- ldrb r0, [r0, 0x8]
- lsls r0, 4
- ldr r1, _080ADAD4 @ =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
- .align 2, 0
-_080ADAD4: .4byte gBattleAnimArgs
- thumb_func_end sub_80ADAA4
-
- thumb_func_start sub_80ADAD8
-sub_80ADAD8: @ 80ADAD8
- 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, _080ADB30 @ =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, _080ADB34 @ =gBattleAnimArgs
- mov r8, r4
- cmp r0, 0
- bne _080ADB0E
- 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]
-_080ADB0E:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- ldr r1, _080ADB38 @ =gUnknown_2023D44
- ldr r0, _080ADB3C @ =gBattleAnimTarget
- ldrb r0, [r0]
- adds r0, r1
- ldrb r6, [r0]
- movs r5, 0x10
- ldrsh r0, [r2, r5]
- cmp r0, 0
- bne _080ADB44
- ldr r4, _080ADB40 @ =gUnknown_83E5EFC
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- b _080ADB4A
- .align 2, 0
-_080ADB30: .4byte gTasks
-_080ADB34: .4byte gBattleAnimArgs
-_080ADB38: .4byte gUnknown_2023D44
-_080ADB3C: .4byte gBattleAnimTarget
-_080ADB40: .4byte gUnknown_83E5EFC
-_080ADB44:
- ldr r4, _080ADB90 @ =gUnknown_83E5F0C
- movs r3, 0x8
- ldrsh r0, [r2, r3]
-_080ADB4A:
- 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 _080ADB98
- ldr r2, _080ADB94 @ =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 _080ADB88
- negs r0, r0
-_080ADB88:
- mov r5, r10
- strh r0, [r5, 0x26]
- b _080ADBB2
- .align 2, 0
-_080ADB90: .4byte gUnknown_83E5F0C
-_080ADB94: .4byte gSprites
-_080ADB98:
- ldr r3, _080ADBE8 @ =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
-_080ADBB2:
- 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 _080ADBD8
- 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
-_080ADBD8:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADBE8: .4byte gSprites
- thumb_func_end sub_80ADAD8
-
- thumb_func_start sub_80ADBEC
-sub_80ADBEC: @ 80ADBEC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080ADC0C @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080ADC14
- ldr r0, _080ADC10 @ =gBattleAnimArgs
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- b _080ADC20
- .align 2, 0
-_080ADC0C: .4byte gBattleAnimAttacker
-_080ADC10: .4byte gBattleAnimArgs
-_080ADC14:
- ldr r1, _080ADC34 @ =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- adds r0, r1, 0
-_080ADC20:
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _080ADC38 @ =sub_80ADC3C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADC34: .4byte gBattleAnimArgs
-_080ADC38: .4byte sub_80ADC3C
- thumb_func_end sub_80ADBEC
-
- thumb_func_start sub_80ADC3C
-sub_80ADC3C: @ 80ADC3C
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080ADC52
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080ADC52:
- pop {r0}
- bx r0
- thumb_func_end sub_80ADC3C
-
- thumb_func_start sub_80ADC58
-sub_80ADC58: @ 80ADC58
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080ADC78 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080ADC80
- ldr r0, _080ADC7C @ =gBattleAnimArgs
- ldrh r1, [r4, 0x20]
- ldrh r0, [r0]
- subs r1, r0
- strh r1, [r4, 0x20]
- b _080ADC8A
- .align 2, 0
-_080ADC78: .4byte gBattleAnimAttacker
-_080ADC7C: .4byte gBattleAnimArgs
-_080ADC80:
- ldr r0, _080ADC94 @ =gBattleAnimArgs
- ldrh r0, [r0]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
-_080ADC8A:
- ldr r0, _080ADC98 @ =sub_80ADC9C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADC94: .4byte gBattleAnimArgs
-_080ADC98: .4byte sub_80ADC9C
- thumb_func_end sub_80ADC58
-
- thumb_func_start sub_80ADC9C
-sub_80ADC9C: @ 80ADC9C
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080ADCB2
- adds r0, r2, 0
- bl move_anim_8074EE0
-_080ADCB2:
- pop {r0}
- bx r0
- thumb_func_end sub_80ADC9C
-
- thumb_func_start sub_80ADCB8
-sub_80ADCB8: @ 80ADCB8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080ADCFC @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, _080ADD00 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080ADD08
- ldr r2, _080ADD04 @ =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 _080ADD1C
- .align 2, 0
-_080ADCFC: .4byte gBattleAnimTarget
-_080ADD00: .4byte gBattleAnimAttacker
-_080ADD04: .4byte gBattleAnimArgs
-_080ADD08:
- ldr r0, _080ADD40 @ =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
-_080ADD1C:
- 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, _080ADD44 @ =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080ADD48 @ =sub_8074A80
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADD40: .4byte gBattleAnimArgs
-_080ADD44: .4byte move_anim_8074EE0
-_080ADD48: .4byte sub_8074A80
- thumb_func_end sub_80ADCB8
-
- thumb_func_start sub_80ADD4C
-sub_80ADD4C: @ 80ADD4C
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, _080ADD64 @ =gBattleAnimArgs
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080ADDC4
- cmp r0, 0x1
- bgt _080ADD68
- cmp r0, 0
- beq _080ADD72
- b _080ADDC4
- .align 2, 0
-_080ADD64: .4byte gBattleAnimArgs
-_080ADD68:
- cmp r0, 0x2
- beq _080ADD7C
- cmp r0, 0x3
- beq _080ADDA0
- b _080ADDC4
-_080ADD72:
- ldr r0, _080ADD78 @ =gBattleAnimAttacker
- b _080ADDC6
- .align 2, 0
-_080ADD78: .4byte gBattleAnimAttacker
-_080ADD7C:
- ldr r4, _080ADD94 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r6, 0x2
- eors r0, r6
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- bne _080ADD98
- ldrb r4, [r4]
- b _080ADDC8
- .align 2, 0
-_080ADD94: .4byte gBattleAnimAttacker
-_080ADD98:
- ldrb r0, [r4]
- adds r4, r6, 0
- eors r4, r0
- b _080ADDC8
-_080ADDA0:
- ldr r0, _080ADDBC @ =gBattleAnimAttacker
- ldrb r0, [r0]
- movs r4, 0x2
- eors r0, r4
- bl sub_8072DF0
- lsls r0, 24
- cmp r0, 0
- beq _080ADDC4
- ldr r0, _080ADDC0 @ =gBattleAnimTarget
- ldrb r0, [r0]
- eors r4, r0
- b _080ADDC8
- .align 2, 0
-_080ADDBC: .4byte gBattleAnimAttacker
-_080ADDC0: .4byte gBattleAnimTarget
-_080ADDC4:
- ldr r0, _080ADDE8 @ =gBattleAnimTarget
-_080ADDC6:
- ldrb r4, [r0]
-_080ADDC8:
- ldr r0, _080ADDEC @ =gBattleAnimArgs
- movs r2, 0xA
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _080ADDF0
- adds r0, r4, 0
- movs r1, 0
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r4, 0
- movs r1, 0x1
- b _080ADE02
- .align 2, 0
-_080ADDE8: .4byte gBattleAnimTarget
-_080ADDEC: .4byte gBattleAnimArgs
-_080ADDF0:
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r4, 0
- movs r1, 0x3
-_080ADE02:
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r7, _080ADEA0 @ =gSineTable
- ldr r6, _080ADEA4 @ =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 _080ADE66
- adds r0, r4, 0
- bl sub_8076884
- 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]
-_080ADE66:
- 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, _080ADEA8 @ =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, _080ADEAC @ =sub_80B1D3C
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADEA0: .4byte gSineTable
-_080ADEA4: .4byte gBattleAnimArgs
-_080ADEA8: .4byte gOamMatrices
-_080ADEAC: .4byte sub_80B1D3C
- thumb_func_end sub_80ADD4C
-
- thumb_func_start sub_80ADEB0
-sub_80ADEB0: @ 80ADEB0
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r5, _080ADF24 @ =gBattleAnimArgs
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r6, _080ADF28 @ =gBattleAnimTarget
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8074480
- 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 sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x38]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x3A]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x3C]
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- lsls r0, 2
- adds r1, r0
- ldr r3, _080ADF2C @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080ADF30 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r1, _080ADF34 @ =sub_80ADF38
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADF24: .4byte gBattleAnimArgs
-_080ADF28: .4byte gBattleAnimTarget
-_080ADF2C: .4byte 0x000003ff
-_080ADF30: .4byte 0xfffffc00
-_080ADF34: .4byte sub_80ADF38
- thumb_func_end sub_80ADEB0
-
- thumb_func_start sub_80ADF38
-sub_80ADF38: @ 80ADF38
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- bne _080ADFA2
- 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 _080ADFA8
- 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 _080ADFA8
-_080ADFA2:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080ADFA8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80ADF38
-
- thumb_func_start sub_80ADFB0
-sub_80ADFB0: @ 80ADFB0
- 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 _080ADFE8
- 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]
-_080ADFE8:
- ldrh r0, [r3, 0x34]
- subs r1, r0, 0x1
- strh r1, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bgt _080ADFFA
- adds r0, r3, 0
- bl DestroyAnimSprite
-_080ADFFA:
- pop {r0}
- bx r0
- thumb_func_end sub_80ADFB0
-
- thumb_func_start sub_80AE000
-sub_80AE000: @ 80AE000
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080AE01C
- ldr r0, _080AE060 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080AE024
-_080AE01C:
- ldr r1, _080AE064 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080AE024:
- ldr r5, _080AE060 @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- ldr r4, _080AE064 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8074480
- 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, _080AE068 @ =sub_80ADFB0
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE060: .4byte gBattleAnimTarget
-_080AE064: .4byte gBattleAnimArgs
-_080AE068: .4byte sub_80ADFB0
- thumb_func_end sub_80AE000
-
- thumb_func_start sub_80AE06C
-sub_80AE06C: @ 80AE06C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r1, _080AE088 @ =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 _080AE090
- ldr r0, _080AE08C @ =gBattleAnimTarget
- b _080AE092
- .align 2, 0
-_080AE088: .4byte gBattleAnimArgs
-_080AE08C: .4byte gBattleAnimTarget
-_080AE090:
- ldr r0, _080AE118 @ =gBattleAnimAttacker
-_080AE092:
- ldrb r6, [r0]
- bl sub_8073788
- lsls r0, 24
- cmp r0, 0
- bne _080AE0AA
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080AE0B2
-_080AE0AA:
- ldr r1, _080AE11C @ =gBattleAnimArgs
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_080AE0B2:
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- ldr r4, _080AE11C @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r3, [r4]
- adds r0, r3
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldrh r1, [r4, 0xE]
- ldr r0, _080AE120 @ =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, _080AE124 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080AE128 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r1, _080AE12C @ =sub_80AE130
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE118: .4byte gBattleAnimAttacker
-_080AE11C: .4byte gBattleAnimArgs
-_080AE120: .4byte 0x00007fff
-_080AE124: .4byte 0x000003ff
-_080AE128: .4byte 0xfffffc00
-_080AE12C: .4byte sub_80AE130
- thumb_func_end sub_80AE06C
-
- thumb_func_start sub_80AE130
-sub_80AE130: @ 80AE130
- 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 _080AE186
- 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]
-_080AE186:
- ldrh r0, [r4, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080AE198
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AE198:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AE130
-
- thumb_func_start sub_80AE1A0
-sub_80AE1A0: @ 80AE1A0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8075114
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- ldr r3, _080AE1DC @ =gBattleAnimArgs
- movs r5, 0x6
- ldrsh r0, [r3, r5]
- lsls r0, 2
- adds r1, r0
- ldr r5, _080AE1E0 @ =0x000003ff
- adds r0, r5, 0
- ands r1, r0
- ldr r0, _080AE1E4 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- movs r1, 0x6
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- bne _080AE1E8
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- b _080AE1F6
- .align 2, 0
-_080AE1DC: .4byte gBattleAnimArgs
-_080AE1E0: .4byte 0x000003ff
-_080AE1E4: .4byte 0xfffffc00
-_080AE1E8:
- cmp r0, 0x2
- bne _080AE1FA
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x20
-_080AE1F6:
- orrs r1, r0
- strb r1, [r4, 0x3]
-_080AE1FA:
- ldr r0, _080AE214 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, _080AE218 @ =sub_8074C44
- str r0, [r4, 0x1C]
- ldr r1, _080AE21C @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE214: .4byte gBattleAnimArgs
-_080AE218: .4byte sub_8074C44
-_080AE21C: .4byte DestroyAnimSprite
- thumb_func_end sub_80AE1A0
-
- thumb_func_start sub_80AE220
-sub_80AE220: @ 80AE220
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _080AE268 @ =gBattleAnimTarget
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8074480
- ldr r1, _080AE26C @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r1
- lsls r0, 24
- ldr r5, _080AE270 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r4, 0x8]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8074480
- 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, _080AE274 @ =sub_80AE278
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE268: .4byte gBattleAnimTarget
-_080AE26C: .4byte gTasks
-_080AE270: .4byte gBattleAnimArgs
-_080AE274: .4byte sub_80AE278
- thumb_func_end sub_80AE220
-
- thumb_func_start sub_80AE278
-sub_80AE278: @ 80AE278
- 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, _080AE2B8 @ =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 _080AE2BC
- movs r0, 0
- mov r8, r0
- movs r2, 0x1
- movs r1, 0x10
- mov r12, r1
- b _080AE2C6
- .align 2, 0
-_080AE2B8: .4byte gTasks
-_080AE2BC:
- movs r2, 0x10
- mov r12, r2
- movs r3, 0x8
- mov r8, r3
- movs r2, 0x4
-_080AE2C6:
- 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 _080AE3BC
- lsls r0, 2
- ldr r1, _080AE2E4 @ =_080AE2E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080AE2E4: .4byte _080AE2E8
- .align 2, 0
-_080AE2E8:
- .4byte _080AE314
- .4byte _080AE3BC
- .4byte _080AE328
- .4byte _080AE3BC
- .4byte _080AE348
- .4byte _080AE3BC
- .4byte _080AE35E
- .4byte _080AE3BC
- .4byte _080AE380
- .4byte _080AE3BC
- .4byte _080AE3B4
-_080AE314:
- ldr r0, _080AE324 @ =gUnknown_83E60A0
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- mov r4, r12
- lsls r3, r4, 16
- b _080AE396
- .align 2, 0
-_080AE324: .4byte gUnknown_83E60A0
-_080AE328:
- 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, _080AE344 @ =gUnknown_83E60A0
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- b _080AE396
- .align 2, 0
-_080AE344: .4byte gUnknown_83E60A0
-_080AE348:
- 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 _080AE38A
-_080AE35E:
- 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, _080AE37C @ =gUnknown_83E60A0
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- b _080AE396
- .align 2, 0
-_080AE37C: .4byte gUnknown_83E60A0
-_080AE380:
- mov r1, r12
- lsls r0, r1, 16
- asrs r0, 16
- lsls r3, r0, 2
- adds r3, r0
-_080AE38A:
- ldr r0, _080AE3B0 @ =gUnknown_83E60A0
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- lsls r3, 16
-_080AE396:
- 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 _080AE3BC
- .align 2, 0
-_080AE3B0: .4byte gUnknown_83E60A0
-_080AE3B4:
- mov r0, r9
- bl DestroyAnimVisualTask
- b _080AE400
-_080AE3BC:
- cmp r7, 0
- beq _080AE3F0
- ldr r4, _080AE410 @ =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, _080AE414 @ =0x000003ff
- adds r1, r6, 0
- ands r2, r1
- ldr r1, _080AE418 @ =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
-_080AE3F0:
- ldr r0, _080AE41C @ =gTasks
- mov r1, r10
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1C]
- adds r0, 0x1
- strh r0, [r1, 0x1C]
-_080AE400:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE410: .4byte gSprites
-_080AE414: .4byte 0x000003ff
-_080AE418: .4byte 0xfffffc00
-_080AE41C: .4byte gTasks
- thumb_func_end sub_80AE278
-
- thumb_func_start sub_80AE420
-sub_80AE420: @ 80AE420
- push {lr}
- adds r3, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080AE442
- 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 _080AE456
-_080AE442:
- 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]
-_080AE456:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bne _080AE46A
- adds r0, r3, 0
- bl DestroySprite
-_080AE46A:
- pop {r0}
- bx r0
- thumb_func_end sub_80AE420
-
- thumb_func_start sub_80AE470
-sub_80AE470: @ 80AE470
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, _080AE4D8 @ =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, _080AE4DC @ =gUnknown_83E60B8
- 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, _080AE4E0 @ =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, _080AE4E4 @ =0x000003ff
- adds r0, r7, 0
- ands r1, r0
- ldr r0, _080AE4E8 @ =0xfffffc00
- ands r0, r5
- orrs r0, r1
- strh r0, [r6, 0x4]
- ldr r1, _080AE4EC @ =gUnknown_2037EE2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- adds r3, 0x1C
- adds r2, r3
- ldr r0, _080AE4F0 @ =sub_80AE4F4
- str r0, [r2]
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE4D8: .4byte gBattleAnimArgs
-_080AE4DC: .4byte gUnknown_83E60B8
-_080AE4E0: .4byte gSprites
-_080AE4E4: .4byte 0x000003ff
-_080AE4E8: .4byte 0xfffffc00
-_080AE4EC: .4byte gUnknown_2037EE2
-_080AE4F0: .4byte sub_80AE4F4
- thumb_func_end sub_80AE470
-
- thumb_func_start sub_80AE4F4
-sub_80AE4F4: @ 80AE4F4
- 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 _080AE528
- 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]
-_080AE528:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _080AE53C
- adds r0, r3, 0
- bl DestroyAnimSprite
-_080AE53C:
- pop {r0}
- bx r0
- thumb_func_end sub_80AE4F4
-
- thumb_func_start sub_80AE540
-sub_80AE540: @ 80AE540
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080AE560 @ =gTasks
- adds r5, r1, r0
- ldr r0, _080AE564 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080AE56C
- ldr r4, _080AE568 @ =gBattleAnimAttacker
- b _080AE56E
- .align 2, 0
-_080AE560: .4byte gTasks
-_080AE564: .4byte gBattleAnimArgs
-_080AE568: .4byte gBattleAnimAttacker
-_080AE56C:
- ldr r4, _080AE5B0 @ =gBattleAnimTarget
-_080AE56E:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x24]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x26]
- ldr r2, _080AE5B4 @ =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, _080AE5B8 @ =sub_80AE5BC
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE5B0: .4byte gBattleAnimTarget
-_080AE5B4: .4byte gBattleAnimArgs
-_080AE5B8: .4byte sub_80AE5BC
- thumb_func_end sub_80AE540
-
- thumb_func_start sub_80AE5BC
-sub_80AE5BC: @ 80AE5BC
- 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, _080AE6A4 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080AE6BC
- 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 _080AE6CA
- strh r7, [r5, 0x20]
- ldr r0, _080AE6A8 @ =gUnknown_83E6120
- 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 _080AE6CA
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _080AE6AC @ =gSprites
- adds r4, r0
- ldr r1, _080AE6B0 @ =gUnknown_83E60D0
- movs r2, 0x1A
- ldrsh r0, [r5, r2]
- lsls r0, 1
- adds r0, r1
- movs r3, 0
- ldrsb r3, [r0, r3]
- ldrh r0, [r4, 0x20]
- adds r3, r0
- strh r3, [r4, 0x20]
- movs r2, 0x1A
- ldrsh r0, [r5, r2]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- movs r2, 0
- ldrsb r2, [r0, r2]
- ldrh r0, [r4, 0x22]
- adds r2, r0
- strh r2, [r4, 0x22]
- movs r1, 0x18
- ldrsh r0, [r5, r1]
- lsls r1, r0, 2
- adds r1, r0
- movs r0, 0x28
- subs r0, r1
- strh r0, [r4, 0x2E]
- strh r3, [r4, 0x30]
- ldrh r0, [r5, 0x24]
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- ldrh r0, [r5, 0x26]
- strh r0, [r4, 0x36]
- strh r6, [r4, 0x38]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _080AE6B4 @ =sub_80AE704
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080AE6B8 @ =sub_8074F6C
- 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 _080AE674
- strh r7, [r5, 0x1A]
-_080AE674:
- 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 _080AE696
- strh r7, [r5, 0x1C]
- ldrh r1, [r5, 0x18]
- movs r3, 0x18
- ldrsh r0, [r5, r3]
- cmp r0, 0x5
- bgt _080AE696
- adds r0, r1, 0x1
- strh r0, [r5, 0x18]
-_080AE696:
- ldrh r0, [r5, 0x16]
- adds r0, 0x1
- strh r0, [r5, 0x16]
- ldrh r0, [r5, 0x14]
- subs r0, 0x1
- strh r0, [r5, 0x14]
- b _080AE6CA
- .align 2, 0
-_080AE6A4: .4byte gTasks
-_080AE6A8: .4byte gUnknown_83E6120
-_080AE6AC: .4byte gSprites
-_080AE6B0: .4byte gUnknown_83E60D0
-_080AE6B4: .4byte sub_80AE704
-_080AE6B8: .4byte sub_8074F6C
-_080AE6BC:
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080AE6CA
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080AE6CA:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80AE5BC
-
- thumb_func_start sub_80AE6D0
-sub_80AE6D0: @ 80AE6D0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _080AE6F8
- ldr r2, _080AE700 @ =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
-_080AE6F8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE700: .4byte gTasks
- thumb_func_end sub_80AE6D0
-
- thumb_func_start sub_80AE704
-sub_80AE704: @ 80AE704
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _080AE718 @ =sub_80AE6D0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE718: .4byte sub_80AE6D0
- thumb_func_end sub_80AE704
-
- thumb_func_start sub_80AE71C
-sub_80AE71C: @ 80AE71C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080AE730 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080AE738
- ldr r4, _080AE734 @ =gBattleAnimAttacker
- b _080AE73A
- .align 2, 0
-_080AE730: .4byte gBattleAnimArgs
-_080AE734: .4byte gBattleAnimAttacker
-_080AE738:
- ldr r4, _080AE768 @ =gBattleAnimTarget
-_080AE73A:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080AE76C @ =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080AE770 @ =sub_8074F50
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE768: .4byte gBattleAnimTarget
-_080AE76C: .4byte move_anim_8074EE0
-_080AE770: .4byte sub_8074F50
- thumb_func_end sub_80AE71C
-
- thumb_func_start sub_80AE774
-sub_80AE774: @ 80AE774
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080AE788 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080AE790
- ldr r4, _080AE78C @ =gBattleAnimAttacker
- b _080AE792
- .align 2, 0
-_080AE788: .4byte gBattleAnimArgs
-_080AE78C: .4byte gBattleAnimAttacker
-_080AE790:
- ldr r4, _080AE7CC @ =gBattleAnimTarget
-_080AE792:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080AE7D0 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x24]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x26]
- ldr r1, _080AE7D4 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080AE7D8 @ =sub_8074F6C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE7CC: .4byte gBattleAnimTarget
-_080AE7D0: .4byte gBattleAnimArgs
-_080AE7D4: .4byte DestroyAnimSprite
-_080AE7D8: .4byte sub_8074F6C
- thumb_func_end sub_80AE774
-
- thumb_func_start sub_80AE7DC
-sub_80AE7DC: @ 80AE7DC
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r4, _080AE834 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r0, 0
- bl GetAnimBankSpriteId
- 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 _080AE82A
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- negs r0, r0
- strh r0, [r5, 0x3C]
-_080AE82A:
- ldr r0, _080AE838 @ =sub_80AE83C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE834: .4byte gBattleAnimAttacker
-_080AE838: .4byte sub_80AE83C
- thumb_func_end sub_80AE7DC
-
- thumb_func_start sub_80AE83C
-sub_80AE83C: @ 80AE83C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080AE84E
- cmp r0, 0x1
- beq _080AE864
- b _080AE894
-_080AE84E:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- ble _080AE894
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080AE894
-_080AE864:
- ldrh r2, [r4, 0x3C]
- ldrh r1, [r4, 0x20]
- adds r0, r2, r1
- strh r0, [r4, 0x20]
- ldr r3, _080AE89C @ =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 _080AE894
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080AE894:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE89C: .4byte gSprites
- thumb_func_end sub_80AE83C
-
- thumb_func_start sub_80AE8A0
-sub_80AE8A0: @ 80AE8A0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080AE8C4 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080AE934
- cmp r0, 0x1
- bgt _080AE8C8
- cmp r0, 0
- beq _080AE8D4
- b _080AEA04
- .align 2, 0
-_080AE8C4: .4byte gTasks
-_080AE8C8:
- cmp r0, 0x2
- beq _080AE990
- cmp r0, 0x3
- bne _080AE8D2
- b _080AE9E4
-_080AE8D2:
- b _080AEA04
-_080AE8D4:
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r5, 0x26]
- ldr r4, _080AE908 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x24]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080AE910
- ldr r0, _080AE90C @ =0x0000ffe0
- strh r0, [r5, 0x24]
- movs r0, 0x2
- b _080AE916
- .align 2, 0
-_080AE908: .4byte gBattleAnimAttacker
-_080AE90C: .4byte 0x0000ffe0
-_080AE910:
- movs r0, 0x20
- strh r0, [r5, 0x24]
- ldr r0, _080AE92C @ =0x0000fffe
-_080AE916:
- strh r0, [r5, 0x22]
- ldr r2, _080AE930 @ =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 _080AE9D6
- .align 2, 0
-_080AE92C: .4byte 0x0000fffe
-_080AE930: .4byte gSprites
-_080AE934:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080AEA04
- movs r0, 0
- strh r0, [r5, 0xA]
- ldr r4, _080AE98C @ =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 _080AE9D6
- 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 _080AEA04
- .align 2, 0
-_080AE98C: .4byte gSprites
-_080AE990:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080AEA04
- movs r0, 0
- strh r0, [r5, 0xA]
- ldr r1, _080AE9E0 @ =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 _080AEA04
-_080AE9D6:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080AEA04
- .align 2, 0
-_080AE9E0: .4byte gSprites
-_080AE9E4:
- ldr r2, _080AEA0C @ =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
-_080AEA04:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AEA0C: .4byte gSprites
- thumb_func_end sub_80AE8A0
-
- thumb_func_start sub_80AEA10
-sub_80AEA10: @ 80AEA10
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080AEA34 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080AEA2A
- b _080AEB50
-_080AEA2A:
- cmp r0, 0x1
- bgt _080AEA38
- cmp r0, 0
- beq _080AEA40
- b _080AEB92
- .align 2, 0
-_080AEA34: .4byte gTasks
-_080AEA38:
- cmp r0, 0x2
- bne _080AEA3E
- b _080AEB84
-_080AEA3E:
- b _080AEB92
-_080AEA40:
- ldr r4, _080AEA80 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080AEA56
- movs r1, 0x1
-_080AEA56:
- movs r6, 0
- strh r1, [r5, 0xA]
- ldr r0, _080AEA84 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r2, [r0, r1]
- adds r3, r0, 0
- cmp r2, 0
- beq _080AEA8C
- cmp r2, 0x4
- beq _080AEAB4
- ldrh r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AEAEC
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r5, 0xE]
- ldr r0, _080AEA88 @ =0x0000fff0
- b _080AEAF4
- .align 2, 0
-_080AEA80: .4byte gBattleAnimAttacker
-_080AEA84: .4byte gBattleAnimArgs
-_080AEA88: .4byte 0x0000fff0
-_080AEA8C:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xE]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- 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 _080AEB2A
-_080AEAB4:
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r1, 7
- movs r0, 0x78
- subs r0, r1
- strh r0, [r5, 0xE]
- ldr r4, _080AEAE8 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0xA
- ldrsh r1, [r5, r2]
- lsls r1, 5
- subs r0, r1
- strh r0, [r5, 0x10]
- b _080AEB2A
- .align 2, 0
-_080AEAE8: .4byte gBattleAnimTarget
-_080AEAEC:
- ldr r0, _080AEB10 @ =0x0000fff0
- strh r0, [r5, 0xE]
- movs r0, 0x80
- lsls r0, 1
-_080AEAF4:
- strh r0, [r5, 0x10]
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080AEB14
- 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 _080AEB2A
- .align 2, 0
-_080AEB10: .4byte 0x0000fff0
-_080AEB14:
- 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]
-_080AEB2A:
- movs r2, 0xE
- ldrsh r1, [r5, r2]
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bge _080AEB40
- movs r1, 0
- movs r0, 0x1
- strh r0, [r5, 0xA]
- strh r1, [r5, 0x14]
- b _080AEB7C
-_080AEB40:
- ldr r0, _080AEB4C @ =0x0000ffff
- strh r0, [r5, 0xA]
- movs r0, 0x3
- strh r0, [r5, 0x14]
- b _080AEB7C
- .align 2, 0
-_080AEB4C: .4byte 0x0000ffff
-_080AEB50:
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- cmp r0, 0
- ble _080AEB92
- movs r0, 0
- strh r0, [r5, 0xC]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80AEB98
- lsls r0, 24
- cmp r0, 0
- bne _080AEB7C
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80AEB98
- lsls r0, 24
- cmp r0, 0
- beq _080AEB92
-_080AEB7C:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080AEB92
-_080AEB84:
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080AEB92
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080AEB92:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80AEA10
-
- thumb_func_start sub_80AEB98
-sub_80AEB98: @ 80AEB98
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _080AEC24 @ =gUnknown_83E6278
- 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 _080AEBCE
- ldr r1, _080AEC28 @ =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]
-_080AEBCE:
- ldrh r1, [r4, 0xA]
- ldrh r5, [r4, 0x14]
- adds r0, r1, r5
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- bge _080AEBE0
- movs r0, 0x3
- strh r0, [r4, 0x14]
-_080AEBE0:
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- ble _080AEBEC
- movs r0, 0
- strh r0, [r4, 0x14]
-_080AEBEC:
- 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 _080AEC0C
- lsls r0, r2, 16
- asrs r0, 16
- movs r5, 0x10
- ldrsh r1, [r4, r5]
- cmp r0, r1
- bge _080AEC20
-_080AEC0C:
- movs r0, 0x1
- negs r0, r0
- cmp r3, r0
- bne _080AEC2C
- lsls r0, r2, 16
- asrs r0, 16
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bgt _080AEC2C
-_080AEC20:
- movs r0, 0x1
- b _080AEC2E
- .align 2, 0
-_080AEC24: .4byte gUnknown_83E6278
-_080AEC28: .4byte gSprites
-_080AEC2C:
- movs r0, 0
-_080AEC2E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80AEB98
-
- thumb_func_start sub_80AEC34
-sub_80AEC34: @ 80AEC34
- 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 _080AEC74
- ldr r3, _080AEC7C @ =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
-_080AEC74:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AEC7C: .4byte gTasks
- thumb_func_end sub_80AEC34
-
- thumb_func_start sub_80AEC80
-sub_80AEC80: @ 80AEC80
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080AEC92
- cmp r0, 0x1
- beq _080AECC4
- b _080AECD8
-_080AEC92:
- ldr r4, _080AECC0 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- 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 _080AECD8
- .align 2, 0
-_080AECC0: .4byte gBattleAnimAttacker
-_080AECC4:
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080AECD8
- adds r0, r5, 0
- bl move_anim_8074EE0
-_080AECD8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80AEC80
-
- thumb_func_start sub_80AECE0
-sub_80AECE0: @ 80AECE0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080AED04 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bls _080AECFA
- b _080AEE6C
-_080AECFA:
- lsls r0, 2
- ldr r1, _080AED08 @ =_080AED0C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080AED04: .4byte gTasks
-_080AED08: .4byte _080AED0C
- .align 2, 0
-_080AED0C:
- .4byte _080AED20
- .4byte _080AEDB0
- .4byte _080AEDEC
- .4byte _080AEE48
- .4byte _080AEE58
-_080AED20:
- ldr r4, _080AEDA4 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x16]
- movs r0, 0x4
- strh r0, [r5, 0x18]
- ldr r0, _080AEDA8 @ =gBattleAnimTarget
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8074480
- 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, _080AEDAC @ =0x0000ffff
- strh r0, [r5, 0x12]
- movs r0, 0xC
- strh r0, [r5, 0x1E]
- subs r0, 0x4C
- bl sub_8073A44
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0x20]
- movs r0, 0x3F
- bl sub_8073A44
- 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 _080AEE6A
- .align 2, 0
-_080AEDA4: .4byte gBattleAnimAttacker
-_080AEDA8: .4byte gBattleAnimTarget
-_080AEDAC: .4byte 0x0000ffff
-_080AEDB0:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- cmp r0, 0
- ble _080AEDE0
- movs r0, 0
- strh r0, [r5, 0xA]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80AEE74
- lsls r0, 24
- cmp r0, 0
- beq _080AEDE0
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0x5
- bne _080AEDDA
- movs r0, 0x3
- b _080AEDDE
-_080AEDDA:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
-_080AEDDE:
- strh r0, [r5, 0x8]
-_080AEDE0:
- ldrh r1, [r5, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080AEE6C
- b _080AEE62
-_080AEDEC:
- ldrh r1, [r5, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080AEDFA
- subs r0, r1, 0x1
- strh r0, [r5, 0x1E]
-_080AEDFA:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080AEE6C
- strh r3, [r5, 0xA]
- ldrh r1, [r5, 0xC]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080AEE26
- movs r0, 0x4
- strh r0, [r5, 0x16]
- movs r0, 0x44
- strh r0, [r5, 0x18]
- strh r3, [r5, 0x10]
- strh r2, [r5, 0x12]
- b _080AEE36
-_080AEE26:
- movs r0, 0x44
- strh r0, [r5, 0x16]
- movs r0, 0x4
- strh r0, [r5, 0x18]
- movs r0, 0x7
- strh r0, [r5, 0x10]
- ldr r0, _080AEE44 @ =0x0000ffff
- strh r0, [r5, 0x12]
-_080AEE36:
- movs r1, 0x1E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080AEE68
- movs r0, 0x4
- b _080AEE6A
- .align 2, 0
-_080AEE44: .4byte 0x0000ffff
-_080AEE48:
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080AEE6C
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- b _080AEE6C
-_080AEE58:
- ldrh r1, [r5, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080AEE68
-_080AEE62:
- subs r0, r1, 0x1
- strh r0, [r5, 0x1E]
- b _080AEE6C
-_080AEE68:
- movs r0, 0x1
-_080AEE6A:
- strh r0, [r5, 0x8]
-_080AEE6C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80AECE0
-
- thumb_func_start sub_80AEE74
-sub_80AEE74: @ 80AEE74
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _080AEF3C @ =gUnknown_83E62A8
- 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 _080AEEE0
- ldr r1, _080AEF40 @ =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, _080AEF44 @ =0x000003ff
- adds r0, r6, 0
- ands r1, r0
- ldr r0, _080AEF48 @ =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 _080AEEC8
- movs r0, 0x7
- strh r0, [r4, 0x10]
-_080AEEC8:
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0x7
- ble _080AEED4
- movs r0, 0
- strh r0, [r4, 0x10]
-_080AEED4:
- strh r5, [r3, 0x3A]
- movs r0, 0x3
- strh r0, [r3, 0x3C]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
-_080AEEE0:
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _080AEF02
- movs r5, 0x12
- ldrsh r0, [r4, r5]
- cmp r0, 0
- ble _080AEF02
- ldrh r1, [r4, 0x26]
- ldrh r6, [r4, 0x24]
- adds r1, r6
- strh r1, [r4, 0x24]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x6F
- bl PlaySE12WithPanning
-_080AEF02:
- movs r0, 0x12
- ldrsh r3, [r4, r0]
- ldrh r2, [r4, 0x16]
- cmp r3, 0
- bge _080AEF18
- lsls r0, r2, 16
- asrs r0, 16
- movs r5, 0x18
- ldrsh r1, [r4, r5]
- cmp r0, r1
- ble _080AEF28
-_080AEF18:
- cmp r3, 0
- ble _080AEF4C
- lsls r0, r2, 16
- asrs r0, 16
- movs r6, 0x18
- ldrsh r1, [r4, r6]
- cmp r0, r1
- blt _080AEF4C
-_080AEF28:
- 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 _080AEF58
- .align 2, 0
-_080AEF3C: .4byte gUnknown_83E62A8
-_080AEF40: .4byte gSprites
-_080AEF44: .4byte 0x000003ff
-_080AEF48: .4byte 0xfffffc00
-_080AEF4C:
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- lsls r0, 3
- adds r0, r2, r0
- strh r0, [r4, 0x16]
- movs r0, 0
-_080AEF58:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80AEE74
-
- thumb_func_start sub_80AEF60
-sub_80AEF60: @ 80AEF60
- 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 _080AEF96
- ldr r3, _080AEF9C @ =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
-_080AEF96:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AEF9C: .4byte gTasks
- thumb_func_end sub_80AEF60
-
- thumb_func_start sub_80AEFA0
-sub_80AEFA0: @ 80AEFA0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080AEFC4 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080AF01C
- cmp r0, 0x1
- bgt _080AEFC8
- cmp r0, 0
- beq _080AEFCE
- b _080AF052
- .align 2, 0
-_080AEFC4: .4byte gTasks
-_080AEFC8:
- cmp r0, 0x2
- beq _080AF044
- b _080AF052
-_080AEFCE:
- ldr r0, _080AF018 @ =gBattleAnimTarget
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r5, 0x26]
- strh r0, [r5, 0x24]
- cmp r0, 0x10
- ble _080AEFF8
- adds r2, r0, 0
-_080AEFE8:
- adds r1, r2, 0
- subs r1, 0x20
- adds r2, r1, 0
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x10
- bgt _080AEFE8
- strh r1, [r5, 0x24]
-_080AEFF8:
- ldr r4, _080AF018 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074480
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl sub_807685C
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x2
- strh r0, [r5, 0x20]
- b _080AF03C
- .align 2, 0
-_080AF018: .4byte gBattleAnimTarget
-_080AF01C:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080AF052
- movs r0, 0
- strh r0, [r5, 0xA]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80AF058
- lsls r0, 24
- cmp r0, 0
- beq _080AF052
-_080AF03C:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080AF052
-_080AF044:
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080AF052
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080AF052:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80AEFA0
-
thumb_func_start sub_80AF058
sub_80AF058: @ 80AF058
push {r4,r5,lr}
diff --git a/asm/battle_anim_effects_1.s b/asm/battle_anim_effects_1.s
new file mode 100644
index 000000000..d9df7add2
--- /dev/null
+++ b/asm/battle_anim_effects_1.s
@@ -0,0 +1,9882 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80A22E8
+sub_80A22E8: @ 80A22E8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080A231C @ =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, _080A2320 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2324
+ ldrh r0, [r5, 0x8]
+ negs r0, r0
+ b _080A2326
+ .align 2, 0
+_080A231C: .4byte gBattleAnimArgs
+_080A2320: .4byte gBattleAnimAttacker
+_080A2324:
+ ldrh r0, [r5, 0x8]
+_080A2326:
+ strh r0, [r4, 0x34]
+ ldr r0, _080A2338 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0xA]
+ strh r0, [r4, 0x36]
+ ldr r0, _080A233C @ =sub_80A2340
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2338: .4byte gBattleAnimArgs
+_080A233C: .4byte sub_80A2340
+ thumb_func_end sub_80A22E8
+
+ thumb_func_start sub_80A2340
+sub_80A2340: @ 80A2340
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080A237C
+ 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 _080A2382
+_080A237C:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A2382:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2340
+
+ thumb_func_start sub_80A2388
+sub_80A2388: @ 80A2388
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r0, _080A23C8 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r5, _080A23CC @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, _080A23D0 @ =sub_8075590
+ str r0, [r4, 0x1C]
+ ldr r1, _080A23D4 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A23C8: .4byte gBattleAnimArgs
+_080A23CC: .4byte gBattleAnimAttacker
+_080A23D0: .4byte sub_8075590
+_080A23D4: .4byte move_anim_8074EE0
+ thumb_func_end sub_80A2388
+
+ thumb_func_start sub_80A23D8
+sub_80A23D8: @ 80A23D8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r5, _080A2420 @ =gBattleAnimArgs
+ ldrb r1, [r5, 0x6]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r5, _080A2424 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, _080A2428 @ =sub_8075590
+ str r0, [r4, 0x1C]
+ ldr r1, _080A242C @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2420: .4byte gBattleAnimArgs
+_080A2424: .4byte gBattleAnimTarget
+_080A2428: .4byte sub_8075590
+_080A242C: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A23D8
+
+ thumb_func_start sub_80A2430
+sub_80A2430: @ 80A2430
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r6, _080A2480 @ =gBattleAnimArgs
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r5, _080A2484 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ 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 sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r6, 0x6]
+ strh r0, [r4, 0x38]
+ ldr r1, _080A2488 @ =sub_80A248C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2480: .4byte gBattleAnimArgs
+_080A2484: .4byte gBattleAnimTarget
+_080A2488: .4byte sub_80A248C
+ thumb_func_end sub_80A2430
+
+ thumb_func_start sub_80A248C
+sub_80A248C: @ 80A248C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A24A2
+ adds r0, r4, 0
+ bl DestroySprite
+ b _080A24F6
+_080A24A2:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ ble _080A24BC
+ ldr r0, _080A24B8 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_807685C
+ adds r0, 0x1
+ b _080A24C6
+ .align 2, 0
+_080A24B8: .4byte gBattleAnimTarget
+_080A24BC:
+ ldr r0, _080A24FC @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_807685C
+ adds r0, 0x6
+_080A24C6:
+ 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]
+_080A24F6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A24FC: .4byte gBattleAnimTarget
+ thumb_func_end sub_80A248C
+
+ thumb_func_start sub_80A2500
+sub_80A2500: @ 80A2500
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080A2570 @ =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 _080A255A
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ movs r0, 0x6
+ strh r0, [r5, 0x8]
+ ldr r1, _080A2574 @ =gBattleAnimArgs
+ movs r0, 0xF
+ strh r0, [r1]
+ strh r2, [r1, 0x2]
+ movs r0, 0x50
+ strh r0, [r1, 0x4]
+ strh r2, [r1, 0x6]
+ ldr r4, _080A2578 @ =gUnknown_83E2A88
+ ldr r0, _080A257C @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_807685C
+ 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
+_080A255A:
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xF
+ bne _080A2568
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080A2568:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2570: .4byte gTasks
+_080A2574: .4byte gBattleAnimArgs
+_080A2578: .4byte gUnknown_83E2A88
+_080A257C: .4byte gBattleAnimTarget
+ thumb_func_end sub_80A2500
+
+ thumb_func_start sub_80A2580
+sub_80A2580: @ 80A2580
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075114
+ ldr r6, _080A25C4 @ =gBattleAnimArgs
+ ldrh r0, [r6, 0x6]
+ strh r0, [r4, 0x2E]
+ ldr r5, _080A25C8 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_8075068
+ ldr r0, _080A25CC @ =sub_80A25D0
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A25C4: .4byte gBattleAnimArgs
+_080A25C8: .4byte gBattleAnimAttacker
+_080A25CC: .4byte sub_80A25D0
+ thumb_func_end sub_80A2580
+
+ thumb_func_start sub_80A25D0
+sub_80A25D0: @ 80A25D0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A25E4
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A25E4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A25D0
+
+ thumb_func_start sub_80A25EC
+sub_80A25EC: @ 80A25EC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl Random
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x7
+ ands r1, r0
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r4, _080A2634 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2638
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x14
+ b _080A263C
+ .align 2, 0
+_080A2634: .4byte gBattleAnimAttacker
+_080A2638:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x14
+_080A263C:
+ strh r0, [r5, 0x20]
+ bl Random
+ 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, _080A269C @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ 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 sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8075804
+ bl Random
+ 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, _080A26A0 @ =sub_80A26A4
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A269C: .4byte gBattleAnimTarget
+_080A26A0: .4byte sub_80A26A4
+ thumb_func_end sub_80A25EC
+
+ thumb_func_start sub_80A26A4
+sub_80A26A4: @ 80A26A4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_807578C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A26BA
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+ b _080A26EA
+_080A26BA:
+ 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 _080A26D6
+ ldrh r0, [r4, 0x3A]
+ b _080A26DA
+_080A26D6:
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+_080A26DA:
+ 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]
+_080A26EA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A26A4
+
+ thumb_func_start sub_80A26F0
+sub_80A26F0: @ 80A26F0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r0, _080A2750 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2710
+ ldr r1, _080A2754 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080A2710:
+ ldr r4, _080A2754 @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r5, _080A2758 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8074480
+ 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_8075068
+ ldr r0, _080A275C @ =sub_80A2760
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2750: .4byte gBattleAnimAttacker
+_080A2754: .4byte gBattleAnimArgs
+_080A2758: .4byte gBattleAnimTarget
+_080A275C: .4byte sub_80A2760
+ thumb_func_end sub_80A26F0
+
+ thumb_func_start sub_80A2760
+sub_80A2760: @ 80A2760
+ push {r4,lr}
+ adds r4, r0, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A278A
+ 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, _080A2790 @ =sub_8074C44
+ str r0, [r4, 0x1C]
+ ldr r1, _080A2794 @ =sub_80A2798
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+_080A278A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2790: .4byte sub_8074C44
+_080A2794: .4byte sub_80A2798
+ thumb_func_end sub_80A2760
+
+ thumb_func_start sub_80A2798
+sub_80A2798: @ 80A2798
+ 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, _080A27C8 @ =sub_8074C44
+ str r0, [r4, 0x1C]
+ ldr r1, _080A27CC @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A27C8: .4byte sub_8074C44
+_080A27CC: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A2798
+
+ thumb_func_start sub_80A27D0
+sub_80A27D0: @ 80A27D0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075114
+ ldr r5, _080A2814 @ =gBattleAnimArgs
+ ldrb r1, [r5, 0x8]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080A27FA
+ ldrb r0, [r4, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4, 0x1]
+_080A27FA:
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x30]
+ ldr r1, _080A2818 @ =sub_80A281C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2814: .4byte gBattleAnimArgs
+_080A2818: .4byte sub_80A281C
+ thumb_func_end sub_80A27D0
+
+ thumb_func_start sub_80A281C
+sub_80A281C: @ 80A281C
+ 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 _080A2870
+ ldr r0, _080A286C @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_8076884
+ 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 _080A2894
+ .align 2, 0
+_080A286C: .4byte gBattleAnimTarget
+_080A2870:
+ ldr r0, _080A28C0 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_8076884
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080A2884
+ movs r2, 0x3
+_080A2884:
+ 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
+_080A2894:
+ 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 _080A28B8
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A28B8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A28C0: .4byte gBattleAnimTarget
+ thumb_func_end sub_80A281C
+
+ thumb_func_start sub_80A28C4
+sub_80A28C4: @ 80A28C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A28DE
+ bl sub_8075290
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A28E6
+_080A28DE:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _080A2918
+_080A28E6:
+ ldr r0, _080A2904 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A2908
+ movs r0, 0x2
+ movs r1, 0x4
+ movs r2, 0x3
+ bl SetAnimBgAttribute
+ b _080A2912
+ .align 2, 0
+_080A2904: .4byte gBattleAnimTarget
+_080A2908:
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+_080A2912:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080A2918:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A28C4
+
+ thumb_func_start sub_80A2920
+sub_80A2920: @ 80A2920
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8075160
+ ldr r5, _080A2968 @ =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, _080A296C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x4]
+ adds r0, r5
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ movs r0, 0x40
+ strh r0, [r4, 0x38]
+ ldr r1, _080A2970 @ =sub_80A2974
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2968: .4byte gBattleAnimArgs
+_080A296C: .4byte gBattleAnimAttacker
+_080A2970: .4byte sub_80A2974
+ thumb_func_end sub_80A2920
+
+ thumb_func_start sub_80A2974
+sub_80A2974: @ 80A2974
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A29E0
+ 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 _080A29C0
+ ldr r0, _080A29BC @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_807685C
+ subs r0, 0x1
+ b _080A29CA
+ .align 2, 0
+_080A29BC: .4byte gBattleAnimAttacker
+_080A29C0:
+ ldr r0, _080A29DC @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_807685C
+ adds r0, 0x1
+_080A29CA:
+ 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 _080A29E6
+ .align 2, 0
+_080A29DC: .4byte gBattleAnimAttacker
+_080A29E0:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A29E6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2974
+
+ thumb_func_start sub_80A29EC
+sub_80A29EC: @ 80A29EC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r5, _080A2A34 @ =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, _080A2A38 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x4]
+ adds r0, r5
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ movs r0, 0x40
+ strh r0, [r4, 0x38]
+ ldr r1, _080A2A3C @ =sub_80A2A40
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2A34: .4byte gBattleAnimArgs
+_080A2A38: .4byte gBattleAnimAttacker
+_080A2A3C: .4byte sub_80A2A40
+ thumb_func_end sub_80A29EC
+
+ thumb_func_start sub_80A2A40
+sub_80A2A40: @ 80A2A40
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A2A98
+ 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 _080A2A78
+ adds r0, r1, 0
+ subs r0, 0xBB
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bhi _080A2A8C
+_080A2A78:
+ 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]
+_080A2A8C:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080A2A9E
+_080A2A98:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A2A9E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2A40
+
+ thumb_func_start sub_80A2AA4
+sub_80A2AA4: @ 80A2AA4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080A2AE0 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r1, _080A2AE4 @ =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, _080A2AE8 @ =sub_80A2AEC
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2AE0: .4byte gBattleAnimAttacker
+_080A2AE4: .4byte gBattleAnimArgs
+_080A2AE8: .4byte sub_80A2AEC
+ thumb_func_end sub_80A2AA4
+
+ thumb_func_start sub_80A2AEC
+sub_80A2AEC: @ 80A2AEC
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x32]
+ movs r2, 0x32
+ ldrsh r3, [r1, r2]
+ cmp r3, 0
+ bne _080A2B20
+ ldrh r0, [r1, 0x30]
+ movs r2, 0x1
+ ands r2, r0
+ cmp r2, 0
+ beq _080A2B0E
+ movs r0, 0x80
+ strh r0, [r1, 0x2E]
+ strh r3, [r1, 0x30]
+ strh r3, [r1, 0x32]
+ b _080A2B14
+_080A2B0E:
+ strh r2, [r1, 0x2E]
+ strh r2, [r1, 0x30]
+ strh r2, [r1, 0x32]
+_080A2B14:
+ ldr r0, _080A2B1C @ =sub_80A2B38
+ str r0, [r1, 0x1C]
+ b _080A2B34
+ .align 2, 0
+_080A2B1C: .4byte sub_80A2B38
+_080A2B20:
+ 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]
+_080A2B34:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2AEC
+
+ thumb_func_start sub_80A2B38
+sub_80A2B38: @ 80A2B38
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A2B58 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2B5C
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x19
+ bl Sin
+ negs r0, r0
+ b _080A2B66
+ .align 2, 0
+_080A2B58: .4byte gBattleAnimAttacker
+_080A2B5C:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x19
+ bl Sin
+_080A2B66:
+ 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 _080A2B86
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+_080A2B86:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x50
+ ble _080A2B94
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A2B94:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2B38
+
+ thumb_func_start sub_80A2B9C
+sub_80A2B9C: @ 80A2B9C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r0, _080A2BF0 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2BBC
+ ldr r1, _080A2BF4 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080A2BBC:
+ ldr r6, _080A2BF4 @ =gBattleAnimArgs
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ movs r1, 0xC
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080A2BFC
+ ldr r4, _080A2BF8 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x6]
+ adds r0, r6
+ b _080A2C1C
+ .align 2, 0
+_080A2BF0: .4byte gBattleAnimAttacker
+_080A2BF4: .4byte gBattleAnimArgs
+_080A2BF8: .4byte gBattleAnimTarget
+_080A2BFC:
+ ldr r0, _080A2C48 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_8076D9C
+ 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
+_080A2C1C:
+ strh r0, [r5, 0x36]
+ ldr r0, _080A2C4C @ =gBattleAnimArgs
+ ldrh r0, [r0, 0xA]
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_8075068
+ ldr r0, _080A2C50 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ adds r4, r0, 0
+ ldr r0, _080A2C48 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080A2C54
+ movs r0, 0x1
+ b _080A2C56
+ .align 2, 0
+_080A2C48: .4byte gBattleAnimTarget
+_080A2C4C: .4byte gBattleAnimArgs
+_080A2C50: .4byte gBattleAnimAttacker
+_080A2C54:
+ movs r0, 0
+_080A2C56:
+ strh r0, [r5, 0x2E]
+ ldr r0, _080A2C64 @ =sub_80A2C68
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2C64: .4byte sub_80A2C68
+ thumb_func_end sub_80A2B9C
+
+ thumb_func_start sub_80A2C68
+sub_80A2C68: @ 80A2C68
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ movs r7, 0
+ ldrh r5, [r6, 0x2E]
+ ldrh r4, [r6, 0x3C]
+ movs r0, 0x1
+ strh r0, [r6, 0x2E]
+ adds r0, r6, 0
+ bl AnimateBallThrow
+ ldrh r0, [r6, 0x3C]
+ strh r5, [r6, 0x2E]
+ lsls r4, 16
+ asrs r4, 16
+ cmp r4, 0xC8
+ ble _080A2C9A
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x37
+ bgt _080A2C9A
+ ldrh r0, [r6, 0x6]
+ cmp r0, 0
+ bne _080A2CA0
+ adds r0, 0x1
+ strh r0, [r6, 0x6]
+_080A2C9A:
+ ldrh r0, [r6, 0x6]
+ cmp r0, 0
+ beq _080A2CD2
+_080A2CA0:
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _080A2CD2
+ 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 _080A2CD2
+ movs r7, 0x1
+_080A2CD2:
+ 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 _080A2CFC
+ movs r0, 0x22
+ ldrsh r1, [r6, r0]
+ movs r2, 0x26
+ ldrsh r0, [r6, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080A2CFC
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080A2CFE
+_080A2CFC:
+ movs r7, 0x1
+_080A2CFE:
+ cmp r7, 0
+ beq _080A2D08
+ adds r0, r6, 0
+ bl DestroyAnimSprite
+_080A2D08:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2C68
+
+ thumb_func_start sub_80A2D10
+sub_80A2D10: @ 80A2D10
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A2D3C
+ bl sub_8075290
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A2D3C
+ ldr r0, _080A2D64 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0x1
+ bl sub_8076D9C
+_080A2D3C:
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x20
+ strh r0, [r4, 0x22]
+ ldr r1, _080A2D68 @ =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, _080A2D6C @ =sub_80A2D70
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2D64: .4byte gBattleAnimTarget
+_080A2D68: .4byte gBattleAnimArgs
+_080A2D6C: .4byte sub_80A2D70
+ thumb_func_end sub_80A2D10
+
+ thumb_func_start sub_80A2D70
+sub_80A2D70: @ 80A2D70
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xFF
+ bne _080A2D86
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x2
+ strh r0, [r4, 0x22]
+ b _080A2D94
+_080A2D86:
+ cmp r0, 0
+ ble _080A2D94
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x2
+ strh r0, [r4, 0x22]
+ subs r0, r1, 0x2
+ strh r0, [r4, 0x30]
+_080A2D94:
+ 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 _080A2DAC
+ adds r0, r2, r3
+ strh r0, [r4, 0x38]
+_080A2DAC:
+ 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 _080A2DEC
+ ldr r0, _080A2DE8 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_8076884
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ b _080A2DFA
+ .align 2, 0
+_080A2DE8: .4byte gBattleAnimTarget
+_080A2DEC:
+ ldr r0, _080A2E24 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_8076884
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+_080A2DFA:
+ 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 _080A2E1E
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A2E1E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2E24: .4byte gBattleAnimTarget
+ thumb_func_end sub_80A2D70
+
+ thumb_func_start sub_80A2E28
+sub_80A2E28: @ 80A2E28
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_8075114
+ adds r2, r5, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r4, _080A2E5C @ =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, _080A2E60 @ =sub_80A2E64
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2E5C: .4byte gBattleAnimArgs
+_080A2E60: .4byte sub_80A2E64
+ thumb_func_end sub_80A2E28
+
+ thumb_func_start sub_80A2E64
+sub_80A2E64: @ 80A2E64
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A2E94 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080A2E98 @ =0x0000ffff
+ cmp r1, r0
+ bne _080A2E8E
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0x2E]
+ ldr r0, _080A2E9C @ =sub_80A2EA0
+ str r0, [r4, 0x1C]
+_080A2E8E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2E94: .4byte gBattleAnimArgs
+_080A2E98: .4byte 0x0000ffff
+_080A2E9C: .4byte sub_80A2EA0
+ thumb_func_end sub_80A2E64
+
+ thumb_func_start sub_80A2EA0
+sub_80A2EA0: @ 80A2EA0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A2EB8
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0xB
+ b _080A2EBC
+_080A2EB8:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0xB
+_080A2EBC:
+ 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 _080A2ED8
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x32]
+_080A2ED8:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080A2F06
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080A2F00
+ ldrh r1, [r4, 0x3A]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ b _080A2F06
+_080A2F00:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A2F06:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2EA0
+
+ thumb_func_start sub_80A2F0C
+sub_80A2F0C: @ 80A2F0C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080A2F38 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _080A2F3C
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _080A2F62
+ .align 2, 0
+_080A2F38: .4byte gSprites
+_080A2F3C:
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl sub_80758E0
+ ldr r1, _080A2F68 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, _080A2F6C @ =gBattleAnimArgs
+ ldrh r1, [r2]
+ strh r1, [r0, 0x8]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0xA]
+ movs r1, 0x80
+ lsls r1, 1
+ strh r1, [r0, 0x1E]
+ ldr r1, _080A2F70 @ =sub_80A2F74
+ str r1, [r0]
+_080A2F62:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2F68: .4byte gTasks
+_080A2F6C: .4byte gBattleAnimArgs
+_080A2F70: .4byte sub_80A2F74
+ thumb_func_end sub_80A2F0C
+
+ thumb_func_start sub_80A2F74
+sub_80A2F74: @ 80A2F74
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080A2FF4 @ =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, _080A2FF8 @ =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, _080A2FFC @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2FBE
+ ldrh r0, [r5, 0x24]
+ negs r0, r0
+ strh r0, [r5, 0x24]
+_080A2FBE:
+ 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_8076440
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080A2FEC
+ strh r0, [r4, 0x8]
+ ldr r0, _080A3000 @ =sub_80A3004
+ str r0, [r4]
+_080A2FEC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2FF4: .4byte gTasks
+_080A2FF8: .4byte gSprites
+_080A2FFC: .4byte gBattleAnimTarget
+_080A3000: .4byte sub_80A3004
+ thumb_func_end sub_80A2F74
+
+ thumb_func_start sub_80A3004
+sub_80A3004: @ 80A3004
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080A3050 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080A3054 @ =0x0000ffff
+ cmp r1, r0
+ bne _080A3060
+ ldr r0, _080A3058 @ =gTasks
+ lsls r2, r3, 2
+ adds r1, r2, r3
+ lsls r1, 3
+ adds r6, r1, r0
+ movs r1, 0x8
+ ldrsh r5, [r6, r1]
+ adds r4, r0, 0
+ cmp r5, 0
+ bne _080A3074
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_8075980
+ ldr r1, _080A305C @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ strh r5, [r0, 0x24]
+ strh r5, [r0, 0x26]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ b _080A308E
+ .align 2, 0
+_080A3050: .4byte gBattleAnimArgs
+_080A3054: .4byte 0x0000ffff
+_080A3058: .4byte gTasks
+_080A305C: .4byte gSprites
+_080A3060:
+ ldr r1, _080A3094 @ =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 _080A308E
+_080A3074:
+ 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 _080A308E
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+_080A308E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3094: .4byte gTasks
+ thumb_func_end sub_80A3004
+
+ thumb_func_start sub_80A3098
+sub_80A3098: @ 80A3098
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080A30AA
+ cmp r0, 0x1
+ beq _080A3104
+ b _080A3156
+_080A30AA:
+ ldr r6, _080A30FC @ =gBattleAnimTarget
+ ldrb r0, [r6]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A30C2
+ ldr r1, _080A3100 @ =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1]
+_080A30C2:
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ ldr r4, _080A3100 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8074480
+ 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 _080A3156
+ .align 2, 0
+_080A30FC: .4byte gBattleAnimTarget
+_080A3100: .4byte gBattleAnimArgs
+_080A3104:
+ 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 _080A3156
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+ movs r0, 0x19
+ strh r0, [r5, 0x2E]
+ ldr r4, _080A315C @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080A3160 @ =sub_8075764
+ str r0, [r5, 0x1C]
+ ldr r1, _080A3164 @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+_080A3156:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A315C: .4byte gBattleAnimAttacker
+_080A3160: .4byte sub_8075764
+_080A3164: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A3098
+
+ thumb_func_start sub_80A3168
+sub_80A3168: @ 80A3168
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080A31D4
+ ldr r4, _080A31E0 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, _080A31E4 @ =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 _080A31D4
+ 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]
+_080A31D4:
+ ldr r0, _080A31E8 @ =sub_80A32DC
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A31E0: .4byte gBattleAnimAttacker
+_080A31E4: .4byte gBattleAnimArgs
+_080A31E8: .4byte sub_80A32DC
+ thumb_func_end sub_80A3168
+
+ thumb_func_start sub_80A31EC
+sub_80A31EC: @ 80A31EC
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x4
+ mov r9, r0
+ ldr r4, _080A32C8 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ mov r8, r0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r6, _080A32CC @ =gBattleAnimTarget
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8074480
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8074480
+ 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, _080A32D0 @ =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, _080A32D4 @ =sub_80A32DC
+ str r0, [r1, 0x1C]
+ ldr r1, _080A32D8 @ =gUnknown_203999C
+ 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
+ .align 2, 0
+_080A32C8: .4byte gBattleAnimAttacker
+_080A32CC: .4byte gBattleAnimTarget
+_080A32D0: .4byte gBattleAnimArgs
+_080A32D4: .4byte sub_80A32DC
+_080A32D8: .4byte gUnknown_203999C
+ thumb_func_end sub_80A31EC
+
+ thumb_func_start sub_80A32DC
+sub_80A32DC: @ 80A32DC
+ 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 _080A331C
+ 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]
+_080A331C:
+ movs r2, 0x2E
+ ldrsh r1, [r3, r2]
+ movs r2, 0x32
+ ldrsh r0, [r3, r2]
+ cmp r1, r0
+ ble _080A332E
+ adds r0, r3, 0
+ bl DestroyAnimSprite
+_080A332E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A32DC
+
+ thumb_func_start sub_80A3334
+sub_80A3334: @ 80A3334
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080A3374
+ ldr r5, _080A33B0 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ ldr r4, _080A33B4 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r2, [r4]
+ adds r0, r2
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8074480
+ 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]
+_080A3374:
+ 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 _080A33AA
+ adds r0, r6, 0
+ bl DestroyAnimSprite
+_080A33AA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A33B0: .4byte gBattleAnimAttacker
+_080A33B4: .4byte gBattleAnimArgs
+ thumb_func_end sub_80A3334
+
+ thumb_func_start sub_80A33B8
+sub_80A33B8: @ 80A33B8
+ 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_80A33B8
+
+ thumb_func_start sub_80A33E0
+sub_80A33E0: @ 80A33E0
+ 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 _080A341A
+ movs r2, 0x20
+ negs r2, r2
+ b _080A3422
+_080A341A:
+ cmp r2, 0xFF
+ bne _080A3422
+ movs r2, 0x88
+ lsls r2, 1
+_080A3422:
+ 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 _080A3474
+ 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 _080A3476
+_080A3474:
+ movs r0, 0x1
+_080A3476:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A33E0
+
+ thumb_func_start sub_80A3484
+sub_80A3484: @ 80A3484
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xA
+ bne _080A3498
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080A3498:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x32
+ ble _080A34AC
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A34AC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3484
+
+ thumb_func_start sub_80A34B4
+sub_80A34B4: @ 80A34B4
+ 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 _080A34DE
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x2E]
+_080A34DE:
+ 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_80A33E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A350E
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x2E]
+ ldr r0, _080A3514 @ =sub_80A3484
+ str r0, [r4, 0x1C]
+_080A350E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3514: .4byte sub_80A3484
+ thumb_func_end sub_80A34B4
+
+ thumb_func_start sub_80A3518
+sub_80A3518: @ 80A3518
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_8075160
+ ldr r4, _080A3560 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080A3564 @ =gBattleAnimAttacker
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ ldrb r4, [r4]
+ cmp r0, r4
+ bne _080A3568
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80A33B8
+ movs r0, 0x1
+ b _080A357A
+ .align 2, 0
+_080A3560: .4byte gBattleAnimTarget
+_080A3564: .4byte gBattleAnimAttacker
+_080A3568:
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80A33B8
+ movs r0, 0x3
+_080A357A:
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, _080A358C @ =sub_80A34B4
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A358C: .4byte sub_80A34B4
+ thumb_func_end sub_80A3518
+
+ thumb_func_start sub_80A3590
+sub_80A3590: @ 80A3590
+ 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 _080A35BA
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x2E]
+_080A35BA:
+ 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_80A33E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A35EC
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x2E]
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A35EC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3590
+
+ thumb_func_start sub_80A35F4
+sub_80A35F4: @ 80A35F4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _080A3630 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080A3638
+ strh r0, [r5, 0x3A]
+ adds r0, r6, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x28
+ bl sub_80A33B8
+ movs r0, 0x3
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, _080A3634 @ =sub_80A34B4
+ b _080A3662
+ .align 2, 0
+_080A3630: .4byte gBattleAnimTarget
+_080A3634: .4byte sub_80A34B4
+_080A3638:
+ movs r0, 0xFF
+ strh r0, [r5, 0x3A]
+ adds r0, r6, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A3650
+ movs r0, 0
+ strh r0, [r5, 0x3A]
+_080A3650:
+ adds r0, r5, 0
+ movs r1, 0x28
+ bl sub_80A33B8
+ movs r0, 0x3
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, _080A366C @ =sub_80A3590
+_080A3662:
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A366C: .4byte sub_80A3590
+ thumb_func_end sub_80A35F4
+
+ thumb_func_start sub_80A3670
+sub_80A3670: @ 80A3670
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A368A
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8075114
+ ldr r0, _080A36B0 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x30]
+_080A368A:
+ 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 _080A36AA
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A36AA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A36B0: .4byte gBattleAnimArgs
+ thumb_func_end sub_80A3670
+
+ thumb_func_start sub_80A36B4
+sub_80A36B4: @ 80A36B4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_8075114
+ ldr r4, _080A36FC @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080A3700 @ =gBattleAnimTarget
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ ldrb r4, [r4]
+ cmp r0, r4
+ bne _080A3704
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80A33B8
+ movs r0, 0x1
+ b _080A3716
+ .align 2, 0
+_080A36FC: .4byte gBattleAnimAttacker
+_080A3700: .4byte gBattleAnimTarget
+_080A3704:
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80A33B8
+ movs r0, 0x3
+_080A3716:
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, _080A3728 @ =sub_80A372C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3728: .4byte sub_80A372C
+ thumb_func_end sub_80A36B4
+
+ thumb_func_start sub_80A372C
+sub_80A372C: @ 80A372C
+ 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 _080A3756
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x2E]
+_080A3756:
+ 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 _080A378A
+ movs r0, 0x3F
+ bl sub_8073A44
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x76
+ bl PlaySE12WithPanning
+_080A378A:
+ adds r0, r4, 0
+ bl sub_80A33E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A37B2
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x2E]
+ ldr r0, _080A37B8 @ =sub_80A3484
+ str r0, [r4, 0x1C]
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8073A44
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x76
+ bl PlaySE12WithPanning
+_080A37B2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A37B8: .4byte sub_80A3484
+ thumb_func_end sub_80A372C
+
+ thumb_func_start sub_80A37BC
+sub_80A37BC: @ 80A37BC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A3850
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A37E4
+ ldr r0, _080A37E0 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0x2]
+ strh r1, [r4, 0x30]
+ movs r1, 0x78
+ strh r1, [r4, 0x20]
+ adds r5, r0, 0
+ b _080A3806
+ .align 2, 0
+_080A37E0: .4byte gBattleAnimArgs
+_080A37E4:
+ ldr r0, _080A3840 @ =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 _080A37FA
+ adds r2, r3, 0
+ adds r2, 0xDF
+_080A37FA:
+ asrs r0, r2, 8
+ lsls r0, 8
+ subs r0, r1, r0
+ strh r0, [r4, 0x30]
+ movs r0, 0x46
+ strh r0, [r4, 0x20]
+_080A3806:
+ 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, _080A3844 @ =sub_80A3858
+ str r0, [r4, 0x1C]
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xBE
+ bhi _080A3848
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+ b _080A384E
+ .align 2, 0
+_080A3840: .4byte gBattleAnimArgs
+_080A3844: .4byte sub_80A3858
+_080A3848:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+_080A384E:
+ strb r0, [r1]
+_080A3850:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A37BC
+
+ thumb_func_start sub_80A3858
+sub_80A3858: @ 80A3858
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080A386A
+ cmp r0, 0x1
+ beq _080A389A
+ b _080A38BA
+_080A386A:
+ ldrh r5, [r4, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4E
+ ble _080A3882
+ movs r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _080A38BA
+_080A3882:
+ 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 _080A38BA
+_080A389A:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080A38BA
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080A38BA
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ strh r0, [r4, 0x32]
+ ldr r0, _080A38C0 @ =sub_80A38C4
+ str r0, [r4, 0x1C]
+_080A38BA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A38C0: .4byte sub_80A38C4
+ thumb_func_end sub_80A3858
+
+ thumb_func_start sub_80A38C4
+sub_80A38C4: @ 80A38C4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _080A3908 @ =gUnknown_83E2F78
+ 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 _080A3910
+ adds r0, r5, 0x2
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x7F
+ bne _080A38FC
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080A390C @ =sub_80A397C
+ str r0, [r4, 0x1C]
+_080A38FC:
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080A3976
+ .align 2, 0
+_080A3908: .4byte gUnknown_83E2F78
+_080A390C: .4byte sub_80A397C
+_080A3910:
+ 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 sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A395E
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xBE
+ bhi _080A3956
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+ b _080A395C
+_080A3956:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+_080A395C:
+ strb r0, [r1]
+_080A395E:
+ 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]
+_080A3976:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A38C4
+
+ thumb_func_start sub_80A397C
+sub_80A397C: @ 80A397C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x14
+ ble _080A398E
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A398E:
+ 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_80A397C
+
+ thumb_func_start sub_80A39C0
+sub_80A39C0: @ 80A39C0
+ 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, _080A3B14 @ =gTasks
+ adds r5, r0, r1
+ ldr r4, _080A3B18 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ bl sub_807685C
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ strh r0, [r5, 0x10]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x14]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x16]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8076B2C
+ strh r0, [r5, 0x1C]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8076B2C
+ 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 _080A3A28
+ movs r1, 0x1
+_080A3A28:
+ 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, _080A3B1C @ =gUnknown_83E2FF0
+ 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 _080A3A60
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080A3A60:
+ ldr r4, _080A3B20 @ =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_80A3F04
+ 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_8075068
+ ldr r0, _080A3B24 @ =sub_80A3B28
+ str r0, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3B14: .4byte gTasks
+_080A3B18: .4byte gBattleAnimTarget
+_080A3B1C: .4byte gUnknown_83E2FF0
+_080A3B20: .4byte gSprites
+_080A3B24: .4byte sub_80A3B28
+ thumb_func_end sub_80A39C0
+
+ thumb_func_start sub_80A3B28
+sub_80A3B28: @ 80A3B28
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080A3B6C @ =gTasks
+ adds r6, r0, r1
+ movs r0, 0xC
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A3B70 @ =gSprites
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r5, [r6, r1]
+ cmp r5, 0x7
+ bne _080A3B50
+ b _080A3D80
+_080A3B50:
+ cmp r5, 0x7
+ bgt _080A3B9E
+ cmp r5, 0x3
+ bne _080A3B5A
+ b _080A3C72
+_080A3B5A:
+ cmp r5, 0x3
+ bgt _080A3B74
+ cmp r5, 0x1
+ beq _080A3C04
+ cmp r5, 0x1
+ bgt _080A3C54
+ cmp r5, 0
+ beq _080A3BE6
+ b _080A3EFC
+ .align 2, 0
+_080A3B6C: .4byte gTasks
+_080A3B70: .4byte gSprites
+_080A3B74:
+ cmp r5, 0x5
+ bne _080A3B7A
+ b _080A3CE8
+_080A3B7A:
+ cmp r5, 0x5
+ ble _080A3B80
+ b _080A3D62
+_080A3B80:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80A3F24
+ adds r0, r4, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A3B96
+ b _080A3EFC
+_080A3B96:
+ movs r0, 0x5
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080A3EFA
+_080A3B9E:
+ cmp r5, 0xB
+ bne _080A3BA4
+ b _080A3E64
+_080A3BA4:
+ cmp r5, 0xB
+ bgt _080A3BD2
+ cmp r5, 0x9
+ bne _080A3BAE
+ b _080A3DD2
+_080A3BAE:
+ cmp r5, 0x9
+ ble _080A3BB4
+ b _080A3E48
+_080A3BB4:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80A3F24
+ adds r0, r4, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A3BCA
+ b _080A3EFC
+_080A3BCA:
+ movs r0, 0x9
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080A3EFA
+_080A3BD2:
+ cmp r5, 0xD
+ bne _080A3BD8
+ b _080A3ED6
+_080A3BD8:
+ cmp r5, 0xD
+ bge _080A3BDE
+ b _080A3EB6
+_080A3BDE:
+ cmp r5, 0xFF
+ bne _080A3BE4
+ b _080A3EE6
+_080A3BE4:
+ b _080A3EFC
+_080A3BE6:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80A3F24
+ adds r0, r4, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A3BFC
+ b _080A3EFC
+_080A3BFC:
+ movs r0, 0x1
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080A3EFA
+_080A3C04:
+ 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_80A3F04
+ 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_8075068
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080A3EFA
+_080A3C54:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80A3F24
+ adds r0, r4, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A3C6A
+ b _080A3EFC
+_080A3C6A:
+ movs r0, 0x3
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080A3EFA
+_080A3C72:
+ 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_80A3F04
+ 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_8075068
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080A3EFA
+_080A3CE8:
+ 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_80A3F04
+ 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_8075068
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080A3EFA
+_080A3D62:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80A3F24
+ adds r0, r4, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A3D78
+ b _080A3EFC
+_080A3D78:
+ movs r0, 0x7
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080A3EFA
+_080A3D80:
+ 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_80A3F04
+ 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_8075068
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080A3EFA
+_080A3DD2:
+ 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_80A3F04
+ 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_8075068
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080A3EFA
+_080A3E48:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80A3F24
+ adds r0, r4, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A3EFC
+ movs r0, 0xB
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080A3EFA
+_080A3E64:
+ 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_80A3F04
+ 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_8075068
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080A3EFA
+_080A3EB6:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80A3F24
+ adds r0, r4, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A3EFC
+ adds r0, r4, 0
+ bl DestroySprite
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080A3EFA
+_080A3ED6:
+ movs r1, 0x20
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080A3EFC
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+ b _080A3EFC
+_080A3EE6:
+ ldrh r0, [r6, 0xA]
+ adds r0, 0x1
+ strh r0, [r6, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080A3EFC
+ movs r0, 0
+ strh r0, [r6, 0xA]
+ ldrh r0, [r6, 0x26]
+_080A3EFA:
+ strh r0, [r6, 0x8]
+_080A3EFC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3B28
+
+ thumb_func_start sub_80A3F04
+sub_80A3F04: @ 80A3F04
+ push {lr}
+ movs r2, 0x8
+ movs r3, 0x36
+ ldrsh r1, [r0, r3]
+ movs r3, 0x22
+ ldrsh r0, [r0, r3]
+ cmp r1, r0
+ bge _080A3F1A
+ negs r0, r2
+ lsls r0, 16
+ lsrs r2, r0, 16
+_080A3F1A:
+ lsls r0, r2, 16
+ asrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A3F04
+
+ thumb_func_start sub_80A3F24
+sub_80A3F24: @ 80A3F24
+ 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 _080A3FBA
+ movs r0, 0
+ strh r0, [r6, 0x24]
+ ldr r0, _080A3FC4 @ =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, _080A3FC8 @ =gUnknown_83E2FF0
+ 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 _080A3FBA
+ 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, _080A3FCC @ =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, _080A3FD0 @ =sub_80A3FD4
+ str r0, [r5]
+_080A3FBA:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3FC4: .4byte gSprites
+_080A3FC8: .4byte gUnknown_83E2FF0
+_080A3FCC: .4byte gTasks
+_080A3FD0: .4byte sub_80A3FD4
+ thumb_func_end sub_80A3F24
+
+ thumb_func_start sub_80A3FD4
+sub_80A3FD4: @ 80A3FD4
+ 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 _080A4036
+ 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 _080A4036
+ ldr r3, _080A403C @ =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
+_080A4036:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A403C: .4byte gTasks
+ thumb_func_end sub_80A3FD4
+
+ thumb_func_start sub_80A4040
+sub_80A4040: @ 80A4040
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r0, _080A4054 @ =gBattleAnimArgs
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A405C
+ ldr r0, _080A4058 @ =gBattleAnimAttacker
+ b _080A405E
+ .align 2, 0
+_080A4054: .4byte gBattleAnimArgs
+_080A4058: .4byte gBattleAnimAttacker
+_080A405C:
+ ldr r0, _080A407C @ =gBattleAnimTarget
+_080A405E:
+ ldrb r6, [r0]
+ adds r0, r6, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A4088
+ movs r0, 0
+ strh r0, [r4, 0x36]
+ ldr r1, _080A4080 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x32]
+ ldr r0, _080A4084 @ =0x0000fff0
+ b _080A4098
+ .align 2, 0
+_080A407C: .4byte gBattleAnimTarget
+_080A4080: .4byte gBattleAnimArgs
+_080A4084: .4byte 0x0000fff0
+_080A4088:
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ ldr r1, _080A40BC @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r4, 0x32]
+ movs r0, 0x80
+ lsls r0, 1
+_080A4098:
+ 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 _080A40CE
+ cmp r0, 0x1
+ bgt _080A40C0
+ cmp r0, 0
+ beq _080A40CA
+ b _080A4138
+ .align 2, 0
+_080A40BC: .4byte gBattleAnimArgs
+_080A40C0:
+ cmp r0, 0x2
+ beq _080A40D4
+ cmp r0, 0x3
+ beq _080A4100
+ b _080A4138
+_080A40CA:
+ ldrh r0, [r5]
+ b _080A40E4
+_080A40CE:
+ ldrh r0, [r5]
+ strh r0, [r4, 0x22]
+ b _080A411A
+_080A40D4:
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5]
+ adds r0, r5
+_080A40E4:
+ strh r0, [r4, 0x22]
+ adds r0, r6, 0
+ bl sub_8076884
+ 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 _080A4138
+_080A4100:
+ ldr r0, _080A4144 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r7, [r7]
+ adds r0, r7
+ strh r0, [r4, 0x22]
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+_080A411A:
+ adds r0, r6, 0
+ bl sub_8076884
+ 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]
+_080A4138:
+ ldr r0, _080A4148 @ =sub_80A414C
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4144: .4byte gBattleAnimTarget
+_080A4148: .4byte sub_80A414C
+ thumb_func_end sub_80A4040
+
+ thumb_func_start sub_80A414C
+sub_80A414C: @ 80A414C
+ 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, _080A41A0 @ =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 _080A41A4
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ movs r5, 0x20
+ ldrsh r1, [r4, r5]
+ adds r0, r1
+ cmp r0, 0xF7
+ ble _080A41BC
+ b _080A41B6
+ .align 2, 0
+_080A41A0: .4byte gSineTable
+_080A41A4:
+ 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 _080A41BC
+_080A41B6:
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080A41BC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A414C
+
+ thumb_func_start sub_80A41C4
+sub_80A41C4: @ 80A41C4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080A41E4 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080A41E8
+ cmp r0, 0x1
+ beq _080A421C
+ b _080A4276
+ .align 2, 0
+_080A41E4: .4byte gTasks
+_080A41E8:
+ ldr r0, _080A4214 @ =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, _080A4218 @ =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 _080A4276
+ .align 2, 0
+_080A4214: .4byte 0x0000274f
+_080A4218: .4byte 0x000027b0
+_080A421C:
+ ldrh r0, [r5, 0x1A]
+ adds r0, 0x1
+ movs r7, 0
+ strh r0, [r5, 0x1A]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080A4276
+ strh r7, [r5, 0x1A]
+ ldrh r0, [r5, 0x18]
+ ldrb r2, [r5, 0x1C]
+ ldr r4, _080A4290 @ =gUnknown_83E30F0
+ 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 _080A4276
+ 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 _080A4276
+ strh r7, [r5, 0x1E]
+_080A4276:
+ ldr r0, _080A4294 @ =gBattleAnimArgs
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080A428A
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080A428A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4290: .4byte gUnknown_83E30F0
+_080A4294: .4byte gBattleAnimArgs
+ thumb_func_end sub_80A41C4
+
+ thumb_func_start sub_80A4298
+sub_80A4298: @ 80A4298
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldr r1, _080A42B0 @ =gBattleAnimArgs
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080A42B4
+ adds r0, r6, 0
+ bl DestroyAnimSprite
+ b _080A438E
+ .align 2, 0
+_080A42B0: .4byte gBattleAnimArgs
+_080A42B4:
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080A42C4
+ ldr r4, _080A42C0 @ =gBattleAnimAttacker
+ b _080A42C6
+ .align 2, 0
+_080A42C0: .4byte gBattleAnimAttacker
+_080A42C4:
+ ldr r4, _080A4300 @ =gBattleAnimTarget
+_080A42C6:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080A4304 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0x8]
+ strh r1, [r6, 0x2E]
+ movs r3, 0x2
+ ldrsh r1, [r0, r3]
+ adds r7, r0, 0
+ cmp r1, 0
+ bne _080A4308
+ 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 _080A4318
+ .align 2, 0
+_080A4300: .4byte gBattleAnimTarget
+_080A4304: .4byte gBattleAnimArgs
+_080A4308:
+ 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]
+_080A4318:
+ ldrh r4, [r6, 0x20]
+ lsls r0, r4, 4
+ strh r0, [r6, 0x30]
+ ldrh r5, [r6, 0x22]
+ lsls r0, r5, 4
+ strh r0, [r6, 0x32]
+ movs r1, 0x38
+ ldrsh r0, [r6, r1]
+ movs r2, 0x20
+ ldrsh r1, [r6, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r3, 0x8
+ ldrsh r1, [r7, r3]
+ bl __divsi3
+ strh r0, [r6, 0x34]
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ movs r2, 0x22
+ ldrsh r1, [r6, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r3, 0x8
+ ldrsh r1, [r7, r3]
+ bl __divsi3
+ strh r0, [r6, 0x36]
+ ldrh r0, [r6, 0x38]
+ subs r0, r4
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r6, 0x3A]
+ subs r1, r5
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_8075B30
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A437A
+ ldr r1, _080A4398 @ =0xffff8000
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080A437A:
+ movs r3, 0x80
+ lsls r3, 1
+ str r4, [sp]
+ adds r0, r6, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8075A1C
+ ldr r0, _080A439C @ =sub_80A43A0
+ str r0, [r6, 0x1C]
+_080A438E:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4398: .4byte 0xffff8000
+_080A439C: .4byte sub_80A43A0
+ thumb_func_end sub_80A4298
+
+ thumb_func_start sub_80A43A0
+sub_80A43A0: @ 80A43A0
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r3, [r2, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _080A43D0
+ 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 _080A43D6
+_080A43D0:
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080A43D6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A43A0
+
+ thumb_func_start sub_80A43DC
+sub_80A43DC: @ 80A43DC
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080A43F2
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080A43F2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A43DC
+
+ thumb_func_start sub_80A43F8
+sub_80A43F8: @ 80A43F8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A4418 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A4420
+ ldr r2, _080A441C @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ b _080A442C
+ .align 2, 0
+_080A4418: .4byte gBattleAnimAttacker
+_080A441C: .4byte gBattleAnimArgs
+_080A4420:
+ ldr r0, _080A4444 @ =gBattleAnimArgs
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+_080A442C:
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _080A4448 @ =sub_8074F6C
+ str r0, [r4, 0x1C]
+ ldr r1, _080A444C @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4444: .4byte gBattleAnimArgs
+_080A4448: .4byte sub_8074F6C
+_080A444C: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A43F8
+
+ thumb_func_start sub_80A4450
+sub_80A4450: @ 80A4450
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080A4488 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A446A
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080A446A:
+ ldr r0, _080A448C @ =sub_80A43DC
+ str r0, [r5, 0x1C]
+ ldr r4, _080A4490 @ =gBattleAnimArgs
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ adds r0, r5, 0
+ bl sub_8074FF8
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4488: .4byte gBattleAnimAttacker
+_080A448C: .4byte sub_80A43DC
+_080A4490: .4byte gBattleAnimArgs
+ thumb_func_end sub_80A4450
+
+ thumb_func_start sub_80A4494
+sub_80A4494: @ 80A4494
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080A44D4 @ =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, _080A44D8 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A44DC @ =sub_8074E70
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A44D4: .4byte gBattleAnimArgs
+_080A44D8: .4byte move_anim_8074EE0
+_080A44DC: .4byte sub_8074E70
+ thumb_func_end sub_80A4494
+
+ thumb_func_start sub_80A44E0
+sub_80A44E0: @ 80A44E0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080A4530 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A4514
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+_080A4514:
+ ldr r0, _080A4534 @ =sub_80A46CC
+ str r0, [r5, 0x1C]
+ ldr r0, _080A4538 @ =gBattleAnimArgs
+ movs r2, 0x4
+ ldrsh r1, [r0, r2]
+ adds r3, r0, 0
+ cmp r1, 0
+ bne _080A453C
+ ldrh r0, [r3]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ b _080A4550
+ .align 2, 0
+_080A4530: .4byte gBattleAnimTarget
+_080A4534: .4byte sub_80A46CC
+_080A4538: .4byte gBattleAnimArgs
+_080A453C:
+ 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]
+_080A4550:
+ ldrh r0, [r3, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldr r1, _080A4584 @ =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 _080A457E
+ negs r0, r1
+ strh r0, [r5, 0x30]
+_080A457E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4584: .4byte 0xfffffc00
+ thumb_func_end sub_80A44E0
+
+ thumb_func_start sub_80A4588
+sub_80A4588: @ 80A4588
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldr r0, _080A45A4 @ =gBattleAnimArgs
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _080A45A8
+ cmp r0, 0x1
+ ble _080A4624
+ cmp r0, 0x2
+ beq _080A45C8
+ b _080A4624
+ .align 2, 0
+_080A45A4: .4byte gBattleAnimArgs
+_080A45A8:
+ ldr r5, _080A45C4 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r4, 0x2
+ eors r0, r4
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r5]
+ eors r4, r0
+ adds r0, r4, 0
+ b _080A4634
+ .align 2, 0
+_080A45C4: .4byte gBattleAnimTarget
+_080A45C8:
+ ldr r5, _080A4620 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r5]
+ movs r2, 0x2
+ mov r8, r2
+ mov r1, r8
+ eors r0, r1
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A463E
+ ldrb r0, [r5]
+ mov r2, r8
+ eors r0, r2
+ movs r1, 0
+ bl sub_8074480
+ 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 sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ lsrs r4, r0, 1
+ b _080A463E
+ .align 2, 0
+_080A4620: .4byte gBattleAnimTarget
+_080A4624:
+ ldr r4, _080A4670 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r4]
+_080A4634:
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080A463E:
+ strh r7, [r6, 0x20]
+ strh r4, [r6, 0x22]
+ ldr r0, _080A4670 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A4656
+ ldrh r0, [r6, 0x22]
+ adds r0, 0x8
+ strh r0, [r6, 0x22]
+_080A4656:
+ ldr r0, _080A4674 @ =sub_80A46CC
+ str r0, [r6, 0x1C]
+ ldr r0, _080A4678 @ =gBattleAnimArgs
+ movs r2, 0x4
+ ldrsh r1, [r0, r2]
+ adds r3, r0, 0
+ cmp r1, 0
+ bne _080A467C
+ ldrh r0, [r3]
+ ldrh r1, [r6, 0x20]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ b _080A4690
+ .align 2, 0
+_080A4670: .4byte gBattleAnimTarget
+_080A4674: .4byte sub_80A46CC
+_080A4678: .4byte gBattleAnimArgs
+_080A467C:
+ 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]
+_080A4690:
+ ldrh r0, [r3, 0x2]
+ ldrh r2, [r6, 0x22]
+ adds r0, r2
+ strh r0, [r6, 0x22]
+ ldr r1, _080A46C8 @ =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 _080A46BE
+ negs r0, r1
+ strh r0, [r6, 0x30]
+_080A46BE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A46C8: .4byte 0xfffffc00
+ thumb_func_end sub_80A4588
+
+ thumb_func_start sub_80A46CC
+sub_80A46CC: @ 80A46CC
+ 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 _080A46EE
+ adds r0, r1, 0
+ adds r0, 0x18
+ b _080A46F2
+_080A46EE:
+ adds r0, r1, 0
+ subs r0, 0x18
+_080A46F2:
+ 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 _080A4728
+ ldr r1, _080A4730 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ movs r0, 0x3
+ strh r0, [r4, 0x2E]
+ ldr r0, _080A4734 @ =sub_8074C44
+ str r0, [r4, 0x1C]
+_080A4728:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4730: .4byte DestroyAnimSprite
+_080A4734: .4byte sub_8074C44
+ thumb_func_end sub_80A46CC
+
+ thumb_func_start sub_80A4738
+sub_80A4738: @ 80A4738
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x1
+ ble _080A47DC
+ ldrh r1, [r5, 0x34]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A4794
+ 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, _080A4790 @ =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 _080A47CA
+ .align 2, 0
+_080A4790: .4byte gSprites
+_080A4794:
+ adds r1, r5, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r3, _080A47D8 @ =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]
+_080A47CA:
+ movs r0, 0
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ b _080A47E0
+ .align 2, 0
+_080A47D8: .4byte gSprites
+_080A47DC:
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x32]
+_080A47E0:
+ movs r1, 0x34
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xA
+ bne _080A4810
+ movs r2, 0x2E
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080A4818 @ =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
+_080A4810:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4818: .4byte gSprites
+ thumb_func_end sub_80A4738
+
+ thumb_func_start sub_80A481C
+sub_80A481C: @ 80A481C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080A483C @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080A4840 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A4844
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r4]
+ subs r0, r1
+ b _080A484A
+ .align 2, 0
+_080A483C: .4byte gBattleAnimArgs
+_080A4840: .4byte gBattleAnimAttacker
+_080A4844:
+ ldrh r0, [r4]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_080A484A:
+ strh r0, [r5, 0x20]
+ ldr r4, _080A4878 @ =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, _080A487C @ =sub_80A4880
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4878: .4byte gBattleAnimArgs
+_080A487C: .4byte sub_80A4880
+ thumb_func_end sub_80A481C
+
+ thumb_func_start sub_80A4880
+sub_80A4880: @ 80A4880
+ 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 _080A48AC
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0
+ b _080A48B2
+_080A48AC:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0xE
+_080A48B2:
+ 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 _080A48E8
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A48E8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4880
+
+ thumb_func_start sub_80A48F0
+sub_80A48F0: @ 80A48F0
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A4906
+ ldr r1, _080A4964 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x8
+ strh r0, [r1, 0x2]
+_080A4906:
+ ldr r6, _080A4968 @ =gBattleAnimAttacker
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8074844
+ lsls r0, 24
+ ldr r4, _080A4964 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8074844
+ 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 _080A4944
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A496C
+_080A4944:
+ ldrb r0, [r6]
+ bl sub_8076884
+ 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 _080A4984
+ .align 2, 0
+_080A4964: .4byte gBattleAnimArgs
+_080A4968: .4byte gBattleAnimAttacker
+_080A496C:
+ ldrb r0, [r6]
+ bl sub_8076884
+ 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]
+_080A4984:
+ ldr r0, _080A49C8 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080A49CC @ =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, _080A49D0 @ =sub_80A49D4
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A49C8: .4byte gBattleAnimArgs
+_080A49CC: .4byte 0x00002828
+_080A49D0: .4byte sub_80A49D4
+ thumb_func_end sub_80A48F0
+
+ thumb_func_start sub_80A49D4
+sub_80A49D4: @ 80A49D4
+ 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 _080A4A32
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldr r1, _080A4A7C @ =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
+_080A4A0C:
+ 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 _080A4A0C
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ adds r0, 0x7
+ lsls r0, 1
+ adds r0, r6
+ strh r5, [r0]
+_080A4A32:
+ ldrh r2, [r4, 0x3C]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ ble _080A4A6C
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ ble _080A4A80
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+ strh r0, [r4, 0x3A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080A4A6C
+ 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
+_080A4A6C:
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080A4A80
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ b _080A4AC2
+ .align 2, 0
+_080A4A7C: .4byte gPlttBufferFaded
+_080A4A80:
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+ strh r0, [r4, 0x3A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080A4AC2
+ 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 _080A4AC2
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080A4AC8 @ =sub_8074F88
+ str r0, [r4, 0x1C]
+_080A4AC2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4AC8: .4byte sub_8074F88
+ thumb_func_end sub_80A49D4
+
+ thumb_func_start sub_80A4ACC
+sub_80A4ACC: @ 80A4ACC
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _080A4B2C @ =gBattleAnimTarget
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A4B30 @ =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, _080A4B34 @ =sub_80A4B38
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4B2C: .4byte gBattleAnimTarget
+_080A4B30: .4byte 0x0000ffe8
+_080A4B34: .4byte sub_80A4B38
+ thumb_func_end sub_80A4ACC
+
+ thumb_func_start sub_80A4B38
+sub_80A4B38: @ 80A4B38
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080A4B46
+ b _080A4C90
+_080A4B46:
+ lsls r0, 2
+ ldr r1, _080A4B50 @ =_080A4B54
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A4B50: .4byte _080A4B54
+ .align 2, 0
+_080A4B54:
+ .4byte _080A4B68
+ .4byte _080A4BCC
+ .4byte _080A4BE8
+ .4byte _080A4C66
+ .4byte _080A4C7A
+_080A4B68:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080A4B76
+ b _080A4C90
+_080A4B76:
+ 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 _080A4B98
+ ldrh r1, [r4, 0x3A]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080A4BA6
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x3A]
+ b _080A4BA6
+_080A4B98:
+ ldrh r1, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080A4BA6
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x3C]
+_080A4BA6:
+ 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 _080A4C90
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080A4C90
+ strh r0, [r4, 0x30]
+ b _080A4C72
+_080A4BCC:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080A4C90
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _080A4C72
+_080A4BE8:
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0x4
+ bl sub_80A4C98
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080A4C0A
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+_080A4C0A:
+ ldrh r0, [r4, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x32]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _080A4C90
+ movs r0, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080A4C30
+ ldrh r1, [r4, 0x3A]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080A4C3E
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x3A]
+ b _080A4C3E
+_080A4C30:
+ ldrh r1, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080A4C3E
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x3C]
+_080A4C3E:
+ 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 _080A4C90
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x10
+ bne _080A4C90
+ strh r1, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ b _080A4C72
+_080A4C66:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080A4C72:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080A4C90
+_080A4C7A:
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A4C90:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4B38
+
+ thumb_func_start sub_80A4C98
+sub_80A4C98: @ 80A4C98
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xB
+ bgt _080A4CAA
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x2
+ strh r0, [r4, 0x36]
+_080A4CAA:
+ 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 _080A4CC0
+ ldrh r0, [r4, 0x36]
+ subs r0, 0x2
+ strh r0, [r4, 0x36]
+_080A4CC0:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x2F
+ ble _080A4CCE
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x2
+ strh r0, [r4, 0x36]
+_080A4CCE:
+ 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 _080A4CF4
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+_080A4CF4:
+ adds r0, r5, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3B
+ ble _080A4D04
+ movs r0, 0
+ strh r0, [r4, 0x34]
+_080A4D04:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4C98
+
+ thumb_func_start sub_80A4D0C
+sub_80A4D0C: @ 80A4D0C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080A4D50 @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080A4D20
+ adds r0, r4, 0
+ bl sub_8074FCC
+_080A4D20:
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_8074FF8
+ 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, _080A4D54 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A4D58 @ =sub_8074D00
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4D50: .4byte gBattleAnimArgs
+_080A4D54: .4byte DestroyAnimSprite
+_080A4D58: .4byte sub_8074D00
+ thumb_func_end sub_80A4D0C
+
+ thumb_func_start sub_80A4D5C
+sub_80A4D5C: @ 80A4D5C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _080A4D70 @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A4D78
+ ldr r0, _080A4D74 @ =gBattleAnimAttacker
+ b _080A4D7A
+ .align 2, 0
+_080A4D70: .4byte gBattleAnimArgs
+_080A4D74: .4byte gBattleAnimAttacker
+_080A4D78:
+ ldr r0, _080A4DBC @ =gBattleAnimTarget
+_080A4D7A:
+ ldrb r6, [r0]
+ bl sub_8075290
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A4DC4
+ movs r1, 0x2
+ adds r0, r6, 0
+ eors r0, r1
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A4DC4
+ ldr r4, _080A4DC0 @ =gBattleAnimArgs
+ ldrb r1, [r4, 0xC]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ adds r0, r6, 0
+ bl sub_8076D9C
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ adds r0, r5, 0
+ bl sub_8074FF8
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ b _080A4E14
+ .align 2, 0
+_080A4DBC: .4byte gBattleAnimTarget
+_080A4DC0: .4byte gBattleAnimArgs
+_080A4DC4:
+ ldr r4, _080A4DE4 @ =gBattleAnimArgs
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080A4DE8
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x1
+ b _080A4DFA
+ .align 2, 0
+_080A4DE4: .4byte gBattleAnimArgs
+_080A4DE8:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x3
+_080A4DFA:
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+ strh r0, [r5, 0x22]
+ ldr r0, _080A4E34 @ =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r0, r5, 0
+ bl sub_8074FF8
+_080A4E14:
+ ldr r1, _080A4E34 @ =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, _080A4E38 @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A4E3C @ =sub_8074D00
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4E34: .4byte gBattleAnimArgs
+_080A4E38: .4byte DestroyAnimSprite
+_080A4E3C: .4byte sub_8074D00
+ thumb_func_end sub_80A4D5C
+
+ thumb_func_start sub_80A4E40
+sub_80A4E40: @ 80A4E40
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8074FCC
+ ldr r0, _080A4E6C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A4E74
+ ldr r0, _080A4E70 @ =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 _080A4E8E
+ .align 2, 0
+_080A4E6C: .4byte gBattleAnimAttacker
+_080A4E70: .4byte gBattleAnimArgs
+_080A4E74:
+ ldr r2, _080A4E98 @ =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
+_080A4E8E:
+ ldr r0, _080A4E9C @ =sub_80A4EA0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4E98: .4byte gBattleAnimArgs
+_080A4E9C: .4byte sub_80A4EA0
+ thumb_func_end sub_80A4E40
+
+ thumb_func_start sub_80A4EA0
+sub_80A4EA0: @ 80A4EA0
+ 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 _080A4ED8
+ 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]
+_080A4ED8:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080A4EEC
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A4EEC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4EA0
+
+ thumb_func_start sub_80A4EF4
+sub_80A4EF4: @ 80A4EF4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8074FCC
+ ldr r0, _080A4F24 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A4F2C
+ ldr r1, _080A4F28 @ =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 _080A4F4A
+ .align 2, 0
+_080A4F24: .4byte gBattleAnimAttacker
+_080A4F28: .4byte gBattleAnimArgs
+_080A4F2C:
+ ldr r2, _080A4F54 @ =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, _080A4F58 @ =0x0000ffff
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080A4F4A:
+ ldr r0, _080A4F5C @ =sub_80A4F60
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4F54: .4byte gBattleAnimArgs
+_080A4F58: .4byte 0x0000ffff
+_080A4F5C: .4byte sub_80A4F60
+ thumb_func_end sub_80A4EF4
+
+ thumb_func_start sub_80A4F60
+sub_80A4F60: @ 80A4F60
+ 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 _080A4FA4
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080A4FA4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4F60
+
+ thumb_func_start sub_80A4FAC
+sub_80A4FAC: @ 80A4FAC
+ 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, _080A4FCC @ =sub_8074C44
+ str r1, [r0, 0x1C]
+ ldr r1, _080A4FD0 @ =sub_80A4FD4
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4FCC: .4byte sub_8074C44
+_080A4FD0: .4byte sub_80A4FD4
+ thumb_func_end sub_80A4FAC
+
+ thumb_func_start sub_80A4FD4
+sub_80A4FD4: @ 80A4FD4
+ 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 _080A4FEA
+ cmp r0, 0x1
+ beq _080A5004
+ b _080A506A
+_080A4FEA:
+ strh r1, [r5, 0x2E]
+ ldr r0, _080A4FFC @ =sub_8074C44
+ str r0, [r5, 0x1C]
+ ldr r1, _080A5000 @ =sub_80A4FD4
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ b _080A506A
+ .align 2, 0
+_080A4FFC: .4byte sub_8074C44
+_080A5000: .4byte sub_80A4FD4
+_080A5004:
+ 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, _080A5078 @ =gUnknown_83E3548
+ 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, _080A507C @ =sub_8075590
+ str r0, [r5, 0x1C]
+ ldr r1, _080A5080 @ =sub_80A5084
+ 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 sub_8073A44
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xCB
+ bl PlaySE12WithPanning
+_080A506A:
+ ldrh r0, [r5, 0x38]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r5, 0x38]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5078: .4byte gUnknown_83E3548
+_080A507C: .4byte sub_8075590
+_080A5080: .4byte sub_80A5084
+ thumb_func_end sub_80A4FD4
+
+ thumb_func_start sub_80A5084
+sub_80A5084: @ 80A5084
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ cmp r0, 0x4
+ bne _080A50AC
+ movs r0, 0xA
+ strh r0, [r2, 0x2E]
+ ldr r0, _080A50A4 @ =sub_8074C44
+ str r0, [r2, 0x1C]
+ ldr r1, _080A50A8 @ =sub_80A50B8
+ adds r0, r2, 0
+ bl StoreSpriteCallbackInData6
+ b _080A50B0
+ .align 2, 0
+_080A50A4: .4byte sub_8074C44
+_080A50A8: .4byte sub_80A50B8
+_080A50AC:
+ ldr r0, _080A50B4 @ =sub_80A4FD4
+ str r0, [r2, 0x1C]
+_080A50B0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A50B4: .4byte sub_80A4FD4
+ thumb_func_end sub_80A5084
+
+ thumb_func_start sub_80A50B8
+sub_80A50B8: @ 80A50B8
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x6]
+ cmp r1, 0
+ bne _080A50E0
+ movs r0, 0x3
+ strh r0, [r5, 0x2E]
+ strh r1, [r5, 0x30]
+ strh r1, [r5, 0x32]
+ ldr r0, _080A50D8 @ =sub_8074C44
+ str r0, [r5, 0x1C]
+ ldr r1, _080A50DC @ =sub_80A5174
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ b _080A5160
+ .align 2, 0
+_080A50D8: .4byte sub_8074C44
+_080A50DC: .4byte sub_80A5174
+_080A50E0:
+ ldrh r0, [r5, 0x6]
+ cmp r0, 0x2
+ beq _080A5100
+ cmp r0, 0x2
+ bgt _080A50F0
+ cmp r0, 0x1
+ beq _080A50F6
+ b _080A5114
+_080A50F0:
+ cmp r0, 0x3
+ beq _080A5108
+ b _080A5114
+_080A50F6:
+ ldr r6, _080A50FC @ =0x0000fff8
+ adds r7, r6, 0
+ b _080A5118
+ .align 2, 0
+_080A50FC: .4byte 0x0000fff8
+_080A5100:
+ ldr r7, _080A5104 @ =0x0000fff8
+ b _080A5116
+ .align 2, 0
+_080A5104: .4byte 0x0000fff8
+_080A5108:
+ movs r7, 0x8
+ ldr r6, _080A5110 @ =0x0000fff8
+ b _080A5118
+ .align 2, 0
+_080A5110: .4byte 0x0000fff8
+_080A5114:
+ movs r7, 0x8
+_080A5116:
+ movs r6, 0x8
+_080A5118:
+ 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, _080A5168 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r7
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ ldr r0, _080A516C @ =sub_8075590
+ str r0, [r5, 0x1C]
+ ldr r1, _080A5170 @ =sub_80A5220
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+_080A5160:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5168: .4byte gBattleAnimTarget
+_080A516C: .4byte sub_8075590
+_080A5170: .4byte sub_80A5220
+ thumb_func_end sub_80A50B8
+
+ thumb_func_start sub_80A5174
+sub_80A5174: @ 80A5174
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A5194
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x3
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080A51A4
+ movs r0, 0x10
+ b _080A51A2
+_080A5194:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x3
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080A51A4
+ movs r0, 0
+_080A51A2:
+ strh r0, [r4, 0x30]
+_080A51A4:
+ 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_8075BE8
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080A5200 @ =0x00007fff
+ bl BlendPalettes
+ movs r3, 0x30
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x10
+ bne _080A520C
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ ldrb r1, [r4, 0x5]
+ lsrs r1, 4
+ lsls r0, r1, 5
+ ldr r2, _080A5204 @ =gPlttBufferUnfaded + 0x210
+ adds r0, r2
+ lsls r1, 4
+ ldr r3, _080A5208 @ =0x00000101
+ adds r2, r3, 0
+ orrs r1, r2
+ movs r2, 0x4
+ bl LoadPalette
+ movs r0, 0x3F
+ bl sub_8073A44
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xB9
+ bl PlaySE12WithPanning
+ b _080A5214
+ .align 2, 0
+_080A5200: .4byte 0x00007fff
+_080A5204: .4byte gPlttBufferUnfaded + 0x210
+_080A5208: .4byte 0x00000101
+_080A520C:
+ cmp r0, 0
+ bne _080A5214
+ ldr r0, _080A521C @ =sub_80A5220
+ str r0, [r4, 0x1C]
+_080A5214:
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A521C: .4byte sub_80A5220
+ thumb_func_end sub_80A5174
+
+ thumb_func_start sub_80A5220
+sub_80A5220: @ 80A5220
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080A523C @ =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080A5240 @ =0x0000ffff
+ cmp r1, r0
+ bne _080A5238
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ strh r0, [r2, 0x2E]
+ ldr r0, _080A5244 @ =sub_80A5248
+ str r0, [r2, 0x1C]
+_080A5238:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A523C: .4byte gBattleAnimArgs
+_080A5240: .4byte 0x0000ffff
+_080A5244: .4byte sub_80A5248
+ thumb_func_end sub_80A5220
+
+ thumb_func_start sub_80A5248
+sub_80A5248: @ 80A5248
+ 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 _080A527C
+ 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]
+_080A527C:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ bne _080A5290
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A5290:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5248
+
+ thumb_func_start sub_80A5298
+sub_80A5298: @ 80A5298
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _080A52B8 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r3, 0x6]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080A52BC
+ ldrh r0, [r3, 0x20]
+ subs r0, 0x18
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x22]
+ subs r0, 0x18
+ strh r0, [r3, 0x22]
+ b _080A530E
+ .align 2, 0
+_080A52B8: .4byte gBattleAnimArgs
+_080A52BC:
+ cmp r0, 0x2
+ bne _080A52D8
+ 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 _080A530A
+_080A52D8:
+ cmp r0, 0x3
+ bne _080A52F4
+ 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 _080A530A
+_080A52F4:
+ 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
+_080A530A:
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+_080A530E:
+ ldrh r2, [r3, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r4, _080A5334 @ =0x000003ff
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _080A5338 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldr r1, _080A533C @ =sub_80A4FAC
+ str r1, [r3, 0x1C]
+ adds r0, r3, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5334: .4byte 0x000003ff
+_080A5338: .4byte 0xfffffc00
+_080A533C: .4byte sub_80A4FAC
+ thumb_func_end sub_80A5298
+
+ thumb_func_start sub_80A5340
+sub_80A5340: @ 80A5340
+ 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, _080A5368 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _080A537C
+ cmp r0, 0x1
+ bgt _080A536C
+ cmp r0, 0
+ beq _080A5372
+ b _080A538C
+ .align 2, 0
+_080A5368: .4byte gBattleAnimArgs
+_080A536C:
+ cmp r0, 0x2
+ beq _080A5384
+ b _080A538C
+_080A5372:
+ ldr r0, _080A5378 @ =sub_80A5398
+ b _080A538E
+ .align 2, 0
+_080A5378: .4byte sub_80A5398
+_080A537C:
+ ldr r0, _080A5380 @ =sub_80A5474
+ b _080A538E
+ .align 2, 0
+_080A5380: .4byte sub_80A5474
+_080A5384:
+ ldr r0, _080A5388 @ =sub_80A54C4
+ b _080A538E
+ .align 2, 0
+_080A5388: .4byte sub_80A54C4
+_080A538C:
+ ldr r0, _080A5394 @ =sub_80A5584
+_080A538E:
+ str r0, [r3, 0x1C]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5394: .4byte sub_80A5584
+ thumb_func_end sub_80A5340
+
+ thumb_func_start sub_80A5398
+sub_80A5398: @ 80A5398
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x6
+ strh r0, [r4, 0x2E]
+ ldr r5, _080A53D8 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r2, 0x2
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _080A53B6
+ movs r1, 0x2
+_080A53B6:
+ strh r1, [r4, 0x30]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldr r1, _080A53DC @ =gUnknown_2023D44
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x34]
+ ldr r1, _080A53E0 @ =sub_80A53E8
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A53E4 @ =sub_8074DC4
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A53D8: .4byte gBattleAnimAttacker
+_080A53DC: .4byte gUnknown_2023D44
+_080A53E0: .4byte sub_80A53E8
+_080A53E4: .4byte sub_8074DC4
+ thumb_func_end sub_80A5398
+
+ thumb_func_start sub_80A53E8
+sub_80A53E8: @ 80A53E8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r0, 0x2E
+ ldrsh r6, [r5, r0]
+ cmp r6, 0
+ bne _080A5424
+ ldr r1, _080A5464 @ =gUnknown_2023D44
+ ldr r4, _080A5468 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r5, 0x34]
+ movs r1, 0
+ bl sub_80758E0
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3A]
+ ldr r2, _080A546C @ =0xfffffd00
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _080A5420
+ movs r0, 0xC0
+ lsls r0, 2
+ adds r1, r0, 0
+_080A5420:
+ strh r1, [r5, 0x36]
+ strh r6, [r5, 0x38]
+_080A5424:
+ 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_80759DC
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080A545E
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080A5470 @ =sub_80A5584
+ str r0, [r5, 0x1C]
+_080A545E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5464: .4byte gUnknown_2023D44
+_080A5468: .4byte gBattleAnimAttacker
+_080A546C: .4byte 0xfffffd00
+_080A5470: .4byte sub_80A5584
+ thumb_func_end sub_80A53E8
+
+ thumb_func_start sub_80A5474
+sub_80A5474: @ 80A5474
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x4
+ strh r0, [r4, 0x2E]
+ ldr r5, _080A54B4 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r1, 0x3
+ cmp r0, 0
+ beq _080A5492
+ movs r0, 0x3
+ negs r0, r0
+ adds r1, r0, 0
+_080A5492:
+ strh r1, [r4, 0x30]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldr r1, _080A54B8 @ =gUnknown_2023D44
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x34]
+ ldr r1, _080A54BC @ =sub_80A5584
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A54C0 @ =sub_8074DC4
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A54B4: .4byte gBattleAnimAttacker
+_080A54B8: .4byte gUnknown_2023D44
+_080A54BC: .4byte sub_80A5584
+_080A54C0: .4byte sub_8074DC4
+ thumb_func_end sub_80A5474
+
+ thumb_func_start sub_80A54C4
+sub_80A54C4: @ 80A54C4
+ 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 _080A54DE
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080A54E4 @ =sub_80A54E8
+ str r0, [r1, 0x1C]
+_080A54DE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A54E4: .4byte sub_80A54E8
+ thumb_func_end sub_80A54C4
+
+ thumb_func_start sub_80A54E8
+sub_80A54E8: @ 80A54E8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080A5538
+ ldr r1, _080A5524 @ =gUnknown_2023D44
+ ldr r4, _080A5528 @ =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 _080A552C
+ movs r0, 0xFC
+ lsls r0, 8
+ strh r0, [r5, 0x36]
+ movs r0, 0xC0
+ lsls r0, 4
+ b _080A5536
+ .align 2, 0
+_080A5524: .4byte gUnknown_2023D44
+_080A5528: .4byte gBattleAnimAttacker
+_080A552C:
+ movs r0, 0x80
+ lsls r0, 3
+ strh r0, [r5, 0x36]
+ movs r0, 0xF4
+ lsls r0, 8
+_080A5536:
+ strh r0, [r5, 0x38]
+_080A5538:
+ 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_80759DC
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080A5578
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8075980
+ ldr r0, _080A5580 @ =sub_80A5584
+ str r0, [r5, 0x1C]
+_080A5578:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5580: .4byte sub_80A5584
+ thumb_func_end sub_80A54E8
+
+ thumb_func_start sub_80A5584
+sub_80A5584: @ 80A5584
+ push {lr}
+ bl DestroyAnimSprite
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5584
+
+ thumb_func_start sub_80A5590
+sub_80A5590: @ 80A5590
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldr r1, _080A559C @ =sub_80A55A0
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080A559C: .4byte sub_80A55A0
+ thumb_func_end sub_80A5590
+
+ thumb_func_start sub_80A55A0
+sub_80A55A0: @ 80A55A0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080A55FA
+ cmp r5, 0x1
+ bgt _080A55B6
+ cmp r5, 0
+ beq _080A55BC
+ b _080A568E
+_080A55B6:
+ cmp r5, 0x2
+ beq _080A564C
+ b _080A568E
+_080A55BC:
+ strh r5, [r4, 0x30]
+ ldr r1, _080A5640 @ =gUnknown_2023D44
+ ldr r2, _080A5644 @ =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, _080A5648 @ =0xfffffe00
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _080A55E4
+ movs r0, 0x80
+ lsls r0, 2
+ adds r1, r0, 0
+_080A55E4:
+ strh r1, [r4, 0x36]
+ strh r5, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_80758E0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_080A55FA:
+ 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_80759DC
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080A568E
+ 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 _080A568E
+ .align 2, 0
+_080A5640: .4byte gUnknown_2023D44
+_080A5644: .4byte gBattleAnimAttacker
+_080A5648: .4byte 0xfffffe00
+_080A564C:
+ 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_80759DC
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080A568E
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8075980
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A568E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A55A0
+
+ thumb_func_start sub_80A5694
+sub_80A5694: @ 80A5694
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080A56D8 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldr r1, _080A56DC @ =gUnknown_2023D44
+ ldr r2, _080A56E0 @ =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, _080A56E4 @ =gBattleAnimArgs
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ cmp r1, 0
+ beq _080A56E8
+ cmp r1, 0x1
+ beq _080A5704
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+ b _080A5722
+ .align 2, 0
+_080A56D8: .4byte gTasks
+_080A56DC: .4byte gUnknown_2023D44
+_080A56E0: .4byte gBattleAnimAttacker
+_080A56E4: .4byte gBattleAnimArgs
+_080A56E8:
+ 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 _080A56FC
+ negs r0, r0
+ strh r0, [r5, 0x12]
+_080A56FC:
+ ldr r0, _080A5700 @ =sub_80A572C
+ b _080A5720
+ .align 2, 0
+_080A5700: .4byte sub_80A572C
+_080A5704:
+ 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 _080A571E
+ negs r0, r0
+ strh r0, [r5, 0x10]
+ negs r0, r1
+ strh r0, [r5, 0x12]
+_080A571E:
+ ldr r0, _080A5728 @ =sub_80A58EC
+_080A5720:
+ str r0, [r5]
+_080A5722:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5728: .4byte sub_80A58EC
+ thumb_func_end sub_80A5694
+
+ thumb_func_start sub_80A572C
+sub_80A572C: @ 80A572C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080A5750 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080A5746
+ b _080A58E6
+_080A5746:
+ lsls r0, 2
+ ldr r1, _080A5754 @ =_080A5758
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A5750: .4byte gTasks
+_080A5754: .4byte _080A5758
+ .align 2, 0
+_080A5758:
+ .4byte _080A576C
+ .4byte _080A579E
+ .4byte _080A57F8
+ .4byte _080A5870
+ .4byte _080A58B4
+_080A576C:
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ beq _080A577C
+ ldrh r2, [r4, 0x12]
+ ldrh r3, [r4, 0x10]
+ adds r2, r3
+ b _080A58C2
+_080A577C:
+ 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 _080A5792
+ movs r2, 0xC0
+ negs r2, r2
+ adds r1, r2, 0
+_080A5792:
+ strh r1, [r4, 0x12]
+ ldrb r0, [r4, 0x8]
+ movs r1, 0
+ bl sub_80758E0
+ b _080A58A8
+_080A579E:
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080A57C4
+ 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_80759DC
+ b _080A58D4
+_080A57C4:
+ movs r0, 0x8
+ strh r0, [r4, 0xE]
+ ldr r2, _080A57F4 @ =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 _080A57EA
+ movs r1, 0x2
+_080A57EA:
+ strh r1, [r4, 0x12]
+ movs r0, 0x1
+ strh r0, [r4, 0x14]
+ b _080A58A8
+ .align 2, 0
+_080A57F4: .4byte gSprites
+_080A57F8:
+ ldrh r2, [r4, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080A5854
+ ldrh r1, [r4, 0x14]
+ movs r3, 0x14
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080A5812
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x14]
+ b _080A58E6
+_080A5812:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _080A5834
+ ldr r2, _080A5830 @ =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 _080A5848
+ .align 2, 0
+_080A5830: .4byte gSprites
+_080A5834:
+ ldr r2, _080A5850 @ =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
+_080A5848:
+ strh r1, [r0, 0x24]
+ movs r0, 0x1
+ strh r0, [r4, 0x14]
+ b _080A58D4
+ .align 2, 0
+_080A5850: .4byte gSprites
+_080A5854:
+ ldr r2, _080A586C @ =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 _080A58A8
+ .align 2, 0
+_080A586C: .4byte gSprites
+_080A5870:
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080A5880
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _080A58E6
+_080A5880:
+ movs r0, 0x3
+ strh r0, [r4, 0xE]
+ ldr r2, _080A58B0 @ =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 _080A58A6
+ movs r1, 0x8
+_080A58A6:
+ strh r1, [r4, 0x12]
+_080A58A8:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ b _080A58E6
+ .align 2, 0
+_080A58B0: .4byte gSprites
+_080A58B4:
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080A58E0
+ ldrh r2, [r4, 0x12]
+ ldrh r0, [r4, 0x10]
+ adds r2, r0
+_080A58C2:
+ strh r2, [r4, 0x10]
+ ldr r3, _080A58DC @ =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]
+_080A58D4:
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _080A58E6
+ .align 2, 0
+_080A58DC: .4byte gSprites
+_080A58E0:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080A58E6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A572C
+
+ thumb_func_start sub_80A58EC
+sub_80A58EC: @ 80A58EC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080A5928 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080A592C
+ 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_80759DC
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _080A5938
+ .align 2, 0
+_080A5928: .4byte gTasks
+_080A592C:
+ ldrb r0, [r4, 0x8]
+ bl sub_8075980
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080A5938:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A58EC
+
+ thumb_func_start sub_80A5940
+sub_80A5940: @ 80A5940
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080A5954 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080A595C
+ ldr r4, _080A5958 @ =gBattleAnimAttacker
+ b _080A595E
+ .align 2, 0
+_080A5954: .4byte gBattleAnimArgs
+_080A5958: .4byte gBattleAnimAttacker
+_080A595C:
+ ldr r4, _080A599C @ =gBattleAnimTarget
+_080A595E:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ 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, _080A59A0 @ =sub_80A5A8C
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A59A4 @ =sub_8074F6C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A599C: .4byte gBattleAnimTarget
+_080A59A0: .4byte sub_80A5A8C
+_080A59A4: .4byte sub_8074F6C
+ thumb_func_end sub_80A5940
+
+ thumb_func_start sub_80A59A8
+sub_80A59A8: @ 80A59A8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080A59E0 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A59E4 @ =0x0000ffd0
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r1, _080A59E8 @ =sub_80A5A44
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A59EC @ =sub_8074F6C
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A59E0: .4byte gBattleAnimTarget
+_080A59E4: .4byte 0x0000ffd0
+_080A59E8: .4byte sub_80A5A44
+_080A59EC: .4byte sub_8074F6C
+ thumb_func_end sub_80A59A8
+
+ thumb_func_start sub_80A59F0
+sub_80A59F0: @ 80A59F0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _080A5A34 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A5A38 @ =gBattleAnimArgs
+ ldr r2, _080A5A3C @ =0x0000ffd0
+ adds r0, r2
+ ldrh r1, [r1]
+ adds r0, r1
+ movs r6, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ 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, _080A5A40 @ =sub_80A5A8C
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5A34: .4byte gBattleAnimTarget
+_080A5A38: .4byte gBattleAnimArgs
+_080A5A3C: .4byte 0x0000ffd0
+_080A5A40: .4byte sub_80A5A8C
+ thumb_func_end sub_80A59F0
+
+ thumb_func_start sub_80A5A44
+sub_80A5A44: @ 80A5A44
+ 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 _080A5A6E
+ movs r0, 0xC
+ strh r0, [r4, 0x2E]
+ movs r0, 0x8
+ strh r0, [r4, 0x30]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldr r1, _080A5A74 @ =sub_80A5A7C
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A5A78 @ =sub_8074CD0
+ str r0, [r4, 0x1C]
+_080A5A6E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5A74: .4byte sub_80A5A7C
+_080A5A78: .4byte sub_8074CD0
+ thumb_func_end sub_80A5A44
+
+ thumb_func_start sub_80A5A7C
+sub_80A5A7C: @ 80A5A7C
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ strh r1, [r0, 0x30]
+ ldr r1, _080A5A88 @ =sub_80A5A8C
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080A5A88: .4byte sub_80A5A8C
+ thumb_func_end sub_80A5A7C
+
+ thumb_func_start sub_80A5A8C
+sub_80A5A8C: @ 80A5A8C
+ 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 _080A5AD4
+ 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 _080A5AD4
+ adds r0, r3, 0
+ bl DestroyAnimSprite
+_080A5AD4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5A8C
+
+ thumb_func_start sub_80A5AD8
+sub_80A5AD8: @ 80A5AD8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080A5AEC @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080A5AF4
+ ldr r4, _080A5AF0 @ =gBattleAnimAttacker
+ b _080A5AF6
+ .align 2, 0
+_080A5AEC: .4byte gBattleAnimArgs
+_080A5AF0: .4byte gBattleAnimAttacker
+_080A5AF4:
+ ldr r4, _080A5B30 @ =gBattleAnimTarget
+_080A5AF6:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ 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, _080A5B34 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x6]
+ strh r0, [r5, 0x30]
+ ldr r0, _080A5B38 @ =sub_80A5B3C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5B30: .4byte gBattleAnimTarget
+_080A5B34: .4byte gBattleAnimArgs
+_080A5B38: .4byte sub_80A5B3C
+ thumb_func_end sub_80A5AD8
+
+ thumb_func_start sub_80A5B3C
+sub_80A5B3C: @ 80A5B3C
+ 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 _080A5B5C
+ movs r0, 0
+ strh r0, [r2, 0x2E]
+ ldrh r0, [r2, 0x22]
+ subs r0, 0x1
+ strh r0, [r2, 0x22]
+_080A5B5C:
+ 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 _080A5B78
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080A5B78:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5B3C
+
+ thumb_func_start sub_80A5B7C
+sub_80A5B7C: @ 80A5B7C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _080A5BC4 @ =gBattleAnimAttacker
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8074480
+ 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 sub_8073A44
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x38]
+ ldr r0, _080A5BC8 @ =sub_80A5BCC
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5BC4: .4byte gBattleAnimAttacker
+_080A5BC8: .4byte sub_80A5BCC
+ thumb_func_end sub_80A5B7C
+
+ thumb_func_start sub_80A5BCC
+sub_80A5BCC: @ 80A5BCC
+ 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 _080A5C38
+ 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 _080A5C1E
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080A5C1E
+ ldrh r1, [r4, 0x38]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xBB
+ bl PlaySE12WithPanning
+_080A5C1E:
+ 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 _080A5C38
+ strh r1, [r4, 0x32]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_080A5C38:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080A5C62
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ ble _080A5C62
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080A5C62
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A5C62:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5BCC
+
+ thumb_func_start sub_80A5C68
+sub_80A5C68: @ 80A5C68
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080A5CB2
+ ldr r4, _080A5CC8 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ ldr r5, _080A5CCC @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x2]
+ adds r0, r5
+ strh r0, [r6, 0x22]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A5CAC
+ ldrh r0, [r6, 0x22]
+ adds r0, 0xA
+ strh r0, [r6, 0x22]
+_080A5CAC:
+ ldrh r0, [r6, 0x2E]
+ adds r0, 0x1
+ strh r0, [r6, 0x2E]
+_080A5CB2:
+ ldr r0, _080A5CCC @ =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080A5CD0 @ =0x0000ffff
+ cmp r1, r0
+ bne _080A5CC2
+ adds r0, r6, 0
+ bl DestroyAnimSprite
+_080A5CC2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5CC8: .4byte gBattleAnimAttacker
+_080A5CCC: .4byte gBattleAnimArgs
+_080A5CD0: .4byte 0x0000ffff
+ thumb_func_end sub_80A5C68
+
+ thumb_func_start sub_80A5CD4
+sub_80A5CD4: @ 80A5CD4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080A5CF4 @ =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 _080A5D00
+ ldr r1, _080A5CF8 @ =gBattleAnimArgs
+ ldr r0, _080A5CFC @ =0x0000ffff
+ strh r0, [r1, 0xE]
+ b _080A5D3E
+ .align 2, 0
+_080A5CF4: .4byte gTasks
+_080A5CF8: .4byte gBattleAnimArgs
+_080A5CFC: .4byte 0x0000ffff
+_080A5D00:
+ cmp r0, 0x2
+ bne _080A5D0C
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+ b _080A5D44
+_080A5D0C:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080A5D44
+ 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 _080A5D44
+_080A5D3E:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+_080A5D44:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5CD4
+
+ thumb_func_start sub_80A5D4C
+sub_80A5D4C: @ 80A5D4C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8075114
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080A5D74 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080A5D78 @ =sub_80A5D7C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5D74: .4byte gBattleAnimArgs
+_080A5D78: .4byte sub_80A5D7C
+ thumb_func_end sub_80A5D4C
+
+ thumb_func_start sub_80A5D7C
+sub_80A5D7C: @ 80A5D7C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080A5D90
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x2E]
+ b _080A5DCC
+_080A5D90:
+ 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, _080A5DD4 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080A5DD8 @ =sub_8075590
+ str r0, [r5, 0x1C]
+ ldr r1, _080A5DDC @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+_080A5DCC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5DD4: .4byte gBattleAnimAttacker
+_080A5DD8: .4byte sub_8075590
+_080A5DDC: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A5D7C
+
+ thumb_func_start sub_80A5DE0
+sub_80A5DE0: @ 80A5DE0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080A5E30 @ =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 _080A5E28
+ 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 _080A5E28
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080A5E28:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5E30: .4byte gTasks
+ thumb_func_end sub_80A5DE0
+
+ thumb_func_start sub_80A5E34
+sub_80A5E34: @ 80A5E34
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r4, 0
+ ldr r0, _080A5E9C @ =gBattlersCount
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _080A5E90
+ ldr r6, _080A5EA0 @ =gBattleAnimArgs
+ ldr r5, _080A5EA4 @ =gUnknown_3004FF0
+_080A5E48:
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bne _080A5E64
+ adds r0, r4, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A5E64
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ bl SetHealthboxSpriteInvisible
+_080A5E64:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bne _080A5E82
+ adds r0, r4, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A5E82
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ bl SetHealthboxSpriteInvisible
+_080A5E82:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080A5E9C @ =gBattlersCount
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _080A5E48
+_080A5E90:
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5E9C: .4byte gBattlersCount
+_080A5EA0: .4byte gBattleAnimArgs
+_080A5EA4: .4byte gUnknown_3004FF0
+ thumb_func_end sub_80A5E34
+
+ thumb_func_start sub_80A5EA8
+sub_80A5EA8: @ 80A5EA8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ b _080A5EC2
+_080A5EB2:
+ ldr r0, _080A5ED8 @ =gUnknown_3004FF0
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ bl SetHealthboxSpriteVisible
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080A5EC2:
+ ldr r0, _080A5EDC @ =gBattlersCount
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _080A5EB2
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5ED8: .4byte gUnknown_3004FF0
+_080A5EDC: .4byte gBattlersCount
+ thumb_func_end sub_80A5EA8
+
+ thumb_func_start sub_80A5EE0
+sub_80A5EE0: @ 80A5EE0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A5EF6
+ movs r0, 0x30
+ strh r0, [r4, 0x20]
+ movs r0, 0x28
+ b _080A5EFE
+_080A5EF6:
+ ldr r0, _080A5F20 @ =gBattleAnimArgs
+ ldrh r1, [r0]
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+_080A5EFE:
+ 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, _080A5F24 @ =sub_80A5F28
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5F20: .4byte gBattleAnimArgs
+_080A5F24: .4byte sub_80A5F28
+ thumb_func_end sub_80A5EE0
+
+ thumb_func_start sub_80A5F28
+sub_80A5F28: @ 80A5F28
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080A5F3A
+ adds r0, r1, 0
+ bl DestroyAnimSprite
+_080A5F3A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5F28
+
+ thumb_func_start sub_80A5F40
+sub_80A5F40: @ 80A5F40
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A5F78 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ ldr r2, _080A5F7C @ =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, _080A5F80 @ =sub_80A5F84
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5F78: .4byte gBattleAnimAttacker
+_080A5F7C: .4byte gBattleAnimArgs
+_080A5F80: .4byte sub_80A5F84
+ thumb_func_end sub_80A5F40
+
+ thumb_func_start sub_80A5F84
+sub_80A5F84: @ 80A5F84
+ 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 _080A5FAE
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ ldrh r2, [r1, 0x32]
+ movs r3, 0x32
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x77
+ bgt _080A5FAE
+ ldrh r0, [r1, 0x22]
+ adds r0, 0x1
+ strh r0, [r1, 0x22]
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x32]
+_080A5FAE:
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080A5FBC
+ adds r0, r1, 0
+ bl DestroyAnimSprite
+_080A5FBC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5F84
+
+ thumb_func_start sub_80A5FC0
+sub_80A5FC0: @ 80A5FC0
+ 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_8075BE8
+ mov r8, r0
+ ldr r0, _080A6090 @ =0x0000ffff
+ mov r1, r8
+ ands r1, r0
+ mov r8, r1
+ ldr r0, _080A6094 @ =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_8075CB8
+ 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_80765C0
+ ldr r0, _080A6098 @ =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, _080A609C @ =0x000027d3
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0
+ mov r1, r10
+ orrs r4, r1
+ ldr r0, _080A60A0 @ =0x00007fbb
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _080A60A4 @ =sub_80A60A8
+ 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
+ .align 2, 0
+_080A6090: .4byte 0x0000ffff
+_080A6094: .4byte gTasks
+_080A6098: .4byte 0x000027d2
+_080A609C: .4byte 0x000027d3
+_080A60A0: .4byte 0x00007fbb
+_080A60A4: .4byte sub_80A60A8
+ thumb_func_end sub_80A5FC0
+
+ thumb_func_start sub_80A60A8
+sub_80A60A8: @ 80A60A8
+ 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, _080A60D0 @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080A6194
+ cmp r1, 0x1
+ bgt _080A60D4
+ cmp r1, 0
+ beq _080A60E2
+ b _080A6232
+ .align 2, 0
+_080A60D0: .4byte gTasks
+_080A60D4:
+ cmp r1, 0x2
+ bne _080A60DA
+ b _080A61EC
+_080A60DA:
+ cmp r1, 0x3
+ bne _080A60E0
+ b _080A6220
+_080A60E0:
+ b _080A6232
+_080A60E2:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080A60F0
+ b _080A6232
+_080A60F0:
+ 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 _080A613C
+ 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 _080A6146
+_080A613C:
+ ldr r7, _080A618C @ =0x00007fbb
+ mov r12, r7
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080A6146:
+ movs r2, 0x1
+ movs r3, 0
+ movs r1, 0
+_080A614C:
+ 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 _080A6178
+ movs r1, 0x1
+ ldr r2, _080A6190 @ =gPlttBufferFaded
+_080A6164:
+ 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 _080A6164
+_080A6178:
+ 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 _080A614C
+ b _080A6232
+ .align 2, 0
+_080A618C: .4byte 0x00007fbb
+_080A6190: .4byte gPlttBufferFaded
+_080A6194:
+ ldr r0, _080A61DC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080A6232
+ movs r2, 0
+ ldr r3, _080A61E0 @ =gSprites
+ movs r5, 0x14
+ adds r5, r3
+ mov r12, r5
+ ldr r7, _080A61E4 @ =gUnknown_83E3734
+ mov r8, r7
+ ldr r6, _080A61E8 @ =gUnknown_83E3764
+ movs r5, 0x1
+_080A61B2:
+ 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 _080A61C6
+ cmp r0, r6
+ bne _080A61CA
+_080A61C6:
+ adds r0, r1, r3
+ strh r5, [r0, 0x2E]
+_080A61CA:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3F
+ bls _080A61B2
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080A6214
+ .align 2, 0
+_080A61DC: .4byte gPaletteFade
+_080A61E0: .4byte gSprites
+_080A61E4: .4byte gUnknown_83E3734
+_080A61E8: .4byte gUnknown_83E3764
+_080A61EC:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _080A6232
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ bl sub_80765C8
+ ldr r1, _080A621C @ =0x00007fbb
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_080A6214:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080A6232
+ .align 2, 0
+_080A621C: .4byte 0x00007fbb
+_080A6220:
+ ldr r0, _080A6240 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080A6232
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080A6232:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6240: .4byte gPaletteFade
+ thumb_func_end sub_80A60A8
+
+ thumb_func_start sub_80A6244
+sub_80A6244: @ 80A6244
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080A62C8 @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bgt _080A6256
+ movs r0, 0x2
+ strh r0, [r6, 0x4]
+_080A6256:
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x7F
+ ble _080A6262
+ movs r0, 0x7F
+ strh r0, [r6, 0x4]
+_080A6262:
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r5, 0x30]
+ ldr r4, _080A62CC @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ 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 sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A62D4
+ 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, _080A62D0 @ =0xffffec00
+ b _080A62FA
+ .align 2, 0
+_080A62C8: .4byte gBattleAnimArgs
+_080A62CC: .4byte gBattleAnimTarget
+_080A62D0: .4byte 0xffffec00
+_080A62D4:
+ ldr r0, _080A6314 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A631C
+ 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
+_080A62FA:
+ bl __divsi3
+ strh r0, [r5, 0x34]
+ lsls r4, 7
+ strh r4, [r5, 0x36]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ ldr r0, _080A6318 @ =0xfffff600
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ b _080A6358
+ .align 2, 0
+_080A6314: .4byte gBattleAnimAttacker
+_080A6318: .4byte 0xfffff600
+_080A631C:
+ 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, _080A6364 @ =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]
+_080A6358:
+ ldr r0, _080A6368 @ =sub_80A636C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6364: .4byte 0xffffec00
+_080A6368: .4byte sub_80A636C
+ thumb_func_end sub_80A6244
+
+ thumb_func_start sub_80A636C
+sub_80A636C: @ 80A636C
+ 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 _080A63A2
+ ldrh r0, [r2, 0x3A]
+ strh r0, [r2, 0x20]
+ ldrh r0, [r2, 0x3C]
+ strh r0, [r2, 0x22]
+_080A63A2:
+ movs r1, 0x30
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080A63B0
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080A63B0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A636C
+
+ thumb_func_start sub_80A63B4
+sub_80A63B4: @ 80A63B4
+ 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, _080A6444 @ =gTasks
+ adds r6, r0, r1
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x8]
+ ldr r0, _080A6448 @ =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, _080A644C @ =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, _080A6450 @ =gPlttBufferUnfaded
+_080A640C:
+ 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 _080A640C
+ 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, _080A644C @ =gSprites
+ movs r1, 0x1C
+ adds r1, r7
+ mov r9, r1
+ b _080A6488
+ .align 2, 0
+_080A6444: .4byte gTasks
+_080A6448: .4byte 0x00002771
+_080A644C: .4byte gSprites
+_080A6450: .4byte gPlttBufferUnfaded
+_080A6454:
+ 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, _080A64BC @ =sub_80A653C
+ 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
+_080A6488:
+ cmp r5, 0x1
+ bhi _080A649A
+ movs r0, 0
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080A6454
+_080A649A:
+ ldr r0, _080A64C0 @ =sub_80A64E0
+ str r0, [r6]
+ ldr r0, _080A64C4 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A64C8
+ movs r1, 0x80
+ lsls r1, 2
+ movs r0, 0
+ bl ClearGpuRegBits
+ b _080A64D2
+ .align 2, 0
+_080A64BC: .4byte sub_80A653C
+_080A64C0: .4byte sub_80A64E0
+_080A64C4: .4byte gBattleAnimAttacker
+_080A64C8:
+ movs r1, 0x80
+ lsls r1, 3
+ movs r0, 0
+ bl ClearGpuRegBits
+_080A64D2:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A63B4
+
+ thumb_func_start sub_80A64E0
+sub_80A64E0: @ 80A64E0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080A6514 @ =gTasks
+ adds r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A6532
+ ldr r0, _080A6518 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A651C
+ movs r1, 0x80
+ lsls r1, 2
+ movs r0, 0
+ bl SetGpuRegBits
+ b _080A6526
+ .align 2, 0
+_080A6514: .4byte gTasks
+_080A6518: .4byte gBattleAnimAttacker
+_080A651C:
+ movs r1, 0x80
+ lsls r1, 3
+ movs r0, 0
+ bl SetGpuRegBits
+_080A6526:
+ ldr r0, _080A6538 @ =0x00002771
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080A6532:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6538: .4byte 0x00002771
+ thumb_func_end sub_80A64E0
+
+ thumb_func_start sub_80A653C
+sub_80A653C: @ 80A653C
+ 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 _080A6558
+ movs r0, 0
+ strh r0, [r5, 0x34]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+_080A6558:
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x40
+ ble _080A6580
+ ldr r2, _080A657C @ =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 _080A65C2
+ .align 2, 0
+_080A657C: .4byte gTasks
+_080A6580:
+ ldr r4, _080A65C8 @ =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]
+_080A65C2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A65C8: .4byte gSineTable
+ thumb_func_end sub_80A653C
+
+ thumb_func_start sub_80A65CC
+sub_80A65CC: @ 80A65CC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080A65E0 @ =DestroyAnimSprite
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A65E4 @ =sub_8074F6C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A65E0: .4byte DestroyAnimSprite
+_080A65E4: .4byte sub_8074F6C
+ thumb_func_end sub_80A65CC
+
+ thumb_func_start sub_80A65E8
+sub_80A65E8: @ 80A65E8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r4, _080A6698 @ =gUnknown_83E3898
+ ldrh r0, [r4]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xFF
+ beq _080A662C
+ lsls r0, r3, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r3, r0, 16
+ movs r2, 0x1
+ ldr r5, _080A669C @ =gPlttBufferFaded
+_080A6614:
+ 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 _080A6614
+_080A662C:
+ movs r4, 0x1
+ ldr r0, _080A6698 @ =gUnknown_83E3898
+ mov r8, r0
+_080A6632:
+ 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 _080A667A
+ lsls r0, r3, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r3, r0, 16
+ movs r2, 0x1
+ ldr r7, _080A669C @ =gPlttBufferFaded
+ ldr r6, _080A6698 @ =gUnknown_83E3898
+ adds r4, r5, 0
+_080A6660:
+ 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 _080A6660
+_080A667A:
+ mov r1, r12
+ lsls r0, r1, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080A6632
+ mov r0, r9
+ bl DestroyAnimVisualTask
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6698: .4byte gUnknown_83E3898
+_080A669C: .4byte gPlttBufferFaded
+ thumb_func_end sub_80A65E8
+
+ thumb_func_start sub_80A66A0
+sub_80A66A0: @ 80A66A0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0x1
+ ldr r6, _080A66D0 @ =gUnknown_83E3898
+_080A66AA:
+ 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 _080A66AA
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A66D0: .4byte gUnknown_83E3898
+ thumb_func_end sub_80A66A0
+
+ thumb_func_start sub_80A66D4
+sub_80A66D4: @ 80A66D4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ bl sub_8074FCC
+ ldr r4, _080A672C @ =gBattleAnimArgs
+ ldrb r1, [r4]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r2, _080A6730 @ =gUnknown_83E3898
+ 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 _080A6710
+ lsls r2, r0, 4
+ ldrb r1, [r5, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r5, 0x5]
+_080A6710:
+ ldrh r0, [r4, 0x2]
+ movs r1, 0
+ strh r0, [r5, 0x30]
+ strh r1, [r5, 0x32]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x34]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A6734
+ movs r6, 0x30
+ movs r3, 0x28
+ b _080A674E
+ .align 2, 0
+_080A672C: .4byte gBattleAnimArgs
+_080A6730: .4byte gUnknown_83E3898
+_080A6734:
+ ldr r4, _080A6784 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r3, r0, 24
+_080A674E:
+ 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_80A678C
+ ldr r0, _080A6788 @ =sub_80A67E4
+ str r0, [r5, 0x1C]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6784: .4byte gBattleAnimTarget
+_080A6788: .4byte sub_80A67E4
+ thumb_func_end sub_80A66D4
+
+ thumb_func_start sub_80A678C
+sub_80A678C: @ 80A678C
+ 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 _080A67AE
+ lsls r0, r1, 24
+ negs r0, r0
+ lsrs r1, r0, 24
+_080A67AE:
+ lsls r5, r2, 8
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ bl __divsi3
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _080A67C2
+ movs r4, 0x1
+_080A67C2:
+ 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_80A678C
+
+ thumb_func_start sub_80A67E4
+sub_80A67E4: @ 80A67E4
+ 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 _080A6800
+ adds r0, 0xFF
+_080A6800:
+ 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 _080A684E
+ lsls r0, r2, 16
+ asrs r1, r0, 16
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ blt _080A684E
+ cmp r1, 0x80
+ ble _080A6856
+_080A684E:
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+ b _080A68A6
+_080A6856:
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ beq _080A68A6
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, r1
+ ble _080A68A6
+ 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 _080A687E
+ strh r5, [r4, 0x30]
+_080A687E:
+ ldr r2, _080A68AC @ =gUnknown_83E3898
+ 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 _080A68A6
+ lsls r2, r0, 4
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+_080A68A6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A68AC: .4byte gUnknown_83E3898
+ thumb_func_end sub_80A67E4
+
+ thumb_func_start sub_80A68B0
+sub_80A68B0: @ 80A68B0
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r7, _080A6934 @ =gBattleAnimAttacker
+ ldrb r0, [r7]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A68CE
+ ldr r1, _080A6938 @ =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080A68CE:
+ ldrb r0, [r7]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ ldr r4, _080A6938 @ =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 sub_8074480
+ 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, _080A693C @ =sub_80A6940
+ str r0, [r6, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6934: .4byte gBattleAnimAttacker
+_080A6938: .4byte gBattleAnimArgs
+_080A693C: .4byte sub_80A6940
+ thumb_func_end sub_80A68B0
+
+ thumb_func_start sub_80A6940
+sub_80A6940: @ 80A6940
+ 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 _080A699E
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080A699E
+ 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 _080A699E
+ movs r0, 0x1
+ strh r0, [r4, 0x34]
+_080A699E:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x30
+ bne _080A69B2
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080A69B2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6940
+
+ thumb_func_start sub_80A69B8
+sub_80A69B8: @ 80A69B8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _080A69D8 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _080A69DC
+ 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 _080A69DE
+ .align 2, 0
+_080A69D8: .4byte gBattleAnimArgs
+_080A69DC:
+ ldr r6, _080A6A18 @ =0x0000fff0
+_080A69DE:
+ ldr r4, _080A6A1C @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+ movs r0, 0x8
+ strh r0, [r5, 0x2E]
+ ldr r0, _080A6A20 @ =sub_8074C44
+ str r0, [r5, 0x1C]
+ ldr r1, _080A6A24 @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6A18: .4byte 0x0000fff0
+_080A6A1C: .4byte gBattleAnimAttacker
+_080A6A20: .4byte sub_8074C44
+_080A6A24: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A69B8
+
+ thumb_func_start sub_80A6A28
+sub_80A6A28: @ 80A6A28
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_8074FCC
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x8
+ strh r0, [r4, 0x22]
+ ldr r5, _080A6AA0 @ =gBattleAnimArgs
+ ldrb r1, [r5, 0x2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r2, _080A6AA4 @ =gUnknown_83E3898
+ 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 _080A6A68
+ lsls r2, r0, 4
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+_080A6A68:
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ cmp r0, 0
+ bne _080A6A74
+ ldr r2, _080A6AA8 @ =0x0000ffe0
+_080A6A74:
+ movs r0, 0x28
+ strh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x20]
+ strh r1, [r4, 0x30]
+ lsls r0, r2, 16
+ asrs r0, 16
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ subs r0, 0x28
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x38]
+ ldr r0, _080A6AAC @ =sub_80A6AB0
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6AA0: .4byte gBattleAnimArgs
+_080A6AA4: .4byte gUnknown_83E3898
+_080A6AA8: .4byte 0x0000ffe0
+_080A6AAC: .4byte sub_80A6AB0
+ thumb_func_end sub_80A6A28
+
+ thumb_func_start sub_80A6AB0
+sub_80A6AB0: @ 80A6AB0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A6B00
+ 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 _080A6ADC
+ lsls r0, r1, 16
+ negs r0, r0
+ lsrs r1, r0, 16
+_080A6ADC:
+ 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 _080A6B06
+_080A6B00:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A6B06:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6AB0
+
+ thumb_func_start sub_80A6B0C
+sub_80A6B0C: @ 80A6B0C
+ 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 _080A6B2C
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_8076B2C
+ adds r0, 0x8
+ b _080A6B36
+_080A6B2C:
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_8076B2C
+ subs r0, 0x8
+_080A6B36:
+ strh r0, [r6, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8074480
+ adds r4, r0, 0
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8076B2C
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080A6B58
+ adds r0, 0x3
+_080A6B58:
+ asrs r0, 2
+ subs r0, r4, r0
+ strh r0, [r6, 0x22]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6B0C
+
+ thumb_func_start sub_80A6B64
+sub_80A6B64: @ 80A6B64
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080A6B78 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A6B80
+ ldr r0, _080A6B7C @ =gBattleAnimAttacker
+ b _080A6B82
+ .align 2, 0
+_080A6B78: .4byte gBattleAnimArgs
+_080A6B7C: .4byte gBattleAnimAttacker
+_080A6B80:
+ ldr r0, _080A6BC0 @ =gBattleAnimTarget
+_080A6B82:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A6B0C
+ adds r0, r4, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ ldr r0, _080A6BC4 @ =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, _080A6BC8 @ =sub_80A6BD0
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A6BCC @ =sub_8074F6C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6BC0: .4byte gBattleAnimTarget
+_080A6BC4: .4byte gBattleAnimArgs
+_080A6BC8: .4byte sub_80A6BD0
+_080A6BCC: .4byte sub_8074F6C
+ thumb_func_end sub_80A6B64
+
+ thumb_func_start sub_80A6BD0
+sub_80A6BD0: @ 80A6BD0
+ 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 _080A6BF8
+ ldr r1, _080A6C00 @ =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, _080A6C04 @ =sub_8074F6C
+ str r0, [r4, 0x1C]
+_080A6BF8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6C00: .4byte DestroyAnimSprite
+_080A6C04: .4byte sub_8074F6C
+ thumb_func_end sub_80A6BD0
+
+ thumb_func_start sub_80A6C08
+sub_80A6C08: @ 80A6C08
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A6C1C @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A6C24
+ ldr r0, _080A6C20 @ =gBattleAnimAttacker
+ b _080A6C26
+ .align 2, 0
+_080A6C1C: .4byte gBattleAnimArgs
+_080A6C20: .4byte gBattleAnimAttacker
+_080A6C24:
+ ldr r0, _080A6C44 @ =gBattleAnimTarget
+_080A6C26:
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ bl sub_80A6B0C
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r1, _080A6C48 @ =sub_80A6C50
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A6C4C @ =sub_8074F50
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6C44: .4byte gBattleAnimTarget
+_080A6C48: .4byte sub_80A6C50
+_080A6C4C: .4byte sub_8074F50
+ thumb_func_end sub_80A6C08
+
+ thumb_func_start sub_80A6C50
+sub_80A6C50: @ 80A6C50
+ 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 _080A6C76
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r1, _080A6C7C @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A6C80 @ =sub_8074F50
+ str r0, [r4, 0x1C]
+_080A6C76:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6C7C: .4byte move_anim_8074EE0
+_080A6C80: .4byte sub_8074F50
+ thumb_func_end sub_80A6C50
+
+ thumb_func_start sub_80A6C84
+sub_80A6C84: @ 80A6C84
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r0, _080A6C98 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A6CA0
+ ldr r0, _080A6C9C @ =gBattleAnimAttacker
+ b _080A6CA2
+ .align 2, 0
+_080A6C98: .4byte gBattleAnimArgs
+_080A6C9C: .4byte gBattleAnimAttacker
+_080A6CA0:
+ ldr r0, _080A6CF4 @ =gBattleAnimTarget
+_080A6CA2:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8076B2C
+ strh r0, [r4, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bgt _080A6CCA
+ movs r0, 0xA
+ strh r0, [r4, 0x22]
+_080A6CCA:
+ 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, _080A6CF8 @ =sub_80A6D00
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A6CFC @ =sub_8074F50
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6CF4: .4byte gBattleAnimTarget
+_080A6CF8: .4byte sub_80A6D00
+_080A6CFC: .4byte sub_8074F50
+ thumb_func_end sub_80A6C84
+
+ thumb_func_start sub_80A6D00
+sub_80A6D00: @ 80A6D00
+ 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 _080A6D16
+ ldr r0, _080A6D1C @ =sub_80A6D20
+ str r0, [r1, 0x1C]
+_080A6D16:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6D1C: .4byte sub_80A6D20
+ thumb_func_end sub_80A6D00
+
+ thumb_func_start sub_80A6D20
+sub_80A6D20: @ 80A6D20
+ 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 _080A6D52
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080A6D4C
+ strh r0, [r2, 0x24]
+ ldr r0, _080A6D48 @ =sub_80A6C50
+ str r0, [r2, 0x1C]
+ b _080A6D88
+ .align 2, 0
+_080A6D48: .4byte sub_80A6C50
+_080A6D4C:
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2, 0x30]
+_080A6D52:
+ movs r1, 0x30
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x4F
+ ble _080A6D62
+ ldrh r0, [r2, 0x34]
+ adds r1, r2, 0
+ adds r1, 0x43
+ strb r0, [r1]
+_080A6D62:
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x9F
+ ble _080A6D72
+ ldrh r0, [r2, 0x32]
+ adds r1, r2, 0
+ adds r1, 0x43
+ strb r0, [r1]
+_080A6D72:
+ ldr r1, _080A6D8C @ =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]
+_080A6D88:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6D8C: .4byte gSineTable
+ thumb_func_end sub_80A6D20
+
+ thumb_func_start sub_80A6D90
+sub_80A6D90: @ 80A6D90
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080A6DA4 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A6DAC
+ ldr r0, _080A6DA8 @ =gBattleAnimAttacker
+ b _080A6DAE
+ .align 2, 0
+_080A6DA4: .4byte gBattleAnimArgs
+_080A6DA8: .4byte gBattleAnimAttacker
+_080A6DAC:
+ ldr r0, _080A6DD0 @ =gBattleAnimTarget
+_080A6DAE:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A6B0C
+ adds r0, r4, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A6DD4
+ adds r0, r5, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ movs r0, 0x2
+ b _080A6DDE
+ .align 2, 0
+_080A6DD0: .4byte gBattleAnimTarget
+_080A6DD4:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0x3
+_080A6DDE:
+ strh r0, [r5, 0x2E]
+ ldr r0, _080A6DEC @ =sub_80A6DF0
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6DEC: .4byte sub_80A6DF0
+ thumb_func_end sub_80A6D90
+
+ thumb_func_start sub_80A6DF0
+sub_80A6DF0: @ 80A6DF0
+ 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 _080A6E1E
+ 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, _080A6E24 @ =sub_80A6E2C
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A6E28 @ =sub_8074F6C
+ str r0, [r4, 0x1C]
+_080A6E1E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6E24: .4byte sub_80A6E2C
+_080A6E28: .4byte sub_8074F6C
+ thumb_func_end sub_80A6DF0
+
+ thumb_func_start sub_80A6E2C
+sub_80A6E2C: @ 80A6E2C
+ 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 _080A6E44
+ adds r0, r1, 0
+ bl DestroyAnimSprite
+_080A6E44:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6E2C
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_effects_2.s b/asm/battle_anim_effects_2.s
new file mode 100644
index 000000000..3f3a083a3
--- /dev/null
+++ b/asm/battle_anim_effects_2.s
@@ -0,0 +1,7946 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80A6E48
+sub_80A6E48: @ 80A6E48
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_8074FCC
+ ldr r5, _080A6E8C @ =gBattleAnimArgs
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_8074FF8
+ 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, _080A6E90 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r1, _080A6E94 @ =sub_8074BE4
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6E8C: .4byte gBattleAnimArgs
+_080A6E90: .4byte move_anim_8074EE0
+_080A6E94: .4byte sub_8074BE4
+ thumb_func_end sub_80A6E48
+
+ thumb_func_start sub_80A6E98
+sub_80A6E98: @ 80A6E98
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A6EAC @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A6EB4
+ ldr r0, _080A6EB0 @ =gBattleAnimAttacker
+ b _080A6EB6
+ .align 2, 0
+_080A6EAC: .4byte gBattleAnimArgs
+_080A6EB0: .4byte gBattleAnimAttacker
+_080A6EB4:
+ ldr r0, _080A6ED0 @ =gBattleAnimTarget
+_080A6EB6:
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ bl sub_80A6B0C
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ strh r0, [r4, 0x30]
+ ldr r0, _080A6ED4 @ =sub_80A6ED8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6ED0: .4byte gBattleAnimTarget
+_080A6ED4: .4byte sub_80A6ED8
+ thumb_func_end sub_80A6E98
+
+ thumb_func_start sub_80A6ED8
+sub_80A6ED8: @ 80A6ED8
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _080A6F0A
+ cmp r0, 0x1
+ bgt _080A6EEE
+ cmp r0, 0
+ beq _080A6EF4
+ b _080A6F38
+_080A6EEE:
+ cmp r0, 0x2
+ beq _080A6F24
+ b _080A6F38
+_080A6EF4:
+ 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 _080A6F38
+ b _080A6F1C
+_080A6F0A:
+ 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 _080A6F38
+_080A6F1C:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ b _080A6F38
+_080A6F24:
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ bne _080A6F38
+ adds r0, r1, 0
+ bl DestroyAnimSprite
+_080A6F38:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6ED8
+
+ thumb_func_start sub_80A6F3C
+sub_80A6F3C: @ 80A6F3C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r3, _080A6F88 @ =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 _080A6F7A
+ 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
+_080A6F7A:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6F88: .4byte gSprites
+ thumb_func_end sub_80A6F3C
+
+ thumb_func_start sub_80A6F8C
+sub_80A6F8C: @ 80A6F8C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _080A6FD4 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080A6FD8 @ =gUnknown_2023D44
+ ldr r0, _080A6FDC @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r6, [r0]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A6FE4
+ ldr r0, _080A6FE0 @ =gBattleAnimArgs
+ ldrh r1, [r5, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r5, 0x20]
+ adds r1, r0, 0
+ b _080A6FEE
+ .align 2, 0
+_080A6FD4: .4byte gBattleAnimAttacker
+_080A6FD8: .4byte gUnknown_2023D44
+_080A6FDC: .4byte gBattleAnimTarget
+_080A6FE0: .4byte gBattleAnimArgs
+_080A6FE4:
+ ldr r1, _080A7018 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+_080A6FEE:
+ 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, _080A701C @ =sub_80A6F3C
+ 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
+ .align 2, 0
+_080A7018: .4byte gBattleAnimArgs
+_080A701C: .4byte sub_80A6F3C
+ thumb_func_end sub_80A6F8C
+
+ thumb_func_start sub_80A7020
+sub_80A7020: @ 80A7020
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r1, _080A704C @ =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, _080A7050 @ =sub_8074C44
+ str r0, [r4, 0x1C]
+ ldr r1, _080A7054 @ =sub_80A7058
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A704C: .4byte gBattleAnimArgs
+_080A7050: .4byte sub_8074C44
+_080A7054: .4byte sub_80A7058
+ thumb_func_end sub_80A7020
+
+ thumb_func_start sub_80A7058
+sub_80A7058: @ 80A7058
+ 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, _080A7078 @ =sub_8075590
+ str r1, [r0, 0x1C]
+ ldr r1, _080A707C @ =sub_80A7080
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7078: .4byte sub_8075590
+_080A707C: .4byte sub_80A7080
+ thumb_func_end sub_80A7058
+
+ thumb_func_start sub_80A7080
+sub_80A7080: @ 80A7080
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x38]
+ movs r3, 0x38
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080A7096
+ adds r0, r1, 0
+ bl DestroyAnimSprite
+ b _080A709A
+_080A7096:
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x38]
+_080A709A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7080
+
+ thumb_func_start sub_80A70A0
+sub_80A70A0: @ 80A70A0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080A70CC @ =gUnknown_2023D44
+ ldr r0, _080A70D0 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_80758E0
+ ldr r1, _080A70D4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A70D8 @ =sub_80A70DC
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A70CC: .4byte gUnknown_2023D44
+_080A70D0: .4byte gBattleAnimAttacker
+_080A70D4: .4byte gTasks
+_080A70D8: .4byte sub_80A70DC
+ thumb_func_end sub_80A70A0
+
+ thumb_func_start sub_80A70DC
+sub_80A70DC: @ 80A70DC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080A710C @ =gUnknown_2023D44
+ ldr r0, _080A7110 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ adds r1, r0, r1
+ ldrb r4, [r1]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A7118
+ ldr r1, _080A7114 @ =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 _080A7126
+ .align 2, 0
+_080A710C: .4byte gUnknown_2023D44
+_080A7110: .4byte gBattleAnimAttacker
+_080A7114: .4byte gTasks
+_080A7118:
+ ldr r2, _080A7158 @ =gTasks
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ adds r0, r2
+ ldrh r3, [r0, 0x8]
+ adds r6, r1, 0
+_080A7126:
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldr r1, _080A7158 @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080A7160
+ ldrh r0, [r1, 0x8]
+ adds r0, 0xB0
+ strh r0, [r1, 0x8]
+ ldr r1, _080A715C @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x1
+ b _080A718A
+ .align 2, 0
+_080A7158: .4byte gTasks
+_080A715C: .4byte gSprites
+_080A7160:
+ cmp r0, 0x1
+ bne _080A7176
+ ldrh r0, [r1, 0xE]
+ adds r0, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ bne _080A71D0
+ movs r0, 0x2
+ b _080A71CE
+_080A7176:
+ ldrh r0, [r1, 0x8]
+ subs r0, 0xB0
+ strh r0, [r1, 0x8]
+ ldr r1, _080A71C4 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x1
+_080A718A:
+ strh r1, [r0, 0x26]
+ adds r0, r4, 0
+ bl sub_80759DC
+ ldr r0, _080A71C8 @ =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 _080A71AA
+ cmp r2, 0
+ bne _080A71D0
+_080A71AA:
+ ldrh r2, [r1, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x2
+ bne _080A71CC
+ adds r0, r4, 0
+ bl sub_8075980
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ b _080A71D0
+ .align 2, 0
+_080A71C4: .4byte gSprites
+_080A71C8: .4byte gTasks
+_080A71CC:
+ adds r0, r2, 0x1
+_080A71CE:
+ strh r0, [r1, 0xA]
+_080A71D0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A70DC
+
+ thumb_func_start sub_80A71D8
+sub_80A71D8: @ 80A71D8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_8074FCC
+ ldr r0, _080A71FC @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A7204
+ ldr r0, _080A7200 @ =gBattleAnimArgs
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ adds r5, r0, 0
+ b _080A7210
+ .align 2, 0
+_080A71FC: .4byte gBattleAnimAttacker
+_080A7200: .4byte gBattleAnimArgs
+_080A7204:
+ ldr r1, _080A7244 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ adds r5, r1, 0
+_080A7210:
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _080A7248 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A724C
+ 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 _080A7260
+ movs r0, 0x2
+ orrs r2, r0
+ strb r2, [r3]
+ b _080A7260
+ .align 2, 0
+_080A7244: .4byte gBattleAnimArgs
+_080A7248: .4byte gBattleAnimAttacker
+_080A724C:
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080A7260
+ adds r2, r4, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+_080A7260:
+ ldr r0, _080A7274 @ =sub_8074F6C
+ str r0, [r4, 0x1C]
+ ldr r1, _080A7278 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7274: .4byte sub_8074F6C
+_080A7278: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A71D8
+
+ thumb_func_start sub_80A727C
+sub_80A727C: @ 80A727C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8075160
+ ldr r0, _080A7298 @ =sub_8074F50
+ str r0, [r4, 0x1C]
+ ldr r1, _080A729C @ =sub_80A72A0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7298: .4byte sub_8074F50
+_080A729C: .4byte sub_80A72A0
+ thumb_func_end sub_80A727C
+
+ thumb_func_start sub_80A72A0
+sub_80A72A0: @ 80A72A0
+ 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, _080A72C0 @ =sub_8075590
+ str r1, [r0, 0x1C]
+ ldr r1, _080A72C4 @ =DestroyAnimSprite
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A72C0: .4byte sub_8075590
+_080A72C4: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A72A0
+
+ thumb_func_start sub_80A72C8
+sub_80A72C8: @ 80A72C8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A72EC
+ ldr r1, _080A72E8 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ b _080A730E
+ .align 2, 0
+_080A72E8: .4byte gBattleAnimArgs
+_080A72EC:
+ ldr r0, _080A73B4 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A730E
+ ldr r1, _080A73B8 @ =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]
+_080A730E:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r4, _080A73BC @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ ldr r6, _080A73B8 @ =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 sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r6, 0x6]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ adds r7, r0, 0
+ ldrh r1, [r5, 0x20]
+ mov r2, r8
+ lsls r0, r2, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x22]
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_8075B30
+ lsls r0, 16
+ movs r1, 0xF0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r4, r0, 16
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A7380
+ ldr r2, _080A73C0 @ =0xffffa000
+ adds r0, r4, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080A7380:
+ movs r3, 0x80
+ lsls r3, 1
+ str r4, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8075A1C
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ mov r0, r8
+ strh r0, [r5, 0x32]
+ strh r7, [r5, 0x36]
+ ldr r0, _080A73C4 @ =sub_8075590
+ str r0, [r5, 0x1C]
+ ldr r1, _080A73C8 @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A73B4: .4byte gBattleAnimAttacker
+_080A73B8: .4byte gBattleAnimArgs
+_080A73BC: .4byte gBattleAnimTarget
+_080A73C0: .4byte 0xffffa000
+_080A73C4: .4byte sub_8075590
+_080A73C8: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A72C8
+
+ thumb_func_start sub_80A73CC
+sub_80A73CC: @ 80A73CC
+ 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 _080A73F6
+ ldr r2, _080A73FC @ =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
+_080A73F6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A73FC: .4byte gTasks
+ thumb_func_end sub_80A73CC
+
+ thumb_func_start sub_80A7400
+sub_80A7400: @ 80A7400
+ 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, _080A7430 @ =gTasks
+ adds r4, r0, r1
+ movs r3, 0x2E
+ ldrsh r1, [r2, r3]
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ ble _080A7434
+ 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 _080A7442
+ .align 2, 0
+_080A7430: .4byte gTasks
+_080A7434:
+ 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
+_080A7442:
+ 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 _080A7466
+ lsls r0, r3, 16
+ lsrs r0, 24
+ negs r0, r0
+ b _080A746A
+_080A7466:
+ lsls r0, r3, 16
+ lsrs r0, 24
+_080A746A:
+ strh r0, [r2, 0x24]
+ ldrh r1, [r4, 0x18]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A747E
+ ldrh r0, [r2, 0x32]
+ lsrs r0, 8
+ negs r0, r0
+ b _080A7482
+_080A747E:
+ ldrh r0, [r2, 0x32]
+ lsrs r0, 8
+_080A7482:
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r2, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080A7498
+ movs r0, 0x1E
+ strh r0, [r2, 0x2E]
+ ldr r0, _080A74A0 @ =sub_80A73CC
+ str r0, [r2, 0x1C]
+_080A7498:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A74A0: .4byte sub_80A73CC
+ thumb_func_end sub_80A7400
+
+ thumb_func_start sub_80A74A4
+sub_80A74A4: @ 80A74A4
+ 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, _080A74E8 @ =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 _080A74EC
+ lsls r0, r2, 16
+ lsrs r0, 24
+ negs r0, r0
+ b _080A74F0
+ .align 2, 0
+_080A74E8: .4byte gTasks
+_080A74EC:
+ lsls r0, r2, 16
+ lsrs r0, 24
+_080A74F0:
+ strh r0, [r7, 0x24]
+ ldrh r1, [r6, 0x18]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A7504
+ ldrh r0, [r7, 0x32]
+ lsrs r0, 8
+ negs r0, r0
+ b _080A7508
+_080A7504:
+ ldrh r0, [r7, 0x32]
+ lsrs r0, 8
+_080A7508:
+ strh r0, [r7, 0x26]
+ ldrh r0, [r7, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r7, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080A75D4
+ 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_80D8B90
+ 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 _080A7552
+ subs r0, r3, r2
+ b _080A7554
+_080A7552:
+ subs r0, r2, r3
+_080A7554:
+ 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 _080A756C
+ subs r0, r3, r2
+ b _080A756E
+_080A756C:
+ subs r0, r2, r3
+_080A756E:
+ 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_80D8AA0
+ adds r4, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ movs r6, 0xE0
+ lsls r6, 1
+ adds r0, r6, 0
+ bl sub_80D8B90
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_80D8AA0
+ strh r0, [r7, 0x34]
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r0, 16
+ adds r1, r5, 0
+ bl sub_80D8AA0
+ adds r4, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r6, 0
+ bl sub_80D8B90
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_80D8AA0
+ strh r0, [r7, 0x36]
+ ldr r0, _080A75E0 @ =sub_80A7400
+ str r0, [r7, 0x1C]
+_080A75D4:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A75E0: .4byte sub_80A7400
+ thumb_func_end sub_80A74A4
+
+ thumb_func_start sub_80A75E4
+sub_80A75E4: @ 80A75E4
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080A7608 @ =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 _080A7602
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080A7602:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7608: .4byte gTasks
+ thumb_func_end sub_80A75E4
+
+ thumb_func_start sub_80A760C
+sub_80A760C: @ 80A760C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080A7660 @ =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 _080A76E0
+ ldr r0, _080A7664 @ =gUnknown_83E3C28
+ 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, _080A7668 @ =gSprites
+ adds r6, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080A766C
+ cmp r0, 0x2
+ beq _080A7682
+ b _080A7690
+ .align 2, 0
+_080A7660: .4byte gTasks
+_080A7664: .4byte gUnknown_83E3C28
+_080A7668: .4byte gSprites
+_080A766C:
+ 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 _080A7690
+_080A7682:
+ ldrb r0, [r6, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r6, 0x3]
+_080A7690:
+ ldr r3, _080A76E8 @ =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 sub_8073A44
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x93
+ bl PlaySE12WithPanning
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x2
+ ble _080A76E0
+ ldr r0, _080A76EC @ =sub_80A75E4
+ str r0, [r4]
+_080A76E0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A76E8: .4byte gTasks
+_080A76EC: .4byte sub_80A75E4
+ thumb_func_end sub_80A760C
+
+ thumb_func_start sub_80A76F0
+sub_80A76F0: @ 80A76F0
+ 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 sub_8073788
+ lsls r0, 24
+ mov r10, r4
+ cmp r0, 0
+ beq _080A775C
+ ldr r1, _080A774C @ =gTasks
+ lsls r2, r7, 2
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x10]
+ ldr r3, _080A7750 @ =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 _080A7754
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strh r0, [r3, 0x4]
+ b _080A77B6
+ .align 2, 0
+_080A774C: .4byte gTasks
+_080A7750: .4byte gBattleAnimArgs
+_080A7754:
+ movs r0, 0x1
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ b _080A77B6
+_080A775C:
+ ldr r1, _080A77A0 @ =gUnknown_2023BD6
+ ldr r0, _080A77A4 @ =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 _080A77B6
+ ldr r1, _080A77A8 @ =gTasks
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r3, [r0, 0x10]
+ ldr r2, _080A77AC @ =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 _080A77B0
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ b _080A77B4
+ .align 2, 0
+_080A77A0: .4byte gUnknown_2023BD6
+_080A77A4: .4byte gBattleAnimTarget
+_080A77A8: .4byte gTasks
+_080A77AC: .4byte gBattleAnimArgs
+_080A77B0:
+ movs r0, 0x1
+ orrs r0, r1
+_080A77B4:
+ strh r0, [r2, 0x4]
+_080A77B6:
+ ldr r5, _080A7810 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8074480
+ ldr r1, _080A7814 @ =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 sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ mov r9, r0
+ ldr r0, _080A7818 @ =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A7820
+ ldr r4, _080A781C @ =gBattleAnimTarget
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A7820
+ ldrb r0, [r4]
+ movs r1, 0
+ mov r2, sp
+ mov r3, r10
+ bl sub_8076D9C
+ b _080A7842
+ .align 2, 0
+_080A7810: .4byte gBattleAnimAttacker
+_080A7814: .4byte gTasks
+_080A7818: .4byte gBattleTypeFlags
+_080A781C: .4byte gBattleAnimTarget
+_080A7820:
+ mov r5, sp
+ ldr r4, _080A787C @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r10
+ strh r0, [r1]
+_080A7842:
+ mov r4, sp
+ ldr r0, _080A7880 @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ mov r2, sp
+ ldr r3, _080A7884 @ =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 _080A7888
+ subs r0, r2, r1
+ b _080A788A
+ .align 2, 0
+_080A787C: .4byte gBattleAnimTarget
+_080A7880: .4byte gTasks
+_080A7884: .4byte gBattleAnimArgs
+_080A7888:
+ subs r0, r1, r2
+_080A788A:
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, r0, 16
+ asrs r4, 16
+ ldr r5, _080A7900 @ =gBattleAnimArgs
+ ldrh r1, [r5, 0x4]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80D8B90
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_80D8AA0
+ ldr r2, _080A7904 @ =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_80D8AA0
+ 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 _080A7908
+ subs r4, r1, r4
+ lsls r4, 16
+ asrs r4, 16
+ movs r1, 0x12
+ ldrsh r0, [r6, r1]
+ bl sub_80D8B90
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_80D8AA0
+ movs r1, 0x2
+ negs r1, r1
+ ands r1, r0
+ strh r1, [r6, 0x18]
+ b _080A7928
+ .align 2, 0
+_080A7900: .4byte gBattleAnimArgs
+_080A7904: .4byte gTasks
+_080A7908:
+ subs r4, r1
+ lsls r4, 16
+ asrs r4, 16
+ movs r2, 0x12
+ ldrsh r0, [r6, r2]
+ bl sub_80D8B90
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_80D8AA0
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r6, 0x18]
+_080A7928:
+ ldr r1, _080A7968 @ =gTasks
+ mov r3, r8
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r5, r0, r1
+ ldr r4, _080A796C @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0xE]
+ ldrh r1, [r4, 0x8]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080A7978
+ movs r0, 0x80
+ eors r0, r1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3F
+ ble _080A79A0
+ ldr r0, _080A7970 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_807685C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A7974 @ =0x0000ffc0
+ adds r1, r2, 0
+ ldrh r4, [r4, 0x8]
+ adds r1, r4
+ adds r0, r1
+ b _080A79B0
+ .align 2, 0
+_080A7968: .4byte gTasks
+_080A796C: .4byte gBattleAnimArgs
+_080A7970: .4byte gBattleAnimTarget
+_080A7974: .4byte 0x0000ffc0
+_080A7978:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x3F
+ ble _080A79A0
+ ldr r0, _080A7998 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_807685C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080A799C @ =0x0000ffc0
+ adds r1, r3, 0
+ ldrh r4, [r4, 0x8]
+ adds r1, r4
+ adds r0, r1
+ b _080A79B0
+ .align 2, 0
+_080A7998: .4byte gBattleAnimTarget
+_080A799C: .4byte 0x0000ffc0
+_080A79A0:
+ ldr r0, _080A79DC @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_807685C
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x8]
+ subs r0, r1
+_080A79B0:
+ strh r0, [r5, 0xC]
+ ldr r0, _080A79E0 @ =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 _080A79C8
+ movs r0, 0x3
+ strh r0, [r1, 0xC]
+_080A79C8:
+ ldr r0, _080A79E4 @ =sub_80A760C
+ 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
+ .align 2, 0
+_080A79DC: .4byte gBattleAnimTarget
+_080A79E0: .4byte gTasks
+_080A79E4: .4byte sub_80A760C
+ thumb_func_end sub_80A76F0
+
+ thumb_func_start sub_80A79E8
+sub_80A79E8: @ 80A79E8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8075160
+ ldr r0, _080A7A10 @ =gUnknown_83E3D18
+ 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, _080A7A14 @ =sub_80A7A18
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7A10: .4byte gUnknown_83E3D18
+_080A7A14: .4byte sub_80A7A18
+ thumb_func_end sub_80A79E8
+
+ thumb_func_start sub_80A7A18
+sub_80A7A18: @ 80A7A18
+ 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 _080A7A7C
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r5, [r4, 0x2E]
+ ldr r1, _080A7A84 @ =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
+_080A7A50:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r1, 0x2
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080A7A50
+ 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 _080A7A7C
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A7A7C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7A84: .4byte gPlttBufferFaded
+ thumb_func_end sub_80A7A18
+
+ thumb_func_start sub_80A7A88
+sub_80A7A88: @ 80A7A88
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r4, _080A7B28 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ ldr r4, _080A7B2C @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r0, _080A7B30 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A7ACC
+ ldrh r0, [r4, 0x4]
+ negs r0, r0
+ strh r0, [r4, 0x4]
+_080A7ACC:
+ lsls r0, r6, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ lsls r0, 16
+ ldrh r1, [r5, 0x20]
+ lsrs r6, r0, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x22]
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_8075B30
+ 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_8075A1C
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x2E]
+ strh r6, [r5, 0x32]
+ strh r7, [r5, 0x36]
+ ldr r0, _080A7B34 @ =sub_80756A4
+ str r0, [r5, 0x1C]
+ ldr r1, _080A7B38 @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7B28: .4byte gBattleAnimTarget
+_080A7B2C: .4byte gBattleAnimArgs
+_080A7B30: .4byte gBattleAnimAttacker
+_080A7B34: .4byte sub_80756A4
+_080A7B38: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A7A88
+
+ thumb_func_start sub_80A7B3C
+sub_80A7B3C: @ 80A7B3C
+ ldr r1, _080A7B4C @ =0x0000fff0
+ strh r1, [r0, 0x32]
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x8
+ strh r1, [r0, 0x22]
+ ldr r1, _080A7B50 @ =sub_80A7B54
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080A7B4C: .4byte 0x0000fff0
+_080A7B50: .4byte sub_80A7B54
+ thumb_func_end sub_80A7B3C
+
+ thumb_func_start sub_80A7B54
+sub_80A7B54: @ 80A7B54
+ 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, _080A7BC0 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A7B78
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+_080A7B78:
+ 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 _080A7BB8
+ 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 _080A7BB8
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A7BB8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7BC0: .4byte gBattleAnimAttacker
+ thumb_func_end sub_80A7B54
+
+ thumb_func_start sub_80A7BC4
+sub_80A7BC4: @ 80A7BC4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ ldr r5, _080A7C10 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, _080A7C14 @ =sub_8075590
+ 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, _080A7C18 @ =sub_80A7C1C
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7C10: .4byte gBattleAnimTarget
+_080A7C14: .4byte sub_8075590
+_080A7C18: .4byte sub_80A7C1C
+ thumb_func_end sub_80A7BC4
+
+ thumb_func_start sub_80A7C1C
+sub_80A7C1C: @ 80A7C1C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x3F
+ bl sub_8073A44
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x9F
+ 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
+_080A7C50:
+ strh r2, [r0]
+ subs r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080A7C50
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x7
+ ands r0, r1
+ ldr r2, _080A7C98 @ =0x0000fff4
+ adds r1, r2, 0
+ subs r1, r0
+ strh r1, [r4, 0x3A]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA0
+ bl __umodsi3
+ adds r0, 0xA0
+ strh r0, [r4, 0x3C]
+ ldr r0, _080A7C9C @ =sub_80A7CA0
+ 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
+ .align 2, 0
+_080A7C98: .4byte 0x0000fff4
+_080A7C9C: .4byte sub_80A7CA0
+ thumb_func_end sub_80A7C1C
+
+ thumb_func_start sub_80A7CA0
+sub_80A7CA0: @ 80A7CA0
+ 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 _080A7CBE
+ negs r0, r2
+ strh r0, [r4, 0x24]
+_080A7CBE:
+ 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 _080A7CFE
+ 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 _080A7CFE
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A7CFE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7CA0
+
+ thumb_func_start sub_80A7D04
+sub_80A7D04: @ 80A7D04
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8075160
+ ldr r0, _080A7D54 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A7D22
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x10
+ strh r0, [r4, 0x22]
+_080A7D22:
+ ldr r1, _080A7D58 @ =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, _080A7D5C @ =sub_8074A80
+ str r0, [r4, 0x1C]
+ ldr r1, _080A7D60 @ =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
+ .align 2, 0
+_080A7D54: .4byte gBattleAnimAttacker
+_080A7D58: .4byte gBattleAnimArgs
+_080A7D5C: .4byte sub_8074A80
+_080A7D60: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A7D04
+
+ thumb_func_start sub_80A7D64
+sub_80A7D64: @ 80A7D64
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ movs r7, 0x20
+ ldr r4, _080A7DE0 @ =0x0000ffe0
+ movs r0, 0x10
+ mov r8, r0
+ ldr r6, _080A7DE4 @ =0x0000fff0
+ ldr r0, _080A7DE8 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080A7D90
+ adds r7, r4, 0
+ movs r4, 0x20
+ mov r8, r6
+ movs r6, 0x10
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080A7D90:
+ 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, _080A7DEC @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ add r0, r8
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ ldr r0, _080A7DF0 @ =sub_8075590
+ str r0, [r5, 0x1C]
+ ldr r1, _080A7DF4 @ =sub_80A7DF8
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7DE0: .4byte 0x0000ffe0
+_080A7DE4: .4byte 0x0000fff0
+_080A7DE8: .4byte gBattleAnimArgs
+_080A7DEC: .4byte gBattleAnimTarget
+_080A7DF0: .4byte sub_8075590
+_080A7DF4: .4byte sub_80A7DF8
+ thumb_func_end sub_80A7D64
+
+ thumb_func_start sub_80A7DF8
+sub_80A7DF8: @ 80A7DF8
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080A7E0E
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080A7E0E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7DF8
+
+ thumb_func_start sub_80A7E14
+sub_80A7E14: @ 80A7E14
+ 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, _080A7EA8 @ =0x0000ffe0
+ movs r2, 0x10
+ mov r9, r2
+ ldr r6, _080A7EAC @ =0x0000fff0
+ ldr r7, _080A7EB0 @ =gBattleAnimArgs
+ ldrh r1, [r7]
+ movs r2, 0
+ ldrsh r0, [r7, r2]
+ cmp r0, 0
+ beq _080A7E48
+ mov r8, r4
+ movs r4, 0x20
+ mov r9, r6
+ movs r6, 0x10
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+_080A7E48:
+ 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, _080A7EB4 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ 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 sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r7]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r5, 0x2E]
+ strh r0, [r5, 0x3A]
+ ldr r0, _080A7EB8 @ =sub_80A7EBC
+ str r0, [r5, 0x1C]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7EA8: .4byte 0x0000ffe0
+_080A7EAC: .4byte 0x0000fff0
+_080A7EB0: .4byte gBattleAnimArgs
+_080A7EB4: .4byte gBattleAnimTarget
+_080A7EB8: .4byte sub_80A7EBC
+ thumb_func_end sub_80A7E14
+
+ thumb_func_start sub_80A7EBC
+sub_80A7EBC: @ 80A7EBC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A7F20
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080A7F20
+ 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, _080A7F28 @ =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, _080A7F2C @ =sub_80A7F30
+ str r0, [r4, 0x1C]
+_080A7F20:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7F28: .4byte 0x0000fffe
+_080A7F2C: .4byte sub_80A7F30
+ thumb_func_end sub_80A7EBC
+
+ thumb_func_start sub_80A7F30
+sub_80A7F30: @ 80A7F30
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080A7F48
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+_080A7F48:
+ 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 _080A7F8A
+ 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, _080A7F90 @ =sub_80A7F94
+ str r0, [r4, 0x1C]
+_080A7F8A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7F90: .4byte sub_80A7F94
+ thumb_func_end sub_80A7F30
+
+ thumb_func_start sub_80A7F94
+sub_80A7F94: @ 80A7F94
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A7FA8
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A7FA8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7F94
+
+ thumb_func_start sub_80A7FB0
+sub_80A7FB0: @ 80A7FB0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80758E0
+ adds r0, r4, 0
+ movs r1, 0xD0
+ movs r2, 0xD0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldr r1, _080A8008 @ =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_8075B48
+ ldr r1, _080A800C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x50
+ strh r1, [r0, 0x8]
+ ldr r1, _080A8010 @ =sub_80A8014
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8008: .4byte gSprites
+_080A800C: .4byte gTasks
+_080A8010: .4byte sub_80A8014
+ thumb_func_end sub_80A7FB0
+
+ thumb_func_start sub_80A8014
+sub_80A8014: @ 80A8014
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080A806C @ =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 _080A8064
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_8075980
+ ldr r1, _080A8070 @ =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_8075B48
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080A8064:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A806C: .4byte gTasks
+_080A8070: .4byte gSprites
+ thumb_func_end sub_80A8014
+
+ thumb_func_start sub_80A8074
+sub_80A8074: @ 80A8074
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080A80C0 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x8]
+ movs r1, 0
+ bl sub_80758E0
+ 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, _080A80C4 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_807685C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x16]
+ ldr r0, _080A80C8 @ =sub_80A80CC
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A80C0: .4byte gTasks
+_080A80C4: .4byte gBattleAnimAttacker
+_080A80C8: .4byte sub_80A80CC
+ thumb_func_end sub_80A8074
+
+ thumb_func_start sub_80A80CC
+sub_80A80CC: @ 80A80CC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080A80F0 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bls _080A80E6
+ b _080A81F6
+_080A80E6:
+ lsls r0, 2
+ ldr r1, _080A80F4 @ =_080A80F8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A80F0: .4byte gTasks
+_080A80F4: .4byte _080A80F8
+ .align 2, 0
+_080A80F8:
+ .4byte _080A8110
+ .4byte _080A8158
+ .4byte _080A818E
+ .4byte _080A8194
+ .4byte _080A81A4
+ .4byte _080A81D8
+_080A8110:
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080A8120
+ cmp r0, 0x3
+ beq _080A8120
+ cmp r0, 0x6
+ bne _080A8128
+_080A8120:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A8200
+_080A8128:
+ 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_8076440
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x20
+ bne _080A81F6
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ b _080A81D0
+_080A8158:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A81F6
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ cmp r1, 0x3
+ bne _080A816E
+ strh r0, [r4, 0xC]
+ strh r1, [r4, 0xA]
+ b _080A81F6
+_080A816E:
+ 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_8076440
+ movs r0, 0x2
+ strh r0, [r4, 0xA]
+ b _080A81F6
+_080A818E:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080A81F6
+_080A8194:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ ble _080A81F6
+ b _080A81CC
+_080A81A4:
+ 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_8076440
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x20
+ bne _080A81F6
+_080A81CC:
+ movs r0, 0
+ strh r0, [r4, 0xC]
+_080A81D0:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _080A81F6
+_080A81D8:
+ ldrb r0, [r4, 0x8]
+ bl sub_8075980
+ ldr r2, _080A81FC @ =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
+_080A81F6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A81FC: .4byte gSprites
+ thumb_func_end sub_80A80CC
+
+ thumb_func_start sub_80A8200
+sub_80A8200: @ 80A8200
+ 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 _080A82DA
+ bl AllocOamMatrix
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xFF
+ bne _080A8244
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _080A8240 @ =gSprites
+ adds r0, r1
+ bl obj_delete_but_dont_free_vram
+ b _080A82DA
+ .align 2, 0
+_080A8240: .4byte gSprites
+_080A8244:
+ ldr r5, _080A82E8 @ =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, _080A82EC @ =sub_80A82F0
+ 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
+_080A82DA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A82E8: .4byte gSprites
+_080A82EC: .4byte sub_80A82F0
+ thumb_func_end sub_80A8200
+
+ thumb_func_start sub_80A82F0
+sub_80A82F0: @ 80A82F0
+ 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 _080A832E
+ ldr r3, _080A8334 @ =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
+_080A832E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8334: .4byte gTasks
+ thumb_func_end sub_80A82F0
+
+ thumb_func_start sub_80A8338
+sub_80A8338: @ 80A8338
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080A835C @ =gTasks
+ adds r4, r0, r1
+ ldr r5, _080A8360 @ =gBattleAnimArgs
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080A8364
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+ b _080A838A
+ .align 2, 0
+_080A835C: .4byte gTasks
+_080A8360: .4byte gBattleAnimArgs
+_080A8364:
+ ldrb r0, [r5]
+ bl GetAnimBankSpriteId
+ 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, _080A8390 @ =gUnknown_83E3E60
+ adds r0, r4, 0
+ bl sub_80762D0
+ ldr r0, _080A8394 @ =sub_80A8398
+ str r0, [r4]
+_080A838A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8390: .4byte gUnknown_83E3E60
+_080A8394: .4byte sub_80A8398
+ thumb_func_end sub_80A8338
+
+ thumb_func_start sub_80A8398
+sub_80A8398: @ 80A8398
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080A83BC @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0xA
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080A8400
+ cmp r5, 0x1
+ bgt _080A83C0
+ cmp r5, 0
+ beq _080A83CA
+ b _080A84A8
+ .align 2, 0
+_080A83BC: .4byte gTasks
+_080A83C0:
+ cmp r5, 0x2
+ beq _080A8434
+ cmp r5, 0x3
+ beq _080A8464
+ b _080A84A8
+_080A83CA:
+ adds r0, r4, 0
+ bl sub_8076308
+ ldrh r2, [r4, 0x10]
+ adds r2, 0x3
+ strh r2, [r4, 0x10]
+ ldr r3, _080A83FC @ =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 _080A84A8
+ strh r5, [r4, 0xE]
+ b _080A845C
+ .align 2, 0
+_080A83FC: .4byte gSprites
+_080A8400:
+ adds r0, r4, 0
+ bl sub_8076308
+ ldr r2, _080A8430 @ =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 _080A84A8
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ b _080A845C
+ .align 2, 0
+_080A8430: .4byte gSprites
+_080A8434:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080A845C
+ ldr r2, _080A8458 @ =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 _080A84A8
+ .align 2, 0
+_080A8458: .4byte gSprites
+_080A845C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _080A84A8
+_080A8464:
+ adds r0, r4, 0
+ bl sub_8076308
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080A84A8
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A849C
+ ldr r2, _080A8498 @ =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 _080A84A8
+ .align 2, 0
+_080A8498: .4byte gSprites
+_080A849C:
+ ldrb r1, [r4, 0x8]
+ ldr r2, _080A84B0 @ =gUnknown_83E3E60
+ adds r0, r4, 0
+ bl sub_80762D0
+ strh r5, [r4, 0xA]
+_080A84A8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A84B0: .4byte gUnknown_83E3E60
+ thumb_func_end sub_80A8398
+
+ thumb_func_start sub_80A84B4
+sub_80A84B4: @ 80A84B4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080A84E4 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080A84E8 @ =gUnknown_83E3E80
+ adds r0, r4, 0
+ bl sub_80762D0
+ ldr r0, _080A84EC @ =sub_80A84F0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A84E4: .4byte gTasks
+_080A84E8: .4byte gUnknown_83E3E80
+_080A84EC: .4byte sub_80A84F0
+ thumb_func_end sub_80A84B4
+
+ thumb_func_start sub_80A84F0
+sub_80A84F0: @ 80A84F0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080A8518 @ =gTasks
+ adds r0, r1
+ bl sub_8076308
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A8510
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080A8510:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8518: .4byte gTasks
+ thumb_func_end sub_80A84F0
+
+ thumb_func_start sub_80A851C
+sub_80A851C: @ 80A851C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080A854C @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A8550
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r4, 0x20]
+ movs r0, 0x40
+ b _080A856A
+ .align 2, 0
+_080A854C: .4byte gBattleAnimAttacker
+_080A8550:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x20
+ strh r0, [r4, 0x20]
+ ldr r0, _080A859C @ =0x0000ffc0
+_080A856A:
+ strh r0, [r4, 0x30]
+ ldr r0, _080A85A0 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8074480
+ 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, _080A85A4 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A85A8 @ =sub_8074D00
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A859C: .4byte 0x0000ffc0
+_080A85A0: .4byte gBattleAnimAttacker
+_080A85A4: .4byte DestroyAnimSprite
+_080A85A8: .4byte sub_8074D00
+ thumb_func_end sub_80A851C
+
+ thumb_func_start sub_80A85AC
+sub_80A85AC: @ 80A85AC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _080A85C0 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A85C8
+ ldr r0, _080A85C4 @ =gBattleAnimAttacker
+ b _080A85CA
+ .align 2, 0
+_080A85C0: .4byte gBattleAnimArgs
+_080A85C4: .4byte gBattleAnimAttacker
+_080A85C8:
+ ldr r0, _080A8628 @ =gBattleAnimTarget
+_080A85CA:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A85E4
+ ldr r1, _080A862C @ =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080A85E4:
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ ldr r4, _080A862C @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8074480
+ 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 _080A8616
+ movs r0, 0x8
+ strh r0, [r6, 0x22]
+_080A8616:
+ ldr r1, _080A8630 @ =move_anim_8074EE0
+ adds r0, r6, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080A8634 @ =sub_8074F50
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8628: .4byte gBattleAnimTarget
+_080A862C: .4byte gBattleAnimArgs
+_080A8630: .4byte move_anim_8074EE0
+_080A8634: .4byte sub_8074F50
+ thumb_func_end sub_80A85AC
+
+ thumb_func_start sub_80A8638
+sub_80A8638: @ 80A8638
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080A866C @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ strh r1, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ ldr r2, _080A8670 @ =gUnknown_83E3F1C
+ adds r0, r4, 0
+ bl sub_80762D0
+ ldr r0, _080A8674 @ =sub_80A8678
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A866C: .4byte gTasks
+_080A8670: .4byte gUnknown_83E3F1C
+_080A8674: .4byte sub_80A8678
+ thumb_func_end sub_80A8638
+
+ thumb_func_start sub_80A8678
+sub_80A8678: @ 80A8678
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080A86A0 @ =gTasks
+ adds r0, r1
+ bl sub_8076308
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A8698
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080A8698:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A86A0: .4byte gTasks
+ thumb_func_end sub_80A8678
+
+ thumb_func_start sub_80A86A4
+sub_80A86A4: @ 80A86A4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080A8718 @ =gTasks
+ adds r4, r1, r0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ 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, _080A871C @ =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, _080A8720 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A870E
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0xC]
+_080A870E:
+ ldr r0, _080A8724 @ =sub_80A8728
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8718: .4byte gTasks
+_080A871C: .4byte gSprites
+_080A8720: .4byte gBattleAnimAttacker
+_080A8724: .4byte sub_80A8728
+ thumb_func_end sub_80A86A4
+
+ thumb_func_start sub_80A8728
+sub_80A8728: @ 80A8728
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080A8770 @ =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 _080A878E
+ 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 _080A8778
+ ldr r2, _080A8774 @ =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 _080A878C
+ .align 2, 0
+_080A8770: .4byte gTasks
+_080A8774: .4byte gSprites
+_080A8778:
+ ldr r2, _080A87A0 @ =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
+_080A878C:
+ strh r1, [r0, 0x22]
+_080A878E:
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ beq _080A87DC
+ cmp r0, 0x1
+ bgt _080A87A4
+ cmp r0, 0
+ beq _080A87AA
+ b _080A886C
+ .align 2, 0
+_080A87A0: .4byte gSprites
+_080A87A4:
+ cmp r0, 0x2
+ beq _080A880C
+ b _080A886C
+_080A87AA:
+ ldr r2, _080A87D8 @ =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 _080A886C
+ movs r0, 0xE
+ strh r0, [r3, 0xE]
+ movs r0, 0x1
+ strh r0, [r3, 0xA]
+ b _080A886C
+ .align 2, 0
+_080A87D8: .4byte gSprites
+_080A87DC:
+ ldr r2, _080A8808 @ =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 _080A886C
+ movs r0, 0x7
+ strh r0, [r3, 0xE]
+ movs r0, 0x2
+ strh r0, [r3, 0xA]
+ b _080A886C
+ .align 2, 0
+_080A8808: .4byte gSprites
+_080A880C:
+ ldr r2, _080A8844 @ =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 _080A886C
+ ldrh r0, [r3, 0x10]
+ subs r0, 0x1
+ strh r0, [r3, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080A8848
+ movs r0, 0x7
+ strh r0, [r3, 0xE]
+ strh r1, [r3, 0xA]
+ b _080A886C
+ .align 2, 0
+_080A8844: .4byte gSprites
+_080A8848:
+ ldrh r1, [r3, 0x18]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A8866
+ 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]
+_080A8866:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080A886C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A8728
+
+ thumb_func_start sub_80A8874
+sub_80A8874: @ 80A8874
+ 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, _080A88C4 @ =gTasks
+ adds r5, r1, r0
+ ldr r4, _080A88C8 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ bl sub_807492C
+ 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_8076B2C
+ strh r0, [r5, 0x26]
+ ldrb r0, [r4]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A88D4
+ ldr r0, _080A88CC @ =gBattle_BG1_X
+ ldrh r0, [r0]
+ strh r0, [r5, 0x14]
+ ldr r0, _080A88D0 @ =0x04000014
+ b _080A88DC
+ .align 2, 0
+_080A88C4: .4byte gTasks
+_080A88C8: .4byte gBattleAnimTarget
+_080A88CC: .4byte gBattle_BG1_X
+_080A88D0: .4byte 0x04000014
+_080A88D4:
+ ldr r0, _080A8940 @ =gBattle_BG2_X
+ ldrh r0, [r0]
+ strh r0, [r5, 0x14]
+ ldr r0, _080A8944 @ =0x04000018
+_080A88DC:
+ 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 _080A891A
+ ldr r4, _080A8948 @ =gScanlineEffectRegBuffers
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r4, r0
+_080A88F4:
+ asrs r3, r2, 16
+ cmp r3, 0
+ blt _080A890C
+ 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]
+_080A890C:
+ adds r0, r3, 0x1
+ lsls r2, r0, 16
+ asrs r1, r2, 16
+ movs r3, 0x8
+ ldrsh r0, [r5, r3]
+ cmp r1, r0
+ ble _080A88F4
+_080A891A:
+ ldr r0, _080A894C @ =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, _080A8950 @ =sub_80A8954
+ str r0, [r5]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8940: .4byte gBattle_BG2_X
+_080A8944: .4byte 0x04000018
+_080A8948: .4byte gScanlineEffectRegBuffers
+_080A894C: .4byte 0xa2600001
+_080A8950: .4byte sub_80A8954
+ thumb_func_end sub_80A8874
+
+ thumb_func_start sub_80A8954
+sub_80A8954: @ 80A8954
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080A8974 @ =gTasks
+ adds r3, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _080A8978
+ cmp r0, 0x1
+ beq _080A898E
+ b _080A8A0E
+ .align 2, 0
+_080A8974: .4byte gTasks
+_080A8978:
+ ldrh r0, [r3, 0x12]
+ adds r0, 0x1
+ strh r0, [r3, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080A8A0E
+ ldrh r0, [r3, 0x10]
+ adds r0, 0x1
+ strh r0, [r3, 0x10]
+ b _080A8A0E
+_080A898E:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080A8A0E
+ 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 _080A89C4
+ cmp r1, 0x1
+ ble _080A89CC
+ cmp r1, 0x2
+ beq _080A89C8
+ cmp r1, 0x3
+ beq _080A89C8
+ b _080A89CC
+_080A89C4:
+ subs r0, 0x2
+ b _080A89CA
+_080A89C8:
+ adds r0, 0x1
+_080A89CA:
+ strh r0, [r3, 0x12]
+_080A89CC:
+ movs r1, 0x12
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ blt _080A89F0
+ ldr r2, _080A8A14 @ =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]
+_080A89F0:
+ 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 _080A8A0E
+ ldr r1, _080A8A18 @ =gScanlineEffect
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080A8A0E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8A14: .4byte gScanlineEffectRegBuffers
+_080A8A18: .4byte gScanlineEffect
+ thumb_func_end sub_80A8954
+
+ thumb_func_start sub_80A8A1C
+sub_80A8A1C: @ 80A8A1C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _080A8A70 @ =gBattleAnimTarget
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x10
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r6]
+ bl sub_807492C
+ 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_8076B2C
+ adds r0, 0x2
+ strh r0, [r4, 0x38]
+ movs r0, 0x3F
+ bl sub_8073A44
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x3A]
+ ldr r0, _080A8A74 @ =sub_80A8A78
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8A70: .4byte gBattleAnimTarget
+_080A8A74: .4byte sub_80A8A78
+ thumb_func_end sub_80A8A1C
+
+ thumb_func_start sub_80A8A78
+sub_80A8A78: @ 80A8A78
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080A8ADC
+ cmp r1, 0x1
+ bgt _080A8A8E
+ cmp r1, 0
+ beq _080A8A94
+ b _080A8BBC
+_080A8A8E:
+ cmp r1, 0x2
+ beq _080A8B6E
+ b _080A8BBC
+_080A8A94:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080A8ABE
+ 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]
+_080A8ABE:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080A8BBC
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r2]
+ b _080A8B66
+_080A8ADC:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080A8B22
+ ldrh r2, [r4, 0x32]
+ movs r3, 0x32
+ ldrsh r1, [r4, r3]
+ movs r3, 0x38
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080A8B22
+ 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 _080A8B22
+ ldrh r1, [r4, 0x3A]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xC6
+ bl PlaySE12WithPanning
+_080A8B22:
+ 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 _080A8B36
+ movs r0, 0x40
+ b _080A8B44
+_080A8B36:
+ movs r0, 0x20
+ negs r0, r0
+ cmp r2, r0
+ bgt _080A8B50
+ movs r2, 0x40
+ negs r2, r2
+ adds r0, r2, 0
+_080A8B44:
+ subs r0, r1
+ strh r0, [r4, 0x36]
+ movs r3, 0x34
+ ldrsh r0, [r4, r3]
+ negs r0, r0
+ strh r0, [r4, 0x34]
+_080A8B50:
+ 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 _080A8BBC
+ strh r2, [r4, 0x30]
+ strh r2, [r4, 0x32]
+_080A8B66:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080A8BBC
+_080A8B6E:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080A8B9A
+ 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]
+_080A8B9A:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080A8BBC
+ 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
+_080A8BBC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A8A78
+
+ thumb_func_start sub_80A8BC4
+sub_80A8BC4: @ 80A8BC4
+ 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, _080A8BE8 @ =gBattleAnimArgs
+ movs r3, 0x4
+ ldrsh r2, [r0, r3]
+ adds r7, r1, 0
+ adds r1, r0, 0
+ cmp r2, 0
+ bne _080A8BF0
+ ldr r0, _080A8BEC @ =gBattleAnimAttacker
+ b _080A8BF2
+ .align 2, 0
+_080A8BE8: .4byte gBattleAnimArgs
+_080A8BEC: .4byte gBattleAnimAttacker
+_080A8BF0:
+ ldr r0, _080A8C2C @ =gBattleAnimTarget
+_080A8BF2:
+ ldrb r5, [r0]
+ ldrb r1, [r1, 0x6]
+ movs r0, 0x1
+ adds r4, r0, 0
+ eors r4, r1
+ bl sub_8075290
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8C6A
+ movs r1, 0x2
+ adds r0, r5, 0
+ eors r0, r1
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8C6A
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, sp
+ adds r3, r7, 0
+ bl sub_8076D9C
+ cmp r4, 0
+ bne _080A8C30
+ adds r0, r5, 0
+ movs r1, 0
+ b _080A8C34
+ .align 2, 0
+_080A8C2C: .4byte gBattleAnimTarget
+_080A8C30:
+ adds r0, r5, 0
+ movs r1, 0x2
+_080A8C34:
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r5, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8C60
+ ldr r2, _080A8C5C @ =gBattleAnimArgs
+ mov r0, sp
+ ldrh r1, [r0]
+ subs r1, r4
+ ldrh r0, [r2]
+ subs r1, r0
+ subs r0, r1
+ strh r0, [r2]
+ b _080A8C6A
+ .align 2, 0
+_080A8C5C: .4byte gBattleAnimArgs
+_080A8C60:
+ ldr r1, _080A8C7C @ =gBattleAnimArgs
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, r4
+ strh r0, [r1]
+_080A8C6A:
+ ldr r1, _080A8C80 @ =sub_8075D9C
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8C7C: .4byte gBattleAnimArgs
+_080A8C80: .4byte sub_8075D9C
+ thumb_func_end sub_80A8BC4
+
+ thumb_func_start sub_80A8C84
+sub_80A8C84: @ 80A8C84
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8C9E
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A8C9E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A8C84
+
+ thumb_func_start sub_80A8CA4
+sub_80A8CA4: @ 80A8CA4
+ 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, _080A8CD0 @ =gBattleAnimArgs
+ movs r2, 0xA
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _080A8CDC
+ ldr r0, _080A8CD4 @ =gBattleAnimAttacker
+ ldrb r7, [r0]
+ ldr r0, _080A8CD8 @ =gBattleAnimTarget
+ b _080A8CE2
+ .align 2, 0
+_080A8CD0: .4byte gBattleAnimArgs
+_080A8CD4: .4byte gBattleAnimAttacker
+_080A8CD8: .4byte gBattleAnimTarget
+_080A8CDC:
+ ldr r0, _080A8CFC @ =gBattleAnimTarget
+ ldrb r7, [r0]
+ ldr r0, _080A8D00 @ =gBattleAnimAttacker
+_080A8CE2:
+ ldrb r0, [r0]
+ mov r8, r0
+ ldr r0, _080A8D04 @ =gBattleAnimArgs
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ bne _080A8D08
+ movs r0, 0
+ mov r10, r0
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ b _080A8D10
+ .align 2, 0
+_080A8CFC: .4byte gBattleAnimTarget
+_080A8D00: .4byte gBattleAnimAttacker
+_080A8D04: .4byte gBattleAnimArgs
+_080A8D08:
+ movs r2, 0x2
+ mov r10, r2
+ movs r3, 0x3
+ str r3, [sp, 0x4]
+_080A8D10:
+ adds r0, r7, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8D6C
+ adds r0, r7, 0
+ mov r1, r10
+ bl sub_8074480
+ lsls r0, 24
+ ldr r1, _080A8D50 @ =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 sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8D5C
+ ldr r2, _080A8D54 @ =gSprites
+ ldr r0, _080A8D58 @ =gUnknown_2023D44
+ adds r0, r4, r0
+ b _080A8DEA
+ .align 2, 0
+_080A8D50: .4byte gBattleAnimArgs
+_080A8D54: .4byte gSprites
+_080A8D58: .4byte gUnknown_2023D44
+_080A8D5C:
+ ldr r2, _080A8D64 @ =gSprites
+ ldr r0, _080A8D68 @ =gUnknown_2023D44
+ add r0, r8
+ b _080A8DEA
+ .align 2, 0
+_080A8D64: .4byte gSprites
+_080A8D68: .4byte gUnknown_2023D44
+_080A8D6C:
+ adds r0, r7, 0
+ mov r1, r10
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A8DD4 @ =gBattleAnimArgs
+ ldrh r1, [r1]
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A8DE4
+ movs r0, 0x2
+ adds r4, r7, 0
+ eors r4, r0
+ adds r0, r4, 0
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8DE4
+ ldr r3, _080A8DD8 @ =gSprites
+ ldr r2, _080A8DDC @ =gUnknown_2023D44
+ 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 _080A8DE0
+ adds r0, r2, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ adds r0, 0x1
+ b _080A8DFA
+ .align 2, 0
+_080A8DD4: .4byte gBattleAnimArgs
+_080A8DD8: .4byte gSprites
+_080A8DDC: .4byte gUnknown_2023D44
+_080A8DE0:
+ adds r0, r6, 0
+ b _080A8DF4
+_080A8DE4:
+ ldr r2, _080A8E40 @ =gSprites
+ ldr r0, _080A8E44 @ =gUnknown_2023D44
+ adds r0, r7, r0
+_080A8DEA:
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+_080A8DF4:
+ adds r0, 0x43
+ ldrb r0, [r0]
+ subs r0, 0x1
+_080A8DFA:
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ adds r0, r7, 0
+ ldr r1, [sp, 0x4]
+ bl sub_8074480
+ lsls r0, 24
+ ldr r4, _080A8E48 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A8E4C
+ movs r1, 0x2
+ mov r0, r8
+ eors r0, r1
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8E4C
+ ldrb r1, [r4, 0xC]
+ mov r0, r8
+ mov r2, sp
+ mov r3, sp
+ adds r3, 0x2
+ bl sub_8076D9C
+ b _080A8E6C
+ .align 2, 0
+_080A8E40: .4byte gSprites
+_080A8E44: .4byte gUnknown_2023D44
+_080A8E48: .4byte gBattleAnimArgs
+_080A8E4C:
+ mov r4, sp
+ mov r0, r8
+ mov r1, r10
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ mov r0, r8
+ ldr r1, [sp, 0x4]
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, sp
+ strh r0, [r2, 0x2]
+_080A8E6C:
+ mov r0, r8
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8E90
+ mov r3, sp
+ mov r2, sp
+ ldr r1, _080A8E8C @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x6]
+ ldrh r2, [r2]
+ adds r0, r2
+ strh r0, [r3]
+ adds r2, r1, 0
+ b _080A8E9E
+ .align 2, 0
+_080A8E8C: .4byte gBattleAnimArgs
+_080A8E90:
+ mov r3, sp
+ mov r0, sp
+ ldr r2, _080A8EE0 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ ldrh r1, [r2, 0x6]
+ subs r0, r1
+ strh r0, [r3]
+_080A8E9E:
+ ldrh r1, [r2, 0x8]
+ mov r3, sp
+ ldrh r3, [r3, 0x2]
+ adds r1, r3
+ mov r0, sp
+ strh r1, [r0, 0x2]
+ mov r3, r9
+ strh r3, [r5, 0x30]
+ strh r3, [r5, 0x20]
+ strh r6, [r5, 0x34]
+ strh r6, [r5, 0x22]
+ ldrh r0, [r0]
+ strh r0, [r5, 0x32]
+ strh r1, [r5, 0x36]
+ ldrh r0, [r2]
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080A8EE4 @ =sub_80A8C84
+ 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
+ .align 2, 0
+_080A8EE0: .4byte gBattleAnimArgs
+_080A8EE4: .4byte sub_80A8C84
+ thumb_func_end sub_80A8CA4
+
+ thumb_func_start sub_80A8EE8
+sub_80A8EE8: @ 80A8EE8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A8F28 @ =0x000027db
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080A8F0E
+ lsls r0, 20
+ ldr r1, _080A8F2C @ =0x01010000
+ adds r0, r1
+ lsrs r0, 16
+ ldr r1, _080A8F30 @ =gBattleAnimArgs
+ ldrb r2, [r1, 0xA]
+ ldrh r3, [r1, 0x8]
+ movs r1, 0xF
+ bl BlendPalette
+_080A8F0E:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r1, _080A8F34 @ =sub_8075D9C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8F28: .4byte 0x000027db
+_080A8F2C: .4byte 0x01010000
+_080A8F30: .4byte gBattleAnimArgs
+_080A8F34: .4byte sub_8075D9C
+ thumb_func_end sub_80A8EE8
+
+ thumb_func_start sub_80A8F38
+sub_80A8F38: @ 80A8F38
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8075160
+ ldr r0, _080A8F6C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r1, 0xA0
+ cmp r0, 0
+ beq _080A8F54
+ ldr r1, _080A8F70 @ =0x0000ff60
+_080A8F54:
+ movs r0, 0xE0
+ lsls r0, 2
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ ldr r0, _080A8F74 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x3C]
+ ldr r0, _080A8F78 @ =sub_80A8F7C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8F6C: .4byte gBattleAnimAttacker
+_080A8F70: .4byte 0x0000ff60
+_080A8F74: .4byte gBattleAnimArgs
+_080A8F78: .4byte sub_80A8F7C
+ thumb_func_end sub_80A8F38
+
+ thumb_func_start sub_80A8F7C
+sub_80A8F7C: @ 80A8F7C
+ 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, _080A8FE8 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r1, 0xA0
+ cmp r0, 0
+ beq _080A8FAC
+ ldr r1, _080A8FEC @ =0x0000ff60
+_080A8FAC:
+ 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 _080A8FE0
+ 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, _080A8FF0 @ =sub_80A8FF4
+ str r0, [r4, 0x1C]
+_080A8FE0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8FE8: .4byte gBattleAnimAttacker
+_080A8FEC: .4byte 0x0000ff60
+_080A8FF0: .4byte sub_80A8FF4
+ thumb_func_end sub_80A8F7C
+
+ thumb_func_start sub_80A8FF4
+sub_80A8FF4: @ 80A8FF4
+ 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 _080A9012
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldr r0, _080A9018 @ =sub_80A901C
+ str r0, [r4, 0x1C]
+_080A9012:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9018: .4byte sub_80A901C
+ thumb_func_end sub_80A8FF4
+
+ thumb_func_start sub_80A901C
+sub_80A901C: @ 80A901C
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080A9082
+ 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 _080A9068
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r3, _080A905C @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080A9060 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r0, _080A9064 @ =sub_80A9094
+ b _080A9080
+ .align 2, 0
+_080A905C: .4byte 0x000003ff
+_080A9060: .4byte 0xfffffc00
+_080A9064: .4byte sub_80A9094
+_080A9068:
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x20
+ ldr r3, _080A9088 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080A908C @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r0, _080A9090 @ =sub_80A911C
+_080A9080:
+ str r0, [r4, 0x1C]
+_080A9082:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9088: .4byte 0x000003ff
+_080A908C: .4byte 0xfffffc00
+_080A9090: .4byte sub_80A911C
+ thumb_func_end sub_80A901C
+
+ thumb_func_start sub_80A9094
+sub_80A9094: @ 80A9094
+ 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 _080A90CA
+ 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, _080A90D0 @ =sub_80A90D4
+ str r0, [r4, 0x1C]
+_080A90CA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A90D0: .4byte sub_80A90D4
+ thumb_func_end sub_80A9094
+
+ thumb_func_start sub_80A90D4
+sub_80A90D4: @ 80A90D4
+ 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 _080A9112
+ 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 _080A9112
+ ldr r0, _080A9118 @ =sub_80A911C
+ str r0, [r4, 0x1C]
+_080A9112:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9118: .4byte sub_80A911C
+ thumb_func_end sub_80A90D4
+
+ thumb_func_start sub_80A911C
+sub_80A911C: @ 80A911C
+ push {lr}
+ adds r3, r0, 0
+ ldr r0, _080A9144 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080A9148 @ =0x0000ffff
+ cmp r1, r0
+ bne _080A9154
+ 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 _080A9150
+ ldr r0, _080A914C @ =sub_80A915C
+ b _080A9152
+ .align 2, 0
+_080A9144: .4byte gBattleAnimArgs
+_080A9148: .4byte 0x0000ffff
+_080A914C: .4byte sub_80A915C
+_080A9150:
+ ldr r0, _080A9158 @ =DestroyAnimSprite
+_080A9152:
+ str r0, [r3, 0x1C]
+_080A9154:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9158: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A911C
+
+ thumb_func_start sub_80A915C
+sub_80A915C: @ 80A915C
+ 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_80A915C
+
+ thumb_func_start sub_80A917C
+sub_80A917C: @ 80A917C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080A91AC @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x8]
+ ldr r2, _080A91B0 @ =gUnknown_83E4128
+ adds r0, r4, 0
+ bl sub_80762D0
+ ldr r0, _080A91B4 @ =sub_80A91B8
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A91AC: .4byte gTasks
+_080A91B0: .4byte gUnknown_83E4128
+_080A91B4: .4byte sub_80A91B8
+ thumb_func_end sub_80A917C
+
+ thumb_func_start sub_80A91B8
+sub_80A91B8: @ 80A91B8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080A9208 @ =gTasks
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl sub_8076308
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _080A9202
+ ldr r2, _080A920C @ =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
+_080A9202:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9208: .4byte gTasks
+_080A920C: .4byte gSprites
+ thumb_func_end sub_80A91B8
+
+ thumb_func_start sub_80A9210
+sub_80A9210: @ 80A9210
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080A9244 @ =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, _080A9248 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A9250
+ ldr r0, _080A924C @ =0x0000ffff
+ strh r0, [r4, 0x22]
+ movs r0, 0x8
+ b _080A9256
+ .align 2, 0
+_080A9244: .4byte gTasks
+_080A9248: .4byte gBattleAnimTarget
+_080A924C: .4byte 0x0000ffff
+_080A9250:
+ movs r0, 0x1
+ strh r0, [r4, 0x22]
+ ldr r0, _080A9270 @ =0x0000fff8
+_080A9256:
+ strh r0, [r4, 0x24]
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _080A9274 @ =sub_80A9278
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9270: .4byte 0x0000fff8
+_080A9274: .4byte sub_80A9278
+ thumb_func_end sub_80A9210
+
+ thumb_func_start sub_80A9278
+sub_80A9278: @ 80A9278
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080A929C @ =gTasks
+ adds r3, r0, r1
+ movs r0, 0x8
+ ldrsh r4, [r3, r0]
+ cmp r4, 0x1
+ beq _080A92CC
+ cmp r4, 0x1
+ bgt _080A92A0
+ cmp r4, 0
+ beq _080A92AA
+ b _080A9392
+ .align 2, 0
+_080A929C: .4byte gTasks
+_080A92A0:
+ cmp r4, 0x2
+ beq _080A9348
+ cmp r4, 0x3
+ beq _080A9362
+ b _080A9392
+_080A92AA:
+ ldr r2, _080A92C8 @ =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 _080A935A
+ .align 2, 0
+_080A92C8: .4byte gSprites
+_080A92CC:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080A9392
+ 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 _080A9304
+ ldr r2, _080A9300 @ =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 _080A9316
+ .align 2, 0
+_080A9300: .4byte gSprites
+_080A9304:
+ ldr r2, _080A9344 @ =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
+_080A9316:
+ 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 _080A9392
+ ldrh r1, [r3, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A935A
+ 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 _080A935A
+ .align 2, 0
+_080A9344: .4byte gSprites
+_080A9348:
+ ldrh r0, [r3, 0x20]
+ subs r0, 0x1
+ strh r0, [r3, 0x20]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080A935A
+ movs r0, 0
+ strh r0, [r3, 0x8]
+ b _080A9392
+_080A935A:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _080A9392
+_080A9362:
+ ldr r2, _080A9398 @ =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 _080A9392
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080A9392:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9398: .4byte gSprites
+ thumb_func_end sub_80A9278
+
+ thumb_func_start sub_80A939C
+sub_80A939C: @ 80A939C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080A93D8 @ =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 GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _080A93DC @ =sub_80A93E0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A93D8: .4byte gTasks
+_080A93DC: .4byte sub_80A93E0
+ thumb_func_end sub_80A939C
+
+ thumb_func_start sub_80A93E0
+sub_80A93E0: @ 80A93E0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080A9434 @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ bne _080A94A6
+ 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 _080A94A6
+ 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 _080A943C
+ ldr r3, _080A9438 @ =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 _080A9452
+ .align 2, 0
+_080A9434: .4byte gTasks
+_080A9438: .4byte gSprites
+_080A943C:
+ ldr r3, _080A9484 @ =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
+_080A9452:
+ 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 _080A94A6
+ 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 _080A9488
+ strh r2, [r4, 0xA]
+ strh r2, [r4, 0xC]
+ strh r2, [r4, 0xE]
+ b _080A94A6
+ .align 2, 0
+_080A9484: .4byte gSprites
+_080A9488:
+ 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
+_080A94A6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A93E0
+
+ thumb_func_start sub_80A94AC
+sub_80A94AC: @ 80A94AC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080A94FC @ =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, _080A9500 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x24]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _080A9504 @ =sub_80A9508
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A94FC: .4byte gTasks
+_080A9500: .4byte gBattleAnimAttacker
+_080A9504: .4byte sub_80A9508
+ thumb_func_end sub_80A94AC
+
+ thumb_func_start sub_80A9508
+sub_80A9508: @ 80A9508
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080A952C @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x18
+ ldrsh r2, [r4, r0]
+ cmp r2, 0x1
+ beq _080A9574
+ cmp r2, 0x1
+ bgt _080A9530
+ cmp r2, 0
+ beq _080A9536
+ b _080A9590
+ .align 2, 0
+_080A952C: .4byte gTasks
+_080A9530:
+ cmp r2, 0x2
+ beq _080A958C
+ b _080A9590
+_080A9536:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080A9590
+ 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 _080A9590
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A956E
+ strh r2, [r4, 0x14]
+ movs r0, 0x1
+ strh r0, [r4, 0x18]
+ b _080A9590
+_080A956E:
+ movs r0, 0x2
+ strh r0, [r4, 0x18]
+ b _080A9590
+_080A9574:
+ 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 _080A9590
+ strh r2, [r4, 0x16]
+ strh r1, [r4, 0x18]
+ b _080A9590
+_080A958C:
+ movs r0, 0x1
+ strh r0, [r4, 0x12]
+_080A9590:
+ movs r2, 0x8
+ ldrsh r5, [r4, r2]
+ cmp r5, 0
+ beq _080A959E
+ cmp r5, 0x1
+ beq _080A9634
+ b _080A9642
+_080A959E:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080A9642
+ strh r5, [r4, 0xA]
+ ldr r0, _080A9628 @ =gUnknown_83E4154
+ 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 _080A9642
+ ldr r0, _080A962C @ =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, _080A9630 @ =gUnknown_83E416C
+ 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 _080A9642
+ 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 _080A9642
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080A9642
+ .align 2, 0
+_080A9628: .4byte gUnknown_83E4154
+_080A962C: .4byte gSprites
+_080A9630: .4byte gUnknown_83E416C
+_080A9634:
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A9642
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080A9642:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A9508
+
+ thumb_func_start sub_80A9648
+sub_80A9648: @ 80A9648
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r4, _080A96B0 @ =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 _080A96AA
+ 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
+_080A96AA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A96B0: .4byte gTasks
+ thumb_func_end sub_80A9648
+
+ thumb_func_start sub_80A96B4
+sub_80A96B4: @ 80A96B4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080A9750 @ =0x000027de
+ bl IndexOfSpritePaletteTag
+ mov r1, sp
+ strb r0, [r1]
+ movs r4, 0x1
+ ldr r0, _080A9754 @ =0x00002710
+ adds r5, r0, 0
+_080A96CC:
+ 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 _080A96CC
+ movs r0, 0x80
+ lsls r0, 6
+ bl AllocZeroed
+ adds r1, r0, 0
+ ldr r0, _080A9758 @ =gMonSpritesGfxPtr
+ ldr r0, [r0]
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r0, r2
+ str r1, [r0]
+ ldr r0, _080A975C @ =gFile_graphics_battle_anims_sprites_206_palette
+ bl LZDecompressWram
+ movs r4, 0
+_080A9700:
+ ldr r5, _080A9758 @ =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 _080A9700
+ 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
+ .align 2, 0
+_080A9750: .4byte 0x000027de
+_080A9754: .4byte 0x00002710
+_080A9758: .4byte gMonSpritesGfxPtr
+_080A975C: .4byte gFile_graphics_battle_anims_sprites_206_palette
+ thumb_func_end sub_80A96B4
+
+ thumb_func_start sub_80A9760
+sub_80A9760: @ 80A9760
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _080A9784 @ =gUnknown_83E41C8
+ movs r4, 0x2
+_080A976A:
+ ldrh r0, [r5]
+ bl FreeSpritePaletteByTag
+ adds r5, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080A976A
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9784: .4byte gUnknown_83E41C8
+ thumb_func_end sub_80A9760
+
+ thumb_func_start sub_80A9788
+sub_80A9788: @ 80A9788
+ 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, _080A97DC @ =0x000003ff
+ adds r0, r1, 0
+ ands r3, r0
+ ldr r0, _080A97E0 @ =0xfffffc00
+ ands r0, r4
+ orrs r0, r3
+ strh r0, [r5, 0x4]
+ ldr r0, _080A97E4 @ =gUnknown_83E41C8
+ 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
+ .align 2, 0
+_080A97DC: .4byte 0x000003ff
+_080A97E0: .4byte 0xfffffc00
+_080A97E4: .4byte gUnknown_83E41C8
+ thumb_func_end sub_80A9788
+
+ thumb_func_start sub_80A97E8
+sub_80A97E8: @ 80A97E8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_8075160
+ ldr r6, _080A9850 @ =gBattleAnimAttacker
+ ldrb r0, [r6]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A9808
+ ldr r1, _080A9854 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080A9808:
+ ldr r4, _080A9854 @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldr r0, _080A9858 @ =sub_8075590
+ str r0, [r5, 0x1C]
+ ldr r1, _080A985C @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldrb r1, [r4, 0xA]
+ ldrb r2, [r4, 0xC]
+ adds r0, r5, 0
+ bl sub_80A9788
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9850: .4byte gBattleAnimAttacker
+_080A9854: .4byte gBattleAnimArgs
+_080A9858: .4byte sub_8075590
+_080A985C: .4byte DestroyAnimSprite
+ thumb_func_end sub_80A97E8
+
+ thumb_func_start sub_80A9860
+sub_80A9860: @ 80A9860
+ 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 _080A987A
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8075160
+_080A987A:
+ 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 _080A98AA
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A98AA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A9860
+
+ thumb_func_start sub_80A98B0
+sub_80A98B0: @ 80A98B0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ bl sub_8073788
+ lsls r0, 24
+ movs r6, 0xF0
+ cmp r0, 0
+ beq _080A98C4
+ movs r6, 0x98
+_080A98C4:
+ movs r5, 0
+ ldr r1, _080A9918 @ =gUnknown_2022984
+ strh r6, [r1]
+ ldr r4, _080A991C @ =gUnknown_2022986
+ movs r0, 0xA0
+ strh r0, [r4]
+ ldrh r1, [r1]
+ movs r0, 0x40
+ bl SetGpuReg
+ ldrh r1, [r4]
+ movs r0, 0x44
+ bl SetGpuReg
+ ldr r1, _080A9920 @ =0x00003f1f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r1, _080A9924 @ =0x00003f3f
+ movs r0, 0x4A
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0xC8
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0x10
+ bl SetGpuReg
+ ldr r1, _080A9928 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ strh r6, [r0, 0xA]
+ ldr r1, _080A992C @ =sub_80A9930
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9918: .4byte gUnknown_2022984
+_080A991C: .4byte gUnknown_2022986
+_080A9920: .4byte 0x00003f1f
+_080A9924: .4byte 0x00003f3f
+_080A9928: .4byte gTasks
+_080A992C: .4byte sub_80A9930
+ thumb_func_end sub_80A98B0
+
+ thumb_func_start sub_80A9930
+sub_80A9930: @ 80A9930
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A9964 @ =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 _080A9970
+ ldr r0, _080A9968 @ =gUnknown_2022984
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080A996C @ =sub_80A9984
+ str r0, [r3]
+ b _080A9978
+ .align 2, 0
+_080A9964: .4byte gTasks
+_080A9968: .4byte gUnknown_2022984
+_080A996C: .4byte sub_80A9984
+_080A9970:
+ ldr r1, _080A9980 @ =gUnknown_2022984
+ lsls r0, r4, 8
+ orrs r2, r0
+ strh r2, [r1]
+_080A9978:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9980: .4byte gUnknown_2022984
+ thumb_func_end sub_80A9930
+
+ thumb_func_start sub_80A9984
+sub_80A9984: @ 80A9984
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _080A99D0 @ =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 _080A99D8
+ 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_8075BE8
+ ldr r2, _080A99D4 @ =0x00007fff
+ movs r1, 0x10
+ bl BlendPalettes
+ b _080A9A0C
+ .align 2, 0
+_080A99D0: .4byte gTasks
+_080A99D4: .4byte 0x00007fff
+_080A99D8:
+ cmp r0, 0x4
+ ble _080A9A0C
+ ldr r0, _080A9A14 @ =gUnknown_2022984
+ strh r4, [r0]
+ ldr r0, _080A9A18 @ =gUnknown_2022986
+ strh r4, [r0]
+ ldr r4, _080A9A1C @ =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
+_080A9A0C:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9A14: .4byte gUnknown_2022984
+_080A9A18: .4byte gUnknown_2022986
+_080A9A1C: .4byte 0x00003f3f
+ thumb_func_end sub_80A9984
+
+ thumb_func_start sub_80A9A20
+sub_80A9A20: @ 80A9A20
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080A9A70 @ =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 _080A9A7C
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080A9A74 @ =gUnknown_83E4200
+ adds r0, r5, 0
+ bl sub_80762D0
+ ldr r1, _080A9A78 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x24]
+ b _080A9AA4
+ .align 2, 0
+_080A9A70: .4byte gTasks
+_080A9A74: .4byte gUnknown_83E4200
+_080A9A78: .4byte gSprites
+_080A9A7C:
+ ldr r1, _080A9AAC @ =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_8076308
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080A9AA4
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080A9AA4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9AAC: .4byte gSprites
+ thumb_func_end sub_80A9A20
+
+ thumb_func_start sub_80A9AB0
+sub_80A9AB0: @ 80A9AB0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080A9B00 @ =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 _080A9B0C
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080A9B04 @ =gUnknown_83E4200
+ adds r0, r5, 0
+ bl sub_80762D0
+ ldr r1, _080A9B08 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x24]
+ b _080A9B34
+ .align 2, 0
+_080A9B00: .4byte gTasks
+_080A9B04: .4byte gUnknown_83E4200
+_080A9B08: .4byte gSprites
+_080A9B0C:
+ ldr r1, _080A9B3C @ =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_8076308
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080A9B34
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080A9B34:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9B3C: .4byte gSprites
+ thumb_func_end sub_80A9AB0
+
+ thumb_func_start sub_80A9B40
+sub_80A9B40: @ 80A9B40
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ movs r0, 0x5F
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r5, _080A9B84 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ 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 sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080A9B88 @ =sub_80A9B8C
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9B84: .4byte gBattleAnimTarget
+_080A9B88: .4byte sub_80A9B8C
+ thumb_func_end sub_80A9B40
+
+ thumb_func_start sub_80A9B8C
+sub_80A9B8C: @ 80A9B8C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A9BB6
+ 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 _080A9BBC
+_080A9BB6:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A9BBC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A9B8C
+
+ thumb_func_start sub_80A9BC4
+sub_80A9BC4: @ 80A9BC4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A9BE8
+ ldr r1, _080A9BE4 @ =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 _080A9C44
+ .align 2, 0
+_080A9BE4: .4byte gBattleAnimArgs
+_080A9BE8:
+ 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 _080A9C36
+ 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]
+_080A9C36:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x78
+ ble _080A9C44
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A9C44:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A9BC4
+
+ thumb_func_start sub_80A9C4C
+sub_80A9C4C: @ 80A9C4C
+ push {lr}
+ ldr r2, _080A9C70 @ =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, _080A9C74 @ =sub_8074C44
+ str r1, [r0, 0x1C]
+ ldr r1, _080A9C78 @ =sub_80A9C7C
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9C70: .4byte gBattleAnimArgs
+_080A9C74: .4byte sub_8074C44
+_080A9C78: .4byte sub_80A9C7C
+ thumb_func_end sub_80A9C4C
+
+ thumb_func_start sub_80A9C7C
+sub_80A9C7C: @ 80A9C7C
+ 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 _080A9CE2
+ 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 _080A9CE2
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080A9CE2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A9C7C
+
+ thumb_func_start sub_80A9CE8
+sub_80A9CE8: @ 80A9CE8
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080A9DA0 @ =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 sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A9D2A
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+_080A9D2A:
+ ldr r0, _080A9DA4 @ =gBattle_BG1_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r4, _080A9DA8 @ =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_80752A0
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080A9DAC @ =gFile_graphics_battle_anims_backgrounds_attract_tilemap
+ bl sub_807543C
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080A9DB0 @ =gFile_graphics_battle_anims_backgrounds_attract_sheet
+ mov r2, sp
+ ldrh r2, [r2, 0xA]
+ bl sub_80753B4
+ ldr r0, _080A9DB4 @ =gFile_graphics_battle_anims_backgrounds_attract_palette
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A9D88
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80730C0
+_080A9D88:
+ ldr r0, _080A9DB8 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080A9DBC @ =sub_80A9DC0
+ str r0, [r1]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9DA0: .4byte 0x00003f42
+_080A9DA4: .4byte gBattle_BG1_X
+_080A9DA8: .4byte gBattle_BG1_Y
+_080A9DAC: .4byte gFile_graphics_battle_anims_backgrounds_attract_tilemap
+_080A9DB0: .4byte gFile_graphics_battle_anims_backgrounds_attract_sheet
+_080A9DB4: .4byte gFile_graphics_battle_anims_backgrounds_attract_palette
+_080A9DB8: .4byte gTasks
+_080A9DBC: .4byte sub_80A9DC0
+ thumb_func_end sub_80A9CE8
+
+ thumb_func_start sub_80A9DC0
+sub_80A9DC0: @ 80A9DC0
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080A9DE8 @ =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 _080A9DDE
+ b _080A9F08
+_080A9DDE:
+ lsls r0, 2
+ ldr r1, _080A9DEC @ =_080A9DF0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A9DE8: .4byte gTasks
+_080A9DEC: .4byte _080A9DF0
+ .align 2, 0
+_080A9DF0:
+ .4byte _080A9E04
+ .4byte _080A9E48
+ .4byte _080A9E6A
+ .4byte _080A9EAE
+ .4byte _080A9ED4
+_080A9E04:
+ 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 _080A9F08
+ 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 _080A9F08
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r5, [r4, 0x1E]
+ b _080A9F08
+_080A9E48:
+ 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 _080A9F08
+ movs r0, 0x10
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _080A9F08
+_080A9E6A:
+ 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 _080A9F08
+ 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 _080A9F08
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r1, [r4, 0x1E]
+ b _080A9F08
+_080A9EAE:
+ mov r0, sp
+ bl sub_80752A0
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ bl sub_8075358
+ ldr r1, _080A9ED0 @ =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 _080A9F08
+ .align 2, 0
+_080A9ED0: .4byte gTasks
+_080A9ED4:
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A9EE8
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl SetAnimBgAttribute
+_080A9EE8:
+ 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
+_080A9F08:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A9DC0
+
+ thumb_func_start sub_80A9F10
+sub_80A9F10: @ 80A9F10
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080A9F88 @ =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 sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A9F52
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+_080A9F52:
+ ldr r0, _080A9F8C @ =gBattle_BG1_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r4, _080A9F90 @ =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_80752A0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A9F98
+ ldr r0, _080A9F94 @ =gFile_graphics_battle_anims_backgrounds_scary_face_contest_tilemap
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+ b _080A9FC6
+ .align 2, 0
+_080A9F88: .4byte 0x00003f42
+_080A9F8C: .4byte gBattle_BG1_X
+_080A9F90: .4byte gBattle_BG1_Y
+_080A9F94: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_contest_tilemap
+_080A9F98:
+ ldr r0, _080A9FB4 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A9FBC
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080A9FB8 @ =gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap
+ bl sub_807543C
+ b _080A9FC6
+ .align 2, 0
+_080A9FB4: .4byte gBattleAnimTarget
+_080A9FB8: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap
+_080A9FBC:
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080AA010 @ =gFile_graphics_battle_anims_backgrounds_scary_face_opponent_tilemap
+ bl sub_807543C
+_080A9FC6:
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080AA014 @ =gFile_graphics_battle_anims_backgrounds_scary_face_sheet
+ mov r2, sp
+ ldrh r2, [r2, 0xA]
+ bl sub_80753B4
+ ldr r0, _080AA018 @ =gFile_graphics_battle_anims_backgrounds_scary_face_palette
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A9FFA
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80730C0
+_080A9FFA:
+ ldr r0, _080AA01C @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080AA020 @ =sub_80AA024
+ str r0, [r1]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA010: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_opponent_tilemap
+_080AA014: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_sheet
+_080AA018: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_palette
+_080AA01C: .4byte gTasks
+_080AA020: .4byte sub_80AA024
+ thumb_func_end sub_80A9F10
+
+ thumb_func_start sub_80AA024
+sub_80AA024: @ 80AA024
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080AA04C @ =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 _080AA042
+ b _080AA168
+_080AA042:
+ lsls r0, 2
+ ldr r1, _080AA050 @ =_080AA054
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AA04C: .4byte gTasks
+_080AA050: .4byte _080AA054
+ .align 2, 0
+_080AA054:
+ .4byte _080AA068
+ .4byte _080AA0AC
+ .4byte _080AA0CE
+ .4byte _080AA112
+ .4byte _080AA134
+_080AA068:
+ 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 _080AA168
+ 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 _080AA168
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r5, [r4, 0x1E]
+ b _080AA168
+_080AA0AC:
+ 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 _080AA168
+ movs r0, 0xE
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _080AA168
+_080AA0CE:
+ 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 _080AA168
+ 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 _080AA168
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r1, [r4, 0x1E]
+ b _080AA168
+_080AA112:
+ mov r0, sp
+ bl sub_80752A0
+ movs r0, 0x1
+ bl sub_8075358
+ movs r0, 0x2
+ bl sub_8075358
+ ldr r0, _080AA170 @ =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]
+_080AA134:
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AA148
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl SetAnimBgAttribute
+_080AA148:
+ 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
+_080AA168:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA170: .4byte gTasks
+ thumb_func_end sub_80AA024
+
+ thumb_func_start sub_80AA174
+sub_80AA174: @ 80AA174
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080AA1C8 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ 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, _080AA1CC @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ ldrb r0, [r5]
+ bl sub_807685C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x3C]
+ ldr r1, _080AA1D0 @ =sub_80AA1D4
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA1C8: .4byte gBattleAnimAttacker
+_080AA1CC: .4byte gBattleAnimArgs
+_080AA1D0: .4byte sub_80AA1D4
+ thumb_func_end sub_80AA174
+
+ thumb_func_start sub_80AA1D4
+sub_80AA1D4: @ 80AA1D4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080AA1EA
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ b _080AA1EE
+_080AA1EA:
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+_080AA1EE:
+ 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 _080AA260
+ cmp r2, 0x1
+ bne _080AA290
+ ldr r1, _080AA258 @ =0xfffffc00
+ adds r0, r1, 0
+ ldrh r2, [r4, 0x32]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldr r3, _080AA25C @ =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 _080AA290
+ movs r0, 0x2
+ strh r0, [r4, 0x38]
+ b _080AA2A0
+ .align 2, 0
+_080AA258: .4byte 0xfffffc00
+_080AA25C: .4byte 0xffffff00
+_080AA260:
+ 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 _080AA290
+ strh r2, [r4, 0x36]
+ movs r0, 0x1
+ strh r0, [r4, 0x38]
+_080AA290:
+ ldr r0, _080AA2A8 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080AA2AC @ =0x0000ffff
+ cmp r1, r0
+ bne _080AA2A0
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AA2A0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA2A8: .4byte gBattleAnimArgs
+_080AA2AC: .4byte 0x0000ffff
+ thumb_func_end sub_80AA1D4
+
+ thumb_func_start sub_80AA2B0
+sub_80AA2B0: @ 80AA2B0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080AA2F8 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, _080AA2FC @ =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, _080AA300 @ =sub_80AA304
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA2F8: .4byte gBattleAnimAttacker
+_080AA2FC: .4byte gBattleAnimArgs
+_080AA300: .4byte sub_80AA304
+ thumb_func_end sub_80AA2B0
+
+ thumb_func_start sub_80AA304
+sub_80AA304: @ 80AA304
+ 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 _080AA342
+ movs r0, 0x22
+ ldrsh r1, [r2, r0]
+ movs r3, 0x26
+ ldrsh r0, [r2, r3]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080AA342
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080AA348
+_080AA342:
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080AA348:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA304
+
+ thumb_func_start sub_80AA34C
+sub_80AA34C: @ 80AA34C
+ 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 _080AA378
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080AA378:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA34C
+
+ thumb_func_start sub_80AA37C
+sub_80AA37C: @ 80AA37C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080AA3C8 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, _080AA3CC @ =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, _080AA3D0 @ =sub_80AA34C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA3C8: .4byte gBattleAnimAttacker
+_080AA3CC: .4byte gBattleAnimArgs
+_080AA3D0: .4byte sub_80AA34C
+ thumb_func_end sub_80AA37C
+
+ thumb_func_start sub_80AA3D4
+sub_80AA3D4: @ 80AA3D4
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080AA3EA
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080AA3EA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA3D4
+
+ thumb_func_start sub_80AA3F0
+sub_80AA3F0: @ 80AA3F0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r0, _080AA404 @ =sub_80AA3D4
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA404: .4byte sub_80AA3D4
+ thumb_func_end sub_80AA3F0
+
+ thumb_func_start sub_80AA408
+sub_80AA408: @ 80AA408
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AA426
+ ldr r0, _080AA498 @ =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]
+_080AA426:
+ 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 _080AA46A
+ 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]
+_080AA46A:
+ movs r0, 0x2E
+ ldrsh r2, [r4, r0]
+ cmp r2, 0x5A
+ ble _080AA488
+ 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]
+_080AA488:
+ cmp r2, 0x64
+ ble _080AA492
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AA492:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA498: .4byte gBattleAnimArgs
+ thumb_func_end sub_80AA408
+
+ thumb_func_start sub_80AA49C
+sub_80AA49C: @ 80AA49C
+ 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 _080AA4F2
+ 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]
+_080AA4F2:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1E
+ ble _080AA500
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AA500:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA49C
+
+ thumb_func_start sub_80AA508
+sub_80AA508: @ 80AA508
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AA52C
+ ldr r1, _080AA528 @ =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 _080AA580
+ .align 2, 0
+_080AA528: .4byte gBattleAnimArgs
+_080AA52C:
+ 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 _080AA580
+ ldr r0, _080AA588 @ =sub_80AA49C
+ 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 Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xB4
+ bl __umodsi3
+ strh r0, [r4, 0x34]
+_080AA580:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA588: .4byte sub_80AA49C
+ thumb_func_end sub_80AA508
+
+ thumb_func_start sub_80AA58C
+sub_80AA58C: @ 80AA58C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AA5C6
+ ldr r1, _080AA688 @ =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, _080AA68C @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_807685C
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ movs r0, 0x1
+ strh r0, [r4, 0x32]
+_080AA5C6:
+ 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 _080AA5DC
+ adds r0, 0xFF
+_080AA5DC:
+ asrs r0, 8
+ lsls r0, 8
+ subs r0, r1, r0
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080AA5EE
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_080AA5EE:
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _080AA5FC
+ adds r0, 0x3
+_080AA5FC:
+ 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 _080AA618
+ adds r0, 0x7
+_080AA618:
+ 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 _080AA63C
+ ldrh r1, [r4, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080AA63C
+ ldr r0, _080AA690 @ =0x0000ffff
+ strh r0, [r4, 0x32]
+_080AA63C:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AA650
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bge _080AA650
+ movs r0, 0x1
+ strh r0, [r4, 0x32]
+_080AA650:
+ 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 _080AA694
+ 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 _080AA6A2
+ .align 2, 0
+_080AA688: .4byte gBattleAnimArgs
+_080AA68C: .4byte gBattleAnimTarget
+_080AA690: .4byte 0x0000ffff
+_080AA694:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080AA6A2:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5A
+ ble _080AA6B0
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AA6B0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA58C
+
+ thumb_func_start sub_80AA6B8
+sub_80AA6B8: @ 80AA6B8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AA6EC
+ ldr r1, _080AA6E8 @ =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 _080AA700
+ .align 2, 0
+_080AA6E8: .4byte gBattleAnimArgs
+_080AA6EC:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080AA700
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AA700:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA6B8
+
+ thumb_func_start sub_80AA708
+sub_80AA708: @ 80AA708
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r1, _080AA720 @ =gBattleAnimArgs
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080AA724
+ adds r0, r5, 0
+ bl DestroyAnimSprite
+ b _080AA788
+ .align 2, 0
+_080AA720: .4byte gBattleAnimArgs
+_080AA724:
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080AA734
+ ldr r4, _080AA730 @ =gBattleAnimAttacker
+ b _080AA736
+ .align 2, 0
+_080AA730: .4byte gBattleAnimAttacker
+_080AA734:
+ ldr r4, _080AA764 @ =gBattleAnimTarget
+_080AA736:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, _080AA768 @ =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r1, [r0, r2]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _080AA76C
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x20
+ b _080AA770
+ .align 2, 0
+_080AA764: .4byte gBattleAnimTarget
+_080AA768: .4byte gBattleAnimArgs
+_080AA76C:
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x20
+_080AA770:
+ 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, _080AA790 @ =sub_80AA794
+ str r0, [r5, 0x1C]
+_080AA788:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA790: .4byte sub_80AA794
+ thumb_func_end sub_80AA708
+
+ thumb_func_start sub_80AA794
+sub_80AA794: @ 80AA794
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080AA7C4
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080AA7BE
+ ldrh r1, [r2, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r2, 0
+ bl StartSpriteAnim
+ b _080AA7C4
+_080AA7BE:
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080AA7C4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA794
+
+ thumb_func_start sub_80AA7C8
+sub_80AA7C8: @ 80AA7C8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _080AA7FC @ =gBattleAnimArgs
+ ldrb r0, [r0]
+ bl GetAnimBankSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, _080AA800 @ =gTasks
+ adds r4, r0
+ ldr r2, _080AA804 @ =gUnknown_83E4410
+ adds r0, r4, 0
+ bl sub_80762D0
+ ldr r0, _080AA808 @ =sub_80AA80C
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA7FC: .4byte gBattleAnimArgs
+_080AA800: .4byte gTasks
+_080AA804: .4byte gUnknown_83E4410
+_080AA808: .4byte sub_80AA80C
+ thumb_func_end sub_80AA7C8
+
+ thumb_func_start sub_80AA80C
+sub_80AA80C: @ 80AA80C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080AA834 @ =gTasks
+ adds r0, r1
+ bl sub_8076308
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AA82C
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080AA82C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA834: .4byte gTasks
+ thumb_func_end sub_80AA80C
+
+ thumb_func_start sub_80AA838
+sub_80AA838: @ 80AA838
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, _080AA84C @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080AA854
+ ldr r0, _080AA850 @ =gBattleAnimAttacker
+ b _080AA856
+ .align 2, 0
+_080AA84C: .4byte gBattleAnimArgs
+_080AA850: .4byte gBattleAnimAttacker
+_080AA854:
+ ldr r0, _080AA8EC @ =gBattleAnimTarget
+_080AA856:
+ ldrb r6, [r0]
+ adds r0, r6, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080AA870
+ ldr r1, _080AA8F0 @ =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080AA870:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ ldr r7, _080AA8F0 @ =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 sub_8074480
+ 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 _080AA8B0
+ adds r0, 0x7
+_080AA8B0:
+ asrs r0, 3
+ strh r0, [r5, 0x34]
+ movs r3, 0x4
+ ldrsh r0, [r7, r3]
+ lsls r0, 3
+ cmp r0, 0
+ bge _080AA8C0
+ adds r0, 0x7
+_080AA8C0:
+ 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, _080AA8F4 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080AA8F8 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r0, _080AA8FC @ =sub_80AA900
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA8EC: .4byte gBattleAnimTarget
+_080AA8F0: .4byte gBattleAnimArgs
+_080AA8F4: .4byte 0x000003ff
+_080AA8F8: .4byte 0xfffffc00
+_080AA8FC: .4byte sub_80AA900
+ thumb_func_end sub_80AA838
+
+ thumb_func_start sub_80AA900
+sub_80AA900: @ 80AA900
+ 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 _080AA934
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080AA934:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA900
+
+ thumb_func_start sub_80AA938
+sub_80AA938: @ 80AA938
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AA95A
+ ldr r0, _080AA994 @ =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]
+_080AA95A:
+ 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 _080AA978
+ ldrb r0, [r4, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ movs r1, 0
+ bl sub_8075B48
+_080AA978:
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ adds r0, 0x50
+ cmp r1, r0
+ bne _080AA98C
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AA98C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA994: .4byte gBattleAnimArgs
+ thumb_func_end sub_80AA938
+
+ thumb_func_start sub_80AA998
+sub_80AA998: @ 80AA998
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080AA9C6
+ movs r5, 0x78
+ strh r5, [r6, 0x20]
+ ldr r4, _080AAA48 @ =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]
+_080AA9C6:
+ 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 _080AAA42
+ ldr r0, _080AAA4C @ =sub_80AAA50
+ 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
+_080AAA42:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAA48: .4byte gBattleAnimArgs
+_080AAA4C: .4byte sub_80AAA50
+ thumb_func_end sub_80AA998
+
+ thumb_func_start sub_80AAA50
+sub_80AAA50: @ 80AAA50
+ 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 _080AAA6A
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080AAA70 @ =sub_80AAA74
+ str r0, [r1, 0x1C]
+_080AAA6A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAA70: .4byte sub_80AAA74
+ thumb_func_end sub_80AAA50
+
+ thumb_func_start sub_80AAA74
+sub_80AAA74: @ 80AAA74
+ 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 _080AAA9E
+ lsls r0, r1, 16
+ cmp r0, 0
+ ble _080AAA9E
+ ldrh r0, [r4, 0x36]
+ subs r1, r0, 0x5
+ strh r1, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+_080AAA9E:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ ble _080AAAD0
+ 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
+_080AAAD0:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bne _080AAADE
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AAADE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AAA74
+
+ thumb_func_start sub_80AAAE4
+sub_80AAAE4: @ 80AAAE4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080AAB28 @ =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AAB30
+ ldr r4, _080AAB2C @ =gBattleAnimAttacker
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AAB30
+ ldrb r0, [r4]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_8076D9C
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x28
+ strh r0, [r5, 0x22]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _080AAB50
+ .align 2, 0
+_080AAB28: .4byte gBattleTypeFlags
+_080AAB2C: .4byte gBattleAnimAttacker
+_080AAB30:
+ ldr r4, _080AAB70 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x28
+ strh r0, [r5, 0x22]
+_080AAB50:
+ 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, _080AAB74 @ =sub_8075590
+ str r0, [r5, 0x1C]
+ ldr r1, _080AAB78 @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAB70: .4byte gBattleAnimAttacker
+_080AAB74: .4byte sub_8075590
+_080AAB78: .4byte DestroyAnimSprite
+ thumb_func_end sub_80AAAE4
+
+ thumb_func_start sub_80AAB7C
+sub_80AAB7C: @ 80AAB7C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080AAB98 @ =gBattleAnimArgs
+ ldr r1, _080AAB9C @ =gUnknown_2037EE4
+ ldr r1, [r1]
+ ldrb r2, [r1, 0x10]
+ movs r1, 0x1
+ ands r1, r2
+ strh r1, [r3, 0xE]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAB98: .4byte gBattleAnimArgs
+_080AAB9C: .4byte gUnknown_2037EE4
+ thumb_func_end sub_80AAB7C
+
+ thumb_func_start update_fury_cutter_counter_copy
+update_fury_cutter_counter_copy: @ 80AABA0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080AABB8 @ =gBattleAnimArgs
+ ldr r1, _080AABBC @ =gUnknown_2037EE4
+ ldr r1, [r1]
+ ldrb r1, [r1, 0x10]
+ strh r1, [r2, 0xE]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AABB8: .4byte gBattleAnimArgs
+_080AABBC: .4byte gUnknown_2037EE4
+ thumb_func_end update_fury_cutter_counter_copy
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/electric.s b/asm/electric.s
new file mode 100644
index 000000000..187e30b6d
--- /dev/null
+++ b/asm/electric.s
@@ -0,0 +1,2675 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80ADBEC
+sub_80ADBEC: @ 80ADBEC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080ADC0C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ADC14
+ ldr r0, _080ADC10 @ =gBattleAnimArgs
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ b _080ADC20
+ .align 2, 0
+_080ADC0C: .4byte gBattleAnimAttacker
+_080ADC10: .4byte gBattleAnimArgs
+_080ADC14:
+ ldr r1, _080ADC34 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ adds r0, r1, 0
+_080ADC20:
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _080ADC38 @ =sub_80ADC3C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADC34: .4byte gBattleAnimArgs
+_080ADC38: .4byte sub_80ADC3C
+ thumb_func_end sub_80ADBEC
+
+ thumb_func_start sub_80ADC3C
+sub_80ADC3C: @ 80ADC3C
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080ADC52
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080ADC52:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ADC3C
+
+ thumb_func_start sub_80ADC58
+sub_80ADC58: @ 80ADC58
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080ADC78 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ADC80
+ ldr r0, _080ADC7C @ =gBattleAnimArgs
+ ldrh r1, [r4, 0x20]
+ ldrh r0, [r0]
+ subs r1, r0
+ strh r1, [r4, 0x20]
+ b _080ADC8A
+ .align 2, 0
+_080ADC78: .4byte gBattleAnimAttacker
+_080ADC7C: .4byte gBattleAnimArgs
+_080ADC80:
+ ldr r0, _080ADC94 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+_080ADC8A:
+ ldr r0, _080ADC98 @ =sub_80ADC9C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADC94: .4byte gBattleAnimArgs
+_080ADC98: .4byte sub_80ADC9C
+ thumb_func_end sub_80ADC58
+
+ thumb_func_start sub_80ADC9C
+sub_80ADC9C: @ 80ADC9C
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080ADCB2
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080ADCB2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ADC9C
+
+ thumb_func_start sub_80ADCB8
+sub_80ADCB8: @ 80ADCB8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080ADCFC @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, _080ADD00 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ADD08
+ ldr r2, _080ADD04 @ =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 _080ADD1C
+ .align 2, 0
+_080ADCFC: .4byte gBattleAnimTarget
+_080ADD00: .4byte gBattleAnimAttacker
+_080ADD04: .4byte gBattleAnimArgs
+_080ADD08:
+ ldr r0, _080ADD40 @ =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
+_080ADD1C:
+ 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, _080ADD44 @ =move_anim_8074EE0
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080ADD48 @ =sub_8074A80
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADD40: .4byte gBattleAnimArgs
+_080ADD44: .4byte move_anim_8074EE0
+_080ADD48: .4byte sub_8074A80
+ thumb_func_end sub_80ADCB8
+
+ thumb_func_start sub_80ADD4C
+sub_80ADD4C: @ 80ADD4C
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, _080ADD64 @ =gBattleAnimArgs
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _080ADDC4
+ cmp r0, 0x1
+ bgt _080ADD68
+ cmp r0, 0
+ beq _080ADD72
+ b _080ADDC4
+ .align 2, 0
+_080ADD64: .4byte gBattleAnimArgs
+_080ADD68:
+ cmp r0, 0x2
+ beq _080ADD7C
+ cmp r0, 0x3
+ beq _080ADDA0
+ b _080ADDC4
+_080ADD72:
+ ldr r0, _080ADD78 @ =gBattleAnimAttacker
+ b _080ADDC6
+ .align 2, 0
+_080ADD78: .4byte gBattleAnimAttacker
+_080ADD7C:
+ ldr r4, _080ADD94 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r6, 0x2
+ eors r0, r6
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ADD98
+ ldrb r4, [r4]
+ b _080ADDC8
+ .align 2, 0
+_080ADD94: .4byte gBattleAnimAttacker
+_080ADD98:
+ ldrb r0, [r4]
+ adds r4, r6, 0
+ eors r4, r0
+ b _080ADDC8
+_080ADDA0:
+ ldr r0, _080ADDBC @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ movs r4, 0x2
+ eors r0, r4
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ADDC4
+ ldr r0, _080ADDC0 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ eors r4, r0
+ b _080ADDC8
+ .align 2, 0
+_080ADDBC: .4byte gBattleAnimAttacker
+_080ADDC0: .4byte gBattleAnimTarget
+_080ADDC4:
+ ldr r0, _080ADDE8 @ =gBattleAnimTarget
+_080ADDC6:
+ ldrb r4, [r0]
+_080ADDC8:
+ ldr r0, _080ADDEC @ =gBattleAnimArgs
+ movs r2, 0xA
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _080ADDF0
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r4, 0
+ movs r1, 0x1
+ b _080ADE02
+ .align 2, 0
+_080ADDE8: .4byte gBattleAnimTarget
+_080ADDEC: .4byte gBattleAnimArgs
+_080ADDF0:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r4, 0
+ movs r1, 0x3
+_080ADE02:
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r7, _080ADEA0 @ =gSineTable
+ ldr r6, _080ADEA4 @ =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 _080ADE66
+ adds r0, r4, 0
+ bl sub_8076884
+ 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]
+_080ADE66:
+ 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, _080ADEA8 @ =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, _080ADEAC @ =sub_80B1D3C
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADEA0: .4byte gSineTable
+_080ADEA4: .4byte gBattleAnimArgs
+_080ADEA8: .4byte gOamMatrices
+_080ADEAC: .4byte sub_80B1D3C
+ thumb_func_end sub_80ADD4C
+
+ thumb_func_start sub_80ADEB0
+sub_80ADEB0: @ 80ADEB0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r5, _080ADF24 @ =gBattleAnimArgs
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r6, _080ADF28 @ =gBattleAnimTarget
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8074480
+ 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 sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x38]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x3A]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x3C]
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r3, _080ADF2C @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080ADF30 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r1, _080ADF34 @ =sub_80ADF38
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADF24: .4byte gBattleAnimArgs
+_080ADF28: .4byte gBattleAnimTarget
+_080ADF2C: .4byte 0x000003ff
+_080ADF30: .4byte 0xfffffc00
+_080ADF34: .4byte sub_80ADF38
+ thumb_func_end sub_80ADEB0
+
+ thumb_func_start sub_80ADF38
+sub_80ADF38: @ 80ADF38
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ADFA2
+ 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 _080ADFA8
+ 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 _080ADFA8
+_080ADFA2:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080ADFA8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ADF38
+
+ thumb_func_start sub_80ADFB0
+sub_80ADFB0: @ 80ADFB0
+ 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 _080ADFE8
+ 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]
+_080ADFE8:
+ ldrh r0, [r3, 0x34]
+ subs r1, r0, 0x1
+ strh r1, [r3, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080ADFFA
+ adds r0, r3, 0
+ bl DestroyAnimSprite
+_080ADFFA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ADFB0
+
+ thumb_func_start sub_80AE000
+sub_80AE000: @ 80AE000
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AE01C
+ ldr r0, _080AE060 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AE024
+_080AE01C:
+ ldr r1, _080AE064 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080AE024:
+ ldr r5, _080AE060 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ ldr r4, _080AE064 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ 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, _080AE068 @ =sub_80ADFB0
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE060: .4byte gBattleAnimTarget
+_080AE064: .4byte gBattleAnimArgs
+_080AE068: .4byte sub_80ADFB0
+ thumb_func_end sub_80AE000
+
+ thumb_func_start sub_80AE06C
+sub_80AE06C: @ 80AE06C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r1, _080AE088 @ =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 _080AE090
+ ldr r0, _080AE08C @ =gBattleAnimTarget
+ b _080AE092
+ .align 2, 0
+_080AE088: .4byte gBattleAnimArgs
+_080AE08C: .4byte gBattleAnimTarget
+_080AE090:
+ ldr r0, _080AE118 @ =gBattleAnimAttacker
+_080AE092:
+ ldrb r6, [r0]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AE0AA
+ adds r0, r6, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AE0B2
+_080AE0AA:
+ ldr r1, _080AE11C @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080AE0B2:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ ldr r4, _080AE11C @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r3, [r4]
+ adds r0, r3
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldrh r1, [r4, 0xE]
+ ldr r0, _080AE120 @ =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, _080AE124 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080AE128 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r1, _080AE12C @ =sub_80AE130
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE118: .4byte gBattleAnimAttacker
+_080AE11C: .4byte gBattleAnimArgs
+_080AE120: .4byte 0x00007fff
+_080AE124: .4byte 0x000003ff
+_080AE128: .4byte 0xfffffc00
+_080AE12C: .4byte sub_80AE130
+ thumb_func_end sub_80AE06C
+
+ thumb_func_start sub_80AE130
+sub_80AE130: @ 80AE130
+ 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 _080AE186
+ 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]
+_080AE186:
+ ldrh r0, [r4, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080AE198
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AE198:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AE130
+
+ thumb_func_start sub_80AE1A0
+sub_80AE1A0: @ 80AE1A0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8075114
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ ldr r3, _080AE1DC @ =gBattleAnimArgs
+ movs r5, 0x6
+ ldrsh r0, [r3, r5]
+ lsls r0, 2
+ adds r1, r0
+ ldr r5, _080AE1E0 @ =0x000003ff
+ adds r0, r5, 0
+ ands r1, r0
+ ldr r0, _080AE1E4 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ movs r1, 0x6
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ bne _080AE1E8
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ b _080AE1F6
+ .align 2, 0
+_080AE1DC: .4byte gBattleAnimArgs
+_080AE1E0: .4byte 0x000003ff
+_080AE1E4: .4byte 0xfffffc00
+_080AE1E8:
+ cmp r0, 0x2
+ bne _080AE1FA
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x20
+_080AE1F6:
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+_080AE1FA:
+ ldr r0, _080AE214 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080AE218 @ =sub_8074C44
+ str r0, [r4, 0x1C]
+ ldr r1, _080AE21C @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE214: .4byte gBattleAnimArgs
+_080AE218: .4byte sub_8074C44
+_080AE21C: .4byte DestroyAnimSprite
+ thumb_func_end sub_80AE1A0
+
+ thumb_func_start sub_80AE220
+sub_80AE220: @ 80AE220
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _080AE268 @ =gBattleAnimTarget
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8074480
+ ldr r1, _080AE26C @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r1
+ lsls r0, 24
+ ldr r5, _080AE270 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r4, 0x8]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8074480
+ 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, _080AE274 @ =sub_80AE278
+ str r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE268: .4byte gBattleAnimTarget
+_080AE26C: .4byte gTasks
+_080AE270: .4byte gBattleAnimArgs
+_080AE274: .4byte sub_80AE278
+ thumb_func_end sub_80AE220
+
+ thumb_func_start sub_80AE278
+sub_80AE278: @ 80AE278
+ 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, _080AE2B8 @ =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 _080AE2BC
+ movs r0, 0
+ mov r8, r0
+ movs r2, 0x1
+ movs r1, 0x10
+ mov r12, r1
+ b _080AE2C6
+ .align 2, 0
+_080AE2B8: .4byte gTasks
+_080AE2BC:
+ movs r2, 0x10
+ mov r12, r2
+ movs r3, 0x8
+ mov r8, r3
+ movs r2, 0x4
+_080AE2C6:
+ 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 _080AE3BC
+ lsls r0, 2
+ ldr r1, _080AE2E4 @ =_080AE2E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AE2E4: .4byte _080AE2E8
+ .align 2, 0
+_080AE2E8:
+ .4byte _080AE314
+ .4byte _080AE3BC
+ .4byte _080AE328
+ .4byte _080AE3BC
+ .4byte _080AE348
+ .4byte _080AE3BC
+ .4byte _080AE35E
+ .4byte _080AE3BC
+ .4byte _080AE380
+ .4byte _080AE3BC
+ .4byte _080AE3B4
+_080AE314:
+ ldr r0, _080AE324 @ =gUnknown_83E60A0
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ mov r4, r12
+ lsls r3, r4, 16
+ b _080AE396
+ .align 2, 0
+_080AE324: .4byte gUnknown_83E60A0
+_080AE328:
+ 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, _080AE344 @ =gUnknown_83E60A0
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ b _080AE396
+ .align 2, 0
+_080AE344: .4byte gUnknown_83E60A0
+_080AE348:
+ 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 _080AE38A
+_080AE35E:
+ 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, _080AE37C @ =gUnknown_83E60A0
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ b _080AE396
+ .align 2, 0
+_080AE37C: .4byte gUnknown_83E60A0
+_080AE380:
+ mov r1, r12
+ lsls r0, r1, 16
+ asrs r0, 16
+ lsls r3, r0, 2
+ adds r3, r0
+_080AE38A:
+ ldr r0, _080AE3B0 @ =gUnknown_83E60A0
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ lsls r3, 16
+_080AE396:
+ 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 _080AE3BC
+ .align 2, 0
+_080AE3B0: .4byte gUnknown_83E60A0
+_080AE3B4:
+ mov r0, r9
+ bl DestroyAnimVisualTask
+ b _080AE400
+_080AE3BC:
+ cmp r7, 0
+ beq _080AE3F0
+ ldr r4, _080AE410 @ =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, _080AE414 @ =0x000003ff
+ adds r1, r6, 0
+ ands r2, r1
+ ldr r1, _080AE418 @ =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
+_080AE3F0:
+ ldr r0, _080AE41C @ =gTasks
+ mov r1, r10
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1C]
+ adds r0, 0x1
+ strh r0, [r1, 0x1C]
+_080AE400:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE410: .4byte gSprites
+_080AE414: .4byte 0x000003ff
+_080AE418: .4byte 0xfffffc00
+_080AE41C: .4byte gTasks
+ thumb_func_end sub_80AE278
+
+ thumb_func_start sub_80AE420
+sub_80AE420: @ 80AE420
+ push {lr}
+ adds r3, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080AE442
+ 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 _080AE456
+_080AE442:
+ 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]
+_080AE456:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bne _080AE46A
+ adds r0, r3, 0
+ bl DestroySprite
+_080AE46A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AE420
+
+ thumb_func_start sub_80AE470
+sub_80AE470: @ 80AE470
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r0, _080AE4D8 @ =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, _080AE4DC @ =gUnknown_83E60B8
+ 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, _080AE4E0 @ =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, _080AE4E4 @ =0x000003ff
+ adds r0, r7, 0
+ ands r1, r0
+ ldr r0, _080AE4E8 @ =0xfffffc00
+ ands r0, r5
+ orrs r0, r1
+ strh r0, [r6, 0x4]
+ ldr r1, _080AE4EC @ =gUnknown_2037EE2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ adds r3, 0x1C
+ adds r2, r3
+ ldr r0, _080AE4F0 @ =sub_80AE4F4
+ str r0, [r2]
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE4D8: .4byte gBattleAnimArgs
+_080AE4DC: .4byte gUnknown_83E60B8
+_080AE4E0: .4byte gSprites
+_080AE4E4: .4byte 0x000003ff
+_080AE4E8: .4byte 0xfffffc00
+_080AE4EC: .4byte gUnknown_2037EE2
+_080AE4F0: .4byte sub_80AE4F4
+ thumb_func_end sub_80AE470
+
+ thumb_func_start sub_80AE4F4
+sub_80AE4F4: @ 80AE4F4
+ 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 _080AE528
+ 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]
+_080AE528:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _080AE53C
+ adds r0, r3, 0
+ bl DestroyAnimSprite
+_080AE53C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AE4F4
+
+ thumb_func_start sub_80AE540
+sub_80AE540: @ 80AE540
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080AE560 @ =gTasks
+ adds r5, r1, r0
+ ldr r0, _080AE564 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080AE56C
+ ldr r4, _080AE568 @ =gBattleAnimAttacker
+ b _080AE56E
+ .align 2, 0
+_080AE560: .4byte gTasks
+_080AE564: .4byte gBattleAnimArgs
+_080AE568: .4byte gBattleAnimAttacker
+_080AE56C:
+ ldr r4, _080AE5B0 @ =gBattleAnimTarget
+_080AE56E:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x26]
+ ldr r2, _080AE5B4 @ =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, _080AE5B8 @ =sub_80AE5BC
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE5B0: .4byte gBattleAnimTarget
+_080AE5B4: .4byte gBattleAnimArgs
+_080AE5B8: .4byte sub_80AE5BC
+ thumb_func_end sub_80AE540
+
+ thumb_func_start sub_80AE5BC
+sub_80AE5BC: @ 80AE5BC
+ 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, _080AE6A4 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080AE6BC
+ 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 _080AE6CA
+ strh r7, [r5, 0x20]
+ ldr r0, _080AE6A8 @ =gUnknown_83E6120
+ 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 _080AE6CA
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080AE6AC @ =gSprites
+ adds r4, r0
+ ldr r1, _080AE6B0 @ =gUnknown_83E60D0
+ movs r2, 0x1A
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r3, 0
+ ldrsb r3, [r0, r3]
+ ldrh r0, [r4, 0x20]
+ adds r3, r0
+ strh r3, [r4, 0x20]
+ movs r2, 0x1A
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ ldrh r0, [r4, 0x22]
+ adds r2, r0
+ strh r2, [r4, 0x22]
+ movs r1, 0x18
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ movs r0, 0x28
+ subs r0, r1
+ strh r0, [r4, 0x2E]
+ strh r3, [r4, 0x30]
+ ldrh r0, [r5, 0x24]
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ ldrh r0, [r5, 0x26]
+ strh r0, [r4, 0x36]
+ strh r6, [r4, 0x38]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080AE6B4 @ =sub_80AE704
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080AE6B8 @ =sub_8074F6C
+ 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 _080AE674
+ strh r7, [r5, 0x1A]
+_080AE674:
+ 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 _080AE696
+ strh r7, [r5, 0x1C]
+ ldrh r1, [r5, 0x18]
+ movs r3, 0x18
+ ldrsh r0, [r5, r3]
+ cmp r0, 0x5
+ bgt _080AE696
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x18]
+_080AE696:
+ ldrh r0, [r5, 0x16]
+ adds r0, 0x1
+ strh r0, [r5, 0x16]
+ ldrh r0, [r5, 0x14]
+ subs r0, 0x1
+ strh r0, [r5, 0x14]
+ b _080AE6CA
+ .align 2, 0
+_080AE6A4: .4byte gTasks
+_080AE6A8: .4byte gUnknown_83E6120
+_080AE6AC: .4byte gSprites
+_080AE6B0: .4byte gUnknown_83E60D0
+_080AE6B4: .4byte sub_80AE704
+_080AE6B8: .4byte sub_8074F6C
+_080AE6BC:
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080AE6CA
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080AE6CA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AE5BC
+
+ thumb_func_start sub_80AE6D0
+sub_80AE6D0: @ 80AE6D0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AE6F8
+ ldr r2, _080AE700 @ =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
+_080AE6F8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE700: .4byte gTasks
+ thumb_func_end sub_80AE6D0
+
+ thumb_func_start sub_80AE704
+sub_80AE704: @ 80AE704
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, _080AE718 @ =sub_80AE6D0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE718: .4byte sub_80AE6D0
+ thumb_func_end sub_80AE704
+
+ thumb_func_start sub_80AE71C
+sub_80AE71C: @ 80AE71C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080AE730 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080AE738
+ ldr r4, _080AE734 @ =gBattleAnimAttacker
+ b _080AE73A
+ .align 2, 0
+_080AE730: .4byte gBattleAnimArgs
+_080AE734: .4byte gBattleAnimAttacker
+_080AE738:
+ ldr r4, _080AE768 @ =gBattleAnimTarget
+_080AE73A:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080AE76C @ =move_anim_8074EE0
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080AE770 @ =sub_8074F50
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE768: .4byte gBattleAnimTarget
+_080AE76C: .4byte move_anim_8074EE0
+_080AE770: .4byte sub_8074F50
+ thumb_func_end sub_80AE71C
+
+ thumb_func_start sub_80AE774
+sub_80AE774: @ 80AE774
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080AE788 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080AE790
+ ldr r4, _080AE78C @ =gBattleAnimAttacker
+ b _080AE792
+ .align 2, 0
+_080AE788: .4byte gBattleAnimArgs
+_080AE78C: .4byte gBattleAnimAttacker
+_080AE790:
+ ldr r4, _080AE7CC @ =gBattleAnimTarget
+_080AE792:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080AE7D0 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x24]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x26]
+ ldr r1, _080AE7D4 @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080AE7D8 @ =sub_8074F6C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE7CC: .4byte gBattleAnimTarget
+_080AE7D0: .4byte gBattleAnimArgs
+_080AE7D4: .4byte DestroyAnimSprite
+_080AE7D8: .4byte sub_8074F6C
+ thumb_func_end sub_80AE774
+
+ thumb_func_start sub_80AE7DC
+sub_80AE7DC: @ 80AE7DC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r4, _080AE834 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ 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 _080AE82A
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ strh r0, [r5, 0x3C]
+_080AE82A:
+ ldr r0, _080AE838 @ =sub_80AE83C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE834: .4byte gBattleAnimAttacker
+_080AE838: .4byte sub_80AE83C
+ thumb_func_end sub_80AE7DC
+
+ thumb_func_start sub_80AE83C
+sub_80AE83C: @ 80AE83C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080AE84E
+ cmp r0, 0x1
+ beq _080AE864
+ b _080AE894
+_080AE84E:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ ble _080AE894
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080AE894
+_080AE864:
+ ldrh r2, [r4, 0x3C]
+ ldrh r1, [r4, 0x20]
+ adds r0, r2, r1
+ strh r0, [r4, 0x20]
+ ldr r3, _080AE89C @ =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 _080AE894
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080AE894:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE89C: .4byte gSprites
+ thumb_func_end sub_80AE83C
+
+ thumb_func_start sub_80AE8A0
+sub_80AE8A0: @ 80AE8A0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080AE8C4 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080AE934
+ cmp r0, 0x1
+ bgt _080AE8C8
+ cmp r0, 0
+ beq _080AE8D4
+ b _080AEA04
+ .align 2, 0
+_080AE8C4: .4byte gTasks
+_080AE8C8:
+ cmp r0, 0x2
+ beq _080AE990
+ cmp r0, 0x3
+ bne _080AE8D2
+ b _080AE9E4
+_080AE8D2:
+ b _080AEA04
+_080AE8D4:
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ strh r0, [r5, 0x26]
+ ldr r4, _080AE908 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AE910
+ ldr r0, _080AE90C @ =0x0000ffe0
+ strh r0, [r5, 0x24]
+ movs r0, 0x2
+ b _080AE916
+ .align 2, 0
+_080AE908: .4byte gBattleAnimAttacker
+_080AE90C: .4byte 0x0000ffe0
+_080AE910:
+ movs r0, 0x20
+ strh r0, [r5, 0x24]
+ ldr r0, _080AE92C @ =0x0000fffe
+_080AE916:
+ strh r0, [r5, 0x22]
+ ldr r2, _080AE930 @ =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 _080AE9D6
+ .align 2, 0
+_080AE92C: .4byte 0x0000fffe
+_080AE930: .4byte gSprites
+_080AE934:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080AEA04
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ ldr r4, _080AE98C @ =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 _080AE9D6
+ 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 _080AEA04
+ .align 2, 0
+_080AE98C: .4byte gSprites
+_080AE990:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080AEA04
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ ldr r1, _080AE9E0 @ =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 _080AEA04
+_080AE9D6:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080AEA04
+ .align 2, 0
+_080AE9E0: .4byte gSprites
+_080AE9E4:
+ ldr r2, _080AEA0C @ =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
+_080AEA04:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AEA0C: .4byte gSprites
+ thumb_func_end sub_80AE8A0
+
+ thumb_func_start sub_80AEA10
+sub_80AEA10: @ 80AEA10
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080AEA34 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080AEA2A
+ b _080AEB50
+_080AEA2A:
+ cmp r0, 0x1
+ bgt _080AEA38
+ cmp r0, 0
+ beq _080AEA40
+ b _080AEB92
+ .align 2, 0
+_080AEA34: .4byte gTasks
+_080AEA38:
+ cmp r0, 0x2
+ bne _080AEA3E
+ b _080AEB84
+_080AEA3E:
+ b _080AEB92
+_080AEA40:
+ ldr r4, _080AEA80 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080AEA56
+ movs r1, 0x1
+_080AEA56:
+ movs r6, 0
+ strh r1, [r5, 0xA]
+ ldr r0, _080AEA84 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r3, r0, 0
+ cmp r2, 0
+ beq _080AEA8C
+ cmp r2, 0x4
+ beq _080AEAB4
+ ldrh r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AEAEC
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r5, 0xE]
+ ldr r0, _080AEA88 @ =0x0000fff0
+ b _080AEAF4
+ .align 2, 0
+_080AEA80: .4byte gBattleAnimAttacker
+_080AEA84: .4byte gBattleAnimArgs
+_080AEA88: .4byte 0x0000fff0
+_080AEA8C:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xE]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ 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 _080AEB2A
+_080AEAB4:
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r1, 7
+ movs r0, 0x78
+ subs r0, r1
+ strh r0, [r5, 0xE]
+ ldr r4, _080AEAE8 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0xA
+ ldrsh r1, [r5, r2]
+ lsls r1, 5
+ subs r0, r1
+ strh r0, [r5, 0x10]
+ b _080AEB2A
+ .align 2, 0
+_080AEAE8: .4byte gBattleAnimTarget
+_080AEAEC:
+ ldr r0, _080AEB10 @ =0x0000fff0
+ strh r0, [r5, 0xE]
+ movs r0, 0x80
+ lsls r0, 1
+_080AEAF4:
+ strh r0, [r5, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080AEB14
+ 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 _080AEB2A
+ .align 2, 0
+_080AEB10: .4byte 0x0000fff0
+_080AEB14:
+ 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]
+_080AEB2A:
+ movs r2, 0xE
+ ldrsh r1, [r5, r2]
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bge _080AEB40
+ movs r1, 0
+ movs r0, 0x1
+ strh r0, [r5, 0xA]
+ strh r1, [r5, 0x14]
+ b _080AEB7C
+_080AEB40:
+ ldr r0, _080AEB4C @ =0x0000ffff
+ strh r0, [r5, 0xA]
+ movs r0, 0x3
+ strh r0, [r5, 0x14]
+ b _080AEB7C
+ .align 2, 0
+_080AEB4C: .4byte 0x0000ffff
+_080AEB50:
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080AEB92
+ movs r0, 0
+ strh r0, [r5, 0xC]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80AEB98
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AEB7C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80AEB98
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AEB92
+_080AEB7C:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080AEB92
+_080AEB84:
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080AEB92
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080AEB92:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AEA10
+
+ thumb_func_start sub_80AEB98
+sub_80AEB98: @ 80AEB98
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _080AEC24 @ =gUnknown_83E6278
+ 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 _080AEBCE
+ ldr r1, _080AEC28 @ =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]
+_080AEBCE:
+ ldrh r1, [r4, 0xA]
+ ldrh r5, [r4, 0x14]
+ adds r0, r1, r5
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080AEBE0
+ movs r0, 0x3
+ strh r0, [r4, 0x14]
+_080AEBE0:
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ ble _080AEBEC
+ movs r0, 0
+ strh r0, [r4, 0x14]
+_080AEBEC:
+ 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 _080AEC0C
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0x10
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ bge _080AEC20
+_080AEC0C:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r3, r0
+ bne _080AEC2C
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r2, 0x10
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bgt _080AEC2C
+_080AEC20:
+ movs r0, 0x1
+ b _080AEC2E
+ .align 2, 0
+_080AEC24: .4byte gUnknown_83E6278
+_080AEC28: .4byte gSprites
+_080AEC2C:
+ movs r0, 0
+_080AEC2E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AEB98
+
+ thumb_func_start sub_80AEC34
+sub_80AEC34: @ 80AEC34
+ 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 _080AEC74
+ ldr r3, _080AEC7C @ =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
+_080AEC74:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AEC7C: .4byte gTasks
+ thumb_func_end sub_80AEC34
+
+ thumb_func_start sub_80AEC80
+sub_80AEC80: @ 80AEC80
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080AEC92
+ cmp r0, 0x1
+ beq _080AECC4
+ b _080AECD8
+_080AEC92:
+ ldr r4, _080AECC0 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ 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 _080AECD8
+ .align 2, 0
+_080AECC0: .4byte gBattleAnimAttacker
+_080AECC4:
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080AECD8
+ adds r0, r5, 0
+ bl move_anim_8074EE0
+_080AECD8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AEC80
+
+ thumb_func_start sub_80AECE0
+sub_80AECE0: @ 80AECE0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080AED04 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x4
+ bls _080AECFA
+ b _080AEE6C
+_080AECFA:
+ lsls r0, 2
+ ldr r1, _080AED08 @ =_080AED0C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AED04: .4byte gTasks
+_080AED08: .4byte _080AED0C
+ .align 2, 0
+_080AED0C:
+ .4byte _080AED20
+ .4byte _080AEDB0
+ .4byte _080AEDEC
+ .4byte _080AEE48
+ .4byte _080AEE58
+_080AED20:
+ ldr r4, _080AEDA4 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x14]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x16]
+ movs r0, 0x4
+ strh r0, [r5, 0x18]
+ ldr r0, _080AEDA8 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8074480
+ 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, _080AEDAC @ =0x0000ffff
+ strh r0, [r5, 0x12]
+ movs r0, 0xC
+ strh r0, [r5, 0x1E]
+ subs r0, 0x4C
+ bl sub_8073A44
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r5, 0x20]
+ movs r0, 0x3F
+ bl sub_8073A44
+ 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 _080AEE6A
+ .align 2, 0
+_080AEDA4: .4byte gBattleAnimAttacker
+_080AEDA8: .4byte gBattleAnimTarget
+_080AEDAC: .4byte 0x0000ffff
+_080AEDB0:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080AEDE0
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80AEE74
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AEDE0
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x5
+ bne _080AEDDA
+ movs r0, 0x3
+ b _080AEDDE
+_080AEDDA:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+_080AEDDE:
+ strh r0, [r5, 0x8]
+_080AEDE0:
+ ldrh r1, [r5, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080AEE6C
+ b _080AEE62
+_080AEDEC:
+ ldrh r1, [r5, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080AEDFA
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x1E]
+_080AEDFA:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080AEE6C
+ strh r3, [r5, 0xA]
+ ldrh r1, [r5, 0xC]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080AEE26
+ movs r0, 0x4
+ strh r0, [r5, 0x16]
+ movs r0, 0x44
+ strh r0, [r5, 0x18]
+ strh r3, [r5, 0x10]
+ strh r2, [r5, 0x12]
+ b _080AEE36
+_080AEE26:
+ movs r0, 0x44
+ strh r0, [r5, 0x16]
+ movs r0, 0x4
+ strh r0, [r5, 0x18]
+ movs r0, 0x7
+ strh r0, [r5, 0x10]
+ ldr r0, _080AEE44 @ =0x0000ffff
+ strh r0, [r5, 0x12]
+_080AEE36:
+ movs r1, 0x1E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080AEE68
+ movs r0, 0x4
+ b _080AEE6A
+ .align 2, 0
+_080AEE44: .4byte 0x0000ffff
+_080AEE48:
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080AEE6C
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+ b _080AEE6C
+_080AEE58:
+ ldrh r1, [r5, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080AEE68
+_080AEE62:
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x1E]
+ b _080AEE6C
+_080AEE68:
+ movs r0, 0x1
+_080AEE6A:
+ strh r0, [r5, 0x8]
+_080AEE6C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AECE0
+
+ thumb_func_start sub_80AEE74
+sub_80AEE74: @ 80AEE74
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _080AEF3C @ =gUnknown_83E62A8
+ 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 _080AEEE0
+ ldr r1, _080AEF40 @ =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, _080AEF44 @ =0x000003ff
+ adds r0, r6, 0
+ ands r1, r0
+ ldr r0, _080AEF48 @ =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 _080AEEC8
+ movs r0, 0x7
+ strh r0, [r4, 0x10]
+_080AEEC8:
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x7
+ ble _080AEED4
+ movs r0, 0
+ strh r0, [r4, 0x10]
+_080AEED4:
+ strh r5, [r3, 0x3A]
+ movs r0, 0x3
+ strh r0, [r3, 0x3C]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+_080AEEE0:
+ movs r3, 0x10
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _080AEF02
+ movs r5, 0x12
+ ldrsh r0, [r4, r5]
+ cmp r0, 0
+ ble _080AEF02
+ ldrh r1, [r4, 0x26]
+ ldrh r6, [r4, 0x24]
+ adds r1, r6
+ strh r1, [r4, 0x24]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x6F
+ bl PlaySE12WithPanning
+_080AEF02:
+ movs r0, 0x12
+ ldrsh r3, [r4, r0]
+ ldrh r2, [r4, 0x16]
+ cmp r3, 0
+ bge _080AEF18
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0x18
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ ble _080AEF28
+_080AEF18:
+ cmp r3, 0
+ ble _080AEF4C
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r6, 0x18
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ blt _080AEF4C
+_080AEF28:
+ 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 _080AEF58
+ .align 2, 0
+_080AEF3C: .4byte gUnknown_83E62A8
+_080AEF40: .4byte gSprites
+_080AEF44: .4byte 0x000003ff
+_080AEF48: .4byte 0xfffffc00
+_080AEF4C:
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ lsls r0, 3
+ adds r0, r2, r0
+ strh r0, [r4, 0x16]
+ movs r0, 0
+_080AEF58:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AEE74
+
+ thumb_func_start sub_80AEF60
+sub_80AEF60: @ 80AEF60
+ 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 _080AEF96
+ ldr r3, _080AEF9C @ =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
+_080AEF96:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AEF9C: .4byte gTasks
+ thumb_func_end sub_80AEF60
+
+ thumb_func_start sub_80AEFA0
+sub_80AEFA0: @ 80AEFA0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080AEFC4 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080AF01C
+ cmp r0, 0x1
+ bgt _080AEFC8
+ cmp r0, 0
+ beq _080AEFCE
+ b _080AF052
+ .align 2, 0
+_080AEFC4: .4byte gTasks
+_080AEFC8:
+ cmp r0, 0x2
+ beq _080AF044
+ b _080AF052
+_080AEFCE:
+ ldr r0, _080AF018 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r5, 0x26]
+ strh r0, [r5, 0x24]
+ cmp r0, 0x10
+ ble _080AEFF8
+ adds r2, r0, 0
+_080AEFE8:
+ adds r1, r2, 0
+ subs r1, 0x20
+ adds r2, r1, 0
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bgt _080AEFE8
+ strh r1, [r5, 0x24]
+_080AEFF8:
+ ldr r4, _080AF018 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl sub_807685C
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x2
+ strh r0, [r5, 0x20]
+ b _080AF03C
+ .align 2, 0
+_080AF018: .4byte gBattleAnimTarget
+_080AF01C:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080AF052
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80AF058
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AF052
+_080AF03C:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080AF052
+_080AF044:
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080AF052
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080AF052:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AEFA0
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fire.s b/asm/fire.s
new file mode 100644
index 000000000..0fb8ea1c1
--- /dev/null
+++ b/asm/fire.s
@@ -0,0 +1,2500 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80AC90C
+sub_80AC90C: @ 80AC90C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080AC940 @ =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, _080AC944 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r1, _080AC948 @ =sub_8074AE0
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC940: .4byte gBattleAnimArgs
+_080AC944: .4byte DestroyAnimSprite
+_080AC948: .4byte sub_8074AE0
+ thumb_func_end sub_80AC90C
+
+ thumb_func_start sub_80AC94C
+sub_80AC94C: @ 80AC94C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080AC984 @ =gBattleAnimArgs
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_8074FF8
+ 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, _080AC988 @ =sub_8074D00
+ str r0, [r4, 0x1C]
+ ldr r1, _080AC98C @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC984: .4byte gBattleAnimArgs
+_080AC988: .4byte sub_8074D00
+_080AC98C: .4byte DestroyAnimSprite
+ thumb_func_end sub_80AC94C
+
+ thumb_func_start sub_80AC990
+sub_80AC990: @ 80AC990
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8074FCC
+ ldr r0, _080AC9C4 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AC9CC
+ ldr r2, _080AC9C8 @ =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 _080AC9E2
+ .align 2, 0
+_080AC9C4: .4byte gBattleAnimAttacker
+_080AC9C8: .4byte gBattleAnimArgs
+_080AC9CC:
+ ldr r1, _080AC9F8 @ =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]
+_080AC9E2:
+ 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, _080AC9FC @ =sub_80ACA6C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC9F8: .4byte gBattleAnimArgs
+_080AC9FC: .4byte sub_80ACA6C
+ thumb_func_end sub_80AC990
+
+ thumb_func_start sub_80ACA00
+sub_80ACA00: @ 80ACA00
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080ACA2C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ACA34
+ ldr r2, _080ACA30 @ =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 _080ACA4C
+ .align 2, 0
+_080ACA2C: .4byte gBattleAnimAttacker
+_080ACA30: .4byte gBattleAnimArgs
+_080ACA34:
+ ldr r1, _080ACA64 @ =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]
+_080ACA4C:
+ 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, _080ACA68 @ =sub_80ACA6C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACA64: .4byte gBattleAnimArgs
+_080ACA68: .4byte sub_80ACA6C
+ thumb_func_end sub_80ACA00
+
+ thumb_func_start sub_80ACA6C
+sub_80ACA6C: @ 80ACA6C
+ 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 _080ACA92
+ 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]
+_080ACA92:
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bne _080ACAA4
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080ACAA4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ACA6C
+
+ thumb_func_start sub_80ACAA8
+sub_80ACAA8: @ 80ACAA8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8074FCC
+ ldr r0, _080ACACC @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ACAD4
+ ldr r0, _080ACAD0 @ =gBattleAnimArgs
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ b _080ACAE6
+ .align 2, 0
+_080ACACC: .4byte gBattleAnimAttacker
+_080ACAD0: .4byte gBattleAnimArgs
+_080ACAD4:
+ ldr r0, _080ACB14 @ =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]
+_080ACAE6:
+ 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, _080ACB18 @ =sub_80ACB1C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACB14: .4byte gBattleAnimArgs
+_080ACB18: .4byte sub_80ACB1C
+ thumb_func_end sub_80ACAA8
+
+ thumb_func_start sub_80ACB1C
+sub_80ACB1C: @ 80ACB1C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080ACBA4
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ ldr r0, _080ACB88 @ =0x00002710
+ cmp r1, r0
+ ble _080ACB3A
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1
+ strb r0, [r1]
+_080ACB3A:
+ 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 _080ACB90
+ ldr r2, _080ACB8C @ =0xffffff00
+ b _080ACB98
+ .align 2, 0
+_080ACB88: .4byte 0x00002710
+_080ACB8C: .4byte 0xffffff00
+_080ACB90:
+ cmp r0, 0
+ bge _080ACB9C
+ movs r2, 0x80
+ lsls r2, 1
+_080ACB98:
+ adds r0, r1, r2
+ strh r0, [r4, 0x2E]
+_080ACB9C:
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x34]
+ b _080ACBAA
+_080ACBA4:
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080ACBAA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ACB1C
+
+ thumb_func_start sub_80ACBB0
+sub_80ACBB0: @ 80ACBB0
+ 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, _080ACBD4 @ =sub_8075590
+ str r1, [r0, 0x1C]
+ ldr r1, _080ACBD8 @ =DestroyAnimSprite
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACBD4: .4byte sub_8075590
+_080ACBD8: .4byte DestroyAnimSprite
+ thumb_func_end sub_80ACBB0
+
+ thumb_func_start sub_80ACBDC
+sub_80ACBDC: @ 80ACBDC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r5, _080ACC34 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerSide
+ adds r4, r0, 0
+ ldr r0, _080ACC38 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080ACC22
+ movs r0, 0x2
+ bl GetBattlerAtPosition
+ ldrb r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ beq _080ACC1A
+ movs r0, 0x3
+ bl GetBattlerAtPosition
+ ldrb r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _080ACC22
+_080ACC1A:
+ ldr r1, _080ACC3C @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080ACC22:
+ ldr r1, _080ACC40 @ =sub_8075F0C
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACC34: .4byte gBattleAnimAttacker
+_080ACC38: .4byte gBattleAnimTarget
+_080ACC3C: .4byte gBattleAnimArgs
+_080ACC40: .4byte sub_8075F0C
+ thumb_func_end sub_80ACBDC
+
+ thumb_func_start sub_80ACC44
+sub_80ACC44: @ 80ACC44
+ ldr r2, _080ACC58 @ =gBattleAnimArgs
+ ldrh r1, [r2]
+ negs r1, r1
+ strh r1, [r2]
+ ldrh r1, [r2, 0x4]
+ negs r1, r1
+ strh r1, [r2, 0x4]
+ ldr r1, _080ACC5C @ =sub_8075F0C
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080ACC58: .4byte gBattleAnimArgs
+_080ACC5C: .4byte sub_8075F0C
+ thumb_func_end sub_80ACC44
+
+ thumb_func_start sub_80ACC60
+sub_80ACC60: @ 80ACC60
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r0, _080ACC80 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ movs r1, 0
+ strh r0, [r4, 0x3C]
+ strh r1, [r4, 0x2E]
+ ldr r0, _080ACC84 @ =sub_80ACC88
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACC80: .4byte gBattleAnimArgs
+_080ACC84: .4byte sub_80ACC88
+ thumb_func_end sub_80ACC60
+
+ thumb_func_start sub_80ACC88
+sub_80ACC88: @ 80ACC88
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_80ACD7C
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x12
+ bne _080ACCD2
+ movs r0, 0x19
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080ACCD8 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ 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 sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080ACCDC @ =sub_80ACCE0
+ str r0, [r5, 0x1C]
+_080ACCD2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACCD8: .4byte gBattleAnimTarget
+_080ACCDC: .4byte sub_80ACCE0
+ thumb_func_end sub_80ACC88
+
+ thumb_func_start sub_80ACCE0
+sub_80ACCE0: @ 80ACCE0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ACD28
+ movs r4, 0
+ strh r4, [r6, 0x2E]
+ ldr r5, _080ACD20 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x22]
+ strh r4, [r6, 0x26]
+ strh r4, [r6, 0x24]
+ ldr r1, _080ACD24 @ =sub_80ACD58
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ b _080ACD52
+ .align 2, 0
+_080ACD20: .4byte gBattleAnimTarget
+_080ACD24: .4byte sub_80ACD58
+_080ACD28:
+ 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]
+_080ACD52:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ACCE0
+
+ thumb_func_start sub_80ACD58
+sub_80ACD58: @ 80ACD58
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80ACD7C
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _080ACD74
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080ACD74:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ACD58
+
+ thumb_func_start sub_80ACD7C
+sub_80ACD7C: @ 80ACD7C
+ 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_80ACD7C
+
+ thumb_func_start sub_80ACDA8
+sub_80ACDA8: @ 80ACDA8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080ACDDC @ =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, _080ACDE0 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _080ACDE4 @ =sub_8074CD0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACDDC: .4byte gBattleAnimArgs
+_080ACDE0: .4byte DestroyAnimSprite
+_080ACDE4: .4byte sub_8074CD0
+ thumb_func_end sub_80ACDA8
+
+ thumb_func_start sub_80ACDE8
+sub_80ACDE8: @ 80ACDE8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r1, _080ACE1C @ =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, _080ACE20 @ =sub_8074C44
+ str r0, [r4, 0x1C]
+ ldr r1, _080ACE24 @ =sub_80ACE28
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACE1C: .4byte gBattleAnimArgs
+_080ACE20: .4byte sub_8074C44
+_080ACE24: .4byte sub_80ACE28
+ thumb_func_end sub_80ACDE8
+
+ thumb_func_start sub_80ACE28
+sub_80ACE28: @ 80ACE28
+ 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, _080ACE4C @ =sub_80ACE50
+ str r1, [r0, 0x1C]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACE4C: .4byte sub_80ACE50
+ thumb_func_end sub_80ACE28
+
+ thumb_func_start sub_80ACE50
+sub_80ACE50: @ 80ACE50
+ 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 _080ACE9C
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080ACE9C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ACE50
+
+ thumb_func_start sub_80ACEA4
+sub_80ACEA4: @ 80ACEA4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080ACF04 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ 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, _080ACF08 @ =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, _080ACF0C @ =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_80758E0
+ ldr r0, _080ACF10 @ =sub_80ACF14
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACF04: .4byte gTasks
+_080ACF08: .4byte gSprites
+_080ACF0C: .4byte gBattleAnimAttacker
+_080ACF10: .4byte sub_80ACF14
+ thumb_func_end sub_80ACEA4
+
+ thumb_func_start sub_80ACF14
+sub_80ACF14: @ 80ACF14
+ 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, _080ACF3C @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bls _080ACF30
+ b _080AD1EE
+_080ACF30:
+ lsls r0, 2
+ ldr r1, _080ACF40 @ =_080ACF44
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ACF3C: .4byte gTasks
+_080ACF40: .4byte _080ACF44
+ .align 2, 0
+_080ACF44:
+ .4byte _080ACF60
+ .4byte _080ACF86
+ .4byte _080AD038
+ .4byte _080AD098
+ .4byte _080AD0B6
+ .4byte _080AD18C
+ .4byte _080AD1E0
+_080ACF60:
+ 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_80765D4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080ACF86:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080ACFCE
+ 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 _080ACFBC
+ ldr r2, _080ACFB8 @ =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 _080ACFCC
+ .align 2, 0
+_080ACFB8: .4byte gSprites
+_080ACFBC:
+ ldr r2, _080AD030 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080AD034 @ =0x0000fffd
+_080ACFCC:
+ strh r1, [r0, 0x24]
+_080ACFCE:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080ACFFC
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080ACFFC
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldr r2, _080AD030 @ =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]
+_080ACFFC:
+ adds r0, r4, 0
+ bl sub_8076640
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _080AD00C
+ b _080AD1EE
+_080AD00C:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8076440
+ ldr r2, _080AD030 @ =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 _080AD1D4
+ .align 2, 0
+_080AD030: .4byte gSprites
+_080AD034: .4byte 0x0000fffd
+_080AD038:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _080AD048
+ b _080AD1EE
+_080AD048:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080AD072
+ 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_80765D4
+ b _080AD092
+_080AD072:
+ 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_80765D4
+_080AD092:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080AD1D4
+_080AD098:
+ adds r0, r4, 0
+ bl sub_8076640
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AD0A6
+ b _080AD1EE
+_080AD0A6:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r5, 0
+ movs r2, 0x6
+ bl sub_80AD1F8
+ b _080AD1D4
+_080AD0B6:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080AD104
+ 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 _080AD0F0
+ ldr r2, _080AD0EC @ =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 _080AD102
+ .align 2, 0
+_080AD0EC: .4byte gSprites
+_080AD0F0:
+ ldr r2, _080AD13C @ =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
+_080AD102:
+ strh r1, [r0, 0x26]
+_080AD104:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x18
+ ble _080AD1EE
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080AD140
+ 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_80765D4
+ b _080AD15E
+ .align 2, 0
+_080AD13C: .4byte gSprites
+_080AD140:
+ 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_80765D4
+_080AD15E:
+ ldrh r1, [r4, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD17C
+ ldr r2, _080AD188 @ =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]
+_080AD17C:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ b _080AD1D4
+ .align 2, 0
+_080AD188: .4byte gSprites
+_080AD18C:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080AD1A8
+ ldr r2, _080AD1DC @ =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]
+_080AD1A8:
+ adds r0, r4, 0
+ bl sub_8076640
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080AD1EE
+ ldr r2, _080AD1DC @ =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_8075980
+ strh r5, [r4, 0xC]
+_080AD1D4:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080AD1EE
+ .align 2, 0
+_080AD1DC: .4byte gSprites
+_080AD1E0:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AD1EE
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080AD1EE:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ACF14
+
+ thumb_func_start sub_80AD1F8
+sub_80AD1F8: @ 80AD1F8
+ 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_80AD374
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r1, _080AD248 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r4, [r0, 0x20]
+ ldr r0, _080AD24C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AD250
+ adds r0, r4, 0
+ subs r0, 0xC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0x1
+ b _080AD25A
+ .align 2, 0
+_080AD248: .4byte gSprites
+_080AD24C: .4byte gBattleAnimAttacker
+_080AD250:
+ adds r0, r4, 0
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0xFF
+_080AD25A:
+ 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, _080AD314 @ =gUnknown_83E5E44
+ mov r9, r2
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [sp]
+ mov r3, r8
+ lsls r3, 1
+ mov r10, r3
+_080AD278:
+ ldr r0, _080AD318 @ =gUnknown_83E5E2C
+ 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 _080AD2FA
+ ldr r1, _080AD31C @ =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, _080AD320 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r3, _080AD324 @ =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 _080AD2C2
+ movs r5, 0
+_080AD2C2:
+ 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, _080AD328 @ =gUnknown_83E5E46
+ adds r2, r0
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ adds r0, r4, 0
+ bl sub_80AD3C8
+ 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, _080AD32C @ =gTasks+0x8
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+_080AD2FA:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x6
+ bls _080AD278
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD314: .4byte gUnknown_83E5E44
+_080AD318: .4byte gUnknown_83E5E2C
+_080AD31C: .4byte gSprites
+_080AD320: .4byte 0x000003ff
+_080AD324: .4byte 0xfffffc00
+_080AD328: .4byte gUnknown_83E5E46
+_080AD32C: .4byte gTasks+0x8
+ thumb_func_end sub_80AD1F8
+
+ thumb_func_start sub_80AD330
+sub_80AD330: @ 80AD330
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80AD3E4
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD36A
+ ldr r3, _080AD370 @ =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
+_080AD36A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD370: .4byte gTasks
+ thumb_func_end sub_80AD330
+
+ thumb_func_start sub_80AD374
+sub_80AD374: @ 80AD374
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080AD3AC @ =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, _080AD3B0 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AD3B4
+ lsls r0, r4, 16
+ movs r1, 0x94
+ lsls r1, 15
+ b _080AD3BA
+ .align 2, 0
+_080AD3AC: .4byte gSprites
+_080AD3B0: .4byte gBattleAnimAttacker
+_080AD3B4:
+ lsls r0, r4, 16
+ movs r1, 0xB0
+ lsls r1, 14
+_080AD3BA:
+ adds r0, r1
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AD374
+
+ thumb_func_start sub_80AD3C8
+sub_80AD3C8: @ 80AD3C8
+ 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_80AD3C8
+
+ thumb_func_start sub_80AD3E4
+sub_80AD3E4: @ 80AD3E4
+ 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 _080AD40E
+ 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]
+_080AD40E:
+ 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 _080AD444
+ adds r1, r3, 0
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ blt _080AD444
+ cmp r1, 0x78
+ ble _080AD450
+_080AD444:
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080AD450:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AD3E4
+
+ thumb_func_start sub_80AD454
+sub_80AD454: @ 80AD454
+ push {r4,r5,lr}
+ ldr r3, _080AD498 @ =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, _080AD49C @ =0x000003ff
+ adds r1, r3, 0
+ ands r2, r1
+ ldr r1, _080AD4A0 @ =0xfffffc00
+ ands r1, r4
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ ldr r1, _080AD4A4 @ =sub_80AD4A8
+ str r1, [r0, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD498: .4byte gBattleAnimArgs
+_080AD49C: .4byte 0x000003ff
+_080AD4A0: .4byte 0xfffffc00
+_080AD4A4: .4byte sub_80AD4A8
+ thumb_func_end sub_80AD454
+
+ thumb_func_start sub_80AD4A8
+sub_80AD4A8: @ 80AD4A8
+ push {r4,lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _080AD4DA
+ cmp r0, 0x1
+ bgt _080AD4BE
+ cmp r0, 0
+ beq _080AD4C4
+ b _080AD538
+_080AD4BE:
+ cmp r0, 0x2
+ beq _080AD4F8
+ b _080AD538
+_080AD4C4:
+ ldrh r1, [r2, 0x3A]
+ movs r3, 0x3A
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _080AD4D4
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x3A]
+ b _080AD538
+_080AD4D4:
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+_080AD4DA:
+ 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 _080AD538
+ strh r3, [r2, 0x22]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ b _080AD538
+_080AD4F8:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080AD524
+ 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 _080AD520
+ ldr r0, _080AD51C @ =0x0000fffd
+ b _080AD522
+ .align 2, 0
+_080AD51C: .4byte 0x0000fffd
+_080AD520:
+ movs r0, 0x3
+_080AD522:
+ strh r0, [r2, 0x26]
+_080AD524:
+ ldrh r0, [r2, 0x34]
+ adds r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080AD538
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080AD538:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AD4A8
+
+ thumb_func_start sub_80AD540
+sub_80AD540: @ 80AD540
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080AD5B4
+ cmp r0, 0x1
+ bgt _080AD556
+ cmp r0, 0
+ beq _080AD55C
+ b _080AD682
+_080AD556:
+ cmp r0, 0x2
+ beq _080AD612
+ b _080AD682
+_080AD55C:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8075160
+ ldr r4, _080AD584 @ =gBattleAnimArgs
+ ldrb r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x3C]
+ ldr r0, _080AD588 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AD58C
+ movs r0, 0x4
+ b _080AD58E
+ .align 2, 0
+_080AD584: .4byte gBattleAnimArgs
+_080AD588: .4byte gBattleAnimAttacker
+_080AD58C:
+ ldr r0, _080AD5AC @ =0x0000fffc
+_080AD58E:
+ strh r0, [r5, 0x36]
+ ldr r0, _080AD5B0 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_8076884
+ 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 _080AD60A
+ .align 2, 0
+_080AD5AC: .4byte 0x0000fffc
+_080AD5B0: .4byte gBattleAnimTarget
+_080AD5B4:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0xC0
+ strh r0, [r5, 0x30]
+ ldr r0, _080AD5D4 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AD5D8
+ ldrh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ b _080AD5DE
+ .align 2, 0
+_080AD5D4: .4byte gBattleAnimAttacker
+_080AD5D8:
+ ldrh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+_080AD5DE:
+ 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 _080AD682
+ movs r0, 0
+ strh r0, [r5, 0x34]
+_080AD60A:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080AD682
+_080AD612:
+ 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 _080AD682
+ 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, _080AD688 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ 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 sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8075678
+ ldr r0, _080AD68C @ =sub_80AD690
+ str r0, [r5, 0x1C]
+_080AD682:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD688: .4byte gBattleAnimTarget
+_080AD68C: .4byte sub_80AD690
+ thumb_func_end sub_80AD540
+
+ thumb_func_start sub_80AD690
+sub_80AD690: @ 80AD690
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AD6E8
+ 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 _080AD6C6
+ cmp r2, 0xC4
+ ble _080AD6EE
+_080AD6C6:
+ lsls r0, 16
+ cmp r0, 0
+ ble _080AD6EE
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AD6EE
+ ldr r0, _080AD6E4 @ =gUnknown_2037F24
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x89
+ bl PlaySE12WithPanning
+ b _080AD6EE
+ .align 2, 0
+_080AD6E4: .4byte gUnknown_2037F24
+_080AD6E8:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AD6EE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AD690
+
+ thumb_func_start sub_80AD6F4
+sub_80AD6F4: @ 80AD6F4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080AD70C
+ ldr r0, _080AD778 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r4, 0x30]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+_080AD70C:
+ 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 sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AD7A8
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x83
+ bls _080AD780
+ ldr r0, _080AD77C @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_8076884
+ 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 _080AD7C4
+ .align 2, 0
+_080AD778: .4byte gBattleAnimArgs
+_080AD77C: .4byte gBattleAnimTarget
+_080AD780:
+ ldr r0, _080AD7A4 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_8076884
+ 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 _080AD7C4
+ .align 2, 0
+_080AD7A4: .4byte gBattleAnimTarget
+_080AD7A8:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x83
+ bls _080AD7BC
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+ b _080AD7C2
+_080AD7BC:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+_080AD7C2:
+ strb r0, [r1]
+_080AD7C4:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080AD7EC
+ 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]
+_080AD7EC:
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1E
+ bne _080AD7FA
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AD7FA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AD6F4
+
+ thumb_func_start sub_80AD800
+sub_80AD800: @ 80AD800
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080AD860 @ =gTasks
+ adds r4, r1, r0
+ ldr r0, _080AD864 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080AD826
+ movs r1, 0x1
+_080AD826:
+ strh r1, [r4, 0x20]
+ ldr r0, _080AD868 @ =gBattleAnimTarget
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ bl sub_8072DF0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ movs r0, 0x1
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r0, 0x3
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _080AD86C @ =sub_80AD870
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD860: .4byte gTasks
+_080AD864: .4byte gBattleAnimAttacker
+_080AD868: .4byte gBattleAnimTarget
+_080AD86C: .4byte sub_80AD870
+ thumb_func_end sub_80AD800
+
+ thumb_func_start sub_80AD870
+sub_80AD870: @ 80AD870
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080AD894 @ =gTasks
+ adds r2, r0, r1
+ movs r0, 0x8
+ ldrsh r3, [r2, r0]
+ cmp r3, 0x1
+ beq _080AD938
+ cmp r3, 0x1
+ bgt _080AD898
+ cmp r3, 0
+ beq _080AD8A6
+ b _080ADA98
+ .align 2, 0
+_080AD894: .4byte gTasks
+_080AD898:
+ cmp r3, 0x2
+ bne _080AD89E
+ b _080AD9C0
+_080AD89E:
+ cmp r3, 0x3
+ bne _080AD8A4
+ b _080ADA54
+_080AD8A4:
+ b _080ADA98
+_080AD8A6:
+ 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 _080AD8D8
+ 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 _080AD8D4
+ movs r0, 0x2
+ b _080AD8D6
+_080AD8D4:
+ ldr r0, _080AD930 @ =0x0000fffe
+_080AD8D6:
+ strh r0, [r2, 0x1E]
+_080AD8D8:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r7, 0x22
+ ldrsh r0, [r2, r7]
+ cmp r1, r0
+ bge _080AD91A
+ ldr r4, _080AD934 @ =gSprites
+ adds r3, r2, 0
+ adds r3, 0x8
+_080AD8EA:
+ 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 _080AD8EA
+_080AD91A:
+ ldrh r0, [r2, 0x1A]
+ adds r0, 0x1
+ strh r0, [r2, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ beq _080AD92A
+ b _080ADA98
+_080AD92A:
+ movs r0, 0
+ strh r0, [r2, 0x1A]
+ b _080ADA44
+ .align 2, 0
+_080AD930: .4byte 0x0000fffe
+_080AD934: .4byte gSprites
+_080AD938:
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080AD960
+ 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 _080AD95C
+ movs r0, 0x2
+ b _080AD95E
+_080AD95C:
+ ldr r0, _080AD9B8 @ =0x0000fffe
+_080AD95E:
+ strh r0, [r2, 0x1E]
+_080AD960:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r7, 0x22
+ ldrsh r0, [r2, r7]
+ cmp r1, r0
+ bge _080AD9A2
+ ldr r4, _080AD9BC @ =gSprites
+ adds r3, r2, 0
+ adds r3, 0x8
+_080AD972:
+ 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 _080AD972
+_080AD9A2:
+ ldrh r0, [r2, 0x1A]
+ adds r0, 0x1
+ strh r0, [r2, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x60
+ bne _080ADA98
+ movs r0, 0
+ strh r0, [r2, 0x1A]
+ b _080ADA44
+ .align 2, 0
+_080AD9B8: .4byte 0x0000fffe
+_080AD9BC: .4byte gSprites
+_080AD9C0:
+ 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 _080AD9F4
+ 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 _080AD9F0
+ strh r3, [r2, 0x1E]
+ b _080AD9F4
+_080AD9F0:
+ ldr r0, _080ADA4C @ =0x0000fffe
+ strh r0, [r2, 0x1E]
+_080AD9F4:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bge _080ADA36
+ ldr r4, _080ADA50 @ =gSprites
+ adds r3, r2, 0
+ adds r3, 0x8
+_080ADA06:
+ 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 _080ADA06
+_080ADA36:
+ ldrh r0, [r2, 0x1A]
+ adds r0, 0x1
+ strh r0, [r2, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bne _080ADA98
+_080ADA44:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080ADA98
+ .align 2, 0
+_080ADA4C: .4byte 0x0000fffe
+_080ADA50: .4byte gSprites
+_080ADA54:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bge _080ADA92
+ ldr r6, _080ADAA0 @ =gSprites
+ adds r3, r2, 0
+ adds r3, 0x8
+ movs r5, 0
+_080ADA68:
+ 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 _080ADA68
+_080ADA92:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080ADA98:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADAA0: .4byte gSprites
+ thumb_func_end sub_80AD870
+
+ thumb_func_start sub_80ADAA4
+sub_80ADAA4: @ 80ADAA4
+ push {r4,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, sp
+ bl sub_80752A0
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ lsls r0, 4
+ ldr r1, _080ADAD4 @ =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
+ .align 2, 0
+_080ADAD4: .4byte gBattleAnimArgs
+ thumb_func_end sub_80ADAA4
+
+ thumb_func_start sub_80ADAD8
+sub_80ADAD8: @ 80ADAD8
+ 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, _080ADB30 @ =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, _080ADB34 @ =gBattleAnimArgs
+ mov r8, r4
+ cmp r0, 0
+ bne _080ADB0E
+ 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]
+_080ADB0E:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ ldr r1, _080ADB38 @ =gUnknown_2023D44
+ ldr r0, _080ADB3C @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r6, [r0]
+ movs r5, 0x10
+ ldrsh r0, [r2, r5]
+ cmp r0, 0
+ bne _080ADB44
+ ldr r4, _080ADB40 @ =gUnknown_83E5EFC
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ b _080ADB4A
+ .align 2, 0
+_080ADB30: .4byte gTasks
+_080ADB34: .4byte gBattleAnimArgs
+_080ADB38: .4byte gUnknown_2023D44
+_080ADB3C: .4byte gBattleAnimTarget
+_080ADB40: .4byte gUnknown_83E5EFC
+_080ADB44:
+ ldr r4, _080ADB90 @ =gUnknown_83E5F0C
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+_080ADB4A:
+ 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 _080ADB98
+ ldr r2, _080ADB94 @ =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 _080ADB88
+ negs r0, r0
+_080ADB88:
+ mov r5, r10
+ strh r0, [r5, 0x26]
+ b _080ADBB2
+ .align 2, 0
+_080ADB90: .4byte gUnknown_83E5F0C
+_080ADB94: .4byte gSprites
+_080ADB98:
+ ldr r3, _080ADBE8 @ =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
+_080ADBB2:
+ 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 _080ADBD8
+ 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
+_080ADBD8:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADBE8: .4byte gSprites
+ thumb_func_end sub_80ADAD8
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/water.s b/asm/water.s
new file mode 100644
index 000000000..5518dd33e
--- /dev/null
+++ b/asm/water.s
@@ -0,0 +1,3775 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80AABC0
+sub_80AABC0: @ 80AABC0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080AAC48 @ =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 _080AABE8
+ ldr r1, _080AAC4C @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r5, 0xA]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0xC]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0xE]
+_080AABE8:
+ 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 _080AAC30
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF0
+ bl __umodsi3
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x50
+ bl __umodsi3
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, _080AAC50 @ =gUnknown_83E5898
+ adds r1, r4, 0
+ movs r3, 0x4
+ bl CreateSprite
+_080AAC30:
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bne _080AAC42
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080AAC42:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAC48: .4byte gTasks
+_080AAC4C: .4byte gBattleAnimArgs
+_080AAC50: .4byte gUnknown_83E5898
+ thumb_func_end sub_80AABC0
+
+ thumb_func_start sub_80AAC54
+sub_80AAC54: @ 80AAC54
+ ldr r1, _080AAC5C @ =sub_80AAC60
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080AAC5C: .4byte sub_80AAC60
+ thumb_func_end sub_80AAC54
+
+ thumb_func_start sub_80AAC60
+sub_80AAC60: @ 80AAC60
+ 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 _080AAC7E
+ ldrh r0, [r2, 0x24]
+ adds r0, 0x1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x26]
+ adds r0, 0x4
+ strh r0, [r2, 0x26]
+_080AAC7E:
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080AAC92
+ adds r0, r2, 0
+ bl DestroySprite
+_080AAC92:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AAC60
+
+ thumb_func_start sub_80AAC98
+sub_80AAC98: @ 80AAC98
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r5, _080AACC0 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AACC8
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _080AACC4 @ =gBattleAnimArgs
+ ldrh r1, [r4]
+ subs r0, r1
+ b _080AACDA
+ .align 2, 0
+_080AACC0: .4byte gBattleAnimAttacker
+_080AACC4: .4byte gBattleAnimArgs
+_080AACC8:
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ ldr r4, _080AADA0 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+_080AACDA:
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ 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, _080AADA4 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AAD10
+ ldr r1, _080AADA0 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080AAD10:
+ ldr r5, _080AADA0 @ =gBattleAnimArgs
+ ldrh r0, [r5, 0xC]
+ strh r0, [r6, 0x2E]
+ ldrh r0, [r6, 0x20]
+ strh r0, [r6, 0x30]
+ ldr r4, _080AADA8 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ 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 sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x36]
+ adds r0, r6, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080AADAC @ =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, _080AADB0 @ =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, _080AADB4 @ =sub_80AADB8
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AADA0: .4byte gBattleAnimArgs
+_080AADA4: .4byte gBattleAnimAttacker
+_080AADA8: .4byte gBattleAnimTarget
+_080AADAC: .4byte SpriteCallbackDummy
+_080AADB0: .4byte gSprites
+_080AADB4: .4byte sub_80AADB8
+ thumb_func_end sub_80AAC98
+
+ thumb_func_start sub_80AADB8
+sub_80AADB8: @ 80AADB8
+ 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, _080AAE20 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r7, r0, r2
+ ldrh r4, [r7, 0x36]
+ lsls r4, 24
+ lsrs r4, 24
+ ldrh r0, [r7, 0x34]
+ mov r8, r0
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl sub_80755E0
+ 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 _080AAE24
+ strh r4, [r7, 0x36]
+ b _080AAE2E
+ .align 2, 0
+_080AAE20: .4byte gSprites
+_080AAE24:
+ ldr r0, _080AAE3C @ =sub_80AAE40
+ str r0, [r5, 0x1C]
+ adds r0, r7, 0
+ bl DestroySprite
+_080AAE2E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAE3C: .4byte sub_80AAE40
+ thumb_func_end sub_80AADB8
+
+ thumb_func_start sub_80AAE40
+sub_80AAE40: @ 80AAE40
+ 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, _080AAE60 @ =sub_8074F6C
+ str r1, [r0, 0x1C]
+ ldr r1, _080AAE64 @ =sub_80AAE68
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAE60: .4byte sub_8074F6C
+_080AAE64: .4byte sub_80AAE68
+ thumb_func_end sub_80AAE40
+
+ thumb_func_start sub_80AAE68
+sub_80AAE68: @ 80AAE68
+ push {lr}
+ movs r1, 0xA
+ strh r1, [r0, 0x2E]
+ ldr r1, _080AAE7C @ =sub_8074C44
+ str r1, [r0, 0x1C]
+ ldr r1, _080AAE80 @ =move_anim_8074EE0
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAE7C: .4byte sub_8074C44
+_080AAE80: .4byte move_anim_8074EE0
+ thumb_func_end sub_80AAE68
+
+ thumb_func_start sub_80AAE84
+sub_80AAE84: @ 80AAE84
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r0, _080AAEAC @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AAEB4
+ ldr r1, _080AAEB0 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r7, r1, 0
+ b _080AAEBA
+ .align 2, 0
+_080AAEAC: .4byte gBattleAnimAttacker
+_080AAEB0: .4byte gBattleAnimArgs
+_080AAEB4:
+ ldr r0, _080AAF10 @ =gBattleAnimArgs
+ ldrh r6, [r0, 0x4]
+ adds r7, r0, 0
+_080AAEBA:
+ ldrh r0, [r7, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080AAF14 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ 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 sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r7, [r7, 0x6]
+ adds r0, r7
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080AAF18 @ =sub_80AAF1C
+ 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
+ .align 2, 0
+_080AAF10: .4byte gBattleAnimArgs
+_080AAF14: .4byte gBattleAnimTarget
+_080AAF18: .4byte sub_80AAF1C
+ thumb_func_end sub_80AAE84
+
+ thumb_func_start sub_80AAF1C
+sub_80AAF1C: @ 80AAF1C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080AAF58 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080AAF5C @ =0x0000ffff
+ cmp r1, r0
+ bne _080AAF3E
+ 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]
+_080AAF3E:
+ adds r0, r4, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AAF50
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AAF50:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAF58: .4byte gBattleAnimArgs
+_080AAF5C: .4byte 0x0000ffff
+ thumb_func_end sub_80AAF1C
+
+ thumb_func_start sub_80AAF60
+sub_80AAF60: @ 80AAF60
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080AAF94 @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r0, _080AAF98 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r4, 0x8]
+ ldr r0, _080AAF9C @ =0x0000279c
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r4, 0xC]
+ ldr r0, _080AAFA0 @ =sub_80AAFA4
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAF94: .4byte gTasks
+_080AAF98: .4byte gBattleAnimArgs
+_080AAF9C: .4byte 0x0000279c
+_080AAFA0: .4byte sub_80AAFA4
+ thumb_func_end sub_80AAF60
+
+ thumb_func_start sub_80AAFA4
+sub_80AAFA4: @ 80AAFA4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080AB01C @ =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 _080AAFF6
+ movs r0, 0
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, _080AB020 @ =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
+_080AAFE0:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080AAFE0
+ adds r0, r5, 0x7
+ lsls r0, 1
+ adds r0, r7
+ strh r6, [r0]
+_080AAFF6:
+ 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 _080AB016
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080AB016:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB01C: .4byte gTasks
+_080AB020: .4byte gPlttBufferFaded
+ thumb_func_end sub_80AAFA4
+
+ thumb_func_start sub_80AB024
+sub_80AB024: @ 80AB024
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ movs r0, 0x1E
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080AB08C @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ 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 sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ movs r0, 0xD2
+ lsls r0, 8
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ ldr r0, _080AB090 @ =gBattleAnimArgs
+ ldrh r2, [r0, 0x6]
+ strh r2, [r5, 0x3C]
+ ldrh r1, [r0, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x7F
+ ble _080AB094
+ adds r0, r1, 0
+ subs r0, 0x7F
+ lsls r0, 8
+ strh r0, [r5, 0x3A]
+ negs r0, r2
+ strh r0, [r5, 0x3C]
+ b _080AB098
+ .align 2, 0
+_080AB08C: .4byte gBattleAnimTarget
+_080AB090: .4byte gBattleAnimArgs
+_080AB094:
+ lsls r0, r1, 8
+ strh r0, [r5, 0x3A]
+_080AB098:
+ ldr r1, _080AB0A8 @ =sub_80AB0AC
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB0A8: .4byte sub_80AB0AC
+ thumb_func_end sub_80AB024
+
+ thumb_func_start sub_80AB0AC
+sub_80AB0AC: @ 80AB0AC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AB0C0
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AB0C0:
+ 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 _080AB0F0
+ movs r0, 0
+ strh r0, [r4, 0x3A]
+ ldrh r0, [r4, 0x3C]
+ negs r0, r0
+ strh r0, [r4, 0x3C]
+ b _080AB0F8
+_080AB0F0:
+ ldrh r0, [r4, 0x38]
+ ldrh r1, [r4, 0x3A]
+ adds r0, r1
+ strh r0, [r4, 0x3A]
+_080AB0F8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AB0AC
+
+ thumb_func_start sub_80AB100
+sub_80AB100: @ 80AB100
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080AB120 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080AB124 @ =gBattleAnimArgs
+ ldrh r0, [r3]
+ movs r2, 0
+ strh r0, [r1, 0x8]
+ strh r2, [r3, 0xE]
+ ldr r0, _080AB128 @ =sub_80AB12C
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080AB120: .4byte gTasks
+_080AB124: .4byte gBattleAnimArgs
+_080AB128: .4byte sub_80AB12C
+ thumb_func_end sub_80AB100
+
+ thumb_func_start sub_80AB12C
+sub_80AB12C: @ 80AB12C
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080AB160 @ =gBattleAnimArgs
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r2, 0xE]
+ ldr r1, _080AB164 @ =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 _080AB15A
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+_080AB15A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB160: .4byte gBattleAnimArgs
+_080AB164: .4byte gTasks
+ thumb_func_end sub_80AB12C
+
+ thumb_func_start sub_80AB168
+sub_80AB168: @ 80AB168
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r7, _080AB1B4 @ =gBattleAnimAttacker
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r7]
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r6, _080AB1B8 @ =0x0000fff6
+ strh r6, [r4, 0x26]
+ ldrb r0, [r7]
+ bl sub_807685C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AB1C2
+ ldrb r0, [r7]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AB1BC
+ movs r0, 0xA
+ strh r0, [r4, 0x24]
+ b _080AB1C4
+ .align 2, 0
+_080AB1B4: .4byte gBattleAnimAttacker
+_080AB1B8: .4byte 0x0000fff6
+_080AB1BC:
+ strh r6, [r4, 0x24]
+ subs r0, r5, 0x2
+ b _080AB1C6
+_080AB1C2:
+ strh r6, [r4, 0x24]
+_080AB1C4:
+ adds r0, r5, 0x2
+_080AB1C6:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldr r0, _080AB1D8 @ =sub_80AB1DC
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB1D8: .4byte sub_80AB1DC
+ thumb_func_end sub_80AB168
+
+ thumb_func_start sub_80AB1DC
+sub_80AB1DC: @ 80AB1DC
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080AB1F2
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080AB1F2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AB1DC
+
+ thumb_func_start sub_80AB1F8
+sub_80AB1F8: @ 80AB1F8
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r5, _080AB2B8 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerSide
+ adds r4, r0, 0
+ ldr r0, _080AB2BC @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080AB242
+ ldr r4, _080AB2C0 @ =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 _080AB23A
+ ldrb r0, [r5]
+ bl GetBattlerPosition
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080AB242
+_080AB23A:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4]
+_080AB242:
+ ldr r5, _080AB2C0 @ =gBattleAnimArgs
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0
+ cmp r0, 0
+ bne _080AB256
+ movs r1, 0x1
+_080AB256:
+ ldrb r0, [r5, 0xA]
+ movs r7, 0x1
+ cmp r0, 0
+ bne _080AB260
+ movs r7, 0x3
+_080AB260:
+ adds r0, r6, 0
+ bl sub_8075160
+ ldr r0, _080AB2B8 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AB27A
+ ldrh r0, [r5, 0x4]
+ negs r0, r0
+ strh r0, [r5, 0x4]
+_080AB27A:
+ ldrh r0, [r5, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r4, _080AB2BC @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ 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 sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x6]
+ adds r0, r5
+ strh r0, [r6, 0x36]
+ ldr r0, _080AB2C4 @ =sub_8075590
+ str r0, [r6, 0x1C]
+ ldr r1, _080AB2C8 @ =DestroyAnimSprite
+ adds r0, r6, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB2B8: .4byte gBattleAnimAttacker
+_080AB2BC: .4byte gBattleAnimTarget
+_080AB2C0: .4byte gBattleAnimArgs
+_080AB2C4: .4byte sub_8075590
+_080AB2C8: .4byte DestroyAnimSprite
+ thumb_func_end sub_80AB1F8
+
+ thumb_func_start sub_80AB2CC
+sub_80AB2CC: @ 80AB2CC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075114
+ ldr r0, _080AB2FC @ =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, _080AB300 @ =sub_8075590
+ str r0, [r4, 0x1C]
+ ldr r1, _080AB304 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB2FC: .4byte gBattleAnimArgs
+_080AB300: .4byte sub_8075590
+_080AB304: .4byte DestroyAnimSprite
+ thumb_func_end sub_80AB2CC
+
+ thumb_func_start sub_80AB308
+sub_80AB308: @ 80AB308
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080AB320 @ =gBattleAnimArgs
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080AB324
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8075114
+ b _080AB32C
+ .align 2, 0
+_080AB320: .4byte gBattleAnimArgs
+_080AB324:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8075160
+_080AB32C:
+ ldr r0, _080AB33C @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x3C]
+ ldr r0, _080AB340 @ =sub_80AB344
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB33C: .4byte gBattleAnimArgs
+_080AB340: .4byte sub_80AB344
+ thumb_func_end sub_80AB308
+
+ thumb_func_start sub_80AB344
+sub_80AB344: @ 80AB344
+ 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 _080AB384
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AB384:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AB344
+
+ thumb_func_start sub_80AB38C
+sub_80AB38C: @ 80AB38C
+ 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, _080AB3FC @ =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_80752A0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AB418
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ ldr r0, _080AB400 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080AB408
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080AB404 @ =gFile_graphics_unknown_unknown_E81D14_tilemap
+ bl sub_807543C
+ b _080AB42E
+ .align 2, 0
+_080AB3FC: .4byte 0x00003f42
+_080AB400: .4byte gBattleAnimAttacker
+_080AB404: .4byte gFile_graphics_unknown_unknown_E81D14_tilemap
+_080AB408:
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080AB414 @ =gFile_graphics_unknown_unknown_E81FE4_tilemap
+ bl sub_807543C
+ b _080AB42E
+ .align 2, 0
+_080AB414: .4byte gFile_graphics_unknown_unknown_E81FE4_tilemap
+_080AB418:
+ ldr r0, _080AB458 @ =gFile_graphics_unknown_unknown_E822B8_tilemap
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_80730C0
+_080AB42E:
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080AB45C @ =gFile_graphics_battle_anims_backgrounds_water_sheet
+ mov r2, sp
+ ldrh r2, [r2, 0xA]
+ bl sub_80753B4
+ ldr r0, _080AB460 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080AB468
+ ldr r0, _080AB464 @ =gFile_graphics_battle_anims_backgrounds_water_palette
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ b _080AB476
+ .align 2, 0
+_080AB458: .4byte gFile_graphics_unknown_unknown_E822B8_tilemap
+_080AB45C: .4byte gFile_graphics_battle_anims_backgrounds_water_sheet
+_080AB460: .4byte gBattleAnimArgs
+_080AB464: .4byte gFile_graphics_battle_anims_backgrounds_water_palette
+_080AB468:
+ ldr r0, _080AB4E0 @ =gFile_graphics_battle_anims_backgrounds_water_muddy_palette
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+_080AB476:
+ ldr r0, _080AB4E4 @ =sub_80AB79C
+ ldr r4, _080AB4E8 @ =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 sub_8073788
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080AB4F8
+ ldr r1, _080AB4EC @ =0x0000ffb0
+ adds r0, r1, 0
+ ldr r2, _080AB4F0 @ =gBattle_BG1_X
+ strh r0, [r2]
+ adds r1, 0x20
+ adds r0, r1, 0
+ ldr r2, _080AB4F4 @ =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 _080AB552
+ .align 2, 0
+_080AB4E0: .4byte gFile_graphics_battle_anims_backgrounds_water_muddy_palette
+_080AB4E4: .4byte sub_80AB79C
+_080AB4E8: .4byte gTasks
+_080AB4EC: .4byte 0x0000ffb0
+_080AB4F0: .4byte gBattle_BG1_X
+_080AB4F4: .4byte gBattle_BG1_Y
+_080AB4F8:
+ ldr r0, _080AB528 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ bne _080AB53C
+ ldr r2, _080AB52C @ =0x0000ff20
+ adds r0, r2, 0
+ ldr r2, _080AB530 @ =gBattle_BG1_X
+ strh r0, [r2]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ ldr r2, _080AB534 @ =gBattle_BG1_Y
+ strh r0, [r2]
+ movs r0, 0x2
+ strh r0, [r6, 0x8]
+ ldr r0, _080AB538 @ =0x0000ffff
+ strh r0, [r6, 0xA]
+ strh r1, [r7, 0xE]
+ b _080AB552
+ .align 2, 0
+_080AB528: .4byte gBattleAnimAttacker
+_080AB52C: .4byte 0x0000ff20
+_080AB530: .4byte gBattle_BG1_X
+_080AB534: .4byte gBattle_BG1_Y
+_080AB538: .4byte 0x0000ffff
+_080AB53C:
+ ldr r0, _080AB584 @ =gBattle_BG1_X
+ strh r4, [r0]
+ ldr r1, _080AB588 @ =0x0000ffd0
+ adds r0, r1, 0
+ ldr r2, _080AB58C @ =gBattle_BG1_Y
+ strh r0, [r2]
+ ldr r0, _080AB590 @ =0x0000fffe
+ strh r0, [r6, 0x8]
+ movs r0, 0x1
+ strh r0, [r6, 0xA]
+ strh r4, [r7, 0xE]
+_080AB552:
+ ldr r0, _080AB584 @ =gBattle_BG1_X
+ ldrh r1, [r0]
+ movs r0, 0x14
+ bl SetGpuReg
+ ldr r2, _080AB58C @ =gBattle_BG1_Y
+ ldrh r1, [r2]
+ movs r0, 0x16
+ bl SetGpuReg
+ ldr r1, _080AB594 @ =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 _080AB598
+ movs r0, 0x30
+ strh r0, [r1, 0x10]
+ movs r0, 0x70
+ b _080AB59C
+ .align 2, 0
+_080AB584: .4byte gBattle_BG1_X
+_080AB588: .4byte 0x0000ffd0
+_080AB58C: .4byte gBattle_BG1_Y
+_080AB590: .4byte 0x0000fffe
+_080AB594: .4byte gTasks
+_080AB598:
+ movs r0, 0
+ strh r0, [r1, 0x10]
+_080AB59C:
+ strh r0, [r1, 0x12]
+ ldr r1, _080AB5C0 @ =gTasks
+ mov r2, r10
+ adds r0, r5, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0, 0x14]
+ ldr r1, _080AB5C4 @ =sub_80AB5C8
+ 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
+ .align 2, 0
+_080AB5C0: .4byte gTasks
+_080AB5C4: .4byte sub_80AB5C8
+ thumb_func_end sub_80AB38C
+
+ thumb_func_start sub_80AB5C8
+sub_80AB5C8: @ 80AB5C8
+ push {r4-r7,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080AB6F4 @ =gBattle_BG1_X
+ ldr r2, _080AB6F8 @ =gBattle_BG1_Y
+ ldr r0, _080AB6FC @ =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_80752A0
+ 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 _080AB65C
+ ldr r1, _080AB700 @ =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
+_080AB622:
+ 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 _080AB622
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ lsls r0, 4
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r7
+ strh r6, [r0]
+ ldr r1, _080AB6FC @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x12]
+_080AB65C:
+ ldr r1, _080AB6FC @ =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 _080AB6CA
+ 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 _080AB6A6
+ 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]
+_080AB6A6:
+ movs r1, 0xE
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x36
+ ble _080AB6CA
+ 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]
+_080AB6CA:
+ 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 _080AB6EC
+ strh r3, [r2, 0x8]
+ ldr r0, _080AB704 @ =sub_80AB708
+ str r0, [r2]
+_080AB6EC:
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB6F4: .4byte gBattle_BG1_X
+_080AB6F8: .4byte gBattle_BG1_Y
+_080AB6FC: .4byte gTasks
+_080AB700: .4byte gPlttBufferFaded
+_080AB704: .4byte sub_80AB708
+ thumb_func_end sub_80AB5C8
+
+ thumb_func_start sub_80AB708
+sub_80AB708: @ 80AB708
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r7, _080AB740 @ =gBattle_BG1_X
+ ldr r0, _080AB744 @ =gBattle_BG1_Y
+ mov r8, r0
+ ldr r6, _080AB748 @ =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 _080AB74C
+ movs r0, 0x1
+ bl sub_8075358
+ movs r0, 0x2
+ bl sub_8075358
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080AB78E
+ .align 2, 0
+_080AB740: .4byte gBattle_BG1_X
+_080AB744: .4byte gBattle_BG1_Y
+_080AB748: .4byte gTasks
+_080AB74C:
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AB760
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl SetAnimBgAttribute
+_080AB760:
+ 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, _080AB798 @ =0x0000ffff
+ strh r1, [r0, 0x26]
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080AB78E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB798: .4byte 0x0000ffff
+ thumb_func_end sub_80AB708
+
+ thumb_func_start sub_80AB79C
+sub_80AB79C: @ 80AB79C
+ 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, _080AB7C4 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080AB7B8
+ b _080AB8F0
+_080AB7B8:
+ cmp r0, 0x1
+ bgt _080AB7C8
+ cmp r0, 0
+ beq _080AB7D0
+ b _080ABA66
+ .align 2, 0
+_080AB7C4: .4byte gTasks
+_080AB7C8:
+ cmp r0, 0x2
+ bne _080AB7CE
+ b _080AB9BC
+_080AB7CE:
+ b _080ABA66
+_080AB7D0:
+ movs r3, 0
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ ldr r1, _080AB8A0 @ =gScanlineEffectRegBuffers
+ mov r12, r1
+ cmp r3, r0
+ bge _080AB80E
+ mov r7, r12
+ movs r5, 0xF0
+ lsls r5, 3
+ add r5, r12
+ ldr r6, _080AB8A4 @ =0x0000ffff
+_080AB7E8:
+ 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 _080AB7E8
+_080AB80E:
+ ldrh r3, [r4, 0x10]
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080AB848
+ ldr r5, _080AB8A0 @ =gScanlineEffectRegBuffers
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+ ldr r7, _080AB8A4 @ =0x0000ffff
+_080AB826:
+ 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 _080AB826
+_080AB848:
+ ldrh r3, [r4, 0x12]
+ lsls r2, r3, 16
+ asrs r0, r2, 16
+ cmp r0, 0x9F
+ bgt _080AB87E
+ ldr r5, _080AB8A0 @ =gScanlineEffectRegBuffers
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+ ldr r7, _080AB8A4 @ =0x0000ffff
+_080AB85C:
+ 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 _080AB85C
+_080AB87E:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AB8A8
+ 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 _080AB8BE
+ .align 2, 0
+_080AB8A0: .4byte gScanlineEffectRegBuffers
+_080AB8A4: .4byte 0x0000ffff
+_080AB8A8:
+ 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]
+_080AB8BE:
+ strh r0, [r2]
+ ldr r0, _080AB8E8 @ =0x04000052
+ str r0, [sp]
+ ldr r0, _080AB8EC @ =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 _080ABA66
+ .align 2, 0
+_080AB8E8: .4byte 0x04000052
+_080AB8EC: .4byte 0xa2600001
+_080AB8F0:
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _080AB908
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080AB91C
+ strh r1, [r4, 0x10]
+ b _080AB916
+_080AB908:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6F
+ ble _080AB91C
+_080AB916:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080AB91C:
+ movs r3, 0
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ bge _080AB950
+ ldr r6, _080AB9B4 @ =gScanlineEffectRegBuffers
+ ldr r5, _080AB9B8 @ =gScanlineEffect
+_080AB92A:
+ 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 _080AB92A
+_080AB950:
+ ldrh r3, [r4, 0x10]
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080AB984
+ ldr r6, _080AB9B4 @ =gScanlineEffectRegBuffers
+ ldr r5, _080AB9B8 @ =gScanlineEffect
+_080AB962:
+ 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 _080AB962
+_080AB984:
+ ldrh r3, [r4, 0x12]
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ bgt _080ABA66
+ ldr r6, _080AB9B4 @ =gScanlineEffectRegBuffers
+ ldr r5, _080AB9B8 @ =gScanlineEffect
+_080AB992:
+ 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 _080AB992
+ b _080ABA66
+ .align 2, 0
+_080AB9B4: .4byte gScanlineEffectRegBuffers
+_080AB9B8: .4byte gScanlineEffect
+_080AB9BC:
+ movs r3, 0
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ bge _080AB9F0
+ ldr r6, _080ABA70 @ =gScanlineEffectRegBuffers
+ ldr r5, _080ABA74 @ =gScanlineEffect
+_080AB9CA:
+ 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 _080AB9CA
+_080AB9F0:
+ ldrh r3, [r4, 0x10]
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080ABA24
+ ldr r6, _080ABA70 @ =gScanlineEffectRegBuffers
+ ldr r5, _080ABA74 @ =gScanlineEffect
+_080ABA02:
+ 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 _080ABA02
+_080ABA24:
+ ldrh r3, [r4, 0x12]
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ bgt _080ABA50
+ ldr r6, _080ABA70 @ =gScanlineEffectRegBuffers
+ ldr r5, _080ABA74 @ =gScanlineEffect
+_080ABA32:
+ 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 _080ABA32
+_080ABA50:
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080ABA66
+ bl ScanlineEffect_Stop
+ adds r0, r7, 0
+ bl DestroyTask
+_080ABA66:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABA70: .4byte gScanlineEffectRegBuffers
+_080ABA74: .4byte gScanlineEffect
+ thumb_func_end sub_80AB79C
+
+ thumb_func_start sub_80ABA78
+sub_80ABA78: @ 80ABA78
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r3, _080ABACC @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080ABAD0 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8075114
+ bl Random
+ movs r5, 0xFF
+ ands r5, r0
+ movs r0, 0x80
+ lsls r0, 1
+ adds r6, r0, 0
+ orrs r5, r6
+ bl Random
+ ldr r1, _080ABAD4 @ =0x000001ff
+ ands r1, r0
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ ble _080ABABE
+ subs r0, r6, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080ABABE:
+ strh r5, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ ldr r0, _080ABAD8 @ =sub_80ABADC
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABACC: .4byte 0x000003ff
+_080ABAD0: .4byte 0xfffffc00
+_080ABAD4: .4byte 0x000001ff
+_080ABAD8: .4byte sub_80ABADC
+ thumb_func_end sub_80ABA78
+
+ thumb_func_start sub_80ABADC
+sub_80ABADC: @ 80ABADC
+ 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 _080ABB00
+ lsls r0, r3, 16
+ asrs r0, 24
+ negs r0, r0
+ b _080ABB04
+_080ABB00:
+ lsls r0, r3, 16
+ asrs r0, 24
+_080ABB04:
+ 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 _080ABB22
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_080ABB22:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ABADC
+
+ thumb_func_start sub_80ABB28
+sub_80ABB28: @ 80ABB28
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080ABB78 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r2, _080ABB7C @ =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_80ABDC8
+ 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_80758E0
+ ldr r0, _080ABB80 @ =sub_80ABB84
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABB78: .4byte gTasks
+_080ABB7C: .4byte gSprites
+_080ABB80: .4byte sub_80ABB84
+ thumb_func_end sub_80ABB28
+
+ thumb_func_start sub_80ABB84
+sub_80ABB84: @ 80ABB84
+ 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, _080ABBAC @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ bls _080ABBA0
+ b _080ABDBE
+_080ABBA0:
+ lsls r0, 2
+ ldr r1, _080ABBB0 @ =_080ABBB4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ABBAC: .4byte gTasks
+_080ABBB0: .4byte _080ABBB4
+ .align 2, 0
+_080ABBB4:
+ .4byte _080ABBD4
+ .4byte _080ABBFA
+ .4byte _080ABC8C
+ .4byte _080ABCC2
+ .4byte _080ABCD6
+ .4byte _080ABCE4
+ .4byte _080ABD64
+ .4byte _080ABDB0
+_080ABBD4:
+ 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_80765D4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080ABBFA:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080ABC56
+ 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 _080ABC44
+ ldr r2, _080ABC40 @ =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 _080ABC56
+ .align 2, 0
+_080ABC40: .4byte gSprites
+_080ABC44:
+ ldr r2, _080ABC84 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080ABC88 @ =0x0000fffd
+ strh r1, [r0, 0x24]
+_080ABC56:
+ adds r0, r4, 0
+ bl sub_8076640
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _080ABC66
+ b _080ABDBE
+_080ABC66:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8076440
+ ldr r2, _080ABC84 @ =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 _080ABDA0
+ .align 2, 0
+_080ABC84: .4byte gSprites
+_080ABC88: .4byte 0x0000fffd
+_080ABC8C:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _080ABC9C
+ b _080ABDBE
+_080ABC9C:
+ 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_80765D4
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ b _080ABDA2
+_080ABCC2:
+ adds r0, r4, 0
+ bl sub_8076640
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080ABDBE
+ strh r0, [r4, 0xE]
+ strh r0, [r4, 0x10]
+ b _080ABDA2
+_080ABCD6:
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80ABE4C
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080ABCE4:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080ABDBE
+ 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 _080ABD1C
+ ldr r2, _080ABD18 @ =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 _080ABD2E
+ .align 2, 0
+_080ABD18: .4byte gSprites
+_080ABD1C:
+ ldr r2, _080ABD60 @ =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
+_080ABD2E:
+ strh r1, [r0, 0x26]
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xA
+ bne _080ABDBE
+ 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_80765D4
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ strh r0, [r4, 0x10]
+ b _080ABDA2
+ .align 2, 0
+_080ABD60: .4byte gSprites
+_080ABD64:
+ ldr r6, _080ABDAC @ =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_8076640
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080ABDBE
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8075980
+ 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]
+_080ABDA0:
+ strh r5, [r4, 0x10]
+_080ABDA2:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080ABDBE
+ .align 2, 0
+_080ABDAC: .4byte gSprites
+_080ABDB0:
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080ABDBE
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080ABDBE:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ABB84
+
+ thumb_func_start sub_80ABDC8
+sub_80ABDC8: @ 80ABDC8
+ push {r4,r5,lr}
+ ldr r4, _080ABDEC @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ABDFC
+ ldr r1, _080ABDF0 @ =gBattlerPartyIndexes
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080ABDF4 @ =gPlayerParty
+ b _080ABE0C
+ .align 2, 0
+_080ABDEC: .4byte gBattleAnimAttacker
+_080ABDF0: .4byte gBattlerPartyIndexes
+_080ABDF4: .4byte gPlayerParty
+_080ABDF8:
+ adds r0, r2, 0
+ b _080ABE3E
+_080ABDFC:
+ ldr r1, _080ABE44 @ =gBattlerPartyIndexes
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080ABE48 @ =gEnemyParty
+_080ABE0C:
+ 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
+_080ABE2A:
+ adds r1, r2, 0x1
+ adds r0, r4, 0
+ muls r0, r1
+ cmp r3, r0
+ blt _080ABDF8
+ lsls r0, r1, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _080ABE2A
+ movs r0, 0x3
+_080ABE3E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080ABE44: .4byte gBattlerPartyIndexes
+_080ABE48: .4byte gEnemyParty
+ thumb_func_end sub_80ABDC8
+
+ thumb_func_start sub_80ABE4C
+sub_80ABE4C: @ 80ABE4C
+ 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, _080ABF54 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0xAC
+ ldrb r0, [r4]
+ bl sub_807685C
+ 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 _080ABE9C
+ movs r1, 0x1
+_080ABE9C:
+ 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
+_080ABEB6:
+ ldr r0, _080ABF58 @ =gUnknown_83E5AE0
+ 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 _080ABF1E
+ ldr r1, _080ABF5C @ =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 _080ABF18
+ adds r0, r5, 0
+ bl sub_80ABF60
+_080ABF18:
+ ldrh r0, [r7, 0xC]
+ adds r0, 0x1
+ strh r0, [r7, 0xC]
+_080ABF1E:
+ 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 _080ABEB6
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABF54: .4byte gBattleAnimAttacker
+_080ABF58: .4byte gUnknown_83E5AE0
+_080ABF5C: .4byte gSprites
+ thumb_func_end sub_80ABE4C
+
+ thumb_func_start sub_80ABF60
+sub_80ABF60: @ 80ABF60
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080ABF72
+ cmp r0, 0x1
+ beq _080ABFA8
+ b _080AC002
+_080ABF72:
+ 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]
+_080ABFA8:
+ 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 _080ABFDE
+ adds r1, r2, 0
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ blt _080ABFDE
+ cmp r1, 0x78
+ ble _080AC002
+_080ABFDE:
+ ldr r3, _080AC008 @ =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
+_080AC002:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC008: .4byte gTasks
+ thumb_func_end sub_80ABF60
+
+ thumb_func_start sub_80AC00C
+sub_80AC00C: @ 80AC00C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080AC03C @ =gTasks
+ adds r4, r1, r0
+ bl sub_80ABDC8
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+ ldr r0, _080AC040 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AC044
+ movs r0, 0x88
+ strh r0, [r4, 0x10]
+ movs r0, 0x28
+ b _080AC04A
+ .align 2, 0
+_080AC03C: .4byte gTasks
+_080AC040: .4byte gBattleAnimAttacker
+_080AC044:
+ movs r0, 0x10
+ strh r0, [r4, 0x10]
+ movs r0, 0x50
+_080AC04A:
+ 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, _080AC06C @ =sub_80AC070
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC06C: .4byte sub_80AC070
+ thumb_func_end sub_80AC00C
+
+ thumb_func_start sub_80AC070
+sub_80AC070: @ 80AC070
+ 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, _080AC094 @ =gTasks
+ adds r4, r0, r7
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ beq _080AC098
+ cmp r2, 0x1
+ beq _080AC148
+ b _080AC156
+ .align 2, 0
+_080AC094: .4byte gTasks
+_080AC098:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080AC0AE
+ strh r2, [r4, 0xC]
+ adds r0, r4, 0
+ bl sub_80AC160
+_080AC0AE:
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080AC128
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080AC128
+ ldr r5, _080AC13C @ =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, _080AC140 @ =sub_80B94B4
+ adds r0, r6, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080AC0F8
+ 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, _080AC144 @ =gUnknown_2037EE2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080AC0F8:
+ 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 _080AC124
+ 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, _080AC144 @ =gUnknown_2037EE2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080AC124:
+ mov r0, r8
+ strh r0, [r4, 0x22]
+_080AC128:
+ movs r2, 0x1E
+ ldrsh r1, [r4, r2]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _080AC156
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080AC156
+ .align 2, 0
+_080AC13C: .4byte gBattleAnimArgs
+_080AC140: .4byte sub_80B94B4
+_080AC144: .4byte gUnknown_2037EE2
+_080AC148:
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080AC156
+ adds r0, r1, 0
+ bl DestroyAnimVisualTask
+_080AC156:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AC070
+
+ thumb_func_start sub_80AC160
+sub_80AC160: @ 80AC160
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r1, _080AC1EC @ =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, _080AC1F0 @ =gUnknown_83E5AE0
+ 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 _080AC1BA
+ ldr r3, _080AC1F4 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ ldr r2, _080AC1F8 @ =sub_80AC204
+ 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]
+_080AC1BA:
+ 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, _080AC1FC @ =0x41c64e6d
+ muls r0, r1
+ ldr r1, _080AC200 @ =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
+ .align 2, 0
+_080AC1EC: .4byte gSineTable
+_080AC1F0: .4byte gUnknown_83E5AE0
+_080AC1F4: .4byte gSprites
+_080AC1F8: .4byte sub_80AC204
+_080AC1FC: .4byte 0x41c64e6d
+_080AC200: .4byte 0x00003039
+ thumb_func_end sub_80AC160
+
+ thumb_func_start sub_80AC204
+sub_80AC204: @ 80AC204
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080AC29A
+ 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 _080AC29A
+ ldr r2, _080AC2A0 @ =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, _080AC2A4 @ =gUnknown_83E7C38
+ 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 _080AC294
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080AC2A8 @ =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, _080AC2AC @ =sub_80AC2B0
+ str r1, [r0]
+_080AC294:
+ adds r0, r5, 0
+ bl DestroySprite
+_080AC29A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC2A0: .4byte gTasks
+_080AC2A4: .4byte gUnknown_83E7C38
+_080AC2A8: .4byte gSprites
+_080AC2AC: .4byte sub_80AC2B0
+ thumb_func_end sub_80AC204
+
+ thumb_func_start sub_80AC2B0
+sub_80AC2B0: @ 80AC2B0
+ 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 _080AC31C
+ 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 _080AC31C
+ ldr r3, _080AC324 @ =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
+_080AC31C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC324: .4byte gTasks
+ thumb_func_end sub_80AC2B0
+
+ thumb_func_start sub_80AC328
+sub_80AC328: @ 80AC328
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080AC3AC @ =gTasks
+ adds r5, r1, r0
+ ldr r4, _080AC3B0 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ strh r0, [r5, 0xE]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8074480
+ 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 _080AC36C
+ movs r1, 0x1
+_080AC36C:
+ strh r1, [r5, 0x16]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AC380
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ strh r0, [r5, 0x16]
+_080AC380:
+ 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, _080AC3B4 @ =0x0000ffe0
+ strh r0, [r5, 0x1A]
+ strh r6, [r5, 0xA]
+ strh r6, [r5, 0x8]
+ ldr r0, _080AC3B8 @ =sub_80AC3BC
+ str r0, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC3AC: .4byte gTasks
+_080AC3B0: .4byte gBattleAnimAttacker
+_080AC3B4: .4byte 0x0000ffe0
+_080AC3B8: .4byte sub_80AC3BC
+ thumb_func_end sub_80AC328
+
+ thumb_func_start sub_80AC3BC
+sub_80AC3BC: @ 80AC3BC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080AC3E0 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bls _080AC3D6
+ b _080AC4F6
+_080AC3D6:
+ lsls r0, 2
+ ldr r1, _080AC3E4 @ =_080AC3E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AC3E0: .4byte gTasks
+_080AC3E4: .4byte _080AC3E8
+ .align 2, 0
+_080AC3E8:
+ .4byte _080AC404
+ .4byte _080AC414
+ .4byte _080AC42E
+ .4byte _080AC470
+ .4byte _080AC492
+ .4byte _080AC4C0
+ .4byte _080AC4E6
+_080AC404:
+ adds r0, r4, 0
+ bl sub_80AC504
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080AC4FC
+ b _080AC4EE
+_080AC414:
+ adds r0, r4, 0
+ bl sub_80AC504
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080AC4FC
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080AC4EE
+_080AC42E:
+ adds r0, r4, 0
+ bl sub_80AC504
+ 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 _080AC4FC
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080AC46C
+ movs r0, 0x1
+ strh r0, [r4, 0x22]
+ movs r0, 0x6
+ strh r0, [r4, 0x8]
+ strh r2, [r4, 0xA]
+ b _080AC4FC
+_080AC46C:
+ strh r2, [r4, 0xA]
+ b _080AC4EE
+_080AC470:
+ adds r0, r4, 0
+ bl sub_80AC504
+ 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 _080AC4FC
+ b _080AC4EE
+_080AC492:
+ adds r0, r4, 0
+ bl sub_80AC504
+ 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 _080AC4FC
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080AC4EE
+_080AC4C0:
+ adds r0, r4, 0
+ bl sub_80AC504
+ 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 _080AC4FC
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080AC4FC
+_080AC4E6:
+ movs r1, 0x18
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080AC4FC
+_080AC4EE:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080AC4FC
+_080AC4F6:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080AC4FC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AC3BC
+
+ thumb_func_start sub_80AC504
+sub_80AC504: @ 80AC504
+ 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 _080AC55E
+ movs r0, 0
+ strh r0, [r6, 0xC]
+ ldr r0, _080AC564 @ =gUnknown_83E5AE0
+ 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 _080AC55E
+ ldr r5, _080AC568 @ =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_8075068
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _080AC56C @ =sub_80AC570
+ str r0, [r4]
+ ldrh r0, [r6, 0x18]
+ adds r0, 0x1
+ strh r0, [r6, 0x18]
+_080AC55E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC564: .4byte gUnknown_83E5AE0
+_080AC568: .4byte gSprites
+_080AC56C: .4byte sub_80AC570
+ thumb_func_end sub_80AC504
+
+ thumb_func_start sub_80AC570
+sub_80AC570: @ 80AC570
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AC5CA
+ 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 Random
+ movs r4, 0x1F
+ adds r1, r4, 0
+ ands r1, r0
+ ldr r5, _080AC5D0 @ =0x0000fff0
+ adds r1, r5
+ ldrh r0, [r6, 0x20]
+ adds r1, r0
+ strh r1, [r6, 0x32]
+ bl Random
+ ands r4, r0
+ adds r4, r5
+ ldrh r1, [r6, 0x22]
+ adds r4, r1
+ strh r4, [r6, 0x36]
+ bl Random
+ movs r1, 0x7
+ ands r1, r0
+ mvns r1, r1
+ strh r1, [r6, 0x38]
+ adds r0, r6, 0
+ bl sub_8075068
+ ldr r0, _080AC5D4 @ =sub_80AC5D8
+ str r0, [r6, 0x1C]
+_080AC5CA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC5D0: .4byte 0x0000fff0
+_080AC5D4: .4byte sub_80AC5D8
+ thumb_func_end sub_80AC570
+
+ thumb_func_start sub_80AC5D8
+sub_80AC5D8: @ 80AC5D8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AC614
+ movs r4, 0
+ ldr r6, _080AC61C @ =gTasks
+_080AC5EA:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r6
+ ldr r1, [r2]
+ ldr r0, _080AC620 @ =sub_80AC3BC
+ cmp r1, r0
+ bne _080AC60A
+ movs r0, 0x1
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0x18]
+ subs r0, 0x1
+ strh r0, [r2, 0x18]
+ adds r0, r5, 0
+ bl DestroySprite
+_080AC60A:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xF
+ bls _080AC5EA
+_080AC614:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC61C: .4byte gTasks
+_080AC620: .4byte sub_80AC3BC
+ thumb_func_end sub_80AC5D8
+
+ thumb_func_start sub_80AC624
+sub_80AC624: @ 80AC624
+ ldr r2, _080AC644 @ =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, _080AC648 @ =sub_80AC64C
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080AC644: .4byte gBattleAnimArgs
+_080AC648: .4byte sub_80AC64C
+ thumb_func_end sub_80AC624
+
+ thumb_func_start sub_80AC64C
+sub_80AC64C: @ 80AC64C
+ 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 _080AC690
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AC690:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AC64C
+
+ thumb_func_start sub_80AC698
+sub_80AC698: @ 80AC698
+ 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 _080AC6D0
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080AC6D0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AC698
+
+ thumb_func_start sub_80AC6D8
+sub_80AC6D8: @ 80AC6D8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r5, _080AC714 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x30]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldr r1, _080AC718 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldr r0, _080AC71C @ =sub_80AC720
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC714: .4byte gBattleAnimTarget
+_080AC718: .4byte gBattleAnimArgs
+_080AC71C: .4byte sub_80AC720
+ thumb_func_end sub_80AC6D8
+
+ thumb_func_start sub_80AC720
+sub_80AC720: @ 80AC720
+ 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 _080AC778
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80AC798
+_080AC778:
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080AC78A
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080AC78A:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AC720
+
+ thumb_func_start sub_80AC798
+sub_80AC798: @ 80AC798
+ 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 Random
+ 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 Random
+ 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
+_080AC826:
+ ldr r0, _080AC868 @ =gUnknown_83E5B88
+ 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, _080AC86C @ =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, _080AC870 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_807685C
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ cmp r5, 0
+ bge _080AC874
+ mov r1, sp
+ ldrh r1, [r1, 0x4]
+ strh r1, [r4, 0x32]
+ b _080AC876
+ .align 2, 0
+_080AC868: .4byte gUnknown_83E5B88
+_080AC86C: .4byte gSprites
+_080AC870: .4byte gBattleAnimAttacker
+_080AC874:
+ strh r7, [r4, 0x32]
+_080AC876:
+ lsls r0, r6, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ lsrs r6, r0, 16
+ cmp r0, 0
+ ble _080AC826
+ 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
+_080AC89C:
+ ldr r0, _080AC8E0 @ =gUnknown_83E5B88
+ 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, _080AC8E4 @ =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, _080AC8E8 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_807685C
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ cmp r5, 0
+ ble _080AC8EC
+ mov r1, sp
+ ldrh r1, [r1, 0x8]
+ strh r1, [r4, 0x32]
+ b _080AC8EE
+ .align 2, 0
+_080AC8E0: .4byte gUnknown_83E5B88
+_080AC8E4: .4byte gSprites
+_080AC8E8: .4byte gBattleAnimAttacker
+_080AC8EC:
+ strh r7, [r4, 0x32]
+_080AC8EE:
+ lsls r0, r6, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ lsrs r6, r0, 16
+ cmp r0, 0
+ ble _080AC89C
+ 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_80AC798
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index 4b7fafa2e..9797487c4 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -154,6 +154,11 @@ SECTIONS {
asm/field_special_scene.o(.text);
asm/safari_zone.o(.text);
asm/item_use.o(.text);
+ asm/battle_anim_effects_1.o(.text);
+ asm/battle_anim_effects_2.o(.text);
+ asm/water.o(.text);
+ asm/fire.o(.text);
+ asm/electric.o(.text);
asm/battle_anim_80A22E8.o(.text);
asm/bike.o(.text);
asm/easy_chat.o(.text);