pokeemerald/asm/pokenav_unk_2.s
2019-07-19 17:23:52 -04:00

2240 lines
33 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
@ File centered around AllocSubstruct(2)
thumb_func_start sub_81C9924
sub_81C9924: @ 81C9924
push {lr}
bl sub_81C9958
adds r1, r0, 0
cmp r1, 0
beq _081C9938
movs r0, 0
strb r0, [r1, 0xD]
movs r0, 0x1
b _081C993A
_081C9938:
movs r0, 0
_081C993A:
pop {r1}
bx r1
thumb_func_end sub_81C9924
thumb_func_start sub_81C9940
sub_81C9940: @ 81C9940
push {lr}
bl sub_81C9958
adds r1, r0, 0
cmp r1, 0
beq _081C9952
movs r0, 0x1
strb r0, [r1, 0xD]
b _081C9954
_081C9952:
movs r0, 0
_081C9954:
pop {r1}
bx r1
thumb_func_end sub_81C9940
thumb_func_start sub_81C9958
sub_81C9958: @ 81C9958
push {r4,lr}
ldr r1, =0x0000088c
movs r0, 0x2
bl AllocSubstruct
adds r4, r0, 0
cmp r4, 0
beq _081C997A
movs r0, 0
strb r0, [r4, 0xC]
ldr r0, =sub_81C9A10
movs r1, 0x1
bl CreateLoopedTask
str r0, [r4, 0x4]
ldr r0, =sub_81C99FC
str r0, [r4]
_081C997A:
adds r0, r4, 0
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81C9958
thumb_func_start sub_81C9990
sub_81C9990: @ 81C9990
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x2
bl GetSubstructPtr
adds r5, r0, 0
ldr r0, =gUnknown_086201A0
lsls r4, 2
adds r4, r0
ldr r0, [r4]
movs r1, 0x1
bl CreateLoopedTask
str r0, [r5, 0x4]
ldr r0, =sub_81C99FC
str r0, [r5]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C9990
thumb_func_start sub_81C99C0
sub_81C99C0: @ 81C99C0
push {lr}
movs r0, 0x2
bl GetSubstructPtr
ldr r0, [r0]
bl _call_via_r0
pop {r1}
bx r1
thumb_func_end sub_81C99C0
thumb_func_start sub_81C99D4
sub_81C99D4: @ 81C99D4
push {r4,lr}
movs r0, 0x2
bl GetSubstructPtr
adds r4, r0, 0
bl sub_81CA7F4
ldrb r0, [r4, 0x8]
bl RemoveWindow
bl sub_81C9FEC
bl sub_81CA994
movs r0, 0x2
bl FreePokenavSubstruct
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C99D4
thumb_func_start sub_81C99FC
sub_81C99FC: @ 81C99FC
push {lr}
movs r0, 0x2
bl GetSubstructPtr
ldr r0, [r0, 0x4]
bl IsLoopedTaskActive
pop {r1}
bx r1
thumb_func_end sub_81C99FC
thumb_func_start sub_81C9A10
sub_81C9A10: @ 81C9A10
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
movs r0, 0x2
bl GetSubstructPtr
adds r5, r0, 0
cmp r4, 0x9
bls _081C9A24
b _081C9C60
_081C9A24:
lsls r0, r4, 2
ldr r1, =_081C9A34
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C9A34:
.4byte _081C9A5C
.4byte _081C9AEC
.4byte _081C9B30
.4byte _081C9B88
.4byte _081C9B9E
.4byte _081C9BA4
.4byte _081C9BB6
.4byte _081C9BC0
.4byte _081C9C0E
.4byte _081C9C4C
_081C9A5C:
ldr r0, =gUnknown_08620194
movs r1, 0x3
bl InitBgTemplates
ldr r1, =gPokenavMessageBox_Gfx
movs r0, 0
str r0, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
adds r1, r5, 0
adds r1, 0x8C
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, =gPokenavMessageBox_Tilemap
movs r0, 0x1
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
movs r0, 0x1
bl CopyBgTilemapBufferToVram
ldr r0, =gPokenavMessageBox_Pal
movs r1, 0x10
movs r2, 0x20
bl CopyPaletteIntoBufferUnfaded
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgY
_081C9AD6:
movs r0, 0
b _081C9C62
.pool
_081C9AEC:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _081C9AFA
b _081C9C5C
_081C9AFA:
ldr r1, =gUnknown_0861FD6C
str r0, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r1, =gUnknown_0861FFF4
movs r0, 0x1
str r0, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r0, =gUnknown_0861FD4C
movs r1, 0x20
movs r2, 0x20
bl CopyPaletteIntoBufferUnfaded
b _081C9AD6
.pool
_081C9B30:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _081C9B3E
b _081C9C5C
_081C9B3E:
ldr r1, =gUnknown_0861FC98
str r0, [sp]
movs r0, 0x3
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r1, =gUnknown_0861FCAC
movs r0, 0x1
str r0, [sp]
movs r0, 0x3
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r0, =gUnknown_0861FC78
movs r1, 0x30
movs r2, 0x20
bl CopyPaletteIntoBufferUnfaded
bl sub_81C9894
cmp r0, 0x3
beq _081C9B76
bl sub_81C9894
cmp r0, 0x4
bne _081C9AD6
_081C9B76:
bl sub_81CA850
b _081C9AD6
.pool
_081C9B88:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
bne _081C9C5C
bl sub_81CA6E0
bl sub_81CA7D4
_081C9B9A:
movs r0, 0x1
b _081C9C62
_081C9B9E:
bl sub_81C9FC4
b _081C9B9A
_081C9BA4:
bl sub_81CA714
bl sub_81CA02C
bl sub_81CA640
bl sub_81CA0C8
b _081C9AD6
_081C9BB6:
bl sub_81CA7C4
cmp r0, 0
bne _081C9C5C
b _081C9B9A
_081C9BC0:
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x3
bl ShowBg
ldrb r0, [r5, 0xD]
cmp r0, 0
beq _081C9BE0
movs r0, 0x1
bl sub_81C7AC0
b _081C9BEC
_081C9BE0:
movs r0, 0x6E
bl PlaySE
movs r0, 0x3
bl sub_81C7AC0
_081C9BEC:
bl sub_81C9894
cmp r0, 0x3
beq _081C9BFE
cmp r0, 0x4
bne _081C9C06
movs r0, 0x7
bl LoadLeftHeaderGfxForIndex
_081C9BFE:
movs r0, 0x1
bl LoadLeftHeaderGfxForIndex
b _081C9AD6
_081C9C06:
movs r0, 0
bl LoadLeftHeaderGfxForIndex
b _081C9AD6
_081C9C0E:
bl IsPaletteFadeActive
cmp r0, 0
bne _081C9C5C
bl sub_81C9894
cmp r0, 0x3
beq _081C9C2C
cmp r0, 0x4
bne _081C9C38
movs r0, 0x7
movs r1, 0
movs r2, 0
bl sub_81C7FA0
_081C9C2C:
movs r0, 0x1
movs r1, 0
movs r2, 0
bl sub_81C7FA0
b _081C9C42
_081C9C38:
movs r0, 0
movs r1, 0
movs r2, 0
bl sub_81C7FA0
_081C9C42:
bl sub_81CA20C
bl titlescreen_0
b _081C9B9A
_081C9C4C:
bl sub_81CA324
cmp r0, 0
bne _081C9C5C
bl sub_81C8010
cmp r0, 0
beq _081C9C60
_081C9C5C:
movs r0, 0x2
b _081C9C62
_081C9C60:
movs r0, 0x4
_081C9C62:
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81C9A10
thumb_func_start sub_81C9C6C
sub_81C9C6C: @ 81C9C6C
push {lr}
cmp r0, 0
beq _081C9C78
cmp r0, 0x1
beq _081C9C8E
b _081C9CA2
_081C9C78:
bl sub_81CAA3C
bl sub_81CA278
bl sub_81CA714
movs r0, 0x5
bl PlaySE
movs r0, 0
b _081C9CA4
_081C9C8E:
bl sub_81CA324
cmp r0, 0
bne _081C9C9E
bl sub_81CA7C4
cmp r0, 0
beq _081C9CA2
_081C9C9E:
movs r0, 0x2
b _081C9CA4
_081C9CA2:
movs r0, 0x4
_081C9CA4:
pop {r1}
bx r1
thumb_func_end sub_81C9C6C
thumb_func_start sub_81C9CA8
sub_81C9CA8: @ 81C9CA8
push {lr}
cmp r0, 0x1
beq _081C9CDC
cmp r0, 0x1
bgt _081C9CB8
cmp r0, 0
beq _081C9CC2
b _081C9D3C
_081C9CB8:
cmp r0, 0x2
beq _081C9CFA
cmp r0, 0x3
beq _081C9D14
b _081C9D3C
_081C9CC2:
bl sub_81CA9C8
bl sub_81CA2DC
movs r0, 0
movs r1, 0
bl sub_81C7FC4
movs r0, 0x5
bl PlaySE
movs r0, 0
b _081C9D3E
_081C9CDC:
bl sub_81CA324
cmp r0, 0
bne _081C9D34
bl sub_81C8010
cmp r0, 0
bne _081C9D34
bl sub_81CA0C8
movs r0, 0x1
bl LoadLeftHeaderGfxForIndex
movs r0, 0
b _081C9D3E
_081C9CFA:
bl sub_81CA20C
movs r0, 0x1
movs r1, 0
movs r2, 0
bl sub_81C7FA0
bl sub_81CA818
bl sub_81CA714
movs r0, 0
b _081C9D3E
_081C9D14:
bl sub_81CA324
cmp r0, 0
bne _081C9D34
bl sub_81C8010
cmp r0, 0
bne _081C9D34
bl sub_81CA89C
cmp r0, 0
bne _081C9D34
bl sub_81CA7C4
cmp r0, 0
beq _081C9D38
_081C9D34:
movs r0, 0x2
b _081C9D3E
_081C9D38:
bl sub_81CA9D8
_081C9D3C:
movs r0, 0x4
_081C9D3E:
pop {r1}
bx r1
thumb_func_end sub_81C9CA8
thumb_func_start sub_81C9D44
sub_81C9D44: @ 81C9D44
push {lr}
cmp r0, 0x1
beq _081C9D72
cmp r0, 0x1
bgt _081C9D54
cmp r0, 0
beq _081C9D5E
b _081C9DD2
_081C9D54:
cmp r0, 0x2
beq _081C9D90
cmp r0, 0x3
beq _081C9DAA
b _081C9DD2
_081C9D5E:
bl sub_81CA9C8
bl sub_81CA2DC
movs r0, 0x1
movs r1, 0
bl sub_81C7FC4
movs r0, 0
b _081C9DD4
_081C9D72:
bl sub_81CA324
cmp r0, 0
bne _081C9DCA
bl sub_81C8010
cmp r0, 0
bne _081C9DCA
bl sub_81CA0C8
movs r0, 0
bl LoadLeftHeaderGfxForIndex
movs r0, 0
b _081C9DD4
_081C9D90:
bl sub_81CA20C
movs r0, 0
movs r1, 0
movs r2, 0
bl sub_81C7FA0
bl sub_81CA864
bl sub_81CA714
movs r0, 0
b _081C9DD4
_081C9DAA:
bl sub_81CA324
cmp r0, 0
bne _081C9DCA
bl sub_81C8010
cmp r0, 0
bne _081C9DCA
bl sub_81CA89C
cmp r0, 0
bne _081C9DCA
bl sub_81CA7C4
cmp r0, 0
beq _081C9DCE
_081C9DCA:
movs r0, 0x2
b _081C9DD4
_081C9DCE:
bl sub_81CA9D8
_081C9DD2:
movs r0, 0x4
_081C9DD4:
pop {r1}
bx r1
thumb_func_end sub_81C9D44
thumb_func_start sub_81C9DD8
sub_81C9DD8: @ 81C9DD8
push {lr}
cmp r0, 0x1
beq _081C9E04
cmp r0, 0x1
bgt _081C9DE8
cmp r0, 0
beq _081C9DF2
b _081C9E50
_081C9DE8:
cmp r0, 0x2
beq _081C9E1A
cmp r0, 0x3
beq _081C9E30
b _081C9E50
_081C9DF2:
bl sub_81CA9C8
bl sub_81CA2DC
movs r0, 0x5
bl PlaySE
movs r0, 0
b _081C9E52
_081C9E04:
bl sub_81CA324
cmp r0, 0
bne _081C9E48
movs r0, 0x7
bl LoadLeftHeaderGfxForIndex
bl sub_81CA0C8
movs r0, 0
b _081C9E52
_081C9E1A:
bl sub_81CA20C
movs r0, 0x7
movs r1, 0
movs r2, 0
bl sub_81C7FA0
bl sub_81CA714
movs r0, 0
b _081C9E52
_081C9E30:
bl sub_81CA324
cmp r0, 0
bne _081C9E48
bl sub_81C8010
cmp r0, 0
bne _081C9E48
bl sub_81CA89C
cmp r0, 0
beq _081C9E4C
_081C9E48:
movs r0, 0x2
b _081C9E52
_081C9E4C:
bl sub_81CA9D8
_081C9E50:
movs r0, 0x4
_081C9E52:
pop {r1}
bx r1
thumb_func_end sub_81C9DD8
thumb_func_start sub_81C9E58
sub_81C9E58: @ 81C9E58
push {lr}
cmp r0, 0x1
beq _081C9E86
cmp r0, 0x1
bgt _081C9E68
cmp r0, 0
beq _081C9E72
b _081C9EC2
_081C9E68:
cmp r0, 0x2
beq _081C9E9E
cmp r0, 0x3
beq _081C9EAA
b _081C9EC2
_081C9E72:
bl sub_81CA9C8
bl sub_81CA2DC
movs r0, 0x7
movs r1, 0
bl sub_81C7FC4
movs r0, 0
b _081C9EC4
_081C9E86:
bl sub_81CA324
cmp r0, 0
bne _081C9EBA
bl sub_81C8010
cmp r0, 0
bne _081C9EBA
bl sub_81CA0C8
movs r0, 0
b _081C9EC4
_081C9E9E:
bl sub_81CA20C
bl sub_81CA714
movs r0, 0
b _081C9EC4
_081C9EAA:
bl sub_81CA324
cmp r0, 0
bne _081C9EBA
bl sub_81CA89C
cmp r0, 0
beq _081C9EBE
_081C9EBA:
movs r0, 0x2
b _081C9EC4
_081C9EBE:
bl sub_81CA9D8
_081C9EC2:
movs r0, 0x4
_081C9EC4:
pop {r1}
bx r1
thumb_func_end sub_81C9E58
thumb_func_start sub_81C9EC8
sub_81C9EC8: @ 81C9EC8
push {lr}
cmp r0, 0
beq _081C9ED4
cmp r0, 0x1
beq _081C9EE2
b _081C9EF0
_081C9ED4:
movs r0, 0x20
bl PlaySE
bl sub_81CA770
movs r0, 0
b _081C9EF2
_081C9EE2:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081C9EF0
movs r0, 0x2
b _081C9EF2
_081C9EF0:
movs r0, 0x4
_081C9EF2:
pop {r1}
bx r1
thumb_func_end sub_81C9EC8
thumb_func_start sub_81C9EF8
sub_81C9EF8: @ 81C9EF8
push {lr}
cmp r0, 0
beq _081C9F04
cmp r0, 0x1
beq _081C9F12
b _081C9F20
_081C9F04:
movs r0, 0x5
bl PlaySE
bl sub_81CA714
movs r0, 0
b _081C9F22
_081C9F12:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081C9F20
movs r0, 0x2
b _081C9F22
_081C9F20:
movs r0, 0x4
_081C9F22:
pop {r1}
bx r1
thumb_func_end sub_81C9EF8
thumb_func_start sub_81C9F28
sub_81C9F28: @ 81C9F28
push {lr}
cmp r0, 0x1
beq _081C9F52
cmp r0, 0x1
bgt _081C9F38
cmp r0, 0
beq _081C9F42
b _081C9FBC
_081C9F38:
cmp r0, 0x2
beq _081C9F96
cmp r0, 0x3
beq _081C9FB0
b _081C9FBC
_081C9F42:
bl sub_81C98C4
lsls r0, 16
lsrs r0, 16
bl sub_81C7BA4
movs r0, 0
b _081C9FBE
_081C9F52:
bl IsDma3ManagerBusyWithBgCopy_
cmp r0, 0
bne _081C9FB8
bl sub_81C7880
bl sub_81CA9C8
bl sub_81CA2DC
bl sub_81C9894
cmp r0, 0x3
beq _081C9F7A
cmp r0, 0x4
bne _081C9F84
movs r0, 0x7
movs r1, 0
bl sub_81C7FC4
_081C9F7A:
movs r0, 0x1
movs r1, 0
bl sub_81C7FC4
b _081C9F8C
_081C9F84:
movs r0, 0
movs r1, 0
bl sub_81C7FC4
_081C9F8C:
movs r0, 0x5
bl PlaySE
movs r0, 0
b _081C9FBE
_081C9F96:
bl sub_81CA324
cmp r0, 0
bne _081C9FB8
bl sub_81C8010
cmp r0, 0
bne _081C9FB8
movs r0, 0
bl sub_81C7AC0
movs r0, 0
b _081C9FBE
_081C9FB0:
bl IsPaletteFadeActive
cmp r0, 0
beq _081C9FBC
_081C9FB8:
movs r0, 0x2
b _081C9FBE
_081C9FBC:
movs r0, 0x4
_081C9FBE:
pop {r1}
bx r1
thumb_func_end sub_81C9F28
thumb_func_start sub_81C9FC4
sub_81C9FC4: @ 81C9FC4
push {r4,r5,lr}
movs r5, 0
ldr r4, =gUnknown_086201C4
_081C9FCA:
adds r0, r4, 0
bl LoadCompressedSpriteSheet
adds r4, 0x8
adds r5, 0x1
cmp r5, 0x1
bls _081C9FCA
ldr r0, =gUnknown_086201D4
bl Pokenav_AllocAndLoadPalettes
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C9FC4
thumb_func_start sub_81C9FEC
sub_81C9FEC: @ 81C9FEC
push {lr}
movs r0, 0x3
bl FreeSpriteTilesByTag
movs r0, 0x1
bl FreeSpriteTilesByTag
movs r0, 0x4
bl FreeSpritePaletteByTag
movs r0, 0x5
bl FreeSpritePaletteByTag
movs r0, 0x6
bl FreeSpritePaletteByTag
movs r0, 0x7
bl FreeSpritePaletteByTag
movs r0, 0x8
bl FreeSpritePaletteByTag
movs r0, 0x3
bl FreeSpritePaletteByTag
bl sub_81CA094
bl sub_81CA698
pop {r0}
bx r0
thumb_func_end sub_81C9FEC
thumb_func_start sub_81CA02C
sub_81CA02C: @ 81CA02C
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r0, 0x2
bl GetSubstructPtr
movs r2, 0
adds r0, 0x2C
mov r8, r0
_081CA03E:
movs r4, 0
lsls r0, r2, 2
lsls r1, r2, 4
adds r7, r2, 0x1
adds r0, r2
lsls r0, 18
movs r2, 0xA0
lsls r2, 14
adds r5, r0, r2
mov r0, r8
adds r6, r1, r0
_081CA054:
ldr r0, =gUnknown_0862034C
movs r1, 0x8C
asrs r2, r5, 16
movs r3, 0x3
bl CreateSprite
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r0, =gSprites
adds r1, r0
stm r6!, {r1}
lsls r0, r4, 5
strh r0, [r1, 0x24]
adds r4, 0x1
cmp r4, 0x3
ble _081CA054
adds r2, r7, 0
cmp r2, 0x5
ble _081CA03E
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA02C
thumb_func_start sub_81CA094
sub_81CA094: @ 81CA094
push {r4-r7,lr}
movs r0, 0x2
bl GetSubstructPtr
movs r1, 0
adds r7, r0, 0
adds r7, 0x2C
_081CA0A2:
lsls r0, r1, 4
adds r6, r1, 0x1
adds r4, r0, r7
movs r5, 0x3
_081CA0AA:
ldr r0, [r4]
bl FreeSpriteOamMatrix
ldm r4!, {r0}
bl DestroySprite
subs r5, 0x1
cmp r5, 0
bge _081CA0AA
adds r1, r6, 0
cmp r1, 0x5
ble _081CA0A2
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81CA094
thumb_func_start sub_81CA0C8
sub_81CA0C8: @ 81CA0C8
push {lr}
bl sub_81C9894
lsls r2, r0, 3
subs r2, r0
lsls r2, 2
ldr r1, =gUnknown_08620240+4
adds r0, r2, r1
subs r1, 0x4
adds r2, r1
ldrh r1, [r2]
ldrh r2, [r2, 0x2]
bl sub_81CA0EC
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA0C8
thumb_func_start sub_81CA0EC
sub_81CA0EC: @ 81CA0EC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x18
adds r6, r0, 0
str r1, [sp, 0x14]
str r2, [sp]
movs r0, 0x2
bl GetSubstructPtr
mov r10, r0
movs r0, 0x3
bl GetSpriteTileStartByTag
lsls r0, 16
lsrs r0, 16
str r0, [sp, 0x4]
movs r1, 0
_081CA114:
ldr r0, [r6]
cmp r0, 0
beq _081CA1B0
movs r5, 0
lsls r2, r1, 4
mov r0, r10
adds r0, 0x2C
lsls r3, r1, 2
mov r9, r3
movs r4, 0x10
add r4, r10
mov r8, r4
adds r7, r6, 0x4
str r7, [sp, 0xC]
ldr r3, [sp, 0x14]
ldr r4, [sp]
adds r3, r4
str r3, [sp, 0x8]
adds r1, 0x1
str r1, [sp, 0x10]
adds r4, r2, r0
_081CA13E:
ldr r3, [r4]
ldr r0, [r6]
ldrh r2, [r0]
ldr r7, [sp, 0x4]
adds r2, r7
lsls r0, r5, 3
adds r2, r0
ldr r1, =0x000003ff
adds r0, r1, 0
ands r2, r0
ldrh r0, [r3, 0x4]
ldr r7, =0xfffffc00
adds r1, r7, 0
ands r0, r1
orrs r0, r2
strh r0, [r3, 0x4]
ldr r0, [r6]
ldrh r0, [r0, 0x2]
adds r0, 0x4
lsls r0, 16
lsrs r0, 16
bl IndexOfSpritePaletteTag
ldr r3, [r4]
lsls r0, 4
ldrb r2, [r3, 0x5]
movs r1, 0xF
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x5]
ldr r2, [r4]
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldr r0, [r4]
mov r1, sp
ldrh r1, [r1, 0x14]
strh r1, [r0, 0x22]
ldr r1, [r4]
movs r0, 0x8C
strh r0, [r1, 0x20]
ldm r4!, {r1}
lsls r0, r5, 5
strh r0, [r1, 0x24]
adds r5, 0x1
cmp r5, 0x3
ble _081CA13E
mov r1, r8
add r1, r9
movs r0, 0x1
b _081CA1EC
.pool
_081CA1B0:
lsls r2, r1, 4
mov r0, r10
adds r0, 0x2C
lsls r3, r1, 2
mov r9, r3
movs r4, 0x10
add r4, r10
mov r8, r4
adds r6, 0x4
str r6, [sp, 0xC]
ldr r7, [sp, 0x14]
ldr r3, [sp]
adds r7, r3
str r7, [sp, 0x8]
adds r1, 0x1
str r1, [sp, 0x10]
movs r3, 0x4
adds r2, r0
movs r5, 0x3
_081CA1D6:
ldm r2!, {r1}
adds r1, 0x3E
ldrb r0, [r1]
orrs r0, r3
strb r0, [r1]
subs r5, 0x1
cmp r5, 0
bge _081CA1D6
mov r1, r8
add r1, r9
movs r0, 0
_081CA1EC:
str r0, [r1]
ldr r6, [sp, 0xC]
ldr r4, [sp, 0x8]
str r4, [sp, 0x14]
ldr r1, [sp, 0x10]
cmp r1, 0x5
ble _081CA114
add sp, 0x18
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81CA0EC
thumb_func_start sub_81CA20C
sub_81CA20C: @ 81CA20C
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r0, 0x2
bl GetSubstructPtr
adds r6, r0, 0
bl sub_81C98A4
mov r8, r0
movs r7, 0
movs r5, 0
adds r4, r6, 0
adds r4, 0x2C
_081CA228:
lsls r0, r5, 2
adds r1, r6, 0
adds r1, 0x10
adds r1, r0
ldr r0, [r1]
cmp r0, 0
beq _081CA25C
adds r0, r7, 0
adds r7, 0x1
cmp r0, r8
bne _081CA244
movs r2, 0x82
strb r5, [r6, 0xB]
b _081CA246
_081CA244:
movs r2, 0x8C
_081CA246:
adds r0, r4, 0
movs r1, 0x80
lsls r1, 1
movs r3, 0xC
bl sub_81CA35C
adds r0, r4, 0
movs r1, 0
bl sub_81CA448
b _081CA264
_081CA25C:
adds r0, r4, 0
movs r1, 0x1
bl sub_81CA448
_081CA264:
adds r4, 0x10
adds r5, 0x1
cmp r5, 0x5
ble _081CA228
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81CA20C
thumb_func_start sub_81CA278
sub_81CA278: @ 81CA278
push {r4,r5,lr}
movs r0, 0x2
bl GetSubstructPtr
adds r4, r0, 0
bl sub_81C98A4
adds r3, r0, 0
movs r2, 0
movs r5, 0
ldr r0, [r4, 0x10]
cmp r0, 0
beq _081CA298
cmp r5, r3
beq _081CA2B2
_081CA296:
adds r5, 0x1
_081CA298:
adds r2, 0x1
cmp r2, 0x5
bgt _081CA2B2
lsls r0, r2, 2
adds r1, r4, 0
adds r1, 0x10
adds r1, r0
ldr r0, [r1]
cmp r0, 0
beq _081CA298
cmp r5, r3
bne _081CA296
adds r5, r2, 0
_081CA2B2:
ldrb r0, [r4, 0xB]
lsls r0, 4
adds r0, 0x2C
adds r0, r4, r0
movs r1, 0x82
movs r2, 0x8C
movs r3, 0x4
bl sub_81CA35C
lsls r0, r5, 4
adds r0, 0x2C
adds r0, r4, r0
movs r1, 0x8C
movs r2, 0x82
movs r3, 0x4
bl sub_81CA35C
strb r5, [r4, 0xB]
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81CA278
thumb_func_start sub_81CA2DC
sub_81CA2DC: @ 81CA2DC
push {r4-r6,lr}
movs r0, 0x2
bl GetSubstructPtr
adds r6, r0, 0
movs r5, 0
adds r4, r6, 0
adds r4, 0x2C
_081CA2EC:
lsls r0, r5, 2
adds r1, r6, 0
adds r1, 0x10
adds r1, r0
ldr r0, [r1]
cmp r0, 0
beq _081CA316
ldrb r0, [r6, 0xB]
cmp r0, r5
beq _081CA310
adds r0, r4, 0
movs r1, 0x8C
movs r2, 0x80
lsls r2, 1
movs r3, 0x8
bl sub_81CA35C
b _081CA316
_081CA310:
adds r0, r4, 0
bl sub_81CA3B4
_081CA316:
adds r4, 0x10
adds r5, 0x1
cmp r5, 0x5
ble _081CA2EC
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81CA2DC
thumb_func_start sub_81CA324
sub_81CA324: @ 81CA324
push {r4,lr}
movs r0, 0x2
bl GetSubstructPtr
adds r3, r0, 0
movs r2, 0
ldr r4, =SpriteCallbackDummy
adds r1, r3, 0
adds r1, 0x2C
_081CA336:
ldr r0, [r1]
ldr r0, [r0, 0x1C]
cmp r0, r4
bne _081CA354
adds r1, 0x10
adds r2, 0x1
cmp r2, 0x5
ble _081CA336
ldrb r0, [r3, 0xC]
cmp r0, 0
bne _081CA354
movs r0, 0
b _081CA356
.pool
_081CA354:
movs r0, 0x1
_081CA356:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CA324
thumb_func_start sub_81CA35C
sub_81CA35C: @ 81CA35C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r4, r0, 0
adds r5, r1, 0
mov r9, r2
adds r6, r3, 0
ldr r0, =sub_81CA474
mov r8, r0
subs r0, r2, r5
lsls r0, 4
adds r1, r6, 0
bl __divsi3
adds r3, r0, 0
movs r1, 0x3
lsls r2, r5, 4
_081CA380:
ldr r0, [r4]
strh r5, [r0, 0x20]
ldr r0, [r4]
strh r6, [r0, 0x2E]
ldr r0, [r4]
strh r3, [r0, 0x30]
ldr r0, [r4]
strh r2, [r0, 0x32]
ldr r0, [r4]
mov r7, r9
strh r7, [r0, 0x3C]
ldm r4!, {r0}
mov r7, r8
str r7, [r0, 0x1C]
subs r1, 0x1
cmp r1, 0
bge _081CA380
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA35C
thumb_func_start sub_81CA3B4
sub_81CA3B4: @ 81CA3B4
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r4, r0, 0
movs r0, 0x2
bl GetSubstructPtr
adds r7, r0, 0
movs r5, 0
mov r8, r5
_081CA3C8:
ldr r2, [r4]
ldrb r1, [r2, 0x1]
movs r3, 0xD
negs r3, r3
adds r0, r3, 0
ands r1, r0
movs r0, 0x4
orrs r1, r0
strb r1, [r2, 0x1]
ldr r2, [r4]
ldrb r0, [r2, 0x1]
movs r1, 0x3
orrs r0, r1
strb r0, [r2, 0x1]
ldr r1, [r4]
ldr r0, =sub_81CA4AC
str r0, [r1, 0x1C]
movs r6, 0x8
strh r6, [r1, 0x2E]
ldr r0, [r4]
mov r1, r8
strh r1, [r0, 0x30]
ldr r0, [r4]
strh r5, [r0, 0x3C]
ldr r0, [r4]
bl InitSpriteAffineAnim
ldm r4!, {r0}
movs r1, 0
bl StartSpriteAffineAnim
adds r5, 0x1
cmp r5, 0x3
ble _081CA3C8
movs r0, 0x52
movs r1, 0x10
bl SetGpuReg
ldr r0, =sub_81CA580
movs r1, 0x3
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r6, [r1, 0x8]
ldrb r0, [r7, 0xC]
adds r0, 0x1
strb r0, [r7, 0xC]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA3B4
thumb_func_start sub_81CA448
sub_81CA448: @ 81CA448
push {r4-r6,lr}
adds r5, r0, 0
movs r0, 0x1
ands r1, r0
lsls r4, r1, 2
movs r6, 0x5
negs r6, r6
movs r3, 0x3
_081CA458:
ldm r5!, {r0}
adds r0, 0x3E
ldrb r2, [r0]
adds r1, r6, 0
ands r1, r2
orrs r1, r4
strb r1, [r0]
subs r3, 0x1
cmp r3, 0
bge _081CA458
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81CA448
thumb_func_start sub_81CA474
sub_81CA474: @ 81CA474
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x2E]
subs r0, 0x1
strh r0, [r2, 0x2E]
lsls r0, 16
asrs r0, 16
movs r1, 0x1
negs r1, r1
cmp r0, r1
beq _081CA49A
ldrh r0, [r2, 0x30]
ldrh r1, [r2, 0x32]
adds r0, r1
strh r0, [r2, 0x32]
lsls r0, 16
asrs r0, 20
strh r0, [r2, 0x20]
b _081CA4A2
_081CA49A:
ldrh r0, [r2, 0x3C]
strh r0, [r2, 0x20]
ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
_081CA4A2:
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA474
thumb_func_start sub_81CA4AC
sub_81CA4AC: @ 81CA4AC
push {r4,r5,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x2E]
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r0, 0
bne _081CA574
movs r0, 0x30
ldrsh r5, [r4, r0]
cmp r5, 0
bne _081CA4E2
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
movs r0, 0x80
lsls r0, 1
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x24]
ldrh r1, [r4, 0x20]
adds r0, r1
strh r0, [r4, 0x20]
strh r5, [r4, 0x24]
b _081CA578
_081CA4E2:
ldrh r0, [r4, 0x32]
adds r0, 0x10
strh r0, [r4, 0x32]
movs r2, 0x32
ldrsh r0, [r4, r2]
asrs r1, r0, 3
adds r0, r1, 0
subs r0, 0x20
lsrs r1, r0, 31
adds r0, r1
asrs r1, r0, 1
movs r2, 0x3C
ldrsh r0, [r4, r2]
cmp r0, 0x1
beq _081CA518
cmp r0, 0x1
bgt _081CA50A
cmp r0, 0
beq _081CA514
b _081CA526
_081CA50A:
cmp r0, 0x2
beq _081CA51C
cmp r0, 0x3
beq _081CA520
b _081CA526
_081CA514:
negs r1, r1
b _081CA520
_081CA518:
negs r0, r1
b _081CA524
_081CA51C:
strh r1, [r4, 0x24]
b _081CA526
_081CA520:
lsls r0, r1, 1
adds r0, r1
_081CA524:
strh r0, [r4, 0x24]
_081CA526:
adds r0, r4, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _081CA578
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldrb r0, [r4, 0x3]
lsls r0, 26
lsrs r0, 27
bl FreeOamMatrix
ldrb r1, [r4, 0x1]
lsrs r1, 6
ldrb r2, [r4, 0x3]
lsrs r2, 6
adds r0, r4, 0
movs r3, 0
bl CalcCenterToCornerVec
ldrb r1, [r4, 0x1]
movs r0, 0x4
negs r0, r0
ands r0, r1
movs r1, 0xD
negs r1, r1
ands r0, r1
strb r0, [r4, 0x1]
ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
b _081CA578
.pool
_081CA574:
subs r0, r1, 0x1
strh r0, [r4, 0x2E]
_081CA578:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81CA4AC
thumb_func_start sub_81CA580
sub_81CA580: @ 81CA580
push {r4,r5,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 r0, [r4]
movs r1, 0
ldrsh r2, [r4, r1]
cmp r2, 0
bne _081CA634
movs r0, 0x2
ldrsh r1, [r4, r0]
cmp r1, 0
beq _081CA5AC
cmp r1, 0x1
beq _081CA5CC
b _081CA638
.pool
_081CA5AC:
movs r0, 0x10
strh r0, [r4, 0x4]
strh r2, [r4, 0x6]
movs r1, 0xFC
lsls r1, 6
movs r0, 0x50
bl SetGpuReg
movs r0, 0x52
movs r1, 0x10
bl SetGpuReg
ldrh r0, [r4, 0x2]
adds r0, 0x1
strh r0, [r4, 0x2]
b _081CA638
_081CA5CC:
ldrh r0, [r4, 0x8]
ands r1, r0
cmp r1, 0
beq _081CA5E4
ldrh r0, [r4, 0x4]
subs r0, 0x3
strh r0, [r4, 0x4]
lsls r0, 16
cmp r0, 0
bge _081CA5F6
strh r2, [r4, 0x4]
b _081CA5F6
_081CA5E4:
ldrh r0, [r4, 0x6]
adds r0, 0x3
strh r0, [r4, 0x6]
lsls r0, 16
asrs r0, 16
cmp r0, 0x10
ble _081CA5F6
movs r0, 0x10
strh r0, [r4, 0x6]
_081CA5F6:
ldrh r1, [r4, 0x6]
lsls r1, 8
ldrh r0, [r4, 0x4]
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
lsls r0, 16
asrs r0, 16
cmp r0, 0xC
bne _081CA638
movs r0, 0x2
bl GetSubstructPtr
ldrb r1, [r0, 0xC]
subs r1, 0x1
strb r1, [r0, 0xC]
movs r1, 0x80
lsls r1, 5
movs r0, 0x52
bl SetGpuReg
adds r0, r5, 0
bl DestroyTask
b _081CA638
_081CA634:
subs r0, 0x1
strh r0, [r4]
_081CA638:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81CA580
thumb_func_start sub_81CA640
sub_81CA640: @ 81CA640
push {r4,lr}
movs r0, 0x2
bl GetSubstructPtr
adds r4, r0, 0
ldr r0, =gUnknown_0862036C
movs r1, 0x10
movs r2, 0x60
movs r3, 0x4
bl CreateSprite
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r0, =gSprites
adds r1, r0
str r1, [r4, 0x28]
bl sub_81C98D4
cmp r0, 0
beq _081CA684
ldr r1, [r4, 0x28]
ldr r0, =sub_81CA6AC
str r0, [r1, 0x1C]
b _081CA690
.pool
_081CA684:
ldr r0, [r4, 0x28]
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
_081CA690:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81CA640
thumb_func_start sub_81CA698
sub_81CA698: @ 81CA698
push {lr}
movs r0, 0x2
bl GetSubstructPtr
ldr r0, [r0, 0x28]
bl DestroySprite
pop {r0}
bx r0
thumb_func_end sub_81CA698
thumb_func_start sub_81CA6AC
sub_81CA6AC: @ 81CA6AC
push {lr}
adds r3, r0, 0
ldrh r0, [r3, 0x2E]
adds r0, 0x1
strh r0, [r3, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x8
ble _081CA6DA
movs r0, 0
strh r0, [r3, 0x2E]
adds r3, 0x3E
ldrb r2, [r3]
lsls r0, r2, 29
lsrs r0, 31
movs r1, 0x1
eors r1, r0
lsls r1, 2
movs r0, 0x5
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
_081CA6DA:
pop {r0}
bx r0
thumb_func_end sub_81CA6AC
thumb_func_start sub_81CA6E0
sub_81CA6E0: @ 81CA6E0
push {r4,lr}
movs r0, 0x2
bl GetSubstructPtr
adds r4, r0, 0
ldr r0, =gUnknown_086202CC
bl AddWindow
strh r0, [r4, 0x8]
lsls r0, 24
lsrs r0, 24
bl PutWindowTilemap
ldrb r0, [r4, 0x8]
movs r1, 0x66
bl FillWindowPixelBuffer
ldrb r0, [r4, 0x8]
movs r1, 0x3
bl CopyWindowToVram
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA6E0
thumb_func_start sub_81CA714
sub_81CA714: @ 81CA714
push {r4-r6,lr}
sub sp, 0xC
movs r0, 0x2
bl GetSubstructPtr
adds r5, r0, 0
bl sub_81C98B4
ldr r1, =gUnknown_086202D4
lsls r0, 2
adds r0, r1
ldr r6, [r0]
movs r2, 0x1
negs r2, r2
movs r0, 0x1
adds r1, r6, 0
bl GetStringWidth
adds r4, r0, 0
ldrb r0, [r5, 0x8]
movs r1, 0x66
bl FillWindowPixelBuffer
ldrb r0, [r5, 0x8]
movs r2, 0xC0
subs r2, r4
lsrs r2, 1
lsls r2, 24
lsrs r2, 24
ldr r1, =gUnknown_0862030C
str r1, [sp]
movs r1, 0
str r1, [sp, 0x4]
str r6, [sp, 0x8]
movs r1, 0x1
movs r3, 0x1
bl AddTextPrinterParameterized3
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA714
thumb_func_start sub_81CA770
sub_81CA770: @ 81CA770
push {r4-r6,lr}
sub sp, 0xC
movs r0, 0x2
bl GetSubstructPtr
adds r5, r0, 0
ldr r6, =gText_NoRibbonWinners
movs r2, 0x1
negs r2, r2
movs r0, 0x1
adds r1, r6, 0
bl GetStringWidth
adds r4, r0, 0
ldrb r0, [r5, 0x8]
movs r1, 0x66
bl FillWindowPixelBuffer
ldrb r0, [r5, 0x8]
movs r2, 0xC0
subs r2, r4
lsrs r2, 1
lsls r2, 24
lsrs r2, 24
ldr r1, =gUnknown_0862030F
str r1, [sp]
movs r1, 0
str r1, [sp, 0x4]
str r6, [sp, 0x8]
movs r1, 0x1
movs r3, 0x1
bl AddTextPrinterParameterized3
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA770
thumb_func_start sub_81CA7C4
sub_81CA7C4: @ 81CA7C4
push {lr}
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_81CA7C4
thumb_func_start sub_81CA7D4
sub_81CA7D4: @ 81CA7D4
push {r4,lr}
movs r0, 0x2
bl GetSubstructPtr
adds r4, r0, 0
ldr r0, =sub_81CA808
movs r1, 0x2
bl CreateTask
strb r0, [r4, 0xA]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA7D4
thumb_func_start sub_81CA7F4
sub_81CA7F4: @ 81CA7F4
push {lr}
movs r0, 0x2
bl GetSubstructPtr
ldrb r0, [r0, 0xA]
bl DestroyTask
pop {r0}
bx r0
thumb_func_end sub_81CA7F4
thumb_func_start sub_81CA808
sub_81CA808: @ 81CA808
push {lr}
movs r0, 0x3
movs r1, 0x80
movs r2, 0x1
bl ChangeBgX
pop {r0}
bx r0
thumb_func_end sub_81CA808
thumb_func_start sub_81CA818
sub_81CA818: @ 81CA818
push {r4,r5,lr}
ldr r0, =sub_81CA8B0
movs r1, 0x3
bl CreateTask
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r5, =gUnknown_0861FC78 + 2
adds r0, r4, 0
movs r1, 0x1
adds r2, r5, 0
bl SetWordTaskArg
adds r5, 0xC
adds r0, r4, 0
movs r1, 0x3
adds r2, r5, 0
bl SetWordTaskArg
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA818
thumb_func_start sub_81CA850
sub_81CA850: @ 81CA850
push {lr}
ldr r0, =gUnknown_0861FC78 + 0xE
movs r1, 0x31
movs r2, 0x4
bl CopyPaletteIntoBufferUnfaded
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA850
thumb_func_start sub_81CA864
sub_81CA864: @ 81CA864
push {r4,r5,lr}
ldr r0, =sub_81CA8B0
movs r1, 0x3
bl CreateTask
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r5, =gUnknown_0861FC78 + 0xE
adds r0, r4, 0
movs r1, 0x1
adds r2, r5, 0
bl SetWordTaskArg
subs r5, 0xC
adds r0, r4, 0
movs r1, 0x3
adds r2, r5, 0
bl SetWordTaskArg
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA864
thumb_func_start sub_81CA89C
sub_81CA89C: @ 81CA89C
push {lr}
ldr r0, =sub_81CA8B0
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.pool
thumb_func_end sub_81CA89C
thumb_func_start sub_81CA8B0
sub_81CA8B0: @ 81CA8B0
push {r4-r6,lr}
sub sp, 0xC
lsls r0, 24
lsrs r6, r0, 24
lsls r4, r6, 2
adds r4, r6
lsls r4, 3
ldr r0, =gTasks + 0x8
adds r4, r0
adds r0, r6, 0
movs r1, 0x1
bl GetWordTaskArg
adds r5, r0, 0
adds r0, r6, 0
movs r1, 0x3
bl GetWordTaskArg
adds r1, r0, 0
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
lsls r0, 16
asrs r0, 16
str r0, [sp]
add r0, sp, 0x8
str r0, [sp, 0x4]
adds r0, r5, 0
movs r2, 0x2
movs r3, 0xC
bl sub_81C79BC
add r0, sp, 0x8
movs r1, 0x31
movs r2, 0x4
bl LoadPalette
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0xC
bne _081CA908
adds r0, r6, 0
bl DestroyTask
_081CA908:
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA8B0
thumb_func_start sub_81CA914
sub_81CA914: @ 81CA914
push {lr}
bl TransferPlttBuffer
bl LoadOam
bl ProcessSpriteCopyRequests
bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
thumb_func_end sub_81CA914
thumb_func_start titlescreen_0
titlescreen_0: @ 81CA92C
push {lr}
movs r0, 0x50
movs r1, 0x90
bl SetGpuReg
movs r0, 0x54
movs r1, 0
bl SetGpuReg
movs r1, 0x80
lsls r1, 6
movs r0, 0
bl SetGpuRegBits
movs r0, 0x48
movs r1, 0x3F
bl SetGpuRegBits
movs r0, 0x4A
movs r1, 0x1F
bl SetGpuRegBits
movs r0, 0x44
movs r1, 0xA0
bl SetGpuRegBits
bl ScanlineEffect_Stop
bl sub_81CAA3C
ldr r2, =gUnknown_08620384
ldr r0, [r2]
ldr r1, [r2, 0x4]
ldr r2, [r2, 0x8]
bl ScanlineEffect_SetParams
ldr r0, =sub_81CA914
bl SetVBlankCallback_
ldr r0, =sub_81CA9EC
movs r1, 0x3
bl CreateTask
pop {r0}
bx r0
.pool
thumb_func_end titlescreen_0
thumb_func_start sub_81CA994
sub_81CA994: @ 81CA994
push {lr}
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r1, 0x80
lsls r1, 6
movs r0, 0
bl ClearGpuRegBits
bl ScanlineEffect_Stop
ldr r0, =sub_81CA9EC
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
bl SetPokenavVBlankCallback
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA994
thumb_func_start sub_81CA9C8
sub_81CA9C8: @ 81CA9C8
push {lr}
movs r0, 0x50
movs r1, 0
bl SetGpuReg
pop {r0}
bx r0
thumb_func_end sub_81CA9C8
thumb_func_start sub_81CA9D8
sub_81CA9D8: @ 81CA9D8
push {lr}
bl sub_81CAA3C
movs r0, 0x50
movs r1, 0x90
bl SetGpuReg
pop {r0}
bx r0
thumb_func_end sub_81CA9D8
thumb_func_start sub_81CA9EC
sub_81CA9EC: @ 81CA9EC
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks + 0x8
adds r2, r1, r0
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
lsls r0, 16
cmp r0, 0
ble _081CAA30
movs r0, 0
strh r0, [r2]
ldrh r0, [r2, 0x2]
adds r0, 0x3
movs r1, 0x7F
ands r0, r1
strh r0, [r2, 0x2]
ldr r1, =gSineTable
movs r3, 0x2
ldrsh r0, [r2, r3]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
lsls r1, 16
asrs r1, 21
lsls r1, 16
lsrs r1, 16
movs r0, 0x54
bl SetGpuReg
_081CAA30:
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA9EC
thumb_func_start sub_81CAA3C
sub_81CAA3C: @ 81CAA3C
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x8
bl sub_81C9894
adds r4, r0, 0
bl sub_81C98A4
ldr r2, =gUnknown_08620240
lsls r1, r4, 3
subs r1, r4
lsls r1, 2
adds r1, r2
ldrh r2, [r1, 0x2]
adds r4, r2, 0
muls r4, r0
ldrh r1, [r1]
adds r4, r1
subs r4, 0x8
mov r0, sp
movs r6, 0
strh r6, [r0]
ldr r5, =gScanlineEffectRegBuffers
ldr r0, =0x010000a0
mov r8, r0
mov r0, sp
adds r1, r5, 0
mov r2, r8
bl CpuSet
mov r0, sp
adds r0, 0x2
strh r6, [r0]
movs r1, 0xF0
lsls r1, 3
adds r1, r5
mov r9, r1
mov r2, r8
bl CpuSet
add r0, sp, 0x4
ldr r1, =0x000072f0
adds r6, r1, 0
strh r6, [r0]
lsls r4, 1
adds r5, r4, r5
ldr r1, =0x01000010
mov r8, r1
adds r1, r5, 0
mov r2, r8
bl CpuSet
mov r0, sp
adds r0, 0x6
strh r6, [r0]
add r4, r9
adds r1, r4, 0
mov r2, r8
bl CpuSet
add sp, 0x8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CAA3C
thumb_func_start sub_81CAADC
sub_81CAADC: @ 81CAADC
push {lr}
bl sub_81CA9C8
pop {r0}
bx r0
thumb_func_end sub_81CAADC
.align 2, 0 @ Don't pad with nop.