summaryrefslogtreecommitdiff
path: root/asm/battle_anim_mons.s
diff options
context:
space:
mode:
authorSwastik Baranwal <swstkbaranwal@gmail.com>2019-06-23 18:47:35 +0530
committerGitHub <noreply@github.com>2019-06-23 18:47:35 +0530
commit99703c6ab831d34e6859d8a8f53ba8e73dc4d3d9 (patch)
tree3a712d3039d152616af58a45a13d82c40a87e58f /asm/battle_anim_mons.s
parent6d190f861e3559eec922cd760778c0cba6e08397 (diff)
parent9ee0c34758a63f8c00724b6fc984b4e96be2f7af (diff)
Merge pull request #5 from pret/master
Take files
Diffstat (limited to 'asm/battle_anim_mons.s')
-rw-r--r--asm/battle_anim_mons.s6343
1 files changed, 6343 insertions, 0 deletions
diff --git a/asm/battle_anim_mons.s b/asm/battle_anim_mons.s
new file mode 100644
index 000000000..aded063d4
--- /dev/null
+++ b/asm/battle_anim_mons.s
@@ -0,0 +1,6343 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8074480
+sub_8074480: @ 8074480
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ cmp r4, 0x4
+ bhi _08074500
+ lsls r0, r4, 2
+ ldr r1, _08074498 @ =_0807449C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08074498: .4byte _0807449C
+ .align 2, 0
+_0807449C:
+ .4byte _080744B0
+ .4byte _080744D8
+ .4byte _080744B0
+ .4byte _08074500
+ .4byte _08074500
+_080744B0:
+ ldr r4, _080744D0 @ =gUnknown_83AE01C
+ adds r0, r5, 0
+ bl GetBattlerPosition
+ lsls r0, 24
+ lsrs r0, 22
+ ldr r1, _080744D4 @ =gBattleTypeFlags
+ ldr r1, [r1]
+ movs r2, 0x1
+ ands r1, r2
+ lsls r1, 4
+ adds r0, r1
+ adds r0, r4
+ ldrb r0, [r0]
+ b _08074588
+ .align 2, 0
+_080744D0: .4byte gUnknown_83AE01C
+_080744D4: .4byte gBattleTypeFlags
+_080744D8:
+ ldr r4, _080744F8 @ =gUnknown_83AE01C
+ adds r0, r5, 0
+ bl GetBattlerPosition
+ lsls r0, 24
+ lsrs r0, 22
+ ldr r1, _080744FC @ =gBattleTypeFlags
+ ldr r1, [r1]
+ movs r2, 0x1
+ ands r1, r2
+ lsls r1, 4
+ adds r0, r1
+ adds r0, r4
+ ldrb r0, [r0, 0x1]
+ b _08074588
+ .align 2, 0
+_080744F8: .4byte gUnknown_83AE01C
+_080744FC: .4byte gBattleTypeFlags
+_08074500:
+ adds r0, r5, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074538
+ ldr r0, _0807452C @ =gUnknown_2024018
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r5, 2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _08074570
+ ldr r1, _08074530 @ =gBattlerPartyIndexes
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08074534 @ =gEnemyParty
+ b _08074556
+ .align 2, 0
+_0807452C: .4byte gUnknown_2024018
+_08074530: .4byte gBattlerPartyIndexes
+_08074534: .4byte gEnemyParty
+_08074538:
+ ldr r0, _08074564 @ =gUnknown_2024018
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r5, 2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _08074570
+ ldr r1, _08074568 @ =gBattlerPartyIndexes
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0807456C @ =gPlayerParty
+_08074556:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ b _08074572
+ .align 2, 0
+_08074564: .4byte gUnknown_2024018
+_08074568: .4byte gBattlerPartyIndexes
+_0807456C: .4byte gPlayerParty
+_08074570:
+ ldrh r1, [r1, 0x2]
+_08074572:
+ cmp r4, 0x3
+ bne _0807457C
+ adds r0, r5, 0
+ movs r2, 0x1
+ b _08074580
+_0807457C:
+ adds r0, r5, 0
+ movs r2, 0
+_08074580:
+ bl sub_80747AC
+ lsls r0, 24
+ lsrs r0, 24
+_08074588:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8074480
+
+ thumb_func_start sub_8074590
+sub_8074590: @ 8074590
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ adds r7, r4, 0
+ adds r0, r5, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074674
+ cmp r4, 0xC9
+ bne _08074638
+ ldr r0, _080745D8 @ =gUnknown_2024018
+ ldr r0, [r0]
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ adds r0, r1, r0
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0
+ bne _080745E4
+ ldr r1, _080745DC @ =gBattlerPartyIndexes
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080745E0 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0
+ bl GetMonData
+ adds r2, r0, 0
+ b _080745EA
+ .align 2, 0
+_080745D8: .4byte gUnknown_2024018
+_080745DC: .4byte gBattlerPartyIndexes
+_080745E0: .4byte gPlayerParty
+_080745E4:
+ ldr r0, _08074620 @ =gUnknown_2024008
+ adds r0, r1, r0
+ ldr r2, [r0]
+_080745EA:
+ movs r0, 0xC0
+ lsls r0, 18
+ ands r0, r2
+ lsrs r0, 18
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r2
+ lsrs r1, 12
+ orrs r0, r1
+ movs r1, 0xC0
+ lsls r1, 2
+ ands r1, r2
+ lsrs r1, 6
+ orrs r0, r1
+ movs r1, 0x3
+ ands r1, r2
+ orrs r0, r1
+ movs r1, 0x1C
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ bne _08074624
+ adds r0, r7, 0
+ b _0807462E
+ .align 2, 0
+_08074620: .4byte gUnknown_2024008
+_08074624:
+ movs r1, 0xCE
+ lsls r1, 1
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+_0807462E:
+ ldr r1, _08074634 @ =gUnknown_8235E6C
+ lsls r0, 2
+ b _0807473C
+ .align 2, 0
+_08074634: .4byte gUnknown_8235E6C
+_08074638:
+ ldr r0, _0807464C @ =0x00000181
+ cmp r4, r0
+ bne _08074658
+ ldr r0, _08074650 @ =gUnknown_83AE050
+ ldr r1, _08074654 @ =gBattleMonForms
+ adds r1, r5, r1
+ ldrb r1, [r1]
+ adds r1, r0
+ ldrb r0, [r1]
+ b _08074740
+ .align 2, 0
+_0807464C: .4byte 0x00000181
+_08074650: .4byte gUnknown_83AE050
+_08074654: .4byte gBattleMonForms
+_08074658:
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ bls _08074668
+ ldr r0, _08074664 @ =gUnknown_8235E6C
+ b _0807473E
+ .align 2, 0
+_08074664: .4byte gUnknown_8235E6C
+_08074668:
+ ldr r1, _08074670 @ =gUnknown_8235E6C
+ lsls r0, r4, 2
+ b _0807473C
+ .align 2, 0
+_08074670: .4byte gUnknown_8235E6C
+_08074674:
+ cmp r4, 0xC9
+ bne _08074704
+ ldr r0, _080746A4 @ =gUnknown_2024018
+ ldr r0, [r0]
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ adds r0, r1, r0
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0
+ bne _080746B0
+ ldr r1, _080746A8 @ =gBattlerPartyIndexes
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080746AC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0
+ bl GetMonData
+ adds r2, r0, 0
+ b _080746B6
+ .align 2, 0
+_080746A4: .4byte gUnknown_2024018
+_080746A8: .4byte gBattlerPartyIndexes
+_080746AC: .4byte gEnemyParty
+_080746B0:
+ ldr r0, _080746EC @ =gUnknown_2024008
+ adds r0, r1, r0
+ ldr r2, [r0]
+_080746B6:
+ movs r0, 0xC0
+ lsls r0, 18
+ ands r0, r2
+ lsrs r0, 18
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r2
+ lsrs r1, 12
+ orrs r0, r1
+ movs r1, 0xC0
+ lsls r1, 2
+ ands r1, r2
+ lsrs r1, 6
+ orrs r0, r1
+ movs r1, 0x3
+ ands r1, r2
+ orrs r0, r1
+ movs r1, 0x1C
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ bne _080746F0
+ adds r0, r7, 0
+ b _080746FA
+ .align 2, 0
+_080746EC: .4byte gUnknown_2024008
+_080746F0:
+ movs r1, 0xCE
+ lsls r1, 1
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+_080746FA:
+ ldr r1, _08074700 @ =gUnknown_82349CC
+ lsls r0, 2
+ b _0807473C
+ .align 2, 0
+_08074700: .4byte gUnknown_82349CC
+_08074704:
+ ldr r0, _0807471C @ =0x00000181
+ cmp r4, r0
+ bne _08074728
+ ldr r0, _08074720 @ =gUnknown_83AE03C
+ ldr r1, _08074724 @ =gBattleMonForms
+ adds r1, r6, r1
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ b _08074740
+ .align 2, 0
+_0807471C: .4byte 0x00000181
+_08074720: .4byte gUnknown_83AE03C
+_08074724: .4byte gBattleMonForms
+_08074728:
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ bls _08074738
+ ldr r0, _08074734 @ =gUnknown_82349CC
+ b _0807473E
+ .align 2, 0
+_08074734: .4byte gUnknown_82349CC
+_08074738:
+ ldr r1, _08074748 @ =gUnknown_82349CC
+ lsls r0, r7, 2
+_0807473C:
+ adds r0, r1
+_0807473E:
+ ldrb r0, [r0, 0x1]
+_08074740:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08074748: .4byte gUnknown_82349CC
+ thumb_func_end sub_8074590
+
+ thumb_func_start sub_807474C
+sub_807474C: @ 807474C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 16
+ lsrs r4, r1, 16
+ adds r7, r4, 0
+ movs r5, 0
+ adds r0, r6, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0807479E
+ ldr r0, _0807477C @ =0x00000181
+ cmp r4, r0
+ bne _08074788
+ ldr r0, _08074780 @ =gUnknown_83AE04C
+ ldr r1, _08074784 @ =gBattleMonForms
+ adds r1, r6, r1
+ ldrb r1, [r1]
+ adds r1, r0
+ ldrb r5, [r1]
+ b _0807479E
+ .align 2, 0
+_0807477C: .4byte 0x00000181
+_08074780: .4byte gUnknown_83AE04C
+_08074784: .4byte gBattleMonForms
+_08074788:
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ bls _08074798
+ ldr r0, _08074794 @ =gUnknown_823A004
+ b _0807479C
+ .align 2, 0
+_08074794: .4byte gUnknown_823A004
+_08074798:
+ ldr r0, _080747A8 @ =gUnknown_823A004
+ adds r0, r7, r0
+_0807479C:
+ ldrb r5, [r0]
+_0807479E:
+ adds r0, r5, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080747A8: .4byte gUnknown_823A004
+ thumb_func_end sub_807474C
+
+ thumb_func_start sub_80747AC
+sub_80747AC: @ 80747AC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 24
+ lsrs r7, r2, 24
+ adds r0, r6, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080747D4
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_8074590
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _080747F2
+_080747D4:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_8074590
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_807474C
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, r5, r0
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080747F2:
+ adds r0, r6, 0
+ bl GetBattlerPosition
+ ldr r3, _0807483C @ =gUnknown_83AE01C
+ lsls r0, 24
+ lsrs r0, 22
+ ldr r1, _08074840 @ =gBattleTypeFlags
+ ldr r1, [r1]
+ movs r2, 0x1
+ ands r1, r2
+ lsls r1, 4
+ adds r0, r1
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ adds r0, r5
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r7, 0
+ beq _08074832
+ adds r0, r6, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807482C
+ adds r0, r4, 0
+ adds r0, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0807482C:
+ cmp r4, 0x68
+ bls _08074832
+ movs r4, 0x68
+_08074832:
+ adds r0, r4, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0807483C: .4byte gUnknown_83AE01C
+_08074840: .4byte gBattleTypeFlags
+ thumb_func_end sub_80747AC
+
+ thumb_func_start sub_8074844
+sub_8074844: @ 8074844
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ movs r0, 0xFD
+ lsls r0, 24
+ adds r1, r0
+ lsrs r1, 24
+ cmp r1, 0x1
+ bhi _08074896
+ ldr r0, _08074874 @ =gUnknown_2024018
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r2, 2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _0807487C
+ ldr r1, _08074878 @ =gUnknown_2037F1C
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ b _0807487E
+ .align 2, 0
+_08074874: .4byte gUnknown_2024018
+_08074878: .4byte gUnknown_2037F1C
+_0807487C:
+ ldrh r1, [r1, 0x2]
+_0807487E:
+ cmp r3, 0x3
+ bne _0807488C
+ adds r0, r2, 0
+ movs r2, 0x1
+ bl sub_80747AC
+ b _0807489E
+_0807488C:
+ adds r0, r2, 0
+ movs r2, 0
+ bl sub_80747AC
+ b _0807489E
+_08074896:
+ adds r0, r2, 0
+ adds r1, r3, 0
+ bl sub_8074480
+_0807489E:
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8074844
+
+ thumb_func_start GetBankSpriteDefault_Y
+GetBankSpriteDefault_Y: @ 80748A8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x4
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end GetBankSpriteDefault_Y
+
+ thumb_func_start GetSubstituteSpriteDefault_Y
+GetSubstituteSpriteDefault_Y: @ 80748BC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080748E0
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 8
+ movs r1, 0x80
+ lsls r1, 13
+ b _080748F0
+_080748E0:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 8
+ movs r1, 0x88
+ lsls r1, 13
+_080748F0:
+ adds r0, r1
+ lsrs r0, 16
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end GetSubstituteSpriteDefault_Y
+
+ thumb_func_start sub_8074900
+sub_8074900: @ 8074900
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0807491A
+ adds r0, r4, 0
+ movs r1, 0x1
+ b _0807491E
+_0807491A:
+ adds r0, r4, 0
+ movs r1, 0x4
+_0807491E:
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8074900
+
+ thumb_func_start sub_807492C
+sub_807492C: @ 807492C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074978
+ ldr r0, _0807496C @ =gUnknown_2024018
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r5, 2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _080749B0
+ ldr r1, _08074970 @ =gBattlerPartyIndexes
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08074974 @ =gEnemyParty
+ b _08074996
+ .align 2, 0
+_0807496C: .4byte gUnknown_2024018
+_08074970: .4byte gBattlerPartyIndexes
+_08074974: .4byte gEnemyParty
+_08074978:
+ ldr r0, _080749A4 @ =gUnknown_2024018
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r5, 2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _080749B0
+ ldr r1, _080749A8 @ =gBattlerPartyIndexes
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080749AC @ =gPlayerParty
+_08074996:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ b _080749B2
+ .align 2, 0
+_080749A4: .4byte gUnknown_2024018
+_080749A8: .4byte gBattlerPartyIndexes
+_080749AC: .4byte gPlayerParty
+_080749B0:
+ ldrh r4, [r1, 0x2]
+_080749B2:
+ adds r0, r5, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080749CC
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_807474C
+ subs r0, r6, r0
+ lsls r0, 24
+ lsrs r6, r0, 24
+_080749CC:
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807492C
+
+ thumb_func_start GetAnimBankSpriteId
+GetAnimBankSpriteId: @ 80749D4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0
+ bne _080749FC
+ ldr r4, _080749F4 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ bl sub_8075224
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074A4A
+ ldr r1, _080749F8 @ =gBattlerSpriteIds
+ ldrb r0, [r4]
+ b _08074A5A
+ .align 2, 0
+_080749F4: .4byte gBattleAnimAttacker
+_080749F8: .4byte gBattlerSpriteIds
+_080749FC:
+ cmp r0, 0x1
+ bne _08074A1C
+ ldr r4, _08074A14 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ bl sub_8075224
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074A4A
+ ldr r1, _08074A18 @ =gBattlerSpriteIds
+ ldrb r0, [r4]
+ b _08074A5A
+ .align 2, 0
+_08074A14: .4byte gBattleAnimTarget
+_08074A18: .4byte gBattlerSpriteIds
+_08074A1C:
+ cmp r1, 0x2
+ bne _08074A38
+ ldr r5, _08074A34 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r4, 0x2
+ eors r0, r4
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074A4A
+ b _08074A54
+ .align 2, 0
+_08074A34: .4byte gBattleAnimAttacker
+_08074A38:
+ ldr r5, _08074A50 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r4, 0x2
+ eors r0, r4
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074A54
+_08074A4A:
+ movs r0, 0xFF
+ b _08074A5E
+ .align 2, 0
+_08074A50: .4byte gBattleAnimTarget
+_08074A54:
+ ldr r1, _08074A64 @ =gBattlerSpriteIds
+ ldrb r0, [r5]
+ eors r0, r4
+_08074A5A:
+ adds r0, r1
+ ldrb r0, [r0]
+_08074A5E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08074A64: .4byte gBattlerSpriteIds
+ thumb_func_end GetAnimBankSpriteId
+
+ thumb_func_start StoreSpriteCallbackInData6
+StoreSpriteCallbackInData6: @ 8074A68
+ strh r1, [r0, 0x3A]
+ lsrs r1, 16
+ strh r1, [r0, 0x3C]
+ bx lr
+ thumb_func_end StoreSpriteCallbackInData6
+
+ thumb_func_start SetCallbackToStoredInData
+SetCallbackToStoredInData: @ 8074A70
+ ldrh r2, [r0, 0x3A]
+ movs r3, 0x3C
+ ldrsh r1, [r0, r3]
+ lsls r1, 16
+ orrs r2, r1
+ str r2, [r0, 0x1C]
+ bx lr
+ thumb_func_end SetCallbackToStoredInData
+
+ thumb_func_start sub_8074A80
+sub_8074A80: @ 8074A80
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08074AD4
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x2E]
+ adds r1, r0, r2
+ strh r1, [r4, 0x2E]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _08074AC0
+ ldr r2, _08074ABC @ =0xffffff00
+ b _08074AC8
+ .align 2, 0
+_08074ABC: .4byte 0xffffff00
+_08074AC0:
+ cmp r0, 0
+ bge _08074ACC
+ movs r2, 0x80
+ lsls r2, 1
+_08074AC8:
+ adds r0, r1, r2
+ strh r0, [r4, 0x2E]
+_08074ACC:
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x34]
+ b _08074ADA
+_08074AD4:
+ adds r0, r4, 0
+ bl SetCallbackToStoredInData
+_08074ADA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8074A80
+
+ thumb_func_start sub_8074AE0
+sub_8074AE0: @ 8074AE0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08074B50
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ 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 _08074B3C
+ ldr r2, _08074B38 @ =0xffffff00
+ b _08074B44
+ .align 2, 0
+_08074B38: .4byte 0xffffff00
+_08074B3C:
+ cmp r0, 0
+ bge _08074B48
+ movs r2, 0x80
+ lsls r2, 1
+_08074B44:
+ adds r0, r1, r2
+ strh r0, [r4, 0x2E]
+_08074B48:
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x34]
+ b _08074B56
+_08074B50:
+ adds r0, r4, 0
+ bl SetCallbackToStoredInData
+_08074B56:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8074AE0
+
+ thumb_func_start sub_8074B5C
+sub_8074B5C: @ 8074B5C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08074BD8
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ 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, 0x38]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _08074BA4
+ ldr r2, _08074BA0 @ =0xffffff00
+ b _08074BAC
+ .align 2, 0
+_08074BA0: .4byte 0xffffff00
+_08074BA4:
+ cmp r0, 0
+ bge _08074BB0
+ movs r2, 0x80
+ lsls r2, 1
+_08074BAC:
+ adds r0, r1, r2
+ strh r0, [r4, 0x2E]
+_08074BB0:
+ ldrh r1, [r4, 0x36]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xFF
+ ble _08074BC4
+ ldr r2, _08074BC0 @ =0xffffff00
+ b _08074BCC
+ .align 2, 0
+_08074BC0: .4byte 0xffffff00
+_08074BC4:
+ cmp r0, 0
+ bge _08074BD0
+ movs r2, 0x80
+ lsls r2, 1
+_08074BCC:
+ adds r0, r1, r2
+ strh r0, [r4, 0x36]
+_08074BD0:
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x34]
+ b _08074BDE
+_08074BD8:
+ adds r0, r4, 0
+ bl SetCallbackToStoredInData
+_08074BDE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8074B5C
+
+ thumb_func_start sub_8074BE4
+sub_8074BE4: @ 8074BE4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08074C38
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x2E]
+ adds r1, r0, r2
+ strh r1, [r4, 0x2E]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _08074C24
+ ldr r2, _08074C20 @ =0xffffff00
+ b _08074C2C
+ .align 2, 0
+_08074C20: .4byte 0xffffff00
+_08074C24:
+ cmp r0, 0
+ bge _08074C30
+ movs r2, 0x80
+ lsls r2, 1
+_08074C2C:
+ adds r0, r1, r2
+ strh r0, [r4, 0x2E]
+_08074C30:
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x34]
+ b _08074C3E
+_08074C38:
+ adds r0, r4, 0
+ bl SetCallbackToStoredInData
+_08074C3E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8074BE4
+
+ thumb_func_start sub_8074C44
+sub_8074C44: @ 8074C44
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ ble _08074C58
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x2E]
+ b _08074C5E
+_08074C58:
+ adds r0, r1, 0
+ bl SetCallbackToStoredInData
+_08074C5E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8074C44
+
+ thumb_func_start sub_8074C64
+sub_8074C64: @ 8074C64
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8074C80
+ ldr r1, _08074C7C @ =sub_8074CD0
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08074C7C: .4byte sub_8074CD0
+ thumb_func_end sub_8074C64
+
+ thumb_func_start sub_8074C80
+sub_8074C80: @ 8074C80
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ ble _08074C96
+ ldrh r0, [r4, 0x2E]
+ negs r0, r0
+ strh r0, [r4, 0x2E]
+_08074C96:
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ subs r0, r1
+ ldrh r5, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ cmp r0, 0
+ bge _08074CB0
+ negs r0, r0
+_08074CB0:
+ strh r0, [r4, 0x2E]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ subs r0, r1
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ strh r0, [r4, 0x32]
+ strh r5, [r4, 0x30]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8074C80
+
+ thumb_func_start sub_8074CD0
+sub_8074CD0: @ 8074CD0
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ ble _08074CF4
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x2E]
+ ldrh r0, [r1, 0x30]
+ ldrh r2, [r1, 0x24]
+ adds r0, r2
+ strh r0, [r1, 0x24]
+ ldrh r0, [r1, 0x32]
+ ldrh r3, [r1, 0x26]
+ adds r0, r3
+ strh r0, [r1, 0x26]
+ b _08074CFA
+_08074CF4:
+ adds r0, r1, 0
+ bl SetCallbackToStoredInData
+_08074CFA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8074CD0
+
+ thumb_func_start sub_8074D00
+sub_8074D00: @ 8074D00
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _08074D30
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x2E]
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x34]
+ adds r0, r1
+ strh r0, [r2, 0x34]
+ ldrh r1, [r2, 0x32]
+ ldrh r3, [r2, 0x36]
+ adds r1, r3
+ strh r1, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x24]
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r2, 0x26]
+ b _08074D36
+_08074D30:
+ adds r0, r2, 0
+ bl SetCallbackToStoredInData
+_08074D36:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8074D00
+
+ thumb_func_start sub_8074D3C
+sub_8074D3C: @ 8074D3C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _08074D6C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ 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, 24
+ strh r0, [r4, 0x24]
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r4, 0x26]
+ b _08074D72
+_08074D6C:
+ adds r0, r4, 0
+ bl SetCallbackToStoredInData
+_08074D72:
+ adds r0, r4, 0
+ bl UpdateMonIconFrame
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8074D3C
+
+ thumb_func_start sub_8074D80
+sub_8074D80: @ 8074D80
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldr r5, _08074DBC @ =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, _08074DC0 @ =sub_8074C64
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08074DBC: .4byte gBattleAnimTarget
+_08074DC0: .4byte sub_8074C64
+ thumb_func_end sub_8074D80
+
+ thumb_func_start sub_8074DC4
+sub_8074DC4: @ 8074DC4
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ ble _08074E08
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x2E]
+ ldr r2, _08074E04 @ =gSprites
+ movs r4, 0x34
+ ldrsh r1, [r3, r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x30]
+ ldrh r4, [r0, 0x24]
+ adds r1, r4
+ strh r1, [r0, 0x24]
+ movs r0, 0x34
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x32]
+ ldrh r2, [r0, 0x26]
+ adds r1, r2
+ strh r1, [r0, 0x26]
+ b _08074E0E
+ .align 2, 0
+_08074E04: .4byte gSprites
+_08074E08:
+ adds r0, r3, 0
+ bl SetCallbackToStoredInData
+_08074E0E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8074DC4
+
+ thumb_func_start sub_8074E14
+sub_8074E14: @ 8074E14
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _08074E64
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x30]
+ ldrh r0, [r4, 0x34]
+ adds r1, r0
+ strh r1, [r4, 0x34]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ ldr r3, _08074E60 @ =gSprites
+ movs r0, 0x38
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r0, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r1, 0x26]
+ b _08074E6A
+ .align 2, 0
+_08074E60: .4byte gSprites
+_08074E64:
+ adds r0, r4, 0
+ bl SetCallbackToStoredInData
+_08074E6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8074E14
+
+ thumb_func_start sub_8074E70
+sub_8074E70: @ 8074E70
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _08074ED2
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x32]
+ lsls r0, r1, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r1, r0
+ strh r1, [r4, 0x32]
+ ldrh r1, [r4, 0x36]
+ lsls r0, r1, 16
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ adds r1, r0
+ strh r1, [r4, 0x36]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ cmp r0, 0
+ bne _08074ED8
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08074ED8
+ 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 _08074ED8
+_08074ED2:
+ adds r0, r4, 0
+ bl SetCallbackToStoredInData
+_08074ED8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8074E70
+
+ thumb_func_start move_anim_8074EE0
+move_anim_8074EE0: @ 8074EE0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end move_anim_8074EE0
+
+ thumb_func_start sub_8074EF4
+sub_8074EF4: @ 8074EF4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldr r5, _08074F30 @ =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, _08074F34 @ =sub_8074C64
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08074F30: .4byte gBattleAnimAttacker
+_08074F34: .4byte sub_8074C64
+ thumb_func_end sub_8074EF4
+
+ thumb_func_start sub_8074F38
+sub_8074F38: @ 8074F38
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x38]
+ bl ResetPaletteStructByUid
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8074F38
+
+ thumb_func_start sub_8074F50
+sub_8074F50: @ 8074F50
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08074F66
+ adds r0, r2, 0
+ bl SetCallbackToStoredInData
+_08074F66:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8074F50
+
+ thumb_func_start sub_8074F6C
+sub_8074F6C: @ 8074F6C
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08074F82
+ adds r0, r2, 0
+ bl SetCallbackToStoredInData
+_08074F82:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8074F6C
+
+ thumb_func_start sub_8074F88
+sub_8074F88: @ 8074F88
+ 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_8074F88
+
+ thumb_func_start sub_8074FA8
+sub_8074FA8: @ 8074FA8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8074FA8
+
+ thumb_func_start sub_8074FCC
+sub_8074FCC: @ 8074FCC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _08074FF4 @ =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]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08074FF4: .4byte gBattleAnimAttacker
+ thumb_func_end sub_8074FCC
+
+ thumb_func_start sub_8074FF8
+sub_8074FF8: @ 8074FF8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ mov r8, r5
+ ldr r7, _08075030 @ =gBattleAnimAttacker
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _08075034 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r6, r0
+ bhi _08075044
+ cmp r6, r0
+ bcs _08075038
+ lsls r0, r5, 16
+ b _08075054
+ .align 2, 0
+_08075030: .4byte gBattleAnimAttacker
+_08075034: .4byte gBattleAnimTarget
+_08075038:
+ ldrb r0, [r7]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075050
+_08075044:
+ ldrh r1, [r4, 0x20]
+ lsls r0, r5, 16
+ asrs r0, 16
+ subs r1, r0
+ strh r1, [r4, 0x20]
+ b _0807505C
+_08075050:
+ mov r1, r8
+ lsls r0, r1, 16
+_08075054:
+ asrs r0, 16
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+_0807505C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8074FF8
+
+ thumb_func_start sub_8075068
+sub_8075068: @ 8075068
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x20]
+ movs r5, 0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r0, 0x80
+ lsls r0, 8
+ bl __divsi3
+ strh r0, [r4, 0x3A]
+ strh r5, [r4, 0x3C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8075068
+
+ thumb_func_start AnimateBallThrow
+AnimateBallThrow: @ 8075094
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080750C0
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x3C]
+ adds r0, r1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ lsrs r0, 24
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ movs r0, 0
+ b _080750C2
+_080750C0:
+ movs r0, 0x1
+_080750C2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end AnimateBallThrow
+
+ thumb_func_start sub_80750C8
+sub_80750C8: @ 80750C8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080750F4
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x3C]
+ adds r0, r1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ lsrs r0, 24
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r0, 0
+ b _080750F6
+_080750F4:
+ movs r0, 0x1
+_080750F6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80750C8
+
+ thumb_func_start oamt_add_pos2_onto_pos1
+oamt_add_pos2_onto_pos1: @ 80750FC
+ ldrh r1, [r0, 0x24]
+ ldrh r2, [r0, 0x20]
+ adds r1, r2
+ movs r2, 0
+ strh r1, [r0, 0x20]
+ ldrh r1, [r0, 0x26]
+ ldrh r3, [r0, 0x22]
+ adds r1, r3
+ strh r1, [r0, 0x22]
+ strh r2, [r0, 0x24]
+ strh r2, [r0, 0x26]
+ bx lr
+ thumb_func_end oamt_add_pos2_onto_pos1
+
+ thumb_func_start sub_8075114
+sub_8075114: @ 8075114
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ cmp r1, 0
+ bne _0807513C
+ ldr r4, _08075158 @ =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074844
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8074844
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+_0807513C:
+ ldr r4, _0807515C @ =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
+_08075158: .4byte gBattleAnimTarget
+_0807515C: .4byte gBattleAnimArgs
+ thumb_func_end sub_8075114
+
+ thumb_func_start sub_8075160
+sub_8075160: @ 8075160
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ cmp r1, 0
+ bne _08075184
+ ldr r4, _08075180 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8074844
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ b _08075198
+ .align 2, 0
+_08075180: .4byte gBattleAnimAttacker
+_08075184:
+ ldr r4, _080751BC @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8074844
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+_08075198:
+ bl sub_8074844
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, _080751C0 @ =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
+_080751BC: .4byte gBattleAnimAttacker
+_080751C0: .4byte gBattleAnimArgs
+ thumb_func_end sub_8075160
+
+ thumb_func_start GetBattlerSide
+GetBattlerSide: @ 80751C4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080751D4 @ =gUnknown_2023BD6
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ bx lr
+ .align 2, 0
+_080751D4: .4byte gUnknown_2023BD6
+ thumb_func_end GetBattlerSide
+
+ thumb_func_start GetBattlerPosition
+GetBattlerPosition: @ 80751D8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080751E4 @ =gUnknown_2023BD6
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080751E4: .4byte gUnknown_2023BD6
+ thumb_func_end GetBattlerPosition
+
+ thumb_func_start GetBattlerAtPosition
+GetBattlerAtPosition: @ 80751E8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r1, 0
+ ldr r0, _0807521C @ =gBattlersCount
+ ldrb r2, [r0]
+ cmp r1, r2
+ bcs _08075212
+ ldr r4, _08075220 @ =gUnknown_2023BD6
+ ldrb r0, [r4]
+ cmp r0, r3
+ beq _08075212
+_08075200:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, r2
+ bcs _08075212
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, r3
+ bne _08075200
+_08075212:
+ adds r0, r1, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0807521C: .4byte gBattlersCount
+_08075220: .4byte gUnknown_2023BD6
+ thumb_func_end GetBattlerAtPosition
+
+ thumb_func_start sub_8075224
+sub_8075224: @ 8075224
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ ldr r0, _08075254 @ =gUnknown_2023BD6
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _08075288
+ adds r0, r4, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075260
+ ldr r1, _08075258 @ =gBattlerPartyIndexes
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0807525C @ =gEnemyParty
+ b _0807526E
+ .align 2, 0
+_08075254: .4byte gUnknown_2023BD6
+_08075258: .4byte gBattlerPartyIndexes
+_0807525C: .4byte gEnemyParty
+_08075260:
+ ldr r1, _08075280 @ =gBattlerPartyIndexes
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08075284 @ =gPlayerParty
+_0807526E:
+ adds r0, r1
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08075288
+ movs r0, 0x1
+ b _0807528A
+ .align 2, 0
+_08075280: .4byte gBattlerPartyIndexes
+_08075284: .4byte gPlayerParty
+_08075288:
+ movs r0, 0
+_0807528A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8075224
+
+ thumb_func_start sub_8075290
+sub_8075290: @ 8075290
+ ldr r0, _0807529C @ =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x1
+ ands r0, r1
+ bx lr
+ .align 2, 0
+_0807529C: .4byte gBattleTypeFlags
+ thumb_func_end sub_8075290
+
+ thumb_func_start sub_80752A0
+sub_80752A0: @ 80752A0
+ ldr r1, _080752C0 @ =gUnknown_2022BB8
+ ldr r1, [r1]
+ str r1, [r0]
+ ldr r1, _080752C4 @ =gUnknown_2022BBC
+ ldr r1, [r1]
+ str r1, [r0, 0x4]
+ movs r2, 0
+ movs r1, 0x8
+ strb r1, [r0, 0x8]
+ movs r1, 0x1
+ strb r1, [r0, 0x9]
+ movs r1, 0x80
+ lsls r1, 2
+ strh r1, [r0, 0xA]
+ strh r2, [r0, 0xC]
+ bx lr
+ .align 2, 0
+_080752C0: .4byte gUnknown_2022BB8
+_080752C4: .4byte gUnknown_2022BBC
+ thumb_func_end sub_80752A0
+
+ thumb_func_start sub_80752C8
+sub_80752C8: @ 80752C8
+ push {lr}
+ adds r2, r0, 0
+ cmp r1, 0x1
+ bne _080752D6
+ bl sub_80752A0
+ b _080752F4
+_080752D6:
+ ldr r0, _080752F8 @ =gUnknown_2022BB8
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, _080752FC @ =gUnknown_2022BBC
+ ldr r0, [r0]
+ str r0, [r2, 0x4]
+ movs r1, 0
+ movs r0, 0x9
+ strb r0, [r2, 0x8]
+ movs r0, 0x2
+ strb r0, [r2, 0x9]
+ movs r0, 0xC0
+ lsls r0, 2
+ strh r0, [r2, 0xA]
+ strh r1, [r2, 0xC]
+_080752F4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080752F8: .4byte gUnknown_2022BB8
+_080752FC: .4byte gUnknown_2022BBC
+ thumb_func_end sub_80752C8
+
+ thumb_func_start sub_8075300
+sub_8075300: @ 8075300
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _08075334 @ =gUnknown_2022BB8
+ ldr r0, [r0]
+ str r0, [r4]
+ ldr r0, _08075338 @ =gUnknown_2022BBC
+ ldr r0, [r0]
+ str r0, [r4, 0x4]
+ ldr r0, _0807533C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_80768B0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x1
+ bne _08075340
+ movs r0, 0
+ movs r1, 0x8
+ strb r1, [r4, 0x8]
+ strb r2, [r4, 0x9]
+ movs r1, 0x80
+ lsls r1, 2
+ strh r1, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ b _08075352
+ .align 2, 0
+_08075334: .4byte gUnknown_2022BB8
+_08075338: .4byte gUnknown_2022BBC
+_0807533C: .4byte gBattleAnimAttacker
+_08075340:
+ movs r1, 0
+ movs r0, 0x9
+ strb r0, [r4, 0x8]
+ movs r0, 0x2
+ strb r0, [r4, 0x9]
+ movs r0, 0xC0
+ lsls r0, 2
+ strh r0, [r4, 0xA]
+ strh r1, [r4, 0xC]
+_08075352:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8075300
+
+ thumb_func_start sub_8075358
+sub_8075358: @ 8075358
+ push {r4,lr}
+ sub sp, 0x20
+ adds r4, r0, 0
+ add r0, sp, 0xC
+ adds r1, r4, 0
+ bl sub_80752C8
+ movs r0, 0
+ str r0, [sp, 0x1C]
+ add r0, sp, 0x1C
+ ldr r1, [sp, 0xC]
+ ldr r2, _080753B0 @ =0x05000800
+ bl CpuSet
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, [sp, 0xC]
+ movs r2, 0x80
+ lsls r2, 6
+ add r0, sp, 0xC
+ ldrh r3, [r0, 0xA]
+ adds r0, r4, 0
+ bl LoadBgTiles
+ movs r0, 0x20
+ str r0, [sp]
+ movs r0, 0x40
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect
+ adds r0, r4, 0
+ bl CopyBgTilemapBufferToVram
+ add sp, 0x20
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080753B0: .4byte 0x05000800
+ thumb_func_end sub_8075358
+
+ thumb_func_start sub_80753B4
+sub_80753B4: @ 80753B4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ adds r5, r0, 0
+ mov r8, r1
+ adds r6, r2, 0
+ movs r0, 0
+ str r0, [sp]
+ ldr r4, _080753FC @ =gUnknown_2022BB8
+ ldr r1, [r4]
+ ldr r2, _08075400 @ =0x05000800
+ mov r0, sp
+ bl CpuSet
+ ldr r1, [r4]
+ mov r0, r8
+ bl LZDecompressWram
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, [r4]
+ movs r2, 0x80
+ lsls r2, 6
+ lsls r6, 16
+ lsrs r6, 16
+ adds r0, r5, 0
+ adds r3, r6, 0
+ bl LoadBgTiles
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080753FC: .4byte gUnknown_2022BB8
+_08075400: .4byte 0x05000800
+ thumb_func_end sub_80753B4
+
+ thumb_func_start sub_8075404
+sub_8075404: @ 8075404
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x20
+ str r0, [sp]
+ movs r0, 0x40
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ movs r3, 0
+ bl CopyToBgTilemapBuffer
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8075404
+
+ thumb_func_start sub_807543C
+sub_807543C: @ 807543C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8075404
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl CopyBgTilemapBufferToVram
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807543C
+
+ thumb_func_start sub_8075454
+sub_8075454: @ 8075454
+ movs r0, 0x2
+ bx lr
+ thumb_func_end sub_8075454
+
+ thumb_func_start sub_8075458
+sub_8075458: @ 8075458
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ bne _08075476
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl SetAnimBgAttribute
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ b _0807548A
+_08075476:
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0
+ bl SetAnimBgAttribute
+_0807548A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8075458
+
+ thumb_func_start sub_8075490
+sub_8075490: @ 8075490
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ bl sub_80754B8
+ ldr r1, _080754B4 @ =sub_8074D3C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080754B4: .4byte sub_8074D3C
+ thumb_func_end sub_8075490
+
+ thumb_func_start sub_80754B8
+sub_80754B8: @ 80754B8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x32]
+ ldrh r1, [r5, 0x30]
+ subs r0, r1
+ ldrh r4, [r5, 0x36]
+ ldrh r1, [r5, 0x34]
+ subs r4, r1
+ lsls r4, 24
+ lsrs r4, 16
+ lsls r0, 24
+ asrs r0, 16
+ movs r2, 0x2E
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ movs r6, 0
+ strh r0, [r5, 0x30]
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl __divsi3
+ strh r0, [r5, 0x32]
+ strh r6, [r5, 0x36]
+ strh r6, [r5, 0x34]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80754B8
+
+ thumb_func_start obj_translate_based_on_private_1_2_3_4
+obj_translate_based_on_private_1_2_3_4: @ 80754F8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ movs r0, 0x32
+ ldrsh r1, [r7, r0]
+ movs r2, 0x30
+ ldrsh r0, [r7, r2]
+ subs r1, r0
+ movs r3, 0x36
+ ldrsh r2, [r7, r3]
+ movs r3, 0x34
+ ldrsh r0, [r7, r3]
+ subs r2, r0
+ lsrs r0, r1, 31
+ mov r8, r0
+ lsrs r3, r2, 31
+ mov r9, r3
+ cmp r1, 0
+ bge _08075524
+ negs r1, r1
+_08075524:
+ lsls r0, r1, 24
+ lsrs r6, r0, 16
+ adds r0, r2, 0
+ cmp r0, 0
+ bge _08075530
+ negs r0, r0
+_08075530:
+ lsls r0, 24
+ lsrs r5, r0, 16
+ movs r0, 0x2E
+ ldrsh r4, [r7, r0]
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r2, r8
+ cmp r2, 0
+ beq _0807555C
+ movs r0, 0x1
+ orrs r6, r0
+ b _08075560
+_0807555C:
+ ldr r0, _0807556C @ =0x0000fffe
+ ands r6, r0
+_08075560:
+ mov r3, r9
+ cmp r3, 0
+ beq _08075570
+ movs r0, 0x1
+ orrs r5, r0
+ b _08075574
+ .align 2, 0
+_0807556C: .4byte 0x0000fffe
+_08075570:
+ ldr r0, _0807558C @ =0x0000fffe
+ ands r5, r0
+_08075574:
+ movs r0, 0
+ strh r6, [r7, 0x30]
+ strh r5, [r7, 0x32]
+ strh r0, [r7, 0x36]
+ strh r0, [r7, 0x34]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807558C: .4byte 0x0000fffe
+ thumb_func_end obj_translate_based_on_private_1_2_3_4
+
+ thumb_func_start sub_8075590
+sub_8075590: @ 8075590
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080755B4 @ =sub_807563C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080755B4: .4byte sub_807563C
+ thumb_func_end sub_8075590
+
+ thumb_func_start sub_80755B8
+sub_80755B8: @ 80755B8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080755DC @ =sub_8075658
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080755DC: .4byte sub_8075658
+ thumb_func_end sub_80755B8
+
+ thumb_func_start sub_80755E0
+sub_80755E0: @ 80755E0
+ push {r4-r6,lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080755F0
+ movs r0, 0x1
+ b _08075634
+_080755F0:
+ ldrh r1, [r2, 0x30]
+ ldrh r4, [r2, 0x32]
+ ldrh r6, [r2, 0x34]
+ ldrh r5, [r2, 0x36]
+ adds r0, r6, r1
+ lsls r3, r0, 16
+ lsrs r6, r3, 16
+ adds r0, r5, r4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r0, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08075612
+ lsrs r0, r3, 24
+ negs r0, r0
+ b _08075614
+_08075612:
+ lsrs r0, r3, 24
+_08075614:
+ strh r0, [r2, 0x24]
+ movs r0, 0x1
+ ands r4, r0
+ cmp r4, 0
+ beq _08075624
+ lsrs r0, r5, 8
+ negs r0, r0
+ b _08075626
+_08075624:
+ lsrs r0, r5, 8
+_08075626:
+ strh r0, [r2, 0x26]
+ strh r6, [r2, 0x34]
+ strh r5, [r2, 0x36]
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ strh r0, [r2, 0x2E]
+ movs r0, 0
+_08075634:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80755E0
+
+ thumb_func_start sub_807563C
+sub_807563C: @ 807563C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075650
+ adds r0, r4, 0
+ bl SetCallbackToStoredInData
+_08075650:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807563C
+
+ thumb_func_start sub_8075658
+sub_8075658: @ 8075658
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_801236C
+ adds r0, r4, 0
+ bl sub_80755E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075672
+ adds r0, r4, 0
+ bl SetCallbackToStoredInData
+_08075672:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8075658
+
+ thumb_func_start sub_8075678
+sub_8075678: @ 8075678
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ subs r0, r1, r0
+ cmp r0, 0
+ bge _0807568C
+ negs r0, r0
+_0807568C:
+ lsls r0, 8
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8075678
+
+ thumb_func_start sub_80756A4
+sub_80756A4: @ 80756A4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ bl sub_8075678
+ ldr r1, _080756C8 @ =sub_807563C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080756C8: .4byte sub_807563C
+ thumb_func_end sub_80756A4
+
+ thumb_func_start sub_80756CC
+sub_80756CC: @ 80756CC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ movs r0, 0x32
+ ldrsh r1, [r7, r0]
+ movs r2, 0x30
+ ldrsh r0, [r7, r2]
+ subs r1, r0
+ movs r3, 0x36
+ ldrsh r2, [r7, r3]
+ movs r3, 0x34
+ ldrsh r0, [r7, r3]
+ subs r2, r0
+ lsrs r0, r1, 31
+ mov r8, r0
+ lsrs r3, r2, 31
+ mov r9, r3
+ cmp r1, 0
+ bge _080756F8
+ negs r1, r1
+_080756F8:
+ lsls r0, r1, 20
+ lsrs r6, r0, 16
+ adds r0, r2, 0
+ cmp r0, 0
+ bge _08075704
+ negs r0, r0
+_08075704:
+ lsls r0, 20
+ lsrs r5, r0, 16
+ movs r0, 0x2E
+ ldrsh r4, [r7, r0]
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r2, r8
+ cmp r2, 0
+ beq _08075730
+ movs r0, 0x1
+ orrs r6, r0
+ b _08075734
+_08075730:
+ ldr r0, _08075740 @ =0x0000fffe
+ ands r6, r0
+_08075734:
+ mov r3, r9
+ cmp r3, 0
+ beq _08075744
+ movs r0, 0x1
+ orrs r5, r0
+ b _08075748
+ .align 2, 0
+_08075740: .4byte 0x0000fffe
+_08075744:
+ ldr r0, _08075760 @ =0x0000fffe
+ ands r5, r0
+_08075748:
+ movs r0, 0
+ strh r6, [r7, 0x30]
+ strh r5, [r7, 0x32]
+ strh r0, [r7, 0x36]
+ strh r0, [r7, 0x34]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075760: .4byte 0x0000fffe
+ thumb_func_end sub_80756CC
+
+ thumb_func_start sub_8075764
+sub_8075764: @ 8075764
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ bl sub_80756CC
+ ldr r1, _08075788 @ =sub_80757E8
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075788: .4byte sub_80757E8
+ thumb_func_end sub_8075764
+
+ thumb_func_start sub_807578C
+sub_807578C: @ 807578C
+ push {r4-r6,lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _0807579C
+ movs r0, 0x1
+ b _080757E0
+_0807579C:
+ ldrh r1, [r2, 0x30]
+ ldrh r4, [r2, 0x32]
+ ldrh r6, [r2, 0x34]
+ ldrh r5, [r2, 0x36]
+ adds r0, r6, r1
+ lsls r3, r0, 16
+ lsrs r6, r3, 16
+ adds r0, r5, r4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r0, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080757BE
+ lsrs r0, r3, 20
+ negs r0, r0
+ b _080757C0
+_080757BE:
+ lsrs r0, r3, 20
+_080757C0:
+ strh r0, [r2, 0x24]
+ movs r0, 0x1
+ ands r4, r0
+ cmp r4, 0
+ beq _080757D0
+ lsrs r0, r5, 4
+ negs r0, r0
+ b _080757D2
+_080757D0:
+ lsrs r0, r5, 4
+_080757D2:
+ strh r0, [r2, 0x26]
+ strh r6, [r2, 0x34]
+ strh r5, [r2, 0x36]
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ strh r0, [r2, 0x2E]
+ movs r0, 0
+_080757E0:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807578C
+
+ thumb_func_start sub_80757E8
+sub_80757E8: @ 80757E8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_807578C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080757FC
+ adds r0, r4, 0
+ bl SetCallbackToStoredInData
+_080757FC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80757E8
+
+ thumb_func_start sub_8075804
+sub_8075804: @ 8075804
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ subs r0, r1, r0
+ cmp r0, 0
+ bge _08075818
+ negs r0, r0
+_08075818:
+ lsls r0, 4
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_80756CC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8075804
+
+ thumb_func_start sub_8075830
+sub_8075830: @ 8075830
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ bl sub_8075804
+ ldr r1, _08075854 @ =sub_80757E8
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075854: .4byte sub_80757E8
+ thumb_func_end sub_8075830
+
+ thumb_func_start obj_id_set_rotscale
+obj_id_set_rotscale: @ 8075858
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 16
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r5, _080758D0 @ =0xffff0000
+ lsls r2, 16
+ lsrs r1, 16
+ orrs r1, r2
+ str r1, [sp]
+ ldr r0, [sp, 0x4]
+ ands r0, r5
+ orrs r0, r3
+ str r0, [sp, 0x4]
+ bl sub_80758DC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075894
+ mov r0, sp
+ ldrh r0, [r0]
+ negs r0, r0
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, [sp]
+ ands r1, r5
+ orrs r1, r0
+ str r1, [sp]
+_08075894:
+ ldr r1, _080758D4 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x3]
+ lsls r4, 26
+ lsrs r4, 27
+ add r5, sp, 0x8
+ mov r0, sp
+ adds r1, r5, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ObjAffineSet
+ ldr r0, _080758D8 @ =gOamMatrices
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r5]
+ strh r0, [r4]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x2]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x4]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x6]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080758D0: .4byte 0xffff0000
+_080758D4: .4byte gSprites
+_080758D8: .4byte gOamMatrices
+ thumb_func_end obj_id_set_rotscale
+
+ thumb_func_start sub_80758DC
+sub_80758DC: @ 80758DC
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80758DC
+
+ thumb_func_start sub_80758E0
+sub_80758E0: @ 80758E0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r2, _08075978 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075914
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_08075914:
+ movs r7, 0x3
+ ands r5, r7
+ lsls r2, r5, 2
+ ldrb r1, [r4, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x1]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4, 0x1]
+ lsls r0, 30
+ cmp r0, 0
+ bne _0807595C
+ ldr r0, _0807597C @ =gUnknown_2024018
+ ldr r0, [r0]
+ ldr r1, [r0, 0x4]
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x1F
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r4, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+_0807595C:
+ ldrb r3, [r4, 0x1]
+ orrs r3, r7
+ 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
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075978: .4byte gSprites
+_0807597C: .4byte gUnknown_2024018
+ thumb_func_end sub_80758E0
+
+ thumb_func_start sub_8075980
+sub_8075980: @ 8075980
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r4, 0
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldr r1, _080759D8 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0, 0x1]
+ movs r1, 0x4
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x1
+ orrs r1, r2
+ movs r2, 0xD
+ negs r2, r2
+ ands r1, r2
+ strb r1, [r0, 0x1]
+ adds r3, r0, 0
+ adds r3, 0x2C
+ ldrb r2, [r3]
+ movs r1, 0x7F
+ ands r1, r2
+ strb r1, [r3]
+ ldrb r3, [r0, 0x1]
+ lsrs r1, r3, 6
+ ldrb r2, [r0, 0x3]
+ lsrs r2, 6
+ lsls r3, 30
+ lsrs r3, 30
+ bl CalcCenterToCornerVec
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080759D8: .4byte gSprites
+ thumb_func_end sub_8075980
+
+ thumb_func_start sub_80759DC
+sub_80759DC: @ 80759DC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08075A14 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r2, r1, r2
+ ldrb r0, [r2, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ ldr r1, _08075A18 @ =gOamMatrices
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x4]
+ movs r3, 0x4
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ bge _08075A08
+ negs r0, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+_08075A08:
+ lsls r0, r1, 16
+ asrs r0, 19
+ strh r0, [r2, 0x26]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075A14: .4byte gSprites
+_08075A18: .4byte gOamMatrices
+ thumb_func_end sub_80759DC
+
+ thumb_func_start sub_8075A1C
+sub_8075A1C: @ 8075A1C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r4, r0, 0
+ ldr r0, [sp, 0x28]
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 16
+ lsrs r5, r2, 16
+ lsls r3, 16
+ lsrs r7, r3, 16
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldrb r0, [r4, 0x1]
+ lsls r0, 30
+ lsrs r0, 30
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08075AC2
+ adds r0, r4, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ cmp r6, 0
+ beq _08075A6A
+ ldrb r3, [r4, 0x1]
+ lsrs r1, r3, 6
+ ldrb r2, [r4, 0x3]
+ lsrs r2, 6
+ lsls r3, 30
+ lsrs r3, 30
+ adds r0, r4, 0
+ bl CalcCenterToCornerVec
+_08075A6A:
+ ldr r6, _08075AD0 @ =0xffff0000
+ lsls r0, r7, 16
+ orrs r5, r0
+ str r5, [sp]
+ ldr r0, [sp, 0x4]
+ ands r0, r6
+ mov r1, r8
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ bl sub_80758DC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075A98
+ mov r0, sp
+ ldrh r0, [r0]
+ negs r0, r0
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, [sp]
+ ands r1, r6
+ orrs r1, r0
+ str r1, [sp]
+_08075A98:
+ ldrb r4, [r4, 0x3]
+ lsls r4, 26
+ lsrs r4, 27
+ add r5, sp, 0x8
+ mov r0, sp
+ adds r1, r5, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ObjAffineSet
+ ldr r0, _08075AD4 @ =gOamMatrices
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r5]
+ strh r0, [r4]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x2]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x4]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x6]
+_08075AC2:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075AD0: .4byte 0xffff0000
+_08075AD4: .4byte gOamMatrices
+ thumb_func_end sub_8075A1C
+
+ thumb_func_start sub_8075AD8
+sub_8075AD8: @ 8075AD8
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r3, 0x80
+ lsls r3, 1
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0x1
+ adds r2, r3, 0
+ bl sub_8075A1C
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r3, [r4, 0x1]
+ lsrs r1, r3, 6
+ ldrb r2, [r4, 0x3]
+ lsrs r2, 6
+ lsls r3, 30
+ lsrs r3, 30
+ adds r0, r4, 0
+ bl CalcCenterToCornerVec
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8075AD8
+
+ thumb_func_start ArcTan2_
+ArcTan2_: @ 8075B18
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ bl ArcTan2
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end ArcTan2_
+
+ thumb_func_start sub_8075B30
+sub_8075B30: @ 8075B30
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ bl ArcTan2_
+ lsls r0, 16
+ negs r0, r0
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8075B30
+
+ thumb_func_start sub_8075B48
+sub_8075B48: @ 8075B48
+ push {r4-r7,lr}
+ lsls r1, 24
+ lsls r0, 20
+ lsrs r0, 16
+ cmp r1, 0
+ bne _08075BC4
+ ldr r2, _08075BB8 @ =gPlttBufferUnfaded
+ ldr r1, _08075BBC @ =gPlttBufferFaded
+ lsls r0, 1
+ adds r4, r0, r1
+ adds r5, r0, r2
+ movs r6, 0xF
+_08075B60:
+ ldr r0, [r5]
+ lsls r2, r0, 27
+ lsrs r2, 27
+ lsls r1, r0, 22
+ lsrs r1, 27
+ adds r2, r1
+ lsls r0, 17
+ lsrs r0, 27
+ adds r0, r2
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1F
+ ands r0, r1
+ ldrb r1, [r4]
+ movs r3, 0x20
+ negs r3, r3
+ adds r2, r3, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4]
+ lsls r3, r0, 5
+ ldrh r1, [r4]
+ ldr r7, _08075BC0 @ =0xfffffc1f
+ adds r2, r7, 0
+ ands r1, r2
+ orrs r1, r3
+ strh r1, [r4]
+ lsls r0, 2
+ ldrb r1, [r4, 0x1]
+ movs r3, 0x7D
+ negs r3, r3
+ adds r2, r3, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x1]
+ adds r4, 0x2
+ adds r5, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bge _08075B60
+ b _08075BD4
+ .align 2, 0
+_08075BB8: .4byte gPlttBufferUnfaded
+_08075BBC: .4byte gPlttBufferFaded
+_08075BC0: .4byte 0xfffffc1f
+_08075BC4:
+ lsls r1, r0, 1
+ ldr r0, _08075BDC @ =gPlttBufferUnfaded
+ adds r0, r1, r0
+ ldr r2, _08075BE0 @ =gPlttBufferFaded
+ adds r1, r2
+ ldr r2, _08075BE4 @ =0x04000008
+ bl CpuSet
+_08075BD4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075BDC: .4byte gPlttBufferUnfaded
+_08075BE0: .4byte gPlttBufferFaded
+_08075BE4: .4byte 0x04000008
+ thumb_func_end sub_8075B48
+
+ thumb_func_start sub_8075BE8
+sub_8075BE8: @ 8075BE8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r4, [sp, 0x1C]
+ ldr r5, [sp, 0x20]
+ ldr r6, [sp, 0x24]
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r7, r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r8, r5
+ lsls r6, 24
+ lsrs r6, 24
+ mov r9, r6
+ movs r4, 0
+ cmp r0, 0
+ beq _08075C1C
+ movs r4, 0xE
+_08075C1C:
+ cmp r1, 0
+ beq _08075C2E
+ ldr r0, _08075CB0 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0x10
+ movs r0, 0x1
+ lsls r0, r1
+ orrs r4, r0
+_08075C2E:
+ cmp r2, 0
+ beq _08075C40
+ ldr r0, _08075CB4 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0x10
+ movs r0, 0x1
+ lsls r0, r1
+ orrs r4, r0
+_08075C40:
+ cmp r3, 0
+ beq _08075C64
+ ldr r6, _08075CB0 @ =gBattleAnimAttacker
+ ldrb r0, [r6]
+ movs r5, 0x2
+ eors r0, r5
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075C64
+ ldrb r0, [r6]
+ eors r0, r5
+ adds r1, r0, 0
+ adds r1, 0x10
+ movs r0, 0x1
+ lsls r0, r1
+ orrs r4, r0
+_08075C64:
+ cmp r7, 0
+ beq _08075C88
+ ldr r6, _08075CB4 @ =gBattleAnimTarget
+ ldrb r0, [r6]
+ movs r5, 0x2
+ eors r0, r5
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075C88
+ ldrb r0, [r6]
+ eors r0, r5
+ adds r1, r0, 0
+ adds r1, 0x10
+ movs r0, 0x1
+ lsls r0, r1
+ orrs r4, r0
+_08075C88:
+ mov r0, r8
+ cmp r0, 0
+ beq _08075C94
+ movs r0, 0x80
+ lsls r0, 1
+ orrs r4, r0
+_08075C94:
+ mov r0, r9
+ cmp r0, 0
+ beq _08075CA0
+ movs r0, 0x80
+ lsls r0, 2
+ orrs r4, r0
+_08075CA0:
+ adds r0, r4, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08075CB0: .4byte gBattleAnimAttacker
+_08075CB4: .4byte gBattleAnimTarget
+ thumb_func_end sub_8075BE8
+
+ thumb_func_start sub_8075CB8
+sub_8075CB8: @ 8075CB8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 24
+ lsrs r7, r3, 24
+ movs r4, 0
+ cmp r0, 0
+ beq _08075CF2
+ movs r0, 0
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075CF2
+ movs r0, 0
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r4, 0x1
+ lsls r4, r0
+_08075CF2:
+ cmp r5, 0
+ beq _08075D1E
+ movs r0, 0x2
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075D1E
+ movs r0, 0x2
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ adds r1, 0x10
+ movs r0, 0x1
+ lsls r0, r1
+ orrs r4, r0
+_08075D1E:
+ cmp r6, 0
+ beq _08075D4A
+ movs r0, 0x1
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075D4A
+ movs r0, 0x1
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ adds r1, 0x10
+ movs r0, 0x1
+ lsls r0, r1
+ orrs r4, r0
+_08075D4A:
+ cmp r7, 0
+ beq _08075D76
+ movs r0, 0x3
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075D76
+ movs r0, 0x3
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ adds r1, 0x10
+ movs r0, 0x1
+ lsls r0, r1
+ orrs r4, r0
+_08075D76:
+ adds r0, r4, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8075CB8
+
+ thumb_func_start sub_8075D80
+sub_8075D80: @ 8075D80
+ lsls r0, 24
+ lsrs r0, 24
+ bx lr
+ thumb_func_end sub_8075D80
+
+ thumb_func_start sub_8075D88
+sub_8075D88: @ 8075D88
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8075D88
+
+ thumb_func_start sub_8075D9C
+sub_8075D9C: @ 8075D9C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08075DDA
+ ldr r2, _08075DC8 @ =gBattleAnimArgs
+ movs r3, 0x6
+ ldrsh r0, [r2, r3]
+ movs r1, 0
+ cmp r0, 0
+ bne _08075DB6
+ movs r1, 0x1
+_08075DB6:
+ movs r3, 0x4
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _08075DCC
+ adds r0, r4, 0
+ bl sub_8075160
+ b _08075DD2
+ .align 2, 0
+_08075DC8: .4byte gBattleAnimArgs
+_08075DCC:
+ adds r0, r4, 0
+ bl sub_8075114
+_08075DD2:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _08075DEE
+_08075DDA:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x30
+ ands r0, r1
+ cmp r0, 0
+ beq _08075DEE
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_08075DEE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8075D9C
+
+ thumb_func_start sub_8075DF4
+sub_8075DF4: @ 8075DF4
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r6, _08075E6C @ =gBattleAnimArgs
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0
+ cmp r0, 0
+ bne _08075E0C
+ movs r1, 0x1
+_08075E0C:
+ ldrb r0, [r6, 0xA]
+ movs r7, 0x1
+ cmp r0, 0
+ bne _08075E16
+ movs r7, 0x3
+_08075E16:
+ adds r0, r5, 0
+ bl sub_8075160
+ ldr r0, _08075E70 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075E30
+ ldrh r0, [r6, 0x4]
+ negs r0, r0
+ strh r0, [r6, 0x4]
+_08075E30:
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ ldr r4, _08075E74 @ =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]
+ adds r1, r7, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x6]
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ ldr r0, _08075E78 @ =sub_8075590
+ str r0, [r5, 0x1C]
+ ldr r1, _08075E7C @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075E6C: .4byte gBattleAnimArgs
+_08075E70: .4byte gBattleAnimAttacker
+_08075E74: .4byte gBattleAnimTarget
+_08075E78: .4byte sub_8075590
+_08075E7C: .4byte DestroyAnimSprite
+ thumb_func_end sub_8075DF4
+
+ thumb_func_start sub_8075E80
+sub_8075E80: @ 8075E80
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_8075160
+ ldr r0, _08075EE0 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075EA0
+ ldr r1, _08075EE4 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_08075EA0:
+ ldr r4, _08075EE4 @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r5, _08075EE8 @ =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ 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, 0x3
+ 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, _08075EEC @ =sub_8075EF0
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075EE0: .4byte gBattleAnimAttacker
+_08075EE4: .4byte gBattleAnimArgs
+_08075EE8: .4byte gBattleAnimTarget
+_08075EEC: .4byte sub_8075EF0
+ thumb_func_end sub_8075E80
+
+ thumb_func_start sub_8075EF0
+sub_8075EF0: @ 8075EF0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl AnimateBallThrow
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075F04
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08075F04:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8075EF0
+
+ thumb_func_start sub_8075F0C
+sub_8075F0C: @ 8075F0C
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, _08075F20 @ =gBattleAnimArgs
+ movs r2, 0xC
+ ldrsh r1, [r0, r2]
+ cmp r1, 0
+ bne _08075F24
+ movs r4, 0x1
+ movs r7, 0x3
+ b _08075F28
+ .align 2, 0
+_08075F20: .4byte gBattleAnimArgs
+_08075F24:
+ movs r4, 0
+ movs r7, 0x1
+_08075F28:
+ movs r1, 0xA
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08075F40
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8075160
+ ldr r0, _08075F3C @ =gBattleAnimAttacker
+ b _08075F4A
+ .align 2, 0
+_08075F3C: .4byte gBattleAnimAttacker
+_08075F40:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8075114
+ ldr r0, _08075FA8 @ =gBattleAnimTarget
+_08075F4A:
+ ldrb r6, [r0]
+ ldr r0, _08075FAC @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075F62
+ ldr r1, _08075FB0 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_08075F62:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8075114
+ ldr r4, _08075FB0 @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x2E]
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r4, 0x4]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x6]
+ adds r0, r4
+ strh r0, [r5, 0x36]
+ ldr r0, _08075FB4 @ =sub_8075590
+ str r0, [r5, 0x1C]
+ ldr r1, _08075FB8 @ =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075FA8: .4byte gBattleAnimTarget
+_08075FAC: .4byte gBattleAnimAttacker
+_08075FB0: .4byte gBattleAnimArgs
+_08075FB4: .4byte sub_8075590
+_08075FB8: .4byte DestroyAnimSprite
+ thumb_func_end sub_8075F0C
+
+ thumb_func_start duplicate_obj_of_side_rel2move_in_transparent_mode
+duplicate_obj_of_side_rel2move_in_transparent_mode: @ 8075FBC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xFF
+ beq _08076026
+ movs r6, 0
+ ldr r2, _08076018 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r1, r0, 2
+_08075FD8:
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r4, r0, r2
+ adds r5, r4, 0
+ adds r5, 0x3E
+ ldrb r0, [r5]
+ lsls r0, 31
+ cmp r0, 0
+ bne _0807601C
+ adds r0, r4, 0
+ adds r1, r2
+ movs r2, 0x44
+ bl memcpy
+ ldrb r1, [r4, 0x1]
+ movs r2, 0xD
+ negs r2, r2
+ adds r0, r2, 0
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4, 0x1]
+ ldrb r0, [r5]
+ adds r2, 0x8
+ adds r1, r2, 0
+ ands r0, r1
+ strb r0, [r5]
+ lsls r0, r6, 16
+ asrs r0, 16
+ b _0807602A
+ .align 2, 0
+_08076018: .4byte gSprites
+_0807601C:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x3F
+ bls _08075FD8
+_08076026:
+ movs r0, 0x1
+ negs r0, r0
+_0807602A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end duplicate_obj_of_side_rel2move_in_transparent_mode
+
+ thumb_func_start obj_delete_but_dont_free_vram
+obj_delete_but_dont_free_vram: @ 8076030
+ push {lr}
+ adds r3, r0, 0
+ adds r3, 0x3F
+ ldrb r1, [r3]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r3]
+ bl DestroySprite
+ pop {r0}
+ bx r0
+ thumb_func_end obj_delete_but_dont_free_vram
+
+ thumb_func_start sub_8076048
+sub_8076048: @ 8076048
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0
+ movs r3, 0
+ ldr r2, _080760C0 @ =gBattleAnimArgs
+ movs r0, 0x4
+ ldrsh r1, [r2, r0]
+ movs r4, 0
+ ldrsh r0, [r2, r4]
+ cmp r1, r0
+ ble _08076062
+ movs r3, 0x1
+_08076062:
+ cmp r1, r0
+ bge _08076068
+ ldr r3, _080760C4 @ =0x0000ffff
+_08076068:
+ movs r0, 0x6
+ ldrsh r1, [r2, r0]
+ movs r4, 0x2
+ ldrsh r0, [r2, r4]
+ cmp r1, r0
+ ble _08076076
+ movs r6, 0x1
+_08076076:
+ cmp r1, r0
+ bge _0807607C
+ ldr r6, _080760C4 @ =0x0000ffff
+_0807607C:
+ ldr r0, _080760C8 @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ movs r1, 0
+ strh r1, [r4, 0x8]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r4, 0xA]
+ strh r1, [r4, 0xC]
+ ldrh r0, [r2]
+ strh r0, [r4, 0xE]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r4, 0x10]
+ strh r3, [r4, 0x12]
+ strh r6, [r4, 0x14]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r4, 0x16]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r4, 0x18]
+ ldrh r1, [r2, 0x2]
+ lsls r1, 8
+ ldrh r0, [r2]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r0, _080760CC @ =sub_80760D0
+ str r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080760C0: .4byte gBattleAnimArgs
+_080760C4: .4byte 0x0000ffff
+_080760C8: .4byte gTasks
+_080760CC: .4byte sub_80760D0
+ thumb_func_end sub_8076048
+
+ thumb_func_start sub_80760D0
+sub_80760D0: @ 80760D0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _0807611C @ =gTasks
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ ble _08076164
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08076120
+ ldrh r2, [r4, 0xE]
+ movs r3, 0xE
+ ldrsh r1, [r4, r3]
+ movs r3, 0x16
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ beq _08076134
+ ldrh r0, [r4, 0x12]
+ adds r0, r2, r0
+ strh r0, [r4, 0xE]
+ b _08076134
+ .align 2, 0
+_0807611C: .4byte gTasks
+_08076120:
+ ldrh r2, [r4, 0x10]
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ movs r3, 0x18
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ beq _08076134
+ ldrh r0, [r4, 0x14]
+ adds r0, r2, r0
+ strh r0, [r4, 0x10]
+_08076134:
+ ldrh r1, [r4, 0x10]
+ lsls r1, 8
+ ldrh r0, [r4, 0xE]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _08076164
+ movs r3, 0x10
+ ldrsh r1, [r4, r3]
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _08076164
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_08076164:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80760D0
+
+ thumb_func_start sub_807616C
+sub_807616C: @ 807616C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0807618C @ =gBattleAnimArgs
+ ldrb r0, [r0]
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xFF
+ bne _08076190
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _080761B6
+ .align 2, 0
+_0807618C: .4byte gBattleAnimArgs
+_08076190:
+ ldr r1, _080761BC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, _080761C0 @ =gSprites
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x5]
+ lsrs r1, 4
+ lsls r1, 4
+ ldr r3, _080761C4 @ =0x00000101
+ adds r2, r3, 0
+ adds r1, r2
+ strh r1, [r0, 0x8]
+ bl sub_80761C8
+_080761B6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080761BC: .4byte gTasks
+_080761C0: .4byte gSprites
+_080761C4: .4byte 0x00000101
+ thumb_func_end sub_807616C
+
+ thumb_func_start sub_80761C8
+sub_80761C8: @ 80761C8
+ ldr r3, _080761E8 @ =gBattleAnimArgs
+ ldrh r1, [r3, 0x2]
+ movs r2, 0
+ strh r1, [r0, 0xA]
+ strh r2, [r0, 0xC]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r0, 0xE]
+ strh r2, [r0, 0x10]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r0, 0x12]
+ strh r2, [r0, 0x14]
+ ldrh r1, [r3, 0x8]
+ strh r1, [r0, 0x16]
+ ldr r1, _080761EC @ =sub_80761F0
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_080761E8: .4byte gBattleAnimArgs
+_080761EC: .4byte sub_80761F0
+ thumb_func_end sub_80761C8
+
+ thumb_func_start sub_80761F0
+sub_80761F0: @ 80761F0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _08076248 @ =gTasks
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _08076280
+ movs r0, 0
+ strh r0, [r4, 0x10]
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0807624C
+ ldrh r2, [r4, 0xC]
+ adds r2, 0x1
+ strh r2, [r4, 0xC]
+ ldrh r0, [r4, 0x8]
+ lsls r2, 24
+ lsrs r2, 24
+ ldrh r3, [r4, 0xA]
+ movs r1, 0xF
+ bl BlendPalette
+ movs r2, 0xC
+ ldrsh r1, [r4, r2]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _08076280
+ movs r0, 0x1
+ strh r0, [r4, 0x14]
+ b _08076280
+ .align 2, 0
+_08076248: .4byte gTasks
+_0807624C:
+ ldrh r2, [r4, 0xC]
+ subs r2, 0x1
+ strh r2, [r4, 0xC]
+ ldrh r0, [r4, 0x8]
+ lsls r2, 24
+ lsrs r2, 24
+ ldrh r3, [r4, 0xA]
+ movs r1, 0xF
+ bl BlendPalette
+ movs r0, 0xC
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ bne _08076280
+ ldrh r0, [r4, 0x16]
+ subs r0, 0x1
+ strh r0, [r4, 0x16]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0807627A
+ strh r1, [r4, 0x10]
+ strh r1, [r4, 0x14]
+ b _08076280
+_0807627A:
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_08076280:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80761F0
+
+ thumb_func_start sub_8076288
+sub_8076288: @ 8076288
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080762A8 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ bne _080762AC
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _080762C2
+ .align 2, 0
+_080762A8: .4byte gBattleAnimArgs
+_080762AC:
+ ldr r1, _080762C8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ lsls r1, r2, 4
+ ldr r2, _080762CC @ =0x00000101
+ adds r1, r2
+ strh r1, [r0, 0x8]
+ bl sub_80761C8
+_080762C2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080762C8: .4byte gTasks
+_080762CC: .4byte 0x00000101
+ thumb_func_end sub_8076288
+
+ thumb_func_start sub_80762D0
+sub_80762D0: @ 80762D0
+ push {r4,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r1, 0
+ strh r1, [r3, 0x16]
+ strh r1, [r3, 0x18]
+ strh r1, [r3, 0x1A]
+ strh r4, [r3, 0x26]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r3, 0x1C]
+ strh r0, [r3, 0x1E]
+ strh r1, [r3, 0x20]
+ adds r0, r3, 0
+ adds r0, 0x22
+ adds r3, 0x24
+ adds r1, r3, 0
+ bl sub_80765C0
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80758E0
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80762D0
+
+ thumb_func_start sub_8076308
+sub_8076308: @ 8076308
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _080763A8 @ =gUnknown_2037F28
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ bl sub_80765C8
+ movs r3, 0x16
+ ldrsh r1, [r4, r3]
+ lsls r1, 3
+ adds r1, r0, r1
+ str r1, [r5]
+ movs r6, 0
+ ldrsh r2, [r1, r6]
+ ldr r0, _080763AC @ =0x00007ffe
+ cmp r2, r0
+ beq _080763B0
+ cmp r2, r0
+ bgt _08076410
+ subs r0, 0x1
+ cmp r2, r0
+ beq _080763B6
+ ldrb r0, [r1, 0x5]
+ cmp r0, 0
+ bne _08076356
+ ldrh r0, [r1]
+ strh r0, [r4, 0x1C]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x1E]
+ ldrb r0, [r1, 0x4]
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+ adds r0, r1, 0
+ adds r0, 0x8
+ str r0, [r5]
+_08076356:
+ ldr r1, [r5]
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x1C]
+ adds r0, r2
+ strh r0, [r4, 0x1C]
+ ldrh r0, [r1, 0x2]
+ ldrh r3, [r4, 0x1E]
+ adds r0, r3
+ strh r0, [r4, 0x1E]
+ ldrh r0, [r4, 0x20]
+ ldrb r1, [r1, 0x4]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0x1C
+ ldrsh r1, [r4, r6]
+ movs r3, 0x1E
+ ldrsh r2, [r4, r3]
+ ldrh r3, [r4, 0x20]
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8076440
+ ldrh r0, [r4, 0x18]
+ adds r0, 0x1
+ strh r0, [r4, 0x18]
+ lsls r0, 16
+ asrs r0, 16
+ ldr r1, [r5]
+ ldrb r1, [r1, 0x5]
+ cmp r0, r1
+ blt _08076436
+ movs r0, 0
+ strh r0, [r4, 0x18]
+ b _08076408
+ .align 2, 0
+_080763A8: .4byte gUnknown_2037F28
+_080763AC: .4byte 0x00007ffe
+_080763B0:
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x16]
+ b _08076436
+_080763B6:
+ ldrh r2, [r1, 0x2]
+ movs r6, 0x2
+ ldrsh r0, [r1, r6]
+ cmp r0, 0
+ beq _08076408
+ ldrh r1, [r4, 0x1A]
+ movs r3, 0x1A
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080763D6
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x1A]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080763D8
+ b _08076408
+_080763D6:
+ strh r2, [r4, 0x1A]
+_080763D8:
+ movs r6, 0x16
+ ldrsh r0, [r4, r6]
+ cmp r0, 0
+ beq _08076436
+ ldr r3, _08076400 @ =gUnknown_2037F28
+ ldr r5, _08076404 @ =0x00007ffd
+_080763E4:
+ ldrh r2, [r4, 0x16]
+ subs r1, r2, 0x1
+ strh r1, [r4, 0x16]
+ ldr r0, [r3]
+ subs r0, 0x8
+ str r0, [r3]
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r0, r5
+ beq _08076434
+ lsls r0, r1, 16
+ cmp r0, 0
+ bne _080763E4
+ b _08076436
+ .align 2, 0
+_08076400: .4byte gUnknown_2037F28
+_08076404: .4byte 0x00007ffd
+_08076408:
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+ b _08076436
+_08076410:
+ ldr r2, _08076430 @ =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]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8075980
+ movs r0, 0
+ b _08076438
+ .align 2, 0
+_08076430: .4byte gSprites
+_08076434:
+ strh r2, [r4, 0x16]
+_08076436:
+ movs r0, 0x1
+_08076438:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8076308
+
+ thumb_func_start sub_8076440
+sub_8076440: @ 8076440
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80764EC
+ lsls r0, 16
+ lsrs r0, 15
+ movs r1, 0x40
+ subs r5, r1, r0
+ ldr r1, _0807648C @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrb r1, [r4, 0x3]
+ lsls r1, 26
+ lsrs r1, 27
+ lsls r0, r5, 8
+ ldr r2, _08076490 @ =gOamMatrices
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x6
+ ldrsh r1, [r1, r2]
+ bl __divsi3
+ cmp r0, 0x80
+ ble _0807647C
+ movs r0, 0x80
+_0807647C:
+ subs r0, r5, r0
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x26]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807648C: .4byte gSprites
+_08076490: .4byte gOamMatrices
+ thumb_func_end sub_8076440
+
+ thumb_func_start sub_8076494
+sub_8076494: @ 8076494
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r0, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80764EC
+ lsls r0, 16
+ lsrs r0, 15
+ movs r1, 0x40
+ subs r5, r1, r0
+ ldr r1, _080764E4 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrb r1, [r4, 0x3]
+ lsls r1, 26
+ lsrs r1, 27
+ lsls r0, r5, 8
+ ldr r2, _080764E8 @ =gOamMatrices
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x6
+ ldrsh r1, [r1, r2]
+ bl __divsi3
+ cmp r0, 0x80
+ ble _080764D4
+ movs r0, 0x80
+_080764D4:
+ subs r0, r5, r0
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x26]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080764E4: .4byte gSprites
+_080764E8: .4byte gOamMatrices
+ thumb_func_end sub_8076494
+
+ thumb_func_start sub_80764EC
+sub_80764EC: @ 80764EC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _08076548 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r1, _0807654C @ =gBattlerSpriteIds
+ ldr r6, _08076550 @ =gBattlerPartyIndexes
+_08076508:
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _080765AC
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08076568
+ ldr r0, _08076554 @ =gUnknown_2024018
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r5, 2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _0807655C
+ lsls r0, r4, 1
+ adds r0, r6
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08076558 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ b _0807655E
+ .align 2, 0
+_08076548: .4byte gSprites
+_0807654C: .4byte gBattlerSpriteIds
+_08076550: .4byte gBattlerPartyIndexes
+_08076554: .4byte gUnknown_2024018
+_08076558: .4byte gPlayerParty
+_0807655C:
+ ldrh r1, [r1, 0x2]
+_0807655E:
+ ldr r0, _08076564 @ =gUnknown_8235E6C
+ b _080765A0
+ .align 2, 0
+_08076564: .4byte gUnknown_8235E6C
+_08076568:
+ ldr r0, _08076594 @ =gUnknown_2024018
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r5, 2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _0807659C
+ lsls r0, r4, 1
+ adds r0, r6
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08076598 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ b _0807659E
+ .align 2, 0
+_08076594: .4byte gUnknown_2024018
+_08076598: .4byte gEnemyParty
+_0807659C:
+ ldrh r1, [r1, 0x2]
+_0807659E:
+ ldr r0, _080765A8 @ =gUnknown_82349CC
+_080765A0:
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ b _080765B8
+ .align 2, 0
+_080765A8: .4byte gUnknown_82349CC
+_080765AC:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _08076508
+ movs r0, 0x40
+_080765B8:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80764EC
+
+ thumb_func_start sub_80765C0
+sub_80765C0: @ 80765C0
+ strh r2, [r0]
+ asrs r2, 16
+ strh r2, [r1]
+ bx lr
+ thumb_func_end sub_80765C0
+
+ thumb_func_start sub_80765C8
+sub_80765C8: @ 80765C8
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ orrs r0, r1
+ bx lr
+ thumb_func_end sub_80765C8
+
+ thumb_func_start sub_80765D4
+sub_80765D4: @ 80765D4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ mov r8, r0
+ adds r5, r3, 0
+ ldr r0, [sp, 0x14]
+ ldr r4, [sp, 0x18]
+ ldr r6, [sp, 0x1C]
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r6, 16
+ lsrs r6, 16
+ mov r3, r8
+ strh r6, [r3, 0x18]
+ strh r1, [r3, 0x26]
+ strh r2, [r3, 0x1A]
+ strh r5, [r3, 0x1C]
+ strh r0, [r3, 0x22]
+ strh r4, [r3, 0x24]
+ lsls r0, 16
+ asrs r0, 16
+ lsls r2, 16
+ asrs r2, 16
+ subs r0, r2
+ adds r1, r6, 0
+ bl __divsi3
+ mov r1, r8
+ strh r0, [r1, 0x1E]
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ subs r4, r5
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl __divsi3
+ mov r3, r8
+ strh r0, [r3, 0x20]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80765D4
+
+ thumb_func_start sub_8076640
+sub_8076640: @ 8076640
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x18]
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _08076652
+ movs r0, 0
+ b _080766AE
+_08076652:
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x18]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0807666C
+ ldrh r0, [r4, 0x1E]
+ ldrh r3, [r4, 0x1A]
+ adds r0, r3
+ strh r0, [r4, 0x1A]
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r4, 0x1C]
+ adds r0, r1
+ b _08076672
+_0807666C:
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x1A]
+ ldrh r0, [r4, 0x24]
+_08076672:
+ strh r0, [r4, 0x1C]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x1A
+ ldrsh r1, [r4, r2]
+ movs r3, 0x1C
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl obj_id_set_rotscale
+ movs r0, 0x18
+ ldrsh r3, [r4, r0]
+ cmp r3, 0
+ beq _0807669C
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8076440
+ b _080766AC
+_0807669C:
+ ldr r2, _080766B4 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r3, [r0, 0x26]
+_080766AC:
+ ldrb r0, [r4, 0x18]
+_080766AE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080766B4: .4byte gSprites
+ thumb_func_end sub_8076640
+
+ thumb_func_start sub_80766B8
+sub_80766B8: @ 80766B8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080766E4 @ =gUnknown_2037EFE
+ ldrb r0, [r0]
+ movs r1, 0
+ cmp r0, 0x1E
+ bls _080766D6
+ movs r1, 0x1
+ cmp r0, 0x64
+ bls _080766D6
+ movs r1, 0x3
+ cmp r0, 0xC8
+ bhi _080766D6
+ movs r1, 0x2
+_080766D6:
+ ldr r0, _080766E8 @ =gBattleAnimArgs
+ strh r1, [r0, 0xE]
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080766E4: .4byte gUnknown_2037EFE
+_080766E8: .4byte gBattleAnimArgs
+ thumb_func_end sub_80766B8
+
+ thumb_func_start sub_80766EC
+sub_80766EC: @ 80766EC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r7, r4, 0
+ ldr r6, _080767E0 @ =gBattleAnimTarget
+ ldrb r0, [r6]
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807672C
+ ldr r2, _080767E4 @ =gSprites
+ ldr r1, _080767E8 @ =gBattlerSpriteIds
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0x3
+ adds r2, r4, 0
+ ands r2, r0
+ lsls r2, 2
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+_0807672C:
+ ldr r0, _080767EC @ =gBattleAnimAttacker
+ mov r8, r0
+ ldrb r0, [r0]
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076764
+ ldr r2, _080767E4 @ =gSprites
+ ldr r1, _080767E8 @ =gBattlerSpriteIds
+ mov r3, r8
+ ldrb r0, [r3]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0x3
+ adds r2, r4, 0
+ ands r2, r0
+ lsls r2, 2
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+_08076764:
+ ldrb r0, [r6]
+ movs r5, 0x2
+ eors r0, r5
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807679C
+ ldr r2, _080767E4 @ =gSprites
+ ldr r1, _080767E8 @ =gBattlerSpriteIds
+ ldrb r0, [r6]
+ eors r0, r5
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0x3
+ adds r2, r4, 0
+ ands r2, r0
+ lsls r2, 2
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+_0807679C:
+ mov r1, r8
+ ldrb r0, [r1]
+ eors r0, r5
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080767D4
+ ldr r2, _080767E4 @ =gSprites
+ ldr r1, _080767E8 @ =gBattlerSpriteIds
+ mov r3, r8
+ ldrb r0, [r3]
+ eors r0, r5
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0x3
+ ands r7, r0
+ lsls r3, r7, 2
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+_080767D4:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080767E0: .4byte gBattleAnimTarget
+_080767E4: .4byte gSprites
+_080767E8: .4byte gBattlerSpriteIds
+_080767EC: .4byte gBattleAnimAttacker
+ thumb_func_end sub_80766EC
+
+ thumb_func_start sub_80767F0
+sub_80767F0: @ 80767F0
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r0, _08076850 @ =gBattlersCount
+ ldrb r0, [r0]
+ cmp r5, r0
+ bge _0807684A
+ ldr r6, _08076854 @ =gSprites
+_080767FE:
+ lsls r0, r5, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076840
+ adds r0, r4, 0
+ bl sub_807685C
+ ldr r3, _08076858 @ =gBattlerSpriteIds
+ adds r3, r5, r3
+ ldrb r2, [r3]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r6
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r2, [r0, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r2, r1
+ movs r1, 0x8
+ orrs r2, r1
+ strb r2, [r0, 0x5]
+_08076840:
+ adds r5, 0x1
+ ldr r0, _08076850 @ =gBattlersCount
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _080767FE
+_0807684A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076850: .4byte gBattlersCount
+_08076854: .4byte gSprites
+_08076858: .4byte gBattlerSpriteIds
+ thumb_func_end sub_80767F0
+
+ thumb_func_start sub_807685C
+sub_807685C: @ 807685C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBattlerPosition
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1E
+ cmp r0, 0
+ beq _0807687E
+ movs r1, 0x14
+ cmp r0, 0x2
+ beq _0807687E
+ movs r1, 0x32
+ cmp r0, 0x1
+ bne _0807687E
+ movs r1, 0x28
+_0807687E:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807685C
+
+ thumb_func_start sub_8076884
+sub_8076884: @ 8076884
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBattlerPosition
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0807689A
+ cmp r0, 0x3
+ bne _0807689E
+_0807689A:
+ movs r0, 0x2
+ b _080768A0
+_0807689E:
+ movs r0, 0x1
+_080768A0:
+ movs r1, 0x4
+ bl sub_80BC30C
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8076884
+
+ thumb_func_start sub_80768B0
+sub_80768B0: @ 80768B0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBattlerPosition
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080768C6
+ cmp r0, 0x3
+ bne _080768CA
+_080768C6:
+ movs r0, 0x2
+ b _080768CC
+_080768CA:
+ movs r0, 0x1
+_080768CC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80768B0
+
+ thumb_func_start sub_80768D0
+sub_80768D0: @ 80768D0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ ldr r4, [sp, 0x30]
+ ldr r5, [sp, 0x34]
+ ldr r6, [sp, 0x38]
+ mov r8, r6
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 16
+ lsrs r3, 16
+ mov r10, r3
+ lsls r4, 16
+ lsrs r4, 16
+ str r4, [sp, 0x4]
+ lsls r5, 24
+ lsrs r5, 24
+ str r5, [sp, 0x8]
+ lsls r0, r7, 3
+ ldr r1, _080769B0 @ =gUnknown_83AE084
+ adds r0, r1
+ bl LoadSpriteSheet
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0xC]
+ ldr r1, _080769B4 @ =gUnknown_83AE054
+ lsls r0, r7, 1
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ bl AllocSpritePalette
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080769B8 @ =gMonSpritesGfxPtr
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0807694E
+ movs r1, 0xBE
+ lsls r1, 1
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0807694E
+ movs r0, 0x80
+ lsls r0, 6
+ bl AllocZeroed
+ ldr r1, [r4]
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r1, r2
+ str r0, [r1]
+_0807694E:
+ mov r3, r9
+ cmp r3, 0
+ bne _080769EC
+ adds r0, r6, 0
+ ldr r1, [sp, 0x3C]
+ mov r2, r8
+ bl GetFrontSpritePalFromSpeciesAndPersonality
+ lsls r1, r5, 20
+ movs r2, 0x80
+ lsls r2, 17
+ adds r1, r2
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r3, [sp, 0x44]
+ cmp r3, 0x1
+ beq _0807699A
+ ldr r0, [sp, 0x40]
+ lsls r1, r0, 24
+ lsrs r1, 24
+ movs r0, 0x5
+ bl sub_804455C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0807699A
+ ldr r0, _080769BC @ =gUnknown_2024018
+ ldr r0, [r0]
+ ldr r1, [r0]
+ ldr r2, [sp, 0x40]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0
+ beq _080769C4
+_0807699A:
+ lsls r0, r6, 3
+ ldr r1, _080769C0 @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, _080769B8 @ =gMonSpritesGfxPtr
+ ldr r1, [r1]
+ movs r3, 0xBE
+ lsls r3, 1
+ adds r1, r3
+ ldr r1, [r1]
+ movs r2, 0x1
+ b _08076A46
+ .align 2, 0
+_080769B0: .4byte gUnknown_83AE084
+_080769B4: .4byte gUnknown_83AE054
+_080769B8: .4byte gMonSpritesGfxPtr
+_080769BC: .4byte gUnknown_2024018
+_080769C0: .4byte gMonFrontPicTable
+_080769C4:
+ lsls r0, r6, 3
+ ldr r1, _080769E4 @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, _080769E8 @ =gMonSpritesGfxPtr
+ ldr r1, [r1]
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r1, r2
+ ldr r1, [r1]
+ movs r2, 0x1
+ str r2, [sp]
+ adds r2, r6, 0
+ mov r3, r8
+ bl LoadSpecialPokePic
+ b _08076A7C
+ .align 2, 0
+_080769E4: .4byte gMonFrontPicTable
+_080769E8: .4byte gMonSpritesGfxPtr
+_080769EC:
+ adds r0, r6, 0
+ ldr r1, [sp, 0x3C]
+ mov r2, r8
+ bl GetFrontSpritePalFromSpeciesAndPersonality
+ lsls r1, r5, 20
+ movs r3, 0x80
+ lsls r3, 17
+ adds r1, r3
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r0, [sp, 0x44]
+ cmp r0, 0x1
+ beq _08076A32
+ ldr r2, [sp, 0x40]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ movs r0, 0x5
+ bl sub_804455C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08076A32
+ ldr r0, _08076A54 @ =gUnknown_2024018
+ ldr r0, [r0]
+ ldr r1, [r0]
+ ldr r3, [sp, 0x40]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldrh r2, [r0, 0x2]
+ cmp r2, 0
+ beq _08076A60
+_08076A32:
+ lsls r0, r6, 3
+ ldr r1, _08076A58 @ =gMonBackPicTable
+ adds r0, r1
+ ldr r1, _08076A5C @ =gMonSpritesGfxPtr
+ ldr r1, [r1]
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r1, r2
+ ldr r1, [r1]
+ movs r2, 0
+_08076A46:
+ str r2, [sp]
+ adds r2, r6, 0
+ mov r3, r8
+ bl LoadSpecialPokePic_DontHandleDeoxys
+ b _08076A7C
+ .align 2, 0
+_08076A54: .4byte gUnknown_2024018
+_08076A58: .4byte gMonBackPicTable
+_08076A5C: .4byte gMonSpritesGfxPtr
+_08076A60:
+ lsls r0, r6, 3
+ ldr r1, _08076AC8 @ =gMonBackPicTable
+ adds r0, r1
+ ldr r1, _08076ACC @ =gMonSpritesGfxPtr
+ ldr r1, [r1]
+ movs r3, 0xBE
+ lsls r3, 1
+ adds r1, r3
+ ldr r1, [r1]
+ str r2, [sp]
+ adds r2, r6, 0
+ mov r3, r8
+ bl LoadSpecialPokePic
+_08076A7C:
+ ldr r5, _08076ACC @ =gMonSpritesGfxPtr
+ ldr r0, [r5]
+ movs r4, 0xBE
+ lsls r4, 1
+ adds r0, r4
+ ldr r0, [r0]
+ ldr r2, [sp, 0xC]
+ lsls r1, r2, 5
+ ldr r3, _08076AD0 @ =0x06010000
+ adds r1, r3
+ movs r2, 0x80
+ lsls r2, 4
+ movs r3, 0x1
+ bl RequestDma3Copy
+ ldr r0, [r5]
+ adds r0, r4
+ ldr r0, [r0]
+ bl Free
+ ldr r0, [r5]
+ adds r0, r4
+ movs r1, 0
+ str r1, [r0]
+ mov r0, r9
+ cmp r0, 0
+ bne _08076ADC
+ lsls r0, r7, 1
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _08076AD4 @ =gUnknown_83AE054
+ adds r0, r1
+ mov r2, r10
+ lsls r1, r2, 16
+ asrs r1, 16
+ ldr r3, _08076AD8 @ =gUnknown_82349CC
+ b _08076AEE
+ .align 2, 0
+_08076AC8: .4byte gMonBackPicTable
+_08076ACC: .4byte gMonSpritesGfxPtr
+_08076AD0: .4byte 0x06010000
+_08076AD4: .4byte gUnknown_83AE054
+_08076AD8: .4byte gUnknown_82349CC
+_08076ADC:
+ lsls r0, r7, 1
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _08076B18 @ =gUnknown_83AE054
+ adds r0, r1
+ mov r2, r10
+ lsls r1, r2, 16
+ asrs r1, 16
+ ldr r3, _08076B1C @ =gUnknown_8235E6C
+_08076AEE:
+ lsls r2, r6, 2
+ adds r2, r3
+ ldrb r2, [r2, 0x1]
+ ldr r3, [sp, 0x4]
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ ldr r3, [sp, 0x8]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08076B18: .4byte gUnknown_83AE054
+_08076B1C: .4byte gUnknown_8235E6C
+ thumb_func_end sub_80768D0
+
+ thumb_func_start sub_8076B20
+sub_8076B20: @ 8076B20
+ push {lr}
+ bl DestroySpriteAndFreeResources
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8076B20
+
+ thumb_func_start sub_8076B2C
+sub_8076B2C: @ 8076B2C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08076C08
+ ldr r0, _08076B88 @ =gUnknown_2024018
+ ldr r0, [r0]
+ ldr r0, [r0]
+ mov r1, r8
+ lsls r2, r1, 2
+ adds r1, r2, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _08076B94
+ ldr r0, _08076B8C @ =gBattlerPartyIndexes
+ mov r1, r8
+ lsls r4, r1, 1
+ adds r4, r0
+ ldrh r0, [r4]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _08076B90 @ =gPlayerParty
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldrh r0, [r4]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0
+ bl GetMonData
+ adds r2, r0, 0
+ b _08076B9C
+ .align 2, 0
+_08076B88: .4byte gUnknown_2024018
+_08076B8C: .4byte gBattlerPartyIndexes
+_08076B90: .4byte gPlayerParty
+_08076B94:
+ ldrh r7, [r1, 0x2]
+ ldr r0, _08076BD4 @ =gUnknown_2024008
+ adds r0, r2, r0
+ ldr r2, [r0]
+_08076B9C:
+ cmp r7, 0xC9
+ bne _08076BEC
+ movs r0, 0xC0
+ lsls r0, 18
+ ands r0, r2
+ lsrs r0, 18
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r2
+ lsrs r1, 12
+ orrs r0, r1
+ movs r1, 0xC0
+ lsls r1, 2
+ ands r1, r2
+ lsrs r1, 6
+ orrs r0, r1
+ movs r1, 0x3
+ ands r1, r2
+ orrs r0, r1
+ movs r1, 0x1C
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ bne _08076BD8
+ movs r0, 0xC9
+ b _08076BE2
+ .align 2, 0
+_08076BD4: .4byte gUnknown_2024008
+_08076BD8:
+ movs r1, 0xCE
+ lsls r1, 1
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+_08076BE2:
+ lsls r1, r0, 2
+ ldr r0, _08076BE8 @ =gUnknown_8235E6C
+ b _08076CDC
+ .align 2, 0
+_08076BE8: .4byte gUnknown_8235E6C
+_08076BEC:
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r7, r0
+ bls _08076BFC
+ ldr r4, _08076BF8 @ =gUnknown_8235E6C
+ b _08076CDE
+ .align 2, 0
+_08076BF8: .4byte gUnknown_8235E6C
+_08076BFC:
+ lsls r1, r7, 2
+ ldr r0, _08076C04 @ =gUnknown_8235E6C
+ b _08076CDC
+ .align 2, 0
+_08076C04: .4byte gUnknown_8235E6C
+_08076C08:
+ ldr r0, _08076C48 @ =gUnknown_2024018
+ ldr r0, [r0]
+ ldr r0, [r0]
+ mov r1, r8
+ lsls r2, r1, 2
+ adds r1, r2, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _08076C54
+ ldr r0, _08076C4C @ =gBattlerPartyIndexes
+ mov r1, r8
+ lsls r4, r1, 1
+ adds r4, r0
+ ldrh r0, [r4]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _08076C50 @ =gEnemyParty
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldrh r0, [r4]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0
+ bl GetMonData
+ adds r2, r0, 0
+ b _08076C5C
+ .align 2, 0
+_08076C48: .4byte gUnknown_2024018
+_08076C4C: .4byte gBattlerPartyIndexes
+_08076C50: .4byte gEnemyParty
+_08076C54:
+ ldrh r7, [r1, 0x2]
+ ldr r0, _08076C94 @ =gUnknown_2024008
+ adds r0, r2, r0
+ ldr r2, [r0]
+_08076C5C:
+ cmp r7, 0xC9
+ bne _08076CA6
+ movs r0, 0xC0
+ lsls r0, 18
+ ands r0, r2
+ lsrs r0, 18
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r2
+ lsrs r1, 12
+ orrs r0, r1
+ movs r1, 0xC0
+ lsls r1, 2
+ ands r1, r2
+ lsrs r1, 6
+ orrs r0, r1
+ movs r1, 0x3
+ ands r1, r2
+ orrs r0, r1
+ movs r1, 0x1C
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ bne _08076C98
+ movs r0, 0xC9
+ b _08076CA2
+ .align 2, 0
+_08076C94: .4byte gUnknown_2024008
+_08076C98:
+ movs r1, 0xCE
+ lsls r1, 1
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+_08076CA2:
+ lsls r1, r0, 2
+ b _08076CDA
+_08076CA6:
+ ldr r0, _08076CBC @ =0x00000181
+ cmp r7, r0
+ bne _08076CC8
+ ldr r0, _08076CC0 @ =gBattleMonForms
+ add r0, r8
+ ldrb r0, [r0]
+ lsls r0, 2
+ ldr r1, _08076CC4 @ =gUnknown_83AE03C
+ adds r4, r0, r1
+ b _08076CDE
+ .align 2, 0
+_08076CBC: .4byte 0x00000181
+_08076CC0: .4byte gBattleMonForms
+_08076CC4: .4byte gUnknown_83AE03C
+_08076CC8:
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r7, r0
+ bls _08076CD8
+ ldr r4, _08076CD4 @ =gUnknown_82349CC
+ b _08076CDE
+ .align 2, 0
+_08076CD4: .4byte gUnknown_82349CC
+_08076CD8:
+ lsls r1, r7, 2
+_08076CDA:
+ ldr r0, _08076CF0 @ =gUnknown_82349CC
+_08076CDC:
+ adds r4, r1, r0
+_08076CDE:
+ mov r0, r9
+ cmp r0, 0x6
+ bhi _08076D8E
+ lsls r0, 2
+ ldr r1, _08076CF4 @ =_08076CF8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08076CF0: .4byte gUnknown_82349CC
+_08076CF4: .4byte _08076CF8
+ .align 2, 0
+_08076CF8:
+ .4byte _08076D14
+ .4byte _08076D1E
+ .4byte _08076D4A
+ .4byte _08076D62
+ .4byte _08076D26
+ .4byte _08076D38
+ .4byte _08076D7A
+_08076D14:
+ ldrb r1, [r4]
+ movs r0, 0xF
+ ands r0, r1
+ lsls r0, 3
+ b _08076D90
+_08076D1E:
+ ldrb r0, [r4]
+ lsrs r0, 4
+ lsls r0, 3
+ b _08076D90
+_08076D26:
+ mov r0, r8
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r4]
+ lsrs r1, 4
+ b _08076D5C
+_08076D38:
+ mov r0, r8
+ movs r1, 0x2
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r4]
+ lsrs r1, 4
+ b _08076D74
+_08076D4A:
+ mov r0, r8
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r2, [r4]
+ movs r1, 0xF
+ ands r1, r2
+_08076D5C:
+ lsls r1, 2
+ subs r0, r1
+ b _08076D90
+_08076D62:
+ mov r0, r8
+ movs r1, 0x3
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r2, [r4]
+ movs r1, 0xF
+ ands r1, r2
+_08076D74:
+ lsls r1, 2
+ adds r0, r1
+ b _08076D90
+_08076D7A:
+ mov r0, r8
+ movs r1, 0x1
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1F
+ ldrb r1, [r4, 0x1]
+ subs r0, r1
+ b _08076D90
+_08076D8E:
+ movs r0, 0
+_08076D90:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8076B2C
+
+ thumb_func_start sub_8076D9C
+sub_8076D9C: @ 8076D9C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r9, r2
+ mov r10, r3
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ cmp r1, 0
+ bne _08076DBA
+ movs r5, 0
+ movs r6, 0x1
+ b _08076DBE
+_08076DBA:
+ movs r5, 0x2
+ movs r6, 0x3
+_08076DBE:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r7, r0, 24
+ bl sub_8075290
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076E06
+ movs r0, 0x2
+ eors r4, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_8074480
+ lsls r0, 24
+ lsrs r3, r0, 24
+ mov r0, r8
+ lsls r1, r0, 16
+ lsls r2, r7, 16
+ b _08076E12
+_08076E06:
+ mov r0, r8
+ lsls r1, r0, 16
+ lsrs r5, r1, 16
+ lsls r0, r7, 16
+ lsrs r3, r0, 16
+ adds r2, r0, 0
+_08076E12:
+ asrs r0, r1, 16
+ adds r0, r5
+ asrs r0, 1
+ mov r1, r9
+ strh r0, [r1]
+ asrs r0, r2, 16
+ adds r0, r3
+ asrs r0, 1
+ mov r1, r10
+ strh r0, [r1]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8076D9C
+
+ thumb_func_start sub_8076E34
+sub_8076E34: @ 8076E34
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x4
+ lsls r6, r1, 24
+ lsrs r6, 24
+ ldr r0, _08076ECC @ =SpriteCallbackDummy
+ mov r10, r0
+ bl CreateInvisibleSpriteWithCallback
+ mov r8, r0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _08076ED0 @ =gSprites
+ mov r9, r0
+ mov r0, r8
+ lsls r3, r0, 4
+ add r3, r8
+ lsls r3, 2
+ mov r0, r9
+ adds r5, r3, r0
+ lsls r4, r6, 4
+ adds r4, r6
+ lsls r4, 2
+ add r4, r9
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x44
+ str r3, [sp]
+ bl memcpy
+ adds r2, r5, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r2, [r5, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r5, 0x5]
+ ldrb r0, [r5, 0x1]
+ ands r1, r0
+ movs r0, 0x8
+ orrs r1, r0
+ strb r1, [r5, 0x1]
+ ldrh r1, [r4, 0x4]
+ lsls r1, 22
+ lsrs r1, 22
+ ldrh r2, [r5, 0x4]
+ ldr r0, _08076ED4 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ movs r0, 0x1C
+ add r9, r0
+ ldr r3, [sp]
+ add r3, r9
+ mov r0, r10
+ str r0, [r3]
+ mov r0, r8
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08076ECC: .4byte SpriteCallbackDummy
+_08076ED0: .4byte gSprites
+_08076ED4: .4byte 0xfffffc00
+ thumb_func_end sub_8076E34
+
+ thumb_func_start sub_8076ED8
+sub_8076ED8: @ 8076ED8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8074FCC
+ ldr r0, _08076F10 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076F18
+ ldr r2, _08076F14 @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x6]
+ negs r0, r0
+ strh r0, [r2, 0x6]
+ adds r3, r4, 0
+ adds r3, 0x3F
+ ldrb r0, [r3]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r3]
+ adds r1, r2, 0
+ b _08076F22
+ .align 2, 0
+_08076F10: .4byte gBattleAnimAttacker
+_08076F14: .4byte gBattleAnimArgs
+_08076F18:
+ ldr r1, _08076F4C @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+_08076F22:
+ 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]
+ ldr r1, _08076F50 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _08076F54 @ =sub_8074E70
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076F4C: .4byte gBattleAnimArgs
+_08076F50: .4byte move_anim_8074EE0
+_08076F54: .4byte sub_8074E70
+ thumb_func_end sub_8076ED8
+
+ thumb_func_start sub_8076F58
+sub_8076F58: @ 8076F58
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _08076F80 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076F88
+ ldr r2, _08076F84 @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ movs r1, 0x6
+ ldrsh r0, [r2, r1]
+ negs r0, r0
+ strh r0, [r2, 0x6]
+ adds r1, r2, 0
+ b _08076F92
+ .align 2, 0
+_08076F80: .4byte gBattleAnimAttacker
+_08076F84: .4byte gBattleAnimArgs
+_08076F88:
+ ldr r1, _08076FC4 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+_08076F92:
+ 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 StartSpriteAnim
+ ldr r1, _08076FC8 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, _08076FCC @ =sub_8074E70
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076FC4: .4byte gBattleAnimArgs
+_08076FC8: .4byte move_anim_8074EE0
+_08076FCC: .4byte sub_8074E70
+ thumb_func_end sub_8076F58
+
+ thumb_func_start sub_8076FD0
+sub_8076FD0: @ 8076FD0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8074FCC
+ ldr r0, _08076FF4 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076FFC
+ ldr r0, _08076FF8 @ =gBattleAnimArgs
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ b _08077008
+ .align 2, 0
+_08076FF4: .4byte gBattleAnimAttacker
+_08076FF8: .4byte gBattleAnimArgs
+_08076FFC:
+ ldr r1, _08077024 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ adds r0, r1, 0
+_08077008:
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _08077028 @ =sub_8074F6C
+ str r0, [r4, 0x1C]
+ ldr r1, _0807702C @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077024: .4byte gBattleAnimArgs
+_08077028: .4byte sub_8074F6C
+_0807702C: .4byte DestroyAnimSprite
+ thumb_func_end sub_8076FD0
+
+ thumb_func_start sub_8077030
+sub_8077030: @ 8077030
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080770C4 @ =gTasks
+ adds r5, r1, r0
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ strh r0, [r5, 0x8]
+ ldr r7, _080770C8 @ =gBattleAnimAttacker
+ ldrb r0, [r7]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r1, 0x8
+ cmp r0, 0
+ beq _08077064
+ movs r0, 0x8
+ negs r0, r0
+ adds r1, r0, 0
+_08077064:
+ strh r1, [r5, 0xA]
+ strh r6, [r5, 0xC]
+ strh r6, [r5, 0xE]
+ ldr r4, _080770CC @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x24]
+ ldrh r2, [r5, 0x8]
+ subs r1, r2
+ strh r1, [r0, 0x24]
+ ldr r0, _080770D0 @ =0x00002771
+ bl AllocSpritePalette
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x10]
+ strh r6, [r5, 0x12]
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ adds r0, 0x10
+ lsls r0, 20
+ lsrs r6, r0, 16
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ lsls r4, r0, 4
+ ldrb r0, [r7]
+ bl sub_807685C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x14]
+ cmp r0, 0x14
+ beq _080770C0
+ cmp r0, 0x28
+ bne _080770D4
+_080770C0:
+ movs r0, 0x2
+ b _080770D6
+ .align 2, 0
+_080770C4: .4byte gTasks
+_080770C8: .4byte gBattleAnimAttacker
+_080770CC: .4byte gSprites
+_080770D0: .4byte 0x00002771
+_080770D4:
+ movs r0, 0x3
+_080770D6:
+ strh r0, [r5, 0x14]
+ lsls r0, r4, 1
+ ldr r1, _08077104 @ =gPlttBufferUnfaded
+ adds r0, r1
+ lsls r1, r6, 1
+ ldr r2, _08077108 @ =gPlttBufferFaded
+ adds r1, r2
+ ldr r2, _0807710C @ =0x04000008
+ bl CpuSet
+ ldr r0, _08077110 @ =gBattleAnimArgs
+ ldrb r2, [r0, 0x2]
+ ldrh r3, [r0]
+ adds r0, r6, 0
+ movs r1, 0x10
+ bl BlendPalette
+ ldr r0, _08077114 @ =sub_8077118
+ str r0, [r5]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077104: .4byte gPlttBufferUnfaded
+_08077108: .4byte gPlttBufferFaded
+_0807710C: .4byte 0x04000008
+_08077110: .4byte gBattleAnimArgs
+_08077114: .4byte sub_8077118
+ thumb_func_end sub_8077030
+
+ thumb_func_start sub_8077118
+sub_8077118: @ 8077118
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _0807713C @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0807717C
+ cmp r0, 0x1
+ bgt _08077140
+ cmp r0, 0
+ beq _08077146
+ b _080771D8
+ .align 2, 0
+_0807713C: .4byte gTasks
+_08077140:
+ cmp r0, 0x2
+ beq _080771C4
+ b _080771D8
+_08077146:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80771E4
+ ldr r2, _08077178 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0xA]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ strh r1, [r0, 0x24]
+ ldrh r1, [r4, 0xE]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _080771D8
+ strh r1, [r4, 0xE]
+ b _080771B6
+ .align 2, 0
+_08077178: .4byte gSprites
+_0807717C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80771E4
+ ldr r3, _080771C0 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x24]
+ ldrh r2, [r4, 0xA]
+ subs r1, r2
+ strh r1, [r0, 0x24]
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ bne _080771D8
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ strh r2, [r1, 0x24]
+_080771B6:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ b _080771D8
+ .align 2, 0
+_080771C0: .4byte gSprites
+_080771C4:
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080771D8
+ ldr r0, _080771E0 @ =0x00002771
+ bl FreeSpritePaletteByTag
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_080771D8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080771E0: .4byte 0x00002771
+ thumb_func_end sub_8077118
+
+ thumb_func_start sub_80771E4
+sub_80771E4: @ 80771E4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ movs r0, 0
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ lsrs r7, r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ blt _08077254
+ ldr r5, _08077260 @ =gSprites
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r3, r4, r5
+ movs r0, 0x3
+ ldrb r1, [r6, 0x14]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ ldrb r1, [r6, 0x10]
+ lsls r1, 4
+ movs r2, 0xF
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ movs r0, 0x8
+ strh r0, [r3, 0x2E]
+ mov r0, r8
+ strh r0, [r3, 0x30]
+ strh r7, [r3, 0x32]
+ movs r0, 0x8
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r0, [r0, 0x24]
+ strh r0, [r3, 0x24]
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _08077264 @ =sub_8077268
+ str r0, [r4]
+ ldrh r0, [r6, 0x12]
+ adds r0, 0x1
+ strh r0, [r6, 0x12]
+_08077254:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077260: .4byte gSprites
+_08077264: .4byte sub_8077268
+ thumb_func_end sub_80771E4
+
+ thumb_func_start sub_8077268
+sub_8077268: @ 8077268
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ subs r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08077292
+ ldr r2, _08077298 @ =gTasks
+ movs r0, 0x30
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x12]
+ subs r1, 0x1
+ strh r1, [r0, 0x12]
+ adds r0, r3, 0
+ bl obj_delete_but_dont_free_vram
+_08077292:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077298: .4byte gTasks
+ thumb_func_end sub_8077268
+
+ thumb_func_start sub_807729C
+sub_807729C: @ 807729C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080772D0 @ =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
+ bne _080772D4
+ movs r0, 0x5
+ b _080772D6
+ .align 2, 0
+_080772D0: .4byte gBattleAnimAttacker
+_080772D4:
+ ldr r0, _080772E8 @ =0x0000fff6
+_080772D6:
+ strh r0, [r5, 0x2E]
+ ldr r0, _080772EC @ =0x0000ffd8
+ strh r0, [r5, 0x30]
+ ldr r0, _080772F0 @ =sub_80772F4
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080772E8: .4byte 0x0000fff6
+_080772EC: .4byte 0x0000ffd8
+_080772F0: .4byte sub_80772F4
+ thumb_func_end sub_807729C
+
+ thumb_func_start sub_80772F4
+sub_80772F4: @ 80772F4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r5, [r4, 0x30]
+ ldrh r2, [r4, 0x34]
+ adds r0, r5, r2
+ strh r0, [r4, 0x34]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r4, 0x24]
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ lsls r0, r5, 16
+ asrs r0, 16
+ movs r1, 0x14
+ negs r1, r1
+ cmp r0, r1
+ bge _08077330
+ adds r0, r5, 0x1
+ strh r0, [r4, 0x30]
+_08077330:
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _08077348
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08077348:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80772F4
+
+ thumb_func_start sub_8077350
+sub_8077350: @ 8077350
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _08077388 @ =gBattleAnimArgs
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x8]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0xA]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ ldr r0, _0807738C @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08077390
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1E
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0xA]
+ subs r0, 0x14
+ b _0807739E
+ .align 2, 0
+_08077388: .4byte gBattleAnimArgs
+_0807738C: .4byte gBattleAnimTarget
+_08077390:
+ ldrh r0, [r5, 0x8]
+ subs r0, 0x1E
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0xA]
+ subs r0, 0x50
+_0807739E:
+ strh r0, [r4, 0x22]
+ ldr r0, _080773B4 @ =sub_8075590
+ str r0, [r4, 0x1C]
+ ldr r1, _080773B8 @ =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080773B4: .4byte sub_8075590
+_080773B8: .4byte DestroyAnimSprite
+ thumb_func_end sub_8077350
+
+ .align 2, 0 @ Don't pad with nop.