pokeemerald/asm/rayquaza_scene.s
2017-10-20 20:46:26 +02:00

5973 lines
91 KiB
ArmAsm
Executable File

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_81D6720
sub_81D6720: @ 81D6720
push {r4-r6,lr}
mov r6, r8
push {r6}
adds r4, r0, 0
adds r5, r1, 0
mov r8, r2
lsls r4, 24
lsrs r4, 24
lsls r5, 24
lsrs r5, 24
ldr r6, =gUnknown_0203CF60
ldr r0, =0x00002018
bl AllocZeroed
str r0, [r6]
ldr r1, =0x00002006
adds r0, r1
strb r4, [r0]
ldr r0, [r6]
mov r1, r8
str r1, [r0]
ldr r1, =0x00002007
adds r0, r1
strb r5, [r0]
ldr r0, =sub_81D6774
bl SetMainCallback2
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D6720
thumb_func_start sub_81D6774
sub_81D6774: @ 81D6774
push {lr}
bl SetVBlankHBlankCallbacksToNull
bl clear_scheduled_bg_copies_to_vram
bl remove_some_task
bl FreeAllSpritePalettes
bl ResetPaletteFade
bl ResetSpriteData
bl ResetTasks
movs r0, 0
movs r1, 0xF0
movs r2, 0x20
bl FillPalette
ldr r1, =gUnknown_0862A6A0
ldr r0, =gUnknown_0203CF60
ldr r0, [r0]
ldr r2, =0x00002006
adds r0, r2
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0
bl CreateTask
ldr r0, =sub_81D67D0
bl SetMainCallback2
pop {r0}
bx r0
.pool
thumb_func_end sub_81D6774
thumb_func_start sub_81D67D0
sub_81D67D0: @ 81D67D0
push {lr}
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl do_scheduled_bg_tilemap_copies_to_vram
bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_81D67D0
thumb_func_start sub_81D67EC
sub_81D67EC: @ 81D67EC
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_81D67EC
thumb_func_start sub_81D6800
sub_81D6800: @ 81D6800
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081D6830
bl ResetSpriteData
bl FreeAllSpritePalettes
ldr r4, =gUnknown_0203CF60
ldr r0, [r4]
ldr r0, [r0]
bl SetMainCallback2
ldr r0, [r4]
bl Free
adds r0, r5, 0
bl DestroyTask
_081D6830:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D6800
thumb_func_start sub_81D6840
sub_81D6840: @ 81D6840
push {r4-r6,lr}
lsls r0, 24
lsrs r3, r0, 24
adds r6, r3, 0
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
bne _081D68B2
ldr r2, =gUnknown_0203CF60
ldr r1, [r2]
ldr r4, =0x00002007
adds r0, r1, r4
ldrb r0, [r0]
cmp r0, 0x1
bne _081D6888
ldr r0, =gTasks
lsls r1, r3, 2
adds r1, r3
lsls r1, 3
adds r1, r0
ldr r0, =sub_81D6800
b _081D68B0
.pool
_081D6888:
ldr r4, =0x00002006
adds r1, r4
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
ldr r2, [r2]
ldr r1, =0x00002004
adds r0, r2, r1
strh r5, [r0]
ldr r0, =gTasks
lsls r1, r6, 2
adds r1, r6
lsls r1, 3
adds r1, r0
ldr r3, =gUnknown_0862A6A0
adds r2, r4
ldrb r0, [r2]
lsls r0, 2
adds r0, r3
ldr r0, [r0]
_081D68B0:
str r0, [r1]
_081D68B2:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D6840
thumb_func_start sub_81D68C8
sub_81D68C8: @ 81D68C8
push {lr}
movs r0, 0x48
movs r1, 0x3F
bl SetGpuReg
movs r0, 0x4A
movs r1, 0
bl SetGpuReg
movs r0, 0x40
movs r1, 0xF0
bl SetGpuReg
ldr r1, =0x00001888
movs r0, 0x44
bl SetGpuReg
ldr r0, =gPlttBufferUnfaded
movs r1, 0
strh r1, [r0]
ldr r0, =gPlttBufferFaded
strh r1, [r0]
pop {r0}
bx r0
.pool
thumb_func_end sub_81D68C8
thumb_func_start sub_81D6904
sub_81D6904: @ 81D6904
push {lr}
movs r0, 0x48
movs r1, 0x3F
bl SetGpuReg
movs r0, 0x4A
movs r1, 0x3F
bl SetGpuReg
pop {r0}
bx r0
thumb_func_end sub_81D6904
thumb_func_start sub_81D691C
sub_81D691C: @ 81D691C
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r5, r0, r1
bl sub_81D750C
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081D697E
movs r0, 0
ldrsh r1, [r5, r0]
cmp r1, 0x40
bne _081D6954
bl sub_81D7438
b _081D6978
.pool
_081D6954:
cmp r1, 0x90
bne _081D695E
bl sub_81D7480
b _081D6978
_081D695E:
cmp r1, 0x94
beq _081D6974
movs r0, 0xA4
lsls r0, 1
cmp r1, r0
bne _081D6978
adds r0, r4, 0
movs r1, 0
bl sub_81D75B4
b _081D697E
_081D6974:
bl sub_81D74C8
_081D6978:
ldrh r0, [r5]
adds r0, 0x1
strh r0, [r5]
_081D697E:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81D691C
thumb_func_start sub_81D6984
sub_81D6984: @ 81D6984
push {r4-r6,lr}
mov r6, r8
push {r6}
ldr r0, =gUnknown_0862A72C
mov r8, r0
movs r1, 0x58
movs r2, 0x48
movs r3, 0x3
bl CreateSprite
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r6, =gSprites
lsls r4, r5, 4
adds r4, r5
lsls r4, 2
adds r0, r6, 0
adds r0, 0x1C
adds r0, r4, r0
ldr r1, =sub_81D6A20
str r1, [r0]
adds r0, r6, 0
adds r0, 0x2E
adds r4, r0
mov r0, r8
movs r1, 0x38
movs r2, 0x68
movs r3, 0x3
bl CreateSprite
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
ldr r0, =gUnknown_0862A750
movs r1, 0x4B
movs r2, 0x65
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x2]
ldr r0, =gUnknown_0862A774
movs r1, 0x6D
movs r2, 0x72
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x4]
movs r0, 0
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x1
bl StartSpriteAnim
adds r0, r5, 0
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D6984
thumb_func_start sub_81D6A20
sub_81D6A20: @ 81D6A20
push {r4,lr}
adds r3, r0, 0
movs r0, 0x2E
adds r0, r3
mov r12, r0
ldrh r0, [r0, 0xA]
adds r0, 0x1
movs r1, 0x1F
ands r0, r1
mov r1, r12
strh r0, [r1, 0xA]
cmp r0, 0
bne _081D6A84
ldrh r1, [r3, 0x20]
movs r2, 0x20
ldrsh r0, [r3, r2]
cmp r0, 0x48
beq _081D6A84
subs r0, r1, 0x1
strh r0, [r3, 0x20]
ldr r2, =gSprites
movs r4, 0x2E
ldrsh r1, [r3, r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x20]
subs r1, 0x1
strh r1, [r0, 0x20]
mov r0, r12
movs r4, 0x2
ldrsh r1, [r0, r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x20]
subs r1, 0x1
strh r1, [r0, 0x20]
mov r0, r12
movs r4, 0x4
ldrsh r1, [r0, r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x20]
subs r1, 0x1
strh r1, [r0, 0x20]
_081D6A84:
adds r0, r3, 0
adds r0, 0x2B
ldrb r3, [r0]
cmp r3, 0x1
beq _081D6AE4
cmp r3, 0x1
bgt _081D6A9C
cmp r3, 0
beq _081D6AA6
b _081D6B68
.pool
_081D6A9C:
cmp r3, 0x2
beq _081D6B24
cmp r3, 0x3
beq _081D6AE4
b _081D6B68
_081D6AA6:
ldr r2, =gSprites
mov r0, r12
movs r4, 0x2
ldrsh r1, [r0, r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r3, [r0, 0x24]
mov r0, r12
movs r4, 0x2
ldrsh r1, [r0, r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r3, [r0, 0x26]
mov r0, r12
movs r4, 0x4
ldrsh r1, [r0, r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r3, [r0, 0x24]
mov r0, r12
movs r4, 0x4
ldrsh r1, [r0, r4]
b _081D6B5E
.pool
_081D6AE4:
ldr r2, =gSprites
mov r0, r12
movs r3, 0x2
ldrsh r1, [r0, r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r1, =0x0000ffff
strh r1, [r0, 0x24]
mov r4, r12
movs r0, 0x2
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r3, 0
strh r3, [r0, 0x26]
movs r0, 0x4
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x1
negs r1, r1
b _081D6B58
.pool
_081D6B24:
ldr r2, =gSprites
mov r3, r12
movs r4, 0x2
ldrsh r1, [r3, r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r1, =0x0000ffff
strh r1, [r0, 0x24]
movs r0, 0x2
ldrsh r1, [r3, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r3, 0x1
strh r3, [r0, 0x26]
mov r4, r12
movs r0, 0x4
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r1, =0x0000fffe
_081D6B58:
strh r1, [r0, 0x24]
movs r0, 0x4
ldrsh r1, [r4, r0]
_081D6B5E:
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r3, [r0, 0x26]
_081D6B68:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D6A20
thumb_func_start sub_81D6B7C
sub_81D6B7C: @ 81D6B7C
push {r4-r6,lr}
mov r6, r8
push {r6}
ldr r5, =gUnknown_0862A81C
adds r0, r5, 0
movs r1, 0x88
movs r2, 0x60
movs r3, 0x1
bl CreateSprite
mov r8, r0
mov r0, r8
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r6, =gSprites
lsls r4, r0, 4
add r4, r8
lsls r4, 2
adds r0, r6, 0
adds r0, 0x1C
adds r0, r4, r0
ldr r1, =sub_81D6D20
str r1, [r0]
adds r0, r6, 0
adds r0, 0x2E
adds r4, r0
adds r0, r5, 0
movs r1, 0xA8
movs r2, 0x60
movs r3, 0x1
bl CreateSprite
lsls r0, 8
strh r0, [r4]
adds r0, r5, 0
movs r1, 0x88
movs r2, 0x70
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4]
orrs r0, r1
strh r0, [r4]
adds r0, r5, 0
movs r1, 0xA8
movs r2, 0x70
movs r3, 0x1
bl CreateSprite
lsls r0, 8
strh r0, [r4, 0x2]
adds r0, r5, 0
movs r1, 0x88
movs r2, 0x80
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x2]
orrs r0, r1
strh r0, [r4, 0x2]
adds r0, r5, 0
movs r1, 0xA8
movs r2, 0x80
movs r3, 0x1
bl CreateSprite
lsls r0, 8
strh r0, [r4, 0x4]
adds r0, r5, 0
movs r1, 0x68
movs r2, 0x80
movs r3, 0x2
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x4]
orrs r0, r1
strh r0, [r4, 0x4]
adds r0, r5, 0
movs r1, 0x88
movs r2, 0x80
movs r3, 0x2
bl CreateSprite
lsls r0, 8
strh r0, [r4, 0x6]
adds r0, r5, 0
movs r1, 0xB8
movs r2, 0x80
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x6]
orrs r0, r1
strh r0, [r4, 0x6]
ldr r0, =gUnknown_0862A84C
movs r1, 0xD0
movs r2, 0x84
movs r3, 0
bl CreateSprite
lsls r0, 8
strh r0, [r4, 0x8]
ldr r0, =gUnknown_0862A864
movs r1, 0xC8
movs r2, 0x78
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x8]
orrs r0, r1
strh r0, [r4, 0x8]
ldrh r1, [r4]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x1
bl StartSpriteAnim
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x2
bl StartSpriteAnim
ldrh r1, [r4, 0x2]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x3
bl StartSpriteAnim
ldrb r1, [r4, 0x2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x4
bl StartSpriteAnim
ldrh r1, [r4, 0x4]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x5
bl StartSpriteAnim
ldrb r1, [r4, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x6
bl StartSpriteAnim
ldrh r1, [r4, 0x6]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x7
bl StartSpriteAnim
ldrb r1, [r4, 0x6]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x8
bl StartSpriteAnim
mov r0, r8
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D6B7C
thumb_func_start sub_81D6D20
sub_81D6D20: @ 81D6D20
push {r4-r7,lr}
adds r4, r0, 0
adds r3, r4, 0
adds r3, 0x2E
ldrh r0, [r3, 0xA]
adds r0, 0x1
movs r1, 0x1F
ands r0, r1
strh r0, [r3, 0xA]
ldr r7, =gSprites
cmp r0, 0
bne _081D6E0E
ldrh r1, [r4, 0x20]
movs r2, 0x20
ldrsh r0, [r4, r2]
cmp r0, 0x98
beq _081D6E0E
adds r0, r1, 0x1
strh r0, [r4, 0x20]
ldrh r1, [r4, 0x2E]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
ldrh r1, [r0, 0x20]
adds r1, 0x1
strh r1, [r0, 0x20]
ldrh r0, [r4, 0x2E]
movs r2, 0xFF
adds r1, r2, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
ldrh r1, [r0, 0x20]
adds r1, 0x1
strh r1, [r0, 0x20]
ldrh r1, [r3, 0x2]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
ldrh r1, [r0, 0x20]
adds r1, 0x1
strh r1, [r0, 0x20]
ldrh r0, [r3, 0x2]
adds r1, r2, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
ldrh r1, [r0, 0x20]
adds r1, 0x1
strh r1, [r0, 0x20]
ldrh r1, [r3, 0x4]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
ldrh r1, [r0, 0x20]
adds r1, 0x1
strh r1, [r0, 0x20]
ldrh r0, [r3, 0x4]
adds r1, r2, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
ldrh r1, [r0, 0x20]
adds r1, 0x1
strh r1, [r0, 0x20]
ldrh r1, [r3, 0x6]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
ldrh r1, [r0, 0x20]
adds r1, 0x1
strh r1, [r0, 0x20]
ldrh r0, [r3, 0x6]
adds r1, r2, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
ldrh r1, [r0, 0x20]
adds r1, 0x1
strh r1, [r0, 0x20]
ldrh r1, [r3, 0x8]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
ldrh r1, [r0, 0x20]
adds r1, 0x1
strh r1, [r0, 0x20]
ldrh r0, [r3, 0x8]
ands r2, r0
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r7
ldrh r1, [r0, 0x20]
adds r1, 0x1
strh r1, [r0, 0x20]
_081D6E0E:
adds r6, r7, 0
movs r5, 0xFF
ldrb r1, [r3, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
adds r0, 0x2B
ldrb r2, [r0]
cmp r2, 0x1
beq _081D6EE0
cmp r2, 0x1
bgt _081D6E34
cmp r2, 0
beq _081D6E40
b _081D6FC8
.pool
_081D6E34:
cmp r2, 0x2
bne _081D6E3A
b _081D6F68
_081D6E3A:
cmp r2, 0x3
beq _081D6EE0
b _081D6FC8
_081D6E40:
strh r2, [r4, 0x26]
ldrh r1, [r3]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r2, [r0, 0x26]
ldrh r0, [r3]
adds r1, r5, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x2]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r2, [r0, 0x26]
ldrh r0, [r3, 0x2]
adds r1, r5, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x4]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r2, [r0, 0x26]
ldrh r0, [r3, 0x4]
adds r1, r5, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x6]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r2, [r0, 0x26]
ldrh r0, [r3, 0x6]
adds r1, r5, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x8]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x8]
ands r1, r5
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
b _081D6FC6
_081D6EE0:
movs r2, 0x1
strh r2, [r4, 0x26]
ldrh r1, [r3]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x2]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrb r1, [r3, 0x2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x4]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrb r1, [r3, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x6]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrb r1, [r3, 0x6]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x8]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrb r1, [r3, 0x8]
b _081D6FBE
_081D6F68:
strh r2, [r4, 0x26]
ldrh r1, [r3]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrh r0, [r3]
adds r1, r5, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x2]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrh r0, [r3, 0x2]
adds r1, r5, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x4]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x8]
ands r1, r5
_081D6FBE:
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
_081D6FC6:
strh r2, [r0, 0x26]
_081D6FC8:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81D6D20
thumb_func_start sub_81D6FD0
sub_81D6FD0: @ 81D6FD0
push {lr}
bl sub_81D67EC
bl sub_80BA0A8
pop {r0}
bx r0
thumb_func_end sub_81D6FD0
thumb_func_start sub_81D6FE0
sub_81D6FE0: @ 81D6FE0
push {r4,lr}
bl sub_8121DA0
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, =gUnknown_0862A888
movs r0, 0
movs r2, 0x3
bl InitBgsFromTemplates
ldr r4, =gUnknown_0203CF60
ldr r1, [r4]
adds r1, 0x4
movs r0, 0
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r0, =0x00000804
adds r1, r0
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r0, =0x00001004
adds r1, r0
movs r0, 0x2
bl SetBgTilemapBuffer
bl sub_8121E10
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
movs r1, 0x82
lsls r1, 5
movs r0, 0
bl SetGpuReg
movs r0, 0
bl ShowBg
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D6FE0
thumb_func_start sub_81D706C
sub_81D706C: @ 81D706C
push {r4,lr}
sub sp, 0x4
bl reset_temp_tile_data_buffers
ldr r1, =gUnknown_08DA33C0
movs r0, 0
str r0, [sp]
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
_081D7082:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
bne _081D7082
ldr r0, =gUnknown_08DA3988
ldr r4, =gUnknown_0203CF60
ldr r1, [r4]
adds r1, 0x4
bl LZDecompressWram
ldr r0, =gUnknown_08DA3824
ldr r1, [r4]
ldr r2, =0x00000804
adds r1, r2
bl LZDecompressWram
ldr r0, =gUnknown_08DA3A88
ldr r1, [r4]
ldr r2, =0x00001004
adds r1, r2
bl LZDecompressWram
ldr r0, =gUnknown_08DA37E8
movs r1, 0
movs r2, 0x40
bl LoadCompressedPalette
ldr r0, =gUnknown_0862A8C4
bl LoadCompressedObjectPic
ldr r0, =gUnknown_0862A8F8
bl LoadCompressedObjectPic
ldr r0, =gUnknown_0862A924
bl LoadCompressedObjectPic
ldr r0, =gUnknown_0862A9D4
bl LoadCompressedObjectPic
ldr r0, =gUnknown_0862AA14
bl LoadCompressedObjectPic
ldr r0, =gUnknown_0862AA34
bl LoadCompressedObjectPic
ldr r0, =gUnknown_0862A8CC
bl LoadCompressedObjectPalette
ldr r0, =gUnknown_0862A9DC
bl LoadCompressedObjectPalette
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D706C
thumb_func_start task_add_00_WIN0V_open_close_above_and_more
task_add_00_WIN0V_open_close_above_and_more: @ 81D7134
push {r4-r7,lr}
sub sp, 0x8
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r6, r1, 3
ldr r7, =gTasks + 0x8
adds r5, r6, r7
bl dp12_8087EA4
bl sub_81D6FE0
bl sub_81D706C
movs r4, 0
str r4, [sp, 0x4]
ldr r1, =gUnknown_02038C28
ldr r2, =0x010003c0
add r0, sp, 0x4
bl CpuFastSet
ldr r2, =gUnknown_0862A87C
ldr r0, [r2]
ldr r1, [r2, 0x4]
ldr r2, [r2, 0x8]
bl sub_80BA038
strh r4, [r5]
ldr r0, =sub_81D7228
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x2]
ldr r0, =gUnknown_0203CF60
ldr r0, [r0]
ldr r1, =0x00002006
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _081D71CC
bl sub_81D6984
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x4]
bl sub_81D6B7C
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x6]
adds r0, r7, 0
subs r0, 0x8
adds r0, r6, r0
ldr r1, =sub_81D691C
str r1, [r0]
b _081D71EE
.pool
_081D71CC:
bl sub_81D7664
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x4]
bl sub_81D78BC
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x6]
adds r0, r7, 0
subs r0, 0x8
adds r0, r6, r0
ldr r1, =sub_81D736C
str r1, [r0]
bl StopMapMusic
_081D71EE:
movs r4, 0x1
negs r4, r4
adds r0, r4, 0
movs r1, 0x10
movs r2, 0
bl BlendPalettes
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r0, =sub_81D6FD0
bl SetVBlankCallback
movs r0, 0x53
bl PlaySE
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end task_add_00_WIN0V_open_close_above_and_more
thumb_func_start sub_81D7228
sub_81D7228: @ 81D7228
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks + 0x8
adds r3, r1, r0
movs r1, 0x18
ldr r7, =gUnknown_0203CF60
ldr r4, =gUnknown_02038C28
movs r0, 0xF0
lsls r0, 3
adds r5, r4, r0
_081D7244:
lsls r0, r1, 16
asrs r1, r0, 16
adds r6, r0, 0
cmp r1, 0x2F
bgt _081D726C
lsls r1, 1
adds r2, r1, r4
ldrh r0, [r3]
lsrs r0, 8
strh r0, [r2]
adds r1, r5
ldrh r0, [r3]
b _081D72CA
.pool
_081D726C:
cmp r1, 0x3F
bgt _081D7280
lsls r1, 1
adds r2, r1, r4
ldrh r0, [r3, 0x2]
lsrs r0, 8
strh r0, [r2]
adds r1, r5
ldrh r0, [r3, 0x2]
b _081D72CA
_081D7280:
cmp r1, 0x4B
bgt _081D7294
lsls r1, 1
adds r2, r1, r4
ldrh r0, [r3, 0x4]
lsrs r0, 8
strh r0, [r2]
adds r1, r5
ldrh r0, [r3, 0x4]
b _081D72CA
_081D7294:
cmp r1, 0x53
bgt _081D72A8
lsls r1, 1
adds r2, r1, r4
ldrh r0, [r3, 0x6]
lsrs r0, 8
strh r0, [r2]
adds r1, r5
ldrh r0, [r3, 0x6]
b _081D72CA
_081D72A8:
cmp r1, 0x57
bgt _081D72BC
lsls r1, 1
adds r2, r1, r4
ldrh r0, [r3, 0x8]
lsrs r0, 8
strh r0, [r2]
adds r1, r5
ldrh r0, [r3, 0x8]
b _081D72CA
_081D72BC:
lsls r1, 1
adds r2, r1, r4
ldrh r0, [r3, 0xA]
lsrs r0, 8
strh r0, [r2]
adds r1, r5
ldrh r0, [r3, 0xA]
_081D72CA:
lsrs r0, 8
strh r0, [r1]
movs r1, 0x80
lsls r1, 9
adds r0, r6, r1
lsrs r1, r0, 16
asrs r0, 16
cmp r0, 0x5B
ble _081D7244
ldr r0, [r7]
ldr r1, =0x00002006
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _081D7324
movs r1, 0xE0
lsls r1, 1
adds r0, r1, 0
ldrh r1, [r3]
adds r0, r1
strh r0, [r3]
movs r1, 0xC0
lsls r1, 1
adds r0, r1, 0
ldrh r1, [r3, 0x2]
adds r0, r1
strh r0, [r3, 0x2]
movs r1, 0xA0
lsls r1, 1
adds r0, r1, 0
ldrh r1, [r3, 0x4]
adds r0, r1
strh r0, [r3, 0x4]
movs r1, 0x80
lsls r1, 1
adds r0, r1, 0
ldrh r1, [r3, 0x6]
adds r0, r1
strh r0, [r3, 0x6]
ldrh r0, [r3, 0x8]
adds r0, 0xC0
b _081D735E
.pool
_081D7324:
movs r1, 0xC0
lsls r1, 2
adds r0, r1, 0
ldrh r1, [r3]
adds r0, r1
strh r0, [r3]
movs r1, 0xA0
lsls r1, 2
adds r0, r1, 0
ldrh r1, [r3, 0x2]
adds r0, r1
strh r0, [r3, 0x2]
movs r1, 0x80
lsls r1, 2
adds r0, r1, 0
ldrh r1, [r3, 0x4]
adds r0, r1
strh r0, [r3, 0x4]
movs r1, 0xC0
lsls r1, 1
adds r0, r1, 0
ldrh r1, [r3, 0x6]
adds r0, r1
strh r0, [r3, 0x6]
movs r1, 0x80
lsls r1, 1
adds r0, r1, 0
ldrh r1, [r3, 0x8]
adds r0, r1
_081D735E:
strh r0, [r3, 0x8]
ldrh r0, [r3, 0xA]
adds r0, 0x80
strh r0, [r3, 0xA]
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81D7228
thumb_func_start sub_81D736C
sub_81D736C: @ 81D736C
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r7, =gTasks + 0x8
adds r4, r0, r7
bl sub_81D750C
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0
bne _081D742E
movs r0, 0
ldrsh r1, [r4, r0]
cmp r1, 0x20
beq _081D739C
cmp r1, 0x70
bne _081D73AC
_081D739C:
bl sub_81D7438
b _081D7428
.pool
_081D73AC:
cmp r1, 0xD8
bne _081D73B6
bl sub_81D7480
b _081D7428
_081D73B6:
cmp r1, 0xDC
bne _081D73C0
bl sub_81D74C8
b _081D7428
_081D73C0:
movs r0, 0xBE
lsls r0, 1
cmp r1, r0
beq _081D73D8
adds r0, 0x20
cmp r1, r0
bne _081D7428
adds r0, r5, 0
movs r1, 0x2
bl sub_81D75B4
b _081D742E
_081D73D8:
movs r1, 0x91
lsls r1, 2
movs r0, 0x50
bl SetGpuReg
adds r2, r7, 0
subs r2, 0x8
movs r0, 0x2
ldrsh r1, [r4, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldr r1, =sub_81D752C
str r1, [r0]
movs r0, 0x2
ldrsh r1, [r4, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
strh r6, [r0, 0x8]
movs r0, 0x2
ldrsh r1, [r4, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldrh r1, [r4, 0x4]
strh r1, [r0, 0xC]
movs r0, 0x2
ldrsh r1, [r4, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldrh r1, [r4, 0x6]
strh r1, [r0, 0xE]
bl remove_some_task
_081D7428:
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
_081D742E:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D736C
thumb_func_start sub_81D7438
sub_81D7438: @ 81D7438
push {r4,lr}
sub sp, 0xC
movs r0, 0x57
bl PlaySE
ldr r0, =0x00007fff
ldr r1, =0x0000ffff
str r1, [sp]
movs r4, 0
str r4, [sp, 0x4]
str r4, [sp, 0x8]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl sub_80A2C44
ldr r0, =0xffff0000
str r4, [sp]
str r4, [sp, 0x4]
movs r1, 0x1
str r1, [sp, 0x8]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl sub_80A2C44
add sp, 0xC
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D7438
thumb_func_start sub_81D7480
sub_81D7480: @ 81D7480
push {r4,lr}
sub sp, 0xC
movs r0, 0x57
bl PlaySE
ldr r0, =0x00007fff
ldr r1, =0x0000ffff
str r1, [sp]
movs r4, 0
str r4, [sp, 0x4]
str r4, [sp, 0x8]
movs r1, 0
movs r2, 0x10
movs r3, 0x10
bl sub_80A2C44
ldr r0, =0xffff0000
str r4, [sp]
str r4, [sp, 0x4]
movs r1, 0x1
str r1, [sp, 0x8]
movs r1, 0
movs r2, 0x10
movs r3, 0x10
bl sub_80A2C44
add sp, 0xC
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D7480
thumb_func_start sub_81D74C8
sub_81D74C8: @ 81D74C8
push {r4,lr}
sub sp, 0xC
ldr r0, =0x00007fff
ldr r1, =0x0000ffff
str r1, [sp]
movs r4, 0
str r4, [sp, 0x4]
str r4, [sp, 0x8]
movs r1, 0x4
movs r2, 0x10
movs r3, 0
bl sub_80A2C44
ldr r0, =0xffff0000
str r4, [sp]
str r4, [sp, 0x4]
movs r1, 0x1
str r1, [sp, 0x8]
movs r1, 0x4
movs r2, 0x10
movs r3, 0
bl sub_80A2C44
add sp, 0xC
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D74C8
thumb_func_start sub_81D750C
sub_81D750C: @ 81D750C
push {lr}
movs r1, 0x80
lsls r1, 3
movs r0, 0x2
movs r2, 0x1
bl ChangeBgX
movs r1, 0x80
lsls r1, 4
movs r0, 0x2
movs r2, 0x2
bl ChangeBgY
pop {r0}
bx r0
thumb_func_end sub_81D750C
thumb_func_start sub_81D752C
sub_81D752C: @ 81D752C
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks + 0x8
adds r5, r1, r0
movs r0, 0x4
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, =gSprites
adds r0, r4
bl sub_81D7860
movs r0, 0x6
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl sub_81D7D14
movs r0, 0x1
bl GetBgY
lsls r0, 16
lsrs r4, r0, 16
movs r0, 0x1
bl GetBgY
cmp r0, 0
beq _081D757A
movs r0, 0x80
lsls r0, 8
cmp r4, r0
bls _081D7586
_081D757A:
movs r1, 0x80
lsls r1, 3
movs r0, 0x1
movs r2, 0x2
bl ChangeBgY
_081D7586:
ldrh r2, [r5]
movs r1, 0
ldrsh r0, [r5, r1]
cmp r0, 0x10
beq _081D75A6
adds r2, 0x1
strh r2, [r5]
lsls r1, r2, 8
movs r0, 0x10
subs r0, r2
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
_081D75A6:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D752C
thumb_func_start sub_81D75B4
sub_81D75B4: @ 81D75B4
push {r4,r5,lr}
sub sp, 0x4
adds r5, r0, 0
adds r4, r1, 0
lsls r5, 24
lsrs r5, 24
lsls r4, 24
lsrs r4, 24
movs r0, 0x54
bl PlaySE
movs r0, 0x1
negs r0, r0
lsls r4, 24
asrs r4, 24
movs r1, 0
str r1, [sp]
adds r1, r4, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, =sub_81D7600
str r1, [r0]
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D75B4
thumb_func_start sub_81D7600
sub_81D7600: @ 81D7600
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r6, r1, 3
ldr r7, =gTasks + 0x8
adds r5, r6, r7
bl sub_81D750C
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _081D7652
ldrb r0, [r5, 0x2]
bl DestroyTask
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0
bl SetVBlankCallback
bl remove_some_task
bl ResetSpriteData
bl FreeAllSpritePalettes
strh r4, [r5]
adds r0, r7, 0
subs r0, 0x8
adds r0, r6, r0
ldr r1, =sub_81D6840
str r1, [r0]
_081D7652:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D7600
thumb_func_start sub_81D7664
sub_81D7664: @ 81D7664
push {r4-r6,lr}
mov r6, r8
push {r6}
ldr r0, =gUnknown_0862A8D4
mov r8, r0
movs r1, 0x62
movs r2, 0x48
movs r3, 0x3
bl CreateSprite
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r6, =gSprites
lsls r4, r5, 4
adds r4, r5
lsls r4, 2
adds r0, r6, 0
adds r0, 0x1C
adds r0, r4, r0
ldr r1, =sub_81D7700
str r1, [r0]
adds r0, r6, 0
adds r0, 0x2E
adds r4, r0
mov r0, r8
movs r1, 0x42
movs r2, 0x68
movs r3, 0x3
bl CreateSprite
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
ldr r0, =gUnknown_0862A900
movs r1, 0x55
movs r2, 0x65
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x2]
ldr r0, =gUnknown_0862A92C
movs r1, 0x77
movs r2, 0x72
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x4]
movs r0, 0
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x1
bl StartSpriteAnim
adds r0, r5, 0
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D7664
thumb_func_start sub_81D7700
sub_81D7700: @ 81D7700
push {r4,lr}
adds r3, r0, 0
movs r0, 0x2E
adds r0, r3
mov r12, r0
ldrh r0, [r0, 0xA]
adds r0, 0x1
movs r1, 0xF
ands r0, r1
mov r1, r12
strh r0, [r1, 0xA]
movs r1, 0x7
ands r1, r0
cmp r1, 0
bne _081D7768
ldrh r1, [r3, 0x20]
movs r2, 0x20
ldrsh r0, [r3, r2]
cmp r0, 0x48
beq _081D7768
subs r0, r1, 0x1
strh r0, [r3, 0x20]
ldr r2, =gSprites
movs r4, 0x2E
ldrsh r1, [r3, r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x20]
subs r1, 0x1
strh r1, [r0, 0x20]
mov r0, r12
movs r4, 0x2
ldrsh r1, [r0, r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x20]
subs r1, 0x1
strh r1, [r0, 0x20]
mov r0, r12
movs r4, 0x4
ldrsh r1, [r0, r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x20]
subs r1, 0x1
strh r1, [r0, 0x20]
_081D7768:
adds r0, r3, 0
adds r0, 0x2B
ldrb r3, [r0]
cmp r3, 0x1
beq _081D77C8
cmp r3, 0x1
bgt _081D7780
cmp r3, 0
beq _081D778A
b _081D784C
.pool
_081D7780:
cmp r3, 0x2
beq _081D7808
cmp r3, 0x3
beq _081D77C8
b _081D784C
_081D778A:
ldr r2, =gSprites
mov r0, r12
movs r4, 0x2
ldrsh r1, [r0, r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r3, [r0, 0x24]
mov r0, r12
movs r4, 0x2
ldrsh r1, [r0, r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r3, [r0, 0x26]
mov r0, r12
movs r4, 0x4
ldrsh r1, [r0, r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r3, [r0, 0x24]
mov r0, r12
movs r4, 0x4
ldrsh r1, [r0, r4]
b _081D7842
.pool
_081D77C8:
ldr r2, =gSprites
mov r0, r12
movs r3, 0x2
ldrsh r1, [r0, r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r1, =0x0000ffff
strh r1, [r0, 0x24]
mov r4, r12
movs r0, 0x2
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r3, 0
strh r3, [r0, 0x26]
movs r0, 0x4
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x1
negs r1, r1
b _081D783C
.pool
_081D7808:
ldr r2, =gSprites
mov r3, r12
movs r4, 0x2
ldrsh r1, [r3, r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r1, =0x0000ffff
strh r1, [r0, 0x24]
movs r0, 0x2
ldrsh r1, [r3, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r3, 0x1
strh r3, [r0, 0x26]
mov r4, r12
movs r0, 0x4
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r1, =0x0000fffe
_081D783C:
strh r1, [r0, 0x24]
movs r0, 0x4
ldrsh r1, [r4, r0]
_081D7842:
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r3, [r0, 0x26]
_081D784C:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D7700
thumb_func_start sub_81D7860
sub_81D7860: @ 81D7860
push {r4,lr}
adds r1, r0, 0
adds r3, r1, 0
adds r3, 0x2E
ldrh r2, [r1, 0x22]
movs r4, 0x22
ldrsh r0, [r1, r4]
cmp r0, 0xA0
bgt _081D78B0
adds r0, r2, 0
adds r0, 0x8
strh r0, [r1, 0x22]
ldr r2, =gSprites
movs r0, 0x2E
ldrsh r1, [r1, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x22]
adds r1, 0x8
strh r1, [r0, 0x22]
movs r4, 0x2
ldrsh r1, [r3, r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x22]
adds r1, 0x8
strh r1, [r0, 0x22]
movs r0, 0x4
ldrsh r1, [r3, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x22]
adds r1, 0x8
strh r1, [r0, 0x22]
_081D78B0:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D7860
thumb_func_start sub_81D78BC
sub_81D78BC: @ 81D78BC
push {r4-r6,lr}
mov r6, r8
push {r6}
ldr r5, =gUnknown_0862A9E4
adds r0, r5, 0
movs r1, 0x7E
movs r2, 0x60
movs r3, 0x1
bl CreateSprite
mov r8, r0
mov r0, r8
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r6, =gSprites
lsls r4, r0, 4
add r4, r8
lsls r4, 2
adds r0, r6, 0
adds r0, 0x1C
adds r0, r4, r0
ldr r1, =sub_81D7A60
str r1, [r0]
adds r0, r6, 0
adds r0, 0x2E
adds r4, r0
adds r0, r5, 0
movs r1, 0x9E
movs r2, 0x60
movs r3, 0x1
bl CreateSprite
lsls r0, 8
strh r0, [r4]
adds r0, r5, 0
movs r1, 0x7E
movs r2, 0x70
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4]
orrs r0, r1
strh r0, [r4]
adds r0, r5, 0
movs r1, 0x9E
movs r2, 0x70
movs r3, 0x1
bl CreateSprite
lsls r0, 8
strh r0, [r4, 0x2]
adds r0, r5, 0
movs r1, 0x7E
movs r2, 0x80
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x2]
orrs r0, r1
strh r0, [r4, 0x2]
adds r0, r5, 0
movs r1, 0x9E
movs r2, 0x80
movs r3, 0x1
bl CreateSprite
lsls r0, 8
strh r0, [r4, 0x4]
adds r0, r5, 0
movs r1, 0x5E
movs r2, 0x80
movs r3, 0x2
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x4]
orrs r0, r1
strh r0, [r4, 0x4]
adds r0, r5, 0
movs r1, 0x7E
movs r2, 0x80
movs r3, 0x2
bl CreateSprite
lsls r0, 8
strh r0, [r4, 0x6]
adds r0, r5, 0
movs r1, 0xAE
movs r2, 0x80
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x6]
orrs r0, r1
strh r0, [r4, 0x6]
ldr r0, =gUnknown_0862AA1C
movs r1, 0xC6
movs r2, 0x84
movs r3, 0
bl CreateSprite
lsls r0, 8
strh r0, [r4, 0x8]
ldr r0, =gUnknown_0862AA3C
movs r1, 0xBE
movs r2, 0x78
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x8]
orrs r0, r1
strh r0, [r4, 0x8]
ldrh r1, [r4]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x1
bl StartSpriteAnim
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x2
bl StartSpriteAnim
ldrh r1, [r4, 0x2]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x3
bl StartSpriteAnim
ldrb r1, [r4, 0x2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x4
bl StartSpriteAnim
ldrh r1, [r4, 0x4]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x5
bl StartSpriteAnim
ldrb r1, [r4, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x6
bl StartSpriteAnim
ldrh r1, [r4, 0x6]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x7
bl StartSpriteAnim
ldrb r1, [r4, 0x6]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x8
bl StartSpriteAnim
mov r0, r8
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D78BC
thumb_func_start sub_81D7A60
sub_81D7A60: @ 81D7A60
push {r4-r7,lr}
adds r4, r0, 0
adds r3, r4, 0
adds r3, 0x2E
ldrh r0, [r3, 0xA]
adds r0, 0x1
movs r1, 0xF
ands r0, r1
strh r0, [r3, 0xA]
movs r1, 0x7
ands r1, r0
ldr r7, =gSprites
cmp r1, 0
bne _081D7B52
ldrh r1, [r4, 0x20]
movs r2, 0x20
ldrsh r0, [r4, r2]
cmp r0, 0x98
beq _081D7B52
adds r0, r1, 0x1
strh r0, [r4, 0x20]
ldrh r1, [r4, 0x2E]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
ldrh r1, [r0, 0x20]
adds r1, 0x1
strh r1, [r0, 0x20]
ldrh r0, [r4, 0x2E]
movs r2, 0xFF
adds r1, r2, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
ldrh r1, [r0, 0x20]
adds r1, 0x1
strh r1, [r0, 0x20]
ldrh r1, [r3, 0x2]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
ldrh r1, [r0, 0x20]
adds r1, 0x1
strh r1, [r0, 0x20]
ldrh r0, [r3, 0x2]
adds r1, r2, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
ldrh r1, [r0, 0x20]
adds r1, 0x1
strh r1, [r0, 0x20]
ldrh r1, [r3, 0x4]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
ldrh r1, [r0, 0x20]
adds r1, 0x1
strh r1, [r0, 0x20]
ldrh r0, [r3, 0x4]
adds r1, r2, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
ldrh r1, [r0, 0x20]
adds r1, 0x1
strh r1, [r0, 0x20]
ldrh r1, [r3, 0x6]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
ldrh r1, [r0, 0x20]
adds r1, 0x1
strh r1, [r0, 0x20]
ldrh r0, [r3, 0x6]
adds r1, r2, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
ldrh r1, [r0, 0x20]
adds r1, 0x1
strh r1, [r0, 0x20]
ldrh r1, [r3, 0x8]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
ldrh r1, [r0, 0x20]
adds r1, 0x1
strh r1, [r0, 0x20]
ldrh r0, [r3, 0x8]
ands r2, r0
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r7
ldrh r1, [r0, 0x20]
adds r1, 0x1
strh r1, [r0, 0x20]
_081D7B52:
adds r6, r7, 0
movs r5, 0xFF
ldrb r1, [r3, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
adds r0, 0x2B
ldrb r2, [r0]
cmp r2, 0x1
beq _081D7C24
cmp r2, 0x1
bgt _081D7B78
cmp r2, 0
beq _081D7B84
b _081D7D0C
.pool
_081D7B78:
cmp r2, 0x2
bne _081D7B7E
b _081D7CAC
_081D7B7E:
cmp r2, 0x3
beq _081D7C24
b _081D7D0C
_081D7B84:
strh r2, [r4, 0x26]
ldrh r1, [r3]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r2, [r0, 0x26]
ldrh r0, [r3]
adds r1, r5, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x2]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r2, [r0, 0x26]
ldrh r0, [r3, 0x2]
adds r1, r5, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x4]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r2, [r0, 0x26]
ldrh r0, [r3, 0x4]
adds r1, r5, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x6]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r2, [r0, 0x26]
ldrh r0, [r3, 0x6]
adds r1, r5, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x8]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x8]
ands r1, r5
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
b _081D7D0A
_081D7C24:
movs r2, 0x1
strh r2, [r4, 0x26]
ldrh r1, [r3]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x2]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrb r1, [r3, 0x2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x4]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrb r1, [r3, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x6]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrb r1, [r3, 0x6]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x8]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrb r1, [r3, 0x8]
b _081D7D02
_081D7CAC:
strh r2, [r4, 0x26]
ldrh r1, [r3]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrh r0, [r3]
adds r1, r5, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x2]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrh r0, [r3, 0x2]
adds r1, r5, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x4]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r2, [r0, 0x26]
ldrh r1, [r3, 0x8]
ands r1, r5
_081D7D02:
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
_081D7D0A:
strh r2, [r0, 0x26]
_081D7D0C:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81D7A60
thumb_func_start sub_81D7D14
sub_81D7D14: @ 81D7D14
push {lr}
adds r2, r0, 0
movs r0, 0x2E
adds r0, r2
mov r12, r0
ldrh r1, [r2, 0x22]
movs r3, 0x22
ldrsh r0, [r2, r3]
cmp r0, 0xA0
bgt _081D7E08
adds r0, r1, 0
adds r0, 0x8
strh r0, [r2, 0x22]
ldr r3, =gSprites
ldrh r1, [r2, 0x2E]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r1, [r0, 0x22]
adds r1, 0x8
strh r1, [r0, 0x22]
ldrh r0, [r2, 0x2E]
movs r2, 0xFF
adds r1, r2, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r1, [r0, 0x22]
adds r1, 0x8
strh r1, [r0, 0x22]
mov r0, r12
ldrh r1, [r0, 0x2]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r1, [r0, 0x22]
adds r1, 0x8
strh r1, [r0, 0x22]
mov r1, r12
ldrh r0, [r1, 0x2]
adds r1, r2, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r1, [r0, 0x22]
adds r1, 0x8
strh r1, [r0, 0x22]
mov r0, r12
ldrh r1, [r0, 0x4]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r1, [r0, 0x22]
adds r1, 0x8
strh r1, [r0, 0x22]
mov r1, r12
ldrh r0, [r1, 0x4]
adds r1, r2, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r1, [r0, 0x22]
adds r1, 0x8
strh r1, [r0, 0x22]
mov r0, r12
ldrh r1, [r0, 0x6]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r1, [r0, 0x22]
adds r1, 0x8
strh r1, [r0, 0x22]
mov r1, r12
ldrh r0, [r1, 0x6]
adds r1, r2, 0
ands r1, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r1, [r0, 0x22]
adds r1, 0x8
strh r1, [r0, 0x22]
mov r0, r12
ldrh r1, [r0, 0x8]
lsls r1, 16
asrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r1, [r0, 0x22]
adds r1, 0x8
strh r1, [r0, 0x22]
mov r1, r12
ldrh r0, [r1, 0x8]
ands r2, r0
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r3
ldrh r1, [r0, 0x22]
adds r1, 0x8
strh r1, [r0, 0x22]
_081D7E08:
pop {r0}
bx r0
.pool
thumb_func_end sub_81D7D14
thumb_func_start sub_81D7E10
sub_81D7E10: @ 81D7E10
push {r4,lr}
bl sub_8121DA0
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, =gUnknown_0862AA54
movs r0, 0x1
movs r2, 0x3
bl InitBgsFromTemplates
ldr r4, =gUnknown_0203CF60
ldr r1, [r4]
adds r1, 0x4
movs r0, 0
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r0, =0x00000804
adds r1, r0
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r0, =0x00001004
adds r1, r0
movs r0, 0x2
bl SetBgTilemapBuffer
bl sub_8121E10
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
movs r1, 0x82
lsls r1, 5
movs r0, 0
bl SetGpuReg
movs r0, 0
bl ShowBg
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D7E10
thumb_func_start sub_81D7E9C
sub_81D7E9C: @ 81D7E9C
push {r4,lr}
sub sp, 0x4
bl reset_temp_tile_data_buffers
ldr r1, =gUnknown_08DA33C0
movs r4, 0
str r4, [sp]
movs r0, 0
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r1, =gUnknown_08DA4F70
str r4, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r1, =gUnknown_08DA3C94
str r4, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
_081D7ED0:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
bne _081D7ED0
ldr r0, =gUnknown_08DA3988
ldr r4, =gUnknown_0203CF60
ldr r1, [r4]
adds r1, 0x4
bl LZDecompressWram
ldr r0, =gUnknown_08DA60B8
ldr r1, [r4]
ldr r2, =0x00000804
adds r1, r2
bl LZDecompressWram
ldr r0, =gUnknown_08DA4DEC
ldr r1, [r4]
ldr r2, =0x00001004
adds r1, r2
bl LZDecompressWram
ldr r0, =gUnknown_08DA4DA8
movs r1, 0
movs r2, 0x40
bl LoadCompressedPalette
ldr r0, =gUnknown_0862AA90
bl LoadCompressedObjectPic
ldr r0, =gUnknown_0862AA98
bl LoadCompressedObjectPalette
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D7E9C
thumb_func_start sub_81D7F4C
sub_81D7F4C: @ 81D7F4C
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r5, =gTasks + 0x8
adds r6, r4, r5
movs r0, 0xE8
lsls r0, 1
bl PlayNewMapMusic
bl sub_81D7E10
bl sub_81D7E9C
movs r1, 0x94
lsls r1, 2
movs r0, 0x50
bl SetGpuReg
ldr r1, =0x00000808
movs r0, 0x52
bl SetGpuReg
movs r0, 0x1
negs r0, r0
movs r1, 0x10
movs r2, 0
bl BlendPalettes
ldr r0, =sub_81D67EC
bl SetVBlankCallback
ldr r0, =sub_81D81A4
movs r1, 0
bl CreateTask
movs r0, 0
strh r0, [r6]
strh r0, [r6, 0x2]
subs r5, 0x8
adds r4, r5
ldr r0, =sub_81D7FC0
str r0, [r4]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D7F4C
thumb_func_start sub_81D7FC0
sub_81D7FC0: @ 81D7FC0
push {r4-r6,lr}
sub sp, 0x10
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
movs r0, 0
ldrsh r5, [r4, r0]
cmp r5, 0x1
beq _081D802A
cmp r5, 0x1
bgt _081D7FE8
cmp r5, 0
beq _081D7FF4
b _081D815A
.pool
_081D7FE8:
cmp r5, 0x2
beq _081D80A4
cmp r5, 0x3
bne _081D7FF2
b _081D8124
_081D7FF2:
b _081D815A
_081D7FF4:
ldrh r1, [r4, 0x2]
movs r2, 0x2
ldrsh r0, [r4, r2]
cmp r0, 0x8
bne _081D8024
movs r0, 0x1
negs r0, r0
str r5, [sp]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
strh r5, [r4, 0x4]
movs r0, 0x1E
strh r0, [r4, 0x6]
strh r5, [r4, 0x8]
movs r0, 0x7
strh r0, [r4, 0xA]
strh r5, [r4, 0x2]
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
b _081D815A
_081D8024:
adds r0, r1, 0x1
strh r0, [r4, 0x2]
b _081D815A
_081D802A:
ldrh r1, [r4, 0x6]
ldrh r3, [r4, 0x4]
adds r0, r1, r3
strh r0, [r4, 0x4]
ldrh r2, [r4, 0xA]
ldrh r3, [r4, 0x8]
adds r0, r2, r3
strh r0, [r4, 0x8]
lsls r0, r1, 16
asrs r0, 16
cmp r0, 0x3
ble _081D8046
subs r0, r1, 0x3
strh r0, [r4, 0x6]
_081D8046:
lsls r0, r2, 16
cmp r0, 0
beq _081D8050
subs r0, r2, 0x1
strh r0, [r4, 0xA]
_081D8050:
movs r1, 0x4
ldrsh r0, [r4, r1]
cmp r0, 0xFF
ble _081D8078
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
strh r0, [r4, 0x4]
movs r1, 0
strh r1, [r4, 0x6]
movs r0, 0xC
strh r0, [r4, 0xC]
movs r3, 0x1
negs r3, r3
adds r0, r3, 0
strh r0, [r4, 0xE]
strh r1, [r4, 0x2]
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
_081D8078:
movs r1, 0xF0
lsls r1, 7
movs r2, 0xC0
lsls r2, 5
ldrh r0, [r4, 0x8]
adds r0, 0x20
lsls r0, 16
asrs r0, 16
str r0, [sp]
movs r3, 0x4
ldrsh r0, [r4, r3]
str r0, [sp, 0x4]
movs r3, 0x4
ldrsh r0, [r4, r3]
str r0, [sp, 0x8]
movs r0, 0
str r0, [sp, 0xC]
movs r0, 0x2
movs r3, 0x78
bl SetBgAffine
b _081D815A
_081D80A4:
ldrh r0, [r4, 0x2]
adds r0, 0x1
strh r0, [r4, 0x2]
movs r1, 0xF0
lsls r1, 7
movs r2, 0xC0
lsls r2, 5
ldrh r0, [r4, 0xC]
lsls r0, 16
asrs r0, 18
adds r0, 0x20
ldrh r3, [r4, 0x8]
adds r0, r3
lsls r0, 16
asrs r0, 16
str r0, [sp]
movs r3, 0x4
ldrsh r0, [r4, r3]
str r0, [sp, 0x4]
movs r3, 0x4
ldrsh r0, [r4, r3]
str r0, [sp, 0x8]
movs r5, 0
str r5, [sp, 0xC]
movs r0, 0x2
movs r3, 0x78
bl SetBgAffine
ldrh r0, [r4, 0xE]
ldrh r1, [r4, 0xC]
adds r0, r1
strh r0, [r4, 0xC]
lsls r0, 16
asrs r1, r0, 16
cmp r1, 0xC
beq _081D80F4
movs r0, 0xC
negs r0, r0
cmp r1, r0
bne _081D815A
_081D80F4:
movs r2, 0xE
ldrsh r0, [r4, r2]
negs r0, r0
strh r0, [r4, 0xE]
movs r3, 0x2
ldrsh r1, [r4, r3]
ldr r0, =0x00000127
cmp r1, r0
ble _081D815A
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
movs r0, 0x1
negs r0, r0
str r5, [sp]
movs r1, 0x6
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
b _081D815A
.pool
_081D8124:
ldrh r0, [r4, 0x4]
adds r0, 0x10
strh r0, [r4, 0x4]
movs r1, 0xF0
lsls r1, 7
movs r2, 0xC0
lsls r2, 5
ldrh r0, [r4, 0x8]
adds r0, 0x20
lsls r0, 16
asrs r0, 16
str r0, [sp]
movs r3, 0x4
ldrsh r0, [r4, r3]
str r0, [sp, 0x4]
movs r3, 0x4
ldrsh r0, [r4, r3]
str r0, [sp, 0x8]
movs r0, 0
str r0, [sp, 0xC]
movs r0, 0x2
movs r3, 0x78
bl SetBgAffine
adds r0, r6, 0
bl sub_81D8164
_081D815A:
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81D7FC0
thumb_func_start sub_81D8164
sub_81D8164: @ 81D8164
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081D8192
movs r0, 0
bl SetVBlankCallback
bl ResetSpriteData
bl FreeAllSpritePalettes
ldr r0, =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, =sub_81D6840
str r0, [r1]
_081D8192:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D8164
thumb_func_start sub_81D81A4
sub_81D81A4: @ 81D81A4
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
ldrh r1, [r4, 0x2]
movs r0, 0x3
ands r0, r1
cmp r0, 0
bne _081D8254
ldr r0, =gUnknown_0862AAA0
ldr r3, =gUnknown_0862AAB8
movs r1, 0
ldrsh r2, [r4, r1]
lsls r2, 1
adds r1, r2, r3
ldrb r1, [r1]
lsls r1, 24
asrs r1, 24
lsls r1, 18
movs r6, 0xF0
lsls r6, 15
adds r1, r6
asrs r1, 16
adds r3, 0x1
adds r2, r3
ldrb r2, [r2]
lsls r2, 24
asrs r2, 24
lsls r2, 18
movs r3, 0xA0
lsls r3, 15
adds r2, r3
asrs r2, 16
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r1, =gSprites
lsls r3, r0, 4
adds r3, r0
lsls r3, 2
adds r3, r1
movs r0, 0
ldrsb r0, [r4, r0]
strh r0, [r3, 0x2E]
ldrb r2, [r3, 0x1]
movs r1, 0xD
negs r1, r1
adds r0, r1, 0
ands r0, r2
movs r2, 0x4
orrs r0, r2
movs r2, 0x3
orrs r0, r2
strb r0, [r3, 0x1]
ldrb r0, [r3, 0x5]
ands r1, r0
movs r0, 0x8
orrs r1, r0
strb r1, [r3, 0x5]
adds r0, r3, 0
bl InitSpriteAffineAnim
ldrh r1, [r4]
movs r6, 0
ldrsh r0, [r4, r6]
cmp r0, 0x9
bne _081D8250
adds r0, r5, 0
bl DestroyTask
b _081D825A
.pool
_081D8250:
adds r0, r1, 0x1
strh r0, [r4]
_081D8254:
ldrh r0, [r4, 0x2]
adds r0, 0x1
strh r0, [r4, 0x2]
_081D825A:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81D81A4
thumb_func_start sub_81D8260
sub_81D8260: @ 81D8260
push {lr}
adds r2, r0, 0
movs r1, 0x30
ldrsh r0, [r2, r1]
cmp r0, 0
bne _081D8270
strh r0, [r2, 0x24]
b _081D829A
_081D8270:
ldr r1, =gUnknown_0862AAB8
movs r3, 0x2E
ldrsh r0, [r2, r3]
lsls r0, 1
adds r0, r1
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
ldrh r3, [r2, 0x24]
adds r0, r3
strh r0, [r2, 0x24]
movs r3, 0x2E
ldrsh r0, [r2, r3]
lsls r0, 1
adds r1, 0x1
adds r0, r1
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
ldrh r1, [r2, 0x26]
adds r0, r1
_081D829A:
strh r0, [r2, 0x26]
ldrh r0, [r2, 0x30]
adds r0, 0x1
movs r1, 0xF
ands r0, r1
strh r0, [r2, 0x30]
pop {r0}
bx r0
.pool
thumb_func_end sub_81D8260
thumb_func_start sub_81D82B0
sub_81D82B0: @ 81D82B0
push {r4,lr}
bl sub_8121DA0
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, =gUnknown_0862AACC
movs r0, 0
movs r2, 0x4
bl InitBgsFromTemplates
ldr r4, =gUnknown_0203CF60
ldr r1, [r4]
adds r1, 0x4
movs r0, 0
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r0, =0x00000804
adds r1, r0
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r0, =0x00001004
adds r1, r0
movs r0, 0x2
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r0, =0x00001804
adds r1, r0
movs r0, 0x3
bl SetBgTilemapBuffer
bl sub_8121E10
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x3
bl schedule_bg_copy_tilemap_to_vram
movs r1, 0x82
lsls r1, 5
movs r0, 0
bl SetGpuReg
movs r0, 0
bl ShowBg
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x3
bl ShowBg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D82B0
thumb_func_start sub_81D8358
sub_81D8358: @ 81D8358
push {r4-r7,lr}
sub sp, 0xC
bl reset_temp_tile_data_buffers
ldr r1, =gUnknown_08DA7528
movs r4, 0
str r4, [sp]
movs r0, 0
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r1, =gUnknown_08DA69BC
str r4, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
add r7, sp, 0x8
_081D8380:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0
bne _081D8380
ldr r0, =gUnknown_08DA7AAC
ldr r5, =gUnknown_0203CF60
ldr r1, [r5]
adds r1, 0x4
bl LZDecompressWram
ldr r0, =gUnknown_08DA7784
ldr r1, [r5]
ldr r4, =0x00001804
adds r1, r4
bl LZDecompressWram
str r6, [sp, 0x4]
ldr r1, [r5]
ldr r0, =0x00001004
adds r1, r0
ldr r2, =0x01000200
add r0, sp, 0x4
bl CpuFastSet
ldr r1, [r5]
adds r4, r1, r4
ldr r0, =0x00000804
adds r1, r0
movs r2, 0x80
lsls r2, 2
adds r0, r4, 0
bl CpuFastSet
str r6, [sp, 0x8]
ldr r1, [r5]
ldr r0, =0x00000904
adds r1, r0
ldr r2, =0x010000d0
adds r0, r7, 0
bl CpuFastSet
ldr r0, =gUnknown_08DA7744
movs r1, 0
movs r2, 0x40
bl LoadCompressedPalette
ldr r0, =gPlttBufferUnfaded
ldr r1, =0x00007fff
strh r1, [r0]
ldr r0, =gPlttBufferFaded
strh r1, [r0]
ldr r0, =gUnknown_0862AAFC
bl LoadCompressedObjectPic
ldr r0, =gUnknown_0862AB04
bl LoadCompressedObjectPic
ldr r0, =gUnknown_0862AB0C
bl LoadCompressedObjectPalette
add sp, 0xC
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D8358
thumb_func_start sub_81D844C
sub_81D844C: @ 81D844C
push {r4,r5,lr}
movs r0, 0x6
bl GetGpuReg
lsls r0, 16
lsrs r2, r0, 16
adds r1, r2, 0
subs r1, 0x18
lsls r0, r1, 16
lsrs r0, 16
cmp r0, 0x6F
bhi _081D848C
ldr r0, =gUnknown_0203CF60
ldr r0, [r0]
ldr r3, =0x00002008
adds r0, r3
movs r3, 0
ldrsh r0, [r0, r3]
cmp r1, r0
bgt _081D848C
ldr r1, =0x04000052
ldr r3, =0x00000d08
b _081D8492
.pool
_081D848C:
ldr r1, =0x04000052
movs r3, 0x80
lsls r3, 5
_081D8492:
adds r0, r3, 0
strh r0, [r1]
cmp r2, 0
bne _081D84E0
ldr r0, =gUnknown_0203CF60
ldr r1, [r0]
ldr r2, =0x00002008
adds r3, r1, r2
ldrh r4, [r3]
movs r1, 0
ldrsh r2, [r3, r1]
ldr r1, =0x00001fff
adds r5, r0, 0
cmp r2, r1
bgt _081D84D4
cmp r2, 0x27
bgt _081D84C8
adds r0, r4, 0x4
b _081D84D2
.pool
_081D84C8:
cmp r2, 0x4F
bgt _081D84D0
adds r0, r4, 0x2
b _081D84D2
_081D84D0:
adds r0, r4, 0x1
_081D84D2:
strh r0, [r3]
_081D84D4:
ldr r1, [r5]
ldr r2, =0x0000200a
adds r1, r2
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
_081D84E0:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D844C
thumb_func_start sub_81D84EC
sub_81D84EC: @ 81D84EC
push {r4-r6,lr}
mov r6, r8
push {r6}
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r6, =gTasks + 0x8
adds r5, r4, r6
bl sub_81D82B0
bl sub_81D8358
ldr r1, =0x00001e41
movs r0, 0x50
bl SetGpuRegBits
movs r0, 0x80
lsls r0, 5
mov r8, r0
movs r0, 0x52
mov r1, r8
bl SetGpuReg
movs r0, 0x1
negs r0, r0
movs r1, 0x10
movs r2, 0
bl BlendPalettes
ldr r0, =sub_81D67EC
bl SetVBlankCallback
ldr r0, =gUnknown_0203CF60
ldr r0, [r0]
ldr r1, =0x00002008
adds r2, r0, r1
movs r1, 0
strh r1, [r2]
ldr r2, =0x0000200a
adds r0, r2
strh r1, [r0]
strh r1, [r5]
strh r1, [r5, 0x2]
strh r1, [r5, 0x4]
strh r1, [r5, 0x6]
mov r0, r8
strh r0, [r5, 0x8]
subs r6, 0x8
adds r4, r6
ldr r0, =sub_81D857C
str r0, [r4]
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D84EC
thumb_func_start sub_81D857C
sub_81D857C: @ 81D857C
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r5, r0, r1
movs r1, 0
ldrsh r0, [r5, r1]
cmp r0, 0x4
bhi _081D8674
lsls r0, 2
ldr r1, =_081D85A8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081D85A8:
.4byte _081D85BC
.4byte _081D85DC
.4byte _081D861A
.4byte _081D863A
.4byte _081D8656
_081D85BC:
ldrh r1, [r5, 0x2]
movs r2, 0x2
ldrsh r0, [r5, r2]
cmp r0, 0x8
bne _081D8634
movs r0, 0x1
negs r0, r0
movs r4, 0
str r4, [sp]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
strh r4, [r5, 0x2]
b _081D864E
_081D85DC:
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _081D8674
ldrh r2, [r5, 0x2]
movs r3, 0x2
ldrsh r0, [r5, r3]
cmp r0, 0xA
bne _081D8614
strh r1, [r5, 0x2]
ldrh r0, [r5]
adds r0, 0x1
strh r0, [r5]
ldr r0, =sub_81D844C
bl SetHBlankCallback
movs r0, 0x3
bl EnableInterrupts
b _081D8674
.pool
_081D8614:
adds r0, r2, 0x1
strh r0, [r5, 0x2]
b _081D8674
_081D861A:
ldrh r1, [r5, 0x2]
movs r2, 0x2
ldrsh r0, [r5, r2]
cmp r0, 0x50
bne _081D8634
movs r0, 0
strh r0, [r5, 0x2]
ldrh r0, [r5]
adds r0, 0x1
strh r0, [r5]
bl sub_81D86CC
b _081D8674
_081D8634:
adds r0, r1, 0x1
strh r0, [r5, 0x2]
b _081D8674
_081D863A:
ldrh r0, [r5, 0x2]
adds r0, 0x1
strh r0, [r5, 0x2]
lsls r0, 16
movs r1, 0xB8
lsls r1, 17
cmp r0, r1
bne _081D8674
movs r0, 0
strh r0, [r5, 0x2]
_081D864E:
ldrh r0, [r5]
adds r0, 0x1
strh r0, [r5]
b _081D8674
_081D8656:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, =sub_81D8684
str r1, [r0]
_081D8674:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D857C
thumb_func_start sub_81D8684
sub_81D8684: @ 81D8684
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081D86B8
movs r0, 0
bl SetVBlankCallback
movs r0, 0
bl SetHBlankCallback
bl ResetSpriteData
bl FreeAllSpritePalettes
ldr r0, =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, =sub_81D6840
str r0, [r1]
_081D86B8:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D8684
thumb_func_start sub_81D86CC
sub_81D86CC: @ 81D86CC
push {r4-r6,lr}
mov r6, r8
push {r6}
ldr r0, =gUnknown_0862AB14
movs r1, 0xA0
movs r2, 0
movs r3, 0
bl CreateSprite
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
lsls r5, r6, 4
adds r5, r6
lsls r5, 2
ldr r4, =gSprites + 0x2E
adds r0, r5, r4
mov r8, r0
ldr r0, =gUnknown_0862AB2C
movs r2, 0x30
negs r2, r2
movs r1, 0xB8
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
mov r1, r8
strh r0, [r1]
adds r3, r4, 0
subs r3, 0x2E
subs r4, 0x12
adds r4, r5, r4
ldr r0, =sub_81D874C
str r0, [r4]
adds r5, r3
ldrb r0, [r5, 0x5]
movs r2, 0xC
orrs r0, r2
strb r0, [r5, 0x5]
movs r4, 0
ldrsh r1, [r1, r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrb r1, [r0, 0x5]
orrs r1, r2
strb r1, [r0, 0x5]
adds r0, r6, 0
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D86CC
thumb_func_start sub_81D874C
sub_81D874C: @ 81D874C
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r5, 0
adds r4, 0x2E
movs r0, 0x4
ldrsh r1, [r4, r0]
cmp r1, 0
bne _081D8764
movs r0, 0xC
strh r0, [r4, 0x6]
movs r0, 0x8
b _081D87C2
_081D8764:
movs r0, 0x80
lsls r0, 1
cmp r1, r0
bne _081D8774
movs r0, 0x9
strh r0, [r4, 0x6]
movs r0, 0x7
b _081D87C2
_081D8774:
movs r0, 0x86
lsls r0, 1
cmp r1, r0
bne _081D8784
movs r0, 0x8
strh r0, [r4, 0x6]
movs r0, 0x6
b _081D87C2
_081D8784:
movs r0, 0x8C
lsls r0, 1
cmp r1, r0
bne _081D8794
movs r0, 0x7
strh r0, [r4, 0x6]
movs r0, 0x5
b _081D87C2
_081D8794:
movs r0, 0x92
lsls r0, 1
cmp r1, r0
bne _081D87A4
movs r0, 0x6
strh r0, [r4, 0x6]
movs r0, 0x4
b _081D87C2
_081D87A4:
movs r0, 0x98
lsls r0, 1
cmp r1, r0
bne _081D87B4
movs r0, 0x5
strh r0, [r4, 0x6]
movs r0, 0x3
b _081D87C2
_081D87B4:
movs r0, 0xA0
lsls r0, 1
cmp r1, r0
bne _081D87C4
movs r0, 0x4
strh r0, [r4, 0x6]
movs r0, 0x2
_081D87C2:
strh r0, [r4, 0x8]
_081D87C4:
movs r1, 0x4
ldrsh r0, [r4, r1]
movs r2, 0x6
ldrsh r1, [r4, r2]
bl __modsi3
cmp r0, 0
bne _081D87EE
ldrh r0, [r5, 0x24]
subs r0, 0x1
strh r0, [r5, 0x24]
ldr r2, =gSprites
movs r0, 0
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x24]
subs r1, 0x1
strh r1, [r0, 0x24]
_081D87EE:
movs r1, 0x4
ldrsh r0, [r4, r1]
movs r2, 0x8
ldrsh r1, [r4, r2]
bl __modsi3
cmp r0, 0
bne _081D8818
ldrh r0, [r5, 0x26]
adds r0, 0x1
strh r0, [r5, 0x26]
ldr r2, =gSprites
movs r0, 0
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x26]
adds r1, 0x1
strh r1, [r0, 0x26]
_081D8818:
ldrh r0, [r4, 0x4]
adds r0, 0x1
strh r0, [r4, 0x4]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D874C
thumb_func_start sub_81D8828
sub_81D8828: @ 81D8828
push {r4,lr}
bl sub_8121DA0
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, =gUnknown_0862AB44
movs r0, 0
movs r2, 0x4
bl InitBgsFromTemplates
ldr r4, =gUnknown_0203CF60
ldr r1, [r4]
adds r1, 0x4
movs r0, 0
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r0, =0x00000804
adds r1, r0
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r0, =0x00001004
adds r1, r0
movs r0, 0x2
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r0, =0x00001804
adds r1, r0
movs r0, 0x3
bl SetBgTilemapBuffer
bl sub_8121E10
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x3
bl schedule_bg_copy_tilemap_to_vram
movs r1, 0xC1
lsls r1, 6
movs r0, 0
bl SetGpuReg
movs r0, 0
bl ShowBg
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x3
bl ShowBg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D8828
thumb_func_start sub_81D88D0
sub_81D88D0: @ 81D88D0
push {r4,lr}
sub sp, 0x4
bl reset_temp_tile_data_buffers
ldr r1, =gUnknown_08DA80BC
movs r4, 0
str r4, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r1, =gUnknown_08DA7EAC
str r4, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r1, =gUnknown_08DA7C30
str r4, [sp]
movs r0, 0x3
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
_081D8904:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
bne _081D8904
ldr r0, =gUnknown_08DA8D6C
ldr r4, =gUnknown_0203CF60
ldr r1, [r4]
adds r1, 0x4
bl LZDecompressWram
ldr r0, =gUnknown_08DA8B40
ldr r1, [r4]
ldr r2, =0x00000804
adds r1, r2
bl LZDecompressWram
ldr r0, =gUnknown_08DA7FB4
ldr r1, [r4]
ldr r2, =0x00001004
adds r1, r2
bl LZDecompressWram
ldr r0, =gUnknown_08DA7D6C
ldr r1, [r4]
ldr r2, =0x00001804
adds r1, r2
bl LZDecompressWram
ldr r0, =gUnknown_08DA8E84
movs r1, 0
movs r2, 0x80
bl LoadCompressedPalette
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D88D0
thumb_func_start sub_81D8980
sub_81D8980: @ 81D8980
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r5, =gTasks + 0x8
adds r6, r4, r5
bl sub_81D8828
bl sub_81D88D0
bl sub_81D68C8
movs r0, 0x1
negs r0, r0
movs r1, 0x10
movs r2, 0
bl BlendPalettes
ldr r0, =sub_81D67EC
bl SetVBlankCallback
movs r0, 0
strh r0, [r6]
strh r0, [r6, 0x2]
ldr r0, =sub_81D8AD8
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x4]
subs r5, 0x8
adds r4, r5
ldr r0, =sub_81D89E0
str r0, [r4]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D8980
thumb_func_start sub_81D89E0
sub_81D89E0: @ 81D89E0
push {r4-r6,lr}
sub sp, 0x4
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
bl sub_81D8BB4
ldrh r1, [r4, 0x6]
movs r0, 0x7
ands r0, r1
cmp r0, 0
bne _081D8A16
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0x1
bgt _081D8A16
movs r2, 0x2
ldrsh r0, [r4, r2]
cmp r0, 0x59
bgt _081D8A16
movs r0, 0x67
bl PlaySE
_081D8A16:
ldrh r0, [r4, 0x6]
adds r0, 0x1
strh r0, [r4, 0x6]
movs r0, 0
ldrsh r5, [r4, r0]
cmp r5, 0x1
beq _081D8A5C
cmp r5, 0x1
bgt _081D8A34
cmp r5, 0
beq _081D8A3E
b _081D8AC6
.pool
_081D8A34:
cmp r5, 0x2
beq _081D8A8C
cmp r5, 0x3
beq _081D8AA8
b _081D8AC6
_081D8A3E:
ldrh r1, [r4, 0x2]
movs r2, 0x2
ldrsh r0, [r4, r2]
cmp r0, 0x8
bne _081D8AA2
movs r0, 0x1
negs r0, r0
str r5, [sp]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
strh r5, [r4, 0x2]
b _081D8A9A
_081D8A5C:
ldrh r1, [r4, 0x2]
movs r2, 0x2
ldrsh r0, [r4, r2]
cmp r0, 0x7F
bne _081D8AA2
movs r0, 0
strh r0, [r4, 0x2]
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
ldr r2, =gTasks
movs r0, 0x4
ldrsh r1, [r4, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldr r1, =sub_81D8B2C
b _081D8AC4
.pool
_081D8A8C:
ldrh r1, [r4, 0x2]
movs r2, 0x2
ldrsh r0, [r4, r2]
cmp r0, 0xC
bne _081D8AA2
movs r0, 0
strh r0, [r4, 0x2]
_081D8A9A:
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
b _081D8AC6
_081D8AA2:
adds r0, r1, 0x1
strh r0, [r4, 0x2]
b _081D8AC6
_081D8AA8:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r0, r1
ldr r1, =sub_81D8BEC
_081D8AC4:
str r1, [r0]
_081D8AC6:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D89E0
thumb_func_start sub_81D8AD8
sub_81D8AD8: @ 81D8AD8
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks + 0x8
adds r5, r1, r0
ldrh r1, [r5, 0x1E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
bne _081D8B1C
bl Random
movs r4, 0x7
adds r1, r4, 0
ands r1, r0
subs r1, 0x4
lsls r1, 8
movs r0, 0x1
movs r2, 0
bl ChangeBgX
bl Random
ands r4, r0
subs r4, 0x4
lsls r4, 8
movs r0, 0x1
adds r1, r4, 0
movs r2, 0
bl ChangeBgY
_081D8B1C:
ldrh r0, [r5, 0x1E]
adds r0, 0x1
strh r0, [r5, 0x1E]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D8AD8
thumb_func_start sub_81D8B2C
sub_81D8B2C: @ 81D8B2C
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks + 0x8
adds r4, r1, r0
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081D8B70
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgY
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
movs r0, 0xA
strh r0, [r4, 0x2]
movs r1, 0x1
negs r1, r1
adds r0, r1, 0
b _081D8BAA
.pool
_081D8B70:
cmp r0, 0x1
bne _081D8BAC
movs r0, 0x2
ldrsh r1, [r4, r0]
lsls r1, 8
movs r0, 0x1
movs r2, 0x2
bl ChangeBgX
movs r0, 0x2
ldrsh r1, [r4, r0]
lsls r1, 8
movs r0, 0x1
movs r2, 0x1
bl ChangeBgY
ldrh r0, [r4, 0x4]
ldrh r1, [r4, 0x2]
adds r0, r1
strh r0, [r4, 0x2]
lsls r0, 16
asrs r0, 16
movs r1, 0xA
negs r1, r1
cmp r0, r1
bne _081D8BAC
movs r1, 0x4
ldrsh r0, [r4, r1]
negs r0, r0
_081D8BAA:
strh r0, [r4, 0x4]
_081D8BAC:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81D8B2C
thumb_func_start sub_81D8BB4
sub_81D8BB4: @ 81D8BB4
push {r4,lr}
movs r4, 0x80
lsls r4, 3
movs r0, 0x2
adds r1, r4, 0
movs r2, 0x2
bl ChangeBgX
movs r0, 0x2
adds r1, r4, 0
movs r2, 0x1
bl ChangeBgY
movs r4, 0x80
lsls r4, 4
movs r0, 0
adds r1, r4, 0
movs r2, 0x2
bl ChangeBgX
movs r0, 0
adds r1, r4, 0
movs r2, 0x1
bl ChangeBgY
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81D8BB4
thumb_func_start sub_81D8BEC
sub_81D8BEC: @ 81D8BEC
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r5, r1, 3
ldr r6, =gTasks + 0x8
adds r4, r5, r6
bl sub_81D8BB4
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081D8C26
movs r0, 0
bl SetVBlankCallback
bl sub_81D6904
ldrb r0, [r4, 0x4]
bl DestroyTask
adds r0, r6, 0
subs r0, 0x8
adds r0, r5, r0
ldr r1, =sub_81D6840
str r1, [r0]
_081D8C26:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D8BEC
thumb_func_start sub_81D8C38
sub_81D8C38: @ 81D8C38
push {r4,lr}
bl sub_8121DA0
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, =gUnknown_0862AD08
movs r0, 0x1
movs r2, 0x3
bl InitBgsFromTemplates
ldr r4, =gUnknown_0203CF60
ldr r1, [r4]
adds r1, 0x4
movs r0, 0
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r0, =0x00000804
adds r1, r0
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r0, =0x00001004
adds r1, r0
movs r0, 0x2
bl SetBgTilemapBuffer
bl sub_8121E10
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
movs r1, 0xC1
lsls r1, 6
movs r0, 0
bl SetGpuReg
movs r0, 0
bl ShowBg
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D8C38
thumb_func_start sub_81D8CC4
sub_81D8CC4: @ 81D8CC4
push {r4,lr}
sub sp, 0x4
bl reset_temp_tile_data_buffers
ldr r1, =gUnknown_08DAAB24
movs r4, 0
str r4, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r1, =gUnknown_08DAA8B4
str r4, [sp]
movs r0, 0
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
_081D8CEA:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
bne _081D8CEA
ldr r0, =gUnknown_08DAAE54
ldr r4, =gUnknown_0203CF60
ldr r1, [r4]
ldr r2, =0x00000804
adds r1, r2
bl LZDecompressWram
ldr r0, =gUnknown_08DAAC1C
ldr r1, [r4]
adds r1, 0x4
bl LZDecompressWram
ldr r0, =gUnknown_08DAAF98
ldr r1, [r4]
ldr r2, =0x00001004
adds r1, r2
bl LZDecompressWram
ldr r0, =gUnknown_08DAAFEC
movs r1, 0
movs r2, 0x60
bl LoadCompressedPalette
ldr r0, =gUnknown_0862AC28
bl LoadCompressedObjectPic
ldr r0, =gUnknown_0862AC30
bl LoadCompressedObjectPic
ldr r0, =gUnknown_0862AC38
bl LoadCompressedObjectPic
ldr r0, =gUnknown_0862AC40
bl LoadCompressedObjectPic
ldr r0, =gUnknown_0862AC48
bl LoadCompressedObjectPic
ldr r0, =gUnknown_0862AC50
bl LoadCompressedObjectPic
ldr r0, =gUnknown_0862AC58
bl LoadCompressedObjectPalette
ldr r0, =gUnknown_0862AC60
bl LoadCompressedObjectPalette
ldr r0, =gUnknown_0862AC68
bl LoadCompressedObjectPalette
ldr r0, =gUnknown_0862AC70
bl LoadCompressedObjectPalette
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D8CC4
thumb_func_start sub_81D8DB4
sub_81D8DB4: @ 81D8DB4
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r5, =gTasks + 0x8
adds r6, r4, r5
bl sub_81D8C38
bl sub_81D8CC4
bl sub_81D68C8
movs r1, 0x80
lsls r1, 3
movs r0, 0
bl ClearGpuRegBits
ldr r1, =0x00000241
movs r0, 0x50
bl SetGpuReg
ldr r1, =0x00000e09
movs r0, 0x52
bl SetGpuReg
movs r0, 0x1
negs r0, r0
movs r1, 0x10
movs r2, 0
bl BlendPalettes
ldr r0, =sub_81D67EC
bl SetVBlankCallback
movs r0, 0
strh r0, [r6]
strh r0, [r6, 0x2]
subs r5, 0x8
adds r4, r5
ldr r0, =sub_81D8E80
str r0, [r4]
ldr r0, =sub_81D8FB0
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x4]
movs r0, 0x4
ldrsh r1, [r6, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r5
movs r2, 0
strh r2, [r0, 0x8]
movs r0, 0x4
ldrsh r1, [r6, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r5
strh r2, [r0, 0xA]
movs r0, 0x4
ldrsh r1, [r6, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r5
strh r2, [r0, 0xC]
movs r0, 0x4
ldrsh r1, [r6, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r5
movs r2, 0x1
strh r2, [r0, 0xE]
movs r0, 0x4
ldrsh r1, [r6, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r5
strh r2, [r0, 0x10]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D8DB4
thumb_func_start sub_81D8E80
sub_81D8E80: @ 81D8E80
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0xC
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 2
adds r0, r6
lsls r7, r0, 3
ldr r0, =gTasks + 0x8
mov r8, r0
adds r4, r7, r0
movs r1, 0
ldrsh r5, [r4, r1]
cmp r5, 0x1
beq _081D8EDE
cmp r5, 0x1
bgt _081D8EB0
cmp r5, 0
beq _081D8EBA
b _081D8FA0
.pool
_081D8EB0:
cmp r5, 0x2
beq _081D8F1E
cmp r5, 0x3
beq _081D8F84
b _081D8FA0
_081D8EBA:
ldrh r1, [r4, 0x2]
movs r2, 0x2
ldrsh r0, [r4, r2]
cmp r0, 0x8
bne _081D8F18
adds r0, r6, 0
bl sub_81D90A8
movs r0, 0x1
negs r0, r0
str r5, [sp]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
strh r5, [r4, 0x2]
b _081D8F30
_081D8EDE:
ldr r2, =gSprites
movs r0, 0xA
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, =sub_81D97E0
cmp r1, r0
bne _081D8FA0
ldrh r1, [r4, 0x2]
movs r2, 0x2
ldrsh r0, [r4, r2]
cmp r0, 0x40
bne _081D8F18
adds r0, r6, 0
bl sub_81D94D4
adds r0, r6, 0
bl sub_81D93D8
b _081D8F2C
.pool
_081D8F18:
adds r0, r1, 0x1
strh r0, [r4, 0x2]
b _081D8FA0
_081D8F1E:
ldrh r2, [r4, 0x2]
movs r0, 0x2
ldrsh r1, [r4, r0]
movs r0, 0xE0
lsls r0, 1
cmp r1, r0
bne _081D8F38
_081D8F2C:
movs r0, 0
strh r0, [r4, 0x2]
_081D8F30:
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
b _081D8FA0
_081D8F38:
adds r0, r2, 0x1
strh r0, [r4, 0x2]
movs r1, 0x2
ldrsh r0, [r4, r1]
movs r1, 0x90
bl __modsi3
lsls r0, 16
asrs r4, r0, 16
cmp r4, 0
bne _081D8FA0
ldr r0, =0x0000fffe
ldr r1, =0x0000ffff
str r1, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl sub_80A2C44
ldr r0, =0xffff0000
str r4, [sp]
str r4, [sp, 0x4]
movs r1, 0x1
str r1, [sp, 0x8]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl sub_80A2C44
b _081D8FA0
.pool
_081D8F84:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r1, 0x4
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
mov r0, r8
subs r0, 0x8
adds r0, r7, r0
ldr r1, =sub_81D9034
str r1, [r0]
_081D8FA0:
add sp, 0xC
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D8E80
thumb_func_start sub_81D8FB0
sub_81D8FB0: @ 81D8FB0
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks + 0x8
adds r4, r1, r0
ldrh r1, [r4]
movs r0, 0xF
ands r0, r1
cmp r0, 0
bne _081D9024
ldrh r1, [r4, 0x2]
adds r1, 0xE
lsls r1, 8
movs r2, 0xF8
lsls r2, 5
adds r0, r2, 0
ands r1, r0
ldrh r0, [r4, 0x4]
adds r0, 0x9
movs r2, 0xF
ands r0, r2
orrs r1, r0
movs r0, 0x52
bl SetGpuReg
ldrh r1, [r4, 0x2]
ldrh r0, [r4, 0x6]
subs r1, r0
strh r1, [r4, 0x2]
ldrh r0, [r4, 0x8]
ldrh r2, [r4, 0x4]
adds r0, r2
strh r0, [r4, 0x4]
lsls r1, 16
asrs r1, 16
movs r0, 0x3
negs r0, r0
cmp r1, r0
beq _081D9008
cmp r1, 0
bne _081D9010
_081D9008:
movs r1, 0x6
ldrsh r0, [r4, r1]
negs r0, r0
strh r0, [r4, 0x6]
_081D9010:
movs r2, 0x4
ldrsh r0, [r4, r2]
cmp r0, 0x3
beq _081D901C
cmp r0, 0
bne _081D9024
_081D901C:
movs r1, 0x8
ldrsh r0, [r4, r1]
negs r0, r0
strh r0, [r4, 0x8]
_081D9024:
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D8FB0
thumb_func_start sub_81D9034
sub_81D9034: @ 81D9034
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r6, r1, 3
ldr r7, =gTasks + 0x8
adds r4, r6, r7
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
bne _081D90A0
bl StopMapMusic
movs r1, 0x2
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081D9078
movs r0, 0
bl SetVBlankCallback
bl sub_81D6904
bl ResetSpriteData
bl FreeAllSpritePalettes
ldrb r0, [r4, 0x4]
bl DestroyTask
_081D9078:
ldrh r1, [r4, 0x2]
movs r2, 0x2
ldrsh r0, [r4, r2]
cmp r0, 0x20
bne _081D909C
strh r5, [r4, 0x2]
adds r0, r7, 0
subs r0, 0x8
adds r0, r6, r0
ldr r1, =sub_81D6840
str r1, [r0]
b _081D90A0
.pool
_081D909C:
adds r0, r1, 0x1
strh r0, [r4, 0x2]
_081D90A0:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81D9034
thumb_func_start sub_81D90A8
sub_81D90A8: @ 81D90A8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, =gTasks + 0x8
adds r4, r0
ldr r0, =gUnknown_0862AC78
movs r1, 0x40
movs r2, 0x78
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x6]
movs r0, 0x6
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites + 0x2E
mov r10, r1
adds r7, r0, r1
ldr r0, =gUnknown_0862AC90
movs r1, 0x10
movs r2, 0x82
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
strh r0, [r7]
movs r2, 0x2E
negs r2, r2
add r2, r10
mov r8, r2
movs r1, 0x6
ldrsh r0, [r4, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
add r1, r8
ldrb r2, [r1, 0x5]
movs r6, 0xD
negs r6, r6
adds r0, r6, 0
ands r0, r2
movs r2, 0x4
mov r9, r2
mov r2, r9
orrs r0, r2
strb r0, [r1, 0x5]
movs r1, 0
ldrsh r0, [r7, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
add r1, r8
ldrb r2, [r1, 0x5]
adds r0, r6, 0
ands r0, r2
mov r2, r9
orrs r0, r2
strb r0, [r1, 0x5]
ldr r5, =gUnknown_0862ACA8
adds r0, r5, 0
movs r1, 0xA0
movs r2, 0x80
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x8]
movs r0, 0x8
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
mov r1, r10
adds r7, r0, r1
adds r0, r5, 0
movs r1, 0xC0
movs r2, 0x80
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r0, 24
strh r0, [r7]
adds r0, r5, 0
movs r1, 0xE0
movs r2, 0x80
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r0, 24
strh r0, [r7, 0x2]
movs r2, 0x8
ldrsh r0, [r4, r2]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
add r1, r8
ldrb r2, [r1, 0x5]
adds r0, r6, 0
ands r0, r2
mov r2, r9
orrs r0, r2
strb r0, [r1, 0x5]
movs r1, 0
ldrsh r0, [r7, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
add r1, r8
ldrb r2, [r1, 0x5]
adds r0, r6, 0
ands r0, r2
mov r2, r9
orrs r0, r2
strb r0, [r1, 0x5]
movs r1, 0x2
ldrsh r0, [r7, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
add r1, r8
ldrb r2, [r1, 0x5]
adds r0, r6, 0
ands r0, r2
mov r2, r9
orrs r0, r2
strb r0, [r1, 0x5]
movs r0, 0
ldrsh r1, [r7, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r8
movs r1, 0x1
bl StartSpriteAnim
movs r2, 0x2
ldrsh r1, [r7, r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r8
movs r1, 0x2
bl StartSpriteAnim
ldr r0, =gUnknown_0862ACC0
movs r2, 0x41
negs r2, r2
movs r1, 0x78
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0xA]
movs r0, 0xA
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
mov r1, r10
adds r7, r0, r1
ldr r0, =gUnknown_0862ACD8
movs r2, 0x71
negs r2, r2
movs r1, 0x78
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
strh r0, [r7]
movs r2, 0xA
ldrsh r0, [r4, r2]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
add r1, r8
ldrb r2, [r1, 0x5]
adds r0, r6, 0
ands r0, r2
mov r2, r9
orrs r0, r2
strb r0, [r1, 0x5]
movs r0, 0
ldrsh r1, [r7, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r8
ldrb r1, [r0, 0x5]
ands r6, r1
orrs r6, r2
strb r6, [r0, 0x5]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D90A8
thumb_func_start sub_81D9274
sub_81D9274: @ 81D9274
push {r4-r6,lr}
mov r6, r8
push {r6}
lsls r0, 24
lsrs r0, 24
lsls r2, r0, 2
adds r2, r0
lsls r2, 3
ldr r0, =gTasks + 0x8
adds r2, r0
ldr r3, =gSprites
movs r0, 0x6
ldrsh r1, [r2, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
movs r1, 0x1C
adds r1, r3
mov r8, r1
add r0, r8
ldr r6, =pokemon_alive_on_battle_side
str r6, [r0]
movs r0, 0x6
ldrsh r1, [r2, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
movs r4, 0
strh r4, [r0, 0x36]
movs r0, 0x6
ldrsh r1, [r2, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
strh r4, [r0, 0x38]
movs r0, 0x6
ldrsh r1, [r2, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
movs r5, 0x4
strh r5, [r0, 0x3A]
movs r0, 0x6
ldrsh r1, [r2, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
strh r4, [r0, 0x3C]
movs r0, 0x8
ldrsh r1, [r2, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r8
str r6, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
strh r4, [r0, 0x36]
movs r0, 0x8
ldrsh r1, [r2, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
strh r4, [r0, 0x38]
movs r0, 0x8
ldrsh r1, [r2, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
strh r5, [r0, 0x3A]
movs r0, 0x8
ldrsh r1, [r2, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
movs r1, 0x1
strh r1, [r0, 0x3C]
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D9274
thumb_func_start pokemon_alive_on_battle_side
pokemon_alive_on_battle_side: @ 81D9338
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x36]
movs r0, 0x7
ands r0, r1
cmp r0, 0
bne _081D93CC
movs r1, 0x3C
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081D9370
ldrh r0, [r4, 0x20]
ldrh r3, [r4, 0x3A]
subs r0, r3
strh r0, [r4, 0x20]
ldr r2, =gSprites
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x20]
subs r1, r3
b _081D939E
.pool
_081D9370:
ldrh r2, [r4, 0x3A]
ldrh r1, [r4, 0x20]
adds r0, r2, r1
strh r0, [r4, 0x20]
ldr r3, =gSprites
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r1, [r0, 0x20]
adds r2, r1
strh r2, [r0, 0x20]
movs r2, 0x30
ldrsh r1, [r4, r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r1, [r4, 0x3A]
ldrh r2, [r0, 0x20]
adds r1, r2
_081D939E:
strh r1, [r0, 0x20]
ldrh r1, [r4, 0x38]
adds r1, 0x1
movs r2, 0
strh r1, [r4, 0x38]
ldrh r0, [r4, 0x3A]
subs r0, r1
strh r0, [r4, 0x3A]
lsls r1, 16
asrs r1, 16
cmp r1, 0x3
bne _081D93CC
strh r2, [r4, 0x36]
strh r2, [r4, 0x38]
strh r2, [r4, 0x3A]
ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
b _081D93D2
.pool
_081D93CC:
ldrh r0, [r4, 0x36]
adds r0, 0x1
strh r0, [r4, 0x36]
_081D93D2:
pop {r4}
pop {r0}
bx r0
thumb_func_end pokemon_alive_on_battle_side
thumb_func_start sub_81D93D8
sub_81D93D8: @ 81D93D8
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r2, r0, 2
adds r2, r0
lsls r2, 3
ldr r0, =gTasks + 0x8
adds r2, r0
ldr r3, =gSprites
movs r0, 0x6
ldrsh r1, [r2, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r3, 0
adds r1, 0x1C
adds r0, r1
ldr r1, =sub_81D9420
str r1, [r0]
movs r0, 0x6
ldrsh r1, [r2, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
movs r1, 0x1
bl StartSpriteAnim
pop {r0}
bx r0
.pool
thumb_func_end sub_81D93D8
thumb_func_start sub_81D9420
sub_81D9420: @ 81D9420
push {r4,lr}
adds r4, r0, 0
adds r0, 0x2B
ldrb r0, [r0]
cmp r0, 0x1
beq _081D9488
cmp r0, 0x1
bgt _081D9436
cmp r0, 0
beq _081D9440
b _081D94C4
_081D9436:
cmp r0, 0x2
beq _081D9440
cmp r0, 0x3
beq _081D9488
b _081D94C4
_081D9440:
adds r0, r4, 0
adds r0, 0x2C
ldrb r0, [r0]
lsls r0, 26
lsrs r0, 26
movs r1, 0xC
bl __umodsi3
lsls r0, 24
ldr r2, =gSprites
cmp r0, 0
bne _081D9470
ldrh r0, [r4, 0x20]
subs r0, 0x2
strh r0, [r4, 0x20]
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x20]
subs r1, 0x2
strh r1, [r0, 0x20]
_081D9470:
movs r1, 0x2E
ldrsh r0, [r4, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
movs r0, 0
strh r0, [r1, 0x26]
b _081D94C4
.pool
_081D9488:
ldr r2, =gSprites
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r1, =0x0000fffe
strh r1, [r0, 0x26]
adds r0, r4, 0
adds r0, 0x2C
ldrb r1, [r0]
lsls r1, 26
lsrs r1, 26
movs r0, 0xF
ands r0, r1
cmp r0, 0
bne _081D94C4
ldrh r0, [r4, 0x22]
adds r0, 0x1
strh r0, [r4, 0x22]
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x22]
adds r1, 0x1
strh r1, [r0, 0x22]
_081D94C4:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D9420
thumb_func_start sub_81D94D4
sub_81D94D4: @ 81D94D4
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks + 0x8
adds r1, r0
movs r0, 0x8
ldrsh r1, [r1, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r2, =gSprites + 0x2E
adds r4, r0, r2
subs r2, 0x12
adds r0, r2
ldr r3, =sub_81D9528
str r3, [r0]
movs r0, 0
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
str r3, [r0]
movs r0, 0x2
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
str r3, [r0]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D94D4
thumb_func_start sub_81D9528
sub_81D9528: @ 81D9528
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r7, r0, 0
ldrh r1, [r7, 0x36]
movs r0, 0x3
ands r0, r1
cmp r0, 0
bne _081D9550
ldrh r1, [r7, 0x24]
movs r2, 0x24
ldrsh r0, [r7, r2]
cmp r0, 0x1
bne _081D954C
ldr r0, =0x0000ffff
b _081D954E
.pool
_081D954C:
movs r0, 0x1
_081D954E:
strh r0, [r7, 0x24]
_081D9550:
movs r1, 0x38
ldrsh r0, [r7, r1]
cmp r0, 0x80
bne _081D95CE
ldr r2, =gUnknown_0862ACF0
mov r8, r2
mov r0, r8
movs r1, 0x98
movs r2, 0x84
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
strh r0, [r7, 0x3C]
ldr r5, =gSprites
movs r1, 0x3C
ldrsh r0, [r7, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r5
ldrb r2, [r1, 0x5]
movs r4, 0xD
negs r4, r4
adds r0, r4, 0
ands r0, r2
movs r6, 0x4
orrs r0, r6
strb r0, [r1, 0x5]
mov r0, r8
movs r1, 0xE0
movs r2, 0x84
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
strh r0, [r7, 0x3C]
movs r2, 0x3C
ldrsh r1, [r7, r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldrb r1, [r0, 0x5]
ands r4, r1
orrs r4, r6
strb r4, [r0, 0x5]
movs r0, 0x3C
ldrsh r1, [r7, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
adds r0, 0x3F
ldrb r1, [r0]
movs r2, 0x1
orrs r1, r2
strb r1, [r0]
ldrh r0, [r7, 0x38]
adds r0, 0x1
strh r0, [r7, 0x38]
_081D95CE:
ldrh r1, [r7, 0x38]
movs r2, 0x38
ldrsh r0, [r7, r2]
cmp r0, 0x7F
ble _081D95F8
movs r1, 0x26
ldrsh r0, [r7, r1]
cmp r0, 0x20
beq _081D95FC
ldrh r0, [r7, 0x3A]
adds r0, 0x1
strh r0, [r7, 0x3A]
lsls r0, 16
asrs r0, 20
strh r0, [r7, 0x26]
b _081D95FC
.pool
_081D95F8:
adds r0, r1, 0x1
strh r0, [r7, 0x38]
_081D95FC:
ldrh r0, [r7, 0x36]
movs r1, 0x3F
ands r0, r1
cmp r0, 0
bne _081D960C
movs r0, 0xA5
bl PlaySE
_081D960C:
ldrh r0, [r7, 0x36]
adds r0, 0x1
strh r0, [r7, 0x36]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81D9528
thumb_func_start sub_81D961C
sub_81D961C: @ 81D961C
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x3C
ldrsh r1, [r4, r0]
cmp r1, 0x40
bgt _081D968C
ldrh r0, [r4, 0x26]
adds r0, 0x2
strh r0, [r4, 0x26]
ldr r5, =gSprites
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldrh r1, [r0, 0x26]
adds r1, 0x2
strh r1, [r0, 0x26]
movs r1, 0x3C
ldrsh r0, [r4, r1]
cmp r0, 0x40
beq _081D964C
b _081D979E
_081D964C:
movs r3, 0x30
negs r3, r3
adds r0, r4, 0
movs r1, 0x1
movs r2, 0
bl sub_81D9868
movs r2, 0x5
strh r2, [r4, 0x36]
ldr r0, =0x0000ffff
strh r0, [r4, 0x38]
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
movs r1, 0x3
strh r1, [r0, 0x36]
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
strh r2, [r0, 0x38]
b _081D979E
.pool
_081D968C:
cmp r1, 0x6F
bgt _081D96BE
adds r0, r4, 0
bl sub_81D97E0
movs r1, 0x36
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081D96A4
movs r0, 0x68
bl PlaySE
_081D96A4:
movs r0, 0x36
ldrsh r1, [r4, r0]
movs r0, 0x3
negs r0, r0
cmp r1, r0
bne _081D979E
adds r0, r4, 0
movs r1, 0x2
movs r2, 0x30
movs r3, 0x10
bl sub_81D9868
b _081D979E
_081D96BE:
cmp r1, 0x70
bne _081D96EC
ldr r2, =gSprites
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x7
strh r1, [r0, 0x36]
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x3
strh r1, [r0, 0x38]
b _081D96F2
.pool
_081D96EC:
ldr r0, =0x00000147
cmp r1, r0
bgt _081D9700
_081D96F2:
adds r0, r4, 0
bl sub_81D97E0
b _081D979E
.pool
_081D9700:
movs r0, 0xA4
lsls r0, 1
cmp r1, r0
bne _081D974C
adds r0, r4, 0
bl sub_81D97E0
adds r0, r4, 0
movs r1, 0x3
movs r2, 0x30
movs r3, 0x10
bl sub_81D9868
movs r3, 0x1
strh r3, [r4, 0x24]
ldr r2, =gSprites
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r3, [r0, 0x24]
movs r0, 0xCB
lsls r0, 1
movs r1, 0
bl PlayCry1
ldr r0, =sub_81D98B4
movs r1, 0
bl CreateTask
b _081D979E
.pool
_081D974C:
movs r0, 0xB0
lsls r0, 1
cmp r1, r0
beq _081D9790
adds r0, 0x18
cmp r1, r0
bne _081D979E
movs r3, 0
strh r3, [r4, 0x24]
ldr r2, =gSprites
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r3, [r0, 0x24]
adds r0, r4, 0
bl sub_81D97E0
adds r0, r4, 0
movs r1, 0x2
movs r2, 0x30
movs r3, 0x10
bl sub_81D9868
ldr r0, =sub_81D97E0
str r0, [r4, 0x1C]
b _081D97D2
.pool
_081D9790:
ldr r0, =sub_81D8E80
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl sub_81D9274
_081D979E:
ldrh r2, [r4, 0x3C]
movs r0, 0x3C
ldrsh r1, [r4, r0]
movs r0, 0xA4
lsls r0, 1
cmp r1, r0
ble _081D97CC
movs r0, 0x1
ands r0, r2
cmp r0, 0
bne _081D97CC
movs r1, 0x24
ldrsh r2, [r4, r1]
negs r2, r2
strh r2, [r4, 0x24]
ldr r3, =gSprites
movs r0, 0x2E
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
strh r2, [r0, 0x24]
_081D97CC:
ldrh r0, [r4, 0x3C]
adds r0, 0x1
strh r0, [r4, 0x3C]
_081D97D2:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D961C
thumb_func_start sub_81D97E0
sub_81D97E0: @ 81D97E0
push {r4-r7,lr}
adds r3, r0, 0
movs r0, 0x2E
ldrsh r1, [r3, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r5, =gSprites
adds r4, r0, r5
ldrh r1, [r3, 0x3A]
ldrh r0, [r4, 0x36]
ands r0, r1
cmp r0, 0
bne _081D985C
ldrh r2, [r3, 0x36]
ldrh r1, [r3, 0x26]
adds r0, r2, r1
strh r0, [r3, 0x26]
movs r7, 0x2E
ldrsh r1, [r3, r7]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldrh r1, [r0, 0x26]
adds r2, r1
strh r2, [r0, 0x26]
ldrh r0, [r3, 0x38]
ldrh r2, [r3, 0x36]
adds r0, r2
strh r0, [r3, 0x36]
lsls r0, 16
asrs r5, r0, 16
ldrh r6, [r4, 0x38]
movs r7, 0x38
ldrsh r2, [r4, r7]
cmp r5, r2
bge _081D9836
movs r0, 0x36
ldrsh r1, [r3, r0]
adds r0, r2, 0
cmn r1, r0
bgt _081D985C
_081D9836:
cmp r5, r2
ble _081D9844
strh r6, [r3, 0x36]
b _081D9854
.pool
_081D9844:
movs r0, 0x36
ldrsh r1, [r3, r0]
movs r2, 0x38
ldrsh r0, [r4, r2]
cmn r1, r0
bge _081D9854
negs r0, r6
strh r0, [r3, 0x36]
_081D9854:
movs r7, 0x38
ldrsh r0, [r3, r7]
negs r0, r0
strh r0, [r3, 0x38]
_081D985C:
ldrh r0, [r3, 0x3A]
adds r0, 0x1
strh r0, [r3, 0x3A]
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81D97E0
thumb_func_start sub_81D9868
sub_81D9868: @ 81D9868
push {r4,r5,lr}
adds r5, r1, 0
lsls r5, 24
lsrs r5, 24
movs r4, 0x2E
ldrsh r1, [r0, r4]
lsls r4, r1, 4
adds r4, r1
lsls r4, 2
ldr r1, =gSprites
adds r4, r1
lsls r2, 16
asrs r2, 16
ldrh r1, [r0, 0x20]
adds r2, r1
strh r2, [r4, 0x20]
lsls r3, 16
asrs r3, 16
ldrh r1, [r0, 0x22]
adds r3, r1
strh r3, [r4, 0x22]
ldrh r1, [r0, 0x24]
strh r1, [r4, 0x24]
ldrh r1, [r0, 0x26]
strh r1, [r4, 0x26]
adds r1, r5, 0
bl StartSpriteAnim
adds r0, r4, 0
adds r1, r5, 0
bl StartSpriteAnim
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D9868
thumb_func_start sub_81D98B4
sub_81D98B4: @ 81D98B4
push {r4,r5,lr}
sub sp, 0x10
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
movs r0, 0
ldrsh r1, [r4, r0]
cmp r1, 0x1
beq _081D990C
cmp r1, 0x1
bgt _081D98DC
cmp r1, 0
beq _081D98E2
b _081D99B4
.pool
_081D98DC:
cmp r1, 0x2
beq _081D99A4
b _081D99B4
_081D98E2:
movs r2, 0x80
lsls r2, 7
movs r0, 0x40
str r0, [sp]
adds r0, 0xC0
str r0, [sp, 0x4]
str r0, [sp, 0x8]
str r1, [sp, 0xC]
movs r0, 0x2
adds r1, r2, 0
movs r3, 0x78
bl SetBgAffine
movs r1, 0x80
lsls r1, 3
movs r0, 0
bl SetGpuRegBits
movs r0, 0x10
strh r0, [r4, 0x8]
b _081D9922
_081D990C:
movs r1, 0xA
ldrsh r0, [r4, r1]
cmp r0, 0x8
bne _081D991A
movs r0, 0x12
bl PlaySE
_081D991A:
movs r3, 0x4
ldrsh r0, [r4, r3]
cmp r0, 0x2
bne _081D992A
_081D9922:
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
b _081D99B4
_081D992A:
ldrh r5, [r4, 0x8]
ldrh r1, [r4, 0x2]
adds r0, r5, r1
strh r0, [r4, 0x2]
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
movs r3, 0x6
ldrsh r0, [r4, r3]
movs r1, 0x3
bl __modsi3
lsls r0, 16
cmp r0, 0
bne _081D9954
lsls r0, r5, 16
asrs r0, 16
cmp r0, 0x4
beq _081D9954
subs r0, r5, 0x2
strh r0, [r4, 0x8]
_081D9954:
ldrh r0, [r4, 0x6]
adds r0, 0x1
strh r0, [r4, 0x6]
movs r2, 0x80
lsls r2, 7
movs r0, 0x40
str r0, [sp]
ldrh r0, [r4, 0x2]
movs r3, 0x80
lsls r3, 1
adds r1, r3, 0
subs r0, r1, r0
lsls r0, 16
asrs r0, 16
str r0, [sp, 0x4]
ldrh r0, [r4, 0x2]
subs r1, r0
lsls r1, 16
asrs r1, 16
str r1, [sp, 0x8]
movs r5, 0
str r5, [sp, 0xC]
movs r0, 0x2
adds r1, r2, 0
movs r3, 0x78
bl SetBgAffine
movs r1, 0x2
ldrsh r0, [r4, r1]
cmp r0, 0xFF
ble _081D99B4
strh r5, [r4, 0x2]
strh r5, [r4, 0x6]
strh r5, [r4, 0xA]
movs r0, 0x10
strh r0, [r4, 0x8]
ldrh r0, [r4, 0x4]
adds r0, 0x1
strh r0, [r4, 0x4]
b _081D99B4
_081D99A4:
movs r1, 0x80
lsls r1, 3
movs r0, 0
bl ClearGpuRegBits
adds r0, r5, 0
bl DestroyTask
_081D99B4:
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81D98B4
.align 2, 0 @ Don't pad with nop.