Files
Pokemon-Firered/asm/fame_checker.s
T
2018-11-24 15:51:55 -05:00

3550 lines
58 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
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.