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

4172 lines
69 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_812C380
sub_812C380: @ 812C380
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_812C380
thumb_func_start sub_812C394
sub_812C394: @ 812C394
push {lr}
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_812C394
thumb_func_start sub_812C3AC
sub_812C3AC: @ 812C3AC
push {r4,r5,lr}
adds r5, r0, 0
movs r0, 0
bl SetVBlankCallback
ldr r4, _0812C3F0 @ =gUnknown_203B0FC
movs r0, 0x24
bl AllocZeroed
str r0, [r4]
str r5, [r0]
movs r1, 0
strb r1, [r0, 0x9]
ldr r0, [r4]
strb r1, [r0, 0xA]
ldr r0, [r4]
strb r1, [r0, 0xB]
ldr r1, [r4]
adds r1, 0x23
ldrb r2, [r1]
movs r0, 0x2
negs r0, r0
ands r0, r2
strb r0, [r1]
movs r0, 0xC7
bl PlaySE
ldr r0, _0812C3F4 @ =sub_812C3F8
bl SetMainCallback2
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0812C3F0: .4byte gUnknown_203B0FC
_0812C3F4: .4byte sub_812C3F8
thumb_func_end sub_812C3AC
thumb_func_start sub_812C3F8
sub_812C3F8: @ 812C3F8
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0xC
ldr r0, _0812C41C @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x7
bls _0812C410
b _0812C626
_0812C410:
lsls r0, 2
ldr r1, _0812C420 @ =_0812C424
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0812C41C: .4byte gMain
_0812C420: .4byte _0812C424
.align 2, 0
_0812C424:
.4byte _0812C444
.4byte _0812C450
.4byte _0812C456
.4byte _0812C4C0
.4byte _0812C540
.4byte _0812C578
.4byte _0812C5A0
.4byte _0812C5D4
_0812C444:
movs r0, 0
bl SetVBlankCallback
bl sub_812D420
b _0812C5BE
_0812C450:
bl sub_812D558
b _0812C5BE
_0812C456:
ldr r6, _0812C4B0 @ =gUnknown_203B0F0
movs r4, 0x80
lsls r4, 4
adds r0, r4, 0
bl AllocZeroed
str r0, [r6]
ldr r1, _0812C4B4 @ =gUnknown_203B0F4
mov r8, r1
movs r0, 0x80
lsls r0, 5
bl AllocZeroed
mov r1, r8
str r0, [r1]
ldr r5, _0812C4B8 @ =gUnknown_203B0F8
adds r0, r4, 0
bl AllocZeroed
str r0, [r5]
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0812C4BC @ =gUnknown_845FBF4
movs r0, 0
movs r2, 0x4
bl InitBgsFromTemplates
ldr r1, [r6]
movs r0, 0x3
bl SetBgTilemapBuffer
ldr r1, [r5]
movs r0, 0x2
bl SetBgTilemapBuffer
mov r0, r8
ldr r1, [r0]
movs r0, 0x1
bl SetBgTilemapBuffer
bl sub_812D594
b _0812C5BE
.align 2, 0
_0812C4B0: .4byte gUnknown_203B0F0
_0812C4B4: .4byte gUnknown_203B0F4
_0812C4B8: .4byte gUnknown_203B0F8
_0812C4BC: .4byte gUnknown_845FBF4
_0812C4C0:
ldr r1, _0812C52C @ =gUnknown_8E9F260
movs r2, 0xA5
lsls r2, 5
movs r0, 0x3
movs r3, 0
bl LoadBgTiles
ldr r1, _0812C530 @ =gUnknown_8EA0700
movs r5, 0x20
str r5, [sp]
str r5, [sp, 0x4]
movs r0, 0x3
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBufferRect
ldr r4, _0812C534 @ =gUnknown_8E9F220
adds r0, r4, 0
movs r1, 0
movs r2, 0x40
bl LoadPalette
adds r4, 0x20
adds r0, r4, 0
movs r1, 0x10
movs r2, 0x20
bl LoadPalette
ldr r1, _0812C538 @ =gUnknown_8EA0F00
str r5, [sp]
str r5, [sp, 0x4]
movs r0, 0x2
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBufferRect
ldr r1, _0812C53C @ =gUnknown_845C600
str r5, [sp]
str r5, [sp, 0x4]
movs r0, 0x11
str r0, [sp, 0x8]
movs r0, 0x1
movs r2, 0x1E
movs r3, 0
bl CopyToBgTilemapBufferRect_ChangePalette
movs r0, 0x2
bl stdpal_get
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
b _0812C5BE
.align 2, 0
_0812C52C: .4byte gUnknown_8E9F260
_0812C530: .4byte gUnknown_8EA0700
_0812C534: .4byte gUnknown_8E9F220
_0812C538: .4byte gUnknown_8EA0F00
_0812C53C: .4byte gUnknown_845C600
_0812C540:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0812C626
movs r0, 0
bl ShowBg
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x3
bl ShowBg
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
b _0812C5BE
_0812C578:
ldr r0, _0812C598 @ =gUnknown_845FC04
bl InitWindows
bl DeactivateAllTextPrinters
bl sub_812CEC0
ldr r4, _0812C59C @ =gUnknown_203B100
movs r0, 0x88
bl AllocZeroed
str r0, [r4]
bl sub_812DB28
b _0812C5BE
.align 2, 0
_0812C598: .4byte gUnknown_845FC04
_0812C59C: .4byte gUnknown_203B100
_0812C5A0:
bl sub_812C648
movs r0, 0
bl sub_812D1A8
bl sub_812CE9C
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
_0812C5BE:
ldr r1, _0812C5D0 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _0812C626
.align 2, 0
_0812C5D0: .4byte gMain
_0812C5D4:
bl sub_812D584
movs r1, 0xFD
lsls r1, 6
movs r0, 0x50
bl SetGpuReg
movs r0, 0x52
movs r1, 0x7
bl SetGpuReg
movs r0, 0x54
movs r1, 0x8
bl SetGpuReg
ldr r0, _0812C634 @ =sub_812C380
bl SetVBlankCallback
ldr r0, _0812C638 @ =gUnknown_203B0FC
ldr r1, [r0]
movs r4, 0
movs r0, 0
strh r0, [r1, 0x4]
bl sub_812E000
movs r0, 0x1
movs r1, 0x4
bl sub_812E178
ldr r0, _0812C63C @ =sub_812C664
movs r1, 0x8
bl CreateTask
ldr r0, _0812C640 @ =sub_812C394
bl SetMainCallback2
ldr r0, _0812C644 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
strb r4, [r0]
_0812C626:
add sp, 0xC
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0812C634: .4byte sub_812C380
_0812C638: .4byte gUnknown_203B0FC
_0812C63C: .4byte sub_812C664
_0812C640: .4byte sub_812C394
_0812C644: .4byte gMain
thumb_func_end sub_812C3F8
thumb_func_start sub_812C648
sub_812C648: @ 812C648
push {lr}
ldr r0, _0812C65C @ =gUnknown_845FB9C
bl LoadSpriteSheets
ldr r0, _0812C660 @ =gUnknown_845FBDC
bl LoadSpritePalettes
pop {r0}
bx r0
.align 2, 0
_0812C65C: .4byte gUnknown_845FB9C
_0812C660: .4byte gUnknown_845FBDC
thumb_func_end sub_812C648
thumb_func_start sub_812C664
sub_812C664: @ 812C664
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, _0812C688 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0812C684
ldr r0, _0812C68C @ =gTasks
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r1, r0
ldr r0, _0812C690 @ =sub_812C694
str r0, [r1]
_0812C684:
pop {r0}
bx r0
.align 2, 0
_0812C688: .4byte gPaletteFade
_0812C68C: .4byte gTasks
_0812C690: .4byte sub_812C694
thumb_func_end sub_812C664
thumb_func_start sub_812C694
sub_812C694: @ 812C694
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
lsls r0, 24
lsrs r5, r0, 24
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
ldr r0, _0812C714 @ =gTasks
adds r7, r1, r0
adds r0, 0x8
adds r1, r0
mov r8, r1
ldr r0, _0812C718 @ =sub_812E110
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
beq _0812C6C0
b _0812C8EA
_0812C6C0:
bl RunTextPrinters
ldr r0, _0812C71C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0812C6E8
ldr r0, _0812C720 @ =gUnknown_203B0FC
ldr r2, [r0]
ldrb r1, [r2, 0x7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _0812C6E8
ldr r1, [r2]
ldr r0, _0812C724 @ =sub_8107EB8
cmp r1, r0
beq _0812C6E8
b _0812C8DA
_0812C6E8:
ldr r0, _0812C71C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _0812C7DC
bl sub_812E064
lsls r0, 16
lsrs r4, r0, 16
adds r0, r5, 0
bl sub_812C8F8
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0812C728
movs r0, 0xCB
bl PlaySE
b _0812C8EA
.align 2, 0
_0812C714: .4byte gTasks
_0812C718: .4byte sub_812E110
_0812C71C: .4byte gMain
_0812C720: .4byte gUnknown_203B0FC
_0812C724: .4byte sub_8107EB8
_0812C728:
ldr r5, _0812C7D0 @ =gUnknown_203B0FC
ldr r0, [r5]
ldrb r0, [r0, 0x7]
lsrs r0, 2
subs r0, 0x1
cmp r4, r0
bne _0812C738
b _0812C8EA
_0812C738:
movs r0, 0xCB
bl PlaySE
movs r0, 0x58
str r0, [sp]
movs r0, 0x20
str r0, [sp, 0x4]
movs r0, 0x3
movs r1, 0
movs r2, 0
movs r3, 0
bl FillWindowPixelRect
movs r0, 0x3
bl sub_812CEE0
movs r0, 0x2
movs r1, 0x4
bl sub_812E178
movs r0, 0x1
movs r1, 0x5
bl sub_812E178
movs r0, 0x1
bl sub_812D0F4
ldr r0, [r5]
adds r0, 0xC
adds r0, r4
ldrb r0, [r0]
bl sub_812D888
lsls r0, 24
lsrs r0, 24
strh r0, [r7, 0xC]
ldr r4, _0812C7D4 @ =gSprites
movs r0, 0xC
ldrsh r1, [r7, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r6, 0xF0
strh r6, [r0, 0x24]
movs r3, 0xC
ldrsh r1, [r7, r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r5, 0x1
strh r5, [r0, 0x2E]
bl sub_812D7E4
lsls r0, 24
lsrs r0, 24
strh r0, [r7, 0xE]
movs r0, 0xE
ldrsh r1, [r7, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
strh r6, [r0, 0x24]
movs r3, 0xE
ldrsh r1, [r7, r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
strh r5, [r0, 0x2E]
ldr r0, _0812C7D8 @ =sub_812C9BC
str r0, [r7]
b _0812C8EA
.align 2, 0
_0812C7D0: .4byte gUnknown_203B0FC
_0812C7D4: .4byte gSprites
_0812C7D8: .4byte sub_812C9BC
_0812C7DC:
movs r6, 0x1
adds r0, r6, 0
ands r0, r1
cmp r0, 0
beq _0812C8C4
movs r0, 0
bl ListMenuHandleInput
lsls r0, 16
lsrs r4, r0, 16
ldr r0, _0812C824 @ =gUnknown_203B0FC
ldr r0, [r0]
ldrb r1, [r0, 0x7]
lsrs r0, r1, 2
subs r0, 0x1
cmp r4, r0
beq _0812C8DA
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0812C828
movs r0, 0x2
bl IsTextPrinterActive
lsls r0, 16
cmp r0, 0
bne _0812C8EA
bl sub_812D6B4
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0812C8EA
bl sub_812CD3C
b _0812C8EA
.align 2, 0
_0812C824: .4byte gUnknown_203B0FC
_0812C828:
adds r0, r6, 0
ands r0, r1
cmp r0, 0
beq _0812C8EA
movs r0, 0x5
bl PlaySE
movs r1, 0xA
ldrsh r0, [r7, r1]
bl sub_812D724
lsls r0, 24
lsrs r0, 24
strh r0, [r7, 0x8]
movs r4, 0
_0812C846:
movs r3, 0xA
ldrsh r0, [r7, r3]
cmp r4, r0
beq _0812C85E
ldr r0, _0812C8B4 @ =gUnknown_203B0FC
ldr r0, [r0]
adds r0, 0x1D
adds r0, r4
ldrb r0, [r0]
movs r1, 0x1
bl sub_812CEFC
_0812C85E:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x5
bls _0812C846
ldr r1, _0812C8B8 @ =gUnknown_3005EC8
movs r0, 0xFF
strb r0, [r1]
movs r0, 0
bl sub_812E4A4
movs r0, 0x2
bl sub_812D0F4
ldr r2, _0812C8BC @ =gSprites
ldr r0, _0812C8B4 @ =gUnknown_203B0FC
ldr r0, [r0]
movs r3, 0xA
ldrsh r1, [r7, r3]
adds r0, 0x1D
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x30
ldrsh r0, [r0, r1]
cmp r0, 0xFF
beq _0812C8A8
adds r0, r5, 0
bl sub_812CE04
mov r3, r8
ldrb r0, [r3, 0x2]
bl sub_812DA14
_0812C8A8:
bl sub_812E048
ldr r0, _0812C8C0 @ =sub_812CAD8
str r0, [r7]
b _0812C8EA
.align 2, 0
_0812C8B4: .4byte gUnknown_203B0FC
_0812C8B8: .4byte gUnknown_3005EC8
_0812C8BC: .4byte gSprites
_0812C8C0: .4byte sub_812CAD8
_0812C8C4:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0812C8E4
adds r0, r5, 0
bl sub_812C8F8
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0812C8EA
_0812C8DA:
ldr r0, _0812C8E0 @ =sub_812CF3C
str r0, [r7]
b _0812C8EA
.align 2, 0
_0812C8E0: .4byte sub_812CF3C
_0812C8E4:
movs r0, 0
bl ListMenuHandleInput
_0812C8EA:
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_812C694
thumb_func_start sub_812C8F8
sub_812C8F8: @ 812C8F8
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _0812C91C @ =gTasks
adds r4, r1, r0
ldr r5, _0812C920 @ =gUnknown_203B0FC
ldr r0, [r5]
ldrb r1, [r0, 0x7]
movs r3, 0x2
adds r0, r3, 0
ands r0, r1
cmp r0, 0
bne _0812C924
movs r0, 0
b _0812C982
.align 2, 0
_0812C91C: .4byte gTasks
_0812C920: .4byte gUnknown_203B0FC
_0812C924:
ldr r2, _0812C988 @ =gSprites
movs r0, 0xC
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r3, [r0, 0x2E]
movs r0, 0xC
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x24]
adds r1, 0xA
strh r1, [r0, 0x24]
movs r0, 0xE
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r3, [r0, 0x2E]
movs r0, 0xE
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x24]
adds r1, 0xA
strh r1, [r0, 0x24]
bl sub_812CE9C
ldr r0, _0812C98C @ =sub_812CA1C
str r0, [r4]
bl sub_812C990
ldr r1, [r5]
adds r1, 0x23
ldrb r2, [r1]
movs r0, 0x5
negs r0, r0
ands r0, r2
strb r0, [r1]
movs r0, 0x1
_0812C982:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0812C988: .4byte gSprites
_0812C98C: .4byte sub_812CA1C
thumb_func_end sub_812C8F8
thumb_func_start sub_812C990
sub_812C990: @ 812C990
push {lr}
sub sp, 0x10
ldr r2, _0812C9B8 @ =gUnknown_84181E4
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, 0x2
movs r1, 0x2
movs r3, 0
bl AddTextPrinterParametrized
add sp, 0x10
pop {r0}
bx r0
.align 2, 0
_0812C9B8: .4byte gUnknown_84181E4
thumb_func_end sub_812C990
thumb_func_start sub_812C9BC
sub_812C9BC: @ 812C9BC
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _0812C9F8 @ =gTasks
adds r4, r1, r0
ldr r2, _0812C9FC @ =gSprites
movs r0, 0xC
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x2E
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0812CA08
bl sub_812CD3C
ldr r0, _0812CA00 @ =gUnknown_203B0FC
ldr r2, [r0]
ldrb r0, [r2, 0x7]
movs r1, 0x2
orrs r0, r1
strb r0, [r2, 0x7]
ldr r0, _0812CA04 @ =sub_812C694
str r0, [r4]
b _0812CA14
.align 2, 0
_0812C9F8: .4byte gTasks
_0812C9FC: .4byte gSprites
_0812CA00: .4byte gUnknown_203B0FC
_0812CA04: .4byte sub_812C694
_0812CA08:
movs r1, 0xA0
lsls r1, 4
movs r0, 0x1
movs r2, 0x1
bl ChangeBgX
_0812CA14:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_812C9BC
thumb_func_start sub_812CA1C
sub_812CA1C: @ 812CA1C
push {r4-r7,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, _0812CA44 @ =gTasks
adds r5, r0, r1
movs r0, 0x1
bl GetBgX
cmp r0, 0
beq _0812CA48
movs r1, 0xA0
lsls r1, 4
movs r0, 0x1
movs r2, 0x2
bl ChangeBgX
b _0812CA52
.align 2, 0
_0812CA44: .4byte gTasks
_0812CA48:
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgX
_0812CA52:
ldr r7, _0812CAC8 @ =gSprites
movs r1, 0xC
ldrsh r0, [r5, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r7
movs r2, 0x2E
ldrsh r0, [r1, r2]
cmp r0, 0
bne _0812CAC0
ldr r6, _0812CACC @ =gUnknown_203B0FC
ldr r0, [r6]
ldrb r1, [r0, 0x7]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0812CA7C
movs r0, 0
bl sub_812D0F4
_0812CA7C:
movs r0, 0x1
movs r1, 0x4
bl sub_812E178
movs r0, 0x2
movs r1, 0x2
bl sub_812E178
ldr r2, [r6]
ldrb r1, [r2, 0x7]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r2, 0x7]
bl sub_812E064
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_812D9A8
ldr r0, _0812CAD0 @ =sub_812C694
str r0, [r5]
movs r0, 0xE
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r7, 0
adds r1, 0x1C
adds r0, r1
ldr r1, _0812CAD4 @ =sub_812D800
str r1, [r0]
_0812CAC0:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812CAC8: .4byte gSprites
_0812CACC: .4byte gUnknown_203B0FC
_0812CAD0: .4byte sub_812C694
_0812CAD4: .4byte sub_812D800
thumb_func_end sub_812CA1C
thumb_func_start sub_812CAD8
sub_812CAD8: @ 812CAD8
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
ldr r0, _0812CB9C @ =gTasks
adds r5, r1, r0
adds r0, 0x8
adds r6, r1, r0
bl RunTextPrinters
ldr r0, _0812CBA0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0812CB2E
movs r0, 0x2
bl IsTextPrinterActive
lsls r0, 16
cmp r0, 0
bne _0812CB2E
ldr r0, _0812CBA4 @ =gUnknown_203B0FC
ldr r0, [r0]
movs r2, 0x2
ldrsh r1, [r6, r2]
adds r0, 0x1D
adds r0, r1
ldrb r1, [r0]
ldr r2, _0812CBA8 @ =gSprites
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x30
ldrsh r0, [r0, r1]
cmp r0, 0xFF
beq _0812CB2E
adds r0, r4, 0
bl sub_812CE04
_0812CB2E:
ldr r0, _0812CBA0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0812CBB8
movs r0, 0x5
bl PlaySE
movs r4, 0
ldr r6, _0812CBA4 @ =gUnknown_203B0FC
_0812CB44:
ldr r0, [r6]
adds r0, 0x1D
adds r0, r4
ldrb r0, [r0]
movs r1, 0
bl sub_812CEFC
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x5
bls _0812CB44
bl sub_812CE9C
ldr r2, _0812CBA8 @ =gSprites
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, _0812CBAC @ =sub_812D764
str r1, [r0]
ldr r0, _0812CBB0 @ =gUnknown_3005EC8
ldrb r0, [r0]
cmp r0, 0xFF
beq _0812CB80
bl sub_812DB10
_0812CB80:
movs r0, 0x1
bl sub_812E4A4
movs r0, 0
bl sub_812D0F4
bl sub_812E000
bl sub_812C990
ldr r0, _0812CBB4 @ =sub_812C694
str r0, [r5]
b _0812CC62
.align 2, 0
_0812CB9C: .4byte gTasks
_0812CBA0: .4byte gMain
_0812CBA4: .4byte gUnknown_203B0FC
_0812CBA8: .4byte gSprites
_0812CBAC: .4byte sub_812D764
_0812CBB0: .4byte gUnknown_3005EC8
_0812CBB4: .4byte sub_812C694
_0812CBB8:
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _0812CBC8
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0812CBF4
_0812CBC8:
ldrh r1, [r5, 0xA]
movs r2, 0xA
ldrsh r0, [r5, r2]
cmp r0, 0x2
ble _0812CBE4
subs r0, r1, 0x3
strh r0, [r5, 0xA]
movs r2, 0x1B
negs r2, r2
adds r0, r4, 0
movs r1, 0
bl sub_812CC68
b _0812CC62
_0812CBE4:
adds r0, r1, 0x3
strh r0, [r5, 0xA]
adds r0, r4, 0
movs r1, 0
movs r2, 0x1B
bl sub_812CC68
b _0812CC62
_0812CBF4:
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _0812CC26
ldrh r6, [r5, 0xA]
movs r1, 0xA
ldrsh r0, [r5, r1]
cmp r0, 0
beq _0812CC12
movs r1, 0x3
bl __modsi3
lsls r0, 16
cmp r0, 0
bne _0812CC1C
_0812CC12:
adds r0, r6, 0x2
strh r0, [r5, 0xA]
adds r0, r4, 0
movs r1, 0x5E
b _0812CC4A
_0812CC1C:
subs r0, r6, 0x1
strh r0, [r5, 0xA]
movs r1, 0x2F
negs r1, r1
b _0812CC48
_0812CC26:
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _0812CC62
movs r1, 0xA
ldrsh r0, [r5, r1]
adds r0, 0x1
movs r1, 0x3
bl __modsi3
cmp r0, 0
bne _0812CC52
ldrh r0, [r5, 0xA]
subs r0, 0x2
strh r0, [r5, 0xA]
movs r1, 0x5E
negs r1, r1
_0812CC48:
adds r0, r4, 0
_0812CC4A:
movs r2, 0
bl sub_812CC68
b _0812CC62
_0812CC52:
ldrh r0, [r5, 0xA]
adds r0, 0x1
strh r0, [r5, 0xA]
adds r0, r4, 0
movs r1, 0x2F
movs r2, 0
bl sub_812CC68
_0812CC62:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_812CAD8
thumb_func_start sub_812CC68
sub_812CC68: @ 812CC68
push {r4-r7,lr}
sub sp, 0x8
adds r4, r1, 0
adds r5, r2, 0
lsls r0, 24
lsrs r7, r0, 24
lsls r4, 24
lsrs r4, 24
lsls r5, 24
lsrs r5, 24
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
ldr r1, _0812CD18 @ =gTasks+0x8
adds r6, r0, r1
movs r0, 0xBB
bl PlaySE
ldr r2, _0812CD1C @ =gSprites
movs r0, 0
ldrsh r1, [r6, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
lsls r4, 24
asrs r4, 24
ldrh r1, [r0, 0x20]
adds r4, r1
strh r4, [r0, 0x20]
movs r0, 0
ldrsh r1, [r6, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
lsls r5, 24
asrs r5, 24
ldrh r1, [r0, 0x22]
adds r5, r1
strh r5, [r0, 0x22]
movs r4, 0
ldr r5, _0812CD20 @ =gUnknown_203B0FC
_0812CCBE:
ldr r0, [r5]
adds r0, 0x1D
adds r0, r4
ldrb r0, [r0]
movs r1, 0x1
bl sub_812CEFC
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x5
bls _0812CCBE
movs r0, 0xD0
str r0, [sp]
movs r0, 0x20
str r0, [sp, 0x4]
movs r0, 0x2
movs r1, 0x11
movs r2, 0
movs r3, 0
bl FillWindowPixelRect
bl sub_812C990
ldr r0, _0812CD20 @ =gUnknown_203B0FC
ldr r0, [r0]
movs r2, 0x2
ldrsh r1, [r6, r2]
adds r0, 0x1D
adds r0, r1
ldrb r0, [r0]
movs r1, 0
bl sub_812CEFC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0812CD24
adds r0, r7, 0
bl sub_812CE04
ldrb r0, [r6, 0x2]
bl sub_812DA14
b _0812CD30
.align 2, 0
_0812CD18: .4byte gTasks+0x8
_0812CD1C: .4byte gSprites
_0812CD20: .4byte gUnknown_203B0FC
_0812CD24:
ldr r0, _0812CD38 @ =gUnknown_3005EC8
ldrb r0, [r0]
cmp r0, 0xFF
beq _0812CD30
bl sub_812DB10
_0812CD30:
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812CD38: .4byte gUnknown_3005EC8
thumb_func_end sub_812CC68
thumb_func_start sub_812CD3C
sub_812CD3C: @ 812CD3C
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x10
movs r0, 0
mov r8, r0
bl sub_812E064
lsls r0, 16
lsrs r0, 16
adds r6, r0, 0
ldr r0, _0812CD7C @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r7, _0812CD80 @ =gUnknown_203B0FC
ldr r0, [r7]
adds r0, 0xC
adds r0, r6
ldrb r0, [r0]
lsls r0, 2
adds r1, r0
ldr r0, _0812CD84 @ =0x00003a54
adds r1, r0
ldrb r0, [r1]
lsls r0, 30
lsrs r5, r0, 30
cmp r5, 0x2
beq _0812CD88
bl sub_812CE9C
bl sub_812C990
b _0812CDEE
.align 2, 0
_0812CD7C: .4byte gSaveBlock1Ptr
_0812CD80: .4byte gUnknown_203B0FC
_0812CD84: .4byte 0x00003a54
_0812CD88:
movs r0, 0xD0
str r0, [sp]
movs r0, 0x20
str r0, [sp, 0x4]
movs r0, 0x2
movs r1, 0x11
movs r2, 0
movs r3, 0
bl FillWindowPixelRect
bl sub_812D6B4
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0812CDAC
movs r0, 0x10
mov r8, r0
_0812CDAC:
ldr r4, _0812CDFC @ =gStringVar4
ldr r1, _0812CE00 @ =gUnknown_845F63C
ldr r0, [r7]
adds r0, 0xC
adds r0, r6
ldrb r0, [r0]
add r0, r8
lsls r0, 2
adds r0, r1
ldr r1, [r0]
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80F78A8
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0
str r0, [sp]
str r5, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0x2
movs r1, 0x2
adds r2, r4, 0
bl AddTextPrinterParametrized
movs r0, 0x2
bl sub_812CEE0
_0812CDEE:
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812CDFC: .4byte gStringVar4
_0812CE00: .4byte gUnknown_845F63C
thumb_func_end sub_812CD3C
thumb_func_start sub_812CE04
sub_812CE04: @ 812CE04
push {r4-r6,lr}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, _0812CE8C @ =gTasks+0x8
adds r4, r0
bl sub_812E064
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
movs r0, 0xD0
str r0, [sp]
movs r0, 0x20
str r0, [sp, 0x4]
movs r0, 0x2
movs r1, 0x11
movs r2, 0
movs r3, 0
bl FillWindowPixelRect
ldr r6, _0812CE90 @ =gStringVar4
ldr r2, _0812CE94 @ =gUnknown_845F6BC
ldr r0, _0812CE98 @ =gUnknown_203B0FC
ldr r0, [r0]
adds r0, 0xC
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 1
movs r3, 0x2
ldrsh r1, [r4, r3]
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r1, [r0]
adds r0, r6, 0
bl StringExpandPlaceholders
bl sub_80F78A8
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
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, 0x2
movs r1, 0x2
adds r2, r6, 0
bl AddTextPrinterParametrized
movs r0, 0x2
bl sub_812CEE0
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0812CE8C: .4byte gTasks+0x8
_0812CE90: .4byte gStringVar4
_0812CE94: .4byte gUnknown_845F6BC
_0812CE98: .4byte gUnknown_203B0FC
thumb_func_end sub_812CE04
thumb_func_start sub_812CE9C
sub_812CE9C: @ 812CE9C
push {lr}
sub sp, 0x8
movs r0, 0xD0
str r0, [sp]
movs r0, 0x20
str r0, [sp, 0x4]
movs r0, 0x2
movs r1, 0x11
movs r2, 0
movs r3, 0
bl FillWindowPixelRect
movs r0, 0x2
bl sub_812CEE0
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_812CE9C
thumb_func_start sub_812CEC0
sub_812CEC0: @ 812CEC0
push {lr}
bl sub_80F6E9C
movs r0, 0x2
movs r1, 0x1
bl sub_80F6EE4
movs r0, 0x2
bl sub_812CEE0
movs r0, 0
bl sub_812CEE0
pop {r0}
bx r0
thumb_func_end sub_812CEC0
thumb_func_start sub_812CEE0
sub_812CEE0: @ 812CEE0
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
bl PutWindowTilemap
adds r0, r4, 0
movs r1, 0x3
bl CopyWindowToVram
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_812CEE0
thumb_func_start sub_812CEFC
sub_812CEFC: @ 812CEFC
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r4, r1, 24
ldr r2, _0812CF1C @ =gSprites
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r3, r1, r2
movs r1, 0x30
ldrsh r0, [r3, r1]
cmp r0, 0xFF
bne _0812CF20
movs r0, 0
b _0812CF36
.align 2, 0
_0812CF1C: .4byte gSprites
_0812CF20:
movs r0, 0x3
adds r1, r4, 0
ands r1, r0
lsls r1, 2
ldrb r2, [r3, 0x1]
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3, 0x1]
movs r0, 0x1
_0812CF36:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_812CEFC
thumb_func_start sub_812CF3C
sub_812CF3C: @ 812CF3C
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0xC7
bl PlaySE
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, _0812CF74 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _0812CF78 @ =sub_812CF7C
str r1, [r0]
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0812CF74: .4byte gTasks
_0812CF78: .4byte sub_812CF7C
thumb_func_end sub_812CF3C
thumb_func_start sub_812CF7C
sub_812CF7C: @ 812CF7C
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r0, _0812D074 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0812D06C
ldr r0, _0812D078 @ =gUnknown_203B0FC
ldr r0, [r0]
ldrb r1, [r0, 0x7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0812CFD8
bl sub_812E064
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r6, 0
bl sub_812D9A8
ldr r0, _0812D07C @ =gTasks
lsls r4, r6, 2
adds r4, r6
lsls r4, 3
adds r4, r0
movs r0, 0xE
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r5, _0812D080 @ =gSprites
adds r0, r5
bl FreeSpriteOamMatrix
movs r0, 0xE
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
bl DestroySprite
_0812CFD8:
movs r4, 0
_0812CFDA:
ldr r5, _0812D078 @ =gUnknown_203B0FC
ldr r0, [r5]
adds r0, 0x1D
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _0812D080 @ =gSprites
adds r0, r1
bl DestroySprite
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x5
bls _0812CFDA
bl sub_812D814
bl sub_812D7C8
bl sub_812D70C
bl sub_812D770
bl sub_812E048
ldr r0, [r5]
ldr r0, [r0]
bl SetMainCallback2
ldr r0, [r5]
ldrb r0, [r0, 0x8]
movs r1, 0
movs r2, 0
bl sub_810713C
ldr r0, _0812D084 @ =gUnknown_203B0F0
ldr r0, [r0]
bl Free
ldr r0, _0812D088 @ =gUnknown_203B0F4
ldr r0, [r0]
bl Free
ldr r0, _0812D08C @ =gUnknown_203B0F8
ldr r0, [r0]
bl Free
ldr r0, [r5]
bl Free
ldr r0, _0812D090 @ =gUnknown_203B100
ldr r0, [r0]
bl Free
movs r0, 0
bl sub_812D094
movs r0, 0x1
bl sub_812D094
movs r0, 0x2
bl sub_812D094
movs r0, 0x3
bl sub_812D094
bl FreeAllWindowBuffers
adds r0, r6, 0
bl DestroyTask
_0812D06C:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0812D074: .4byte gPaletteFade
_0812D078: .4byte gUnknown_203B0FC
_0812D07C: .4byte gTasks
_0812D080: .4byte gSprites
_0812D084: .4byte gUnknown_203B0F0
_0812D088: .4byte gUnknown_203B0F4
_0812D08C: .4byte gUnknown_203B0F8
_0812D090: .4byte gUnknown_203B100
thumb_func_end sub_812CF7C
thumb_func_start sub_812D094
sub_812D094: @ 812D094
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
movs r1, 0
bl FillWindowPixelBuffer
adds r0, r4, 0
bl ClearWindowTilemap
adds r0, r4, 0
movs r1, 0x2
bl CopyWindowToVram
adds r0, r4, 0
bl RemoveWindow
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_812D094
thumb_func_start sub_812D0C0
sub_812D0C0: @ 812D0C0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0xAF
lsls r0, 1
bl HasTrainerAlreadyBeenFought
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0812D0EA
cmp r4, 0x9
bne _0812D0DE
movs r0, 0xF
b _0812D0EC
_0812D0DE:
cmp r4, 0x9
bls _0812D0EA
subs r0, r4, 0x1
lsls r0, 24
lsrs r0, 24
b _0812D0EC
_0812D0EA:
adds r0, r4, 0
_0812D0EC:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_812D0C0
thumb_func_start sub_812D0F4
sub_812D0F4: @ 812D0F4
push {r4,r5,lr}
sub sp, 0x14
lsls r0, 24
lsrs r0, 24
ldr r5, _0812D164 @ =gUnknown_841E5A4
cmp r0, 0
beq _0812D10A
ldr r5, _0812D168 @ =gUnknown_841E5D2
cmp r0, 0x1
bne _0812D10A
ldr r5, _0812D16C @ =gUnknown_841E5B9
_0812D10A:
movs r0, 0
adds r1, r5, 0
movs r2, 0
bl GetStringWidth
adds r4, r0, 0
movs r0, 0xC0
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl FillWindowPixelRect
movs r0, 0x44
negs r0, r0
adds r2, r0, 0
subs r2, r4
lsls r2, 24
lsrs r2, 24
movs r0, 0
str r0, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
ldr r0, _0812D170 @ =gUnknown_845F5E0
str r0, [sp, 0x8]
movs r0, 0x1
negs r0, r0
str r0, [sp, 0xC]
str r5, [sp, 0x10]
movs r0, 0x1
movs r1, 0
movs r3, 0
bl AddTextPrinterParametrized2
movs r0, 0x1
bl sub_812CEE0
add sp, 0x14
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0812D164: .4byte gUnknown_841E5A4
_0812D168: .4byte gUnknown_841E5D2
_0812D16C: .4byte gUnknown_841E5B9
_0812D170: .4byte gUnknown_845F5E0
thumb_func_end sub_812D0F4
thumb_func_start sub_812D174
sub_812D174: @ 812D174
push {r4,lr}
movs r4, 0
_0812D178:
ldr r0, _0812D1A0 @ =gUnknown_203B0FC
ldr r0, [r0]
adds r0, 0x1D
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _0812D1A4 @ =gSprites
adds r0, r1
bl DestroySprite
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x5
bls _0812D178
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0812D1A0: .4byte gUnknown_203B0FC
_0812D1A4: .4byte gSprites
thumb_func_end sub_812D174
thumb_func_start sub_812D1A8
sub_812D1A8: @ 812D1A8
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r0, 24
mov r8, r0
movs r5, 0
movs r6, 0
ldr r7, _0812D238 @ =gUnknown_203B0FC
_0812D1BA:
ldr r0, _0812D23C @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r0, [r7]
adds r0, 0xC
add r0, r8
ldrb r2, [r0]
lsls r0, r2, 2
adds r1, r0
ldr r0, _0812D240 @ =0x00003a54
adds r1, r0
ldrh r0, [r1]
lsls r0, 18
lsrs r0, 20
asrs r0, r6
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _0812D248
ldr r1, _0812D244 @ =gUnknown_845F83C
lsls r0, r2, 1
adds r0, r2
lsls r0, 1
adds r0, r6
adds r0, r1
ldrb r5, [r0]
adds r0, r6, 0
movs r1, 0x3
bl __umodsi3
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 1
adds r4, r0
lsls r4, 4
subs r4, r0
adds r4, 0x72
lsls r4, 16
asrs r4, 16
adds r0, r6, 0
movs r1, 0x3
bl __udivsi3
lsls r0, 24
lsrs r0, 24
lsls r3, r0, 3
subs r3, r0
lsls r3, 2
subs r3, r0
adds r3, 0x2F
lsls r3, 16
asrs r3, 16
adds r0, r5, 0
adds r1, r6, 0
adds r2, r4, 0
bl sub_805EB44
ldr r1, [r7]
adds r1, 0x1D
adds r1, r6
strb r0, [r1]
movs r5, 0x1
b _0812D2A0
.align 2, 0
_0812D238: .4byte gUnknown_203B0FC
_0812D23C: .4byte gSaveBlock1Ptr
_0812D240: .4byte 0x00003a54
_0812D244: .4byte gUnknown_845F83C
_0812D248:
adds r0, r6, 0
movs r1, 0x3
bl __umodsi3
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 1
adds r4, r0
lsls r4, 4
subs r4, r0
adds r4, 0x72
lsls r4, 24
lsrs r4, 24
adds r0, r6, 0
movs r1, 0x3
bl __udivsi3
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
subs r1, r0
adds r1, 0x1F
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_812D780
ldr r1, [r7]
adds r1, 0x1D
adds r1, r6
strb r0, [r1]
ldr r2, _0812D2D0 @ =gSprites
ldr r0, [r7]
adds r0, 0x1D
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0xFF
strh r1, [r0, 0x30]
_0812D2A0:
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x5
bls _0812D1BA
cmp r5, 0x1
bne _0812D2E0
ldr r3, _0812D2D4 @ =gUnknown_203B0FC
ldr r2, [r3]
ldrb r0, [r2, 0x7]
movs r1, 0x1
orrs r0, r1
strb r0, [r2, 0x7]
ldr r0, [r3]
ldrb r1, [r0, 0x7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0812D2D8
movs r0, 0x1
bl sub_812D0F4
b _0812D2F4
.align 2, 0
_0812D2D0: .4byte gSprites
_0812D2D4: .4byte gUnknown_203B0FC
_0812D2D8:
movs r0, 0
bl sub_812D0F4
b _0812D2F4
_0812D2E0:
ldr r0, _0812D300 @ =gUnknown_203B0FC
ldr r2, [r0]
ldrb r1, [r2, 0x7]
movs r0, 0x2
negs r0, r0
ands r0, r1
strb r0, [r2, 0x7]
movs r0, 0x1
bl sub_812D0F4
_0812D2F4:
adds r0, r5, 0
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0812D300: .4byte gUnknown_203B0FC
thumb_func_end sub_812D1A8
thumb_func_start sub_812D304
sub_812D304: @ 812D304
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
movs r4, 0
ldr r0, _0812D378 @ =gSaveBlock1Ptr
mov r9, r0
mov r6, r9
ldr r5, _0812D37C @ =0x00003a54
movs r0, 0x4
negs r0, r0
mov r8, r0
ldr r0, _0812D380 @ =0xffffc003
mov r12, r0
ldr r7, _0812D384 @ =0x00003a55
_0812D322:
ldr r1, [r6]
lsls r3, r4, 2
adds r1, r3
adds r1, r5
ldrb r2, [r1]
mov r0, r8
ands r0, r2
strb r0, [r1]
ldr r1, [r6]
adds r1, r3
adds r3, r1, r5
ldrh r2, [r3]
mov r0, r12
ands r0, r2
strh r0, [r3]
adds r1, r7
ldrb r2, [r1]
movs r0, 0x3F
ands r0, r2
strb r0, [r1]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0xF
bls _0812D322
mov r0, r9
ldr r2, [r0]
ldr r0, _0812D37C @ =0x00003a54
adds r2, r0
ldrb r1, [r2]
movs r0, 0x4
negs r0, r0
ands r0, r1
movs r1, 0x2
orrs r0, r1
strb r0, [r2]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812D378: .4byte gSaveBlock1Ptr
_0812D37C: .4byte 0x00003a54
_0812D380: .4byte 0xffffc003
_0812D384: .4byte 0x00003a55
thumb_func_end sub_812D304
thumb_func_start sub_812D388
sub_812D388: @ 812D388
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
movs r5, 0
ldr r0, _0812D410 @ =gSaveBlock1Ptr
mov r12, r0
ldr r7, _0812D414 @ =0x00003a54
movs r1, 0x4
negs r1, r1
mov r10, r1
ldr r6, _0812D418 @ =0xffffc003
mov r9, r6
movs r0, 0x1
mov r8, r0
_0812D3AA:
mov r1, r12
ldr r2, [r1]
lsls r3, r5, 2
adds r2, r3
adds r2, r7
ldrb r1, [r2]
mov r0, r10
ands r0, r1
movs r1, 0x2
orrs r0, r1
strb r0, [r2]
movs r4, 0
adds r5, 0x1
str r5, [sp]
adds r5, r3, 0
_0812D3C8:
mov r6, r12
ldr r2, [r6]
adds r2, r5
adds r2, r7
ldrh r3, [r2]
lsls r0, r3, 18
lsrs r0, 20
mov r1, r8
lsls r1, r4
orrs r1, r0
ldr r6, _0812D41C @ =0x00000fff
adds r0, r6, 0
ands r1, r0
lsls r1, 2
mov r0, r9
ands r0, r3
orrs r0, r1
strh r0, [r2]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x5
bls _0812D3C8
ldr r1, [sp]
lsls r0, r1, 24
lsrs r5, r0, 24
cmp r5, 0xF
bls _0812D3AA
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812D410: .4byte gSaveBlock1Ptr
_0812D414: .4byte 0x00003a54
_0812D418: .4byte 0xffffc003
_0812D41C: .4byte 0x00000fff
thumb_func_end sub_812D388
thumb_func_start sub_812D420
sub_812D420: @ 812D420
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
movs r3, 0xC0
lsls r3, 19
movs r4, 0xC0
lsls r4, 9
add r0, sp, 0x4
mov r8, r0
mov r2, sp
movs r6, 0
ldr r1, _0812D550 @ =0x040000d4
movs r5, 0x80
lsls r5, 5
ldr r7, _0812D554 @ =0x81000800
movs r0, 0x81
lsls r0, 24
mov r12, r0
_0812D446:
strh r6, [r2]
mov r0, sp
str r0, [r1]
str r3, [r1, 0x4]
str r7, [r1, 0x8]
ldr r0, [r1, 0x8]
adds r3, r5
subs r4, r5
cmp r4, r5
bhi _0812D446
strh r6, [r2]
mov r2, sp
str r2, [r1]
str r3, [r1, 0x4]
lsrs r0, r4, 1
mov r2, r12
orrs r0, r2
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
movs r0, 0xE0
lsls r0, 19
movs r3, 0x80
lsls r3, 3
movs r4, 0
str r4, [sp, 0x4]
ldr r2, _0812D550 @ =0x040000d4
mov r1, r8
str r1, [r2]
str r0, [r2, 0x4]
lsrs r0, r3, 2
movs r1, 0x85
lsls r1, 24
orrs r0, r1
str r0, [r2, 0x8]
ldr r0, [r2, 0x8]
movs r1, 0xA0
lsls r1, 19
mov r0, sp
strh r4, [r0]
str r0, [r2]
str r1, [r2, 0x4]
lsrs r3, 1
movs r0, 0x81
lsls r0, 24
orrs r3, r0
str r3, [r2, 0x8]
ldr r0, [r2, 0x8]
movs r0, 0
movs r1, 0
bl SetGpuReg
movs r0, 0x8
movs r1, 0
bl SetGpuReg
movs r0, 0x10
movs r1, 0
bl SetGpuReg
movs r0, 0x12
movs r1, 0
bl SetGpuReg
movs r0, 0xA
movs r1, 0
bl SetGpuReg
movs r0, 0x14
movs r1, 0
bl SetGpuReg
movs r0, 0x16
movs r1, 0
bl SetGpuReg
movs r0, 0xC
movs r1, 0
bl SetGpuReg
movs r0, 0x18
movs r1, 0
bl SetGpuReg
movs r0, 0x1A
movs r1, 0
bl SetGpuReg
movs r0, 0xE
movs r1, 0
bl SetGpuReg
movs r0, 0x1C
movs r1, 0
bl SetGpuReg
movs r0, 0x1E
movs r1, 0
bl SetGpuReg
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
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812D550: .4byte 0x040000d4
_0812D554: .4byte 0x81000800
thumb_func_end sub_812D420
thumb_func_start sub_812D558
sub_812D558: @ 812D558
push {lr}
bl remove_some_task
bl ResetTasks
bl ResetSpriteData
bl dp13_810BB8C
bl ResetPaletteFade
movs r0, 0
bl npc_paltag_set_load
ldr r1, _0812D580 @ =gReservedSpritePaletteCount
movs r0, 0x7
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0812D580: .4byte gReservedSpritePaletteCount
thumb_func_end sub_812D558
thumb_func_start sub_812D584
sub_812D584: @ 812D584
push {lr}
movs r1, 0xFA
lsls r1, 5
movs r0, 0
bl SetGpuReg
pop {r0}
bx r0
thumb_func_end sub_812D584
thumb_func_start sub_812D594
sub_812D594: @ 812D594
push {lr}
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgY
pop {r0}
bx r0
thumb_func_end sub_812D594
thumb_func_start sub_812D5EC
sub_812D5EC: @ 812D5EC
push {r4-r6,lr}
ldr r1, _0812D638 @ =gUnknown_20370C0
ldrh r0, [r1]
cmp r0, 0xF
bhi _0812D632
ldr r5, _0812D63C @ =gSpecialVar_0x8005
ldrh r0, [r5]
cmp r0, 0x5
bhi _0812D632
ldr r0, _0812D640 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldrh r0, [r1]
lsls r0, 2
adds r2, r0
ldr r0, _0812D644 @ =0x00003a54
adds r2, r0
ldrh r3, [r2]
lsls r0, r3, 18
lsrs r0, 20
movs r4, 0x1
adds r1, r4, 0
ldrh r6, [r5]
lsls r1, r6
orrs r1, r0
ldr r6, _0812D648 @ =0x00000fff
adds r0, r6, 0
ands r1, r0
lsls r1, 2
ldr r0, _0812D64C @ =0xffffc003
ands r0, r3
orrs r0, r1
strh r0, [r2]
strh r4, [r5]
bl sub_812D650
_0812D632:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0812D638: .4byte gUnknown_20370C0
_0812D63C: .4byte gSpecialVar_0x8005
_0812D640: .4byte gSaveBlock1Ptr
_0812D644: .4byte 0x00003a54
_0812D648: .4byte 0x00000fff
_0812D64C: .4byte 0xffffc003
thumb_func_end sub_812D5EC
thumb_func_start sub_812D650
sub_812D650: @ 812D650
push {r4,lr}
ldr r1, _0812D6A4 @ =gUnknown_20370C0
ldrh r0, [r1]
cmp r0, 0xF
bhi _0812D69E
ldr r0, _0812D6A8 @ =gSpecialVar_0x8005
ldrh r4, [r0]
adds r0, r4, 0
cmp r0, 0x2
bhi _0812D69E
cmp r0, 0
beq _0812D69E
ldr r2, _0812D6AC @ =gSaveBlock1Ptr
ldrh r3, [r1]
cmp r0, 0x1
bne _0812D684
ldr r0, [r2]
lsls r1, r3, 2
adds r0, r1
ldr r1, _0812D6B0 @ =0x00003a54
adds r0, r1
ldrb r0, [r0]
lsls r0, 30
lsrs r0, 30
cmp r0, 0x2
beq _0812D69E
_0812D684:
ldr r2, [r2]
lsls r0, r3, 2
adds r2, r0
ldr r0, _0812D6B0 @ =0x00003a54
adds r2, r0
movs r1, 0x3
ands r1, r4
ldrb r3, [r2]
movs r0, 0x4
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2]
_0812D69E:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0812D6A4: .4byte gUnknown_20370C0
_0812D6A8: .4byte gSpecialVar_0x8005
_0812D6AC: .4byte gSaveBlock1Ptr
_0812D6B0: .4byte 0x00003a54
thumb_func_end sub_812D650
thumb_func_start sub_812D6B4
sub_812D6B4: @ 812D6B4
push {r4,lr}
ldr r0, _0812D6EC @ =gUnknown_203B0FC
ldr r4, [r0]
bl sub_812E064
lsls r0, 16
lsrs r0, 16
adds r4, 0xC
adds r4, r0
ldrb r1, [r4]
movs r2, 0
ldr r0, _0812D6F0 @ =gSaveBlock1Ptr
ldr r0, [r0]
lsls r1, 2
adds r0, r1
ldr r1, _0812D6F4 @ =0x00003a54
adds r0, r1
ldrh r0, [r0]
lsls r1, r0, 18
movs r3, 0x1
_0812D6DC:
lsrs r0, r1, 20
asrs r0, r2
ands r0, r3
cmp r0, 0
bne _0812D6F8
movs r0, 0
b _0812D704
.align 2, 0
_0812D6EC: .4byte gUnknown_203B0FC
_0812D6F0: .4byte gSaveBlock1Ptr
_0812D6F4: .4byte 0x00003a54
_0812D6F8:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x5
bls _0812D6DC
movs r0, 0x1
_0812D704:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_812D6B4
thumb_func_start sub_812D70C
sub_812D70C: @ 812D70C
push {r4,lr}
movs r4, 0xFA
lsls r4, 2
adds r0, r4, 0
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_812D70C
thumb_func_start sub_812D724
sub_812D724: @ 812D724
push {r4,lr}
lsls r0, 16
asrs r0, 16
movs r4, 0x22
cmp r0, 0x2
ble _0812D732
movs r4, 0x3D
_0812D732:
movs r1, 0x3
bl __modsi3
lsls r0, 16
asrs r0, 16
lsls r1, r0, 1
adds r1, r0
lsls r1, 4
subs r1, r0
adds r1, 0x72
ldr r0, _0812D760 @ =gUnknown_845FC44
lsls r1, 16
asrs r1, 16
adds r2, r4, 0
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0812D760: .4byte gUnknown_845FC44
thumb_func_end sub_812D724
thumb_func_start sub_812D764
sub_812D764: @ 812D764
push {lr}
bl DestroySprite
pop {r0}
bx r0
thumb_func_end sub_812D764
thumb_func_start sub_812D770
sub_812D770: @ 812D770
push {lr}
ldr r0, _0812D77C @ =0x000003e9
bl FreeSpriteTilesByTag
pop {r0}
bx r0
.align 2, 0
_0812D77C: .4byte 0x000003e9
thumb_func_end sub_812D770
thumb_func_start sub_812D780
sub_812D780: @ 812D780
push {lr}
adds r3, r0, 0
adds r2, r1, 0
lsls r3, 24
lsrs r3, 24
lsls r2, 24
lsrs r2, 24
ldr r0, _0812D7C0 @ =gUnknown_845FC78
adds r1, r3, 0
movs r3, 0x8
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r1, _0812D7C4 @ =gSprites
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r1
ldrb r3, [r2, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r3
movs r3, 0x8
orrs r1, r3
movs r3, 0xF
ands r1, r3
movs r3, 0x20
orrs r1, r3
strb r1, [r2, 0x5]
pop {r1}
bx r1
.align 2, 0
_0812D7C0: .4byte gUnknown_845FC78
_0812D7C4: .4byte gSprites
thumb_func_end sub_812D780
thumb_func_start sub_812D7C8
sub_812D7C8: @ 812D7C8
push {r4,lr}
ldr r4, _0812D7E0 @ =0x000003ea
adds r0, r4, 0
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0812D7E0: .4byte 0x000003ea
thumb_func_end sub_812D7C8
thumb_func_start sub_812D7E4
sub_812D7E4: @ 812D7E4
push {lr}
ldr r0, _0812D7FC @ =gUnknown_845FCB8
movs r1, 0xE2
movs r2, 0x42
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_0812D7FC: .4byte gUnknown_845FCB8
thumb_func_end sub_812D7E4
thumb_func_start sub_812D800
sub_812D800: @ 812D800
push {r4,lr}
adds r4, r0, 0
bl FreeSpriteOamMatrix
adds r0, r4, 0
bl DestroySprite
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_812D800
thumb_func_start sub_812D814
sub_812D814: @ 812D814
push {lr}
ldr r0, _0812D834 @ =0x000003ee
bl FreeSpriteTilesByTag
ldr r0, _0812D838 @ =0x000003ef
bl FreeSpriteTilesByTag
movs r0, 0xFC
lsls r0, 2
bl FreeSpriteTilesByTag
ldr r0, _0812D83C @ =0x000003f1
bl FreeSpriteTilesByTag
pop {r0}
bx r0
.align 2, 0
_0812D834: .4byte 0x000003ee
_0812D838: .4byte 0x000003ef
_0812D83C: .4byte 0x000003f1
thumb_func_end sub_812D814
thumb_func_start sub_812D840
sub_812D840: @ 812D840
push {lr}
adds r2, r0, 0
movs r1, 0x2E
ldrsh r0, [r2, r1]
cmp r0, 0x1
bne _0812D864
movs r3, 0x24
ldrsh r0, [r2, r3]
subs r0, 0xA
cmp r0, 0
bge _0812D85E
movs r0, 0
strh r0, [r2, 0x24]
strh r0, [r2, 0x2E]
b _0812D882
_0812D85E:
ldrh r0, [r2, 0x24]
subs r0, 0xA
b _0812D880
_0812D864:
cmp r0, 0x2
bne _0812D882
ldrh r1, [r2, 0x24]
movs r3, 0x24
ldrsh r0, [r2, r3]
cmp r0, 0xF0
ble _0812D87C
movs r1, 0
movs r0, 0xF0
strh r0, [r2, 0x24]
strh r1, [r2, 0x2E]
b _0812D882
_0812D87C:
adds r0, r1, 0
adds r0, 0xA
_0812D880:
strh r0, [r2, 0x24]
_0812D882:
pop {r0}
bx r0
thumb_func_end sub_812D840
thumb_func_start sub_812D888
sub_812D888: @ 812D888
push {r4,r5,lr}
sub sp, 0x8
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x1
bne _0812D8B0
ldr r0, _0812D8A8 @ =gUnknown_845FCE4
movs r1, 0x94
movs r2, 0x42
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _0812D8AC @ =gUnknown_845ED60
b _0812D906
.align 2, 0
_0812D8A8: .4byte gUnknown_845FCE4
_0812D8AC: .4byte gUnknown_845ED60
_0812D8B0:
cmp r5, 0xE
bne _0812D8D0
ldr r0, _0812D8C8 @ =gUnknown_845FCFC
movs r1, 0x94
movs r2, 0x42
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _0812D8CC @ =gUnknown_845DD20
b _0812D906
.align 2, 0
_0812D8C8: .4byte gUnknown_845FCFC
_0812D8CC: .4byte gUnknown_845DD20
_0812D8D0:
cmp r5, 0
bne _0812D8F0
ldr r0, _0812D8E8 @ =gUnknown_845FD14
movs r1, 0x94
movs r2, 0x42
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _0812D8EC @ =gUnknown_845F580
b _0812D906
.align 2, 0
_0812D8E8: .4byte gUnknown_845FD14
_0812D8EC: .4byte gUnknown_845F580
_0812D8F0:
cmp r5, 0xD
bne _0812D934
ldr r0, _0812D928 @ =gUnknown_845FD2C
movs r1, 0x94
movs r2, 0x42
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _0812D92C @ =gUnknown_845E540
_0812D906:
movs r1, 0xB0
lsls r1, 1
movs r2, 0x20
bl LoadPalette
ldr r1, _0812D930 @ =gSprites
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r0, r1
ldrb r2, [r0, 0x5]
movs r1, 0xF
ands r1, r2
movs r2, 0x60
orrs r1, r2
strb r1, [r0, 0x5]
b _0812D950
.align 2, 0
_0812D928: .4byte gUnknown_845FD2C
_0812D92C: .4byte gUnknown_845E540
_0812D930: .4byte gSprites
_0812D934:
ldr r0, _0812D98C @ =gUnknown_845F61C
adds r0, r5, r0
ldrb r0, [r0]
movs r1, 0x6
str r1, [sp]
ldr r1, _0812D990 @ =0x0000ffff
str r1, [sp, 0x4]
movs r1, 0x1
movs r2, 0x94
movs r3, 0x42
bl sub_810C2A4
lsls r0, 24
lsrs r4, r0, 24
_0812D950:
ldr r1, _0812D994 @ =gSprites
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r1, 0x1C
adds r0, r1
ldr r1, _0812D998 @ =sub_812D840
str r1, [r0]
ldr r0, _0812D99C @ =gSaveBlock1Ptr
ldr r0, [r0]
lsls r1, r5, 2
adds r0, r1
ldr r1, _0812D9A0 @ =0x00003a54
adds r0, r1
ldrb r0, [r0]
lsls r0, 30
lsrs r0, 30
cmp r0, 0x1
bne _0812D982
ldr r0, _0812D9A4 @ =gUnknown_845F5C0
movs r1, 0xB0
lsls r1, 1
movs r2, 0x20
bl LoadPalette
_0812D982:
adds r0, r4, 0
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0812D98C: .4byte gUnknown_845F61C
_0812D990: .4byte 0x0000ffff
_0812D994: .4byte gSprites
_0812D998: .4byte sub_812D840
_0812D99C: .4byte gSaveBlock1Ptr
_0812D9A0: .4byte 0x00003a54
_0812D9A4: .4byte gUnknown_845F5C0
thumb_func_end sub_812D888
thumb_func_start sub_812D9A8
sub_812D9A8: @ 812D9A8
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 16
lsls r2, r0, 2
adds r2, r0
lsls r2, 3
ldr r0, _0812D9FC @ =gTasks+0x8
adds r4, r2, r0
lsrs r1, 16
ldr r0, _0812DA00 @ =gUnknown_203B0FC
ldr r2, [r0]
ldrb r0, [r2, 0x7]
lsrs r3, r0, 2
subs r0, r3, 0x1
cmp r1, r0
bne _0812D9D0
subs r0, r3, 0x2
lsls r0, 16
lsrs r1, r0, 16
_0812D9D0:
adds r0, r2, 0
adds r0, 0xC
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
beq _0812D9E8
cmp r0, 0xE
beq _0812D9E8
cmp r0, 0
beq _0812D9E8
cmp r0, 0xD
bne _0812DA08
_0812D9E8:
movs r0, 0x4
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _0812DA04 @ =gSprites
adds r0, r1
bl DestroySprite
b _0812DA0E
.align 2, 0
_0812D9FC: .4byte gTasks+0x8
_0812DA00: .4byte gUnknown_203B0FC
_0812DA04: .4byte gSprites
_0812DA08:
ldrh r0, [r4, 0x4]
bl sub_810C2E8
_0812DA0E:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_812D9A8
thumb_func_start sub_812DA14
sub_812DA14: @ 812DA14
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_812E064
ldr r1, _0812DAF8 @ =gUnknown_203B0FC
ldr r1, [r1]
lsls r0, 16
lsrs r0, 16
adds r1, 0xC
adds r1, r0
ldrb r0, [r1]
lsls r5, r0, 1
adds r5, r0
lsls r5, 1
adds r5, r4
movs r0, 0x1
bl sub_812E094
ldr r1, _0812DAFC @ =gUnknown_3005EC8
movs r0, 0x1
strb r0, [r1]
movs r0, 0x58
str r0, [sp]
movs r0, 0x20
str r0, [sp, 0x4]
movs r0, 0x3
movs r1, 0
movs r2, 0
movs r3, 0
bl FillWindowPixelRect
ldr r0, _0812DB00 @ =gUnknown_845F89C
lsls r5, 2
adds r0, r5, r0
ldr r6, [r0]
movs r0, 0
adds r1, r6, 0
movs r2, 0
bl GetStringWidth
movs r4, 0x54
subs r0, r4, r0
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
lsls r2, r0, 24
lsrs r2, 24
movs r7, 0
str r7, [sp]
movs r0, 0x2
mov r10, r0
str r0, [sp, 0x4]
ldr r0, _0812DB04 @ =gUnknown_845F5E3
mov r9, r0
str r0, [sp, 0x8]
movs r0, 0x1
negs r0, r0
mov r8, r0
str r0, [sp, 0xC]
str r6, [sp, 0x10]
movs r0, 0x3
movs r1, 0
movs r3, 0
bl AddTextPrinterParametrized2
ldr r6, _0812DB08 @ =gStringVar1
ldr r0, _0812DB0C @ =gUnknown_845FA1C
adds r5, r0
ldr r1, [r5]
adds r0, r6, 0
bl StringExpandPlaceholders
movs r0, 0
adds r1, r6, 0
movs r2, 0
bl GetStringWidth
subs r4, r0
lsrs r0, r4, 31
adds r4, r0
asrs r0, r4, 1
lsls r2, r0, 24
lsrs r2, 24
str r7, [sp]
mov r0, r10
str r0, [sp, 0x4]
mov r0, r9
str r0, [sp, 0x8]
mov r0, r8
str r0, [sp, 0xC]
str r6, [sp, 0x10]
movs r0, 0x3
movs r1, 0
movs r3, 0xA
bl AddTextPrinterParametrized2
movs r0, 0x3
bl sub_812CEE0
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
_0812DAF8: .4byte gUnknown_203B0FC
_0812DAFC: .4byte gUnknown_3005EC8
_0812DB00: .4byte gUnknown_845F89C
_0812DB04: .4byte gUnknown_845F5E3
_0812DB08: .4byte gStringVar1
_0812DB0C: .4byte gUnknown_845FA1C
thumb_func_end sub_812DA14
thumb_func_start sub_812DB10
sub_812DB10: @ 812DB10
push {lr}
movs r0, 0
bl sub_812E094
ldr r1, _0812DB24 @ =gUnknown_3005EC8
movs r0, 0xFF
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0812DB24: .4byte gUnknown_3005EC8
thumb_func_end sub_812DB10
thumb_func_start sub_812DB28
sub_812DB28: @ 812DB28
push {r4,lr}
bl sub_812DB64
bl sub_812DEF0
ldr r4, _0812DB5C @ =gUnknown_203B0FC
ldr r3, [r4]
lsls r0, 2
ldrb r2, [r3, 0x7]
movs r1, 0x3
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x7]
ldr r0, _0812DB60 @ =gUnknown_3005EB0
movs r1, 0
movs r2, 0
bl ListMenuInit
ldr r1, [r4]
strb r0, [r1, 0x8]
movs r0, 0
bl sub_812DFE4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0812DB5C: .4byte gUnknown_203B0FC
_0812DB60: .4byte gUnknown_3005EB0
thumb_func_end sub_812DB28
thumb_func_start sub_812DB64
sub_812DB64: @ 812DB64
ldr r2, _0812DBB4 @ =gUnknown_3005EB0
ldr r0, _0812DBB8 @ =gUnknown_203B100
ldr r0, [r0]
str r0, [r2]
ldr r0, _0812DBBC @ =sub_812DBC0
str r0, [r2, 0x4]
movs r0, 0
str r0, [r2, 0x8]
movs r1, 0
movs r0, 0x1
strh r0, [r2, 0xC]
strh r0, [r2, 0xE]
strb r1, [r2, 0x10]
strb r1, [r2, 0x11]
movs r0, 0x8
strb r0, [r2, 0x12]
strb r1, [r2, 0x13]
ldrb r1, [r2, 0x14]
subs r0, 0x18
ands r0, r1
movs r1, 0x4
orrs r0, r1
movs r1, 0xF
ands r0, r1
movs r1, 0x20
orrs r0, r1
strb r0, [r2, 0x14]
movs r0, 0x30
strb r0, [r2, 0x15]
movs r3, 0x3F
movs r0, 0
strb r0, [r2, 0x16]
ldrb r1, [r2, 0x17]
subs r0, 0x40
ands r0, r1
movs r1, 0x2
orrs r0, r1
ands r0, r3
strb r0, [r2, 0x17]
bx lr
.align 2, 0
_0812DBB4: .4byte gUnknown_3005EB0
_0812DBB8: .4byte gUnknown_203B100
_0812DBBC: .4byte sub_812DBC0
thumb_func_end sub_812DB64
thumb_func_start sub_812DBC0
sub_812DBC0: @ 812DBC0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
adds r7, r0, 0
lsls r1, 24
lsrs r1, 24
ldr r0, _0812DC68 @ =gUnknown_203B104
mov r10, r0
movs r2, 0
mov r8, r2
str r2, [r0]
ldr r6, _0812DC6C @ =gUnknown_203B0FC
ldr r0, [r6]
ldrb r2, [r0, 0xA]
ldrb r0, [r0, 0xB]
adds r2, r0
mov r9, r2
adds r0, r7, 0
bl sub_812DDF0
ldr r0, _0812DC70 @ =sub_812C694
bl FindTaskIdByFunc
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0xFF
bne _0812DBFE
b _0812DD3A
_0812DBFE:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, _0812DC74 @ =gTasks
adds r5, r0, r1
movs r0, 0x5
bl PlaySE
mov r0, r8
strh r0, [r5, 0xA]
ldr r0, [r6]
ldrb r0, [r0, 0x8]
add r1, sp, 0x8
movs r2, 0
bl get_coro_args_x18_x1A
ldr r1, [r6]
add r0, sp, 0x8
ldrh r0, [r0]
strh r0, [r1, 0x4]
ldrb r0, [r1, 0x7]
lsrs r0, 2
subs r0, 0x1
cmp r7, r0
beq _0812DCD8
bl sub_812D174
lsls r0, r7, 24
lsrs r0, 24
bl sub_812D1A8
ldr r2, [r6]
ldrb r1, [r2, 0x7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0812DCBC
adds r0, r2, 0
adds r0, 0x23
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
bne _0812DC7C
adds r0, r4, 0
mov r1, r9
bl sub_812D9A8
mov r1, r10
str r7, [r1]
ldr r0, _0812DC78 @ =sub_812DD50
str r0, [r5]
b _0812DD3A
.align 2, 0
_0812DC68: .4byte gUnknown_203B104
_0812DC6C: .4byte gUnknown_203B0FC
_0812DC70: .4byte sub_812C694
_0812DC74: .4byte gTasks
_0812DC78: .4byte sub_812DD50
_0812DC7C:
ldr r4, _0812DCB8 @ =gSprites
movs r2, 0xC
ldrsh r0, [r5, r2]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
adds r1, 0x3E
ldrb r3, [r1]
movs r2, 0x5
negs r2, r2
adds r0, r2, 0
ands r0, r3
strb r0, [r1]
ldr r0, [r6]
adds r0, 0x23
ldrb r1, [r0]
ands r2, r1
strb r2, [r0]
movs r0, 0xC
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
mov r1, r8
strh r1, [r0, 0x2E]
bl sub_812CD3C
b _0812DD3A
.align 2, 0
_0812DCB8: .4byte gSprites
_0812DCBC:
movs r0, 0xD0
str r0, [sp]
movs r0, 0x20
str r0, [sp, 0x4]
movs r0, 0x2
movs r1, 0x11
movs r2, 0
movs r3, 0
bl FillWindowPixelRect
movs r0, 0x2
bl sub_812CEE0
b _0812DD3A
_0812DCD8:
bl sub_812DDAC
ldr r0, [r6]
ldrb r1, [r0, 0x7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0812DD10
ldr r2, _0812DD0C @ =gSprites
movs r0, 0xC
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
ldr r1, [r6]
adds r1, 0x23
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
b _0812DD3A
.align 2, 0
_0812DD0C: .4byte gSprites
_0812DD10:
movs r2, 0
ldr r5, _0812DD4C @ =gSprites
adds r4, r6, 0
movs r3, 0x4
_0812DD18:
ldr r0, [r4]
adds r0, 0x1D
adds r0, r2
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
adds r0, 0x3E
ldrb r1, [r0]
orrs r1, r3
strb r1, [r0]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x5
bls _0812DD18
_0812DD3A:
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812DD4C: .4byte gSprites
thumb_func_end sub_812DBC0
thumb_func_start sub_812DD50
sub_812DD50: @ 812DD50
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, _0812DD98 @ =gTasks
adds r4, r0
ldr r0, _0812DD9C @ =gUnknown_203B0FC
ldr r0, [r0]
ldr r1, _0812DDA0 @ =gUnknown_203B104
adds r0, 0xC
ldr r1, [r1]
adds r0, r1
ldrb r0, [r0]
bl sub_812D888
lsls r0, 24
lsrs r0, 24
movs r3, 0
strh r0, [r4, 0xC]
ldr r2, _0812DDA4 @ =gSprites
movs r0, 0xC
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r3, [r0, 0x2E]
bl sub_812CD3C
ldr r0, _0812DDA8 @ =sub_812C694
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0812DD98: .4byte gTasks
_0812DD9C: .4byte gUnknown_203B0FC
_0812DDA0: .4byte gUnknown_203B104
_0812DDA4: .4byte gSprites
_0812DDA8: .4byte sub_812C694
thumb_func_end sub_812DD50
thumb_func_start sub_812DDAC
sub_812DDAC: @ 812DDAC
push {lr}
sub sp, 0x10
movs r0, 0xD0
str r0, [sp]
movs r0, 0x20
str r0, [sp, 0x4]
movs r0, 0x2
movs r1, 0x11
movs r2, 0
movs r3, 0
bl FillWindowPixelRect
ldr r2, _0812DDEC @ =gUnknown_84181C3
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, 0x2
movs r1, 0x2
movs r3, 0
bl AddTextPrinterParametrized
movs r0, 0x2
bl sub_812CEE0
add sp, 0x10
pop {r0}
bx r0
.align 2, 0
_0812DDEC: .4byte gUnknown_84181C3
thumb_func_end sub_812DDAC
thumb_func_start sub_812DDF0
sub_812DDF0: @ 812DDF0
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x18
mov r8, r0
lsls r5, r1, 24
lsrs r5, 24
ldr r7, _0812DE68 @ =gUnknown_203B0FC
ldr r0, [r7]
ldrb r0, [r0, 0x8]
mov r4, sp
adds r4, 0x16
add r1, sp, 0x14
adds r2, r4, 0
bl get_coro_args_x18_x1A
add r1, sp, 0x14
ldrh r0, [r4]
ldrh r1, [r1]
adds r0, r1
lsls r0, 16
lsrs r6, r0, 16
ldrh r0, [r4]
lsls r3, r0, 3
subs r3, r0
lsls r3, 25
movs r0, 0x80
lsls r0, 19
adds r3, r0
lsrs r3, 24
movs r1, 0
str r1, [sp]
str r1, [sp, 0x4]
ldr r0, _0812DE6C @ =gUnknown_845F5E6
str r0, [sp, 0x8]
str r1, [sp, 0xC]
ldr r0, _0812DE70 @ =gUnknown_203B100
ldr r1, [r0]
mov r2, r8
lsls r0, r2, 3
adds r0, r1
ldr r0, [r0]
str r0, [sp, 0x10]
movs r0, 0
movs r1, 0x2
movs r2, 0x8
bl AddTextPrinterParametrized2
cmp r5, 0
bne _0812DEC0
add r0, sp, 0x14
ldr r1, [r7]
ldrh r2, [r0]
ldrb r0, [r1, 0xA]
cmp r2, r0
bcs _0812DE74
ldrb r0, [r1, 0xB]
adds r0, 0x1
b _0812DE86
.align 2, 0
_0812DE68: .4byte gUnknown_203B0FC
_0812DE6C: .4byte gUnknown_845F5E6
_0812DE70: .4byte gUnknown_203B100
_0812DE74:
cmp r2, r0
bls _0812DE88
ldrb r0, [r1, 0x7]
lsrs r0, 2
subs r0, 0x1
cmp r6, r0
beq _0812DE88
ldrb r0, [r1, 0xB]
subs r0, 0x1
_0812DE86:
strb r0, [r1, 0xB]
_0812DE88:
ldr r0, _0812DEE4 @ =gUnknown_203B0FC
ldr r2, [r0]
ldrb r0, [r2, 0xB]
lsls r3, r0, 3
subs r3, r0
lsls r3, 25
movs r0, 0x80
lsls r0, 19
adds r3, r0
lsrs r3, 24
movs r1, 0
str r1, [sp]
str r1, [sp, 0x4]
ldr r0, _0812DEE8 @ =gUnknown_845F5E3
str r0, [sp, 0x8]
str r1, [sp, 0xC]
ldrb r0, [r2, 0x9]
ldr r1, _0812DEEC @ =gUnknown_203B100
ldr r1, [r1]
lsls r0, 3
adds r0, r1
ldr r0, [r0]
str r0, [sp, 0x10]
movs r0, 0
movs r1, 0x2
movs r2, 0x8
bl AddTextPrinterParametrized2
_0812DEC0:
ldr r1, _0812DEE4 @ =gUnknown_203B0FC
ldr r0, [r1]
mov r2, r8
strb r2, [r0, 0x9]
ldr r2, [r1]
ldrh r0, [r4]
strb r0, [r2, 0xB]
ldr r1, [r1]
add r0, sp, 0x14
ldrh r0, [r0]
strb r0, [r1, 0xA]
add sp, 0x18
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0812DEE4: .4byte gUnknown_203B0FC
_0812DEE8: .4byte gUnknown_845F5E3
_0812DEEC: .4byte gUnknown_203B100
thumb_func_end sub_812DDF0
thumb_func_start sub_812DEF0
sub_812DEF0: @ 812DEF0
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r4, 0
movs r6, 0
ldr r0, _0812DF44 @ =0x0000fdff
mov r8, r0
ldr r7, _0812DF48 @ =gUnknown_845F60C
_0812DF00:
adds r0, r6, 0
bl sub_812D0C0
lsls r0, 24
lsrs r5, r0, 24
ldr r0, _0812DF4C @ =gSaveBlock1Ptr
ldr r0, [r0]
lsls r1, r5, 2
adds r0, r1
ldr r1, _0812DF50 @ =0x00003a54
adds r0, r1
ldrb r0, [r0]
lsls r0, 30
cmp r0, 0
beq _0812DF88
ldr r0, _0812DF54 @ =gUnknown_845F5EA
lsls r1, r5, 1
adds r3, r1, r0
ldrh r0, [r3]
cmp r0, r8
bhi _0812DF60
ldr r0, _0812DF58 @ =gUnknown_203B100
ldr r0, [r0]
lsls r2, r4, 3
adds r2, r0
ldrh r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
ldr r1, _0812DF5C @ =gTrainers+0x4
adds r0, r1
str r0, [r2]
str r4, [r2, 0x4]
b _0812DF78
.align 2, 0
_0812DF44: .4byte 0x0000fdff
_0812DF48: .4byte gUnknown_845F60C
_0812DF4C: .4byte gSaveBlock1Ptr
_0812DF50: .4byte 0x00003a54
_0812DF54: .4byte gUnknown_845F5EA
_0812DF58: .4byte gUnknown_203B100
_0812DF5C: .4byte gTrainers+0x4
_0812DF60:
ldr r0, _0812DFC0 @ =gUnknown_203B100
ldr r0, [r0]
lsls r1, r4, 3
adds r1, r0
ldrh r0, [r3]
ldr r2, _0812DFC4 @ =0xffff0200
adds r0, r2
lsls r0, 2
adds r0, r7
ldr r0, [r0]
str r0, [r1]
str r4, [r1, 0x4]
_0812DF78:
ldr r0, _0812DFC8 @ =gUnknown_203B0FC
ldr r0, [r0]
adds r0, 0xC
adds r0, r4
strb r5, [r0]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
_0812DF88:
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0xF
bls _0812DF00
ldr r0, _0812DFC0 @ =gUnknown_203B100
ldr r1, [r0]
lsls r0, r4, 3
adds r0, r1
ldr r1, _0812DFCC @ =gUnknown_84161C1
str r1, [r0]
str r4, [r0, 0x4]
ldr r0, _0812DFC8 @ =gUnknown_203B0FC
ldr r0, [r0]
adds r0, 0xC
adds r0, r4
movs r1, 0xFF
strb r1, [r0]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _0812DFD0 @ =gUnknown_3005EB0
strh r4, [r1, 0xC]
cmp r4, 0x4
bhi _0812DFD4
strh r4, [r1, 0xE]
b _0812DFD8
.align 2, 0
_0812DFC0: .4byte gUnknown_203B100
_0812DFC4: .4byte 0xffff0200
_0812DFC8: .4byte gUnknown_203B0FC
_0812DFCC: .4byte gUnknown_84161C1
_0812DFD0: .4byte gUnknown_3005EB0
_0812DFD4:
movs r0, 0x5
strh r0, [r1, 0xE]
_0812DFD8:
adds r0, r4, 0
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_812DEF0
thumb_func_start sub_812DFE4
sub_812DFE4: @ 812DFE4
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
bl PutWindowTilemap
adds r0, r4, 0
movs r1, 0x3
bl CopyWindowToVram
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_812DFE4
thumb_func_start sub_812E000
sub_812E000: @ 812E000
push {r4,lr}
sub sp, 0x10
mov r1, sp
ldr r0, _0812E040 @ =gUnknown_845FD44
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r0, [r0]
str r0, [r1]
ldr r4, _0812E044 @ =gUnknown_203B0FC
ldr r2, [r4]
ldrb r0, [r2, 0x7]
lsrs r0, 2
cmp r0, 0x5
bls _0812E036
mov r1, sp
movs r0, 0
strh r0, [r1, 0x6]
ldrb r0, [r2, 0x7]
lsrs r0, 2
subs r0, 0x5
strh r0, [r1, 0x8]
adds r1, r2, 0x4
mov r0, sp
bl AddScrollIndicatorArrowPair
ldr r1, [r4]
strb r0, [r1, 0x6]
_0812E036:
add sp, 0x10
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0812E040: .4byte gUnknown_845FD44
_0812E044: .4byte gUnknown_203B0FC
thumb_func_end sub_812E000
thumb_func_start sub_812E048
sub_812E048: @ 812E048
push {lr}
ldr r0, _0812E060 @ =gUnknown_203B0FC
ldr r1, [r0]
ldrb r0, [r1, 0x7]
lsrs r0, 2
cmp r0, 0x5
bls _0812E05C
ldrb r0, [r1, 0x6]
bl RemoveScrollIndicatorArrowPair
_0812E05C:
pop {r0}
bx r0
.align 2, 0
_0812E060: .4byte gUnknown_203B0FC
thumb_func_end sub_812E048
thumb_func_start sub_812E064
sub_812E064: @ 812E064
push {r4,lr}
sub sp, 0x4
ldr r0, _0812E090 @ =gUnknown_203B0FC
ldr r0, [r0]
ldrb r0, [r0, 0x8]
mov r4, sp
adds r4, 0x2
mov r1, sp
adds r2, r4, 0
bl get_coro_args_x18_x1A
mov r1, sp
ldrh r0, [r4]
ldrh r1, [r1]
adds r0, r1
lsls r0, 16
lsrs r0, 16
add sp, 0x4
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0812E090: .4byte gUnknown_203B0FC
thumb_func_end sub_812E064
thumb_func_start sub_812E094
sub_812E094: @ 812E094
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
ldr r6, _0812E0EC @ =gUnknown_203B0FC
ldr r0, [r6]
adds r0, 0x23
ldrb r0, [r0]
lsls r0, 31
lsrs r0, 31
cmp r0, r4
beq _0812E108
ldr r5, _0812E0F0 @ =sub_812E110
adds r0, r5, 0
bl FindTaskIdByFunc
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
bne _0812E0C8
adds r0, r5, 0
movs r1, 0x8
bl CreateTask
lsls r0, 24
lsrs r2, r0, 24
_0812E0C8:
ldr r0, _0812E0F4 @ =gTasks
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r1, r0
movs r0, 0
strh r0, [r1, 0x8]
movs r0, 0x4
strh r0, [r1, 0xA]
cmp r4, 0x1
bne _0812E0F8
strh r4, [r1, 0xC]
ldr r0, [r6]
adds r0, 0x23
ldrb r1, [r0]
movs r2, 0x1
orrs r1, r2
b _0812E106
.align 2, 0
_0812E0EC: .4byte gUnknown_203B0FC
_0812E0F0: .4byte sub_812E110
_0812E0F4: .4byte gTasks
_0812E0F8:
strh r0, [r1, 0xC]
ldr r0, [r6]
adds r0, 0x23
ldrb r2, [r0]
movs r1, 0x2
negs r1, r1
ands r1, r2
_0812E106:
strb r1, [r0]
_0812E108:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_812E094
thumb_func_start sub_812E110
sub_812E110: @ 812E110
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, _0812E130 @ =gTasks
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0812E134
cmp r0, 0x1
beq _0812E154
b _0812E170
.align 2, 0
_0812E130: .4byte gTasks
_0812E134:
ldrh r0, [r4, 0xA]
subs r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
cmp r0, 0
bne _0812E170
movs r0, 0x1
movs r1, 0
bl sub_812E178
movs r0, 0x4
strh r0, [r4, 0xA]
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _0812E170
_0812E154:
ldrh r0, [r4, 0xA]
subs r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
cmp r0, 0
bne _0812E170
movs r0, 0xC
ldrsh r1, [r4, r0]
movs r0, 0x1
bl sub_812E178
adds r0, r5, 0
bl DestroyTask
_0812E170:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_812E110
thumb_func_start sub_812E178
sub_812E178: @ 812E178
push {r4-r6,lr}
sub sp, 0xC
lsls r0, 24
lsrs r6, r0, 24
lsls r1, 16
asrs r5, r1, 16
cmp r5, 0
beq _0812E18C
cmp r5, 0x3
bne _0812E252
_0812E18C:
movs r4, 0x1
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x8C
movs r2, 0xE
movs r3, 0xA
bl FillBgTilemapBufferRect
movs r5, 0xA
str r5, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0xA1
movs r2, 0xF
movs r3, 0xA
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x8D
movs r2, 0x19
movs r3, 0xA
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x8E
movs r2, 0x1A
movs r3, 0xA
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x8F
movs r2, 0xE
movs r3, 0xB
bl FillBgTilemapBufferRect
movs r0, 0xB
str r0, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0
movs r2, 0xF
movs r3, 0xB
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x90
movs r2, 0x1A
movs r3, 0xB
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x91
movs r2, 0xE
movs r3, 0xC
bl FillBgTilemapBufferRect
str r5, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0xA3
movs r2, 0xF
movs r3, 0xC
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x92
movs r2, 0x19
movs r3, 0xC
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x93
b _0812E470
_0812E252:
cmp r5, 0x1
bne _0812E2F4
str r5, [sp]
str r5, [sp, 0x4]
str r5, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x9B
movs r2, 0xE
movs r3, 0xA
bl FillBgTilemapBufferRect
movs r4, 0xB
str r4, [sp]
str r5, [sp, 0x4]
str r5, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x9C
movs r2, 0xF
movs r3, 0xA
bl FillBgTilemapBufferRect
str r5, [sp]
str r5, [sp, 0x4]
str r5, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x96
movs r2, 0x1A
movs r3, 0xA
bl FillBgTilemapBufferRect
str r5, [sp]
str r5, [sp, 0x4]
str r5, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x9D
movs r2, 0xE
movs r3, 0xB
bl FillBgTilemapBufferRect
str r4, [sp]
str r5, [sp, 0x4]
str r5, [sp, 0x8]
adds r0, r6, 0
movs r1, 0
movs r2, 0xF
movs r3, 0xB
bl FillBgTilemapBufferRect
str r5, [sp]
str r5, [sp, 0x4]
str r5, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x90
movs r2, 0x1A
movs r3, 0xB
bl FillBgTilemapBufferRect
str r5, [sp]
str r5, [sp, 0x4]
str r5, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x9E
movs r2, 0xE
movs r3, 0xC
bl FillBgTilemapBufferRect
str r4, [sp]
str r5, [sp, 0x4]
str r5, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x9F
movs r2, 0xF
movs r3, 0xC
bl FillBgTilemapBufferRect
str r5, [sp]
str r5, [sp, 0x4]
str r5, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x99
b _0812E470
_0812E2F4:
cmp r5, 0x2
bne _0812E398
movs r4, 0x1
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x94
movs r2, 0xE
movs r3, 0xA
bl FillBgTilemapBufferRect
movs r5, 0xB
str r5, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x95
movs r2, 0xF
movs r3, 0xA
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x96
movs r2, 0x1A
movs r3, 0xA
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x8F
movs r2, 0xE
movs r3, 0xB
bl FillBgTilemapBufferRect
str r5, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x9A
movs r2, 0xF
movs r3, 0xB
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x90
movs r2, 0x1A
movs r3, 0xB
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x97
movs r2, 0xE
movs r3, 0xC
bl FillBgTilemapBufferRect
str r5, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x98
movs r2, 0xF
movs r3, 0xC
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x99
b _0812E470
_0812E398:
cmp r5, 0x4
bne _0812E47A
movs r4, 0x1
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x83
movs r2, 0xE
movs r3, 0xA
bl FillBgTilemapBufferRect
movs r5, 0xA
str r5, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0xA0
movs r2, 0xF
movs r3, 0xA
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x84
movs r2, 0x19
movs r3, 0xA
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x85
movs r2, 0x1A
movs r3, 0xA
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x86
movs r2, 0xE
movs r3, 0xB
bl FillBgTilemapBufferRect
str r5, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0xA2
movs r2, 0xF
movs r3, 0xB
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x87
movs r2, 0x19
movs r3, 0xB
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x88
movs r2, 0x1A
movs r3, 0xB
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x83
movs r2, 0xE
movs r3, 0xC
bl FillBgTilemapBufferRect
str r5, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0xA0
movs r2, 0xF
movs r3, 0xC
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x84
movs r2, 0x19
movs r3, 0xC
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x85
_0812E470:
movs r2, 0x1A
movs r3, 0xC
bl FillBgTilemapBufferRect
b _0812E496
_0812E47A:
cmp r5, 0x5
bne _0812E496
movs r0, 0xD
str r0, [sp]
movs r0, 0x3
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
adds r0, r6, 0
movs r1, 0
movs r2, 0xE
movs r3, 0xA
bl FillBgTilemapBufferRect
_0812E496:
adds r0, r6, 0
bl CopyBgTilemapBufferToVram
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_812E178
thumb_func_start sub_812E4A4
sub_812E4A4: @ 812E4A4
push {r4,lr}
sub sp, 0x14
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _0812E4E0 @ =gUnknown_203B0FC
ldr r0, [r0]
ldrb r0, [r0, 0x8]
bl ListMenuGetYCoordForPrintingArrowCursor
lsls r0, 16
lsrs r0, 16
cmp r4, 0x1
bne _0812E4EC
lsls r3, r0, 24
lsrs r3, 24
movs r1, 0
str r1, [sp]
str r1, [sp, 0x4]
ldr r0, _0812E4E4 @ =gUnknown_845F5E3
str r0, [sp, 0x8]
str r1, [sp, 0xC]
ldr r0, _0812E4E8 @ =gUnknown_841623B
str r0, [sp, 0x10]
movs r0, 0
movs r1, 0x2
movs r2, 0
bl AddTextPrinterParametrized2
b _0812E50A
.align 2, 0
_0812E4E0: .4byte gUnknown_203B0FC
_0812E4E4: .4byte gUnknown_845F5E3
_0812E4E8: .4byte gUnknown_841623B
_0812E4EC:
lsls r3, r0, 24
lsrs r3, 24
movs r1, 0
str r1, [sp]
str r1, [sp, 0x4]
ldr r0, _0812E514 @ =gUnknown_845F5E0
str r0, [sp, 0x8]
str r1, [sp, 0xC]
ldr r0, _0812E518 @ =gUnknown_841623B
str r0, [sp, 0x10]
movs r0, 0
movs r1, 0x2
movs r2, 0
bl AddTextPrinterParametrized2
_0812E50A:
add sp, 0x14
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0812E514: .4byte gUnknown_845F5E0
_0812E518: .4byte gUnknown_841623B
thumb_func_end sub_812E4A4
.align 2, 0 @ Don't pad with nop.