summaryrefslogtreecommitdiff
path: root/asm/battle_intro.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/battle_intro.s')
-rwxr-xr-xasm/battle_intro.s1668
1 files changed, 1668 insertions, 0 deletions
diff --git a/asm/battle_intro.s b/asm/battle_intro.s
new file mode 100755
index 000000000..3ff14b441
--- /dev/null
+++ b/asm/battle_intro.s
@@ -0,0 +1,1668 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ @ intro
+
+ thumb_func_start sub_80E43C0
+sub_80E43C0: @ 80E43C0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E43D8 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E43E0
+ ldr r0, _080E43DC @ =sub_80E4C34
+ b _080E4408
+ .align 2, 0
+_080E43D8: .4byte gBattleTypeFlags
+_080E43DC: .4byte sub_80E4C34
+_080E43E0:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4400
+ ldr r0, _080E43F8 @ =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _080E4400
+ movs r4, 0x3
+ ldr r0, _080E43FC @ =task00_battle_intro_80BC6C8
+ b _080E4408
+ .align 2, 0
+_080E43F8: .4byte gGameVersion
+_080E43FC: .4byte task00_battle_intro_80BC6C8
+_080E4400:
+ ldr r1, _080E4434 @ =gUnknown_083DB56C
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+_080E4408:
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080E4438 @ =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
+_080E4434: .4byte gUnknown_083DB56C
+_080E4438: .4byte gTasks
+ thumb_func_end sub_80E43C0
+
+ thumb_func_start sub_80E443C
+sub_80E443C: @ 80E443C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ ldr r0, _080E4474 @ =gUnknown_030042C0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E4478 @ =gUnknown_030041B4
+ strh r1, [r0]
+ ldr r0, _080E447C @ =gUnknown_03004288
+ strh r1, [r0]
+ ldr r0, _080E4480 @ =gUnknown_03004280
+ strh r1, [r0]
+ ldr r0, _080E4484 @ =REG_BLDCNT
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0xC
+ ldr r2, _080E4488 @ =0x00003f3f
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4474: .4byte gUnknown_030042C0
+_080E4478: .4byte gUnknown_030041B4
+_080E447C: .4byte gUnknown_03004288
+_080E4480: .4byte gUnknown_03004280
+_080E4484: .4byte REG_BLDCNT
+_080E4488: .4byte 0x00003f3f
+ thumb_func_end sub_80E443C
+
+ thumb_func_start task_battle_intro_80BC47C
+task_battle_intro_80BC47C: @ 80E448C
+ 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, _080E44C4 @ =gUnknown_030042C0
+ ldrh r0, [r1]
+ adds r0, 0x6
+ strh r0, [r1]
+ ldr r1, _080E44C8 @ =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 _080E44B8
+ b _080E46BE
+_080E44B8:
+ lsls r0, 2
+ ldr r1, _080E44CC @ =_080E44D0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E44C4: .4byte gUnknown_030042C0
+_080E44C8: .4byte gTasks
+_080E44CC: .4byte _080E44D0
+ .align 2, 0
+_080E44D0:
+ .4byte _080E44E4
+ .4byte _080E4514
+ .4byte _080E4540
+ .4byte _080E4588
+ .4byte _080E46B8
+_080E44E4:
+ ldr r0, _080E44FC @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4500
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r8
+ movs r1, 0x10
+ b _080E450A
+ .align 2, 0
+_080E44FC: .4byte gBattleTypeFlags
+_080E4500:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r8
+ movs r1, 0x1
+_080E450A:
+ strh r1, [r0, 0xC]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080E46BE
+_080E4514:
+ 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 _080E452C
+ b _080E46BE
+_080E452C:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r1, _080E453C @ =REG_WININ
+ movs r0, 0x3F
+ strh r0, [r1]
+ b _080E46BE
+ .align 2, 0
+_080E453C: .4byte REG_WININ
+_080E4540:
+ ldr r1, _080E457C @ =gUnknown_03004240
+ 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 _080E4558
+ b _080E46BE
+_080E4558:
+ 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, _080E4580 @ =gUnknown_02024DE8
+ ldrh r1, [r2]
+ ldr r0, _080E4584 @ =0x0000fffe
+ ands r0, r1
+ strh r0, [r2]
+ b _080E46BE
+ .align 2, 0
+_080E457C: .4byte gUnknown_03004240
+_080E4580: .4byte gUnknown_02024DE8
+_080E4584: .4byte 0x0000fffe
+_080E4588:
+ 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 _080E45A4
+ subs r0, r3, 0x1
+ strh r0, [r2, 0xE]
+ b _080E45D2
+_080E45A4:
+ movs r1, 0xA
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _080E45C4
+ ldr r2, _080E45BC @ =gUnknown_030041B4
+ ldrh r1, [r2]
+ ldr r0, _080E45C0 @ =0x0000ffb0
+ cmp r1, r0
+ beq _080E45D2
+ subs r0, r1, 0x2
+ b _080E45D0
+ .align 2, 0
+_080E45BC: .4byte gUnknown_030041B4
+_080E45C0: .4byte 0x0000ffb0
+_080E45C4:
+ ldr r2, _080E4690 @ =gUnknown_030041B4
+ ldrh r1, [r2]
+ ldr r0, _080E4694 @ =0x0000ffc8
+ cmp r1, r0
+ beq _080E45D2
+ subs r0, r1, 0x1
+_080E45D0:
+ strh r0, [r2]
+_080E45D2:
+ ldr r2, _080E4698 @ =gUnknown_03004240
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E45E6
+ ldr r3, _080E469C @ =0xfffffc04
+ adds r0, r1, r3
+ strh r0, [r2]
+_080E45E6:
+ 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 _080E45FE
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080E45FE:
+ movs r3, 0
+ ldr r5, _080E46A0 @ =gUnknown_03004DC0
+ mov r9, r5
+ ldr r7, _080E46A4 @ =gUnknown_03004DE0
+ mov r6, r9
+ adds r5, r1, 0
+_080E460A:
+ 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 _080E460A
+ cmp r3, 0x9F
+ bgt _080E464E
+ ldr r7, _080E46A4 @ =gUnknown_03004DE0
+ ldr r6, _080E46A0 @ =gUnknown_03004DC0
+ ldr r1, _080E46A8 @ =gTasks
+ mov r2, r12
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r5, r0, r1
+_080E4634:
+ 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 _080E4634
+_080E464E:
+ 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 _080E46BE
+ 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, _080E46AC @ =0x0600e000
+ ldr r2, _080E46B0 @ =0x05000200
+ mov r0, sp
+ bl CpuSet
+ ldr r1, _080E46B4 @ =REG_BG1CNT
+ movs r5, 0x9C
+ lsls r5, 8
+ adds r0, r5, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0xBC
+ lsls r2, 7
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080E46BE
+ .align 2, 0
+_080E4690: .4byte gUnknown_030041B4
+_080E4694: .4byte 0x0000ffc8
+_080E4698: .4byte gUnknown_03004240
+_080E469C: .4byte 0xfffffc04
+_080E46A0: .4byte gUnknown_03004DC0
+_080E46A4: .4byte gUnknown_03004DE0
+_080E46A8: .4byte gTasks
+_080E46AC: .4byte 0x0600e000
+_080E46B0: .4byte 0x05000200
+_080E46B4: .4byte REG_BG1CNT
+_080E46B8:
+ adds r0, r4, 0
+ bl sub_80E443C
+_080E46BE:
+ 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: @ 80E46CC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080E46F8 @ =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 _080E470C
+ cmp r0, 0x3
+ bgt _080E46FC
+ cmp r0, 0x2
+ beq _080E4700
+ b _080E4714
+ .align 2, 0
+_080E46F8: .4byte gTasks
+_080E46FC:
+ cmp r0, 0x4
+ bne _080E4714
+_080E4700:
+ ldr r1, _080E4708 @ =gUnknown_030042C0
+ ldrh r0, [r1]
+ adds r0, 0x8
+ b _080E4712
+ .align 2, 0
+_080E4708: .4byte gUnknown_030042C0
+_080E470C:
+ ldr r1, _080E4750 @ =gUnknown_030042C0
+ ldrh r0, [r1]
+ adds r0, 0x6
+_080E4712:
+ strh r0, [r1]
+_080E4714:
+ 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 _080E4778
+ ldr r7, _080E4754 @ =gUnknown_030041B4
+ ldrh r0, [r4, 0x14]
+ bl Cos2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080E473A
+ ldr r1, _080E4758 @ =0x000001ff
+ adds r0, r1
+_080E473A:
+ asrs r0, 9
+ subs r0, 0x8
+ strh r0, [r7]
+ ldrh r1, [r4, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xB3
+ bgt _080E475C
+ adds r0, r1, 0x4
+ b _080E475E
+ .align 2, 0
+_080E4750: .4byte gUnknown_030042C0
+_080E4754: .4byte gUnknown_030041B4
+_080E4758: .4byte 0x000001ff
+_080E475C:
+ adds r0, r1, 0x6
+_080E475E:
+ strh r0, [r4, 0x14]
+ ldr r2, _080E4794 @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ movs r4, 0x14
+ ldrsh r1, [r3, r4]
+ movs r0, 0xB4
+ lsls r0, 1
+ cmp r1, r0
+ bne _080E4778
+ movs r0, 0
+ strh r0, [r3, 0x14]
+_080E4778:
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x4
+ bls _080E4788
+ b _080E4996
+_080E4788:
+ lsls r0, 2
+ ldr r1, _080E4798 @ =_080E479C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E4794: .4byte gTasks
+_080E4798: .4byte _080E479C
+ .align 2, 0
+_080E479C:
+ .4byte _080E47B0
+ .4byte _080E47E0
+ .4byte _080E480C
+ .4byte _080E485C
+ .4byte _080E4990
+_080E47B0:
+ ldr r1, _080E47CC @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x10
+ strh r3, [r2, 0x10]
+ ldr r0, _080E47D0 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E47D4
+ strh r3, [r2, 0xC]
+ b _080E47D8
+ .align 2, 0
+_080E47CC: .4byte gTasks
+_080E47D0: .4byte gBattleTypeFlags
+_080E47D4:
+ movs r0, 0x1
+ strh r0, [r2, 0xC]
+_080E47D8:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080E4996
+_080E47E0:
+ ldr r0, _080E4804 @ =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 _080E47F6
+ b _080E4996
+_080E47F6:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r1, _080E4808 @ =REG_WININ
+ movs r0, 0x3F
+ strh r0, [r1]
+ b _080E4996
+ .align 2, 0
+_080E4804: .4byte gTasks
+_080E4808: .4byte REG_WININ
+_080E480C:
+ ldr r1, _080E484C @ =gUnknown_03004240
+ 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 _080E4824
+ b _080E4996
+_080E4824:
+ ldr r0, _080E4850 @ =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, _080E4854 @ =gUnknown_02024DE8
+ ldrh r1, [r2]
+ ldr r0, _080E4858 @ =0x0000fffe
+ ands r0, r1
+ strh r0, [r2]
+ b _080E4996
+ .align 2, 0
+_080E484C: .4byte gUnknown_03004240
+_080E4850: .4byte gTasks
+_080E4854: .4byte gUnknown_02024DE8
+_080E4858: .4byte 0x0000fffe
+_080E485C:
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r3, [r1, 0xE]
+ movs r4, 0xE
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ beq _080E4898
+ subs r0, r3, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ asrs r3, r0, 16
+ cmp r3, 0
+ bne _080E48B8
+ ldr r1, _080E488C @ =REG_BLDCNT
+ ldr r4, _080E4890 @ =0x00001842
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0xF
+ strh r0, [r1]
+ ldr r0, _080E4894 @ =REG_BLDY
+ strh r3, [r0]
+ b _080E48B8
+ .align 2, 0
+_080E488C: .4byte REG_BLDCNT
+_080E4890: .4byte 0x00001842
+_080E4894: .4byte REG_BLDY
+_080E4898:
+ ldrh r3, [r1, 0x10]
+ movs r0, 0x1F
+ ands r0, r3
+ cmp r0, 0
+ beq _080E48B8
+ ldrh r0, [r1, 0x12]
+ subs r0, 0x1
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080E48B8
+ adds r0, r3, 0
+ adds r0, 0xFF
+ strh r0, [r1, 0x10]
+ movs r0, 0x4
+ strh r0, [r1, 0x12]
+_080E48B8:
+ ldr r3, _080E4970 @ =gUnknown_03004240
+ ldrh r1, [r3]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E48CC
+ ldr r4, _080E4974 @ =0xfffffc04
+ adds r0, r1, r4
+ strh r0, [r3]
+_080E48CC:
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080E48E0
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080E48E0:
+ movs r3, 0
+ ldr r4, _080E4978 @ =gUnknown_03004DC0
+ mov r8, r4
+ ldr r0, _080E497C @ =gUnknown_03004DE0
+ mov r12, r0
+ mov r7, r8
+ adds r4, r1, 0
+_080E48EE:
+ 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 _080E48EE
+ cmp r3, 0x9F
+ bgt _080E4932
+ ldr r1, _080E497C @ =gUnknown_03004DE0
+ mov r12, r1
+ ldr r7, _080E4978 @ =gUnknown_03004DC0
+ ldr r1, _080E4980 @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r4, r0, r1
+_080E4918:
+ 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 _080E4918
+_080E4932:
+ ldr r1, _080E4980 @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r3, 0xC
+ ldrsh r2, [r1, r3]
+ cmp r2, 0
+ bne _080E4996
+ movs r0, 0x3
+ mov r4, r8
+ strb r0, [r4, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r2, [sp]
+ ldr r1, _080E4984 @ =0x0600e000
+ ldr r2, _080E4988 @ =0x05000200
+ mov r0, sp
+ bl CpuSet
+ ldr r1, _080E498C @ =REG_BG1CNT
+ movs r2, 0x9C
+ lsls r2, 8
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0xBC
+ lsls r3, 7
+ adds r0, r3, 0
+ strh r0, [r1]
+ b _080E4996
+ .align 2, 0
+_080E4970: .4byte gUnknown_03004240
+_080E4974: .4byte 0xfffffc04
+_080E4978: .4byte gUnknown_03004DC0
+_080E497C: .4byte gUnknown_03004DE0
+_080E4980: .4byte gTasks
+_080E4984: .4byte 0x0600e000
+_080E4988: .4byte 0x05000200
+_080E498C: .4byte REG_BG1CNT
+_080E4990:
+ adds r0, r5, 0
+ bl sub_80E443C
+_080E4996:
+ ldr r0, _080E49B8 @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r2, r1, r0
+ movs r4, 0x8
+ ldrsh r0, [r2, r4]
+ cmp r0, 0x4
+ beq _080E49AC
+ ldr r1, _080E49BC @ =REG_BLDALPHA
+ ldrh r0, [r2, 0x10]
+ strh r0, [r1]
+_080E49AC:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E49B8: .4byte gTasks
+_080E49BC: .4byte REG_BLDALPHA
+ thumb_func_end task00_battle_intro_80BC6C8
+
+ thumb_func_start task_battle_intro_anim
+task_battle_intro_anim: @ 80E49C0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080E49F4 @ =gUnknown_030042C0
+ ldrh r0, [r1]
+ adds r0, 0x8
+ strh r0, [r1]
+ ldr r1, _080E49F8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r5, r1, 0
+ cmp r0, 0x4
+ bls _080E49EA
+ b _080E4C06
+_080E49EA:
+ lsls r0, 2
+ ldr r1, _080E49FC @ =_080E4A00
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E49F4: .4byte gUnknown_030042C0
+_080E49F8: .4byte gTasks
+_080E49FC: .4byte _080E4A00
+ .align 2, 0
+_080E4A00:
+ .4byte _080E4A14
+ .4byte _080E4A6C
+ .4byte _080E4A9C
+ .4byte _080E4AEC
+ .4byte _080E4C00
+_080E4A14:
+ ldr r1, _080E4A48 @ =REG_BLDCNT
+ ldr r3, _080E4A4C @ =0x00001842
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _080E4A50 @ =REG_BLDALPHA
+ ldr r6, _080E4A54 @ =0x00000808
+ adds r2, r6, 0
+ strh r2, [r0]
+ adds r1, 0x4
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _080E4A58 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r3, r0, r1
+ strh r2, [r3, 0x10]
+ ldr r0, _080E4A5C @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4A60
+ movs r0, 0x10
+ b _080E4A62
+ .align 2, 0
+_080E4A48: .4byte REG_BLDCNT
+_080E4A4C: .4byte 0x00001842
+_080E4A50: .4byte REG_BLDALPHA
+_080E4A54: .4byte 0x00000808
+_080E4A58: .4byte gTasks
+_080E4A5C: .4byte gBattleTypeFlags
+_080E4A60:
+ movs r0, 0x1
+_080E4A62:
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _080E4C06
+_080E4A6C:
+ ldr r0, _080E4A94 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080E4A84
+ b _080E4C06
+_080E4A84:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r1, _080E4A98 @ =REG_WININ
+ movs r0, 0x3F
+ strh r0, [r1]
+ b _080E4C06
+ .align 2, 0
+_080E4A94: .4byte gTasks
+_080E4A98: .4byte REG_WININ
+_080E4A9C:
+ ldr r1, _080E4ADC @ =gUnknown_03004240
+ 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 _080E4AB4
+ b _080E4C06
+_080E4AB4:
+ ldr r0, _080E4AE0 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ 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, _080E4AE4 @ =gUnknown_02024DE8
+ ldrh r1, [r2]
+ ldr r0, _080E4AE8 @ =0x0000fffe
+ ands r0, r1
+ strh r0, [r2]
+ b _080E4C06
+ .align 2, 0
+_080E4ADC: .4byte gUnknown_03004240
+_080E4AE0: .4byte gTasks
+_080E4AE4: .4byte gUnknown_02024DE8
+_080E4AE8: .4byte 0x0000fffe
+_080E4AEC:
+ lsls r0, r4, 2
+ adds r1, r0, r4
+ lsls r1, 3
+ adds r2, r1, r5
+ ldrh r3, [r2, 0xE]
+ movs r6, 0xE
+ ldrsh r1, [r2, r6]
+ mov r12, r0
+ cmp r1, 0
+ beq _080E4B06
+ subs r0, r3, 0x1
+ strh r0, [r2, 0xE]
+ b _080E4B26
+_080E4B06:
+ ldrh r1, [r2, 0x10]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4B26
+ ldrh r0, [r2, 0x12]
+ subs r0, 0x1
+ strh r0, [r2, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080E4B26
+ adds r0, r1, 0
+ adds r0, 0xFF
+ strh r0, [r2, 0x10]
+ movs r0, 0x6
+ strh r0, [r2, 0x12]
+_080E4B26:
+ ldr r2, _080E4BE0 @ =gUnknown_03004240
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4B3A
+ ldr r3, _080E4BE4 @ =0xfffffc04
+ adds r0, r1, r3
+ strh r0, [r2]
+_080E4B3A:
+ mov r6, r12
+ adds r0, r6, r4
+ lsls r0, 3
+ adds r1, r0, r5
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080E4B50
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080E4B50:
+ movs r3, 0
+ ldr r6, _080E4BE8 @ =gUnknown_03004DC0
+ mov r8, r6
+ ldr r7, _080E4BEC @ =gUnknown_03004DE0
+ adds r5, r1, 0
+_080E4B5A:
+ 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 _080E4B5A
+ cmp r3, 0x9F
+ bgt _080E4B9E
+ ldr r7, _080E4BEC @ =gUnknown_03004DE0
+ ldr r6, _080E4BE8 @ =gUnknown_03004DC0
+ ldr r1, _080E4BF0 @ =gTasks
+ mov r2, r12
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r5, r0, r1
+_080E4B84:
+ 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 _080E4B84
+_080E4B9E:
+ ldr r1, _080E4BF0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r3, 0xC
+ ldrsh r2, [r1, r3]
+ cmp r2, 0
+ bne _080E4C06
+ 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, _080E4BF4 @ =0x0600e000
+ ldr r2, _080E4BF8 @ =0x05000200
+ mov r0, sp
+ bl CpuSet
+ ldr r1, _080E4BFC @ =REG_BG1CNT
+ movs r2, 0x9C
+ lsls r2, 8
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0xBC
+ lsls r3, 7
+ adds r0, r3, 0
+ strh r0, [r1]
+ b _080E4C06
+ .align 2, 0
+_080E4BE0: .4byte gUnknown_03004240
+_080E4BE4: .4byte 0xfffffc04
+_080E4BE8: .4byte gUnknown_03004DC0
+_080E4BEC: .4byte gUnknown_03004DE0
+_080E4BF0: .4byte gTasks
+_080E4BF4: .4byte 0x0600e000
+_080E4BF8: .4byte 0x05000200
+_080E4BFC: .4byte REG_BG1CNT
+_080E4C00:
+ adds r0, r4, 0
+ bl sub_80E443C
+_080E4C06:
+ ldr r0, _080E4C2C @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r2, r1, r0
+ movs r6, 0x8
+ ldrsh r0, [r2, r6]
+ cmp r0, 0x4
+ beq _080E4C1E
+ ldr r1, _080E4C30 @ =REG_BLDALPHA
+ ldrh r0, [r2, 0x10]
+ strh r0, [r1]
+_080E4C1E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4C2C: .4byte gTasks
+_080E4C30: .4byte REG_BLDALPHA
+ thumb_func_end task_battle_intro_anim
+
+ thumb_func_start sub_80E4C34
+sub_80E4C34: @ 80E4C34
+ 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, _080E4C80 @ =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 _080E4CAA
+ movs r2, 0x10
+ ldrsh r0, [r7, r2]
+ cmp r0, 0
+ bne _080E4CAA
+ ldr r2, _080E4C84 @ =gUnknown_030042C0
+ ldrh r1, [r2]
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ bne _080E4C72
+ cmp r1, 0x4F
+ bhi _080E4C8C
+_080E4C72:
+ adds r0, r1, 0x3
+ strh r0, [r2]
+ ldr r1, _080E4C88 @ =gUnknown_03004288
+ ldrh r0, [r1]
+ subs r0, 0x3
+ strh r0, [r1]
+ b _080E4CAA
+ .align 2, 0
+_080E4C80: .4byte gTasks
+_080E4C84: .4byte gUnknown_030042C0
+_080E4C88: .4byte gUnknown_03004288
+_080E4C8C:
+ str r5, [sp]
+ ldr r1, _080E4CCC @ =0x0600e000
+ ldr r4, _080E4CD0 @ =0x05000200
+ mov r0, sp
+ adds r2, r4, 0
+ bl CpuSet
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ ldr r1, _080E4CD4 @ =0x0600f000
+ adds r2, r4, 0
+ bl CpuSet
+ movs r0, 0x1
+ strh r0, [r7, 0x10]
+_080E4CAA:
+ ldr r0, _080E4CD8 @ =gTasks
+ lsls r2, r6, 2
+ adds r1, r2, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0x8
+ ldrsh r1, [r1, r3]
+ mov r12, r0
+ adds r5, r2, 0
+ cmp r1, 0x4
+ bls _080E4CC2
+ b _080E4EBA
+_080E4CC2:
+ lsls r0, r1, 2
+ ldr r1, _080E4CDC @ =_080E4CE0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E4CCC: .4byte 0x0600e000
+_080E4CD0: .4byte 0x05000200
+_080E4CD4: .4byte 0x0600f000
+_080E4CD8: .4byte gTasks
+_080E4CDC: .4byte _080E4CE0
+ .align 2, 0
+_080E4CE0:
+ .4byte _080E4CF4
+ .4byte _080E4D06
+ .4byte _080E4DA8
+ .4byte _080E4DEC
+ .4byte _080E4EB4
+_080E4CF4:
+ adds r0, r5, r6
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x10
+ strh r1, [r0, 0xC]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080E4EBA
+_080E4D06:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r2, r12
+ adds r1, r0, r2
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080E4D1C
+ b _080E4EBA
+_080E4D1C:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r5, _080E4D8C @ =gSprites
+ ldr r4, _080E4D90 @ =gSharedMem
+ ldr r3, _080E4D94 @ =0x0001608a
+ adds r6, r4, r3
+ ldrb r0, [r6]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r3, [r1, 0x1]
+ movs r2, 0xD
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ movs r3, 0x8
+ mov r8, r3
+ mov r3, r8
+ orrs r0, r3
+ strb r0, [r1, 0x1]
+ ldrb r1, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r6, r5, 0
+ adds r6, 0x1C
+ adds r0, r6
+ ldr r3, _080E4D98 @ =sub_800FE20
+ str r3, [r0]
+ ldr r0, _080E4D9C @ =0x0001608b
+ adds r4, r0
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ ands r2, r1
+ mov r1, r8
+ orrs r2, r1
+ strb r2, [r0, 0x1]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ str r3, [r0]
+ ldr r1, _080E4DA0 @ =REG_WININ
+ movs r0, 0x3F
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080E4DA4 @ =0x00003f06
+ b _080E4E94
+ .align 2, 0
+_080E4D8C: .4byte gSprites
+_080E4D90: .4byte gSharedMem
+_080E4D94: .4byte 0x0001608a
+_080E4D98: .4byte sub_800FE20
+_080E4D9C: .4byte 0x0001608b
+_080E4DA0: .4byte REG_WININ
+_080E4DA4: .4byte 0x00003f06
+_080E4DA8:
+ ldr r1, _080E4DE0 @ =gUnknown_03004240
+ 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 _080E4DC0
+ b _080E4EBA
+_080E4DC0:
+ adds r1, r5, r6
+ lsls r1, 3
+ add r1, r12
+ 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, _080E4DE4 @ =gUnknown_02024DE8
+ ldrh r1, [r2]
+ ldr r0, _080E4DE8 @ =0x0000fffe
+ ands r0, r1
+ strh r0, [r2]
+ b _080E4EBA
+ .align 2, 0
+_080E4DE0: .4byte gUnknown_03004240
+_080E4DE4: .4byte gUnknown_02024DE8
+_080E4DE8: .4byte 0x0000fffe
+_080E4DEC:
+ ldr r2, _080E4E9C @ =gUnknown_03004240
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4E00
+ ldr r3, _080E4EA0 @ =0xfffffc04
+ adds r0, r1, r3
+ strh r0, [r2]
+_080E4E00:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r2, r12
+ adds r1, r0, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080E4E16
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080E4E16:
+ movs r3, 0
+ ldr r0, _080E4EA4 @ =gUnknown_03004DC0
+ mov r9, r0
+ ldr r2, _080E4EA8 @ =gUnknown_03004DE0
+ mov r8, r2
+ mov r7, r9
+ adds r4, r1, 0
+_080E4E24:
+ 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 _080E4E24
+ cmp r3, 0x9F
+ bgt _080E4E68
+ ldr r0, _080E4EA8 @ =gUnknown_03004DE0
+ mov r8, r0
+ ldr r7, _080E4EA4 @ =gUnknown_03004DC0
+ ldr r1, _080E4EAC @ =gTasks
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r4, r0, r1
+_080E4E4E:
+ 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 _080E4E4E
+_080E4E68:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r2, r12
+ adds r1, r0, r2
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080E4EBA
+ movs r0, 0x3
+ mov r2, r9
+ strb r0, [r2, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r1, _080E4EB0 @ =REG_BG1CNT
+ movs r3, 0x9C
+ lsls r3, 8
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0xBC
+ lsls r2, 7
+_080E4E94:
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080E4EBA
+ .align 2, 0
+_080E4E9C: .4byte gUnknown_03004240
+_080E4EA0: .4byte 0xfffffc04
+_080E4EA4: .4byte gUnknown_03004DC0
+_080E4EA8: .4byte gUnknown_03004DE0
+_080E4EAC: .4byte gTasks
+_080E4EB0: .4byte REG_BG1CNT
+_080E4EB4:
+ adds r0, r6, 0
+ bl sub_80E443C
+_080E4EBA:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E4C34
+
+ thumb_func_start unref_sub_80E4EC8
+unref_sub_80E4EC8: @ 80E4EC8
+ push {r4,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ movs r4, 0x80
+ lsls r4, 7
+ str r4, [sp]
+ movs r4, 0x1E
+ str r4, [sp, 0x4]
+ movs r4, 0x1
+ str r4, [sp, 0x8]
+ bl sub_80E4EF8
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_80E4EC8
+
+ thumb_func_start sub_80E4EF8
+sub_80E4EF8: @ 80E4EF8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r9, r1
+ adds r4, r2, 0
+ ldr r1, [sp, 0x24]
+ mov r8, r1
+ ldr r1, [sp, 0x28]
+ ldr r5, [sp, 0x2C]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ mov r7, r9
+ lsls r7, 24
+ adds r0, r7, 0
+ lsrs r0, 24
+ mov r9, r0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp]
+ mov r3, r8
+ lsls r3, 16
+ mov r8, r3
+ lsrs r6, r3, 16
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r4, 0
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E4FCC @ =0x040000d4
+ ldr r1, _080E4FD0 @ =gUnknown_081FAF4C
+ lsls r4, 2
+ adds r4, r1
+ ldr r1, _080E4FD4 @ =gBattleMonForms
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r1, 11
+ ldr r0, [r4]
+ adds r0, r1
+ str r0, [r2]
+ movs r0, 0xC0
+ lsls r0, 19
+ adds r6, r0
+ str r6, [r2, 0x4]
+ ldr r0, _080E4FD8 @ =0x80000400
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ mov r0, r8
+ lsrs r0, 21
+ lsls r5, 9
+ subs r5, r0, r5
+ mov r0, r9
+ adds r1, r0, 0
+ adds r1, 0x8
+ cmp r0, r1
+ bge _080E4FBC
+ mov r9, r1
+ mov r1, r10
+ lsls r1, 1
+ mov r8, r1
+ lsls r7, 11
+ mov r12, r7
+_080E4F86:
+ mov r2, r10
+ adds r4, r2, 0
+ adds r4, 0x8
+ adds r1, r0, 0x1
+ cmp r2, r4
+ bge _080E4FB6
+ ldr r3, [sp]
+ lsls r6, r3, 12
+ lsls r0, 6
+ movs r7, 0xC0
+ lsls r7, 19
+ adds r0, r7
+ add r0, r12
+ mov r7, r8
+ adds r3, r7, r0
+ subs r2, r4, r2
+_080E4FA6:
+ adds r0, r5, 0
+ orrs r0, r6
+ strh r0, [r3]
+ adds r5, 0x1
+ adds r3, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080E4FA6
+_080E4FB6:
+ adds r0, r1, 0
+ cmp r0, r9
+ blt _080E4F86
+_080E4FBC:
+ 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
+_080E4FCC: .4byte 0x040000d4
+_080E4FD0: .4byte gUnknown_081FAF4C
+_080E4FD4: .4byte gBattleMonForms
+_080E4FD8: .4byte 0x80000400
+ thumb_func_end sub_80E4EF8
+
+ thumb_func_start unref_sub_80E4FDC
+unref_sub_80E4FDC: @ 80E4FDC
+ 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, _080E509C @ =0x040000d4
+ ldr r0, _080E50A0 @ =gUnknown_081FAF4C
+ lsrs r2, 22
+ adds r2, r0
+ lsrs r3, 13
+ ldr r0, [r2]
+ adds r0, r3
+ str r0, [r4]
+ movs r0, 0xC0
+ lsls r0, 19
+ adds r6, r0
+ str r6, [r4, 0x4]
+ ldr r0, _080E50A4 @ =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 _080E508C
+ mov r9, r1
+ mov r7, r12
+ lsls r7, 1
+ mov r8, r7
+ lsls r5, 11
+ str r5, [sp]
+_080E5054:
+ mov r2, r12
+ adds r3, r2, 0
+ adds r3, 0x8
+ adds r5, r0, 0x1
+ cmp r2, r3
+ bge _080E5086
+ 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
+_080E5076:
+ adds r0, r4, 0
+ orrs r0, r6
+ strh r0, [r1]
+ adds r4, 0x1
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080E5076
+_080E5086:
+ adds r0, r5, 0
+ cmp r0, r9
+ blt _080E5054
+_080E508C:
+ 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
+_080E509C: .4byte 0x040000d4
+_080E50A0: .4byte gUnknown_081FAF4C
+_080E50A4: .4byte 0x80000400
+ thumb_func_end unref_sub_80E4FDC
+
+ .align 2, 0 @ Don't pad with nop.