summaryrefslogtreecommitdiff
path: root/asm/battle_anim_utility_funcs.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/battle_anim_utility_funcs.s')
-rw-r--r--asm/battle_anim_utility_funcs.s5133
1 files changed, 5133 insertions, 0 deletions
diff --git a/asm/battle_anim_utility_funcs.s b/asm/battle_anim_utility_funcs.s
new file mode 100644
index 000000000..d33f51842
--- /dev/null
+++ b/asm/battle_anim_utility_funcs.s
@@ -0,0 +1,5133 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80BA7F8
+sub_80BA7F8: @ 80BA7F8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _080BA838 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ bl sub_80B9A14
+ adds r6, r0, 0
+ ldrh r3, [r4]
+ lsls r3, 16
+ asrs r0, r3, 23
+ movs r4, 0x1
+ ands r0, r4
+ asrs r1, r3, 24
+ ands r1, r4
+ asrs r2, r3, 25
+ ands r2, r4
+ asrs r3, 26
+ ands r3, r4
+ bl sub_8075CB8
+ orrs r6, r0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80BAA4C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA838: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BA7F8
+
+ thumb_func_start sub_80BA83C
+sub_80BA83C: @ 80BA83C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1, 0x1]
+ movs r0, 0x1
+ bl sub_80B9A14
+ adds r5, r0, 0
+ ldr r0, _080BA868 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x7
+ bhi _080BA8E6
+ lsls r0, 2
+ ldr r1, _080BA86C @ =_080BA870
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BA868: .4byte gBattleAnimArgs
+_080BA86C: .4byte _080BA870
+ .align 2, 0
+_080BA870:
+ .4byte _080BA892
+ .4byte _080BA89E
+ .4byte _080BA890
+ .4byte _080BA89C
+ .4byte _080BA8AC
+ .4byte _080BA8C4
+ .4byte _080BA8CC
+ .4byte _080BA8D8
+_080BA890:
+ movs r5, 0
+_080BA892:
+ mov r0, sp
+ ldr r1, _080BA898 @ =gBattleAnimAttacker
+ b _080BA8A2
+ .align 2, 0
+_080BA898: .4byte gBattleAnimAttacker
+_080BA89C:
+ movs r5, 0
+_080BA89E:
+ mov r0, sp
+ ldr r1, _080BA8A8 @ =gBattleAnimTarget
+_080BA8A2:
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _080BA8E6
+ .align 2, 0
+_080BA8A8: .4byte gBattleAnimTarget
+_080BA8AC:
+ mov r1, sp
+ ldr r0, _080BA8BC @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _080BA8C0 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ strb r0, [r1, 0x1]
+ b _080BA8E6
+ .align 2, 0
+_080BA8BC: .4byte gBattleAnimAttacker
+_080BA8C0: .4byte gBattleAnimTarget
+_080BA8C4:
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1]
+ b _080BA8E6
+_080BA8CC:
+ movs r5, 0
+ mov r2, sp
+ ldr r0, _080BA8D4 @ =gBattleAnimAttacker
+ b _080BA8DE
+ .align 2, 0
+_080BA8D4: .4byte gBattleAnimAttacker
+_080BA8D8:
+ movs r5, 0
+ mov r2, sp
+ ldr r0, _080BA930 @ =gBattleAnimTarget
+_080BA8DE:
+ ldrb r0, [r0]
+ movs r1, 0x2
+ eors r0, r1
+ strb r0, [r2]
+_080BA8E6:
+ movs r4, 0
+ mov r6, sp
+_080BA8EA:
+ ldrb r0, [r6]
+ cmp r4, r0
+ beq _080BA914
+ ldrb r0, [r6, 0x1]
+ cmp r4, r0
+ beq _080BA914
+ adds r0, r4, 0
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BA914
+ adds r0, r4, 0
+ bl sub_8075D80
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r0
+ orrs r5, r1
+_080BA914:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080BA8EA
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_80BAA4C
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA930: .4byte gBattleAnimTarget
+ thumb_func_end sub_80BA83C
+
+ thumb_func_start sub_80BA934
+sub_80BA934: @ 80BA934
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080BA958 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bl sub_80B9A14
+ adds r2, r0, 0
+ ldr r0, _080BA95C @ =gUnknown_2022B50
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bhi _080BAA0A
+ lsls r0, 2
+ ldr r1, _080BA960 @ =_080BA964
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BA958: .4byte gBattleAnimArgs
+_080BA95C: .4byte gUnknown_2022B50
+_080BA960: .4byte _080BA964
+ .align 2, 0
+_080BA964:
+ .4byte _080BA98C
+ .4byte _080BA99C
+ .4byte _080BA9A8
+ .4byte _080BA9B8
+ .4byte _080BA9C4
+ .4byte _080BA9D4
+ .4byte _080BA9E4
+ .4byte _080BA9F4
+ .4byte _080BAA04
+ .4byte _080BAA04
+_080BA98C:
+ ldr r1, _080BA994 @ =gBattleAnimArgs
+ ldr r0, _080BA998 @ =0x00000b0c
+ b _080BAA08
+ .align 2, 0
+_080BA994: .4byte gBattleAnimArgs
+_080BA998: .4byte 0x00000b0c
+_080BA99C:
+ ldr r1, _080BA9A4 @ =gBattleAnimArgs
+ movs r0, 0x9E
+ lsls r0, 4
+ b _080BAA08
+ .align 2, 0
+_080BA9A4: .4byte gBattleAnimArgs
+_080BA9A8:
+ ldr r1, _080BA9B0 @ =gBattleAnimArgs
+ ldr r0, _080BA9B4 @ =0x00002f1e
+ b _080BAA08
+ .align 2, 0
+_080BA9B0: .4byte gBattleAnimArgs
+_080BA9B4: .4byte 0x00002f1e
+_080BA9B8:
+ ldr r1, _080BA9C0 @ =gBattleAnimArgs
+ movs r0, 0x90
+ lsls r0, 7
+ b _080BAA08
+ .align 2, 0
+_080BA9C0: .4byte gBattleAnimArgs
+_080BA9C4:
+ ldr r1, _080BA9CC @ =gBattleAnimArgs
+ ldr r0, _080BA9D0 @ =0x00007ecb
+ b _080BAA08
+ .align 2, 0
+_080BA9CC: .4byte gBattleAnimArgs
+_080BA9D0: .4byte 0x00007ecb
+_080BA9D4:
+ ldr r1, _080BA9DC @ =gBattleAnimArgs
+ ldr r0, _080BA9E0 @ =0x00007ecb
+ b _080BAA08
+ .align 2, 0
+_080BA9DC: .4byte gBattleAnimArgs
+_080BA9E0: .4byte 0x00007ecb
+_080BA9E4:
+ ldr r1, _080BA9EC @ =gBattleAnimArgs
+ ldr r0, _080BA9F0 @ =0x00002a16
+ b _080BAA08
+ .align 2, 0
+_080BA9EC: .4byte gBattleAnimArgs
+_080BA9F0: .4byte 0x00002a16
+_080BA9F4:
+ ldr r1, _080BA9FC @ =gBattleAnimArgs
+ ldr r0, _080BAA00 @ =0x00000d2e
+ b _080BAA08
+ .align 2, 0
+_080BA9FC: .4byte gBattleAnimArgs
+_080BAA00: .4byte 0x00000d2e
+_080BAA04:
+ ldr r1, _080BAA18 @ =gBattleAnimArgs
+ ldr r0, _080BAA1C @ =0x00007fff
+_080BAA08:
+ strh r0, [r1, 0x8]
+_080BAA0A:
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80BAA4C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAA18: .4byte gBattleAnimArgs
+_080BAA1C: .4byte 0x00007fff
+ thumb_func_end sub_80BA934
+
+ thumb_func_start sub_80BAA20
+sub_80BAA20: @ 80BAA20
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080BAA48 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ adds r0, r4, 0
+ bl sub_80BAA4C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAA48: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BAA20
+
+ thumb_func_start sub_80BAA4C
+sub_80BAA4C: @ 80BAA4C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080BAA84 @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ strh r1, [r2, 0x8]
+ lsrs r1, 16
+ strh r1, [r2, 0xA]
+ ldr r3, _080BAA88 @ =gBattleAnimArgs
+ ldrh r1, [r3, 0x2]
+ strh r1, [r2, 0xC]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r2, 0xE]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r2, 0x10]
+ ldrh r1, [r3, 0x8]
+ strh r1, [r2, 0x12]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r2, 0x1C]
+ ldr r1, _080BAA8C @ =sub_80BAA90
+ str r1, [r2]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAA84: .4byte gTasks
+_080BAA88: .4byte gBattleAnimArgs
+_080BAA8C: .4byte sub_80BAA90
+ thumb_func_end sub_80BAA4C
+
+ thumb_func_start sub_80BAA90
+sub_80BAA90: @ 80BAA90
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0
+ ldr r2, _080BAB10 @ =gTasks
+ lsls r5, r7, 2
+ adds r0, r5, r7
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1A]
+ mov r8, r0
+ movs r4, 0x1A
+ ldrsh r1, [r3, r4]
+ movs r4, 0xC
+ ldrsh r0, [r3, r4]
+ mov r9, r2
+ cmp r1, r0
+ bne _080BAB26
+ strh r6, [r3, 0x1A]
+ movs r0, 0x8
+ ldrsh r4, [r3, r0]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ orrs r4, r0
+ mov r8, r5
+ cmp r4, 0
+ beq _080BAAF2
+ adds r5, r3, 0
+_080BAAD0:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080BAAE4
+ ldrb r2, [r5, 0x1C]
+ ldrh r3, [r5, 0x12]
+ adds r0, r6, 0
+ movs r1, 0x10
+ bl BlendPalette
+_080BAAE4:
+ adds r0, r6, 0
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsrs r4, 1
+ cmp r4, 0
+ bne _080BAAD0
+_080BAAF2:
+ mov r4, r8
+ adds r0, r4, r7
+ lsls r0, 3
+ mov r1, r9
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x1C]
+ movs r4, 0x1C
+ ldrsh r3, [r2, r4]
+ movs r4, 0x10
+ ldrsh r1, [r2, r4]
+ cmp r3, r1
+ bge _080BAB14
+ adds r0, 0x1
+ strh r0, [r2, 0x1C]
+ b _080BAB2C
+ .align 2, 0
+_080BAB10: .4byte gTasks
+_080BAB14:
+ cmp r3, r1
+ ble _080BAB1E
+ subs r0, 0x1
+ strh r0, [r2, 0x1C]
+ b _080BAB2C
+_080BAB1E:
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+ b _080BAB2C
+_080BAB26:
+ mov r0, r8
+ adds r0, 0x1
+ strh r0, [r3, 0x1A]
+_080BAB2C:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BAA90
+
+ thumb_func_start sub_80BAB38
+sub_80BAB38: @ 80BAB38
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _080BAB6C @ =gBattleAnimArgs
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x2]
+ ldrb r2, [r4, 0x4]
+ ldrb r3, [r4, 0x6]
+ ldrb r4, [r4, 0x8]
+ str r4, [sp]
+ bl BeginHardwarePaletteFade
+ ldr r1, _080BAB70 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BAB74 @ =sub_80BAB78
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAB6C: .4byte gBattleAnimArgs
+_080BAB70: .4byte gTasks
+_080BAB74: .4byte sub_80BAB78
+ thumb_func_end sub_80BAB38
+
+ thumb_func_start sub_80BAB78
+sub_80BAB78: @ 80BAB78
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080BAB94 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080BAB90
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080BAB90:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAB94: .4byte gPaletteFade
+ thumb_func_end sub_80BAB78
+
+ thumb_func_start sub_80BAB98
+sub_80BAB98: @ 80BAB98
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080BABC4 @ =gTasks
+ adds r1, r0
+ ldr r2, _080BABC8 @ =gBattleAnimArgs
+ ldrh r0, [r2]
+ movs r3, 0
+ strh r0, [r1, 0x8]
+ strh r3, [r1, 0xA]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1, 0xC]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r1, 0xE]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r1, 0x10]
+ strh r3, [r1, 0x12]
+ ldr r0, _080BABCC @ =sub_80BABD0
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080BABC4: .4byte gTasks
+_080BABC8: .4byte gBattleAnimArgs
+_080BABCC: .4byte sub_80BABD0
+ thumb_func_end sub_80BAB98
+
+ thumb_func_start sub_80BABD0
+sub_80BABD0: @ 80BABD0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r2, r5, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080BABFC @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080BAC94
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080BAC00
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xA]
+ b _080BACA2
+ .align 2, 0
+_080BABFC: .4byte gTasks
+_080BAC00:
+ ldrb r0, [r4, 0x8]
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080BAC7E
+ ldr r6, _080BAC8C @ =gSprites
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r3, r1, r6
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ movs r2, 0x2
+ cmp r0, 0
+ beq _080BAC28
+ movs r2, 0x1
+_080BAC28:
+ lsls r2, 2
+ ldrb r1, [r3, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0x5]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r4, 0xE]
+ strh r1, [r0, 0x2E]
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r5, [r0, 0x30]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x5
+ strh r1, [r0, 0x32]
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080BAC90 @ =sub_80BACA8
+ str r1, [r0]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+_080BAC7E:
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x1
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r4, 0xA]
+ b _080BACA2
+ .align 2, 0
+_080BAC8C: .4byte gSprites
+_080BAC90: .4byte sub_80BACA8
+_080BAC94:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080BACA2
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080BACA2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BABD0
+
+ thumb_func_start sub_80BACA8
+sub_80BACA8: @ 80BACA8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080BACBC
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ b _080BACE0
+_080BACBC:
+ ldr r3, _080BACE8 @ =gTasks
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl obj_delete_but_dont_free_vram
+_080BACE0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BACE8: .4byte gTasks
+ thumb_func_end sub_80BACA8
+
+ thumb_func_start sub_80BACEC
+sub_80BACEC: @ 80BACEC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r7, 0
+ ldr r0, _080BAE20 @ =gUnknown_2022984
+ strh r7, [r0]
+ ldr r0, _080BAE24 @ =gUnknown_2022986
+ strh r7, [r0]
+ ldr r1, _080BAE28 @ =0x00003f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r1, _080BAE2C @ =0x00003f3d
+ movs r0, 0x4A
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 8
+ movs r0, 0
+ bl SetGpuRegBits
+ ldr r1, _080BAE30 @ =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r1, _080BAE34 @ =0x00000c08
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0xA
+ bl GetGpuReg
+ add r4, sp, 0x10
+ strh r0, [r4]
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ mov r8, r0
+ ands r0, r1
+ strb r0, [r4]
+ mov r2, sp
+ adds r2, 0x11
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r1, [r4]
+ movs r0, 0xA
+ bl SetGpuReg
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BAD7A
+ ldrb r1, [r4]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4]
+ ldrh r1, [r4]
+ movs r0, 0xA
+ bl SetGpuReg
+_080BAD7A:
+ bl sub_8075290
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BADFE
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BADFE
+ ldr r5, _080BAE38 @ =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerPosition
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080BADAA
+ ldrb r0, [r5]
+ bl GetBattlerPosition
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BADFE
+_080BADAA:
+ ldrb r0, [r5]
+ movs r6, 0x2
+ eors r0, r6
+ bl sub_8072DF0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BADFE
+ ldr r3, _080BAE3C @ =gSprites
+ ldr r1, _080BAE40 @ =gBattlerSpriteIds
+ ldrb r0, [r5]
+ eors r0, r6
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldrb r1, [r4]
+ mov r0, r8
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ ldrh r1, [r4]
+ movs r0, 0xA
+ bl SetGpuReg
+ movs r7, 0x1
+_080BADFE:
+ ldr r4, _080BAE38 @ =gBattleAnimAttacker
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BAE4C
+ ldr r1, _080BAE44 @ =gBattlerPartyIndexes
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BAE48 @ =gEnemyParty
+ b _080BAE5C
+ .align 2, 0
+_080BAE20: .4byte gUnknown_2022984
+_080BAE24: .4byte gUnknown_2022986
+_080BAE28: .4byte 0x00003f3f
+_080BAE2C: .4byte 0x00003f3d
+_080BAE30: .4byte 0x00003f42
+_080BAE34: .4byte 0x00000c08
+_080BAE38: .4byte gBattleAnimAttacker
+_080BAE3C: .4byte gSprites
+_080BAE40: .4byte gBattlerSpriteIds
+_080BAE44: .4byte gBattlerPartyIndexes
+_080BAE48: .4byte gEnemyParty
+_080BAE4C:
+ ldr r1, _080BAF0C @ =gBattlerPartyIndexes
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BAF10 @ =gPlayerParty
+_080BAE5C:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r0, _080BAF14 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_8076E34
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r0, sp
+ bl sub_80752A0
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080BAF18 @ =gFile_graphics_battle_anims_masks_curse_tilemap
+ bl sub_807543C
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BAEAC
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80730C0
+_080BAEAC:
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080BAF1C @ =gFile_graphics_battle_anims_masks_curse_sheet
+ mov r2, sp
+ ldrh r2, [r2, 0xA]
+ bl sub_80753B4
+ ldr r0, _080BAF20 @ =gUnknown_83E7CC8
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ adds r1, 0x1
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r2, _080BAF24 @ =gBattle_BG1_X
+ ldr r0, _080BAF28 @ =gSprites
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r2]
+ ldr r2, _080BAF2C @ =gBattle_BG1_Y
+ ldrh r0, [r1, 0x22]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r2]
+ ldr r1, _080BAF30 @ =gTasks
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ strh r4, [r0, 0x8]
+ strh r7, [r0, 0x14]
+ ldr r1, _080BAF34 @ =sub_80BAF38
+ str r1, [r0]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAF0C: .4byte gBattlerPartyIndexes
+_080BAF10: .4byte gPlayerParty
+_080BAF14: .4byte gBattleAnimAttacker
+_080BAF18: .4byte gFile_graphics_battle_anims_masks_curse_tilemap
+_080BAF1C: .4byte gFile_graphics_battle_anims_masks_curse_sheet
+_080BAF20: .4byte gUnknown_83E7CC8
+_080BAF24: .4byte gBattle_BG1_X
+_080BAF28: .4byte gSprites
+_080BAF2C: .4byte gBattle_BG1_Y
+_080BAF30: .4byte gTasks
+_080BAF34: .4byte sub_80BAF38
+ thumb_func_end sub_80BACEC
+
+ thumb_func_start sub_80BAF38
+sub_80BAF38: @ 80BAF38
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080BB068 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x4
+ movs r1, 0
+ mov r8, r1
+ strh r0, [r5, 0x1C]
+ ldr r7, _080BB06C @ =gBattle_BG1_Y
+ ldrh r2, [r7]
+ subs r1, r2, 0x4
+ strh r1, [r7]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ bne _080BB05A
+ mov r0, r8
+ strh r0, [r5, 0x1C]
+ adds r0, r2, 0
+ adds r0, 0x3C
+ strh r0, [r7]
+ ldrh r0, [r5, 0x1E]
+ adds r0, 0x1
+ strh r0, [r5, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080BB05A
+ movs r0, 0
+ bl sub_8073128
+ ldr r0, _080BB070 @ =gUnknown_2022984
+ mov r1, r8
+ strh r1, [r0]
+ ldr r0, _080BB074 @ =gUnknown_2022986
+ strh r1, [r0]
+ ldr r4, _080BB078 @ =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BAFCA
+ movs r0, 0xA
+ bl GetGpuReg
+ add r1, sp, 0x10
+ strh r0, [r1]
+ ldrb r2, [r1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrh r1, [r1]
+ movs r0, 0xA
+ bl SetGpuReg
+_080BAFCA:
+ movs r0, 0
+ bl GetGpuReg
+ adds r1, r0, 0
+ movs r2, 0x80
+ lsls r2, 8
+ adds r0, r2, 0
+ eors r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0
+ bl GetAnimBankSpriteId
+ ldr r4, _080BB07C @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ mov r0, sp
+ bl sub_80752A0
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ bl sub_8075358
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080BB050
+ ldr r2, _080BB080 @ =gBattlerSpriteIds
+ ldr r0, _080BB084 @ =gBattleAnimAttacker
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+_080BB050:
+ mov r2, r8
+ strh r2, [r7]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080BB05A:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB068: .4byte gTasks
+_080BB06C: .4byte gBattle_BG1_Y
+_080BB070: .4byte gUnknown_2022984
+_080BB074: .4byte gUnknown_2022986
+_080BB078: .4byte 0x00003f3f
+_080BB07C: .4byte gSprites
+_080BB080: .4byte gBattlerSpriteIds
+_080BB084: .4byte gBattleAnimAttacker
+ thumb_func_end sub_80BAF38
+
+ thumb_func_start sub_80BB088
+sub_80BB088: @ 80BB088
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080BB0C8 @ =gUnknown_20399B4
+ movs r0, 0x18
+ bl AllocZeroed
+ str r0, [r4]
+ movs r2, 0
+ ldr r3, _080BB0CC @ =gBattleAnimArgs
+_080BB09C:
+ ldr r1, [r4]
+ lsls r0, r2, 1
+ adds r1, 0x4
+ adds r1, r0
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _080BB09C
+ ldr r0, _080BB0D0 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080BB0D4 @ =sub_80BB0D8
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB0C8: .4byte gUnknown_20399B4
+_080BB0CC: .4byte gBattleAnimArgs
+_080BB0D0: .4byte gTasks
+_080BB0D4: .4byte sub_80BB0D8
+ thumb_func_end sub_80BB088
+
+ thumb_func_start sub_80BB0D8
+sub_80BB0D8: @ 80BB0D8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080BB0F0 @ =gUnknown_20399B4
+ ldr r1, [r0]
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080BB0F8
+ ldr r0, _080BB0F4 @ =gBattleAnimAttacker
+ b _080BB0FA
+ .align 2, 0
+_080BB0F0: .4byte gUnknown_20399B4
+_080BB0F4: .4byte gBattleAnimAttacker
+_080BB0F8:
+ ldr r0, _080BB230 @ =gBattleAnimTarget
+_080BB0FA:
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r4, _080BB234 @ =gUnknown_20399B4
+ ldr r2, [r4]
+ ldrb r0, [r2]
+ movs r1, 0x2
+ eors r0, r1
+ strb r0, [r2, 0x1]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BB12A
+ ldr r1, [r4]
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080BB130
+ ldrb r0, [r1, 0x1]
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BB130
+_080BB12A:
+ ldr r1, [r4]
+ movs r0, 0
+ strh r0, [r1, 0xA]
+_080BB130:
+ ldr r0, _080BB238 @ =gUnknown_2022984
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080BB23C @ =gUnknown_2022986
+ strh r1, [r0]
+ ldr r1, _080BB240 @ =0x00003f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r1, _080BB244 @ =0x00003f3d
+ movs r0, 0x4A
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 8
+ movs r0, 0
+ bl SetGpuRegBits
+ ldr r1, _080BB248 @ =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0
+ bl SetAnimBgAttribute
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl SetAnimBgAttribute
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BB18E
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+_080BB18E:
+ bl sub_8075290
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BB20A
+ ldr r4, _080BB234 @ =gUnknown_20399B4
+ ldr r1, [r4]
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080BB20A
+ ldrb r0, [r1]
+ bl GetBattlerPosition
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080BB1C0
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ bl GetBattlerPosition
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BB20A
+_080BB1C0:
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8072DF0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bne _080BB20A
+ ldr r3, _080BB24C @ =gSprites
+ ldr r1, _080BB250 @ =gBattlerSpriteIds
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ ldr r0, [r4]
+ strb r5, [r0, 0x2]
+_080BB20A:
+ ldr r4, _080BB234 @ =gUnknown_20399B4
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BB25C
+ ldr r1, _080BB254 @ =gBattlerPartyIndexes
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BB258 @ =gEnemyParty
+ b _080BB26E
+ .align 2, 0
+_080BB230: .4byte gBattleAnimTarget
+_080BB234: .4byte gUnknown_20399B4
+_080BB238: .4byte gUnknown_2022984
+_080BB23C: .4byte gUnknown_2022986
+_080BB240: .4byte 0x00003f3f
+_080BB244: .4byte 0x00003f3d
+_080BB248: .4byte 0x00003f42
+_080BB24C: .4byte gSprites
+_080BB250: .4byte gBattlerSpriteIds
+_080BB254: .4byte gBattlerPartyIndexes
+_080BB258: .4byte gEnemyParty
+_080BB25C:
+ ldr r1, _080BB290 @ =gBattlerPartyIndexes
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BB294 @ =gPlayerParty
+_080BB26E:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ ldr r1, [r4]
+ strh r0, [r1, 0x14]
+ ldr r0, _080BB298 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080BB29C @ =sub_80BB2A0
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB290: .4byte gBattlerPartyIndexes
+_080BB294: .4byte gPlayerParty
+_080BB298: .4byte gTasks
+_080BB29C: .4byte sub_80BB2A0
+ thumb_func_end sub_80BB0D8
+
+ thumb_func_start sub_80BB2A0
+sub_80BB2A0: @ 80BB2A0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0
+ mov r8, r0
+ ldr r6, _080BB300 @ =gBattlerSpriteIds
+ ldr r4, _080BB304 @ =gUnknown_20399B4
+ ldr r2, [r4]
+ ldrb r0, [r2]
+ adds r1, r0, r6
+ ldrb r1, [r1]
+ ldrh r2, [r2, 0x14]
+ bl sub_8076E34
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, [r4]
+ movs r1, 0xA
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _080BB2E2
+ ldrb r0, [r2, 0x1]
+ adds r1, r0, r6
+ ldrb r1, [r1]
+ ldrh r2, [r2, 0x14]
+ bl sub_8076E34
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+_080BB2E2:
+ mov r0, sp
+ bl sub_80752A0
+ ldr r0, [r4]
+ movs r4, 0x4
+ ldrsh r0, [r0, r4]
+ cmp r0, 0
+ bne _080BB30C
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080BB308 @ =gFile_graphics_battle_anims_masks_stat_tilemap_1_tilemap
+ bl sub_807543C
+ b _080BB316
+ .align 2, 0
+_080BB300: .4byte gBattlerSpriteIds
+_080BB304: .4byte gUnknown_20399B4
+_080BB308: .4byte gFile_graphics_battle_anims_masks_stat_tilemap_1_tilemap
+_080BB30C:
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080BB354 @ =gFile_graphics_battle_anims_masks_stat_tilemap_2_tilemap
+ bl sub_807543C
+_080BB316:
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BB32E
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80730C0
+_080BB32E:
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, _080BB358 @ =gFile_graphics_battle_anims_masks_stat_sheet
+ mov r2, sp
+ ldrh r2, [r2, 0xA]
+ bl sub_80753B4
+ ldr r0, _080BB35C @ =gUnknown_20399B4
+ ldr r0, [r0]
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x6
+ bhi _080BB3C4
+ lsls r0, 2
+ ldr r1, _080BB360 @ =_080BB364
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BB354: .4byte gFile_graphics_battle_anims_masks_stat_tilemap_2_tilemap
+_080BB358: .4byte gFile_graphics_battle_anims_masks_stat_sheet
+_080BB35C: .4byte gUnknown_20399B4
+_080BB360: .4byte _080BB364
+ .align 2, 0
+_080BB364:
+ .4byte _080BB380
+ .4byte _080BB388
+ .4byte _080BB390
+ .4byte _080BB398
+ .4byte _080BB3A0
+ .4byte _080BB3A8
+ .4byte _080BB3B0
+_080BB380:
+ ldr r0, _080BB384 @ =gFile_graphics_battle_anims_masks_stat2_palette
+ b _080BB3B2
+ .align 2, 0
+_080BB384: .4byte gFile_graphics_battle_anims_masks_stat2_palette
+_080BB388:
+ ldr r0, _080BB38C @ =gFile_graphics_battle_anims_masks_stat1_palette
+ b _080BB3B2
+ .align 2, 0
+_080BB38C: .4byte gFile_graphics_battle_anims_masks_stat1_palette
+_080BB390:
+ ldr r0, _080BB394 @ =gFile_graphics_battle_anims_masks_stat3_palette
+ b _080BB3B2
+ .align 2, 0
+_080BB394: .4byte gFile_graphics_battle_anims_masks_stat3_palette
+_080BB398:
+ ldr r0, _080BB39C @ =gFile_graphics_battle_anims_masks_stat4_palette
+ b _080BB3B2
+ .align 2, 0
+_080BB39C: .4byte gFile_graphics_battle_anims_masks_stat4_palette
+_080BB3A0:
+ ldr r0, _080BB3A4 @ =gFile_graphics_battle_anims_masks_stat6_palette
+ b _080BB3B2
+ .align 2, 0
+_080BB3A4: .4byte gFile_graphics_battle_anims_masks_stat6_palette
+_080BB3A8:
+ ldr r0, _080BB3AC @ =gFile_graphics_battle_anims_masks_stat7_palette
+ b _080BB3B2
+ .align 2, 0
+_080BB3AC: .4byte gFile_graphics_battle_anims_masks_stat7_palette
+_080BB3B0:
+ ldr r0, _080BB3C0 @ =gFile_graphics_battle_anims_masks_stat8_palette
+_080BB3B2:
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ b _080BB3D2
+ .align 2, 0
+_080BB3C0: .4byte gFile_graphics_battle_anims_masks_stat8_palette
+_080BB3C4:
+ ldr r0, _080BB3FC @ =gFile_graphics_battle_anims_masks_stat5_palette
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+_080BB3D2:
+ ldr r3, _080BB400 @ =gBattle_BG1_X
+ movs r2, 0
+ strh r2, [r3]
+ ldr r0, _080BB404 @ =gBattle_BG1_Y
+ strh r2, [r0]
+ ldr r1, _080BB408 @ =gUnknown_20399B4
+ ldr r0, [r1]
+ movs r4, 0x4
+ ldrsh r0, [r0, r4]
+ adds r4, r1, 0
+ cmp r0, 0x1
+ bne _080BB414
+ movs r0, 0x40
+ strh r0, [r3]
+ ldr r2, _080BB40C @ =gTasks
+ lsls r3, r5, 2
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080BB410 @ =0x0000fffd
+ b _080BB420
+ .align 2, 0
+_080BB3FC: .4byte gFile_graphics_battle_anims_masks_stat5_palette
+_080BB400: .4byte gBattle_BG1_X
+_080BB404: .4byte gBattle_BG1_Y
+_080BB408: .4byte gUnknown_20399B4
+_080BB40C: .4byte gTasks
+_080BB410: .4byte 0x0000fffd
+_080BB414:
+ ldr r2, _080BB43C @ =gTasks
+ lsls r3, r5, 2
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x3
+_080BB420:
+ strh r1, [r0, 0xA]
+ ldr r0, [r4]
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080BB440
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0xA
+ strh r1, [r0, 0x10]
+ movs r1, 0x14
+ b _080BB44C
+ .align 2, 0
+_080BB43C: .4byte gTasks
+_080BB440:
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0xD
+ strh r1, [r0, 0x10]
+ movs r1, 0x1E
+_080BB44C:
+ strh r1, [r0, 0x12]
+ adds r1, r3, r5
+ lsls r1, 3
+ adds r1, r2
+ strh r7, [r1, 0x8]
+ ldr r3, [r4]
+ ldrh r0, [r3, 0xA]
+ strh r0, [r1, 0xC]
+ mov r4, r8
+ strh r4, [r1, 0xE]
+ ldrb r0, [r3, 0x2]
+ strh r0, [r1, 0x14]
+ ldr r2, _080BB490 @ =gBattlerSpriteIds
+ ldrb r0, [r3, 0x1]
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r1, 0x16]
+ ldr r0, _080BB494 @ =sub_80BB4B8
+ str r0, [r1]
+ movs r1, 0x4
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080BB498
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8073B08
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xE8
+ bl PlaySE12WithPanning
+ b _080BB4AC
+ .align 2, 0
+_080BB490: .4byte gBattlerSpriteIds
+_080BB494: .4byte sub_80BB4B8
+_080BB498:
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8073B08
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xEE
+ bl PlaySE12WithPanning
+_080BB4AC:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB2A0
+
+ thumb_func_start sub_80BB4B8
+sub_80BB4B8: @ 80BB4B8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, _080BB4E4 @ =gBattle_BG1_Y
+ ldr r1, _080BB4E8 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0xA]
+ ldrh r1, [r2]
+ adds r0, r1
+ strh r0, [r2]
+ movs r0, 0x26
+ ldrsh r2, [r5, r0]
+ cmp r2, 0x1
+ beq _080BB52E
+ cmp r2, 0x1
+ bgt _080BB4EC
+ cmp r2, 0
+ beq _080BB4F6
+ b _080BB644
+ .align 2, 0
+_080BB4E4: .4byte gBattle_BG1_Y
+_080BB4E8: .4byte gTasks
+_080BB4EC:
+ cmp r2, 0x2
+ beq _080BB544
+ cmp r2, 0x3
+ beq _080BB582
+ b _080BB644
+_080BB4F6:
+ ldrh r0, [r5, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x1E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080BB504
+ b _080BB644
+_080BB504:
+ strh r2, [r5, 0x1E]
+ ldrh r1, [r5, 0x20]
+ adds r1, 0x1
+ strh r1, [r5, 0x20]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ beq _080BB52C
+ b _080BB644
+_080BB52C:
+ b _080BB57A
+_080BB52E:
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x12
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ beq _080BB542
+ b _080BB644
+_080BB542:
+ b _080BB57A
+_080BB544:
+ ldrh r0, [r5, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x1E]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080BB644
+ movs r0, 0
+ strh r0, [r5, 0x1E]
+ ldrh r1, [r5, 0x20]
+ subs r1, 0x1
+ strh r1, [r5, 0x20]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x20
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080BB644
+ movs r0, 0
+ bl sub_8073128
+_080BB57A:
+ ldrh r0, [r5, 0x26]
+ adds r0, 0x1
+ strh r0, [r5, 0x26]
+ b _080BB644
+_080BB582:
+ ldr r0, _080BB64C @ =gUnknown_2022984
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080BB650 @ =gUnknown_2022986
+ strh r1, [r0]
+ ldr r4, _080BB654 @ =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BB5B2
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl SetAnimBgAttribute
+_080BB5B2:
+ movs r0, 0
+ bl GetGpuReg
+ adds r1, r0, 0
+ movs r2, 0x80
+ lsls r2, 8
+ adds r0, r2, 0
+ eors r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080BB658 @ =gSprites
+ adds r0, r4
+ bl DestroySprite
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080BB606
+ movs r2, 0xE
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+_080BB606:
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080BB632
+ movs r2, 0x16
+ ldrsh r0, [r5, r2]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+_080BB632:
+ ldr r4, _080BB65C @ =gUnknown_20399B4
+ ldr r0, [r4]
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080BB644:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB64C: .4byte gUnknown_2022984
+_080BB650: .4byte gUnknown_2022986
+_080BB654: .4byte 0x00003f3f
+_080BB658: .4byte gSprites
+_080BB65C: .4byte gUnknown_20399B4
+ thumb_func_end sub_80BB4B8
+
+ thumb_func_start sub_80BB660
+sub_80BB660: @ 80BB660
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_8075CB8
+ adds r6, r0, 0
+ movs r1, 0
+ bl sub_80BB790
+ ldr r0, _080BB6C0 @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ lsrs r0, r6, 16
+ movs r5, 0
+ strh r0, [r4, 0x24]
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8075BE8
+ adds r6, r0, 0
+ ldr r1, _080BB6C4 @ =0x0000ffff
+ ands r6, r1
+ adds r0, r6, 0
+ bl sub_80BB790
+ strh r6, [r4, 0x26]
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ ldr r0, _080BB6C8 @ =sub_80BB6CC
+ str r0, [r4]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB6C0: .4byte gTasks
+_080BB6C4: .4byte 0x0000ffff
+_080BB6C8: .4byte sub_80BB6CC
+ thumb_func_end sub_80BB660
+
+ thumb_func_start sub_80BB6CC
+sub_80BB6CC: @ 80BB6CC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080BB6F0 @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080BB710
+ cmp r1, 0x1
+ bgt _080BB6F4
+ cmp r1, 0
+ beq _080BB6FA
+ b _080BB78A
+ .align 2, 0
+_080BB6F0: .4byte gTasks
+_080BB6F4:
+ cmp r1, 0x2
+ beq _080BB784
+ b _080BB78A
+_080BB6FA:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _080BB78A
+ strh r1, [r4, 0xA]
+ movs r0, 0x10
+ strh r0, [r4, 0xC]
+ b _080BB778
+_080BB710:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080BB78A
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r5, 0
+ movs r6, 0x1
+_080BB72C:
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ asrs r0, r5
+ ands r0, r6
+ cmp r0, 0
+ beq _080BB746
+ lsls r0, r5, 20
+ lsrs r0, 16
+ ldrb r2, [r4, 0xC]
+ movs r1, 0x10
+ ldr r3, _080BB780 @ =0x0000ffff
+ bl BlendPalette
+_080BB746:
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ asrs r0, r5
+ ands r0, r6
+ cmp r0, 0
+ beq _080BB766
+ lsls r0, r5, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 16
+ ldrb r2, [r4, 0xC]
+ movs r1, 0x10
+ movs r3, 0
+ bl BlendPalette
+_080BB766:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xF
+ bls _080BB72C
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080BB78A
+_080BB778:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080BB78A
+ .align 2, 0
+_080BB780: .4byte 0x0000ffff
+_080BB784:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_080BB78A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB6CC
+
+ thumb_func_start sub_80BB790
+sub_80BB790: @ 80BB790
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ movs r2, 0
+_080BB79A:
+ movs r0, 0x1
+ ands r0, r3
+ lsrs r4, r3, 1
+ adds r5, r2, 0x1
+ cmp r0, 0
+ beq _080BB7C6
+ lsls r0, r2, 20
+ lsrs r2, r0, 16
+ adds r0, r2, 0
+ adds r0, 0x10
+ cmp r2, r0
+ bge _080BB7C6
+ ldr r1, _080BB7D8 @ =gPlttBufferFaded
+ adds r3, r0, 0
+_080BB7B6:
+ lsls r0, r2, 1
+ adds r0, r1
+ strh r6, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ blt _080BB7B6
+_080BB7C6:
+ adds r3, r4, 0
+ lsls r0, r5, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1F
+ bls _080BB79A
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB7D8: .4byte gPlttBufferFaded
+ thumb_func_end sub_80BB790
+
+ thumb_func_start sub_80BB7DC
+sub_80BB7DC: @ 80BB7DC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ movs r2, 0
+ ldr r0, _080BB824 @ =gBattleAnimAttacker
+ ldrb r3, [r0]
+ movs r5, 0x1
+_080BB7EC:
+ cmp r3, r2
+ beq _080BB7FA
+ adds r1, r2, 0
+ adds r1, 0x10
+ adds r0, r5, 0
+ lsls r0, r1
+ orrs r4, r0
+_080BB7FA:
+ adds r2, 0x1
+ cmp r2, 0x3
+ bls _080BB7EC
+ movs r2, 0x5
+ ldr r0, _080BB828 @ =gBattleAnimArgs
+ adds r1, r0, 0
+ adds r1, 0x8
+_080BB808:
+ ldrh r0, [r1]
+ strh r0, [r1, 0x2]
+ subs r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080BB808
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80BAA4C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB824: .4byte gBattleAnimAttacker
+_080BB828: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BB7DC
+
+ thumb_func_start sub_80BB82C
+sub_80BB82C: @ 80BB82C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ bl sub_8075458
+ ldr r0, _080BB894 @ =sub_80BB8A4
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080BB898 @ =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080BB868
+ ldr r0, _080BB89C @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BB868
+ ldrh r0, [r4]
+ negs r0, r0
+ strh r0, [r4]
+ ldrh r0, [r4, 0x2]
+ negs r0, r0
+ strh r0, [r4, 0x2]
+_080BB868:
+ ldr r0, _080BB8A0 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r2, _080BB898 @ =gBattleAnimArgs
+ ldrh r0, [r2]
+ strh r0, [r1, 0xA]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1, 0xC]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r1, 0xE]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB894: .4byte sub_80BB8A4
+_080BB898: .4byte gBattleAnimArgs
+_080BB89C: .4byte gBattleAnimAttacker
+_080BB8A0: .4byte gTasks
+ thumb_func_end sub_80BB82C
+
+ thumb_func_start sub_80BB8A4
+sub_80BB8A4: @ 80BB8A4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080BB910 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r3, [r1, 0xA]
+ ldrh r0, [r1, 0x1C]
+ adds r3, r0
+ movs r4, 0
+ mov r12, r4
+ strh r3, [r1, 0x1C]
+ ldrh r2, [r1, 0xC]
+ ldrh r7, [r1, 0x1E]
+ adds r2, r7
+ strh r2, [r1, 0x1E]
+ ldr r6, _080BB914 @ =gBattle_BG3_X
+ lsls r0, r3, 16
+ asrs r0, 24
+ ldrh r4, [r6]
+ adds r0, r4
+ strh r0, [r6]
+ ldr r4, _080BB918 @ =gBattle_BG3_Y
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r7, [r4]
+ adds r0, r7
+ strh r0, [r4]
+ movs r0, 0xFF
+ ands r3, r0
+ strh r3, [r1, 0x1C]
+ ands r2, r0
+ strh r2, [r1, 0x1E]
+ ldr r0, _080BB91C @ =gBattleAnimArgs
+ movs r3, 0xE
+ ldrsh r2, [r0, r3]
+ movs r7, 0xE
+ ldrsh r0, [r1, r7]
+ cmp r2, r0
+ bne _080BB90A
+ mov r0, r12
+ strh r0, [r6]
+ strh r0, [r4]
+ movs r0, 0x1
+ bl sub_8075458
+ adds r0, r5, 0
+ bl DestroyTask
+_080BB90A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB910: .4byte gTasks
+_080BB914: .4byte gBattle_BG3_X
+_080BB918: .4byte gBattle_BG3_Y
+_080BB91C: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BB8A4
+
+ thumb_func_start sub_80BB920
+sub_80BB920: @ 80BB920
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080BB944 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ ldr r1, _080BB948 @ =gBattleAnimArgs
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0xE]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB944: .4byte gBattleAnimAttacker
+_080BB948: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BB920
+
+ thumb_func_start sub_80BB94C
+sub_80BB94C: @ 80BB94C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080BB970 @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ ldr r1, _080BB974 @ =gBattleAnimArgs
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0xE]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB970: .4byte gBattleAnimTarget
+_080BB974: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BB94C
+
+ thumb_func_start sub_80BB978
+sub_80BB978: @ 80BB978
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r5, _080BB9A4 @ =gBattleAnimArgs
+ movs r4, 0
+ ldr r0, _080BB9A8 @ =gBattleAnimAttacker
+ ldrb r2, [r0]
+ movs r0, 0x2
+ ldr r1, _080BB9AC @ =gBattleAnimTarget
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080BB994
+ movs r4, 0x1
+_080BB994:
+ strh r4, [r5, 0xE]
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB9A4: .4byte gBattleAnimArgs
+_080BB9A8: .4byte gBattleAnimAttacker
+_080BB9AC: .4byte gBattleAnimTarget
+ thumb_func_end sub_80BB978
+
+ thumb_func_start sub_80BB9B0
+sub_80BB9B0: @ 80BB9B0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r6, _080BBA10 @ =gSprites
+_080BB9BA:
+ ldr r0, _080BBA14 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _080BB9F8
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BB9F8
+ ldr r0, _080BBA18 @ =gBattlerSpriteIds
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldr r1, _080BBA1C @ =gBattleAnimArgs
+ adds r2, 0x3E
+ movs r0, 0x1
+ ldrb r3, [r1]
+ ands r3, r0
+ lsls r3, 2
+ ldrb r0, [r2]
+ movs r7, 0x5
+ negs r7, r7
+ adds r1, r7, 0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+_080BB9F8:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080BB9BA
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBA10: .4byte gSprites
+_080BBA14: .4byte gBattleAnimAttacker
+_080BBA18: .4byte gBattlerSpriteIds
+_080BBA1C: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BB9B0
+
+ thumb_func_start sub_80BBA20
+sub_80BBA20: @ 80BBA20
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ ldr r1, [sp, 0x44]
+ ldr r4, [sp, 0x48]
+ ldr r5, [sp, 0x4C]
+ ldr r6, [sp, 0x50]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp, 0x14]
+ lsls r3, 24
+ lsrs r7, r3, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp, 0x18]
+ lsls r5, 24
+ lsrs r5, 24
+ str r5, [sp, 0x1C]
+ lsls r6, 24
+ lsrs r6, 24
+ mov r10, r6
+ movs r0, 0
+ str r0, [sp, 0x20]
+ movs r0, 0x2
+ adds r6, r7, 0
+ eors r6, r0
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BBA82
+ mov r1, r8
+ cmp r1, 0
+ beq _080BBA86
+ adds r0, r6, 0
+ bl sub_8072DF0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BBA86
+_080BBA82:
+ movs r2, 0
+ mov r8, r2
+_080BBA86:
+ ldr r0, _080BBB20 @ =gUnknown_2022984
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080BBB24 @ =gUnknown_2022986
+ strh r1, [r0]
+ ldr r1, _080BBB28 @ =0x00003f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r1, _080BBB2C @ =0x00003f3d
+ movs r0, 0x4A
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 8
+ movs r0, 0
+ bl SetGpuRegBits
+ ldr r1, _080BBB30 @ =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0xA
+ bl GetGpuReg
+ add r4, sp, 0x10
+ strh r0, [r4]
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ mov r2, sp
+ adds r2, 0x11
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r2]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2]
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BBAFC
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080BBAFC:
+ ldrh r1, [r4]
+ movs r0, 0xA
+ bl SetGpuReg
+ adds r0, r7, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BBB3C
+ ldr r1, _080BBB34 @ =gBattlerPartyIndexes
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BBB38 @ =gEnemyParty
+ b _080BBB4A
+ .align 2, 0
+_080BBB20: .4byte gUnknown_2022984
+_080BBB24: .4byte gUnknown_2022986
+_080BBB28: .4byte 0x00003f3f
+_080BBB2C: .4byte 0x00003f3d
+_080BBB30: .4byte 0x00003f42
+_080BBB34: .4byte gBattlerPartyIndexes
+_080BBB38: .4byte gEnemyParty
+_080BBB3C:
+ ldr r1, _080BBC10 @ =gBattlerPartyIndexes
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BBC14 @ =gPlayerParty
+_080BBB4A:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r5, _080BBC18 @ =gBattlerSpriteIds
+ adds r0, r7, r5
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ adds r2, r4, 0
+ bl sub_8076E34
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r0, r8
+ cmp r0, 0
+ beq _080BBB80
+ adds r0, r6, r5
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl sub_8076E34
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x20]
+_080BBB80:
+ mov r0, sp
+ bl sub_80752A0
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, [sp, 0x58]
+ bl sub_807543C
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BBBA8
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80730C0
+_080BBBA8:
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ mov r1, sp
+ ldrh r2, [r1, 0xA]
+ ldr r1, [sp, 0x54]
+ bl sub_80753B4
+ mov r0, sp
+ ldrb r1, [r0, 0x8]
+ lsls r1, 4
+ ldr r0, [sp, 0x5C]
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r0, _080BBC1C @ =gBattle_BG1_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080BBC20 @ =gBattle_BG1_Y
+ strh r1, [r0]
+ ldr r1, _080BBC24 @ =gTasks
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ mov r1, sp
+ ldrh r1, [r1, 0x14]
+ strh r1, [r0, 0xA]
+ mov r2, sp
+ ldrh r2, [r2, 0x18]
+ strh r2, [r0, 0x10]
+ mov r1, r10
+ strh r1, [r0, 0x12]
+ mov r2, sp
+ ldrh r2, [r2, 0x1C]
+ strh r2, [r0, 0x14]
+ strh r7, [r0, 0x8]
+ mov r1, r8
+ strh r1, [r0, 0xC]
+ mov r2, sp
+ ldrh r2, [r2, 0x20]
+ strh r2, [r0, 0xE]
+ ldr r1, _080BBC28 @ =sub_80BBC2C
+ str r1, [r0]
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBC10: .4byte gBattlerPartyIndexes
+_080BBC14: .4byte gPlayerParty
+_080BBC18: .4byte gBattlerSpriteIds
+_080BBC1C: .4byte gBattle_BG1_X
+_080BBC20: .4byte gBattle_BG1_Y
+_080BBC24: .4byte gTasks
+_080BBC28: .4byte sub_80BBC2C
+ thumb_func_end sub_80BBA20
+
+ thumb_func_start sub_80BBC2C
+sub_80BBC2C: @ 80BBC2C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080BBC68 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r0, 0xA
+ ldrsh r2, [r3, r0]
+ adds r5, r1, 0
+ cmp r2, 0
+ bge _080BBC4A
+ negs r2, r2
+_080BBC4A:
+ ldrh r0, [r3, 0x22]
+ adds r4, r0, r2
+ strh r4, [r3, 0x22]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bge _080BBC70
+ ldr r2, _080BBC6C @ =gBattle_BG1_Y
+ lsls r1, r4, 16
+ asrs r1, 24
+ ldrh r0, [r2]
+ subs r0, r1
+ strh r0, [r2]
+ b _080BBC7C
+ .align 2, 0
+_080BBC68: .4byte gTasks
+_080BBC6C: .4byte gBattle_BG1_Y
+_080BBC70:
+ ldr r1, _080BBCA0 @ =gBattle_BG1_Y
+ lsls r0, r4, 16
+ asrs r0, 24
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+_080BBC7C:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r5
+ ldrh r1, [r5, 0x22]
+ movs r0, 0xFF
+ ands r0, r1
+ movs r2, 0
+ strh r0, [r5, 0x22]
+ movs r3, 0x26
+ ldrsh r0, [r5, r3]
+ cmp r0, 0x1
+ beq _080BBCE6
+ cmp r0, 0x1
+ bgt _080BBCA4
+ cmp r0, 0
+ beq _080BBCAA
+ b _080BBDD8
+ .align 2, 0
+_080BBCA0: .4byte gBattle_BG1_Y
+_080BBCA4:
+ cmp r0, 0x2
+ beq _080BBD00
+ b _080BBDD8
+_080BBCAA:
+ ldrh r0, [r5, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x14
+ ldrsh r1, [r5, r3]
+ cmp r0, r1
+ bge _080BBCBE
+ b _080BBDD8
+_080BBCBE:
+ strh r2, [r5, 0x1E]
+ ldrh r1, [r5, 0x20]
+ adds r1, 0x1
+ strh r1, [r5, 0x20]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x20
+ ldrsh r1, [r5, r0]
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bne _080BBDD8
+ b _080BBCF8
+_080BBCE6:
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x12
+ ldrsh r1, [r5, r3]
+ cmp r0, r1
+ bne _080BBDD8
+_080BBCF8:
+ ldrh r0, [r5, 0x26]
+ adds r0, 0x1
+ strh r0, [r5, 0x26]
+ b _080BBDD8
+_080BBD00:
+ ldrh r0, [r5, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x14
+ ldrsh r1, [r5, r3]
+ cmp r0, r1
+ blt _080BBDD8
+ strh r2, [r5, 0x1E]
+ ldrh r1, [r5, 0x20]
+ subs r1, 0x1
+ strh r1, [r5, 0x20]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x20
+ ldrsh r4, [r5, r0]
+ cmp r4, 0
+ bne _080BBDD8
+ movs r0, 0
+ bl sub_8073128
+ ldr r0, _080BBDE0 @ =gUnknown_2022984
+ strh r4, [r0]
+ ldr r0, _080BBDE4 @ =gUnknown_2022986
+ strh r4, [r0]
+ ldr r4, _080BBDE8 @ =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BBD7E
+ movs r0, 0xA
+ bl GetGpuReg
+ mov r1, sp
+ strh r0, [r1]
+ mov r2, sp
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ mov r0, sp
+ ldrh r1, [r0]
+ movs r0, 0xA
+ bl SetGpuReg
+_080BBD7E:
+ movs r0, 0
+ bl GetGpuReg
+ adds r1, r0, 0
+ movs r2, 0x80
+ lsls r2, 8
+ adds r0, r2, 0
+ eors r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r3, 0x8
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080BBDEC @ =gSprites
+ adds r0, r4
+ bl DestroySprite
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080BBDD2
+ movs r2, 0xE
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+_080BBDD2:
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080BBDD8:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBDE0: .4byte gUnknown_2022984
+_080BBDE4: .4byte gUnknown_2022986
+_080BBDE8: .4byte 0x00003f3f
+_080BBDEC: .4byte gSprites
+ thumb_func_end sub_80BBC2C
+
+ thumb_func_start sub_80BBDF0
+sub_80BBDF0: @ 80BBDF0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080BBE08 @ =gBattleAnimArgs
+ ldr r1, _080BBE0C @ =gUnknown_2022B50
+ ldrb r1, [r1]
+ strh r1, [r2]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBE08: .4byte gBattleAnimArgs
+_080BBE0C: .4byte gUnknown_2022B50
+ thumb_func_end sub_80BBDF0
+
+ thumb_func_start sub_80BBE10
+sub_80BBE10: @ 80BBE10
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x80
+ lsls r0, 6
+ bl AllocZeroed
+ ldr r1, _080BBE38 @ =gMonSpritesGfxPtr
+ ldr r1, [r1]
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r1, r2
+ str r0, [r1]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBE38: .4byte gMonSpritesGfxPtr
+ thumb_func_end sub_80BBE10
+
+ thumb_func_start sub_80BBE3C
+sub_80BBE3C: @ 80BBE3C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r6, _080BBE68 @ =gMonSpritesGfxPtr
+ ldr r0, [r6]
+ movs r5, 0xBE
+ lsls r5, 1
+ adds r0, r5
+ ldr r0, [r0]
+ bl Free
+ ldr r0, [r6]
+ adds r0, r5
+ movs r1, 0
+ str r1, [r0]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBE68: .4byte gMonSpritesGfxPtr
+ thumb_func_end sub_80BBE3C
+
+ thumb_func_start sub_80BBE6C
+sub_80BBE6C: @ 80BBE6C
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _080BBEAC @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080BBEB0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8075BE8
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080BBEC8
+ movs r2, 0x1
+_080BBE9E:
+ lsrs r1, 1
+ adds r4, 0x1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _080BBE9E
+ b _080BBEC8
+ .align 2, 0
+_080BBEAC: .4byte gBattleAnimArgs
+_080BBEB0:
+ cmp r0, 0x1
+ bne _080BBEBC
+ ldr r0, _080BBEB8 @ =gBattleAnimAttacker
+ b _080BBEC2
+ .align 2, 0
+_080BBEB8: .4byte gBattleAnimAttacker
+_080BBEBC:
+ cmp r0, 0x2
+ bne _080BBEC8
+ ldr r0, _080BBEF8 @ =gBattleAnimTarget
+_080BBEC2:
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+_080BBEC8:
+ ldr r0, _080BBEFC @ =gMonSpritesGfxPtr
+ ldr r1, [r0]
+ ldr r0, _080BBF00 @ =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r0, [r0, r2]
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r1, r2
+ ldr r1, [r1]
+ lsls r0, 5
+ adds r0, r1
+ lsls r1, r4, 5
+ ldr r2, _080BBF04 @ =gPlttBufferUnfaded
+ adds r1, r2
+ movs r2, 0x20
+ bl memcpy
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBEF8: .4byte gBattleAnimTarget
+_080BBEFC: .4byte gMonSpritesGfxPtr
+_080BBF00: .4byte gBattleAnimArgs
+_080BBF04: .4byte gPlttBufferUnfaded
+ thumb_func_end sub_80BBE6C
+
+ thumb_func_start sub_80BBF08
+sub_80BBF08: @ 80BBF08
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _080BBF48 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080BBF4C
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8075BE8
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080BBF64
+ movs r2, 0x1
+_080BBF3A:
+ lsrs r1, 1
+ adds r4, 0x1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _080BBF3A
+ b _080BBF64
+ .align 2, 0
+_080BBF48: .4byte gBattleAnimArgs
+_080BBF4C:
+ cmp r0, 0x1
+ bne _080BBF58
+ ldr r0, _080BBF54 @ =gBattleAnimAttacker
+ b _080BBF5E
+ .align 2, 0
+_080BBF54: .4byte gBattleAnimAttacker
+_080BBF58:
+ cmp r0, 0x2
+ bne _080BBF64
+ ldr r0, _080BBF94 @ =gBattleAnimTarget
+_080BBF5E:
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+_080BBF64:
+ lsls r0, r4, 5
+ ldr r1, _080BBF98 @ =gPlttBufferUnfaded
+ adds r0, r1
+ ldr r1, _080BBF9C @ =gMonSpritesGfxPtr
+ ldr r2, [r1]
+ ldr r1, _080BBFA0 @ =gBattleAnimArgs
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ movs r3, 0xBE
+ lsls r3, 1
+ adds r2, r3
+ ldr r2, [r2]
+ lsls r1, 5
+ adds r1, r2
+ movs r2, 0x20
+ bl memcpy
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBF94: .4byte gBattleAnimTarget
+_080BBF98: .4byte gPlttBufferUnfaded
+_080BBF9C: .4byte gMonSpritesGfxPtr
+_080BBFA0: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BBF08
+
+ thumb_func_start sub_80BBFA4
+sub_80BBFA4: @ 80BBFA4
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _080BBFE4 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080BBFE8
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8075BE8
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080BC000
+ movs r2, 0x1
+_080BBFD6:
+ lsrs r1, 1
+ adds r4, 0x1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _080BBFD6
+ b _080BC000
+ .align 2, 0
+_080BBFE4: .4byte gBattleAnimArgs
+_080BBFE8:
+ cmp r0, 0x1
+ bne _080BBFF4
+ ldr r0, _080BBFF0 @ =gBattleAnimAttacker
+ b _080BBFFA
+ .align 2, 0
+_080BBFF0: .4byte gBattleAnimAttacker
+_080BBFF4:
+ cmp r0, 0x2
+ bne _080BC000
+ ldr r0, _080BC020 @ =gBattleAnimTarget
+_080BBFFA:
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+_080BC000:
+ lsls r1, r4, 5
+ ldr r0, _080BC024 @ =gPlttBufferUnfaded
+ adds r0, r1, r0
+ ldr r2, _080BC028 @ =gPlttBufferFaded
+ adds r1, r2
+ movs r2, 0x20
+ bl memcpy
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC020: .4byte gBattleAnimTarget
+_080BC024: .4byte gPlttBufferUnfaded
+_080BC028: .4byte gPlttBufferFaded
+ thumb_func_end sub_80BBFA4
+
+ thumb_func_start sub_80BC02C
+sub_80BC02C: @ 80BC02C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8073788
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080BC04C
+ ldr r1, _080BC048 @ =gBattleAnimArgs
+ movs r0, 0x1
+ strh r0, [r1, 0xE]
+ b _080BC050
+ .align 2, 0
+_080BC048: .4byte gBattleAnimArgs
+_080BC04C:
+ ldr r0, _080BC05C @ =gBattleAnimArgs
+ strh r1, [r0, 0xE]
+_080BC050:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC05C: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BC02C
+
+ thumb_func_start sub_80BC060
+sub_80BC060: @ 80BC060
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080BC080 @ =gBattleAnimAttacker
+ ldr r1, _080BC084 @ =gBattlerTarget
+ ldrb r1, [r1]
+ strb r1, [r2]
+ ldr r2, _080BC088 @ =gBattleAnimTarget
+ ldr r1, _080BC08C @ =gUnknown_2023D6E
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC080: .4byte gBattleAnimAttacker
+_080BC084: .4byte gBattlerTarget
+_080BC088: .4byte gBattleAnimTarget
+_080BC08C: .4byte gUnknown_2023D6E
+ thumb_func_end sub_80BC060
+
+ thumb_func_start sub_80BC090
+sub_80BC090: @ 80BC090
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080BC0B8 @ =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ adds r4, r0, 0
+ ldr r0, _080BC0BC @ =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080BC0C4
+ ldr r1, _080BC0C0 @ =gBattleAnimArgs
+ movs r0, 0x1
+ b _080BC0C8
+ .align 2, 0
+_080BC0B8: .4byte gBattleAnimAttacker
+_080BC0BC: .4byte gBattleAnimTarget
+_080BC0C0: .4byte gBattleAnimArgs
+_080BC0C4:
+ ldr r1, _080BC0D8 @ =gBattleAnimArgs
+ movs r0, 0
+_080BC0C8:
+ strh r0, [r1, 0xE]
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC0D8: .4byte gBattleAnimArgs
+ thumb_func_end sub_80BC090
+
+ thumb_func_start sub_80BC0DC
+sub_80BC0DC: @ 80BC0DC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080BC0F4 @ =gBattleAnimTarget
+ ldr r1, _080BC0F8 @ =gBattlerTarget
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC0F4: .4byte gBattleAnimTarget
+_080BC0F8: .4byte gBattlerTarget
+ thumb_func_end sub_80BC0DC
+
+ thumb_func_start sub_80BC0FC
+sub_80BC0FC: @ 80BC0FC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080BC11C @ =gBattleAnimAttacker
+ ldr r1, _080BC120 @ =sBattler_AI
+ ldrb r1, [r1]
+ strb r1, [r2]
+ ldr r2, _080BC124 @ =gBattleAnimTarget
+ ldr r1, _080BC128 @ =gUnknown_2023D6E
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC11C: .4byte gBattleAnimAttacker
+_080BC120: .4byte sBattler_AI
+_080BC124: .4byte gBattleAnimTarget
+_080BC128: .4byte gUnknown_2023D6E
+ thumb_func_end sub_80BC0FC
+
+ thumb_func_start sub_80BC12C
+sub_80BC12C: @ 80BC12C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8073788
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BC144
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _080BC180
+_080BC144:
+ ldr r0, _080BC188 @ =gTasks
+ lsls r3, r4, 2
+ adds r3, r4
+ lsls r3, 3
+ adds r3, r0
+ ldr r0, _080BC18C @ =gUnknown_2024018
+ ldr r4, [r0]
+ ldr r2, _080BC190 @ =gBattleAnimAttacker
+ ldrb r0, [r2]
+ ldr r1, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ strh r0, [r3, 0x8]
+ ldrb r1, [r2]
+ ldr r0, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r0, _080BC194 @ =sub_80BC19C
+ str r0, [r3]
+ ldr r1, _080BC198 @ =gUnknown_2037EE2
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_080BC180:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC188: .4byte gTasks
+_080BC18C: .4byte gUnknown_2024018
+_080BC190: .4byte gBattleAnimAttacker
+_080BC194: .4byte sub_80BC19C
+_080BC198: .4byte gUnknown_2037EE2
+ thumb_func_end sub_80BC12C
+
+ thumb_func_start sub_80BC19C
+sub_80BC19C: @ 80BC19C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080BC1E8 @ =gBattleAnimArgs
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bne _080BC1E0
+ ldr r0, _080BC1EC @ =gUnknown_2024018
+ ldr r1, [r0]
+ ldr r0, _080BC1F0 @ =gBattleAnimAttacker
+ ldrb r3, [r0]
+ ldr r0, [r1]
+ lsls r3, 2
+ adds r3, r0
+ ldr r1, _080BC1F4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x1
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ adds r0, r4, 0
+ bl DestroyTask
+_080BC1E0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC1E8: .4byte gBattleAnimArgs
+_080BC1EC: .4byte gUnknown_2024018
+_080BC1F0: .4byte gBattleAnimAttacker
+_080BC1F4: .4byte gTasks
+ thumb_func_end sub_80BC19C
+
+ thumb_func_start SetAnimBgAttribute
+SetAnimBgAttribute: @ 80BC1F8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ cmp r6, 0x3
+ bls _080BC20C
+ b _080BC2FE
+_080BC20C:
+ ldr r0, _080BC228 @ =gUnknown_83E7CCA
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ bl GetGpuReg
+ ldr r1, _080BC22C @ =gUnknown_20399B8
+ strh r0, [r1]
+ cmp r5, 0x6
+ bhi _080BC2F0
+ lsls r0, r5, 2
+ ldr r1, _080BC230 @ =_080BC234
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BC228: .4byte gUnknown_83E7CCA
+_080BC22C: .4byte gUnknown_20399B8
+_080BC230: .4byte _080BC234
+ .align 2, 0
+_080BC234:
+ .4byte _080BC250
+ .4byte _080BC264
+ .4byte _080BC27C
+ .4byte _080BC294
+ .4byte _080BC2AC
+ .4byte _080BC2C8
+ .4byte _080BC2DC
+_080BC250:
+ ldr r2, _080BC260 @ =gUnknown_20399B8
+ lsls r3, r4, 6
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2, 0x1]
+ b _080BC2F0
+ .align 2, 0
+_080BC260: .4byte gUnknown_20399B8
+_080BC264:
+ ldr r3, _080BC278 @ =gUnknown_20399B8
+ movs r0, 0x1
+ adds r1, r4, 0
+ ands r1, r0
+ lsls r1, 5
+ ldrb r2, [r3, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ b _080BC2EA
+ .align 2, 0
+_080BC278: .4byte gUnknown_20399B8
+_080BC27C:
+ ldr r3, _080BC290 @ =gUnknown_20399B8
+ movs r0, 0x1
+ adds r1, r4, 0
+ ands r1, r0
+ lsls r1, 6
+ ldrb r2, [r3]
+ movs r0, 0x41
+ negs r0, r0
+ b _080BC2BA
+ .align 2, 0
+_080BC290: .4byte gUnknown_20399B8
+_080BC294:
+ ldr r3, _080BC2A8 @ =gUnknown_20399B8
+ movs r0, 0x3
+ adds r1, r4, 0
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0xD
+ negs r0, r0
+ b _080BC2BA
+ .align 2, 0
+_080BC2A8: .4byte gUnknown_20399B8
+_080BC2AC:
+ ldr r3, _080BC2C4 @ =gUnknown_20399B8
+ movs r0, 0x3
+ adds r1, r4, 0
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x4
+ negs r0, r0
+_080BC2BA:
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _080BC2F0
+ .align 2, 0
+_080BC2C4: .4byte gUnknown_20399B8
+_080BC2C8:
+ ldr r2, _080BC2D8 @ =gUnknown_20399B8
+ lsls r3, r4, 7
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+ b _080BC2F0
+ .align 2, 0
+_080BC2D8: .4byte gUnknown_20399B8
+_080BC2DC:
+ ldr r3, _080BC304 @ =gUnknown_20399B8
+ movs r0, 0x1F
+ adds r1, r4, 0
+ ands r1, r0
+ ldrb r2, [r3, 0x1]
+ movs r0, 0x20
+ negs r0, r0
+_080BC2EA:
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x1]
+_080BC2F0:
+ ldr r0, _080BC308 @ =gUnknown_83E7CCA
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ ldr r1, _080BC304 @ =gUnknown_20399B8
+ ldrh r1, [r1]
+ bl SetGpuReg
+_080BC2FE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC304: .4byte gUnknown_20399B8
+_080BC308: .4byte gUnknown_83E7CCA
+ thumb_func_end SetAnimBgAttribute
+
+ thumb_func_start sub_80BC30C
+sub_80BC30C: @ 80BC30C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ cmp r2, 0x3
+ bhi _080BC394
+ ldr r0, _080BC338 @ =gUnknown_83E7CCE
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ bl GetGpuReg
+ mov r1, sp
+ strh r0, [r1]
+ cmp r4, 0x6
+ bhi _080BC394
+ lsls r0, r4, 2
+ ldr r1, _080BC33C @ =_080BC340
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BC338: .4byte gUnknown_83E7CCE
+_080BC33C: .4byte _080BC340
+ .align 2, 0
+_080BC340:
+ .4byte _080BC35C
+ .4byte _080BC364
+ .4byte _080BC36C
+ .4byte _080BC374
+ .4byte _080BC37C
+ .4byte _080BC384
+ .4byte _080BC38C
+_080BC35C:
+ ldr r0, [sp]
+ lsls r0, 16
+ lsrs r0, 30
+ b _080BC396
+_080BC364:
+ ldr r0, [sp]
+ lsls r0, 18
+ lsrs r0, 31
+ b _080BC396
+_080BC36C:
+ ldr r0, [sp]
+ lsls r0, 25
+ lsrs r0, 31
+ b _080BC396
+_080BC374:
+ ldr r0, [sp]
+ lsls r0, 28
+ lsrs r0, 30
+ b _080BC396
+_080BC37C:
+ ldr r0, [sp]
+ lsls r0, 30
+ lsrs r0, 30
+ b _080BC396
+_080BC384:
+ ldr r0, [sp]
+ lsls r0, 24
+ lsrs r0, 31
+ b _080BC396
+_080BC38C:
+ ldr r0, [sp]
+ lsls r0, 19
+ lsrs r0, 27
+ b _080BC396
+_080BC394:
+ movs r0, 0
+_080BC396:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BC30C
+
+ thumb_func_start sub_80BC3A0
+sub_80BC3A0: @ 80BC3A0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080BC3B8 @ =gBattleTypeFlags
+ ldr r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC3C0
+ ldr r0, _080BC3BC @ =sub_80BCC4C
+ b _080BC3E8
+ .align 2, 0
+_080BC3B8: .4byte gBattleTypeFlags
+_080BC3BC: .4byte sub_80BCC4C
+_080BC3C0:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r1, r0
+ cmp r1, 0
+ beq _080BC3E0
+ ldr r0, _080BC3D8 @ =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _080BC3E0
+ movs r4, 0x3
+ ldr r0, _080BC3DC @ =task00_battle_intro_80BC6C8
+ b _080BC3E8
+ .align 2, 0
+_080BC3D8: .4byte gGameVersion
+_080BC3DC: .4byte task00_battle_intro_80BC6C8
+_080BC3E0:
+ ldr r1, _080BC414 @ =gUnknown_83E7CD4
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+_080BC3E8:
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080BC418 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ strh r0, [r1, 0xC]
+ strh r0, [r1, 0xE]
+ strh r0, [r1, 0x10]
+ strh r0, [r1, 0x12]
+ strh r0, [r1, 0x14]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC414: .4byte gUnknown_83E7CD4
+_080BC418: .4byte gTasks
+ thumb_func_end sub_80BC3A0
+
+ thumb_func_start sub_80BC41C
+sub_80BC41C: @ 80BC41C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ ldr r0, _080BC468 @ =gBattle_BG1_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080BC46C @ =gBattle_BG1_Y
+ strh r1, [r0]
+ ldr r0, _080BC470 @ =gBattle_BG2_X
+ strh r1, [r0]
+ ldr r0, _080BC474 @ =gBattle_BG2_Y
+ strh r1, [r0]
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ ldr r4, _080BC478 @ =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC468: .4byte gBattle_BG1_X
+_080BC46C: .4byte gBattle_BG1_Y
+_080BC470: .4byte gBattle_BG2_X
+_080BC474: .4byte gBattle_BG2_Y
+_080BC478: .4byte 0x00003f3f
+ thumb_func_end sub_80BC41C
+
+ thumb_func_start task_battle_intro_80BC47C
+task_battle_intro_80BC47C: @ 80BC47C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080BC4B4 @ =gBattle_BG1_X
+ ldrh r0, [r1]
+ adds r0, 0x6
+ strh r0, [r1]
+ ldr r1, _080BC4B8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ mov r8, r1
+ cmp r0, 0x4
+ bls _080BC4A8
+ b _080BC6BA
+_080BC4A8:
+ lsls r0, 2
+ ldr r1, _080BC4BC @ =_080BC4C0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BC4B4: .4byte gBattle_BG1_X
+_080BC4B8: .4byte gTasks
+_080BC4BC: .4byte _080BC4C0
+ .align 2, 0
+_080BC4C0:
+ .4byte _080BC4D4
+ .4byte _080BC504
+ .4byte _080BC52C
+ .4byte _080BC574
+ .4byte _080BC6B4
+_080BC4D4:
+ ldr r0, _080BC4EC @ =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC4F0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r8
+ movs r1, 0x10
+ b _080BC4FA
+ .align 2, 0
+_080BC4EC: .4byte gBattleTypeFlags
+_080BC4F0:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r8
+ movs r1, 0x1
+_080BC4FA:
+ strh r1, [r0, 0xC]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080BC6BA
+_080BC504:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ mov r3, r8
+ adds r1, r0, r3
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080BC51C
+ b _080BC6BA
+_080BC51C:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0x48
+ movs r1, 0x3F
+ bl SetGpuReg
+ b _080BC6BA
+_080BC52C:
+ ldr r1, _080BC568 @ =gUnknown_2022986
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _080BC544
+ b _080BC6BA
+_080BC544:
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ add r1, r8
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ ldr r2, _080BC56C @ =gUnknown_2023F4C
+ ldrh r1, [r2]
+ ldr r0, _080BC570 @ =0x0000fffe
+ ands r0, r1
+ strh r0, [r2]
+ b _080BC6BA
+ .align 2, 0
+_080BC568: .4byte gUnknown_2022986
+_080BC56C: .4byte gUnknown_2023F4C
+_080BC570: .4byte 0x0000fffe
+_080BC574:
+ lsls r0, r4, 2
+ adds r1, r0, r4
+ lsls r1, 3
+ mov r5, r8
+ adds r2, r1, r5
+ ldrh r3, [r2, 0xE]
+ movs r5, 0xE
+ ldrsh r1, [r2, r5]
+ mov r12, r0
+ cmp r1, 0
+ beq _080BC590
+ subs r0, r3, 0x1
+ strh r0, [r2, 0xE]
+ b _080BC5BE
+_080BC590:
+ movs r1, 0xA
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _080BC5B0
+ ldr r2, _080BC5A8 @ =gBattle_BG1_Y
+ ldrh r1, [r2]
+ ldr r0, _080BC5AC @ =0x0000ffb0
+ cmp r1, r0
+ beq _080BC5BE
+ subs r0, r1, 0x2
+ b _080BC5BC
+ .align 2, 0
+_080BC5A8: .4byte gBattle_BG1_Y
+_080BC5AC: .4byte 0x0000ffb0
+_080BC5B0:
+ ldr r2, _080BC690 @ =gBattle_BG1_Y
+ ldrh r1, [r2]
+ ldr r0, _080BC694 @ =0x0000ffc8
+ cmp r1, r0
+ beq _080BC5BE
+ subs r0, r1, 0x1
+_080BC5BC:
+ strh r0, [r2]
+_080BC5BE:
+ ldr r2, _080BC698 @ =gUnknown_2022986
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC5D2
+ ldr r3, _080BC69C @ =0xfffffc04
+ adds r0, r1, r3
+ strh r0, [r2]
+_080BC5D2:
+ mov r5, r12
+ adds r0, r5, r4
+ lsls r0, 3
+ mov r2, r8
+ adds r1, r0, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080BC5EA
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080BC5EA:
+ movs r3, 0
+ ldr r5, _080BC6A0 @ =gScanlineEffect
+ mov r9, r5
+ ldr r7, _080BC6A4 @ =gScanlineEffectRegBuffers
+ mov r6, r9
+ adds r5, r1, 0
+_080BC5F6:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r5, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _080BC5F6
+ cmp r3, 0x9F
+ bgt _080BC63A
+ ldr r7, _080BC6A4 @ =gScanlineEffectRegBuffers
+ ldr r6, _080BC6A0 @ =gScanlineEffect
+ ldr r1, _080BC6A8 @ =gTasks
+ mov r2, r12
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r5, r0, r1
+_080BC620:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r5, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _080BC620
+_080BC63A:
+ mov r3, r12
+ adds r0, r3, r4
+ lsls r0, 3
+ mov r5, r8
+ adds r1, r0, r5
+ movs r0, 0xC
+ ldrsh r2, [r1, r0]
+ cmp r2, 0
+ bne _080BC6BA
+ movs r0, 0x3
+ mov r3, r9
+ strb r0, [r3, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r2, [sp]
+ ldr r1, _080BC6AC @ =0x0600e000
+ ldr r2, _080BC6B0 @ =0x05000200
+ mov r0, sp
+ bl CpuSet
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r1, 0x9C
+ lsls r1, 8
+ movs r0, 0xA
+ bl SetGpuReg
+ movs r1, 0xBC
+ lsls r1, 7
+ movs r0, 0xC
+ bl SetGpuReg
+ b _080BC6BA
+ .align 2, 0
+_080BC690: .4byte gBattle_BG1_Y
+_080BC694: .4byte 0x0000ffc8
+_080BC698: .4byte gUnknown_2022986
+_080BC69C: .4byte 0xfffffc04
+_080BC6A0: .4byte gScanlineEffect
+_080BC6A4: .4byte gScanlineEffectRegBuffers
+_080BC6A8: .4byte gTasks
+_080BC6AC: .4byte 0x0600e000
+_080BC6B0: .4byte 0x05000200
+_080BC6B4:
+ adds r0, r4, 0
+ bl sub_80BC41C
+_080BC6BA:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end task_battle_intro_80BC47C
+
+ thumb_func_start task00_battle_intro_80BC6C8
+task00_battle_intro_80BC6C8: @ 80BC6C8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080BC6F4 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0xA
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x3
+ beq _080BC708
+ cmp r0, 0x3
+ bgt _080BC6F8
+ cmp r0, 0x2
+ beq _080BC6FC
+ b _080BC710
+ .align 2, 0
+_080BC6F4: .4byte gTasks
+_080BC6F8:
+ cmp r0, 0x4
+ bne _080BC710
+_080BC6FC:
+ ldr r1, _080BC704 @ =gBattle_BG1_X
+ ldrh r0, [r1]
+ adds r0, 0x8
+ b _080BC70E
+ .align 2, 0
+_080BC704: .4byte gBattle_BG1_X
+_080BC708:
+ ldr r1, _080BC74C @ =gBattle_BG1_X
+ ldrh r0, [r1]
+ adds r0, 0x6
+_080BC70E:
+ strh r0, [r1]
+_080BC710:
+ lsls r0, r5, 2
+ adds r1, r0, r5
+ lsls r1, 3
+ adds r4, r1, r2
+ movs r3, 0xA
+ ldrsh r1, [r4, r3]
+ adds r6, r0, 0
+ cmp r1, 0x4
+ bne _080BC774
+ ldr r7, _080BC750 @ =gBattle_BG1_Y
+ ldrh r0, [r4, 0x14]
+ bl Cos2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080BC736
+ ldr r1, _080BC754 @ =0x000001ff
+ adds r0, r1
+_080BC736:
+ asrs r0, 9
+ subs r0, 0x8
+ strh r0, [r7]
+ ldrh r1, [r4, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xB3
+ bgt _080BC758
+ adds r0, r1, 0x4
+ b _080BC75A
+ .align 2, 0
+_080BC74C: .4byte gBattle_BG1_X
+_080BC750: .4byte gBattle_BG1_Y
+_080BC754: .4byte 0x000001ff
+_080BC758:
+ adds r0, r1, 0x6
+_080BC75A:
+ strh r0, [r4, 0x14]
+ ldr r2, _080BC790 @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ movs r0, 0x14
+ ldrsh r1, [r3, r0]
+ movs r0, 0xB4
+ lsls r0, 1
+ cmp r1, r0
+ bne _080BC774
+ movs r0, 0
+ strh r0, [r3, 0x14]
+_080BC774:
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x4
+ bls _080BC784
+ b _080BC9AA
+_080BC784:
+ lsls r0, 2
+ ldr r1, _080BC794 @ =_080BC798
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BC790: .4byte gTasks
+_080BC794: .4byte _080BC798
+ .align 2, 0
+_080BC798:
+ .4byte _080BC7AC
+ .4byte _080BC7DC
+ .4byte _080BC808
+ .4byte _080BC858
+ .4byte _080BC9A4
+_080BC7AC:
+ ldr r1, _080BC7C8 @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x10
+ strh r3, [r2, 0x10]
+ ldr r0, _080BC7CC @ =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC7D0
+ strh r3, [r2, 0xC]
+ b _080BC7D4
+ .align 2, 0
+_080BC7C8: .4byte gTasks
+_080BC7CC: .4byte gBattleTypeFlags
+_080BC7D0:
+ movs r0, 0x1
+ strh r0, [r2, 0xC]
+_080BC7D4:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080BC9AA
+_080BC7DC:
+ ldr r0, _080BC804 @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080BC7F2
+ b _080BC9AA
+_080BC7F2:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0x48
+ movs r1, 0x3F
+ bl SetGpuReg
+ b _080BC9AA
+ .align 2, 0
+_080BC804: .4byte gTasks
+_080BC808:
+ ldr r1, _080BC848 @ =gUnknown_2022986
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _080BC820
+ b _080BC9AA
+_080BC820:
+ ldr r0, _080BC84C @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ movs r0, 0x1
+ strh r0, [r1, 0x12]
+ ldr r2, _080BC850 @ =gUnknown_2023F4C
+ ldrh r1, [r2]
+ ldr r0, _080BC854 @ =0x0000fffe
+ ands r0, r1
+ strh r0, [r2]
+ b _080BC9AA
+ .align 2, 0
+_080BC848: .4byte gUnknown_2022986
+_080BC84C: .4byte gTasks
+_080BC850: .4byte gUnknown_2023F4C
+_080BC854: .4byte 0x0000fffe
+_080BC858:
+ ldr r0, _080BC890 @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080BC898
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080BC8B8
+ ldr r1, _080BC894 @ =0x00001842
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0xF
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ b _080BC8B8
+ .align 2, 0
+_080BC890: .4byte gTasks
+_080BC894: .4byte 0x00001842
+_080BC898:
+ ldrh r2, [r1, 0x10]
+ movs r0, 0x1F
+ ands r0, r2
+ cmp r0, 0
+ beq _080BC8B8
+ ldrh r0, [r1, 0x12]
+ subs r0, 0x1
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080BC8B8
+ adds r0, r2, 0
+ adds r0, 0xFF
+ strh r0, [r1, 0x10]
+ movs r0, 0x4
+ strh r0, [r1, 0x12]
+_080BC8B8:
+ ldr r2, _080BC988 @ =gUnknown_2022986
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC8CC
+ ldr r3, _080BC98C @ =0xfffffc04
+ adds r0, r1, r3
+ strh r0, [r2]
+_080BC8CC:
+ ldr r0, _080BC990 @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080BC8E2
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080BC8E2:
+ movs r3, 0
+ ldr r0, _080BC994 @ =gScanlineEffect
+ mov r8, r0
+ ldr r2, _080BC998 @ =gScanlineEffectRegBuffers
+ mov r12, r2
+ mov r7, r8
+ adds r4, r1, 0
+_080BC8F0:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r12
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _080BC8F0
+ cmp r3, 0x9F
+ bgt _080BC934
+ ldr r0, _080BC998 @ =gScanlineEffectRegBuffers
+ mov r12, r0
+ ldr r7, _080BC994 @ =gScanlineEffect
+ ldr r1, _080BC990 @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r4, r0, r1
+_080BC91A:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r12
+ ldrh r0, [r4, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _080BC91A
+_080BC934:
+ ldr r1, _080BC990 @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r3, 0xC
+ ldrsh r2, [r1, r3]
+ cmp r2, 0
+ bne _080BC9AA
+ movs r0, 0x3
+ mov r3, r8
+ strb r0, [r3, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r2, [sp]
+ ldr r1, _080BC99C @ =0x0600e000
+ ldr r2, _080BC9A0 @ =0x05000200
+ mov r0, sp
+ bl CpuSet
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r1, 0x9C
+ lsls r1, 8
+ movs r0, 0xA
+ bl SetGpuReg
+ movs r1, 0xBC
+ lsls r1, 7
+ movs r0, 0xC
+ bl SetGpuReg
+ b _080BC9AA
+ .align 2, 0
+_080BC988: .4byte gUnknown_2022986
+_080BC98C: .4byte 0xfffffc04
+_080BC990: .4byte gTasks
+_080BC994: .4byte gScanlineEffect
+_080BC998: .4byte gScanlineEffectRegBuffers
+_080BC99C: .4byte 0x0600e000
+_080BC9A0: .4byte 0x05000200
+_080BC9A4:
+ adds r0, r5, 0
+ bl sub_80BC41C
+_080BC9AA:
+ ldr r0, _080BC9D0 @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x4
+ beq _080BC9C2
+ ldrh r1, [r1, 0x10]
+ movs r0, 0x52
+ bl SetGpuReg
+_080BC9C2:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC9D0: .4byte gTasks
+ thumb_func_end task00_battle_intro_80BC6C8
+
+ thumb_func_start task_battle_intro_anim
+task_battle_intro_anim: @ 80BC9D4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080BCA08 @ =gBattle_BG1_X
+ ldrh r0, [r1]
+ adds r0, 0x8
+ strh r0, [r1]
+ ldr r1, _080BCA0C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bls _080BC9FE
+ b _080BCC22
+_080BC9FE:
+ lsls r0, 2
+ ldr r1, _080BCA10 @ =_080BCA14
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BCA08: .4byte gBattle_BG1_X
+_080BCA0C: .4byte gTasks
+_080BCA10: .4byte _080BCA14
+ .align 2, 0
+_080BCA14:
+ .4byte _080BCA28
+ .4byte _080BCA7C
+ .4byte _080BCAA8
+ .4byte _080BCAF8
+ .4byte _080BCC1C
+_080BCA28:
+ ldr r1, _080BCA60 @ =0x00001842
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r4, _080BCA64 @ =0x00000808
+ movs r0, 0x52
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ ldr r1, _080BCA68 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ strh r4, [r2, 0x10]
+ ldr r0, _080BCA6C @ =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BCA70
+ movs r0, 0x10
+ b _080BCA72
+ .align 2, 0
+_080BCA60: .4byte 0x00001842
+_080BCA64: .4byte 0x00000808
+_080BCA68: .4byte gTasks
+_080BCA6C: .4byte gBattleTypeFlags
+_080BCA70:
+ movs r0, 0x1
+_080BCA72:
+ strh r0, [r2, 0xC]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080BCC22
+_080BCA7C:
+ ldr r0, _080BCAA4 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080BCA94
+ b _080BCC22
+_080BCA94:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0x48
+ movs r1, 0x3F
+ bl SetGpuReg
+ b _080BCC22
+ .align 2, 0
+_080BCAA4: .4byte gTasks
+_080BCAA8:
+ ldr r1, _080BCAE8 @ =gUnknown_2022986
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _080BCAC0
+ b _080BCC22
+_080BCAC0:
+ ldr r0, _080BCAEC @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ movs r0, 0x1
+ strh r0, [r1, 0x12]
+ ldr r2, _080BCAF0 @ =gUnknown_2023F4C
+ ldrh r1, [r2]
+ ldr r0, _080BCAF4 @ =0x0000fffe
+ ands r0, r1
+ strh r0, [r2]
+ b _080BCC22
+ .align 2, 0
+_080BCAE8: .4byte gUnknown_2022986
+_080BCAEC: .4byte gTasks
+_080BCAF0: .4byte gUnknown_2023F4C
+_080BCAF4: .4byte 0x0000fffe
+_080BCAF8:
+ lsls r0, r5, 2
+ adds r1, r0, r5
+ lsls r1, 3
+ adds r2, r1, r4
+ ldrh r3, [r2, 0xE]
+ movs r6, 0xE
+ ldrsh r1, [r2, r6]
+ mov r12, r0
+ cmp r1, 0
+ beq _080BCB12
+ subs r0, r3, 0x1
+ strh r0, [r2, 0xE]
+ b _080BCB32
+_080BCB12:
+ ldrh r1, [r2, 0x10]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ beq _080BCB32
+ ldrh r0, [r2, 0x12]
+ subs r0, 0x1
+ strh r0, [r2, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080BCB32
+ adds r0, r1, 0
+ adds r0, 0xFF
+ strh r0, [r2, 0x10]
+ movs r0, 0x6
+ strh r0, [r2, 0x12]
+_080BCB32:
+ ldr r2, _080BCC00 @ =gUnknown_2022986
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080BCB46
+ ldr r3, _080BCC04 @ =0xfffffc04
+ adds r0, r1, r3
+ strh r0, [r2]
+_080BCB46:
+ mov r6, r12
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r4
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080BCB5C
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080BCB5C:
+ movs r3, 0
+ ldr r6, _080BCC08 @ =gScanlineEffect
+ mov r8, r6
+ ldr r7, _080BCC0C @ =gScanlineEffectRegBuffers
+ adds r4, r1, 0
+_080BCB66:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _080BCB66
+ cmp r3, 0x9F
+ bgt _080BCBAA
+ ldr r7, _080BCC0C @ =gScanlineEffectRegBuffers
+ ldr r6, _080BCC08 @ =gScanlineEffect
+ ldr r1, _080BCC10 @ =gTasks
+ mov r2, r12
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r4, r0, r1
+_080BCB90:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r4, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _080BCB90
+_080BCBAA:
+ ldr r1, _080BCC10 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r3, 0xC
+ ldrsh r2, [r1, r3]
+ cmp r2, 0
+ bne _080BCC22
+ movs r0, 0x3
+ mov r6, r8
+ strb r0, [r6, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r2, [sp]
+ ldr r1, _080BCC14 @ =0x0600e000
+ ldr r2, _080BCC18 @ =0x05000200
+ mov r0, sp
+ bl CpuSet
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r1, 0x9C
+ lsls r1, 8
+ movs r0, 0xA
+ bl SetGpuReg
+ movs r1, 0xBC
+ lsls r1, 7
+ movs r0, 0xC
+ bl SetGpuReg
+ b _080BCC22
+ .align 2, 0
+_080BCC00: .4byte gUnknown_2022986
+_080BCC04: .4byte 0xfffffc04
+_080BCC08: .4byte gScanlineEffect
+_080BCC0C: .4byte gScanlineEffectRegBuffers
+_080BCC10: .4byte gTasks
+_080BCC14: .4byte 0x0600e000
+_080BCC18: .4byte 0x05000200
+_080BCC1C:
+ adds r0, r5, 0
+ bl sub_80BC41C
+_080BCC22:
+ ldr r0, _080BCC48 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x4
+ beq _080BCC3C
+ ldrh r1, [r1, 0x10]
+ movs r0, 0x52
+ bl SetGpuReg
+_080BCC3C:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCC48: .4byte gTasks
+ thumb_func_end task_battle_intro_anim
+
+ thumb_func_start sub_80BCC4C
+sub_80BCC4C: @ 80BCC4C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080BCC98 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r7, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x1
+ ble _080BCCC2
+ movs r2, 0x10
+ ldrsh r0, [r7, r2]
+ cmp r0, 0
+ bne _080BCCC2
+ ldr r2, _080BCC9C @ =gBattle_BG1_X
+ ldrh r1, [r2]
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ bne _080BCC8A
+ cmp r1, 0x4F
+ bhi _080BCCA4
+_080BCC8A:
+ adds r0, r1, 0x3
+ strh r0, [r2]
+ ldr r1, _080BCCA0 @ =gBattle_BG2_X
+ ldrh r0, [r1]
+ subs r0, 0x3
+ strh r0, [r1]
+ b _080BCCC2
+ .align 2, 0
+_080BCC98: .4byte gTasks
+_080BCC9C: .4byte gBattle_BG1_X
+_080BCCA0: .4byte gBattle_BG2_X
+_080BCCA4:
+ str r5, [sp]
+ ldr r1, _080BCCE4 @ =0x0600e000
+ ldr r4, _080BCCE8 @ =0x05000200
+ mov r0, sp
+ adds r2, r4, 0
+ bl CpuSet
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ ldr r1, _080BCCEC @ =0x0600f000
+ adds r2, r4, 0
+ bl CpuSet
+ movs r0, 0x1
+ strh r0, [r7, 0x10]
+_080BCCC2:
+ ldr r0, _080BCCF0 @ =gTasks
+ lsls r2, r6, 2
+ adds r1, r2, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0x8
+ ldrsh r1, [r1, r3]
+ mov r9, r0
+ adds r5, r2, 0
+ cmp r1, 0x4
+ bls _080BCCDA
+ b _080BCEE6
+_080BCCDA:
+ lsls r0, r1, 2
+ ldr r1, _080BCCF4 @ =_080BCCF8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BCCE4: .4byte 0x0600e000
+_080BCCE8: .4byte 0x05000200
+_080BCCEC: .4byte 0x0600f000
+_080BCCF0: .4byte gTasks
+_080BCCF4: .4byte _080BCCF8
+ .align 2, 0
+_080BCCF8:
+ .4byte _080BCD0C
+ .4byte _080BCD1E
+ .4byte _080BCDC4
+ .4byte _080BCE08
+ .4byte _080BCEE0
+_080BCD0C:
+ adds r0, r5, r6
+ lsls r0, 3
+ add r0, r9
+ movs r1, 0x20
+ strh r1, [r0, 0xC]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080BCEE6
+_080BCD1E:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r2, r9
+ adds r1, r0, r2
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080BCD34
+ b _080BCEE6
+_080BCD34:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r4, _080BCDB4 @ =gSprites
+ ldr r5, _080BCDB8 @ =gBattleStruct
+ ldr r0, [r5]
+ adds r0, 0x7D
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r3, [r1, 0x1]
+ movs r2, 0xD
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ movs r3, 0x8
+ mov r9, r3
+ mov r3, r9
+ orrs r0, r3
+ strb r0, [r1, 0x1]
+ ldr r3, [r5]
+ adds r0, r3, 0
+ adds r0, 0x7D
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ movs r1, 0x1C
+ adds r1, r4
+ mov r8, r1
+ add r0, r8
+ ldr r6, _080BCDBC @ =sub_801182C
+ str r6, [r0]
+ adds r3, 0x7E
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ ands r2, r1
+ mov r3, r9
+ orrs r2, r3
+ strb r2, [r0, 0x1]
+ ldr r0, [r5]
+ adds r0, 0x7E
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ str r6, [r0]
+ movs r0, 0x48
+ movs r1, 0x3F
+ bl SetGpuReg
+ ldr r1, _080BCDC0 @ =0x00003f06
+ movs r0, 0x4A
+ bl SetGpuReg
+ b _080BCEE6
+ .align 2, 0
+_080BCDB4: .4byte gSprites
+_080BCDB8: .4byte gBattleStruct
+_080BCDBC: .4byte sub_801182C
+_080BCDC0: .4byte 0x00003f06
+_080BCDC4:
+ ldr r1, _080BCDFC @ =gUnknown_2022986
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _080BCDDC
+ b _080BCEE6
+_080BCDDC:
+ adds r1, r5, r6
+ lsls r1, 3
+ add r1, r9
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ ldr r2, _080BCE00 @ =gUnknown_2023F4C
+ ldrh r1, [r2]
+ ldr r0, _080BCE04 @ =0x0000fffe
+ ands r0, r1
+ strh r0, [r2]
+ b _080BCEE6
+ .align 2, 0
+_080BCDFC: .4byte gUnknown_2022986
+_080BCE00: .4byte gUnknown_2023F4C
+_080BCE04: .4byte 0x0000fffe
+_080BCE08:
+ ldr r2, _080BCECC @ =gUnknown_2022986
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080BCE1C
+ ldr r3, _080BCED0 @ =0xfffffc04
+ adds r0, r1, r3
+ strh r0, [r2]
+_080BCE1C:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r2, r9
+ adds r1, r0, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080BCE32
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080BCE32:
+ movs r3, 0
+ ldr r0, _080BCED4 @ =gScanlineEffect
+ mov r12, r0
+ ldr r2, _080BCED8 @ =gScanlineEffectRegBuffers
+ mov r8, r2
+ mov r7, r12
+ adds r4, r1, 0
+_080BCE40:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r8
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _080BCE40
+ cmp r3, 0x9F
+ bgt _080BCE84
+ ldr r0, _080BCED8 @ =gScanlineEffectRegBuffers
+ mov r8, r0
+ ldr r7, _080BCED4 @ =gScanlineEffect
+ ldr r1, _080BCEDC @ =gTasks
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r4, r0, r1
+_080BCE6A:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r8
+ ldrh r0, [r4, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _080BCE6A
+_080BCE84:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r2, r9
+ adds r1, r0, r2
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080BCEE6
+ movs r0, 0x3
+ mov r2, r12
+ strb r0, [r2, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r1, 0x9C
+ lsls r1, 8
+ movs r0, 0xA
+ bl SetGpuReg
+ movs r1, 0xBC
+ lsls r1, 7
+ movs r0, 0xC
+ bl SetGpuReg
+ b _080BCEE6
+ .align 2, 0
+_080BCECC: .4byte gUnknown_2022986
+_080BCED0: .4byte 0xfffffc04
+_080BCED4: .4byte gScanlineEffect
+_080BCED8: .4byte gScanlineEffectRegBuffers
+_080BCEDC: .4byte gTasks
+_080BCEE0:
+ adds r0, r6, 0
+ bl sub_80BC41C
+_080BCEE6:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BCC4C
+
+ thumb_func_start sub_80BCEF4
+sub_80BCEF4: @ 80BCEF4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ str r0, [sp]
+ adds r6, r2, 0
+ adds r4, r3, 0
+ ldr r0, [sp, 0x24]
+ ldr r7, [sp, 0x28]
+ ldr r2, [sp, 0x2C]
+ mov r9, r2
+ ldr r5, [sp, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080BCFC4 @ =gMonSpritesGfxPtr
+ ldr r2, [r1]
+ lsls r4, 2
+ adds r2, 0x4
+ adds r2, r4
+ ldr r1, _080BCFC8 @ =gBattleMonForms
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r1, 11
+ ldr r0, [r2]
+ adds r0, r1
+ movs r2, 0x80
+ lsls r2, 3
+ adds r1, r7, 0
+ bl CpuSet
+ ldr r1, [sp]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 5
+ adds r1, r7, 0
+ adds r3, r5, 0
+ bl LoadBgTiles
+ adds r0, r6, 0
+ adds r0, 0x8
+ cmp r6, r0
+ bge _080BCFA0
+ mov r12, r0
+ mov r2, r8
+ lsls r7, r2, 1
+_080BCF72:
+ mov r1, r8
+ adds r2, r1, 0
+ adds r2, 0x8
+ adds r4, r6, 0x1
+ cmp r1, r2
+ bge _080BCF9A
+ mov r0, r10
+ lsls r3, r0, 12
+ lsls r0, r6, 6
+ add r0, r9
+ adds r6, r7, r0
+ subs r1, r2, r1
+_080BCF8A:
+ adds r0, r5, 0
+ orrs r0, r3
+ strh r0, [r6]
+ adds r5, 0x1
+ adds r6, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bne _080BCF8A
+_080BCF9A:
+ adds r6, r4, 0
+ cmp r6, r12
+ blt _080BCF72
+_080BCFA0:
+ ldr r1, [sp]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 4
+ mov r1, r9
+ movs r3, 0
+ bl LoadBgTilemap
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCFC4: .4byte gMonSpritesGfxPtr
+_080BCFC8: .4byte gBattleMonForms
+ thumb_func_end sub_80BCEF4
+
+ thumb_func_start sub_80BCFCC
+sub_80BCFCC: @ 80BCFCC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r4, [sp, 0x24]
+ ldr r5, [sp, 0x28]
+ mov r8, r5
+ ldr r5, [sp, 0x2C]
+ ldr r6, [sp, 0x30]
+ mov r9, r6
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r1, 24
+ lsls r2, 24
+ lsls r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r10, r4
+ mov r7, r8
+ lsls r7, 16
+ lsrs r6, r7, 16
+ lsls r5, 24
+ lsrs r5, 24
+ mov r0, r9
+ lsls r0, 24
+ mov r9, r0
+ ldr r4, _080BD090 @ =0x040000d4
+ ldr r0, _080BD094 @ =gMonSpritesGfxPtr
+ ldr r0, [r0]
+ lsrs r2, 22
+ adds r0, 0x4
+ adds r0, r2
+ lsrs r3, 13
+ ldr r0, [r0]
+ adds r0, r3
+ str r0, [r4]
+ movs r0, 0xC0
+ lsls r0, 19
+ adds r6, r0
+ str r6, [r4, 0x4]
+ ldr r0, _080BD098 @ =0x80000400
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ adds r2, r7, 0
+ lsrs r2, 21
+ mov r6, r9
+ lsrs r6, 15
+ subs r4, r2, r6
+ lsrs r0, r1, 24
+ adds r1, r0, 0
+ adds r1, 0x8
+ cmp r0, r1
+ bge _080BD080
+ mov r9, r1
+ mov r7, r12
+ lsls r7, 1
+ mov r8, r7
+ lsls r5, 11
+ str r5, [sp]
+_080BD048:
+ mov r2, r12
+ adds r3, r2, 0
+ adds r3, 0x8
+ adds r5, r0, 0x1
+ cmp r2, r3
+ bge _080BD07A
+ mov r1, r10
+ lsls r6, r1, 12
+ lsls r0, 6
+ movs r7, 0xC0
+ lsls r7, 19
+ adds r0, r7
+ ldr r1, [sp]
+ adds r0, r1, r0
+ mov r7, r8
+ adds r1, r7, r0
+ subs r2, r3, r2
+_080BD06A:
+ adds r0, r4, 0
+ orrs r0, r6
+ strh r0, [r1]
+ adds r4, 0x1
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080BD06A
+_080BD07A:
+ adds r0, r5, 0
+ cmp r0, r9
+ blt _080BD048
+_080BD080:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BD090: .4byte 0x040000d4
+_080BD094: .4byte gMonSpritesGfxPtr
+_080BD098: .4byte 0x80000400
+ thumb_func_end sub_80BCFCC
+
+ .align 2, 0 @ Don't pad with nop.