pokefirered/asm/oak_speech.s
2018-11-02 14:16:03 -04:00

5729 lines
98 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_812E944
sub_812E944: @ 812E944
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
mov r10, r0
adds r0, r1, 0
adds r5, r2, 0
adds r6, r3, 0
ldr r1, [sp, 0x20]
mov r8, r1
ldr r1, [sp, 0x24]
mov r2, r10
lsls r2, 24
lsrs r2, 24
mov r10, r2
lsls r0, 24
lsrs r7, r0, 24
lsls r5, 24
lsrs r5, 24
lsls r6, 24
lsrs r6, 24
mov r0, r8
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r1, 24
lsrs r1, 24
ldr r0, _0812E9DC @ =sub_812E9F8
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r1, _0812E9E0 @ =gTasks
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
adds r4, r1
mov r1, r10
lsls r0, r1, 8
strh r0, [r4, 0x8]
lsls r2, r7, 8
mov r9, r2
strh r2, [r4, 0xA]
strh r5, [r4, 0xC]
strh r6, [r4, 0xE]
subs r5, r1
lsls r5, 8
adds r0, r5, 0
mov r1, r8
bl __divsi3
strh r0, [r4, 0x10]
subs r6, r7
lsls r6, 8
adds r0, r6, 0
mov r1, r8
bl __divsi3
strh r0, [r4, 0x12]
mov r0, r8
strh r0, [r4, 0x18]
mov r1, r9
mov r2, r10
orrs r1, r2
mov r9, r1
movs r0, 0x52
bl SetGpuReg
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812E9DC: .4byte sub_812E9F8
_0812E9E0: .4byte gTasks
thumb_func_end sub_812E944
thumb_func_start sub_812E9E4
sub_812E9E4: @ 812E9E4
push {lr}
ldr r0, _0812E9F4 @ =sub_812E9F8
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_0812E9F4: .4byte sub_812E9F8
thumb_func_end sub_812E9E4
thumb_func_start sub_812E9F8
sub_812E9F8: @ 812E9F8
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, _0812EA28 @ =gTasks+0x8
adds r4, r0, r1
ldrh r1, [r4, 0x10]
movs r2, 0x10
ldrsh r0, [r4, r2]
cmp r0, 0
beq _0812EA6E
movs r2, 0xC
ldrsh r0, [r4, r2]
cmp r0, 0
bne _0812EA2C
ldrh r0, [r4, 0x8]
ldrh r1, [r4]
adds r0, r1
strh r0, [r4]
movs r0, 0x1
b _0812EA4C
.align 2, 0
_0812EA28: .4byte gTasks+0x8
_0812EA2C:
subs r0, r1, 0x1
strh r0, [r4, 0x10]
lsls r0, 16
cmp r0, 0
beq _0812EA3E
ldrh r0, [r4, 0xA]
ldrh r2, [r4, 0x2]
adds r0, r2
b _0812EA48
_0812EA3E:
ldrh r0, [r4, 0x4]
lsls r0, 8
strh r0, [r4]
ldrh r0, [r4, 0x6]
lsls r0, 8
_0812EA48:
strh r0, [r4, 0x2]
movs r0, 0
_0812EA4C:
strh r0, [r4, 0xC]
ldrh r0, [r4, 0x2]
ldr r1, _0812EA74 @ =0xffffff00
ands r1, r0
ldrh r0, [r4]
lsrs r0, 8
orrs r1, r0
movs r0, 0x52
bl SetGpuReg
movs r1, 0x10
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0812EA6E
adds r0, r5, 0
bl DestroyTask
_0812EA6E:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0812EA74: .4byte 0xffffff00
thumb_func_end sub_812E9F8
thumb_func_start sub_812EA78
sub_812EA78: @ 812EA78
push {r4,r5,lr}
lsls r0, 16
lsrs r4, r0, 16
lsls r2, 24
lsrs r5, r2, 24
cmp r4, 0xC9
bne _0812EAB8
adds r0, r1, 0
bl sub_8082AB8
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1A
beq _0812EAA4
cmp r0, 0x1A
bgt _0812EA9E
cmp r0, 0
beq _0812EAB8
b _0812EAB4
_0812EA9E:
cmp r0, 0x1B
beq _0812EAAA
b _0812EAB4
_0812EAA4:
movs r4, 0xCE
lsls r4, 1
b _0812EABC
_0812EAAA:
ldr r4, _0812EAB0 @ =0x0000019d
b _0812EABC
.align 2, 0
_0812EAB0: .4byte 0x0000019d
_0812EAB4:
adds r4, r0, 0
adds r4, 0xFB
_0812EAB8:
cmp r4, 0
beq _0812EAD6
_0812EABC:
cmp r5, 0x4
bhi _0812EAD6
subs r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
ldr r1, _0812EAE0 @ =gUnknown_845FD54
lsls r0, r4, 2
adds r0, r4
adds r0, r5, r0
adds r2, r0, r1
ldrb r0, [r2]
cmp r0, 0xFF
bne _0812EAD8
_0812EAD6:
movs r0, 0x20
_0812EAD8:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0812EAE0: .4byte gUnknown_845FD54
thumb_func_end sub_812EA78
thumb_func_start sub_812EAE4
sub_812EAE4: @ 812EAE4
push {lr}
lsls r0, 16
lsrs r0, 16
lsls r2, 24
lsrs r2, 24
bl sub_812EA78
subs r0, 0x20
lsls r0, 24
asrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_812EAE4
thumb_func_start sub_812EAFC
sub_812EAFC: @ 812EAFC
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_812EAFC
thumb_func_start sub_812EB10
sub_812EB10: @ 812EB10
push {lr}
bl RunTasks
bl RunTextPrinters
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_812EB10
thumb_func_start sub_812EB2C
sub_812EB2C: @ 812EB2C
push {lr}
ldr r0, _0812EB48 @ =gPlttBufferUnfaded
movs r1, 0
strh r1, [r0]
ldr r0, _0812EB4C @ =gPlttBufferFaded
strh r1, [r0]
ldr r0, _0812EB50 @ =sub_812EB58
bl CreateTask
ldr r0, _0812EB54 @ =sub_812EB10
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_0812EB48: .4byte gPlttBufferUnfaded
_0812EB4C: .4byte gPlttBufferFaded
_0812EB50: .4byte sub_812EB58
_0812EB54: .4byte sub_812EB10
thumb_func_end sub_812EB2C
thumb_func_start sub_812EB58
sub_812EB58: @ 812EB58
push {r4-r6,lr}
sub sp, 0x10
lsls r0, 24
lsrs r6, r0, 24
ldr r0, _0812EB7C @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
ldrb r0, [r0]
cmp r0, 0xA
bls _0812EB70
b _0812EE94
_0812EB70:
lsls r0, 2
ldr r1, _0812EB80 @ =_0812EB84
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0812EB7C: .4byte gMain
_0812EB80: .4byte _0812EB84
.align 2, 0
_0812EB84:
.4byte _0812EBB0
.4byte _0812EC28
.4byte _0812EC44
.4byte _0812EC8E
.4byte _0812ED00
.4byte _0812ED3C
.4byte _0812ED6C
.4byte _0812ED9A
.4byte _0812EE94
.4byte _0812EE94
.4byte _0812EE30
_0812EBB0:
movs r0, 0
bl SetVBlankCallback
movs r0, 0
bl SetHBlankCallback
add r1, sp, 0x8
movs r0, 0
strh r0, [r1]
ldr r1, _0812EC14 @ =0x040000d4
add r0, sp, 0x8
str r0, [r1]
movs r0, 0xC0
lsls r0, 19
str r0, [r1, 0x4]
ldr r0, _0812EC18 @ =0x8100c000
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
movs r2, 0
str r2, [sp, 0xC]
add r0, sp, 0xC
str r0, [r1]
movs r0, 0xE0
lsls r0, 19
str r0, [r1, 0x4]
ldr r0, _0812EC1C @ =0x85000100
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
add r0, sp, 0x8
strh r2, [r0]
str r0, [r1]
ldr r0, _0812EC20 @ =0x05000002
str r0, [r1, 0x4]
ldr r0, _0812EC24 @ =0x810001ff
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
bl ResetPaletteFade
bl remove_some_task
bl ResetSpriteData
bl FreeAllSpritePalettes
bl reset_temp_tile_data_buffers
movs r0, 0x2
bl sub_812B1F0
b _0812EE94
.align 2, 0
_0812EC14: .4byte 0x040000d4
_0812EC18: .4byte 0x8100c000
_0812EC1C: .4byte 0x85000100
_0812EC20: .4byte 0x05000002
_0812EC24: .4byte 0x810001ff
_0812EC28:
ldr r4, _0812EC3C @ =gUnknown_203B108
ldr r0, _0812EC40 @ =0x00002420
bl AllocZeroed
str r0, [r4]
movs r0, 0x1
movs r1, 0x1
bl sub_8044AF0
b _0812EE94
.align 2, 0
_0812EC3C: .4byte gUnknown_203B108
_0812EC40: .4byte 0x00002420
_0812EC44:
movs r0, 0x40
movs r1, 0
bl SetGpuReg
movs r0, 0x44
movs r1, 0
bl SetGpuReg
movs r0, 0x42
movs r1, 0
bl SetGpuReg
movs r0, 0x46
movs r1, 0
bl SetGpuReg
movs r0, 0x48
movs r1, 0
bl SetGpuReg
movs r0, 0x4A
movs r1, 0
bl SetGpuReg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
movs r0, 0x54
movs r1, 0
bl SetGpuReg
b _0812EE94
_0812EC8E:
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0812ECF0 @ =gUnknown_8462E58
movs r0, 0x1
movs r2, 0x3
bl InitBgsFromTemplates
ldr r4, _0812ECF4 @ =gUnknown_203B108
ldr r1, [r4]
movs r0, 0xE1
lsls r0, 5
adds r1, r0
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, [r4]
movs r0, 0xC1
lsls r0, 5
adds r1, r0
movs r0, 0x2
bl SetBgTilemapBuffer
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
ldr r0, _0812ECF8 @ =gSpriteCoordOffsetX
movs r1, 0
strh r1, [r0]
ldr r0, _0812ECFC @ =gSpriteCoordOffsetY
strh r1, [r0]
b _0812EE94
.align 2, 0
_0812ECF0: .4byte gUnknown_8462E58
_0812ECF4: .4byte gUnknown_203B108
_0812ECF8: .4byte gSpriteCoordOffsetX
_0812ECFC: .4byte gSpriteCoordOffsetY
_0812ED00:
ldr r2, _0812ED34 @ =gPaletteFade
ldrb r0, [r2, 0x8]
movs r1, 0x80
orrs r0, r1
strb r0, [r2, 0x8]
bl sub_80F6C6C
bl sub_80F6C98
movs r0, 0xD0
bl sub_80F77CC
ldr r0, _0812ED38 @ =gUnknown_8460568
movs r1, 0
movs r2, 0x80
bl LoadPalette
movs r0, 0x2
bl stdpal_get
adds r0, 0x1E
movs r1, 0
movs r2, 0x2
bl LoadPalette
b _0812EE94
.align 2, 0
_0812ED34: .4byte gPaletteFade
_0812ED38: .4byte gUnknown_8460568
_0812ED3C:
bl sub_80F78A8
ldr r1, _0812ED60 @ =gUnknown_203B108
ldr r1, [r1]
movs r3, 0
strb r0, [r1, 0x1F]
ldr r2, _0812ED64 @ =gTextFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
ldr r1, _0812ED68 @ =gUnknown_84605E8
str r3, [sp]
movs r0, 0x1
movs r2, 0
bl decompress_and_copy_tile_data_to_vram
b _0812EE94
.align 2, 0
_0812ED60: .4byte gUnknown_203B108
_0812ED64: .4byte gTextFlags
_0812ED68: .4byte gUnknown_84605E8
_0812ED6C:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
beq _0812ED78
b _0812EEA2
_0812ED78:
movs r0, 0
movs r1, 0x1
bl sub_80F6F54
movs r0, 0x20
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x1
bl CopyBgTilemapBufferToVram
b _0812EE94
_0812ED9A:
movs r0, 0xE2
lsls r0, 1
str r0, [sp]
movs r0, 0
movs r1, 0x1E
movs r2, 0
movs r3, 0xD
bl sub_810F558
ldr r1, _0812EE1C @ =0x0000d00f
movs r4, 0x1E
str r4, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
ldr r1, _0812EE20 @ =0x0000d002
str r4, [sp]
movs r5, 0x1
str r5, [sp, 0x4]
movs r0, 0x1
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
ldr r1, _0812EE24 @ =0x0000d00e
str r4, [sp]
str r5, [sp, 0x4]
movs r0, 0x1
movs r2, 0
movs r3, 0x13
bl FillBgTilemapBufferRect_Palette0
bl sub_812EEB0
ldr r2, _0812EE28 @ =gPaletteFade
ldrb r1, [r2, 0x8]
movs r0, 0x7F
ands r0, r1
strb r0, [r2, 0x8]
movs r0, 0
str r0, [sp]
movs r1, 0xE6
movs r2, 0x95
movs r3, 0
bl sub_8006300
ldr r2, _0812EE2C @ =gTasks
lsls r1, r6, 2
adds r1, r6
lsls r1, 3
adds r1, r2
lsls r0, 24
lsrs r0, 24
strh r0, [r1, 0x12]
movs r0, 0x1
negs r0, r0
movs r1, 0x10
movs r2, 0
bl BlendPalettes
b _0812EE94
.align 2, 0
_0812EE1C: .4byte 0x0000d00f
_0812EE20: .4byte 0x0000d002
_0812EE24: .4byte 0x0000d00e
_0812EE28: .4byte gPaletteFade
_0812EE2C: .4byte gTasks
_0812EE30:
movs r0, 0x1
negs r0, r0
movs r4, 0
str r4, [sp]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
movs r1, 0x82
lsls r1, 5
movs r0, 0
bl SetGpuReg
movs r0, 0
bl ShowBg
movs r0, 0x1
bl ShowBg
ldr r0, _0812EE80 @ =sub_812EAFC
bl SetVBlankCallback
ldr r0, _0812EE84 @ =0x00000143
bl PlayBGM
ldr r1, _0812EE88 @ =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r0, r1
ldr r1, _0812EE8C @ =sub_812F0B0
str r1, [r0]
ldr r0, _0812EE90 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
strb r4, [r0]
b _0812EEA2
.align 2, 0
_0812EE80: .4byte sub_812EAFC
_0812EE84: .4byte 0x00000143
_0812EE88: .4byte gTasks
_0812EE8C: .4byte sub_812F0B0
_0812EE90: .4byte gMain
_0812EE94:
ldr r1, _0812EEAC @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
_0812EEA2:
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0812EEAC: .4byte gMain
thumb_func_end sub_812EB58
thumb_func_start sub_812EEB0
sub_812EEB0: @ 812EEB0
push {r4-r6,lr}
sub sp, 0x14
ldr r0, _0812EF38 @ =gUnknown_8415D2C
ldr r1, _0812EF3C @ =gUnknown_8415D48
movs r5, 0x1
str r5, [sp]
movs r2, 0
movs r3, 0
bl sub_810F650
ldr r1, _0812EF40 @ =gUnknown_8462EB4
ldr r4, _0812EF44 @ =gUnknown_203B108
ldr r0, [r4]
ldrh r0, [r0, 0x12]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
bl AddWindow
ldr r1, [r4]
movs r6, 0
strh r0, [r1, 0x14]
lsls r0, 24
lsrs r0, 24
bl PutWindowTilemap
ldr r0, [r4]
ldrb r0, [r0, 0x14]
movs r1, 0
bl FillWindowPixelBuffer
ldr r0, [r4]
ldrb r0, [r0, 0x14]
str r5, [sp]
str r5, [sp, 0x4]
ldr r1, _0812EF48 @ =gUnknown_8462EE8
str r1, [sp, 0x8]
str r6, [sp, 0xC]
ldr r1, _0812EF4C @ =gUnknown_81C582D
str r1, [sp, 0x10]
movs r1, 0x2
movs r2, 0x2
movs r3, 0
bl AddTextPrinterParametrized2
ldr r0, [r4]
ldrb r0, [r0, 0x14]
movs r1, 0x3
bl CopyWindowToVram
movs r1, 0xC0
lsls r1, 6
movs r0, 0x5
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
movs r0, 0x1
movs r2, 0x1
movs r3, 0x3
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x1
bl CopyBgTilemapBufferToVram
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0812EF38: .4byte gUnknown_8415D2C
_0812EF3C: .4byte gUnknown_8415D48
_0812EF40: .4byte gUnknown_8462EB4
_0812EF44: .4byte gUnknown_203B108
_0812EF48: .4byte gUnknown_8462EE8
_0812EF4C: .4byte gUnknown_81C582D
thumb_func_end sub_812EEB0
thumb_func_start sub_812EF50
sub_812EF50: @ 812EF50
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
lsls r0, 24
lsrs r0, 24
mov r8, r0
movs r6, 0
ldr r4, _0812EF80 @ =gUnknown_203B108
ldr r0, [r4]
ldrh r1, [r0, 0x12]
subs r0, r1, 0x1
lsls r0, 24
lsrs r7, r0, 24
cmp r1, 0
bne _0812EF84
bl sub_812EEB0
mov r0, r8
lsls r0, 2
mov r10, r0
b _0812F06A
.align 2, 0
_0812EF80: .4byte gUnknown_203B108
_0812EF84:
ldr r0, _0812F038 @ =gUnknown_8415D50
movs r1, 0
movs r2, 0x1
bl sub_810F5E8
lsls r1, r7, 1
mov r9, r1
mov r3, r8
lsls r3, 2
mov r10, r3
adds r5, r4, 0
_0812EF9A:
ldr r1, _0812F03C @ =gUnknown_8462EB4
ldr r0, [r5]
ldrh r0, [r0, 0x12]
lsls r0, 2
adds r0, r1
lsls r1, r6, 3
ldr r0, [r0]
adds r0, r1
bl AddWindow
ldr r1, [r5]
lsls r4, r6, 1
adds r1, 0x14
adds r1, r4
strh r0, [r1]
lsls r0, 24
lsrs r0, 24
bl PutWindowTilemap
ldr r0, [r5]
adds r0, 0x14
adds r0, r4
ldrb r0, [r0]
movs r1, 0
bl FillWindowPixelBuffer
ldr r0, [r5]
adds r0, 0x14
adds r0, r4
ldrb r0, [r0]
movs r1, 0x1
str r1, [sp]
str r1, [sp, 0x4]
ldr r1, _0812F040 @ =gUnknown_8462EE8
str r1, [sp, 0x8]
movs r1, 0
str r1, [sp, 0xC]
ldr r2, _0812F044 @ =gUnknown_8463074
mov r3, r9
adds r1, r3, r7
adds r1, r6, r1
lsls r1, 2
adds r1, r2
ldr r1, [r1]
str r1, [sp, 0x10]
movs r1, 0x2
movs r2, 0x6
movs r3, 0
bl AddTextPrinterParametrized2
ldr r0, [r5]
adds r0, 0x14
adds r0, r4
ldrb r0, [r0]
movs r1, 0x3
bl CopyWindowToVram
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x2
bls _0812EF9A
ldr r0, _0812F048 @ =gUnknown_203B108
ldr r0, [r0]
ldrh r0, [r0, 0x12]
cmp r0, 0x1
bne _0812F050
ldr r1, _0812F04C @ =gUnknown_8460D94
movs r0, 0x5
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
movs r0, 0x1
movs r2, 0x1
movs r3, 0x3
bl CopyToBgTilemapBufferRect
b _0812F064
.align 2, 0
_0812F038: .4byte gUnknown_8415D50
_0812F03C: .4byte gUnknown_8462EB4
_0812F040: .4byte gUnknown_8462EE8
_0812F044: .4byte gUnknown_8463074
_0812F048: .4byte gUnknown_203B108
_0812F04C: .4byte gUnknown_8460D94
_0812F050:
ldr r1, _0812F0A0 @ =gUnknown_8460E34
movs r0, 0x5
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
movs r0, 0x1
movs r2, 0x1
movs r3, 0x3
bl CopyToBgTilemapBufferRect
_0812F064:
movs r0, 0x1
bl CopyBgTilemapBufferToVram
_0812F06A:
movs r0, 0x2
bl stdpal_get
ldrh r2, [r0, 0x1E]
ldr r0, _0812F0A4 @ =0xffffdfff
movs r1, 0x1
negs r1, r1
str r2, [sp]
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r1, _0812F0A8 @ =gTasks
mov r0, r10
add r0, r8
lsls r0, 3
adds r0, r1
ldr r1, _0812F0AC @ =sub_812F0B0
str r1, [r0]
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812F0A0: .4byte gUnknown_8460E34
_0812F0A4: .4byte 0xffffdfff
_0812F0A8: .4byte gTasks
_0812F0AC: .4byte sub_812F0B0
thumb_func_end sub_812EF50
thumb_func_start sub_812F0B0
sub_812F0B0: @ 812F0B0
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
lsrs r5, r0, 24
ldr r0, _0812F10C @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0812F162
ldr r0, _0812F110 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
beq _0812F162
movs r3, 0x1
adds r0, r3, 0
ands r0, r1
cmp r0, 0
beq _0812F120
ldr r1, _0812F114 @ =gTasks
lsls r2, r5, 2
adds r0, r2, r5
lsls r0, 3
adds r0, r1
strh r3, [r0, 0x26]
ldr r0, _0812F118 @ =gUnknown_203B108
ldr r0, [r0]
ldrh r0, [r0, 0x12]
adds r4, r2, 0
cmp r0, 0x1
bhi _0812F150
movs r0, 0x2
bl stdpal_get
ldrh r2, [r0, 0x1E]
ldr r0, _0812F11C @ =0xffffdfff
movs r1, 0x1
negs r1, r1
str r2, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
b _0812F150
.align 2, 0
_0812F10C: .4byte gPaletteFade
_0812F110: .4byte gMain
_0812F114: .4byte gTasks
_0812F118: .4byte gUnknown_203B108
_0812F11C: .4byte 0xffffdfff
_0812F120:
ldr r0, _0812F16C @ =gUnknown_203B108
ldr r0, [r0]
ldrh r0, [r0, 0x12]
cmp r0, 0
beq _0812F162
ldr r1, _0812F170 @ =gTasks
lsls r4, r5, 2
adds r0, r4, r5
lsls r0, 3
adds r0, r1
ldr r1, _0812F174 @ =0x0000ffff
strh r1, [r0, 0x26]
movs r0, 0x2
bl stdpal_get
ldrh r2, [r0, 0x1E]
ldr r0, _0812F178 @ =0xffffdfff
movs r1, 0x1
negs r1, r1
str r2, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
_0812F150:
movs r0, 0x5
bl PlaySE
ldr r0, _0812F170 @ =gTasks
adds r1, r4, r5
lsls r1, 3
adds r1, r0
ldr r0, _0812F17C @ =sub_812F180
str r0, [r1]
_0812F162:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0812F16C: .4byte gUnknown_203B108
_0812F170: .4byte gTasks
_0812F174: .4byte 0x0000ffff
_0812F178: .4byte 0xffffdfff
_0812F17C: .4byte sub_812F180
thumb_func_end sub_812F0B0
thumb_func_start sub_812F180
sub_812F180: @ 812F180
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
lsls r0, 24
lsrs r7, r0, 24
movs r0, 0
mov r8, r0
ldr r0, _0812F1B0 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0812F260
ldr r1, _0812F1B4 @ =gUnknown_203B108
ldr r0, [r1]
ldrh r0, [r0, 0x12]
adds r5, r1, 0
cmp r0, 0
bne _0812F1B8
movs r1, 0x1
mov r8, r1
b _0812F1C4
.align 2, 0
_0812F1B0: .4byte gPaletteFade
_0812F1B4: .4byte gUnknown_203B108
_0812F1B8:
cmp r0, 0
blt _0812F1C4
cmp r0, 0x2
bgt _0812F1C4
movs r2, 0x3
mov r8, r2
_0812F1C4:
ldr r2, [r5]
ldr r1, _0812F244 @ =gTasks
lsls r3, r7, 2
adds r0, r3, r7
lsls r0, 3
adds r4, r0, r1
ldrh r0, [r4, 0x26]
ldrh r1, [r2, 0x12]
adds r0, r1
movs r1, 0
strh r0, [r2, 0x12]
lsls r0, 16
lsrs r0, 16
mov r9, r3
cmp r0, 0x2
bhi _0812F24C
movs r6, 0
cmp r1, r8
bcs _0812F234
_0812F1EA:
ldr r0, [r5]
lsls r4, r6, 1
adds r0, 0x14
adds r0, r4
ldrb r0, [r0]
movs r1, 0
bl FillWindowPixelBuffer
ldr r0, [r5]
adds r0, 0x14
adds r0, r4
ldrb r0, [r0]
bl ClearWindowTilemap
ldr r0, [r5]
adds r0, 0x14
adds r0, r4
ldrb r0, [r0]
movs r1, 0x3
bl CopyWindowToVram
ldr r0, [r5]
adds r0, 0x14
adds r0, r4
ldrb r0, [r0]
bl RemoveWindow
ldr r0, [r5]
adds r0, 0x14
adds r0, r4
movs r1, 0
strh r1, [r0]
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, r8
bcc _0812F1EA
_0812F234:
ldr r0, _0812F244 @ =gTasks
mov r2, r9
adds r1, r2, r7
lsls r1, 3
adds r1, r0
ldr r0, _0812F248 @ =sub_812EF50
str r0, [r1]
b _0812F260
.align 2, 0
_0812F244: .4byte gTasks
_0812F248: .4byte sub_812EF50
_0812F24C:
movs r0, 0x1
negs r0, r0
str r1, [sp]
movs r1, 0x2
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, _0812F270 @ =sub_812F274
str r0, [r4]
_0812F260:
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812F270: .4byte sub_812F274
thumb_func_end sub_812F180
thumb_func_start sub_812F274
sub_812F274: @ 812F274
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
lsls r0, 24
lsrs r0, 24
mov r8, r0
movs r6, 0
ldr r0, _0812F32C @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0812F320
ldr r5, _0812F330 @ =gUnknown_203B108
_0812F292:
ldr r0, [r5]
lsls r4, r6, 1
adds r0, 0x14
adds r0, r4
ldrb r0, [r0]
movs r1, 0
bl FillWindowPixelBuffer
ldr r0, [r5]
adds r0, 0x14
adds r0, r4
ldrb r0, [r0]
bl ClearWindowTilemap
ldr r0, [r5]
adds r0, 0x14
adds r0, r4
ldrb r0, [r0]
movs r1, 0x3
bl CopyWindowToVram
ldr r0, [r5]
adds r0, 0x14
adds r0, r4
ldrb r0, [r0]
bl RemoveWindow
ldr r0, [r5]
adds r0, 0x14
adds r0, r4
movs r7, 0
strh r7, [r0]
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x2
bls _0812F292
movs r0, 0x1E
str r0, [sp]
movs r0, 0x12
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x1
bl CopyBgTilemapBufferToVram
ldr r0, _0812F334 @ =gTasks
mov r1, r8
lsls r4, r1, 2
add r4, r8
lsls r4, 3
adds r4, r0
ldrb r0, [r4, 0x12]
bl sub_8006398
ldr r0, _0812F330 @ =gUnknown_203B108
ldr r0, [r0]
strh r7, [r0, 0x14]
adds r0, 0x14
movs r1, 0
movs r2, 0x2
bl LoadPalette
movs r0, 0x20
strh r0, [r4, 0xE]
ldr r0, _0812F338 @ =sub_812F33C
str r0, [r4]
_0812F320:
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812F32C: .4byte gPaletteFade
_0812F330: .4byte gUnknown_203B108
_0812F334: .4byte gTasks
_0812F338: .4byte sub_812F33C
thumb_func_end sub_812F274
thumb_func_start sub_812F33C
sub_812F33C: @ 812F33C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x18
lsls r0, 24
lsrs r7, r0, 24
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
mov r8, r0
ldr r0, _0812F370 @ =gTasks+0x8
mov r9, r0
mov r5, r8
add r5, r9
movs r0, 0
str r0, [sp, 0x14]
ldrh r0, [r5, 0x6]
movs r1, 0x6
ldrsh r6, [r5, r1]
cmp r6, 0
beq _0812F374
subs r0, 0x1
strh r0, [r5, 0x6]
b _0812F476
.align 2, 0
_0812F370: .4byte gTasks+0x8
_0812F374:
movs r0, 0xA2
lsls r0, 1
bl PlayBGM
bl sub_810F71C
ldr r0, _0812F484 @ =gUnknown_8415D48
movs r1, 0
movs r2, 0x1
bl sub_810F5E8
ldr r0, _0812F488 @ =gUnknown_8460BA8
add r1, sp, 0x14
bl malloc_and_decompress
adds r1, r0, 0
ldr r4, _0812F48C @ =gUnknown_203B108
ldr r0, [r4]
str r1, [r0, 0x8]
movs r0, 0x1E
str r0, [sp]
movs r0, 0x13
str r0, [sp, 0x4]
movs r0, 0x1
movs r2, 0
movs r3, 0x2
bl CopyToBgTilemapBufferRect
movs r0, 0x1
bl CopyBgTilemapBufferToVram
ldr r0, [r4]
ldr r0, [r0, 0x8]
bl Free
ldr r0, [r4]
str r6, [r0, 0x8]
ldr r0, _0812F490 @ =gUnknown_8462EC0
bl AddWindow
strh r0, [r5, 0x1C]
lsls r0, 24
lsrs r0, 24
bl PutWindowTilemap
ldrb r0, [r5, 0x1C]
movs r1, 0
bl FillWindowPixelBuffer
ldrb r0, [r5, 0x1C]
movs r1, 0x3
bl CopyWindowToVram
ldr r0, [r4]
movs r1, 0
strh r6, [r0, 0x12]
ldr r0, _0812F494 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r2
strb r1, [r0]
movs r0, 0x10
strh r0, [r5, 0x1E]
ldrb r0, [r5, 0x1C]
movs r1, 0x1
str r1, [sp]
str r6, [sp, 0x4]
ldr r1, _0812F498 @ =gUnknown_8462EEC
str r1, [sp, 0x8]
str r6, [sp, 0xC]
ldr r1, _0812F49C @ =gUnknown_8462EF0
ldr r1, [r1]
str r1, [sp, 0x10]
movs r1, 0x2
movs r2, 0x3
movs r3, 0x5
bl AddTextPrinterParametrized2
str r6, [sp]
movs r0, 0
movs r1, 0xE2
movs r2, 0x91
movs r3, 0
bl sub_8006300
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0xA]
ldr r4, _0812F4A0 @ =gSprites
movs r1, 0xA
ldrsh r0, [r5, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
ldrb r2, [r1, 0x1]
movs r3, 0xD
negs r3, r3
adds r0, r3, 0
ands r0, r2
movs r2, 0x4
orrs r0, r2
strb r0, [r1, 0x1]
movs r2, 0xA
ldrsh r1, [r5, r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r1, [r0, 0x5]
ands r3, r1
strb r3, [r0, 0x5]
adds r0, r7, 0
movs r1, 0
bl sub_8130FD4
movs r0, 0x1
negs r0, r0
str r6, [sp]
movs r1, 0x2
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
mov r0, r9
subs r0, 0x8
add r0, r8
ldr r1, _0812F4A4 @ =sub_812F4A8
str r1, [r0]
_0812F476:
add sp, 0x18
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812F484: .4byte gUnknown_8415D48
_0812F488: .4byte gUnknown_8460BA8
_0812F48C: .4byte gUnknown_203B108
_0812F490: .4byte gUnknown_8462EC0
_0812F494: .4byte gMain
_0812F498: .4byte gUnknown_8462EEC
_0812F49C: .4byte gUnknown_8462EF0
_0812F4A0: .4byte gSprites
_0812F4A4: .4byte sub_812F4A8
thumb_func_end sub_812F33C
thumb_func_start sub_812F4A8
sub_812F4A8: @ 812F4A8
push {r4-r7,lr}
sub sp, 0x14
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r6, r0, 3
ldr r7, _0812F4D8 @ =gTasks+0x8
adds r5, r6, r7
ldr r0, _0812F4DC @ =gMain
movs r1, 0x87
lsls r1, 3
adds r3, r0, r1
ldrb r1, [r3]
adds r4, r0, 0
cmp r1, 0x4
bls _0812F4CC
b _0812F6C0
_0812F4CC:
lsls r0, r1, 2
ldr r1, _0812F4E0 @ =_0812F4E4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0812F4D8: .4byte gTasks+0x8
_0812F4DC: .4byte gMain
_0812F4E0: .4byte _0812F4E4
.align 2, 0
_0812F4E4:
.4byte _0812F4F8
.4byte _0812F538
.4byte _0812F5B4
.4byte _0812F644
.4byte _0812F688
_0812F4F8:
ldr r0, _0812F534 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0812F506
b _0812F71C
_0812F506:
movs r0, 0x40
movs r1, 0xF0
bl SetGpuReg
movs r1, 0x85
lsls r1, 5
movs r0, 0x44
bl SetGpuReg
movs r0, 0x48
movs r1, 0x3F
bl SetGpuReg
movs r0, 0x4A
movs r1, 0x1F
bl SetGpuReg
movs r1, 0x80
lsls r1, 6
movs r0, 0
bl SetGpuRegBits
b _0812F676
.align 2, 0
_0812F534: .4byte gPaletteFade
_0812F538:
ldrh r1, [r4, 0x2E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
bne _0812F544
b _0812F71C
_0812F544:
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0812F55C
ldr r0, _0812F558 @ =gUnknown_203B108
ldr r1, [r0]
ldrh r0, [r1, 0x12]
adds r0, 0x1
b _0812F56A
.align 2, 0
_0812F558: .4byte gUnknown_203B108
_0812F55C:
ldr r0, _0812F58C @ =gUnknown_203B108
ldr r1, [r0]
ldrh r0, [r1, 0x12]
cmp r0, 0
bne _0812F568
b _0812F71C
_0812F568:
subs r0, 0x1
_0812F56A:
strh r0, [r1, 0x12]
movs r0, 0x5
bl PlaySE
ldr r0, _0812F58C @ =gUnknown_203B108
ldr r0, [r0]
ldrh r0, [r0, 0x12]
cmp r0, 0x3
bne _0812F594
ldr r0, _0812F590 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
movs r1, 0x4
strb r1, [r0]
b _0812F71C
.align 2, 0
_0812F58C: .4byte gUnknown_203B108
_0812F590: .4byte gMain
_0812F594:
ldr r1, _0812F5B0 @ =0x00000241
movs r0, 0x50
bl SetGpuReg
ldrh r0, [r5, 0x1E]
movs r1, 0x10
subs r1, r0
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
b _0812F6A2
.align 2, 0
_0812F5B0: .4byte 0x00000241
_0812F5B4:
ldrh r1, [r5, 0x1E]
subs r1, 0x2
strh r1, [r5, 0x1E]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0x1E
ldrsh r0, [r5, r1]
cmp r0, 0
ble _0812F5D6
b _0812F71C
_0812F5D6:
ldrb r0, [r5, 0x1C]
movs r1, 0
bl FillWindowPixelBuffer
ldrb r0, [r5, 0x1C]
movs r1, 0x1
str r1, [sp]
movs r2, 0
str r2, [sp, 0x4]
ldr r1, _0812F620 @ =gUnknown_8462EEC
str r1, [sp, 0x8]
str r2, [sp, 0xC]
ldr r2, _0812F624 @ =gUnknown_8462EF0
ldr r4, _0812F628 @ =gUnknown_203B108
ldr r1, [r4]
ldrh r1, [r1, 0x12]
lsls r1, 2
adds r1, r2
ldr r1, [r1]
str r1, [sp, 0x10]
movs r1, 0x2
movs r2, 0x3
movs r3, 0x5
bl AddTextPrinterParametrized2
ldr r0, [r4]
ldrh r0, [r0, 0x12]
cmp r0, 0
bne _0812F630
bl sub_810F71C
ldr r0, _0812F62C @ =gUnknown_8415D48
movs r1, 0
movs r2, 0x1
bl sub_810F5E8
b _0812F6A2
.align 2, 0
_0812F620: .4byte gUnknown_8462EEC
_0812F624: .4byte gUnknown_8462EF0
_0812F628: .4byte gUnknown_203B108
_0812F62C: .4byte gUnknown_8415D48
_0812F630:
bl sub_810F71C
ldr r0, _0812F640 @ =gUnknown_8415D50
movs r1, 0
movs r2, 0x1
bl sub_810F5E8
b _0812F6A2
.align 2, 0
_0812F640: .4byte gUnknown_8415D50
_0812F644:
ldrh r1, [r5, 0x1E]
adds r1, 0x2
strh r1, [r5, 0x1E]
movs r4, 0x10
subs r0, r4, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0x1E
ldrsh r0, [r5, r1]
cmp r0, 0xF
ble _0812F71C
strh r4, [r5, 0x1E]
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
_0812F676:
ldr r0, _0812F684 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
movs r1, 0x1
strb r1, [r0]
b _0812F71C
.align 2, 0
_0812F684: .4byte gMain
_0812F688:
ldr r1, _0812F6B4 @ =gTasks
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r0, r1
ldrb r0, [r0, 0x12]
bl sub_8006398
ldr r0, _0812F6B8 @ =0x00000145
bl PlayBGM
movs r0, 0x18
strh r0, [r5, 0x1E]
_0812F6A2:
ldr r1, _0812F6BC @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _0812F71C
.align 2, 0
_0812F6B4: .4byte gTasks
_0812F6B8: .4byte 0x00000145
_0812F6BC: .4byte gMain
_0812F6C0:
ldrh r0, [r5, 0x1E]
movs r1, 0x1E
ldrsh r4, [r5, r1]
cmp r4, 0
beq _0812F6D0
subs r0, 0x1
strh r0, [r5, 0x1E]
b _0812F71C
_0812F6D0:
strb r4, [r3]
ldr r0, _0812F724 @ =gUnknown_203B108
ldr r0, [r0]
strh r4, [r0, 0x12]
movs r0, 0x40
movs r1, 0
bl SetGpuReg
movs r0, 0x44
movs r1, 0
bl SetGpuReg
movs r0, 0x48
movs r1, 0
bl SetGpuReg
movs r0, 0x4A
movs r1, 0
bl SetGpuReg
movs r1, 0x80
lsls r1, 6
movs r0, 0
bl ClearGpuRegBits
movs r0, 0x1
negs r0, r0
str r4, [sp]
movs r1, 0x2
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
adds r0, r7, 0
subs r0, 0x8
adds r0, r6, r0
ldr r1, _0812F728 @ =sub_812F72C
str r1, [r0]
_0812F71C:
add sp, 0x14
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812F724: .4byte gUnknown_203B108
_0812F728: .4byte sub_812F72C
thumb_func_end sub_812F4A8
thumb_func_start sub_812F72C
sub_812F72C: @ 812F72C
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r7, r0, 3
ldr r0, _0812F7B4 @ =gTasks+0x8
mov r8, r0
adds r4, r7, r0
ldr r0, _0812F7B8 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0
bne _0812F7A6
bl sub_810F740
ldrb r0, [r4, 0x1C]
movs r1, 0
bl FillWindowPixelBuffer
ldrb r0, [r4, 0x1C]
bl ClearWindowTilemap
ldrb r0, [r4, 0x1C]
movs r1, 0x3
bl CopyWindowToVram
ldrb r0, [r4, 0x1C]
bl RemoveWindow
strh r6, [r4, 0x1C]
movs r0, 0x1E
str r0, [sp]
movs r0, 0x14
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x1
bl CopyBgTilemapBufferToVram
adds r0, r5, 0
movs r1, 0
bl sub_8131168
movs r0, 0x50
strh r0, [r4, 0x6]
mov r0, r8
subs r0, 0x8
adds r0, r7, r0
ldr r1, _0812F7BC @ =sub_812F7C0
str r1, [r0]
_0812F7A6:
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812F7B4: .4byte gTasks+0x8
_0812F7B8: .4byte gPaletteFade
_0812F7BC: .4byte sub_812F7C0
thumb_func_end sub_812F72C
thumb_func_start sub_812F7C0
sub_812F7C0: @ 812F7C0
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r7, r0, 3
ldr r0, _0812F7EC @ =gTasks+0x8
mov r8, r0
adds r5, r7, r0
movs r0, 0
str r0, [sp, 0x4]
ldrh r0, [r5, 0x6]
movs r1, 0x6
ldrsh r6, [r5, r1]
cmp r6, 0
beq _0812F7F0
subs r0, 0x1
strh r0, [r5, 0x6]
b _0812F862
.align 2, 0
_0812F7EC: .4byte gTasks+0x8
_0812F7F0:
ldr r0, _0812F870 @ =gUnknown_8460CA4
add r1, sp, 0x4
bl malloc_and_decompress
adds r1, r0, 0
ldr r0, _0812F874 @ =gUnknown_203B108
ldr r0, [r0]
str r1, [r0]
ldr r2, [sp, 0x4]
lsls r2, 16
lsrs r2, 16
movs r0, 0x1
movs r3, 0
bl LoadBgTiles
ldr r1, _0812F878 @ =gUnknown_8460CE8
movs r0, 0x1
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
movs r0, 0x1
bl CopyBgTilemapBufferToVram
adds r0, r4, 0
bl sub_8130F2C
movs r0, 0x3
movs r1, 0
bl sub_81311F4
adds r0, r4, 0
movs r1, 0x1
bl sub_8130FD4
movs r0, 0x92
lsls r0, 1
bl PlayBGM
movs r0, 0x1
negs r0, r0
str r6, [sp]
movs r1, 0x5
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
movs r0, 0x50
strh r0, [r5, 0x6]
movs r0, 0x2
bl ShowBg
mov r0, r8
subs r0, 0x8
adds r0, r7, r0
ldr r1, _0812F87C @ =sub_812F880
str r1, [r0]
_0812F862:
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812F870: .4byte gUnknown_8460CA4
_0812F874: .4byte gUnknown_203B108
_0812F878: .4byte gUnknown_8460CE8
_0812F87C: .4byte sub_812F880
thumb_func_end sub_812F7C0
thumb_func_start sub_812F880
sub_812F880: @ 812F880
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, _0812F8B0 @ =gTasks+0x8
adds r2, r0, r1
ldr r0, _0812F8B4 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0812F92E
ldrh r0, [r2, 0x6]
movs r1, 0x6
ldrsh r4, [r2, r1]
cmp r4, 0
beq _0812F8B8
subs r0, 0x1
strh r0, [r2, 0x6]
b _0812F92E
.align 2, 0
_0812F8B0: .4byte gTasks+0x8
_0812F8B4: .4byte gPaletteFade
_0812F8B8:
movs r0, 0
movs r1, 0
bl sub_80F6EE4
ldr r2, _0812F8F0 @ =gUnknown_81C5C78
ldr r5, _0812F8F4 @ =gStringVar4
cmp r2, r5
beq _0812F8FC
adds r0, r5, 0
adds r1, r2, 0
bl StringExpandPlaceholders
ldr r0, _0812F8F8 @ =gUnknown_203B108
ldr r0, [r0]
ldrb r3, [r0, 0x1F]
str r4, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
adds r2, r5, 0
bl AddTextPrinterParametrized
b _0812F918
.align 2, 0
_0812F8F0: .4byte gUnknown_81C5C78
_0812F8F4: .4byte gStringVar4
_0812F8F8: .4byte gUnknown_203B108
_0812F8FC:
ldr r0, _0812F938 @ =gUnknown_203B108
ldr r0, [r0]
ldrb r3, [r0, 0x1F]
str r4, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
bl AddTextPrinterParametrized
_0812F918:
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
ldr r0, _0812F93C @ =gTasks
lsls r1, r6, 2
adds r1, r6
lsls r1, 3
adds r1, r0
ldr r0, _0812F940 @ =sub_812F944
str r0, [r1]
_0812F92E:
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0812F938: .4byte gUnknown_203B108
_0812F93C: .4byte gTasks
_0812F940: .4byte sub_812F944
thumb_func_end sub_812F880
thumb_func_start sub_812F944
sub_812F944: @ 812F944
push {r4-r6,lr}
sub sp, 0x10
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0
bl IsTextPrinterActive
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0
bne _0812F9D6
movs r0, 0
movs r1, 0
bl sub_80F6EE4
ldr r2, _0812F994 @ =gUnknown_81C5D06
ldr r5, _0812F998 @ =gStringVar4
cmp r2, r5
beq _0812F9A0
adds r0, r5, 0
adds r1, r2, 0
bl StringExpandPlaceholders
ldr r0, _0812F99C @ =gUnknown_203B108
ldr r0, [r0]
ldrb r3, [r0, 0x1F]
str r4, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
adds r2, r5, 0
bl AddTextPrinterParametrized
b _0812F9BC
.align 2, 0
_0812F994: .4byte gUnknown_81C5D06
_0812F998: .4byte gStringVar4
_0812F99C: .4byte gUnknown_203B108
_0812F9A0:
ldr r0, _0812F9E0 @ =gUnknown_203B108
ldr r0, [r0]
ldrb r3, [r0, 0x1F]
str r4, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
bl AddTextPrinterParametrized
_0812F9BC:
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
ldr r1, _0812F9E4 @ =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r0, r1
movs r1, 0x1E
strh r1, [r0, 0xE]
ldr r1, _0812F9E8 @ =sub_812F9EC
str r1, [r0]
_0812F9D6:
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0812F9E0: .4byte gUnknown_203B108
_0812F9E4: .4byte gTasks
_0812F9E8: .4byte sub_812F9EC
thumb_func_end sub_812F944
thumb_func_start sub_812F9EC
sub_812F9EC: @ 812F9EC
push {r4-r7,lr}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r6, r1, 3
ldr r7, _0812FA68 @ =gTasks+0x8
adds r4, r6, r7
movs r0, 0
bl IsTextPrinterActive
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0
bne _0812FA5E
ldrh r1, [r4, 0x6]
movs r2, 0x6
ldrsh r0, [r4, r2]
cmp r0, 0
beq _0812FA1A
subs r0, r1, 0x1
strh r0, [r4, 0x6]
_0812FA1A:
adds r4, r7, 0
subs r4, 0x8
adds r4, r6, r4
ldrb r0, [r4, 0x10]
ldr r1, _0812FA6C @ =gSprites
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r1
movs r3, 0x3E
adds r3, r2
mov r12, r3
ldrb r3, [r3]
movs r1, 0x5
negs r1, r1
ands r1, r3
mov r3, r12
strb r1, [r3]
strh r5, [r2, 0x2E]
ldrb r1, [r2, 0x5]
lsrs r1, 4
str r5, [sp]
str r5, [sp, 0x4]
movs r2, 0x20
str r2, [sp, 0x8]
ldr r2, _0812FA70 @ =0xffff1fff
str r2, [sp, 0xC]
movs r2, 0x64
movs r3, 0x42
bl CreatePokeballSpriteToReleaseMon
ldr r0, _0812FA74 @ =sub_812FA78
str r0, [r4]
strh r5, [r4, 0xE]
_0812FA5E:
add sp, 0x10
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812FA68: .4byte gTasks+0x8
_0812FA6C: .4byte gSprites
_0812FA70: .4byte 0xffff1fff
_0812FA74: .4byte sub_812FA78
thumb_func_end sub_812F9EC
thumb_func_start sub_812FA78
sub_812FA78: @ 812FA78
push {r4,r5,lr}
sub sp, 0x10
lsls r0, 24
lsrs r4, r0, 24
bl IsCryFinished
lsls r0, 24
cmp r0, 0
beq _0812FAA0
ldr r0, _0812FAFC @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
movs r2, 0xE
ldrsh r0, [r1, r2]
cmp r0, 0x5F
ble _0812FAA0
ldr r0, _0812FB00 @ =sub_812FB4C
str r0, [r1]
_0812FAA0:
ldr r1, _0812FAFC @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r2, r0, r1
ldrh r3, [r2, 0xE]
movs r0, 0xE
ldrsh r1, [r2, r0]
ldr r0, _0812FB04 @ =0x00003fff
cmp r1, r0
bgt _0812FB40
adds r0, r3, 0x1
movs r5, 0
strh r0, [r2, 0xE]
lsls r0, 16
asrs r0, 16
cmp r0, 0x20
bne _0812FB40
movs r0, 0
movs r1, 0
bl sub_80F6EE4
ldr r2, _0812FB08 @ =gUnknown_81C5D12
ldr r4, _0812FB0C @ =gStringVar4
cmp r2, r4
beq _0812FB14
adds r0, r4, 0
adds r1, r2, 0
bl StringExpandPlaceholders
ldr r0, _0812FB10 @ =gUnknown_203B108
ldr r0, [r0]
ldrb r3, [r0, 0x1F]
str r5, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
adds r2, r4, 0
bl AddTextPrinterParametrized
b _0812FB30
.align 2, 0
_0812FAFC: .4byte gTasks
_0812FB00: .4byte sub_812FB4C
_0812FB04: .4byte 0x00003fff
_0812FB08: .4byte gUnknown_81C5D12
_0812FB0C: .4byte gStringVar4
_0812FB10: .4byte gUnknown_203B108
_0812FB14:
ldr r0, _0812FB48 @ =gUnknown_203B108
ldr r0, [r0]
ldrb r3, [r0, 0x1F]
str r5, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
bl AddTextPrinterParametrized
_0812FB30:
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
movs r0, 0x1D
movs r1, 0
bl PlayCry1
_0812FB40:
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0812FB48: .4byte gUnknown_203B108
thumb_func_end sub_812FA78
thumb_func_start sub_812FB4C
sub_812FB4C: @ 812FB4C
push {r4-r6,lr}
sub sp, 0x10
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0
bl IsTextPrinterActive
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0
bne _0812FBDA
movs r0, 0
movs r1, 0
bl sub_80F6EE4
ldr r2, _0812FB9C @ =gUnknown_81C5D4B
ldr r5, _0812FBA0 @ =gStringVar4
cmp r2, r5
beq _0812FBA8
adds r0, r5, 0
adds r1, r2, 0
bl StringExpandPlaceholders
ldr r0, _0812FBA4 @ =gUnknown_203B108
ldr r0, [r0]
ldrb r3, [r0, 0x1F]
str r4, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
adds r2, r5, 0
bl AddTextPrinterParametrized
b _0812FBC4
.align 2, 0
_0812FB9C: .4byte gUnknown_81C5D4B
_0812FBA0: .4byte gStringVar4
_0812FBA4: .4byte gUnknown_203B108
_0812FBA8:
ldr r0, _0812FBE4 @ =gUnknown_203B108
ldr r0, [r0]
ldrb r3, [r0, 0x1F]
str r4, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
bl AddTextPrinterParametrized
_0812FBC4:
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
ldr r0, _0812FBE8 @ =gTasks
lsls r1, r6, 2
adds r1, r6
lsls r1, 3
adds r1, r0
ldr r0, _0812FBEC @ =sub_812FBF0
str r0, [r1]
_0812FBDA:
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0812FBE4: .4byte gUnknown_203B108
_0812FBE8: .4byte gTasks
_0812FBEC: .4byte sub_812FBF0
thumb_func_end sub_812FB4C
thumb_func_start sub_812FBF0
sub_812FBF0: @ 812FBF0
push {r4-r6,lr}
sub sp, 0x10
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0
bl IsTextPrinterActive
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0
bne _0812FC4E
movs r0, 0
movs r1, 0x1
bl sub_80F6F54
ldr r0, _0812FC58 @ =gTasks
lsls r4, r6, 2
adds r4, r6
lsls r4, 3
adds r4, r0
ldrb r0, [r4, 0x10]
ldr r2, _0812FC5C @ =gSprites
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
ldrb r1, [r1, 0x5]
lsrs r1, 4
str r5, [sp]
str r5, [sp, 0x4]
movs r2, 0x20
str r2, [sp, 0x8]
ldr r2, _0812FC60 @ =0xffff1f3f
str r2, [sp, 0xC]
movs r2, 0x64
movs r3, 0x42
bl sub_804BB98
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x14]
movs r0, 0x30
strh r0, [r4, 0xE]
movs r0, 0x40
strh r0, [r4, 0x8]
ldr r0, _0812FC64 @ =sub_812FC68
str r0, [r4]
_0812FC4E:
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0812FC58: .4byte gTasks
_0812FC5C: .4byte gSprites
_0812FC60: .4byte 0xffff1f3f
_0812FC64: .4byte sub_812FC68
thumb_func_end sub_812FBF0
thumb_func_start sub_812FC68
sub_812FC68: @ 812FC68
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, _0812FCA4 @ =gTasks+0x8
adds r5, r0, r1
movs r1, 0
ldrsh r0, [r5, r1]
cmp r0, 0
beq _0812FCAC
cmp r0, 0x17
bgt _0812FC9A
ldr r2, _0812FCA8 @ =gSprites
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x22]
subs r1, 0x1
strh r1, [r0, 0x22]
_0812FC9A:
ldrh r0, [r5]
subs r0, 0x1
strh r0, [r5]
b _0812FD62
.align 2, 0
_0812FCA4: .4byte gTasks+0x8
_0812FCA8: .4byte gSprites
_0812FCAC:
movs r1, 0x6
ldrsh r0, [r5, r1]
cmp r0, 0x30
bne _0812FCD6
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, _0812FCE8 @ =gSprites
adds r0, r4
bl DestroySprite
movs r0, 0xC
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
_0812FCD6:
ldrh r0, [r5, 0x6]
movs r1, 0x6
ldrsh r4, [r5, r1]
cmp r4, 0
beq _0812FCEC
subs r0, 0x1
strh r0, [r5, 0x6]
b _0812FD62
.align 2, 0
_0812FCE8: .4byte gSprites
_0812FCEC:
movs r0, 0
movs r1, 0
bl sub_80F6EE4
ldr r2, _0812FD24 @ =gUnknown_81C5DBD
ldr r5, _0812FD28 @ =gStringVar4
cmp r2, r5
beq _0812FD30
adds r0, r5, 0
adds r1, r2, 0
bl StringExpandPlaceholders
ldr r0, _0812FD2C @ =gUnknown_203B108
ldr r0, [r0]
ldrb r3, [r0, 0x1F]
str r4, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
adds r2, r5, 0
bl AddTextPrinterParametrized
b _0812FD4C
.align 2, 0
_0812FD24: .4byte gUnknown_81C5DBD
_0812FD28: .4byte gStringVar4
_0812FD2C: .4byte gUnknown_203B108
_0812FD30:
ldr r0, _0812FD6C @ =gUnknown_203B108
ldr r0, [r0]
ldrb r3, [r0, 0x1F]
str r4, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
bl AddTextPrinterParametrized
_0812FD4C:
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
ldr r0, _0812FD70 @ =gTasks
lsls r1, r6, 2
adds r1, r6
lsls r1, 3
adds r1, r0
ldr r0, _0812FD74 @ =sub_812FD78
str r0, [r1]
_0812FD62:
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0812FD6C: .4byte gUnknown_203B108
_0812FD70: .4byte gTasks
_0812FD74: .4byte sub_812FD78
thumb_func_end sub_812FC68
thumb_func_start sub_812FD78
sub_812FD78: @ 812FD78
push {r4-r7,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r5, r0, 3
ldr r7, _0812FDB8 @ =gTasks+0x8
adds r6, r5, r7
movs r0, 0
bl IsTextPrinterActive
lsls r0, 16
cmp r0, 0
bne _0812FDB2
movs r0, 0
movs r1, 0x1
bl sub_80F6F54
adds r0, r4, 0
movs r1, 0x2
bl sub_813144C
movs r0, 0x30
strh r0, [r6, 0x6]
adds r0, r7, 0
subs r0, 0x8
adds r0, r5, r0
ldr r1, _0812FDBC @ =sub_812FDC0
str r1, [r0]
_0812FDB2:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812FDB8: .4byte gTasks+0x8
_0812FDBC: .4byte sub_812FDC0
thumb_func_end sub_812FD78
thumb_func_start sub_812FDC0
sub_812FDC0: @ 812FDC0
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, _0812FDEC @ =gTasks+0x8
adds r1, r0, r1
movs r2, 0x4
ldrsh r0, [r1, r2]
cmp r0, 0
beq _0812FE72
ldrh r0, [r1, 0x6]
movs r2, 0x6
ldrsh r4, [r1, r2]
cmp r4, 0
beq _0812FDF0
subs r0, 0x1
strh r0, [r1, 0x6]
b _0812FE72
.align 2, 0
_0812FDEC: .4byte gTasks+0x8
_0812FDF0:
movs r2, 0x3C
negs r2, r2
adds r0, r2, 0
strh r0, [r1, 0x2]
bl sub_8131310
movs r0, 0
movs r1, 0
bl sub_80F6EE4
ldr r2, _0812FE34 @ =gUnknown_81C59D5
ldr r5, _0812FE38 @ =gStringVar4
cmp r2, r5
beq _0812FE40
adds r0, r5, 0
adds r1, r2, 0
bl StringExpandPlaceholders
ldr r0, _0812FE3C @ =gUnknown_203B108
ldr r0, [r0]
ldrb r3, [r0, 0x1F]
str r4, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
adds r2, r5, 0
bl AddTextPrinterParametrized
b _0812FE5C
.align 2, 0
_0812FE34: .4byte gUnknown_81C59D5
_0812FE38: .4byte gStringVar4
_0812FE3C: .4byte gUnknown_203B108
_0812FE40:
ldr r0, _0812FE7C @ =gUnknown_203B108
ldr r0, [r0]
ldrb r3, [r0, 0x1F]
str r4, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
bl AddTextPrinterParametrized
_0812FE5C:
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
ldr r0, _0812FE80 @ =gTasks
lsls r1, r6, 2
adds r1, r6
lsls r1, 3
adds r1, r0
ldr r0, _0812FE84 @ =sub_812FE88
str r0, [r1]
_0812FE72:
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0812FE7C: .4byte gUnknown_203B108
_0812FE80: .4byte gTasks
_0812FE84: .4byte sub_812FE88
thumb_func_end sub_812FDC0
thumb_func_start sub_812FE88
sub_812FE88: @ 812FE88
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0xC
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0
bl IsTextPrinterActive
lsls r0, 16
lsrs r7, r0, 16
cmp r7, 0
bne _0812FF7E
ldr r0, _0812FF8C @ =gUnknown_8462EC8
bl AddWindow
ldr r1, _0812FF90 @ =gTasks
lsls r5, r4, 2
adds r5, r4
lsls r5, 3
adds r5, r1
strh r0, [r5, 0x22]
lsls r0, 24
lsrs r0, 24
bl PutWindowTilemap
ldrh r4, [r5, 0x22]
lsls r4, 24
lsrs r4, 24
bl sub_80F796C
adds r2, r0, 0
lsls r2, 16
lsrs r2, 16
adds r0, r4, 0
movs r1, 0x1
movs r3, 0xE
bl SetWindowBorderStyle
ldrh r0, [r5, 0x22]
lsls r0, 24
lsrs r0, 24
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r4, _0812FF94 @ =gUnknown_203B108
ldr r0, [r4]
movs r1, 0x1
mov r9, r1
mov r1, r9
strb r1, [r0, 0x1C]
ldr r0, [r4]
movs r6, 0x2
strb r6, [r0, 0x1D]
ldr r0, [r4]
movs r1, 0x3
mov r8, r1
mov r1, r8
strb r1, [r0, 0x1E]
ldrh r0, [r5, 0x22]
lsls r0, 24
lsrs r0, 24
ldr r1, [r4]
adds r1, 0x1C
str r1, [sp]
str r7, [sp, 0x4]
ldr r1, _0812FF98 @ =gUnknown_8415D93
str r1, [sp, 0x8]
movs r1, 0x2
movs r2, 0x8
movs r3, 0x1
bl box_print
ldr r0, [r4]
mov r1, r9
strb r1, [r0, 0x1C]
ldr r0, [r4]
strb r6, [r0, 0x1D]
ldr r0, [r4]
mov r1, r8
strb r1, [r0, 0x1E]
ldrh r0, [r5, 0x22]
lsls r0, 24
lsrs r0, 24
ldr r1, [r4]
adds r1, 0x1C
str r1, [sp]
str r7, [sp, 0x4]
ldr r1, _0812FF9C @ =gUnknown_8415D97
str r1, [sp, 0x8]
movs r1, 0x2
movs r2, 0x8
movs r3, 0x11
bl box_print
movs r0, 0x2
movs r1, 0x1
bl GetFontAttribute
adds r0, 0x2
lsls r0, 24
lsrs r0, 24
ldrh r1, [r5, 0x22]
lsls r1, 24
lsrs r1, 24
str r0, [sp]
str r6, [sp, 0x4]
str r7, [sp, 0x8]
adds r0, r1, 0
movs r1, 0x2
movs r2, 0
movs r3, 0x1
bl sub_810F7D8
ldrh r0, [r5, 0x22]
lsls r0, 24
lsrs r0, 24
movs r1, 0x3
bl CopyWindowToVram
ldr r0, _0812FFA0 @ =sub_812FFA4
str r0, [r5]
_0812FF7E:
add sp, 0xC
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812FF8C: .4byte gUnknown_8462EC8
_0812FF90: .4byte gTasks
_0812FF94: .4byte gUnknown_203B108
_0812FF98: .4byte gUnknown_8415D93
_0812FF9C: .4byte gUnknown_8415D97
_0812FFA0: .4byte sub_812FFA4
thumb_func_end sub_812FE88
thumb_func_start sub_812FFA4
sub_812FFA4: @ 812FFA4
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl ProcessMenuInputNoWrapAround
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
beq _0812FFC8
cmp r1, 0
bgt _0812FFC4
movs r0, 0x2
negs r0, r0
cmp r1, r0
blt _0812FFCE
b _0812FFDC
_0812FFC4:
cmp r1, 0x1
bne _0812FFCE
_0812FFC8:
ldr r0, _0812FFE4 @ =gSaveBlock2Ptr
ldr r0, [r0]
strb r1, [r0, 0x8]
_0812FFCE:
ldr r0, _0812FFE8 @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _0812FFEC @ =sub_812FFF0
str r0, [r1]
_0812FFDC:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0812FFE4: .4byte gSaveBlock2Ptr
_0812FFE8: .4byte gTasks
_0812FFEC: .4byte sub_812FFF0
thumb_func_end sub_812FFA4
thumb_func_start sub_812FFF0
sub_812FFF0: @ 812FFF0
push {r4-r6,lr}
sub sp, 0x8
lsls r0, 24
lsrs r0, 24
lsls r5, r0, 2
adds r5, r0
lsls r5, 3
ldr r6, _08130048 @ =gTasks+0x8
adds r4, r5, r6
ldrb r0, [r4, 0x1A]
movs r1, 0x1
bl sub_810F4D8
ldrb r0, [r4, 0x1A]
bl RemoveWindow
movs r0, 0
strh r0, [r4, 0x1A]
movs r0, 0
movs r1, 0x1
bl sub_80F6F54
movs r0, 0x1E
str r0, [sp]
movs r0, 0x14
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
movs r0, 0
bl CopyBgTilemapBufferToVram
subs r6, 0x8
adds r5, r6
ldr r0, _0813004C @ =sub_8130050
str r0, [r5]
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08130048: .4byte gTasks+0x8
_0813004C: .4byte sub_8130050
thumb_func_end sub_812FFF0
thumb_func_start sub_8130050
sub_8130050: @ 8130050
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _0813006C @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0
bne _08130070
movs r0, 0
movs r1, 0
bl sub_81311F4
b _08130078
.align 2, 0
_0813006C: .4byte gSaveBlock2Ptr
_08130070:
movs r0, 0x1
movs r1, 0
bl sub_81311F4
_08130078:
adds r0, r4, 0
movs r1, 0x2
bl sub_81315CC
ldr r1, _08130098 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
movs r1, 0x20
strh r1, [r0, 0xE]
ldr r1, _0813009C @ =sub_81300A0
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08130098: .4byte gTasks
_0813009C: .4byte sub_81300A0
thumb_func_end sub_8130050
thumb_func_start sub_81300A0
sub_81300A0: @ 81300A0
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, _081300CC @ =gTasks+0x8
adds r1, r0, r1
movs r2, 0x4
ldrsh r0, [r1, r2]
cmp r0, 0
beq _0813014A
ldrh r0, [r1, 0x6]
movs r2, 0x6
ldrsh r4, [r1, r2]
cmp r4, 0
beq _081300D0
subs r0, 0x1
strh r0, [r1, 0x6]
b _0813014A
.align 2, 0
_081300CC: .4byte gTasks+0x8
_081300D0:
strh r4, [r1, 0x2]
movs r0, 0
movs r1, 0
bl sub_80F6EE4
ldr r2, _0813010C @ =gUnknown_81C5DEA
ldr r5, _08130110 @ =gStringVar4
cmp r2, r5
beq _08130118
adds r0, r5, 0
adds r1, r2, 0
bl StringExpandPlaceholders
ldr r0, _08130114 @ =gUnknown_203B108
ldr r0, [r0]
ldrb r3, [r0, 0x1F]
str r4, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
adds r2, r5, 0
bl AddTextPrinterParametrized
b _08130134
.align 2, 0
_0813010C: .4byte gUnknown_81C5DEA
_08130110: .4byte gStringVar4
_08130114: .4byte gUnknown_203B108
_08130118:
ldr r0, _08130154 @ =gUnknown_203B108
ldr r0, [r0]
ldrb r3, [r0, 0x1F]
str r4, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
bl AddTextPrinterParametrized
_08130134:
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
ldr r0, _08130158 @ =gTasks
lsls r1, r6, 2
adds r1, r6
lsls r1, 3
adds r1, r0
ldr r0, _0813015C @ =sub_8130160
str r0, [r1]
_0813014A:
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08130154: .4byte gUnknown_203B108
_08130158: .4byte gTasks
_0813015C: .4byte sub_8130160
thumb_func_end sub_81300A0
thumb_func_start sub_8130160
sub_8130160: @ 8130160
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0
bl IsTextPrinterActive
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0
bne _0813019A
movs r0, 0x1
negs r0, r0
str r4, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, _081301A4 @ =gUnknown_203B108
ldr r0, [r0]
strh r4, [r0, 0x10]
ldr r1, _081301A8 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, _081301AC @ =sub_81303B4
str r1, [r0]
_0813019A:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_081301A4: .4byte gUnknown_203B108
_081301A8: .4byte gTasks
_081301AC: .4byte sub_81303B4
thumb_func_end sub_8130160
thumb_func_start sub_81301B0
sub_81301B0: @ 81301B0
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
lsls r0, r5, 2
adds r0, r5
lsls r6, r0, 3
ldr r7, _081301F8 @ =gTasks+0x8
adds r4, r6, r7
movs r0, 0
bl IsTextPrinterActive
lsls r0, 16
cmp r0, 0
bne _08130218
ldrh r2, [r4, 0x2]
movs r1, 0x2
ldrsh r0, [r4, r1]
movs r1, 0x3C
negs r1, r1
cmp r0, r1
ble _08130200
subs r0, r2, 0x2
strh r0, [r4, 0x2]
ldr r1, _081301FC @ =gSpriteCoordOffsetX
ldrh r0, [r1]
adds r0, 0x2
strh r0, [r1]
movs r1, 0x80
lsls r1, 2
movs r0, 0x2
movs r2, 0x2
bl ChangeBgX
b _08130218
.align 2, 0
_081301F8: .4byte gTasks+0x8
_081301FC: .4byte gSpriteCoordOffsetX
_08130200:
strh r1, [r4, 0x2]
ldr r0, _08130220 @ =gUnknown_203B108
ldr r0, [r0]
ldrb r1, [r0, 0x10]
adds r0, r5, 0
bl sub_8131660
adds r0, r7, 0
subs r0, 0x8
adds r0, r6, r0
ldr r1, _08130224 @ =sub_8130324
str r1, [r0]
_08130218:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08130220: .4byte gUnknown_203B108
_08130224: .4byte sub_8130324
thumb_func_end sub_81301B0
thumb_func_start sub_8130228
sub_8130228: @ 8130228
push {r4-r6,lr}
sub sp, 0x10
lsls r0, 24
lsrs r6, r0, 24
ldr r4, _08130278 @ =gUnknown_203B108
ldr r0, [r4]
ldrb r1, [r0, 0x10]
adds r0, r6, 0
bl sub_8131660
ldr r0, [r4]
ldrh r4, [r0, 0x10]
cmp r4, 0
bne _081302A6
movs r0, 0
movs r1, 0
bl sub_80F6EE4
ldr r2, _0813027C @ =gUnknown_81C5DEA
ldr r5, _08130280 @ =gStringVar4
cmp r2, r5
beq _08130284
adds r0, r5, 0
adds r1, r2, 0
bl StringExpandPlaceholders
str r4, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
adds r2, r5, 0
movs r3, 0
bl AddTextPrinterParametrized
b _0813029C
.align 2, 0
_08130278: .4byte gUnknown_203B108
_0813027C: .4byte gUnknown_81C5DEA
_08130280: .4byte gStringVar4
_08130284:
str r4, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
movs r3, 0
bl AddTextPrinterParametrized
_0813029C:
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
b _08130306
_081302A6:
movs r0, 0
movs r1, 0
bl sub_80F6EE4
ldr r2, _081302DC @ =gUnknown_81C5E91
ldr r4, _081302E0 @ =gStringVar4
cmp r2, r4
beq _081302E4
adds r0, r4, 0
adds r1, r2, 0
bl StringExpandPlaceholders
movs r0, 0
str r0, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
adds r2, r4, 0
movs r3, 0
bl AddTextPrinterParametrized
b _081302FE
.align 2, 0
_081302DC: .4byte gUnknown_81C5E91
_081302E0: .4byte gStringVar4
_081302E4:
movs r0, 0
str r0, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
movs r3, 0
bl AddTextPrinterParametrized
_081302FE:
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
_08130306:
ldr r0, _0813031C @ =gTasks
lsls r1, r6, 2
adds r1, r6
lsls r1, 3
adds r1, r0
ldr r0, _08130320 @ =sub_8130324
str r0, [r1]
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0813031C: .4byte gTasks
_08130320: .4byte sub_8130324
thumb_func_end sub_8130228
thumb_func_start sub_8130324
sub_8130324: @ 8130324
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r6, r1, 3
ldr r7, _0813037C @ =gTasks+0x8
adds r5, r6, r7
bl ProcessMenuInput
lsls r0, 24
asrs r4, r0, 24
cmp r4, 0
beq _08130388
cmp r4, 0
ble _081303A8
cmp r4, 0x4
bgt _081303A8
movs r0, 0x5
bl PlaySE
ldrb r0, [r5, 0x1A]
movs r1, 0x1
bl sub_810F4D8
ldrb r0, [r5, 0x1A]
bl RemoveWindow
ldr r0, _08130380 @ =gUnknown_203B108
ldr r0, [r0]
ldrb r0, [r0, 0x10]
subs r1, r4, 0x1
lsls r1, 24
lsrs r1, 24
bl sub_8131754
movs r0, 0x1
strh r0, [r5, 0x1E]
adds r0, r7, 0
subs r0, 0x8
adds r0, r6, r0
ldr r1, _08130384 @ =sub_8130464
b _081303A6
.align 2, 0
_0813037C: .4byte gTasks+0x8
_08130380: .4byte gUnknown_203B108
_08130384: .4byte sub_8130464
_08130388:
movs r0, 0x5
bl PlaySE
movs r0, 0x1
negs r0, r0
str r4, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
adds r0, r7, 0
subs r0, 0x8
adds r0, r6, r0
ldr r1, _081303B0 @ =sub_81303B4
_081303A6:
str r1, [r0]
_081303A8:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_081303B0: .4byte sub_81303B4
thumb_func_end sub_8130324
thumb_func_start sub_81303B4
sub_81303B4: @ 81303B4
push {r4-r6,lr}
sub sp, 0x8
lsls r0, 24
lsrs r6, r0, 24
ldr r0, _081303F8 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
bne _0813044C
ldr r4, _081303FC @ =gUnknown_203B108
ldr r0, [r4]
ldrb r0, [r0, 0x10]
movs r1, 0
bl sub_8131754
ldr r0, [r4]
ldrh r0, [r0, 0x10]
cmp r0, 0
bne _08130408
ldr r0, _08130400 @ =gSaveBlock2Ptr
ldr r1, [r0]
ldrb r2, [r1, 0x8]
str r5, [sp]
ldr r0, _08130404 @ =sub_8130C64
str r0, [sp, 0x4]
movs r0, 0
movs r3, 0
bl DoNamingScreen
b _08130440
.align 2, 0
_081303F8: .4byte gPaletteFade
_081303FC: .4byte gUnknown_203B108
_08130400: .4byte gSaveBlock2Ptr
_08130404: .4byte sub_8130C64
_08130408:
ldr r0, _08130454 @ =gTasks
lsls r4, r6, 2
adds r4, r6
lsls r4, 3
adds r4, r0
ldrh r0, [r4, 0x22]
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
bl sub_810F4D8
ldrh r0, [r4, 0x22]
lsls r0, 24
lsrs r0, 24
bl RemoveWindow
ldr r0, _08130458 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r0, _0813045C @ =0x00003a4c
adds r1, r0
str r5, [sp]
ldr r0, _08130460 @ =sub_8130C64
str r0, [sp, 0x4]
movs r0, 0x4
movs r2, 0
movs r3, 0
bl DoNamingScreen
_08130440:
adds r0, r6, 0
movs r1, 0x1
bl sub_8131168
bl FreeAllWindowBuffers
_0813044C:
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08130454: .4byte gTasks
_08130458: .4byte gSaveBlock1Ptr
_0813045C: .4byte 0x00003a4c
_08130460: .4byte sub_8130C64
thumb_func_end sub_81303B4
thumb_func_start sub_8130464
sub_8130464: @ 8130464
push {r4-r7,lr}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r6, r1, 3
ldr r7, _081304A0 @ =gTasks+0x8
adds r5, r6, r7
ldr r0, _081304A4 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08130544
movs r1, 0x1E
ldrsh r0, [r5, r1]
cmp r0, 0x1
bne _08130500
ldr r0, _081304A8 @ =gUnknown_203B108
ldr r0, [r0]
ldrh r0, [r0, 0x10]
cmp r0, 0
bne _081304B4
ldr r0, _081304AC @ =gStringVar4
ldr r1, _081304B0 @ =gUnknown_81C5E13
bl StringExpandPlaceholders
b _081304BC
.align 2, 0
_081304A0: .4byte gTasks+0x8
_081304A4: .4byte gPaletteFade
_081304A8: .4byte gUnknown_203B108
_081304AC: .4byte gStringVar4
_081304B0: .4byte gUnknown_81C5E13
_081304B4:
ldr r0, _081304F4 @ =gStringVar4
ldr r1, _081304F8 @ =gUnknown_81C5EB5
bl StringExpandPlaceholders
_081304BC:
movs r0, 0
movs r1, 0
bl sub_80F6EE4
ldr r2, _081304F4 @ =gStringVar4
ldr r0, _081304FC @ =gUnknown_203B108
ldr r0, [r0]
ldrb r3, [r0, 0x1F]
movs r4, 0
str r4, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
bl AddTextPrinterParametrized
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
strh r4, [r5, 0x1E]
movs r0, 0x19
strh r0, [r5, 0x6]
b _08130544
.align 2, 0
_081304F4: .4byte gStringVar4
_081304F8: .4byte gUnknown_81C5EB5
_081304FC: .4byte gUnknown_203B108
_08130500:
movs r0, 0
bl IsTextPrinterActive
lsls r0, 16
cmp r0, 0
bne _08130544
ldrh r0, [r5, 0x6]
movs r1, 0x6
ldrsh r4, [r5, r1]
cmp r4, 0
beq _0813051C
subs r0, 0x1
strh r0, [r5, 0x6]
b _08130544
_0813051C:
bl sub_80F796C
lsls r0, 16
lsrs r0, 16
ldr r1, _0813054C @ =gUnknown_8462ED0
str r0, [sp]
movs r0, 0xE
str r0, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r1, 0
movs r1, 0x2
movs r2, 0
movs r3, 0x2
bl sub_810FF60
adds r0, r7, 0
subs r0, 0x8
adds r0, r6, r0
ldr r1, _08130550 @ =sub_8130554
str r1, [r0]
_08130544:
add sp, 0x10
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0813054C: .4byte gUnknown_8462ED0
_08130550: .4byte sub_8130554
thumb_func_end sub_8130464
thumb_func_start sub_8130554
sub_8130554: @ 8130554
push {r4-r7,lr}
sub sp, 0x10
lsls r0, 24
lsrs r4, r0, 24
bl ProcessMenuInputNoWrap_
lsls r0, 24
asrs r5, r0, 24
cmp r5, 0
beq _0813057C
cmp r5, 0
bgt _08130576
movs r0, 0x1
negs r0, r0
cmp r5, r0
beq _08130604
b _0813063E
_08130576:
cmp r5, 0x1
beq _08130604
b _0813063E
_0813057C:
movs r0, 0x5
bl PlaySE
ldr r1, _081305B0 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r6, r0, r1
movs r0, 0x28
strh r0, [r6, 0xE]
ldr r7, _081305B4 @ =gUnknown_203B108
ldr r0, [r7]
ldrh r0, [r0, 0x10]
cmp r0, 0
bne _081305BC
movs r0, 0
movs r1, 0x1
bl sub_80F6F54
adds r0, r4, 0
movs r1, 0x2
bl sub_813144C
ldr r0, _081305B8 @ =sub_8130650
str r0, [r6]
b _0813063E
.align 2, 0
_081305B0: .4byte gTasks
_081305B4: .4byte gUnknown_203B108
_081305B8: .4byte sub_8130650
_081305BC:
ldr r4, _081305F8 @ =gStringVar4
ldr r1, _081305FC @ =gUnknown_81C5EC5
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0
movs r1, 0
bl sub_80F6EE4
ldr r0, [r7]
ldrb r3, [r0, 0x1F]
str r5, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
adds r2, r4, 0
bl AddTextPrinterParametrized
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
ldr r0, _08130600 @ =sub_8130694
str r0, [r6]
b _0813063E
.align 2, 0
_081305F8: .4byte gStringVar4
_081305FC: .4byte gUnknown_81C5EC5
_08130600: .4byte sub_8130694
_08130604:
movs r0, 0x5
bl PlaySE
ldr r0, _08130624 @ =gUnknown_203B108
ldr r0, [r0]
ldrh r0, [r0, 0x10]
cmp r0, 0
bne _08130630
ldr r0, _08130628 @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _0813062C @ =sub_8130160
b _0813063C
.align 2, 0
_08130624: .4byte gUnknown_203B108
_08130628: .4byte gTasks
_0813062C: .4byte sub_8130160
_08130630:
ldr r0, _08130648 @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _0813064C @ =sub_8130228
_0813063C:
str r0, [r1]
_0813063E:
add sp, 0x10
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08130648: .4byte gTasks
_0813064C: .4byte sub_8130228
thumb_func_end sub_8130554
thumb_func_start sub_8130650
sub_8130650: @ 8130650
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r5, r1, 3
ldr r6, _0813067C @ =gTasks+0x8
adds r4, r5, r6
movs r1, 0x4
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0813068A
bl sub_8131310
ldrh r1, [r4, 0x6]
movs r2, 0x6
ldrsh r0, [r4, r2]
cmp r0, 0
beq _08130680
subs r0, r1, 0x1
strh r0, [r4, 0x6]
b _0813068A
.align 2, 0
_0813067C: .4byte gTasks+0x8
_08130680:
adds r0, r6, 0
subs r0, 0x8
adds r0, r5, r0
ldr r1, _08130690 @ =sub_81306D4
str r1, [r0]
_0813068A:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08130690: .4byte sub_81306D4
thumb_func_end sub_8130650
thumb_func_start sub_8130694
sub_8130694: @ 8130694
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0
bl IsTextPrinterActive
lsls r0, 16
cmp r0, 0
bne _081306C4
movs r0, 0
movs r1, 0x1
bl sub_80F6F54
adds r0, r4, 0
movs r1, 0x2
bl sub_813144C
ldr r0, _081306CC @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _081306D0 @ =sub_81307D0
str r0, [r1]
_081306C4:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081306CC: .4byte gTasks
_081306D0: .4byte sub_81307D0
thumb_func_end sub_8130694
thumb_func_start sub_81306D4
sub_81306D4: @ 81306D4
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgX
ldr r0, _08130710 @ =gTasks
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
adds r4, r0
movs r1, 0
strh r1, [r4, 0xA]
ldr r0, _08130714 @ =gSpriteCoordOffsetX
strh r1, [r0]
movs r0, 0x2
bl sub_81311F4
adds r0, r5, 0
movs r1, 0x2
bl sub_81315CC
ldr r0, _08130718 @ =sub_813071C
str r0, [r4]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08130710: .4byte gTasks
_08130714: .4byte gSpriteCoordOffsetX
_08130718: .4byte sub_813071C
thumb_func_end sub_81306D4
thumb_func_start sub_813071C
sub_813071C: @ 813071C
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, _08130770 @ =gTasks+0x8
adds r0, r1
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
beq _081307BC
movs r0, 0
movs r1, 0
bl sub_80F6EE4
ldr r2, _08130774 @ =gUnknown_81C5E2E
ldr r4, _08130778 @ =gStringVar4
cmp r2, r4
beq _08130780
adds r0, r4, 0
adds r1, r2, 0
bl StringExpandPlaceholders
ldr r0, _0813077C @ =gUnknown_203B108
ldr r0, [r0]
ldrb r3, [r0, 0x1F]
movs r0, 0
str r0, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
adds r2, r4, 0
bl AddTextPrinterParametrized
b _0813079E
.align 2, 0
_08130770: .4byte gTasks+0x8
_08130774: .4byte gUnknown_81C5E2E
_08130778: .4byte gStringVar4
_0813077C: .4byte gUnknown_203B108
_08130780:
ldr r0, _081307C4 @ =gUnknown_203B108
ldr r0, [r0]
ldrb r3, [r0, 0x1F]
movs r0, 0
str r0, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
bl AddTextPrinterParametrized
_0813079E:
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
ldr r0, _081307C4 @ =gUnknown_203B108
ldr r1, [r0]
movs r0, 0x1
strh r0, [r1, 0x10]
ldr r1, _081307C8 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, _081307CC @ =sub_81301B0
str r1, [r0]
_081307BC:
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_081307C4: .4byte gUnknown_203B108
_081307C8: .4byte gTasks
_081307CC: .4byte sub_81301B0
thumb_func_end sub_813071C
thumb_func_start sub_81307D0
sub_81307D0: @ 81307D0
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, _081307FC @ =gTasks+0x8
adds r4, r0, r1
movs r1, 0x4
ldrsh r0, [r4, r1]
cmp r0, 0
beq _08130846
bl sub_8131310
ldrh r1, [r4, 0x6]
movs r2, 0x6
ldrsh r0, [r4, r2]
cmp r0, 0
beq _08130800
subs r0, r1, 0x1
strh r0, [r4, 0x6]
b _08130846
.align 2, 0
_081307FC: .4byte gTasks+0x8
_08130800:
ldr r0, _08130814 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0
bne _08130818
movs r0, 0
movs r1, 0
bl sub_81311F4
b _08130820
.align 2, 0
_08130814: .4byte gSaveBlock2Ptr
_08130818:
movs r0, 0x1
movs r1, 0
bl sub_81311F4
_08130820:
ldr r0, _0813084C @ =gTasks
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
adds r4, r0
movs r1, 0
strh r1, [r4, 0xA]
ldr r0, _08130850 @ =gSpriteCoordOffsetX
strh r1, [r0]
movs r0, 0x2
movs r2, 0
bl ChangeBgX
adds r0, r5, 0
movs r1, 0x2
bl sub_81315CC
ldr r0, _08130854 @ =sub_8130858
str r0, [r4]
_08130846:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0813084C: .4byte gTasks
_08130850: .4byte gSpriteCoordOffsetX
_08130854: .4byte sub_8130858
thumb_func_end sub_81307D0
thumb_func_start sub_8130858
sub_8130858: @ 8130858
push {r4,r5,lr}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
ldr r2, _081308BC @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r5, r1, r2
movs r1, 0xC
ldrsh r0, [r5, r1]
cmp r0, 0
beq _081308B4
ldr r4, _081308C0 @ =gStringVar4
ldr r1, _081308C4 @ =gUnknown_81C5EF4
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0
movs r1, 0
bl sub_80F6EE4
ldr r0, _081308C8 @ =gUnknown_203B108
ldr r0, [r0]
ldrb r3, [r0, 0x1F]
movs r0, 0
str r0, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
adds r2, r4, 0
bl AddTextPrinterParametrized
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
movs r0, 0x1E
strh r0, [r5, 0xE]
ldr r0, _081308CC @ =sub_81308D0
str r0, [r5]
_081308B4:
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_081308BC: .4byte gTasks
_081308C0: .4byte gStringVar4
_081308C4: .4byte gUnknown_81C5EF4
_081308C8: .4byte gUnknown_203B108
_081308CC: .4byte sub_81308D0
thumb_func_end sub_8130858
thumb_func_start sub_81308D0
sub_81308D0: @ 81308D0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0
bl IsTextPrinterActive
lsls r0, 16
cmp r0, 0
bne _0813090A
ldr r0, _081308FC @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r4, r1, r0
ldrh r1, [r4, 0xE]
movs r2, 0xE
ldrsh r0, [r4, r2]
cmp r0, 0
beq _08130900
subs r0, r1, 0x1
strh r0, [r4, 0xE]
b _0813090A
.align 2, 0
_081308FC: .4byte gTasks
_08130900:
movs r0, 0x4
bl FadeOutBGM
ldr r0, _08130910 @ =sub_8130914
str r0, [r4]
_0813090A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08130910: .4byte sub_8130914
thumb_func_end sub_81308D0
thumb_func_start sub_8130914
sub_8130914: @ 8130914
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _0813093C @ =gUnknown_203B108
ldr r1, [r0]
movs r0, 0
strh r0, [r1, 0x12]
adds r0, r4, 0
bl sub_8130A38
adds r0, r4, 0
bl sub_8130ADC
adds r0, r4, 0
bl sub_8130940
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0813093C: .4byte gUnknown_203B108
thumb_func_end sub_8130914
thumb_func_start sub_8130940
sub_8130940: @ 8130940
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r6, _08130978 @ =gTasks+0x8
adds r5, r4, r6
movs r0, 0x2
movs r1, 0x6
movs r2, 0x1
bl SetBgAttribute
movs r1, 0
strh r1, [r5]
strh r1, [r5, 0x2]
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
strh r0, [r5, 0x4]
strh r1, [r5, 0x1E]
subs r6, 0x8
adds r4, r6
ldr r0, _0813097C @ =sub_8130980
str r0, [r4]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08130978: .4byte gTasks+0x8
_0813097C: .4byte sub_8130980
thumb_func_end sub_8130940
thumb_func_start sub_8130980
sub_8130980: @ 8130980
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r7, r1, 3
ldr r0, _08130A2C @ =gTasks+0x8
mov r8, r0
adds r5, r7, r0
ldr r0, _08130A30 @ =gUnknown_203B108
ldr r1, [r0]
ldrh r0, [r1, 0x12]
adds r0, 0x1
strh r0, [r1, 0x12]
ldrh r4, [r1, 0x12]
adds r0, r4, 0
movs r1, 0x14
bl __umodsi3
lsls r0, 16
lsrs r6, r0, 16
cmp r6, 0
bne _08130A1E
cmp r4, 0x28
bne _081309BE
movs r0, 0x27
bl PlaySE
_081309BE:
ldrh r0, [r5, 0x4]
adds r1, r0, 0
subs r1, 0x20
strh r1, [r5, 0x4]
subs r0, 0x8
lsls r0, 16
asrs r0, 16
bl sub_80D8B90
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldrh r0, [r5, 0x4]
subs r0, 0x10
lsls r0, 16
asrs r0, 16
bl sub_80D8B90
movs r1, 0xF0
lsls r1, 7
movs r2, 0xA8
lsls r2, 7
movs r3, 0x54
str r3, [sp]
lsls r4, 16
asrs r4, 16
str r4, [sp, 0x4]
lsls r0, 16
asrs r0, 16
str r0, [sp, 0x8]
str r6, [sp, 0xC]
movs r0, 0x2
movs r3, 0x78
bl SetBgAffine
movs r1, 0x4
ldrsh r0, [r5, r1]
cmp r0, 0x60
bgt _08130A1E
movs r0, 0x1
strh r0, [r5, 0x1E]
movs r0, 0x24
strh r0, [r5]
mov r0, r8
subs r0, 0x8
adds r0, r7, r0
ldr r1, _08130A34 @ =sub_8130BA8
str r1, [r0]
_08130A1E:
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08130A2C: .4byte gTasks+0x8
_08130A30: .4byte gUnknown_203B108
_08130A34: .4byte sub_8130BA8
thumb_func_end sub_8130980
thumb_func_start sub_8130A38
sub_8130A38: @ 8130A38
push {lr}
sub sp, 0x4
ldr r0, _08130A74 @ =sub_8130A80
movs r1, 0x1
bl CreateTask
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _08130A78 @ =gTasks+0x8
adds r1, r0
movs r0, 0
strh r0, [r1]
strh r0, [r1, 0x2]
strh r0, [r1, 0x4]
strh r0, [r1, 0x1E]
ldr r0, _08130A7C @ =0xffff0fcf
movs r1, 0
str r1, [sp]
movs r1, 0x4
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08130A74: .4byte sub_8130A80
_08130A78: .4byte gTasks+0x8
_08130A7C: .4byte 0xffff0fcf
thumb_func_end sub_8130A38
thumb_func_start sub_8130A80
sub_8130A80: @ 8130A80
push {r4,lr}
sub sp, 0x4
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, _08130AB8 @ =gTasks+0x8
adds r2, r0, r1
ldr r0, _08130ABC @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08130AD4
ldrh r0, [r2, 0x2]
movs r3, 0x2
ldrsh r1, [r2, r3]
cmp r1, 0
beq _08130AC0
adds r0, r4, 0
bl DestroyTask
adds r0, r4, 0
movs r1, 0x1
bl sub_8131168
b _08130AD4
.align 2, 0
_08130AB8: .4byte gTasks+0x8
_08130ABC: .4byte gPaletteFade
_08130AC0:
adds r0, 0x1
strh r0, [r2, 0x2]
movs r0, 0xF0
lsls r0, 8
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
_08130AD4:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8130A80
thumb_func_start sub_8130ADC
sub_8130ADC: @ 8130ADC
push {lr}
ldr r0, _08130B08 @ =sub_8130B10
movs r1, 0x2
bl CreateTask
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _08130B0C @ =gTasks+0x8
adds r1, r0
movs r2, 0x8
strh r2, [r1]
movs r0, 0
strh r0, [r1, 0x2]
strh r2, [r1, 0x4]
strh r0, [r1, 0x1C]
strh r0, [r1, 0x1E]
pop {r0}
bx r0
.align 2, 0
_08130B08: .4byte sub_8130B10
_08130B0C: .4byte gTasks+0x8
thumb_func_end sub_8130ADC
thumb_func_start sub_8130B10
sub_8130B10: @ 8130B10
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, _08130B30 @ =gTasks+0x8
adds r4, r0, r1
ldrh r1, [r4]
movs r2, 0
ldrsh r0, [r4, r2]
cmp r0, 0
beq _08130B34
subs r0, r1, 0x1
strh r0, [r4]
b _08130B96
.align 2, 0
_08130B30: .4byte gTasks+0x8
_08130B34:
movs r1, 0x2
ldrsh r0, [r4, r1]
cmp r0, 0
bgt _08130B4A
ldrh r1, [r4, 0x4]
movs r2, 0x4
ldrsh r0, [r4, r2]
cmp r0, 0
beq _08130B4A
subs r0, r1, 0x1
strh r0, [r4, 0x4]
_08130B4A:
ldrb r2, [r4, 0x1C]
ldr r7, _08130B9C @ =0x00007fff
movs r0, 0x40
movs r1, 0x20
adds r3, r7, 0
bl BlendPalette
ldrh r1, [r4, 0x1C]
adds r1, 0x1
strh r1, [r4, 0x1C]
ldrh r0, [r4, 0x2]
subs r0, 0x1
strh r0, [r4, 0x2]
ldrh r0, [r4, 0x4]
strh r0, [r4]
lsls r1, 16
asrs r1, 16
cmp r1, 0xE
ble _08130B96
movs r2, 0
ldr r6, _08130BA0 @ =gPlttBufferFaded
adds r3, r7, 0
ldr r4, _08130BA4 @ =gPlttBufferUnfaded
_08130B78:
adds r0, r2, 0
adds r0, 0x40
lsls r0, 1
adds r1, r0, r6
strh r3, [r1]
adds r0, r4
strh r3, [r0]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x1F
bls _08130B78
adds r0, r5, 0
bl DestroyTask
_08130B96:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08130B9C: .4byte 0x00007fff
_08130BA0: .4byte gPlttBufferFaded
_08130BA4: .4byte gPlttBufferUnfaded
thumb_func_end sub_8130B10
thumb_func_start sub_8130BA8
sub_8130BA8: @ 8130BA8
push {r4,lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
ldr r2, _08130BCC @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
ldrh r0, [r4, 0x8]
movs r2, 0x8
ldrsh r1, [r4, r2]
cmp r1, 0
beq _08130BD0
subs r0, 0x1
strh r0, [r4, 0x8]
b _08130BE2
.align 2, 0
_08130BCC: .4byte gTasks
_08130BD0:
str r1, [sp]
movs r0, 0x30
movs r1, 0x2
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, _08130BEC @ =sub_8130BF0
str r0, [r4]
_08130BE2:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08130BEC: .4byte sub_8130BF0
thumb_func_end sub_8130BA8
thumb_func_start sub_8130BF0
sub_8130BF0: @ 8130BF0
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, _08130C14 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08130C10
ldr r0, _08130C18 @ =gTasks
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r1, r0
ldr r0, _08130C1C @ =sub_8130C20
str r0, [r1]
_08130C10:
pop {r0}
bx r0
.align 2, 0
_08130C14: .4byte gPaletteFade
_08130C18: .4byte gTasks
_08130C1C: .4byte sub_8130C20
thumb_func_end sub_8130BF0
thumb_func_start sub_8130C20
sub_8130C20: @ 8130C20
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl FreeAllWindowBuffers
bl sub_8044D80
ldr r5, _08130C58 @ =gUnknown_203B108
ldr r0, [r5]
bl Free
movs r0, 0
str r0, [r5]
ldr r2, _08130C5C @ =gTextFlags
ldrb r1, [r2]
subs r0, 0x2
ands r0, r1
strb r0, [r2]
ldr r0, _08130C60 @ =CB2_NewGame
bl SetMainCallback2
adds r0, r4, 0
bl DestroyTask
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08130C58: .4byte gUnknown_203B108
_08130C5C: .4byte gTextFlags
_08130C60: .4byte CB2_NewGame
thumb_func_end sub_8130C20
thumb_func_start sub_8130C64
sub_8130C64: @ 8130C64
push {r4,r5,lr}
sub sp, 0x10
ldr r0, _08130C84 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x7
bls _08130C78
b _08130F10
_08130C78:
lsls r0, 2
ldr r1, _08130C88 @ =_08130C8C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08130C84: .4byte gMain
_08130C88: .4byte _08130C8C
.align 2, 0
_08130C8C:
.4byte _08130CAC
.4byte _08130D18
.4byte _08130D78
.4byte _08130DB2
.4byte _08130DD0
.4byte _08130DE8
.4byte _08130E38
.4byte _08130EB8
_08130CAC:
movs r0, 0
bl SetVBlankCallback
add r1, sp, 0x8
movs r0, 0
strh r0, [r1]
ldr r1, _08130D04 @ =0x040000d4
add r0, sp, 0x8
str r0, [r1]
movs r0, 0xC0
lsls r0, 19
str r0, [r1, 0x4]
ldr r0, _08130D08 @ =0x8100c000
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
movs r2, 0
str r2, [sp, 0xC]
add r0, sp, 0xC
str r0, [r1]
movs r0, 0xE0
lsls r0, 19
str r0, [r1, 0x4]
ldr r0, _08130D0C @ =0x85000100
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
add r0, sp, 0x8
strh r2, [r0]
str r0, [r1]
ldr r0, _08130D10 @ =0x05000002
str r0, [r1, 0x4]
ldr r0, _08130D14 @ =0x810001ff
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
bl ResetPaletteFade
bl remove_some_task
bl ResetSpriteData
bl FreeAllSpritePalettes
bl reset_temp_tile_data_buffers
b _08130F10
.align 2, 0
_08130D04: .4byte 0x040000d4
_08130D08: .4byte 0x8100c000
_08130D0C: .4byte 0x85000100
_08130D10: .4byte 0x05000002
_08130D14: .4byte 0x810001ff
_08130D18:
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08130D70 @ =gUnknown_8462E58
movs r0, 0x1
movs r2, 0x3
bl InitBgsFromTemplates
ldr r4, _08130D74 @ =gUnknown_203B108
ldr r1, [r4]
movs r0, 0xE1
lsls r0, 5
adds r1, r0
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, [r4]
movs r0, 0xC1
lsls r0, 5
adds r1, r0
movs r0, 0x2
bl SetBgTilemapBuffer
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
b _08130F10
.align 2, 0
_08130D70: .4byte gUnknown_8462E58
_08130D74: .4byte gUnknown_203B108
_08130D78:
movs r0, 0x40
movs r1, 0
bl SetGpuReg
movs r0, 0x44
movs r1, 0
bl SetGpuReg
movs r0, 0x48
movs r1, 0
bl SetGpuReg
movs r0, 0x4A
movs r1, 0
bl SetGpuReg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
movs r0, 0x54
movs r1, 0
bl SetGpuReg
b _08130F10
_08130DB2:
bl FreeAllWindowBuffers
bl sub_80F6C6C
bl sub_80F6C98
ldr r0, _08130DCC @ =gUnknown_8460568
movs r1, 0
movs r2, 0xE0
bl LoadPalette
b _08130F10
.align 2, 0
_08130DCC: .4byte gUnknown_8460568
_08130DD0:
ldr r1, _08130DE4 @ =gUnknown_8460CA4
movs r0, 0
str r0, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
b _08130F10
.align 2, 0
_08130DE4: .4byte gUnknown_8460CA4
_08130DE8:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
beq _08130DF4
b _08130F1E
_08130DF4:
movs r5, 0x1E
str r5, [sp]
movs r4, 0x14
str r4, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
ldr r1, _08130E34 @ =gUnknown_8460CE8
movs r0, 0x1
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0x2
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
b _08130F10
.align 2, 0
_08130E34: .4byte gUnknown_8460CE8
_08130E38:
ldr r0, _08130E5C @ =sub_8130464
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r5, r0, 24
ldr r0, _08130E60 @ =gUnknown_203B108
ldr r0, [r0]
ldrh r0, [r0, 0x10]
cmp r0, 0
bne _08130E72
ldr r0, _08130E64 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0
bne _08130E68
movs r0, 0
b _08130E6A
.align 2, 0
_08130E5C: .4byte sub_8130464
_08130E60: .4byte gUnknown_203B108
_08130E64: .4byte gSaveBlock2Ptr
_08130E68:
movs r0, 0x1
_08130E6A:
movs r1, 0
bl sub_81311F4
b _08130E7A
_08130E72:
movs r0, 0x2
movs r1, 0
bl sub_81311F4
_08130E7A:
ldr r0, _08130EA8 @ =gTasks
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
adds r4, r0
ldr r0, _08130EAC @ =0x0000ffc4
strh r0, [r4, 0xA]
ldr r1, _08130EB0 @ =gSpriteCoordOffsetX
ldrh r0, [r1]
adds r0, 0x3C
strh r0, [r1]
ldr r1, _08130EB4 @ =0xffffc400
movs r0, 0x2
movs r2, 0
bl ChangeBgX
adds r0, r5, 0
movs r1, 0x1
bl sub_8130FD4
movs r0, 0x1
strh r0, [r4, 0x26]
b _08130F10
.align 2, 0
_08130EA8: .4byte gTasks
_08130EAC: .4byte 0x0000ffc4
_08130EB0: .4byte gSpriteCoordOffsetX
_08130EB4: .4byte 0xffffc400
_08130EB8:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
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, 0x1
bl EnableInterrupts
ldr r0, _08130F04 @ =sub_812EAFC
bl SetVBlankCallback
ldr r2, _08130F08 @ =gTextFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
ldr r0, _08130F0C @ =sub_812EB10
bl SetMainCallback2
b _08130F1E
.align 2, 0
_08130F04: .4byte sub_812EAFC
_08130F08: .4byte gTextFlags
_08130F0C: .4byte sub_812EB10
_08130F10:
ldr r1, _08130F28 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
_08130F1E:
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08130F28: .4byte gMain
thumb_func_end sub_8130C64
thumb_func_start sub_8130F2C
sub_8130F2C: @ 8130F2C
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r4, _08130FA0 @ =gUnknown_8235194
movs r0, 0
bl sub_8044E00
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x1D
bl DecompressPicFromTable
ldr r0, _08130FA4 @ =gUnknown_82373F4
bl sub_800F078
movs r0, 0x1D
movs r1, 0
bl sub_803F7D4
ldr r0, _08130FA8 @ =gMultiuseSpriteTemplate
movs r1, 0x60
movs r2, 0x60
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r4, _08130FAC @ =gSprites
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r1, r4, 0
adds r1, 0x1C
adds r1, r2, r1
ldr r3, _08130FB0 @ =SpriteCallbackDummy
str r3, [r1]
adds r2, r4
ldrb r3, [r2, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r3
movs r3, 0x4
orrs r1, r3
strb r1, [r2, 0x5]
adds r2, 0x3E
ldrb r1, [r2]
orrs r1, r3
strb r1, [r2]
ldr r2, _08130FB4 @ =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r2
strh r0, [r1, 0x10]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08130FA0: .4byte gUnknown_8235194
_08130FA4: .4byte gUnknown_82373F4
_08130FA8: .4byte gMultiuseSpriteTemplate
_08130FAC: .4byte gSprites
_08130FB0: .4byte SpriteCallbackDummy
_08130FB4: .4byte gTasks
thumb_func_end sub_8130F2C
thumb_func_start sub_8130FB8
sub_8130FB8: @ 8130FB8
ldr r3, _08130FD0 @ =gSprites
movs r1, 0x2E
ldrsh r2, [r0, r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r3
adds r1, 0x2B
ldrb r1, [r1]
strh r1, [r0, 0x26]
bx lr
.align 2, 0
_08130FD0: .4byte gSprites
thumb_func_end sub_8130FB8
thumb_func_start sub_8130FD4
sub_8130FD4: @ 8130FD4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r0, 24
mov r9, r0
lsls r1, 24
lsrs r1, 24
movs r4, 0
cmp r1, 0
beq _08130FF4
cmp r1, 0x1
beq _081310C8
b _08131146
_08130FF4:
ldr r4, _081310B0 @ =gUnknown_8462EFC
adds r0, r4, 0
bl LoadCompressedObjectPic
adds r0, r4, 0
adds r0, 0x8
bl LoadCompressedObjectPic
adds r4, 0x10
adds r0, r4, 0
bl LoadCompressedObjectPic
ldr r0, _081310B4 @ =gUnknown_8462F1C
bl LoadSpritePalette
ldr r0, _081310B8 @ =gUnknown_846302C
mov r8, r0
movs r1, 0x10
movs r2, 0x11
movs r3, 0x2
bl CreateSprite
lsls r0, 24
lsrs r7, r0, 24
ldr r6, _081310BC @ =gSprites
lsls r1, r7, 4
adds r1, r7
lsls r1, 2
adds r1, r6
ldrb r2, [r1, 0x5]
movs r5, 0xD
negs r5, r5
adds r0, r5, 0
ands r0, r2
strb r0, [r1, 0x5]
ldr r0, _081310C0 @ =gTasks
mov r1, r9
lsls r4, r1, 2
add r4, r9
lsls r4, 3
adds r4, r0
strh r7, [r4, 0x16]
mov r0, r8
adds r0, 0x18
movs r1, 0x10
movs r2, 0x9
movs r3, 0x3
bl CreateSprite
lsls r0, 24
lsrs r7, r0, 24
lsls r1, r7, 4
adds r1, r7
lsls r1, 2
adds r2, r1, r6
ldrb r3, [r2, 0x5]
adds r0, r5, 0
ands r0, r3
strb r0, [r2, 0x5]
ldrh r0, [r4, 0x16]
strh r0, [r2, 0x2E]
movs r2, 0x1C
adds r2, r6
mov r10, r2
add r1, r10
ldr r3, _081310C4 @ =sub_8130FB8
mov r9, r3
str r3, [r1]
strh r7, [r4, 0x18]
movs r0, 0x30
add r8, r0
mov r0, r8
movs r1, 0x18
movs r2, 0xD
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r7, r0, 24
lsls r0, r7, 4
adds r0, r7
lsls r0, 2
adds r6, r0, r6
ldrb r1, [r6, 0x5]
ands r5, r1
strb r5, [r6, 0x5]
ldrh r1, [r4, 0x16]
strh r1, [r6, 0x2E]
add r0, r10
mov r1, r9
str r1, [r0]
strh r7, [r4, 0x1A]
b _08131146
.align 2, 0
_081310B0: .4byte gUnknown_8462EFC
_081310B4: .4byte gUnknown_8462F1C
_081310B8: .4byte gUnknown_846302C
_081310BC: .4byte gSprites
_081310C0: .4byte gTasks
_081310C4: .4byte sub_8130FB8
_081310C8:
ldr r0, _08131154 @ =gUnknown_8462F14
bl LoadCompressedObjectPic
ldr r0, _08131158 @ =gUnknown_8462F24
bl LoadSpritePalette
mov r2, r9
lsls r5, r2, 2
ldr r3, _0813115C @ =gTasks+0x8
mov r8, r3
ldr r6, _08131160 @ =gSprites
_081310DE:
lsls r0, r4, 1
adds r0, r4
lsls r0, 3
ldr r1, _08131164 @ =gUnknown_8462F50
adds r0, r1
lsls r1, r4, 21
movs r2, 0xB0
lsls r2, 15
adds r1, r2
asrs r1, 16
movs r2, 0x70
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r7, r0, 24
lsls r2, r7, 4
adds r2, r7
lsls r2, 2
adds r2, r6
ldrb r1, [r2, 0x5]
movs r3, 0xD
negs r3, r3
adds r0, r3, 0
ands r1, r0
movs r0, 0x8
orrs r1, r0
strb r1, [r2, 0x5]
adds r3, r2, 0
adds r3, 0x2C
ldrb r0, [r3]
movs r1, 0x40
orrs r0, r1
strb r0, [r3]
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x2
orrs r0, r1
strb r0, [r2]
adds r1, r4, 0x7
lsls r1, 1
mov r2, r9
adds r0, r5, r2
lsls r0, 3
adds r1, r0
add r1, r8
strh r7, [r1]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x2
bls _081310DE
_08131146:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08131154: .4byte gUnknown_8462F14
_08131158: .4byte gUnknown_8462F24
_0813115C: .4byte gTasks+0x8
_08131160: .4byte gSprites
_08131164: .4byte gUnknown_8462F50
thumb_func_end sub_8130FD4
thumb_func_start sub_8131168
sub_8131168: @ 8131168
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r6, r1, 24
movs r4, 0
lsls r1, r0, 2
adds r1, r0
lsls r5, r1, 3
ldr r7, _081311AC @ =gTasks+0x8
_0813117C:
adds r0, r4, 0x7
lsls r0, 1
adds r0, r5
adds r0, r7
movs r2, 0
ldrsh r1, [r0, r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _081311B0 @ =gSprites
adds r0, r1
bl DestroySprite
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x2
bls _0813117C
cmp r6, 0
beq _081311B4
cmp r6, 0x1
beq _081311DC
b _081311EC
.align 2, 0
_081311AC: .4byte gTasks+0x8
_081311B0: .4byte gSprites
_081311B4:
ldr r0, _081311D0 @ =0x00001003
bl FreeSpriteTilesByTag
ldr r0, _081311D4 @ =0x00001002
bl FreeSpriteTilesByTag
ldr r4, _081311D8 @ =0x00001001
adds r0, r4, 0
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
b _081311EC
.align 2, 0
_081311D0: .4byte 0x00001003
_081311D4: .4byte 0x00001002
_081311D8: .4byte 0x00001001
_081311DC:
movs r4, 0x80
lsls r4, 5
adds r0, r4, 0
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
_081311EC:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8131168
thumb_func_start sub_81311F4
sub_81311F4: @ 81311F4
push {r4-r6,lr}
sub sp, 0x24
lsls r0, 16
lsrs r0, 16
adds r2, r0, 0
lsls r1, 16
lsrs r4, r1, 16
cmp r0, 0x1
beq _08131230
cmp r0, 0x1
bgt _08131210
cmp r0, 0
beq _0813121A
b _081312F6
_08131210:
cmp r2, 0x2
beq _08131248
cmp r2, 0x3
beq _0813126C
b _081312F6
_0813121A:
ldr r0, _08131228 @ =gUnknown_84615FC
movs r1, 0x40
movs r2, 0x40
bl LoadPalette
ldr r0, _0813122C @ =gUnknown_846163C
b _08131254
.align 2, 0
_08131228: .4byte gUnknown_84615FC
_0813122C: .4byte gUnknown_846163C
_08131230:
ldr r0, _08131240 @ =gUnknown_8460ED4
movs r1, 0x40
movs r2, 0x40
bl LoadPalette
ldr r0, _08131244 @ =gUnknown_8460F14
b _08131254
.align 2, 0
_08131240: .4byte gUnknown_8460ED4
_08131244: .4byte gUnknown_8460F14
_08131248:
ldr r0, _08131260 @ =gUnknown_84623AC
movs r1, 0x60
movs r2, 0x40
bl LoadPalette
ldr r0, _08131264 @ =gUnknown_84623EC
_08131254:
ldr r2, _08131268 @ =0x06000600
adds r1, r4, r2
bl LZ77UnCompVram
b _08131280
.align 2, 0
_08131260: .4byte gUnknown_84623AC
_08131264: .4byte gUnknown_84623EC
_08131268: .4byte 0x06000600
_0813126C:
ldr r0, _08131300 @ =gUnknown_8461CD4
movs r1, 0x60
movs r2, 0x40
bl LoadPalette
ldr r0, _08131304 @ =gUnknown_8461D14
ldr r2, _08131308 @ =0x06000600
adds r1, r4, r2
bl LZ77UnCompVram
_08131280:
movs r0, 0x60
bl AllocZeroed
ldr r2, _0813130C @ =gUnknown_203B108
ldr r1, [r2]
str r0, [r1, 0x4]
movs r1, 0
lsrs r6, r4, 6
_08131290:
ldr r0, [r2]
ldr r0, [r0, 0x4]
adds r0, r1
strb r1, [r0]
adds r1, 0x1
cmp r1, 0x5F
bls _08131290
movs r0, 0x20
str r0, [sp]
str r0, [sp, 0x4]
movs r5, 0x10
str r5, [sp, 0x8]
movs r0, 0x2
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect
ldr r4, _0813130C @ =gUnknown_203B108
ldr r0, [r4]
ldr r1, [r0, 0x4]
movs r3, 0x8
str r3, [sp]
movs r2, 0xC
str r2, [sp, 0x4]
movs r0, 0xB
str r0, [sp, 0x8]
movs r0, 0x2
str r0, [sp, 0xC]
str r3, [sp, 0x10]
str r2, [sp, 0x14]
str r5, [sp, 0x18]
adds r0, r6, 0
adds r0, 0x18
str r0, [sp, 0x1C]
movs r5, 0
str r5, [sp, 0x20]
movs r0, 0x2
movs r2, 0
movs r3, 0
bl CopyRectToBgTilemapBufferRect
movs r0, 0x2
bl CopyBgTilemapBufferToVram
ldr r0, [r4]
ldr r0, [r0, 0x4]
bl Free
ldr r0, [r4]
str r5, [r0, 0x4]
_081312F6:
add sp, 0x24
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08131300: .4byte gUnknown_8461CD4
_08131304: .4byte gUnknown_8461D14
_08131308: .4byte 0x06000600
_0813130C: .4byte gUnknown_203B108
thumb_func_end sub_81311F4
thumb_func_start sub_8131310
sub_8131310: @ 8131310
push {lr}
sub sp, 0xC
movs r0, 0x8
str r0, [sp]
movs r0, 0xC
str r0, [sp, 0x4]
movs r0, 0x10
str r0, [sp, 0x8]
movs r0, 0x2
movs r1, 0
movs r2, 0xB
movs r3, 0x1
bl FillBgTilemapBufferRect
movs r0, 0x2
bl CopyBgTilemapBufferToVram
add sp, 0xC
pop {r0}
bx r0
thumb_func_end sub_8131310
thumb_func_start sub_8131338
sub_8131338: @ 8131338
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r6, r0, 24
movs r4, 0
ldr r1, _081313A8 @ =gTasks
lsls r0, r6, 2
mov r9, r0
adds r0, r6
lsls r5, r0, 3
adds r2, r5, r1
ldrh r3, [r2, 0xA]
movs r7, 0xA
ldrsh r0, [r2, r7]
mov r8, r1
cmp r0, 0
bne _081313B0
movs r1, 0x8
ldrsh r0, [r2, r1]
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
add r1, r8
movs r0, 0x1
strh r0, [r1, 0xC]
adds r0, r6, 0
bl DestroyTask
ldr r6, _081313AC @ =gSprites
adds r2, r5, 0
mov r5, r8
adds r5, 0x8
movs r3, 0x4
_08131380:
adds r0, r4, 0x7
lsls r0, 1
adds r0, r2
adds r0, r5
movs r7, 0
ldrsh r1, [r0, r7]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
adds r0, 0x3E
ldrb r1, [r0]
orrs r1, r3
strb r1, [r0]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x2
bls _08131380
b _0813143A
.align 2, 0
_081313A8: .4byte gTasks
_081313AC: .4byte gSprites
_081313B0:
ldrh r1, [r2, 0x10]
movs r7, 0x10
ldrsh r0, [r2, r7]
cmp r0, 0
beq _081313C0
subs r0, r1, 0x1
strh r0, [r2, 0x10]
b _0813143A
_081313C0:
ldrh r0, [r2, 0xE]
strh r0, [r2, 0x10]
subs r1, r3, 0x1
strh r1, [r2, 0xA]
ldrh r0, [r2, 0xC]
adds r0, 0x1
strh r0, [r2, 0xC]
lsls r1, 16
asrs r1, 16
mov r12, r9
cmp r1, 0x8
bne _0813141E
adds r7, r5, 0
movs r0, 0x8
add r0, r8
mov r10, r0
movs r5, 0x1
movs r1, 0x5
negs r1, r1
mov r9, r1
_081313E8:
adds r0, r4, 0x7
lsls r0, 1
adds r0, r7
add r0, r10
movs r2, 0
ldrsh r0, [r0, r2]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
ldr r0, _08131448 @ =gSprites
adds r2, r0
adds r2, 0x3E
ldrb r3, [r2]
lsls r1, r3, 29
lsrs r1, 31
eors r1, r5
ands r1, r5
lsls r1, 2
mov r0, r9
ands r0, r3
orrs r0, r1
strb r0, [r2]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x2
bls _081313E8
_0813141E:
mov r1, r12
adds r0, r1, r6
lsls r0, 3
add r0, r8
movs r2, 0xC
ldrsh r1, [r0, r2]
lsls r1, 8
ldrh r0, [r0, 0xA]
adds r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
_0813143A:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08131448: .4byte gSprites
thumb_func_end sub_8131338
thumb_func_start sub_813144C
sub_813144C: @ 813144C
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r4, r0, 0
adds r6, r1, 0
lsls r4, 24
lsrs r4, 24
lsls r6, 24
lsrs r6, 24
movs r7, 0
ldr r1, _081314D0 @ =0x00001244
movs r0, 0x50
bl SetGpuReg
movs r0, 0x52
movs r1, 0x10
bl SetGpuReg
movs r0, 0x54
movs r1, 0
bl SetGpuReg
ldr r0, _081314D4 @ =gTasks
mov r8, r0
lsls r5, r4, 2
adds r5, r4
lsls r5, 3
adds r0, r5, r0
strh r7, [r0, 0xC]
ldr r0, _081314D8 @ =sub_8131338
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
lsls r2, r0, 2
adds r2, r0
lsls r2, 3
mov r1, r8
adds r0, r2, r1
strh r4, [r0, 0x8]
movs r1, 0x10
strh r1, [r0, 0xA]
strh r7, [r0, 0xC]
strh r6, [r0, 0xE]
strh r6, [r0, 0x10]
mov r3, r8
adds r3, 0x8
_081314AC:
adds r0, r7, 0x7
lsls r0, 1
adds r1, r0, r2
adds r1, r3
adds r0, r5
adds r0, r3
ldrh r0, [r0]
strh r0, [r1]
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0x2
bls _081314AC
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_081314D0: .4byte 0x00001244
_081314D4: .4byte gTasks
_081314D8: .4byte sub_8131338
thumb_func_end sub_813144C
thumb_func_start sub_81314DC
sub_81314DC: @ 81314DC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r6, r0, 24
movs r4, 0
ldr r1, _08131528 @ =gTasks
lsls r5, r6, 2
adds r0, r5, r6
lsls r0, 3
mov r9, r0
adds r2, r0, r1
ldrh r3, [r2, 0xA]
movs r7, 0xA
ldrsh r0, [r2, r7]
mov r12, r1
cmp r0, 0x10
bne _08131530
ldr r0, _0813152C @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081315BA
movs r1, 0x8
ldrsh r0, [r2, r1]
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
add r1, r12
movs r0, 0x1
strh r0, [r1, 0xC]
adds r0, r6, 0
bl DestroyTask
b _081315BA
.align 2, 0
_08131528: .4byte gTasks
_0813152C: .4byte gPaletteFade
_08131530:
ldrh r1, [r2, 0x10]
movs r7, 0x10
ldrsh r0, [r2, r7]
cmp r0, 0
beq _08131540
subs r0, r1, 0x1
strh r0, [r2, 0x10]
b _081315BA
_08131540:
ldrh r0, [r2, 0xE]
strh r0, [r2, 0x10]
adds r1, r3, 0x2
strh r1, [r2, 0xA]
ldrh r0, [r2, 0xC]
subs r0, 0x2
strh r0, [r2, 0xC]
lsls r1, 16
asrs r1, 16
mov r8, r5
cmp r1, 0x8
bne _0813159E
mov r7, r9
movs r0, 0x8
add r0, r12
mov r10, r0
movs r5, 0x1
movs r1, 0x5
negs r1, r1
mov r9, r1
_08131568:
adds r0, r4, 0x7
lsls r0, 1
adds r0, r7
add r0, r10
movs r2, 0
ldrsh r0, [r0, r2]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
ldr r0, _081315C8 @ =gSprites
adds r2, r0
adds r2, 0x3E
ldrb r3, [r2]
lsls r1, r3, 29
lsrs r1, 31
eors r1, r5
ands r1, r5
lsls r1, 2
mov r0, r9
ands r0, r3
orrs r0, r1
strb r0, [r2]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x2
bls _08131568
_0813159E:
mov r1, r8
adds r0, r1, r6
lsls r0, 3
add r0, r12
movs r2, 0xC
ldrsh r1, [r0, r2]
lsls r1, 8
ldrh r0, [r0, 0xA]
adds r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
_081315BA:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_081315C8: .4byte gSprites
thumb_func_end sub_81314DC
thumb_func_start sub_81315CC
sub_81315CC: @ 81315CC
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r4, r0, 0
adds r6, r1, 0
lsls r4, 24
lsrs r4, 24
lsls r6, 24
lsrs r6, 24
movs r7, 0
ldr r1, _08131654 @ =0x00001244
movs r0, 0x50
bl SetGpuReg
movs r1, 0x80
lsls r1, 5
movs r0, 0x52
bl SetGpuReg
movs r0, 0x54
movs r1, 0
bl SetGpuReg
ldr r0, _08131658 @ =gTasks
mov r8, r0
lsls r5, r4, 2
adds r5, r4
lsls r5, 3
adds r0, r5, r0
strh r7, [r0, 0xC]
ldr r0, _0813165C @ =sub_81314DC
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
lsls r2, r0, 2
adds r2, r0
lsls r2, 3
mov r1, r8
adds r0, r2, r1
strh r4, [r0, 0x8]
strh r7, [r0, 0xA]
movs r1, 0x10
strh r1, [r0, 0xC]
strh r6, [r0, 0xE]
strh r6, [r0, 0x10]
mov r3, r8
adds r3, 0x8
_0813162E:
adds r0, r7, 0x7
lsls r0, 1
adds r1, r0, r2
adds r1, r3
adds r0, r5
adds r0, r3
ldrh r0, [r0]
strh r0, [r1]
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0x2
bls _0813162E
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08131654: .4byte 0x00001244
_08131658: .4byte gTasks
_0813165C: .4byte sub_81314DC
thumb_func_end sub_81315CC
thumb_func_start sub_8131660
sub_8131660: @ 8131660
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0xC
mov r8, r1
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
mov r8, r1
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r5, _081316DC @ =gTasks+0x8
adds r7, r4, r5
ldr r0, _081316E0 @ =gUnknown_8462ED8
bl AddWindow
strh r0, [r7, 0x1A]
lsls r0, 24
lsrs r0, 24
bl PutWindowTilemap
ldrb r6, [r7, 0x1A]
bl sub_80F796C
adds r2, r0, 0
lsls r2, 16
lsrs r2, 16
adds r0, r6, 0
movs r1, 0x1
movs r3, 0xE
bl SetWindowBorderStyle
adds r5, r4
ldrb r0, [r5, 0x1A]
movs r1, 0x11
bl FillWindowPixelBuffer
ldrb r0, [r7, 0x1A]
ldr r2, _081316E4 @ =gUnknown_81C574F
movs r1, 0x1
str r1, [sp]
movs r1, 0
str r1, [sp, 0x4]
str r1, [sp, 0x8]
movs r1, 0x2
movs r3, 0x8
bl AddTextPrinterParameterized
mov r0, r8
cmp r0, 0
bne _081316F4
ldr r0, _081316E8 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
ldr r6, _081316EC @ =gUnknown_84630D8
cmp r0, 0
bne _081316F6
ldr r6, _081316F0 @ =gUnknown_846308C
b _081316F6
.align 2, 0
_081316DC: .4byte gTasks+0x8
_081316E0: .4byte gUnknown_8462ED8
_081316E4: .4byte gUnknown_81C574F
_081316E8: .4byte gSaveBlock2Ptr
_081316EC: .4byte gUnknown_84630D8
_081316F0: .4byte gUnknown_846308C
_081316F4:
ldr r6, _08131750 @ =gUnknown_8463124
_081316F6:
movs r4, 0
movs r5, 0
_081316FA:
ldrb r0, [r7, 0x1A]
lsls r1, r4, 2
adds r1, r6
ldr r2, [r1]
adds r4, 0x1
lsls r1, r4, 4
adds r1, 0x1
lsls r1, 24
lsrs r1, 24
str r1, [sp]
str r5, [sp, 0x4]
str r5, [sp, 0x8]
movs r1, 0x2
movs r3, 0x8
bl AddTextPrinterParameterized
lsls r4, 24
lsrs r4, 24
cmp r4, 0x3
bls _081316FA
ldrb r0, [r7, 0x1A]
movs r1, 0x10
str r1, [sp]
movs r1, 0x5
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x2
movs r2, 0
movs r3, 0x1
bl sub_810F7D8
ldrb r0, [r7, 0x1A]
movs r1, 0x3
bl CopyWindowToVram
add sp, 0xC
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08131750: .4byte gUnknown_8463124
thumb_func_end sub_8131660
thumb_func_start sub_8131754
sub_8131754: @ 8131754
push {r4,lr}
lsls r0, 24
lsls r1, 24
lsrs r2, r1, 24
cmp r0, 0
bne _081317A0
ldr r0, _08131770 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0
bne _08131778
ldr r4, _08131774 @ =gUnknown_846308C
b _0813177A
.align 2, 0
_08131770: .4byte gSaveBlock2Ptr
_08131774: .4byte gUnknown_846308C
_08131778:
ldr r4, _08131798 @ =gUnknown_84630D8
_0813177A:
bl Random
lsls r0, 16
lsrs r0, 16
movs r1, 0x13
bl __umodsi3
lsls r0, 16
lsrs r0, 14
adds r0, r4
ldr r3, [r0]
ldr r0, _0813179C @ =gSaveBlock2Ptr
ldr r4, [r0]
b _081317B0
.align 2, 0
_08131798: .4byte gUnknown_84630D8
_0813179C: .4byte gSaveBlock2Ptr
_081317A0:
ldr r1, _081317EC @ =gUnknown_8463124
lsls r0, r2, 2
adds r0, r1
ldr r3, [r0]
ldr r0, _081317F0 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _081317F4 @ =0x00003a4c
adds r4, r0, r1
_081317B0:
movs r2, 0
ldrb r0, [r3]
cmp r0, 0xFF
beq _081317D2
_081317B8:
adds r1, r4, r2
adds r0, r3, r2
ldrb r0, [r0]
strb r0, [r1]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x6
bhi _081317D2
adds r0, r3, r2
ldrb r0, [r0]
cmp r0, 0xFF
bne _081317B8
_081317D2:
cmp r2, 0x7
bhi _081317E6
movs r1, 0xFF
_081317D8:
adds r0, r4, r2
strb r1, [r0]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x7
bls _081317D8
_081317E6:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081317EC: .4byte gUnknown_8463124
_081317F0: .4byte gSaveBlock1Ptr
_081317F4: .4byte 0x00003a4c
thumb_func_end sub_8131754
.align 2, 0 @ Don't pad with nop.