summaryrefslogtreecommitdiff
path: root/asm/battle_anim_utility_funcs.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/battle_anim_utility_funcs.s')
-rw-r--r--asm/battle_anim_utility_funcs.s3059
1 files changed, 3059 insertions, 0 deletions
diff --git a/asm/battle_anim_utility_funcs.s b/asm/battle_anim_utility_funcs.s
new file mode 100644
index 000000000..138d303ac
--- /dev/null
+++ b/asm/battle_anim_utility_funcs.s
@@ -0,0 +1,3059 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8116620
+sub_8116620: @ 8116620
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ bl sub_811583C
+ adds r6, r0, 0
+ ldrh r3, [r4]
+ lsls r3, 16
+ asrs r0, r3, 23
+ movs r4, 0x1
+ ands r0, r4
+ asrs r1, r3, 24
+ ands r1, r4
+ asrs r2, r3, 25
+ ands r2, r4
+ asrs r3, 26
+ ands r3, r4
+ bl sub_80A76C4
+ orrs r6, r0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_8116874
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8116620
+
+ thumb_func_start sub_8116664
+sub_8116664: @ 8116664
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1, 0x1]
+ movs r0, 0x1
+ bl sub_811583C
+ adds r5, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x7
+ bhi _0811670E
+ lsls r0, 2
+ ldr r1, =_08116698
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08116698:
+ .4byte _081166BA
+ .4byte _081166C6
+ .4byte _081166B8
+ .4byte _081166C4
+ .4byte _081166D4
+ .4byte _081166EC
+ .4byte _081166F4
+ .4byte _08116700
+_081166B8:
+ movs r5, 0
+_081166BA:
+ mov r0, sp
+ ldr r1, =gBattleAnimAttacker
+ b _081166CA
+ .pool
+_081166C4:
+ movs r5, 0
+_081166C6:
+ mov r0, sp
+ ldr r1, =gBattleAnimTarget
+_081166CA:
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _0811670E
+ .pool
+_081166D4:
+ mov r1, sp
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ strb r0, [r1, 0x1]
+ b _0811670E
+ .pool
+_081166EC:
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1]
+ b _0811670E
+_081166F4:
+ movs r5, 0
+ mov r2, sp
+ ldr r0, =gBattleAnimAttacker
+ b _08116706
+ .pool
+_08116700:
+ movs r5, 0
+ mov r2, sp
+ ldr r0, =gBattleAnimTarget
+_08116706:
+ ldrb r0, [r0]
+ movs r1, 0x2
+ eors r0, r1
+ strb r0, [r2]
+_0811670E:
+ movs r4, 0
+ mov r6, sp
+_08116712:
+ ldrb r0, [r6]
+ cmp r4, r0
+ beq _0811673C
+ ldrb r0, [r6, 0x1]
+ cmp r4, r0
+ beq _0811673C
+ adds r0, r4, 0
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811673C
+ adds r0, r4, 0
+ bl sub_80A77AC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r0
+ orrs r5, r1
+_0811673C:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _08116712
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_8116874
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8116664
+
+ thumb_func_start sub_811675C
+sub_811675C: @ 811675C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bl sub_811583C
+ adds r2, r0, 0
+ ldr r0, =gBattleTerrain
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bhi _08116832
+ lsls r0, 2
+ ldr r1, =_0811678C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0811678C:
+ .4byte _081167B4
+ .4byte _081167C4
+ .4byte _081167D0
+ .4byte _081167E0
+ .4byte _081167EC
+ .4byte _081167FC
+ .4byte _0811680C
+ .4byte _0811681C
+ .4byte _0811682C
+ .4byte _0811682C
+_081167B4:
+ ldr r1, =gBattleAnimArgs
+ ldr r0, =0x00000b0c
+ b _08116830
+ .pool
+_081167C4:
+ ldr r1, =gBattleAnimArgs
+ movs r0, 0x9E
+ lsls r0, 4
+ b _08116830
+ .pool
+_081167D0:
+ ldr r1, =gBattleAnimArgs
+ ldr r0, =0x00002f1e
+ b _08116830
+ .pool
+_081167E0:
+ ldr r1, =gBattleAnimArgs
+ movs r0, 0x90
+ lsls r0, 7
+ b _08116830
+ .pool
+_081167EC:
+ ldr r1, =gBattleAnimArgs
+ ldr r0, =0x00007ecb
+ b _08116830
+ .pool
+_081167FC:
+ ldr r1, =gBattleAnimArgs
+ ldr r0, =0x00007ecb
+ b _08116830
+ .pool
+_0811680C:
+ ldr r1, =gBattleAnimArgs
+ ldr r0, =0x00002a16
+ b _08116830
+ .pool
+_0811681C:
+ ldr r1, =gBattleAnimArgs
+ ldr r0, =0x00000d2e
+ b _08116830
+ .pool
+_0811682C:
+ ldr r1, =gBattleAnimArgs
+ ldr r0, =0x00007fff
+_08116830:
+ strh r0, [r1, 0x8]
+_08116832:
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_8116874
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811675C
+
+ thumb_func_start AnimTask_BlendParticle
+AnimTask_BlendParticle: @ 8116848
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ adds r0, r4, 0
+ bl sub_8116874
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end AnimTask_BlendParticle
+
+ thumb_func_start sub_8116874
+sub_8116874: @ 8116874
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ strh r1, [r2, 0x8]
+ lsrs r1, 16
+ strh r1, [r2, 0xA]
+ ldr r3, =gBattleAnimArgs
+ ldrh r1, [r3, 0x2]
+ strh r1, [r2, 0xC]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r2, 0xE]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r2, 0x10]
+ ldrh r1, [r3, 0x8]
+ strh r1, [r2, 0x12]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r2, 0x1C]
+ ldr r1, =sub_81168B8
+ str r1, [r2]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8116874
+
+ thumb_func_start sub_81168B8
+sub_81168B8: @ 81168B8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0
+ ldr r2, =gTasks
+ lsls r5, r7, 2
+ adds r0, r5, r7
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1A]
+ mov r8, r0
+ movs r4, 0x1A
+ ldrsh r1, [r3, r4]
+ movs r4, 0xC
+ ldrsh r0, [r3, r4]
+ mov r9, r2
+ cmp r1, r0
+ bne _0811694E
+ strh r6, [r3, 0x1A]
+ movs r0, 0x8
+ ldrsh r4, [r3, r0]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ orrs r4, r0
+ mov r8, r5
+ cmp r4, 0
+ beq _0811691A
+ adds r5, r3, 0
+_081168F8:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0811690C
+ ldrb r2, [r5, 0x1C]
+ ldrh r3, [r5, 0x12]
+ adds r0, r6, 0
+ movs r1, 0x10
+ bl BlendPalette
+_0811690C:
+ adds r0, r6, 0
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsrs r4, 1
+ cmp r4, 0
+ bne _081168F8
+_0811691A:
+ mov r4, r8
+ adds r0, r4, r7
+ lsls r0, 3
+ mov r1, r9
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x1C]
+ movs r4, 0x1C
+ ldrsh r3, [r2, r4]
+ movs r4, 0x10
+ ldrsh r1, [r2, r4]
+ cmp r3, r1
+ bge _0811693C
+ adds r0, 0x1
+ strh r0, [r2, 0x1C]
+ b _08116954
+ .pool
+_0811693C:
+ cmp r3, r1
+ ble _08116946
+ subs r0, 0x1
+ strh r0, [r2, 0x1C]
+ b _08116954
+_08116946:
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+ b _08116954
+_0811694E:
+ mov r0, r8
+ adds r0, 0x1
+ strh r0, [r3, 0x1A]
+_08116954:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81168B8
+
+ thumb_func_start sub_8116960
+sub_8116960: @ 8116960
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, =gBattleAnimArgs
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x2]
+ ldrb r2, [r4, 0x4]
+ ldrb r3, [r4, 0x6]
+ ldrb r4, [r4, 0x8]
+ str r4, [sp]
+ bl BeginHardwarePaletteFade
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81169A0
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8116960
+
+ thumb_func_start sub_81169A0
+sub_81169A0: @ 81169A0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081169B8
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_081169B8:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81169A0
+
+ thumb_func_start sub_81169C0
+sub_81169C0: @ 81169C0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r1, r0
+ ldr r2, =gBattleAnimArgs
+ ldrh r0, [r2]
+ movs r3, 0
+ strh r0, [r1, 0x8]
+ strh r3, [r1, 0xA]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1, 0xC]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r1, 0xE]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r1, 0x10]
+ strh r3, [r1, 0x12]
+ ldr r0, =sub_81169F8
+ str r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81169C0
+
+ thumb_func_start sub_81169F8
+sub_81169F8: @ 81169F8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r2, r5, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08116ABC
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08116A28
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xA]
+ b _08116ACA
+ .pool
+_08116A28:
+ ldrb r0, [r4, 0x8]
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ blt _08116AA6
+ ldr r6, =gSprites
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r3, r1, r6
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ movs r2, 0x2
+ cmp r0, 0
+ beq _08116A50
+ movs r2, 0x1
+_08116A50:
+ lsls r2, 2
+ ldrb r1, [r3, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0x5]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r4, 0xE]
+ strh r1, [r0, 0x2E]
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r5, [r0, 0x30]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x5
+ strh r1, [r0, 0x32]
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, =sub_8116AD0
+ str r1, [r0]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+_08116AA6:
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x1
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r4, 0xA]
+ b _08116ACA
+ .pool
+_08116ABC:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08116ACA
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_08116ACA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81169F8
+
+ thumb_func_start sub_8116AD0
+sub_8116AD0: @ 8116AD0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08116AE4
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ b _08116B08
+_08116AE4:
+ ldr r3, =gTasks
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl obj_delete_but_dont_free_vram
+_08116B08:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8116AD0
+
+ thumb_func_start sub_8116B14
+sub_8116B14: @ 8116B14
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r7, 0
+ ldr r0, =gBattle_WIN0H
+ strh r7, [r0]
+ ldr r0, =gBattle_WIN0V
+ strh r7, [r0]
+ ldr r1, =0x00003f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r1, =0x00003f3d
+ movs r0, 0x4A
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 8
+ movs r0, 0
+ bl SetGpuRegBits
+ ldr r1, =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r1, =0x00000c08
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0xA
+ bl GetGpuReg
+ add r4, sp, 0x10
+ strh r0, [r4]
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ mov r8, r0
+ ands r0, r1
+ strb r0, [r4]
+ mov r2, sp
+ adds r2, 0x11
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r1, [r4]
+ movs r0, 0xA
+ bl SetGpuReg
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _08116BA2
+ ldrb r1, [r4]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4]
+ ldrh r1, [r4]
+ movs r0, 0xA
+ bl SetGpuReg
+_08116BA2:
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _08116C26
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _08116C26
+ ldr r5, =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerPosition
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _08116BD2
+ ldrb r0, [r5]
+ bl GetBattlerPosition
+ lsls r0, 24
+ cmp r0, 0
+ bne _08116C26
+_08116BD2:
+ ldrb r0, [r5]
+ movs r6, 0x2
+ eors r0, r6
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08116C26
+ ldr r3, =gSprites
+ ldr r1, =gBattlerSpriteIds
+ ldrb r0, [r5]
+ eors r0, r6
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldrb r1, [r4]
+ mov r0, r8
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ ldrh r1, [r4]
+ movs r0, 0xA
+ bl SetGpuReg
+ movs r7, 0x1
+_08116C26:
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _08116C64
+ ldr r0, =gContestResources
+ ldr r0, [r0]
+ ldr r0, [r0, 0x18]
+ ldrh r5, [r0]
+ b _08116CAC
+ .pool
+_08116C64:
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08116C90
+ ldr r1, =gBattlerPartyIndexes
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gEnemyParty
+ b _08116CA0
+ .pool
+_08116C90:
+ ldr r1, =gBattlerPartyIndexes
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+_08116CA0:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+_08116CAC:
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80A89C8
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ mov r0, sp
+ bl sub_80A6B30
+ ldr r1, =gUnknown_08C20684
+ mov r0, sp
+ movs r2, 0
+ bl sub_80A6D60
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, =gUnknown_08C20668
+ mov r2, sp
+ ldrh r2, [r2, 0xA]
+ bl sub_80A6CC0
+ ldr r0, =gUnknown_08597418
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ adds r1, 0x1
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r2, =gBattle_BG1_X
+ ldr r0, =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r2]
+ ldr r2, =gBattle_BG1_Y
+ ldrh r0, [r1, 0x22]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r2]
+ ldr r1, =gTasks
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ strh r7, [r0, 0x14]
+ ldr r1, =sub_8116D64
+ str r1, [r0]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8116B14
+
+ thumb_func_start sub_8116D64
+sub_8116D64: @ 8116D64
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x4
+ movs r1, 0
+ mov r8, r1
+ strh r0, [r5, 0x1C]
+ ldr r7, =gBattle_BG1_Y
+ ldrh r2, [r7]
+ subs r1, r2, 0x4
+ strh r1, [r7]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ bne _08116E86
+ mov r0, r8
+ strh r0, [r5, 0x1C]
+ adds r0, r2, 0
+ adds r0, 0x3C
+ strh r0, [r7]
+ ldrh r0, [r5, 0x1E]
+ adds r0, 0x1
+ strh r0, [r5, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _08116E86
+ movs r0, 0
+ bl sub_80A477C
+ ldr r0, =gBattle_WIN0H
+ mov r1, r8
+ strh r1, [r0]
+ ldr r0, =gBattle_WIN0V
+ strh r1, [r0]
+ ldr r4, =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _08116DF6
+ movs r0, 0xA
+ bl GetGpuReg
+ add r1, sp, 0x10
+ strh r0, [r1]
+ ldrb r2, [r1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrh r1, [r1]
+ movs r0, 0xA
+ bl SetGpuReg
+_08116DF6:
+ movs r0, 0
+ bl GetGpuReg
+ adds r1, r0, 0
+ movs r2, 0x80
+ lsls r2, 8
+ adds r0, r2, 0
+ eors r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ ldr r4, =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ mov r0, sp
+ bl sub_80A6B30
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ bl sub_80A6C68
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _08116E7C
+ ldr r2, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+_08116E7C:
+ mov r2, r8
+ strh r2, [r7]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_08116E86:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8116D64
+
+ thumb_func_start sub_8116EB4
+sub_8116EB4: @ 8116EB4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, =gUnknown_0203A110
+ movs r0, 0x18
+ bl AllocZeroed
+ str r0, [r4]
+ movs r2, 0
+ ldr r3, =gBattleAnimArgs
+_08116EC8:
+ ldr r1, [r4]
+ lsls r0, r2, 1
+ adds r1, 0x4
+ adds r1, r0
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _08116EC8
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_8116F04
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8116EB4
+
+ thumb_func_start sub_8116F04
+sub_8116F04: @ 8116F04
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, =gUnknown_0203A110
+ ldr r1, [r0]
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08116F24
+ ldr r0, =gBattleAnimAttacker
+ b _08116F26
+ .pool
+_08116F24:
+ ldr r0, =gBattleAnimTarget
+_08116F26:
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r4, =gUnknown_0203A110
+ ldr r2, [r4]
+ ldrb r0, [r2]
+ movs r1, 0x2
+ eors r0, r1
+ strb r0, [r2, 0x1]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _08116F56
+ ldr r1, [r4]
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _08116F5C
+ ldrb r0, [r1, 0x1]
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ bne _08116F5C
+_08116F56:
+ ldr r1, [r4]
+ movs r0, 0
+ strh r0, [r1, 0xA]
+_08116F5C:
+ ldr r0, =gBattle_WIN0H
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gBattle_WIN0V
+ strh r1, [r0]
+ ldr r1, =0x00003f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r1, =0x00003f3d
+ movs r0, 0x4A
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 8
+ movs r0, 0
+ bl SetGpuRegBits
+ ldr r1, =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0
+ bl SetAnimBgAttribute
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl SetAnimBgAttribute
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _08116FBA
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+_08116FBA:
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _08117036
+ ldr r4, =gUnknown_0203A110
+ ldr r1, [r4]
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08117036
+ ldrb r0, [r1]
+ bl GetBattlerPosition
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _08116FEC
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ bl GetBattlerPosition
+ lsls r0, 24
+ cmp r0, 0
+ bne _08117036
+_08116FEC:
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bne _08117036
+ ldr r3, =gSprites
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ ldr r0, [r4]
+ strb r5, [r0, 0x2]
+_08117036:
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _08117078
+ ldr r0, =gUnknown_0203A110
+ ldr r1, [r0]
+ ldr r0, =gContestResources
+ ldr r0, [r0]
+ ldr r0, [r0, 0x18]
+ ldrh r0, [r0]
+ b _081170C4
+ .pool
+_08117078:
+ ldr r4, =gUnknown_0203A110
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _081170A8
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gEnemyParty
+ b _081170BA
+ .pool
+_081170A8:
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+_081170BA:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ ldr r1, [r4]
+_081170C4:
+ strh r0, [r1, 0x14]
+ ldr r0, =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81170EC
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8116F04
+
+ thumb_func_start sub_81170EC
+sub_81170EC: @ 81170EC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0
+ mov r8, r0
+ ldr r6, =gBattlerSpriteIds
+ ldr r4, =gUnknown_0203A110
+ ldr r2, [r4]
+ ldrb r0, [r2]
+ adds r1, r0, r6
+ ldrb r1, [r1]
+ ldrh r2, [r2, 0x14]
+ bl sub_80A89C8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, [r4]
+ movs r1, 0xA
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _0811712E
+ ldrb r0, [r2, 0x1]
+ adds r1, r0, r6
+ ldrb r1, [r1]
+ ldrh r2, [r2, 0x14]
+ bl sub_80A89C8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+_0811712E:
+ mov r0, sp
+ bl sub_80A6B30
+ ldr r0, [r4]
+ movs r4, 0x4
+ ldrsh r0, [r0, r4]
+ cmp r0, 0
+ bne _08117158
+ ldr r1, =gUnknown_08C2D930
+ mov r0, sp
+ movs r2, 0
+ bl sub_80A6D60
+ b _08117162
+ .pool
+_08117158:
+ ldr r1, =gUnknown_08C2DA4C
+ mov r0, sp
+ movs r2, 0
+ bl sub_80A6D60
+_08117162:
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, =gUnknown_08C2D720
+ mov r2, sp
+ ldrh r2, [r2, 0xA]
+ bl sub_80A6CC0
+ ldr r0, =gUnknown_0203A110
+ ldr r0, [r0]
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x6
+ bhi _081171F8
+ lsls r0, 2
+ ldr r1, =_08117198
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08117198:
+ .4byte _081171B4
+ .4byte _081171BC
+ .4byte _081171C4
+ .4byte _081171CC
+ .4byte _081171D4
+ .4byte _081171DC
+ .4byte _081171E4
+_081171B4:
+ ldr r0, =gUnknown_08C2DB88
+ b _081171E6
+ .pool
+_081171BC:
+ ldr r0, =gUnknown_08C2DB68
+ b _081171E6
+ .pool
+_081171C4:
+ ldr r0, =gUnknown_08C2DBA8
+ b _081171E6
+ .pool
+_081171CC:
+ ldr r0, =gUnknown_08C2DBC8
+ b _081171E6
+ .pool
+_081171D4:
+ ldr r0, =gUnknown_08C2DC08
+ b _081171E6
+ .pool
+_081171DC:
+ ldr r0, =gUnknown_08C2DC28
+ b _081171E6
+ .pool
+_081171E4:
+ ldr r0, =gUnknown_08C2DC48
+_081171E6:
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ b _08117206
+ .pool
+_081171F8:
+ ldr r0, =gUnknown_08C2DBE8
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+_08117206:
+ ldr r3, =gBattle_BG1_X
+ movs r2, 0
+ strh r2, [r3]
+ ldr r0, =gBattle_BG1_Y
+ strh r2, [r0]
+ ldr r1, =gUnknown_0203A110
+ ldr r0, [r1]
+ movs r4, 0x4
+ ldrsh r0, [r0, r4]
+ adds r4, r1, 0
+ cmp r0, 0x1
+ bne _08117248
+ movs r0, 0x40
+ strh r0, [r3]
+ ldr r2, =gTasks
+ lsls r3, r5, 2
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, =0x0000fffd
+ b _08117254
+ .pool
+_08117248:
+ ldr r2, =gTasks
+ lsls r3, r5, 2
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x3
+_08117254:
+ strh r1, [r0, 0xA]
+ ldr r0, [r4]
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08117274
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0xA
+ strh r1, [r0, 0x10]
+ movs r1, 0x14
+ b _08117280
+ .pool
+_08117274:
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0xD
+ strh r1, [r0, 0x10]
+ movs r1, 0x1E
+_08117280:
+ strh r1, [r0, 0x12]
+ adds r1, r3, r5
+ lsls r1, 3
+ adds r1, r2
+ strh r7, [r1, 0x8]
+ ldr r3, [r4]
+ ldrh r0, [r3, 0xA]
+ strh r0, [r1, 0xC]
+ mov r4, r8
+ strh r4, [r1, 0xE]
+ ldrb r0, [r3, 0x2]
+ strh r0, [r1, 0x14]
+ ldr r2, =gBattlerSpriteIds
+ ldrb r0, [r3, 0x1]
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r1, 0x16]
+ ldr r0, =sub_81172EC
+ str r0, [r1]
+ movs r1, 0x4
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _081172CC
+ movs r0, 0x40
+ negs r0, r0
+ bl BattleAnimAdjustPanning2
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xEF
+ bl PlaySE12WithPanning
+ b _081172E0
+ .pool
+_081172CC:
+ movs r0, 0x40
+ negs r0, r0
+ bl BattleAnimAdjustPanning2
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xF5
+ bl PlaySE12WithPanning
+_081172E0:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81170EC
+
+ thumb_func_start sub_81172EC
+sub_81172EC: @ 81172EC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, =gBattle_BG1_Y
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0xA]
+ ldrh r1, [r2]
+ adds r0, r1
+ strh r0, [r2]
+ movs r0, 0x26
+ ldrsh r2, [r5, r0]
+ cmp r2, 0x1
+ beq _08117362
+ cmp r2, 0x1
+ bgt _08117320
+ cmp r2, 0
+ beq _0811732A
+ b _08117478
+ .pool
+_08117320:
+ cmp r2, 0x2
+ beq _08117378
+ cmp r2, 0x3
+ beq _081173B6
+ b _08117478
+_0811732A:
+ ldrh r0, [r5, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x1E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08117338
+ b _08117478
+_08117338:
+ strh r2, [r5, 0x1E]
+ ldrh r1, [r5, 0x20]
+ adds r1, 0x1
+ strh r1, [r5, 0x20]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ beq _08117360
+ b _08117478
+_08117360:
+ b _081173AE
+_08117362:
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x12
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ beq _08117376
+ b _08117478
+_08117376:
+ b _081173AE
+_08117378:
+ ldrh r0, [r5, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x1E]
+ lsls r0, 16
+ cmp r0, 0
+ ble _08117478
+ movs r0, 0
+ strh r0, [r5, 0x1E]
+ ldrh r1, [r5, 0x20]
+ subs r1, 0x1
+ strh r1, [r5, 0x20]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x20
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08117478
+ movs r0, 0
+ bl sub_80A477C
+_081173AE:
+ ldrh r0, [r5, 0x26]
+ adds r0, 0x1
+ strh r0, [r5, 0x26]
+ b _08117478
+_081173B6:
+ ldr r0, =gBattle_WIN0H
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gBattle_WIN0V
+ strh r1, [r0]
+ ldr r4, =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _081173E6
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl SetAnimBgAttribute
+_081173E6:
+ movs r0, 0
+ bl GetGpuReg
+ adds r1, r0, 0
+ movs r2, 0x80
+ lsls r2, 8
+ adds r0, r2, 0
+ eors r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, =gSprites
+ adds r0, r4
+ bl DestroySprite
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _0811743A
+ movs r2, 0xE
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+_0811743A:
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _08117466
+ movs r2, 0x16
+ ldrsh r0, [r5, r2]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+_08117466:
+ ldr r4, =gUnknown_0203A110
+ ldr r0, [r4]
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_08117478:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81172EC
+
+ thumb_func_start sub_8117494
+sub_8117494: @ 8117494
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_80A76C4
+ adds r6, r0, 0
+ movs r1, 0
+ bl sub_81175C4
+ ldr r0, =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ lsrs r0, r6, 16
+ movs r5, 0
+ strh r0, [r4, 0x24]
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80A75AC
+ adds r6, r0, 0
+ ldr r1, =0x0000ffff
+ ands r6, r1
+ adds r0, r6, 0
+ bl sub_81175C4
+ strh r6, [r4, 0x26]
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ ldr r0, =sub_8117500
+ str r0, [r4]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8117494
+
+ thumb_func_start sub_8117500
+sub_8117500: @ 8117500
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _08117544
+ cmp r1, 0x1
+ bgt _08117528
+ cmp r1, 0
+ beq _0811752E
+ b _081175BE
+ .pool
+_08117528:
+ cmp r1, 0x2
+ beq _081175B8
+ b _081175BE
+_0811752E:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _081175BE
+ strh r1, [r4, 0xA]
+ movs r0, 0x10
+ strh r0, [r4, 0xC]
+ b _081175AC
+_08117544:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081175BE
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r5, 0
+ movs r6, 0x1
+_08117560:
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ asrs r0, r5
+ ands r0, r6
+ cmp r0, 0
+ beq _0811757A
+ lsls r0, r5, 20
+ lsrs r0, 16
+ ldrb r2, [r4, 0xC]
+ movs r1, 0x10
+ ldr r3, =0x0000ffff
+ bl BlendPalette
+_0811757A:
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ asrs r0, r5
+ ands r0, r6
+ cmp r0, 0
+ beq _0811759A
+ lsls r0, r5, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 16
+ ldrb r2, [r4, 0xC]
+ movs r1, 0x10
+ movs r3, 0
+ bl BlendPalette
+_0811759A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xF
+ bls _08117560
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081175BE
+_081175AC:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _081175BE
+ .pool
+_081175B8:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_081175BE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8117500
+
+ thumb_func_start sub_81175C4
+sub_81175C4: @ 81175C4
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ movs r2, 0
+_081175CE:
+ movs r0, 0x1
+ ands r0, r3
+ lsrs r4, r3, 1
+ adds r5, r2, 0x1
+ cmp r0, 0
+ beq _081175FA
+ lsls r0, r2, 20
+ lsrs r2, r0, 16
+ adds r0, r2, 0
+ adds r0, 0x10
+ cmp r2, r0
+ bge _081175FA
+ ldr r1, =gPlttBufferFaded
+ adds r3, r0, 0
+_081175EA:
+ lsls r0, r2, 1
+ adds r0, r1
+ strh r6, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ blt _081175EA
+_081175FA:
+ adds r3, r4, 0
+ lsls r0, r5, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1F
+ bls _081175CE
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81175C4
+
+ thumb_func_start sub_8117610
+sub_8117610: @ 8117610
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ movs r2, 0
+ ldr r0, =gBattleAnimAttacker
+ ldrb r3, [r0]
+ movs r5, 0x1
+_08117620:
+ cmp r3, r2
+ beq _0811762E
+ adds r1, r2, 0
+ adds r1, 0x10
+ adds r0, r5, 0
+ lsls r0, r1
+ orrs r4, r0
+_0811762E:
+ adds r2, 0x1
+ cmp r2, 0x3
+ bls _08117620
+ movs r2, 0x5
+ ldr r0, =gBattleAnimArgs
+ adds r1, r0, 0
+ adds r1, 0x8
+_0811763C:
+ ldrh r0, [r1]
+ strh r0, [r1, 0x2]
+ subs r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _0811763C
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_8116874
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8117610
+
+ thumb_func_start sub_8117660
+sub_8117660: @ 8117660
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ bl sub_80A6DAC
+ ldr r0, =sub_81176D8
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0811769C
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811769C
+ ldrh r0, [r4]
+ negs r0, r0
+ strh r0, [r4]
+ ldrh r0, [r4, 0x2]
+ negs r0, r0
+ strh r0, [r4, 0x2]
+_0811769C:
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r2, =gBattleAnimArgs
+ ldrh r0, [r2]
+ strh r0, [r1, 0xA]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1, 0xC]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r1, 0xE]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8117660
+
+ thumb_func_start sub_81176D8
+sub_81176D8: @ 81176D8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r3, [r1, 0xA]
+ ldrh r0, [r1, 0x1C]
+ adds r3, r0
+ movs r4, 0
+ mov r12, r4
+ strh r3, [r1, 0x1C]
+ ldrh r2, [r1, 0xC]
+ ldrh r7, [r1, 0x1E]
+ adds r2, r7
+ strh r2, [r1, 0x1E]
+ ldr r6, =gBattle_BG3_X
+ lsls r0, r3, 16
+ asrs r0, 24
+ ldrh r4, [r6]
+ adds r0, r4
+ strh r0, [r6]
+ ldr r4, =gBattle_BG3_Y
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r7, [r4]
+ adds r0, r7
+ strh r0, [r4]
+ movs r0, 0xFF
+ ands r3, r0
+ strh r3, [r1, 0x1C]
+ ands r2, r0
+ strh r2, [r1, 0x1E]
+ ldr r0, =gBattleAnimArgs
+ movs r3, 0xE
+ ldrsh r2, [r0, r3]
+ movs r7, 0xE
+ ldrsh r0, [r1, r7]
+ cmp r2, r0
+ bne _0811773E
+ mov r0, r12
+ strh r0, [r6]
+ strh r0, [r4]
+ movs r0, 0x1
+ bl sub_80A6DAC
+ adds r0, r5, 0
+ bl DestroyTask
+_0811773E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81176D8
+
+ thumb_func_start AnimTask_IsAttackerOpponentSide
+AnimTask_IsAttackerOpponentSide: @ 8117754
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ ldr r1, =gBattleAnimArgs
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0xE]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end AnimTask_IsAttackerOpponentSide
+
+ thumb_func_start AnimTask_IsTargetOpponentSide
+AnimTask_IsTargetOpponentSide: @ 8117780
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ ldr r1, =gBattleAnimArgs
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0xE]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end AnimTask_IsTargetOpponentSide
+
+ thumb_func_start AnimTask_IsTargetPartner
+AnimTask_IsTargetPartner: @ 81177AC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r5, =gBattleAnimArgs
+ movs r4, 0
+ ldr r0, =gBattleAnimAttacker
+ ldrb r2, [r0]
+ movs r0, 0x2
+ ldr r1, =gBattleAnimTarget
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _081177C8
+ movs r4, 0x1
+_081177C8:
+ strh r4, [r5, 0xE]
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end AnimTask_IsTargetPartner
+
+ thumb_func_start sub_81177E4
+sub_81177E4: @ 81177E4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r6, =gSprites
+_081177EE:
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _0811782C
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811782C
+ ldr r0, =gBattlerSpriteIds
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldr r1, =gBattleAnimArgs
+ adds r2, 0x3E
+ movs r0, 0x1
+ ldrb r3, [r1]
+ ands r3, r0
+ lsls r3, 2
+ ldrb r0, [r2]
+ movs r7, 0x5
+ negs r7, r7
+ adds r1, r7, 0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+_0811782C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _081177EE
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81177E4
+
+ thumb_func_start sub_8117854
+sub_8117854: @ 8117854
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ ldr r1, [sp, 0x44]
+ ldr r4, [sp, 0x48]
+ ldr r5, [sp, 0x4C]
+ ldr r6, [sp, 0x50]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp, 0x14]
+ lsls r3, 24
+ lsrs r7, r3, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp, 0x18]
+ lsls r5, 24
+ lsrs r5, 24
+ str r5, [sp, 0x1C]
+ lsls r6, 24
+ lsrs r6, 24
+ mov r10, r6
+ movs r0, 0
+ str r0, [sp, 0x20]
+ movs r0, 0x2
+ adds r6, r7, 0
+ eors r6, r0
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _081178B6
+ mov r1, r8
+ cmp r1, 0
+ beq _081178BA
+ adds r0, r6, 0
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ bne _081178BA
+_081178B6:
+ movs r2, 0
+ mov r8, r2
+_081178BA:
+ ldr r0, =gBattle_WIN0H
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gBattle_WIN0V
+ strh r1, [r0]
+ ldr r1, =0x00003f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r1, =0x00003f3d
+ movs r0, 0x4A
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 8
+ movs r0, 0
+ bl SetGpuRegBits
+ ldr r1, =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0xA
+ bl GetGpuReg
+ add r4, sp, 0x10
+ strh r0, [r4]
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ mov r2, sp
+ adds r2, 0x11
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r2]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _08117930
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_08117930:
+ ldrh r1, [r4]
+ movs r0, 0xA
+ bl SetGpuReg
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _08117964
+ ldr r0, =gContestResources
+ ldr r0, [r0]
+ ldr r0, [r0, 0x18]
+ ldrh r4, [r0]
+ b _081179A2
+ .pool
+_08117964:
+ adds r0, r7, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08117988
+ ldr r1, =gBattlerPartyIndexes
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gEnemyParty
+ b _08117996
+ .pool
+_08117988:
+ ldr r1, =gBattlerPartyIndexes
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+_08117996:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+_081179A2:
+ ldr r5, =gBattlerSpriteIds
+ adds r0, r7, r5
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ adds r2, r4, 0
+ bl sub_80A89C8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r0, r8
+ cmp r0, 0
+ beq _081179CC
+ adds r0, r6, r5
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl sub_80A89C8
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x20]
+_081179CC:
+ mov r0, sp
+ bl sub_80A6B30
+ mov r0, sp
+ ldr r1, [sp, 0x58]
+ movs r2, 0
+ bl sub_80A6D60
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ mov r1, sp
+ ldrh r2, [r1, 0xA]
+ ldr r1, [sp, 0x54]
+ bl sub_80A6CC0
+ mov r0, sp
+ ldrb r1, [r0, 0x8]
+ lsls r1, 4
+ ldr r0, [sp, 0x5C]
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r0, =gBattle_BG1_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gBattle_BG1_Y
+ strh r1, [r0]
+ ldr r1, =gTasks
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ mov r1, sp
+ ldrh r1, [r1, 0x14]
+ strh r1, [r0, 0xA]
+ mov r2, sp
+ ldrh r2, [r2, 0x18]
+ strh r2, [r0, 0x10]
+ mov r1, r10
+ strh r1, [r0, 0x12]
+ mov r2, sp
+ ldrh r2, [r2, 0x1C]
+ strh r2, [r0, 0x14]
+ strh r7, [r0, 0x8]
+ mov r1, r8
+ strh r1, [r0, 0xC]
+ mov r2, sp
+ ldrh r2, [r2, 0x20]
+ strh r2, [r0, 0xE]
+ ldr r1, =sub_8117A60
+ str r1, [r0]
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8117854
+
+ thumb_func_start sub_8117A60
+sub_8117A60: @ 8117A60
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r0, 0xA
+ ldrsh r2, [r3, r0]
+ adds r5, r1, 0
+ cmp r2, 0
+ bge _08117A7E
+ negs r2, r2
+_08117A7E:
+ ldrh r0, [r3, 0x22]
+ adds r4, r0, r2
+ strh r4, [r3, 0x22]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bge _08117AA4
+ ldr r2, =gBattle_BG1_Y
+ lsls r1, r4, 16
+ asrs r1, 24
+ ldrh r0, [r2]
+ subs r0, r1
+ strh r0, [r2]
+ b _08117AB0
+ .pool
+_08117AA4:
+ ldr r1, =gBattle_BG1_Y
+ lsls r0, r4, 16
+ asrs r0, 24
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+_08117AB0:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r5
+ ldrh r1, [r5, 0x22]
+ movs r0, 0xFF
+ ands r0, r1
+ movs r2, 0
+ strh r0, [r5, 0x22]
+ movs r3, 0x26
+ ldrsh r0, [r5, r3]
+ cmp r0, 0x1
+ beq _08117B1A
+ cmp r0, 0x1
+ bgt _08117AD8
+ cmp r0, 0
+ beq _08117ADE
+ b _08117C0C
+ .pool
+_08117AD8:
+ cmp r0, 0x2
+ beq _08117B34
+ b _08117C0C
+_08117ADE:
+ ldrh r0, [r5, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x14
+ ldrsh r1, [r5, r3]
+ cmp r0, r1
+ bge _08117AF2
+ b _08117C0C
+_08117AF2:
+ strh r2, [r5, 0x1E]
+ ldrh r1, [r5, 0x20]
+ adds r1, 0x1
+ strh r1, [r5, 0x20]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x20
+ ldrsh r1, [r5, r0]
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bne _08117C0C
+ b _08117B2C
+_08117B1A:
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x12
+ ldrsh r1, [r5, r3]
+ cmp r0, r1
+ bne _08117C0C
+_08117B2C:
+ ldrh r0, [r5, 0x26]
+ adds r0, 0x1
+ strh r0, [r5, 0x26]
+ b _08117C0C
+_08117B34:
+ ldrh r0, [r5, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x14
+ ldrsh r1, [r5, r3]
+ cmp r0, r1
+ blt _08117C0C
+ strh r2, [r5, 0x1E]
+ ldrh r1, [r5, 0x20]
+ subs r1, 0x1
+ strh r1, [r5, 0x20]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x20
+ ldrsh r4, [r5, r0]
+ cmp r4, 0
+ bne _08117C0C
+ movs r0, 0
+ bl sub_80A477C
+ ldr r0, =gBattle_WIN0H
+ strh r4, [r0]
+ ldr r0, =gBattle_WIN0V
+ strh r4, [r0]
+ ldr r4, =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _08117BB2
+ movs r0, 0xA
+ bl GetGpuReg
+ mov r1, sp
+ strh r0, [r1]
+ mov r2, sp
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ mov r0, sp
+ ldrh r1, [r0]
+ movs r0, 0xA
+ bl SetGpuReg
+_08117BB2:
+ movs r0, 0
+ bl GetGpuReg
+ adds r1, r0, 0
+ movs r2, 0x80
+ lsls r2, 8
+ adds r0, r2, 0
+ eors r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r3, 0x8
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, =gSprites
+ adds r0, r4
+ bl DestroySprite
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _08117C06
+ movs r2, 0xE
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+_08117C06:
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_08117C0C:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8117A60
+
+ thumb_func_start AnimTask_GetBattleTerrain
+AnimTask_GetBattleTerrain: @ 8117C24
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gBattleAnimArgs
+ ldr r1, =gBattleTerrain
+ ldrb r1, [r1]
+ strh r1, [r2]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end AnimTask_GetBattleTerrain
+
+ thumb_func_start sub_8117C44
+sub_8117C44: @ 8117C44
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x80
+ lsls r0, 6
+ bl AllocZeroed
+ ldr r1, =gMonSpritesGfxPtr
+ ldr r1, [r1]
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r1, r2
+ str r0, [r1]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8117C44
+
+ thumb_func_start sub_8117C70
+sub_8117C70: @ 8117C70
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r6, =gMonSpritesGfxPtr
+ ldr r0, [r6]
+ movs r5, 0xBE
+ lsls r5, 1
+ adds r0, r5
+ ldr r0, [r0]
+ bl Free
+ ldr r0, [r6]
+ adds r0, r5
+ movs r1, 0
+ str r1, [r0]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8117C70
+
+ thumb_func_start sub_8117CA0
+sub_8117CA0: @ 8117CA0
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08117CE4
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80A75AC
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08117CFC
+ movs r2, 0x1
+_08117CD2:
+ lsrs r1, 1
+ adds r4, 0x1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08117CD2
+ b _08117CFC
+ .pool
+_08117CE4:
+ cmp r0, 0x1
+ bne _08117CF0
+ ldr r0, =gBattleAnimAttacker
+ b _08117CF6
+ .pool
+_08117CF0:
+ cmp r0, 0x2
+ bne _08117CFC
+ ldr r0, =gBattleAnimTarget
+_08117CF6:
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+_08117CFC:
+ ldr r0, =gMonSpritesGfxPtr
+ ldr r1, [r0]
+ ldr r0, =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r0, [r0, r2]
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r1, r2
+ ldr r1, [r1]
+ lsls r0, 5
+ adds r0, r1
+ lsls r1, r4, 5
+ ldr r2, =gPlttBufferUnfaded
+ adds r1, r2
+ movs r2, 0x20
+ bl memcpy
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8117CA0
+
+ thumb_func_start sub_8117D3C
+sub_8117D3C: @ 8117D3C
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08117D80
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80A75AC
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08117D98
+ movs r2, 0x1
+_08117D6E:
+ lsrs r1, 1
+ adds r4, 0x1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08117D6E
+ b _08117D98
+ .pool
+_08117D80:
+ cmp r0, 0x1
+ bne _08117D8C
+ ldr r0, =gBattleAnimAttacker
+ b _08117D92
+ .pool
+_08117D8C:
+ cmp r0, 0x2
+ bne _08117D98
+ ldr r0, =gBattleAnimTarget
+_08117D92:
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+_08117D98:
+ lsls r0, r4, 5
+ ldr r1, =gPlttBufferUnfaded
+ adds r0, r1
+ ldr r1, =gMonSpritesGfxPtr
+ ldr r2, [r1]
+ ldr r1, =gBattleAnimArgs
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ movs r3, 0xBE
+ lsls r3, 1
+ adds r2, r3
+ ldr r2, [r2]
+ lsls r1, 5
+ adds r1, r2
+ movs r2, 0x20
+ bl memcpy
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8117D3C
+
+ thumb_func_start sub_8117DD8
+sub_8117DD8: @ 8117DD8
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08117E1C
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80A75AC
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08117E34
+ movs r2, 0x1
+_08117E0A:
+ lsrs r1, 1
+ adds r4, 0x1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08117E0A
+ b _08117E34
+ .pool
+_08117E1C:
+ cmp r0, 0x1
+ bne _08117E28
+ ldr r0, =gBattleAnimAttacker
+ b _08117E2E
+ .pool
+_08117E28:
+ cmp r0, 0x2
+ bne _08117E34
+ ldr r0, =gBattleAnimTarget
+_08117E2E:
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+_08117E34:
+ lsls r1, r4, 5
+ ldr r0, =gPlttBufferUnfaded
+ adds r0, r1, r0
+ ldr r2, =gPlttBufferFaded
+ adds r1, r2
+ movs r2, 0x20
+ bl memcpy
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8117DD8
+
+ thumb_func_start AnimTask_IsContest
+AnimTask_IsContest: @ 8117E60
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsContest
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _08117E80
+ ldr r1, =gBattleAnimArgs
+ movs r0, 0x1
+ strh r0, [r1, 0xE]
+ b _08117E84
+ .pool
+_08117E80:
+ ldr r0, =gBattleAnimArgs
+ strh r1, [r0, 0xE]
+_08117E84:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end AnimTask_IsContest
+
+ thumb_func_start sub_8117E94
+sub_8117E94: @ 8117E94
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gBattleAnimAttacker
+ ldr r1, =gBattlerTarget
+ ldrb r1, [r1]
+ strb r1, [r2]
+ ldr r2, =gBattleAnimTarget
+ ldr r1, =gEffectBattler
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8117E94
+
+ thumb_func_start AnimTask_IsTargetSameSide
+AnimTask_IsTargetSameSide: @ 8117EC4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _08117EF8
+ ldr r1, =gBattleAnimArgs
+ movs r0, 0x1
+ b _08117EFC
+ .pool
+_08117EF8:
+ ldr r1, =gBattleAnimArgs
+ movs r0, 0
+_08117EFC:
+ strh r0, [r1, 0xE]
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end AnimTask_IsTargetSameSide
+
+ thumb_func_start sub_8117F10
+sub_8117F10: @ 8117F10
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gBattleAnimTarget
+ ldr r1, =gBattlerTarget
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8117F10
+
+ thumb_func_start sub_8117F30
+sub_8117F30: @ 8117F30
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gBattleAnimAttacker
+ ldr r1, =gBattlerAttacker
+ ldrb r1, [r1]
+ strb r1, [r2]
+ ldr r2, =gBattleAnimTarget
+ ldr r1, =gEffectBattler
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8117F30
+
+ thumb_func_start sub_8117F60
+sub_8117F60: @ 8117F60
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _08117F78
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _08117FB4
+_08117F78:
+ ldr r0, =gTasks
+ lsls r3, r4, 2
+ adds r3, r4
+ lsls r3, 3
+ adds r3, r0
+ ldr r0, =gBattleSpritesDataPtr
+ ldr r4, [r0]
+ ldr r2, =gBattleAnimAttacker
+ ldrb r0, [r2]
+ ldr r1, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ strh r0, [r3, 0x8]
+ ldrb r1, [r2]
+ ldr r0, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r0, =sub_8117FD0
+ str r0, [r3]
+ ldr r1, =gAnimVisualTaskCount
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_08117FB4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8117F60
+
+ thumb_func_start sub_8117FD0
+sub_8117FD0: @ 8117FD0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gBattleAnimArgs
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bne _08118014
+ ldr r0, =gBattleSpritesDataPtr
+ ldr r1, [r0]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r3, [r0]
+ ldr r0, [r1]
+ lsls r3, 2
+ adds r3, r0
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x1
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ adds r0, r4, 0
+ bl DestroyTask
+_08118014:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8117FD0
+
+ .align 2, 0