Files
Pokemon-Firered/asm/battle_intro.s
T
2019-10-08 02:38:45 +08:00

1870 lines
31 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
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 HandleIntroSlide
HandleIntroSlide: @ 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 HandleIntroSlide
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 @ =gBattle_WIN0V
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 @ =gIntroSlideFlags
ldrh r1, [r2]
ldr r0, _080BC570 @ =0x0000fffe
ands r0, r1
strh r0, [r2]
b _080BC6BA
.align 2, 0
_080BC568: .4byte gBattle_WIN0V
_080BC56C: .4byte gIntroSlideFlags
_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 @ =gBattle_WIN0V
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 gBattle_WIN0V
_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 @ =gBattle_WIN0V
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 @ =gIntroSlideFlags
ldrh r1, [r2]
ldr r0, _080BC854 @ =0x0000fffe
ands r0, r1
strh r0, [r2]
b _080BC9AA
.align 2, 0
_080BC848: .4byte gBattle_WIN0V
_080BC84C: .4byte gTasks
_080BC850: .4byte gIntroSlideFlags
_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 @ =gBattle_WIN0V
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 gBattle_WIN0V
_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 @ =gBattle_WIN0V
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 @ =gIntroSlideFlags
ldrh r1, [r2]
ldr r0, _080BCAF4 @ =0x0000fffe
ands r0, r1
strh r0, [r2]
b _080BCC22
.align 2, 0
_080BCAE8: .4byte gBattle_WIN0V
_080BCAEC: .4byte gTasks
_080BCAF0: .4byte gIntroSlideFlags
_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 @ =gBattle_WIN0V
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 gBattle_WIN0V
_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 @ =gBattle_WIN0V
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 @ =gIntroSlideFlags
ldrh r1, [r2]
ldr r0, _080BCE04 @ =0x0000fffe
ands r0, r1
strh r0, [r2]
b _080BCEE6
.align 2, 0
_080BCDFC: .4byte gBattle_WIN0V
_080BCE00: .4byte gIntroSlideFlags
_080BCE04: .4byte 0x0000fffe
_080BCE08:
ldr r2, _080BCECC @ =gBattle_WIN0V
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 gBattle_WIN0V
_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.