Files
Pokemon-Firered/asm/easy_chat_2.s
T
2020-03-07 12:37:18 -05:00

3279 lines
52 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_8100BF4
sub_8100BF4: @ 8100BF4
push {r4,lr}
ldr r4, _08100C50 @ =gUnknown_203ACEC
movs r0, 0x98
lsls r0, 5
bl Alloc
adds r2, r0, 0
str r2, [r4]
cmp r2, 0
beq _08100C54
movs r1, 0
strh r1, [r2]
movs r3, 0xB6
lsls r3, 2
adds r0, r2, r3
str r1, [r0]
adds r3, 0x4
adds r0, r2, r3
str r1, [r0]
adds r3, 0x4
adds r0, r2, r3
str r1, [r0]
adds r3, 0x4
adds r0, r2, r3
str r1, [r0]
adds r3, 0x4
adds r0, r2, r3
str r1, [r0]
adds r3, 0x4
adds r0, r2, r3
str r1, [r0]
adds r3, 0x4
adds r0, r2, r3
str r1, [r0]
adds r3, 0x4
adds r0, r2, r3
str r1, [r0]
adds r3, 0x4
adds r0, r2, r3
str r1, [r0]
adds r3, 0x4
adds r0, r2, r3
str r1, [r0]
movs r0, 0x1
b _08100C56
.align 2, 0
_08100C50: .4byte gUnknown_203ACEC
_08100C54:
movs r0, 0
_08100C56:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8100BF4
thumb_func_start sub_8100C5C
sub_8100C5C: @ 8100C5C
push {lr}
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x3
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, 0
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r1, 0xC1
lsls r1, 6
movs r0, 0
bl SetGpuReg
pop {r0}
bx r0
thumb_func_end sub_8100C5C
thumb_func_start sub_8100CBC
sub_8100CBC: @ 8100CBC
push {r4,lr}
bl ResetPaletteFade
ldr r0, _08100D10 @ =gUnknown_8E99D8C
movs r1, 0
movs r2, 0x20
bl LoadPalette
ldr r0, _08100D14 @ =gUnknown_843F76C
movs r1, 0x10
movs r2, 0x20
bl LoadPalette
ldr r0, _08100D18 @ =gUnknown_843F78C
movs r1, 0x40
movs r2, 0x20
bl LoadPalette
ldr r0, _08100D1C @ =gUnknown_843F874
movs r1, 0xA0
movs r2, 0x8
bl LoadPalette
ldr r4, _08100D20 @ =gUnknown_843F87C
adds r0, r4, 0
movs r1, 0xB0
movs r2, 0xA
bl LoadPalette
adds r0, r4, 0
movs r1, 0xF0
movs r2, 0xA
bl LoadPalette
adds r0, r4, 0
movs r1, 0x30
movs r2, 0xA
bl LoadPalette
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08100D10: .4byte gUnknown_8E99D8C
_08100D14: .4byte gUnknown_843F76C
_08100D18: .4byte gUnknown_843F78C
_08100D1C: .4byte gUnknown_843F874
_08100D20: .4byte gUnknown_843F87C
thumb_func_end sub_8100CBC
thumb_func_start sub_8100D24
sub_8100D24: @ 8100D24
push {r4,r5,lr}
sub sp, 0x14
bl GetTitleText
adds r5, r0, 0
cmp r5, 0
beq _08100D7A
movs r0, 0x1
adds r1, r5, 0
movs r2, 0
bl GetStringWidth
movs r4, 0x80
subs r4, r0
lsrs r4, 1
movs r0, 0
movs r1, 0
bl FillWindowPixelBuffer
lsls r4, 24
lsrs r4, 24
movs r1, 0
str r1, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
str r1, [sp, 0x8]
movs r0, 0x2
str r0, [sp, 0xC]
movs r0, 0x3
str r0, [sp, 0x10]
movs r0, 0
movs r1, 0x1
adds r2, r5, 0
adds r3, r4, 0
bl sub_8100DC4
movs r0, 0
bl PutWindowTilemap
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
_08100D7A:
add sp, 0x14
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8100D24
thumb_func_start sub_8100D84
sub_8100D84: @ 8100D84
push {r4-r6,lr}
sub sp, 0xC
adds r6, r2, 0
ldr r2, [sp, 0x1C]
ldr r4, [sp, 0x20]
lsls r0, 24
lsrs r5, r0, 24
lsls r1, 24
lsrs r1, 24
lsls r3, 24
lsrs r3, 24
lsls r2, 24
lsrs r0, r2, 24
lsls r4, 24
lsrs r4, 24
cmp r1, 0x1
bne _08100DAC
adds r0, 0x2
lsls r0, 24
lsrs r0, 24
_08100DAC:
str r0, [sp]
str r4, [sp, 0x4]
ldr r0, [sp, 0x24]
str r0, [sp, 0x8]
adds r0, r5, 0
adds r2, r6, 0
bl AddTextPrinterParameterized
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8100D84
thumb_func_start sub_8100DC4
sub_8100DC4: @ 8100DC4
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x10
mov r9, r2
ldr r2, [sp, 0x2C]
ldr r4, [sp, 0x30]
ldr r5, [sp, 0x34]
ldr r6, [sp, 0x38]
ldr r7, [sp, 0x3C]
mov r8, r7
lsls r0, 24
lsrs r0, 24
mov r12, r0
lsls r1, 24
lsrs r1, 24
lsls r3, 24
lsrs r7, r3, 24
lsls r2, 24
lsrs r3, r2, 24
lsls r4, 24
lsrs r4, 24
lsls r5, 24
lsrs r5, 24
lsls r6, 24
lsrs r6, 24
mov r0, r8
lsls r0, 24
lsrs r2, r0, 24
cmp r1, 0x1
bne _08100E0A
adds r0, r3, 0x2
lsls r0, 24
lsrs r3, r0, 24
_08100E0A:
add r0, sp, 0xC
strb r5, [r0]
strb r6, [r0, 0x1]
strb r2, [r0, 0x2]
str r0, [sp]
lsls r0, r4, 24
asrs r0, 24
str r0, [sp, 0x4]
mov r0, r9
str r0, [sp, 0x8]
mov r0, r12
adds r2, r7, 0
bl AddTextPrinterParameterized3
add sp, 0x10
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8100DC4
thumb_func_start sub_8100E34
sub_8100E34: @ 8100E34
push {lr}
sub sp, 0xC
movs r0, 0x20
str r0, [sp]
movs r0, 0x14
str r0, [sp, 0x4]
movs r0, 0x11
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect
movs r0, 0x1
movs r1, 0x1
movs r2, 0xE0
bl TextWindow_SetUserSelectedFrame
movs r0, 0x1
movs r1, 0x1
movs r2, 0xE
bl DrawTextBorderOuter
movs r0, 0
bl sub_8100E7C
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
bl CopyBgTilemapBufferToVram
add sp, 0xC
pop {r0}
bx r0
thumb_func_end sub_8100E34
thumb_func_start sub_8100E7C
sub_8100E7C: @ 8100E7C
push {lr}
sub sp, 0x14
lsls r0, 24
lsrs r1, r0, 24
adds r2, r1, 0
movs r0, 0
str r0, [sp, 0x10]
str r0, [sp, 0xC]
cmp r1, 0x1
beq _08100EC2
cmp r1, 0x1
bgt _08100E9A
cmp r1, 0
beq _08100EA4
b _08100ECA
_08100E9A:
cmp r2, 0x2
beq _08100EAE
cmp r2, 0x3
beq _08100EB8
b _08100ECA
_08100EA4:
add r1, sp, 0x10
add r0, sp, 0xC
bl GetEasyChatInstructionsText
b _08100ECA
_08100EAE:
add r1, sp, 0x10
add r0, sp, 0xC
bl sub_80FFDC8
b _08100ECA
_08100EB8:
add r1, sp, 0x10
add r0, sp, 0xC
bl GetEasyChatConfirmText
b _08100ECA
_08100EC2:
add r1, sp, 0x10
add r0, sp, 0xC
bl GetEasyChatConfirmDeletionText
_08100ECA:
movs r0, 0x1
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r2, [sp, 0xC]
cmp r2, 0
beq _08100EEC
movs r1, 0
str r1, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
str r1, [sp, 0x8]
movs r0, 0x1
movs r1, 0x1
movs r3, 0
bl sub_8100D84
_08100EEC:
ldr r2, [sp, 0x10]
cmp r2, 0
beq _08100F08
movs r0, 0x10
str r0, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
movs r0, 0x1
movs r1, 0x1
movs r3, 0
bl sub_8100D84
_08100F08:
movs r0, 0x1
movs r1, 0x3
bl CopyWindowToVram
add sp, 0x14
pop {r0}
bx r0
thumb_func_end sub_8100E7C
thumb_func_start sub_8100F18
sub_8100F18: @ 8100F18
push {lr}
sub sp, 0xC
lsls r0, 24
lsrs r0, 24
ldr r2, _08100F40 @ =gUnknown_843F8D0
movs r1, 0x1
str r1, [sp]
movs r1, 0xE
str r1, [sp, 0x4]
str r0, [sp, 0x8]
adds r0, r2, 0
movs r1, 0x1
movs r2, 0
movs r3, 0x2
bl CreateYesNoMenu
add sp, 0xC
pop {r0}
bx r0
.align 2, 0
_08100F40: .4byte gUnknown_843F8D0
thumb_func_end sub_8100F18
thumb_func_start sub_8100F44
sub_8100F44: @ 8100F44
push {r4,r5,lr}
sub sp, 0x8
bl GetEasyChatScreenFrameId
lsls r0, 24
ldr r5, _08100FC0 @ =0xffffff00
ldr r3, [sp]
ands r3, r5
movs r1, 0x3
orrs r3, r1
str r3, [sp]
ldr r1, _08100FC4 @ =sPhraseFrameDimensions
lsrs r0, 22
adds r0, r1
ldrb r2, [r0]
lsls r2, 8
ldr r4, _08100FC8 @ =0xffff00ff
adds r1, r4, 0
ands r1, r3
orrs r1, r2
str r1, [sp]
ldrb r2, [r0, 0x1]
lsls r2, 16
ldr r3, _08100FCC @ =0xff00ffff
ands r3, r1
orrs r3, r2
str r3, [sp]
ldrb r2, [r0, 0x2]
lsls r2, 24
ldr r1, _08100FD0 @ =0x00ffffff
ands r1, r3
orrs r1, r2
str r1, [sp]
ldrb r1, [r0, 0x3]
ldr r0, [sp, 0x4]
ands r0, r5
orrs r0, r1
ands r0, r4
movs r1, 0xB0
lsls r1, 4
orrs r0, r1
ldr r1, _08100FD4 @ =0x0000ffff
ands r0, r1
movs r1, 0xC0
lsls r1, 15
orrs r0, r1
str r0, [sp, 0x4]
mov r0, sp
bl AddWindow
ldr r1, _08100FD8 @ =gUnknown_203ACEC
ldr r1, [r1]
strh r0, [r1, 0x2]
lsls r0, 24
lsrs r0, 24
bl PutWindowTilemap
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08100FC0: .4byte 0xffffff00
_08100FC4: .4byte sPhraseFrameDimensions
_08100FC8: .4byte 0xffff00ff
_08100FCC: .4byte 0xff00ffff
_08100FD0: .4byte 0x00ffffff
_08100FD4: .4byte 0x0000ffff
_08100FD8: .4byte gUnknown_203ACEC
thumb_func_end sub_8100F44
thumb_func_start sub_8100FDC
sub_8100FDC: @ 8100FDC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
bl GetEasyChatWordBuffer
adds r4, r0, 0
bl GetNumColumns
lsls r0, 24
lsrs r0, 24
mov r8, r0
bl GetNumRows
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0xC]
bl GetEasyChatScreenFrameId
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x10]
ldr r0, _0810101C @ =gUnknown_203ACEC
ldr r0, [r0]
ldrb r0, [r0, 0x2]
movs r1, 0x11
bl FillWindowPixelBuffer
movs r6, 0
b _081010D6
.align 2, 0
_0810101C: .4byte gUnknown_203ACEC
_08101020:
ldr r0, _0810105C @ =gUnknown_203ACEC
ldr r1, [r0]
adds r2, r1, 0
adds r2, 0xA
movs r0, 0xFF
strb r0, [r1, 0xA]
adds r0, r2, 0
ldr r1, _08101060 @ =gUnknown_843F8DB
bl StringAppend
adds r2, r0, 0
movs r5, 0
lsls r7, r6, 28
adds r0, r6, 0x1
mov r9, r0
cmp r5, r8
bge _081010B4
ldr r0, _08101064 @ =0x0000ffff
mov r10, r0
_08101046:
ldrh r0, [r4]
cmp r0, r10
beq _08101068
adds r1, r0, 0
adds r0, r2, 0
bl CopyEasyChatWord
adds r2, r0, 0
adds r4, 0x2
b _08101096
.align 2, 0
_0810105C: .4byte gUnknown_203ACEC
_08101060: .4byte gUnknown_843F8DB
_08101064: .4byte 0x0000ffff
_08101068:
adds r0, r2, 0
movs r1, 0
movs r2, 0x4
bl WriteColorChangeControlCode
adds r2, r0, 0
adds r4, 0x2
movs r3, 0xF9
movs r1, 0x9
movs r0, 0x6
_0810107C:
strb r3, [r2]
adds r2, 0x1
strb r1, [r2]
adds r2, 0x1
subs r0, 0x1
cmp r0, 0
bge _0810107C
adds r0, r2, 0
movs r1, 0
movs r2, 0x2
bl WriteColorChangeControlCode
adds r2, r0, 0
_08101096:
adds r0, r2, 0
ldr r1, _081010F8 @ =gUnknown_843F8DB
bl StringAppend
adds r2, r0, 0
ldr r0, [sp, 0x10]
cmp r0, 0x2
bne _081010AE
cmp r5, 0
bne _081010AE
cmp r6, 0x4
beq _081010B4
_081010AE:
adds r5, 0x1
cmp r5, r8
blt _08101046
_081010B4:
movs r0, 0xFF
strb r0, [r2]
ldr r0, _081010FC @ =gUnknown_203ACEC
ldr r2, [r0]
ldrb r0, [r2, 0x2]
adds r2, 0xA
lsrs r1, r7, 24
str r1, [sp]
movs r1, 0xFF
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
bl sub_8100D84
mov r6, r9
_081010D6:
ldr r0, [sp, 0xC]
cmp r6, r0
blt _08101020
ldr r0, _081010FC @ =gUnknown_203ACEC
ldr r0, [r0]
ldrb r0, [r0, 0x2]
movs r1, 0x3
bl CopyWindowToVram
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
_081010F8: .4byte gUnknown_843F8DB
_081010FC: .4byte gUnknown_203ACEC
thumb_func_end sub_8100FDC
thumb_func_start sub_8101100
sub_8101100: @ 8101100
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
mov r8, r0
bl GetEasyChatScreenFrameId
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0
str r0, [sp]
ldr r2, _08101194 @ =0x01000200
mov r0, sp
mov r1, r8
bl CpuFastSet
cmp r5, 0x2
bne _081011A4
ldr r0, _08101198 @ =sPhraseFrameDimensions
adds r1, r0, 0
adds r1, 0x8
ldrb r5, [r0, 0x8]
ldrb r0, [r1, 0x2]
adds r4, r5, r0
ldrb r2, [r1, 0x1]
ldrb r0, [r1, 0x3]
adds r0, r2
mov r12, r0
adds r7, r2, 0
cmp r7, r12
blt _08101144
b _08101296
_08101144:
adds r3, r5, 0
lsls r0, r3, 1
mov r9, r0
_0810114A:
subs r6, r3, 0x1
lsls r0, r7, 5
adds r1, r0, r6
lsls r1, 1
add r1, r8
ldr r5, _0810119C @ =0x00001005
adds r2, r5, 0
strh r2, [r1]
adds r6, r3, 0
adds r5, r0, 0
adds r2, r7, 0x1
cmp r6, r4
bge _0810117E
movs r0, 0x80
lsls r0, 5
adds r1, r0, 0
lsls r0, r7, 6
add r0, r8
add r0, r9
subs r6, r4, r6
_08101172:
strh r1, [r0]
adds r0, 0x2
subs r6, 0x1
cmp r6, 0
bne _08101172
adds r6, r4, 0
_0810117E:
adds r0, r5, r6
lsls r0, 1
add r0, r8
ldr r5, _081011A0 @ =0x00001007
adds r1, r5, 0
strh r1, [r0]
adds r7, r2, 0
cmp r7, r12
blt _0810114A
b _08101296
.align 2, 0
_08101194: .4byte 0x01000200
_08101198: .4byte sPhraseFrameDimensions
_0810119C: .4byte 0x00001005
_081011A0: .4byte 0x00001007
_081011A4:
ldr r6, _081012A8 @ =sPhraseFrameDimensions
mov r9, r6
lsls r5, 2
adds r1, r5, r6
ldrb r3, [r1, 0x1]
subs r7, r3, 0x1
ldrb r2, [r1]
subs r6, r2, 0x1
ldrb r0, [r1, 0x2]
adds r4, r2, r0
ldrb r0, [r1, 0x3]
adds r3, r0
mov r12, r3
lsls r0, r7, 5
adds r0, r6
lsls r0, 1
add r0, r8
ldr r3, _081012AC @ =0x00001001
adds r1, r3, 0
strh r1, [r0]
adds r6, r2, 0
mov r10, r9
mov r9, r5
cmp r6, r4
bge _081011F0
ldr r5, _081012B0 @ =0x00001002
adds r2, r5, 0
lsls r1, r6, 1
lsls r0, r7, 6
add r0, r8
adds r1, r0
subs r6, r4, r6
_081011E4:
strh r2, [r1]
adds r1, 0x2
subs r6, 0x1
cmp r6, 0
bne _081011E4
adds r6, r4, 0
_081011F0:
lsls r0, r7, 5
adds r0, r6
lsls r0, 1
add r0, r8
ldr r6, _081012B4 @ =0x00001003
adds r1, r6, 0
strh r1, [r0]
adds r7, 0x1
cmp r7, r12
bge _08101252
ldr r0, _081012A8 @ =sPhraseFrameDimensions
add r0, r9
ldrb r3, [r0]
lsls r5, r3, 1
_0810120C:
subs r6, r3, 0x1
lsls r0, r7, 5
adds r0, r6
lsls r0, 1
add r0, r8
ldr r2, _081012B8 @ =0x00001005
adds r1, r2, 0
strh r1, [r0]
adds r6, r3, 0
adds r2, r7, 0x1
cmp r6, r4
bge _0810123E
movs r0, 0x80
lsls r0, 5
adds r1, r0, 0
lsls r0, r7, 6
add r0, r8
adds r0, r5, r0
subs r6, r4, r6
_08101232:
strh r1, [r0]
adds r0, 0x2
subs r6, 0x1
cmp r6, 0
bne _08101232
adds r6, r4, 0
_0810123E:
lsls r0, r7, 5
adds r0, r6
lsls r0, 1
add r0, r8
ldr r6, _081012BC @ =0x00001007
adds r1, r6, 0
strh r1, [r0]
adds r7, r2, 0
cmp r7, r12
blt _0810120C
_08101252:
mov r0, r9
add r0, r10
ldrb r3, [r0]
subs r6, r3, 0x1
lsls r2, r7, 5
adds r0, r2, r6
lsls r0, 1
add r0, r8
ldr r5, _081012C0 @ =0x00001009
adds r1, r5, 0
strh r1, [r0]
adds r6, r3, 0
adds r5, r2, 0
cmp r6, r4
bge _0810128A
ldr r0, _081012C4 @ =0x0000100a
adds r2, r0, 0
lsls r1, r6, 1
lsls r0, r7, 6
add r0, r8
adds r0, r1, r0
subs r6, r4, r6
_0810127E:
strh r2, [r0]
adds r0, 0x2
subs r6, 0x1
cmp r6, 0
bne _0810127E
adds r6, r4, 0
_0810128A:
adds r0, r5, r6
lsls r0, 1
add r0, r8
ldr r2, _081012C8 @ =0x0000100b
adds r1, r2, 0
strh r1, [r0]
_08101296:
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
_081012A8: .4byte sPhraseFrameDimensions
_081012AC: .4byte 0x00001001
_081012B0: .4byte 0x00001002
_081012B4: .4byte 0x00001003
_081012B8: .4byte 0x00001005
_081012BC: .4byte 0x00001007
_081012C0: .4byte 0x00001009
_081012C4: .4byte 0x0000100a
_081012C8: .4byte 0x0000100b
thumb_func_end sub_8101100
thumb_func_start sub_81012CC
sub_81012CC: @ 81012CC
push {lr}
movs r0, 0x2
bl PutWindowTilemap
movs r0, 0x2
bl CopyBgTilemapBufferToVram
pop {r0}
bx r0
thumb_func_end sub_81012CC
thumb_func_start sub_81012E0
sub_81012E0: @ 81012E0
push {r4,lr}
adds r4, r0, 0
bl sub_810198C
movs r0, 0x2
movs r1, 0x11
bl FillWindowPixelBuffer
cmp r4, 0x1
beq _08101304
cmp r4, 0x1
bcc _081012FE
cmp r4, 0x2
beq _0810130A
b _0810130E
_081012FE:
bl sub_810133C
b _0810130E
_08101304:
bl sub_81013A0
b _0810130E
_0810130A:
bl sub_81013DC
_0810130E:
movs r0, 0x2
movs r1, 0x2
bl CopyWindowToVram
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81012E0
thumb_func_start sub_810131C
sub_810131C: @ 810131C
push {lr}
bl sub_80FFE1C
lsls r0, 24
cmp r0, 0
bne _08101330
movs r0, 0
bl sub_81012E0
b _08101336
_08101330:
movs r0, 0x1
bl sub_81012E0
_08101336:
pop {r0}
bx r0
thumb_func_end sub_810131C
thumb_func_start sub_810133C
sub_810133C: @ 810133C
push {r4-r7,lr}
sub sp, 0xC
movs r5, 0
movs r7, 0x60
_08101344:
movs r4, 0
lsls r0, r7, 24
lsrs r6, r0, 24
_0810134A:
lsls r0, r5, 24
lsrs r0, 24
adds r5, 0x1
bl GetSelectedGroupByIndex
lsls r0, 24
lsrs r0, 24
cmp r0, 0x16
beq _0810138A
bl GetEasyChatWordGroupName
adds r2, r0, 0
movs r0, 0x54
adds r3, r4, 0
muls r3, r0
adds r3, 0xA
lsls r3, 24
lsrs r3, 24
str r6, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
movs r0, 0x2
movs r1, 0x1
bl sub_8100D84
adds r4, 0x1
cmp r4, 0x1
ble _0810134A
adds r7, 0x10
b _08101344
_0810138A:
bl sub_80FFE28
lsls r0, 24
lsrs r0, 24
movs r1, 0
bl sub_81019B0
add sp, 0xC
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_810133C
thumb_func_start sub_81013A0
sub_81013A0: @ 81013A0
push {r4-r6,lr}
sub sp, 0xC
movs r5, 0
movs r4, 0xC0
lsls r4, 23
ldr r6, _081013D8 @ =gUnknown_843F8E0
_081013AC:
ldm r6!, {r2}
lsrs r0, r4, 24
str r0, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
movs r0, 0x2
movs r1, 0x1
movs r3, 0xA
bl sub_8100D84
movs r0, 0x80
lsls r0, 21
adds r4, r0
adds r5, 0x1
cmp r5, 0x3
bls _081013AC
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_081013D8: .4byte gUnknown_843F8E0
thumb_func_end sub_81013A0
thumb_func_start sub_81013DC
sub_81013DC: @ 81013DC
push {lr}
movs r0, 0
movs r1, 0x4
bl sub_81014AC
pop {r0}
bx r0
thumb_func_end sub_81013DC
thumb_func_start sub_81013EC
sub_81013EC: @ 81013EC
push {r4,lr}
bl sub_80FFE48
adds r4, r0, 0
adds r4, 0x3
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
movs r1, 0x1
bl sub_8101558
adds r0, r4, 0
movs r1, 0x1
bl sub_81014AC
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81013EC
thumb_func_start sub_8101410
sub_8101410: @ 8101410
push {r4,lr}
bl sub_80FFE48
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
movs r1, 0x1
bl sub_8101558
adds r0, r4, 0
movs r1, 0x1
bl sub_81014AC
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8101410
thumb_func_start sub_8101434
sub_8101434: @ 8101434
push {r4,r5,lr}
bl sub_80FFE48
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
adds r0, r5, 0x4
lsls r0, 24
lsrs r4, r0, 24
bl sub_80FFE54
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
cmp r4, r0
bls _08101456
adds r4, r0, 0
_08101456:
cmp r5, r4
bcs _08101470
subs r4, r5
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
adds r1, r4, 0
bl sub_8101558
adds r0, r5, 0
adds r1, r4, 0
bl sub_81014AC
_08101470:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8101434
thumb_func_start sub_8101478
sub_8101478: @ 8101478
push {r4,r5,lr}
bl sub_80FFE48
lsls r0, 24
lsrs r5, r0, 24
bl sub_8101A48
lsls r0, 24
lsrs r0, 24
cmp r5, r0
bcs _081014A4
subs r4, r0, r5
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
adds r1, r4, 0
bl sub_8101558
adds r0, r5, 0
adds r1, r4, 0
bl sub_81014AC
_081014A4:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8101478
thumb_func_start sub_81014AC
sub_81014AC: @ 81014AC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
mov r10, r1
lsls r4, r0, 1
lsls r0, 4
adds r1, r0, 0
adds r1, 0x60
movs r0, 0xFF
ands r1, r0
movs r0, 0
cmp r0, r10
bge _08101538
ldr r2, _08101550 @ =gUnknown_203ACEC
mov r9, r2
_081014D8:
movs r5, 0
movs r2, 0x10
adds r2, r1
mov r8, r2
adds r7, r0, 0x1
lsls r0, r1, 24
lsrs r6, r0, 24
_081014E6:
lsls r0, r4, 16
lsrs r0, 16
adds r4, 0x1
bl GetDisplayedWordByIndex
lsls r0, 16
lsrs r1, r0, 16
ldr r0, _08101554 @ =0x0000ffff
cmp r1, r0
beq _0810152A
mov r2, r9
ldr r0, [r2]
adds r0, 0xCB
movs r2, 0
bl CopyEasyChatWordPadded
mov r0, r9
ldr r2, [r0]
adds r2, 0xCB
movs r0, 0xD
adds r3, r5, 0
muls r3, r0
adds r3, 0x3
lsls r3, 27
lsrs r3, 24
str r6, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
movs r0, 0x2
movs r1, 0x1
bl sub_8100D84
_0810152A:
adds r5, 0x1
cmp r5, 0x1
ble _081014E6
mov r1, r8
adds r0, r7, 0
cmp r0, r10
blt _081014D8
_08101538:
movs r0, 0x2
movs r1, 0x2
bl CopyWindowToVram
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
_08101550: .4byte gUnknown_203ACEC
_08101554: .4byte 0x0000ffff
thumb_func_end sub_81014AC
thumb_func_start sub_8101558
sub_8101558: @ 8101558
push {r4,r5,lr}
sub sp, 0x8
lsls r0, 24
lsls r1, 24
lsrs r0, 20
adds r3, r0, 0
adds r3, 0x60
movs r0, 0xFF
ands r3, r0
lsrs r0, r1, 20
adds r1, r3, r0
cmp r1, 0xFF
ble _08101584
ldr r0, _08101580 @ =0xffffff00
adds r4, r1, r0
movs r0, 0x80
lsls r0, 1
subs r0, r3
b _08101586
.align 2, 0
_08101580: .4byte 0xffffff00
_08101584:
movs r4, 0
_08101586:
movs r5, 0xE0
str r5, [sp]
lsls r0, 16
lsrs r0, 16
str r0, [sp, 0x4]
movs r0, 0x2
movs r1, 0x11
movs r2, 0
bl FillWindowPixelRect
cmp r4, 0
beq _081015B2
str r5, [sp]
lsls r0, r4, 16
lsrs r0, 16
str r0, [sp, 0x4]
movs r0, 0x2
movs r1, 0x11
movs r2, 0
movs r3, 0
bl FillWindowPixelRect
_081015B2:
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8101558
thumb_func_start sub_81015BC
sub_81015BC: @ 81015BC
push {lr}
movs r0, 0x2
movs r1, 0x11
bl FillWindowPixelBuffer
movs r0, 0x2
movs r1, 0x2
bl CopyWindowToVram
pop {r0}
bx r0
thumb_func_end sub_81015BC
thumb_func_start sub_81015D4
sub_81015D4: @ 81015D4
push {lr}
ldr r1, _081015E8 @ =gUnknown_203ACEC
cmp r0, 0x6
bhi _0810168E
lsls r0, 2
ldr r1, _081015EC @ =_081015F0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_081015E8: .4byte gUnknown_203ACEC
_081015EC: .4byte _081015F0
.align 2, 0
_081015F0:
.4byte _0810160C
.4byte _08101620
.4byte _08101630
.4byte _08101644
.4byte _08101658
.4byte _0810166C
.4byte _08101680
_0810160C:
ldr r1, _0810161C @ =gUnknown_203ACEC
ldr r2, [r1]
movs r0, 0
strb r0, [r2, 0x6]
ldr r2, [r1]
movs r0, 0xA
b _0810168C
.align 2, 0
_0810161C: .4byte gUnknown_203ACEC
_08101620:
ldr r1, _0810162C @ =gUnknown_203ACEC
ldr r2, [r1]
movs r3, 0
movs r0, 0x9
b _0810164C
.align 2, 0
_0810162C: .4byte gUnknown_203ACEC
_08101630:
ldr r1, _08101640 @ =gUnknown_203ACEC
ldr r2, [r1]
movs r0, 0xB
strb r0, [r2, 0x6]
ldr r2, [r1]
movs r0, 0x11
b _0810168C
.align 2, 0
_08101640: .4byte gUnknown_203ACEC
_08101644:
ldr r1, _08101654 @ =gUnknown_203ACEC
ldr r2, [r1]
movs r3, 0
movs r0, 0x11
_0810164C:
strb r0, [r2, 0x6]
ldr r0, [r1]
strb r3, [r0, 0x7]
b _0810168E
.align 2, 0
_08101654: .4byte gUnknown_203ACEC
_08101658:
ldr r1, _08101668 @ =gUnknown_203ACEC
ldr r2, [r1]
movs r0, 0x11
strb r0, [r2, 0x6]
ldr r2, [r1]
movs r0, 0xA
b _0810168C
.align 2, 0
_08101668: .4byte gUnknown_203ACEC
_0810166C:
ldr r1, _0810167C @ =gUnknown_203ACEC
ldr r2, [r1]
movs r0, 0x12
strb r0, [r2, 0x6]
ldr r2, [r1]
movs r0, 0x16
b _0810168C
.align 2, 0
_0810167C: .4byte gUnknown_203ACEC
_08101680:
ldr r1, _081016A8 @ =gUnknown_203ACEC
ldr r2, [r1]
movs r0, 0x16
strb r0, [r2, 0x6]
ldr r2, [r1]
movs r0, 0x12
_0810168C:
strb r0, [r2, 0x7]
_0810168E:
ldr r1, [r1]
ldrb r0, [r1, 0x6]
movs r3, 0x1
negs r3, r3
adds r2, r3, 0
ldrb r3, [r1, 0x7]
cmp r0, r3
bcs _081016A0
movs r2, 0x1
_081016A0:
strb r2, [r1, 0x8]
pop {r0}
bx r0
.align 2, 0
_081016A8: .4byte gUnknown_203ACEC
thumb_func_end sub_81015D4
thumb_func_start sub_81016AC
sub_81016AC: @ 81016AC
push {r4,lr}
ldr r4, _081016D8 @ =gUnknown_203ACEC
ldr r1, [r4]
ldrb r2, [r1, 0x6]
ldrb r0, [r1, 0x7]
cmp r2, r0
beq _081016DC
ldrb r0, [r1, 0x8]
adds r0, r2, r0
strb r0, [r1, 0x6]
ldr r0, [r4]
ldrb r0, [r0, 0x6]
bl sub_81016E4
ldr r0, [r4]
ldrb r1, [r0, 0x6]
ldrb r0, [r0, 0x7]
eors r1, r0
negs r0, r1
orrs r0, r1
lsrs r0, 31
b _081016DE
.align 2, 0
_081016D8: .4byte gUnknown_203ACEC
_081016DC:
movs r0, 0
_081016DE:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81016AC
thumb_func_start sub_81016E4
sub_81016E4: @ 81016E4
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1E
str r0, [sp]
movs r0, 0xA
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0xA
bl FillBgTilemapBufferRect_Palette0
cmp r4, 0x16
bls _08101706
b _08101822
_08101706:
lsls r0, r4, 2
ldr r1, _08101710 @ =_08101714
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08101710: .4byte _08101714
.align 2, 0
_08101714:
.4byte _08101822
.4byte _08101770
.4byte _08101778
.4byte _08101780
.4byte _08101788
.4byte _08101790
.4byte _08101798
.4byte _08101808
.4byte _081017FA
.4byte _081017EC
.4byte _081017DE
.4byte _081017A6
.4byte _081017AE
.4byte _081017B6
.4byte _081017BE
.4byte _081017C6
.4byte _081017CE
.4byte _081017D6
.4byte _081017DE
.4byte _081017EC
.4byte _081017FA
.4byte _08101808
.4byte _08101816
_08101770:
movs r0, 0xB
movs r1, 0xE
movs r2, 0x3
b _0810179E
_08101778:
movs r0, 0x9
movs r1, 0xE
movs r2, 0x7
b _0810179E
_08101780:
movs r0, 0x7
movs r1, 0xE
movs r2, 0xB
b _0810179E
_08101788:
movs r0, 0x5
movs r1, 0xE
movs r2, 0xF
b _0810179E
_08101790:
movs r0, 0x3
movs r1, 0xE
movs r2, 0x13
b _0810179E
_08101798:
movs r0, 0x1
movs r1, 0xE
movs r2, 0x17
_0810179E:
movs r3, 0x2
bl sub_8101830
b _08101822
_081017A6:
movs r0, 0x1
movs r1, 0xA
movs r2, 0x18
b _081017E4
_081017AE:
movs r0, 0x1
movs r1, 0xA
movs r2, 0x19
b _081017E4
_081017B6:
movs r0, 0x1
movs r1, 0xA
movs r2, 0x1A
b _081017E4
_081017BE:
movs r0, 0x1
movs r1, 0xA
movs r2, 0x1B
b _081017E4
_081017C6:
movs r0, 0x1
movs r1, 0xA
movs r2, 0x1C
b _081017E4
_081017CE:
movs r0, 0x1
movs r1, 0xA
movs r2, 0x1D
b _081017E4
_081017D6:
movs r0, 0
movs r1, 0xA
movs r2, 0x1E
b _081017E4
_081017DE:
movs r0, 0x1
movs r1, 0xA
movs r2, 0x17
_081017E4:
movs r3, 0xA
bl sub_8101830
b _08101822
_081017EC:
movs r0, 0x1
movs r1, 0xB
movs r2, 0x17
movs r3, 0x8
bl sub_8101830
b _08101822
_081017FA:
movs r0, 0x1
movs r1, 0xC
movs r2, 0x17
movs r3, 0x6
bl sub_8101830
b _08101822
_08101808:
movs r0, 0x1
movs r1, 0xD
movs r2, 0x17
movs r3, 0x4
bl sub_8101830
b _08101822
_08101816:
movs r0, 0x1
movs r1, 0xE
movs r2, 0x17
movs r3, 0x2
bl sub_8101830
_08101822:
movs r0, 0x1
bl CopyBgTilemapBufferToVram
add sp, 0x8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81016E4
thumb_func_start sub_8101830
sub_8101830: @ 8101830
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
mov r12, r0
adds r7, r1, 0
mov r9, r2
mov r10, r3
ldr r0, _08101968 @ =gUnknown_203ACEC
ldr r0, [r0]
movs r1, 0xC0
lsls r1, 2
adds r6, r0, r1
mov r0, r12
add r0, r9
subs r5, r0, 0x1
adds r0, r7, r3
subs r0, 0x1
mov r8, r0
mov r2, r12
adds r3, r7, 0
lsls r0, r3, 5
adds r0, r2
lsls r0, 1
adds r0, r6
ldr r4, _0810196C @ =0x00004001
adds r1, r4, 0
strh r1, [r0]
adds r2, 0x1
cmp r2, r5
bge _0810188C
ldr r0, _08101970 @ =0x00004002
adds r4, r0, 0
lsls r1, r2, 1
lsls r0, r3, 6
adds r0, r6
adds r1, r0
subs r2, r5, r2
_08101880:
strh r4, [r1]
adds r1, 0x2
subs r2, 0x1
cmp r2, 0
bne _08101880
adds r2, r5, 0
_0810188C:
lsls r0, r3, 5
adds r0, r2
lsls r0, 1
adds r0, r6
ldr r2, _08101974 @ =0x00004003
adds r1, r2, 0
strh r1, [r0]
adds r3, 0x1
mov r4, r12
adds r4, 0x1
adds r0, r7, 0x1
str r0, [sp, 0x4]
mov r1, r9
subs r1, 0x2
str r1, [sp]
movs r2, 0x2
negs r2, r2
add r10, r2
cmp r3, r8
bge _081018FC
lsls r7, r4, 1
mov r9, r7
_081018B8:
lsls r0, r3, 5
add r0, r12
lsls r0, 1
adds r0, r6
ldr r2, _08101978 @ =0x00004005
adds r1, r2, 0
strh r1, [r0]
adds r2, r4, 0
adds r7, r3, 0x1
cmp r4, r5
bge _081018E8
movs r0, 0x80
lsls r0, 7
adds r1, r0, 0
lsls r0, r3, 6
adds r0, r6
add r0, r9
subs r2, r5, r4
_081018DC:
strh r1, [r0]
adds r0, 0x2
subs r2, 0x1
cmp r2, 0
bne _081018DC
adds r2, r5, 0
_081018E8:
lsls r0, r3, 5
adds r0, r2
lsls r0, 1
adds r0, r6
ldr r2, _0810197C @ =0x00004007
adds r1, r2, 0
strh r1, [r0]
adds r3, r7, 0
cmp r3, r8
blt _081018B8
_081018FC:
lsls r0, r3, 5
mov r7, r12
adds r1, r0, r7
lsls r1, 1
adds r1, r6
ldr r7, _08101980 @ =0x00004009
adds r2, r7, 0
strh r2, [r1]
adds r2, r4, 0
mov r12, r0
cmp r4, r5
bge _0810192E
ldr r0, _08101984 @ =0x0000400a
adds r7, r0, 0
lsls r1, r4, 1
lsls r0, r3, 6
adds r0, r6
adds r0, r1, r0
subs r2, r5, r4
_08101922:
strh r7, [r0]
adds r0, 0x2
subs r2, 0x1
cmp r2, 0
bne _08101922
adds r2, r5, 0
_0810192E:
mov r1, r12
adds r0, r1, r2
lsls r0, 1
adds r0, r6
ldr r2, _08101988 @ =0x0000400b
adds r1, r2, 0
strh r1, [r0]
lsls r0, r4, 27
lsrs r0, 24
ldr r3, [sp, 0x4]
lsls r1, r3, 27
lsrs r1, 24
ldr r4, [sp]
lsls r2, r4, 27
lsrs r2, 24
mov r7, r10
lsls r3, r7, 27
lsrs r3, 24
bl sub_8101A5C
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08101968: .4byte gUnknown_203ACEC
_0810196C: .4byte 0x00004001
_08101970: .4byte 0x00004002
_08101974: .4byte 0x00004003
_08101978: .4byte 0x00004005
_0810197C: .4byte 0x00004007
_08101980: .4byte 0x00004009
_08101984: .4byte 0x0000400a
_08101988: .4byte 0x0000400b
thumb_func_end sub_8101830
thumb_func_start sub_810198C
sub_810198C: @ 810198C
push {lr}
movs r1, 0x80
lsls r1, 4
movs r0, 0x2
movs r2, 0
bl ChangeBgY
ldr r0, _081019AC @ =gUnknown_203ACEC
ldr r0, [r0]
movs r1, 0xB3
lsls r1, 2
adds r0, r1
movs r1, 0
strh r1, [r0]
pop {r0}
bx r0
.align 2, 0
_081019AC: .4byte gUnknown_203ACEC
thumb_func_end sub_810198C
thumb_func_start sub_81019B0
sub_81019B0: @ 81019B0
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
lsls r1, 24
lsrs r5, r1, 24
movs r0, 0x2
bl GetBgY
adds r2, r0, 0
ldr r0, _081019FC @ =gUnknown_203ACEC
ldr r3, [r0]
movs r0, 0xB3
lsls r0, 2
adds r1, r3, r0
ldrh r0, [r1]
adds r0, r4
strh r0, [r1]
lsls r4, 20
asrs r4, 16
lsls r0, r4, 8
adds r2, r0
cmp r5, 0
beq _08101A00
movs r1, 0xB4
lsls r1, 2
adds r0, r3, r1
str r2, [r0]
movs r0, 0xB5
lsls r0, 2
adds r1, r3, r0
lsls r0, r5, 8
str r0, [r1]
cmp r4, 0
bge _08101A0A
negs r0, r0
str r0, [r1]
b _08101A0A
.align 2, 0
_081019FC: .4byte gUnknown_203ACEC
_08101A00:
movs r0, 0x2
adds r1, r2, 0
movs r2, 0
bl ChangeBgY
_08101A0A:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81019B0
thumb_func_start sub_8101A10
sub_8101A10: @ 8101A10
push {lr}
movs r0, 0x2
bl GetBgY
ldr r1, _08101A3C @ =gUnknown_203ACEC
ldr r2, [r1]
movs r3, 0xB4
lsls r3, 2
adds r1, r2, r3
ldr r1, [r1]
cmp r0, r1
beq _08101A40
movs r1, 0xB5
lsls r1, 2
adds r0, r2, r1
ldr r1, [r0]
movs r0, 0x2
movs r2, 0x1
bl ChangeBgY
movs r0, 0x1
b _08101A42
.align 2, 0
_08101A3C: .4byte gUnknown_203ACEC
_08101A40:
movs r0, 0
_08101A42:
pop {r1}
bx r1
thumb_func_end sub_8101A10
thumb_func_start sub_8101A48
sub_8101A48: @ 8101A48
ldr r0, _08101A58 @ =gUnknown_203ACEC
ldr r0, [r0]
movs r1, 0xB3
lsls r1, 2
adds r0, r1
ldrh r0, [r0]
bx lr
.align 2, 0
_08101A58: .4byte gUnknown_203ACEC
thumb_func_end sub_8101A48
thumb_func_start sub_8101A5C
sub_8101A5C: @ 8101A5C
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
lsls r3, 24
lsrs r3, 24
lsls r4, r0, 8
adds r0, r2
orrs r4, r0
lsls r5, r1, 8
adds r1, r3
orrs r5, r1
movs r0, 0x40
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x44
adds r1, r5, 0
bl SetGpuReg
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8101A5C
thumb_func_start sub_8101A90
sub_8101A90: @ 8101A90
push {r4,r5,lr}
ldr r0, _08101AB8 @ =gUnknown_843F8F0
bl LoadSpriteSheets
ldr r0, _08101ABC @ =gUnknown_843F910
bl LoadSpritePalettes
movs r5, 0
ldr r4, _08101AC0 @ =gUnknown_843F938
_08101AA2:
adds r0, r4, 0
bl LoadCompressedSpriteSheet
adds r4, 0x8
adds r5, 0x1
cmp r5, 0x3
bls _08101AA2
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08101AB8: .4byte gUnknown_843F8F0
_08101ABC: .4byte gUnknown_843F910
_08101AC0: .4byte gUnknown_843F938
thumb_func_end sub_8101A90
thumb_func_start sub_8101AC4
sub_8101AC4: @ 8101AC4
push {lr}
bl GetEasyChatScreenFrameId
lsls r0, 24
ldr r1, _08101B10 @ =sPhraseFrameDimensions
lsrs r0, 22
adds r0, r1
ldrb r1, [r0]
lsls r1, 19
ldrb r2, [r0, 0x1]
adds r2, 0x1
lsls r2, 3
adds r2, 0x1
ldr r0, _08101B14 @ =gUnknown_843F968
movs r3, 0xD0
lsls r3, 12
adds r1, r3
asrs r1, 16
movs r3, 0x2
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r1, _08101B18 @ =gUnknown_203ACEC
ldr r2, [r1]
movs r1, 0xB6
lsls r1, 2
adds r2, r1
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r0, _08101B1C @ =gSprites
adds r1, r0
str r1, [r2]
movs r0, 0x1
strh r0, [r1, 0x30]
pop {r0}
bx r0
.align 2, 0
_08101B10: .4byte sPhraseFrameDimensions
_08101B14: .4byte gUnknown_843F968
_08101B18: .4byte gUnknown_203ACEC
_08101B1C: .4byte gSprites
thumb_func_end sub_8101AC4
thumb_func_start sub_8101B20
sub_8101B20: @ 8101B20
push {lr}
adds r1, r0, 0
movs r2, 0x30
ldrsh r0, [r1, r2]
cmp r0, 0
beq _08101B4E
ldrh r0, [r1, 0x2E]
adds r0, 0x1
strh r0, [r1, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
ble _08101B4E
movs r0, 0
strh r0, [r1, 0x2E]
ldrh r0, [r1, 0x24]
adds r0, 0x1
strh r0, [r1, 0x24]
lsls r0, 16
cmp r0, 0
ble _08101B4E
ldr r0, _08101B54 @ =0x0000fffa
strh r0, [r1, 0x24]
_08101B4E:
pop {r0}
bx r0
.align 2, 0
_08101B54: .4byte 0x0000fffa
thumb_func_end sub_8101B20
thumb_func_start sub_8101B58
sub_8101B58: @ 8101B58
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
ldr r2, _08101B84 @ =gUnknown_203ACEC
ldr r2, [r2]
movs r3, 0xB6
lsls r3, 2
adds r2, r3
ldr r3, [r2]
movs r4, 0
strh r0, [r3, 0x20]
ldr r0, [r2]
strh r1, [r0, 0x22]
ldr r0, [r2]
strh r4, [r0, 0x24]
ldr r0, [r2]
strh r4, [r0, 0x2E]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08101B84: .4byte gUnknown_203ACEC
thumb_func_end sub_8101B58
thumb_func_start sub_8101B88
sub_8101B88: @ 8101B88
ldr r0, _08101BA4 @ =gUnknown_203ACEC
ldr r1, [r0]
movs r0, 0xB6
lsls r0, 2
adds r1, r0
ldr r0, [r1]
movs r2, 0
strh r2, [r0, 0x2E]
ldr r0, [r1]
strh r2, [r0, 0x30]
ldr r0, [r1]
strh r2, [r0, 0x24]
bx lr
.align 2, 0
_08101BA4: .4byte gUnknown_203ACEC
thumb_func_end sub_8101B88
thumb_func_start sub_8101BA8
sub_8101BA8: @ 8101BA8
ldr r0, _08101BBC @ =gUnknown_203ACEC
ldr r0, [r0]
movs r1, 0xB6
lsls r1, 2
adds r0, r1
ldr r1, [r0]
movs r0, 0x1
strh r0, [r1, 0x30]
bx lr
.align 2, 0
_08101BBC: .4byte gUnknown_203ACEC
thumb_func_end sub_8101BA8
thumb_func_start sub_8101BC0
sub_8101BC0: @ 8101BC0
push {r4-r6,lr}
mov r6, r8
push {r6}
ldr r6, _08101C38 @ =gUnknown_843F9B8
adds r0, r6, 0
movs r1, 0
movs r2, 0
movs r3, 0x3
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r5, _08101C3C @ =gUnknown_203ACEC
ldr r2, [r5]
movs r1, 0xB7
lsls r1, 2
mov r8, r1
add r2, r8
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r4, _08101C40 @ =gSprites
adds r1, r4
str r1, [r2]
movs r0, 0x20
strh r0, [r1, 0x24]
adds r0, r6, 0
movs r1, 0
movs r2, 0
movs r3, 0x3
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r2, [r5]
movs r1, 0xB8
lsls r1, 2
adds r3, r2, r1
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
str r1, [r3]
ldr r0, _08101C44 @ =0x0000ffe0
strh r0, [r1, 0x24]
add r2, r8
ldr r1, [r2]
adds r1, 0x3F
ldrb r0, [r1]
movs r2, 0x1
orrs r0, r2
strb r0, [r1]
bl sub_8101C80
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08101C38: .4byte gUnknown_843F9B8
_08101C3C: .4byte gUnknown_203ACEC
_08101C40: .4byte gSprites
_08101C44: .4byte 0x0000ffe0
thumb_func_end sub_8101BC0
thumb_func_start sub_8101C48
sub_8101C48: @ 8101C48
push {r4-r6,lr}
ldr r5, _08101C7C @ =gUnknown_203ACEC
ldr r0, [r5]
movs r4, 0xB7
lsls r4, 2
adds r0, r4
ldr r0, [r0]
bl DestroySprite
ldr r0, [r5]
adds r4, r0, r4
movs r6, 0
str r6, [r4]
movs r4, 0xB8
lsls r4, 2
adds r0, r4
ldr r0, [r0]
bl DestroySprite
ldr r0, [r5]
adds r0, r4
str r6, [r0]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08101C7C: .4byte gUnknown_203ACEC
thumb_func_end sub_8101C48
thumb_func_start sub_8101C80
sub_8101C80: @ 8101C80
push {r4,lr}
sub sp, 0x4
ldr r0, _08101CC8 @ =gUnknown_203ACEC
ldr r1, [r0]
movs r2, 0xB7
lsls r2, 2
adds r0, r1, r2
ldr r0, [r0]
cmp r0, 0
beq _08101CDC
adds r2, 0x4
adds r0, r1, r2
ldr r0, [r0]
cmp r0, 0
beq _08101CDC
mov r4, sp
adds r4, 0x1
mov r0, sp
adds r1, r4, 0
bl sub_80FFE08
bl sub_80FFE1C
lsls r0, 24
cmp r0, 0
bne _08101CCC
mov r0, sp
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
movs r1, 0
ldrsb r1, [r4, r1]
bl sub_8101CE4
b _08101CDC
.align 2, 0
_08101CC8: .4byte gUnknown_203ACEC
_08101CCC:
mov r0, sp
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
movs r1, 0
ldrsb r1, [r4, r1]
bl sub_8101D9C
_08101CDC:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8101C80
thumb_func_start sub_8101CE4
sub_8101CE4: @ 8101CE4
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r1, 24
lsrs r7, r1, 24
lsls r0, 24
asrs r5, r0, 24
movs r0, 0x1
negs r0, r0
cmp r5, r0
beq _08101D48
ldr r0, _08101D44 @ =gUnknown_203ACEC
mov r8, r0
ldr r0, [r0]
movs r4, 0xB7
lsls r4, 2
adds r0, r4
ldr r0, [r0]
movs r1, 0
bl StartSpriteAnim
mov r2, r8
ldr r1, [r2]
adds r4, r1, r4
ldr r2, [r4]
movs r0, 0x54
muls r5, r0
adds r5, 0x3A
strh r5, [r2, 0x20]
ldr r0, [r4]
lsls r4, r7, 24
asrs r4, 20
adds r4, 0x60
strh r4, [r0, 0x22]
movs r6, 0xB8
lsls r6, 2
adds r1, r6
ldr r0, [r1]
movs r1, 0
bl StartSpriteAnim
mov r1, r8
ldr r0, [r1]
adds r0, r6
ldr r1, [r0]
strh r5, [r1, 0x20]
b _08101D8A
.align 2, 0
_08101D44: .4byte gUnknown_203ACEC
_08101D48:
ldr r6, _08101D98 @ =gUnknown_203ACEC
ldr r0, [r6]
movs r4, 0xB7
lsls r4, 2
adds r0, r4
ldr r0, [r0]
movs r1, 0x1
bl StartSpriteAnim
ldr r1, [r6]
adds r4, r1, r4
ldr r0, [r4]
movs r2, 0xD8
mov r8, r2
mov r2, r8
strh r2, [r0, 0x20]
ldr r0, [r4]
lsls r4, r7, 24
asrs r4, 20
adds r4, 0x70
strh r4, [r0, 0x22]
movs r5, 0xB8
lsls r5, 2
adds r1, r5
ldr r0, [r1]
movs r1, 0x1
bl StartSpriteAnim
ldr r0, [r6]
adds r0, r5
ldr r1, [r0]
mov r2, r8
strh r2, [r1, 0x20]
_08101D8A:
ldr r0, [r0]
strh r4, [r0, 0x22]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08101D98: .4byte gUnknown_203ACEC
thumb_func_end sub_8101CE4
thumb_func_start sub_8101D9C
sub_8101D9C: @ 8101D9C
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsls r1, 24
lsrs r5, r1, 24
lsrs r4, r0, 24
asrs r2, r0, 24
movs r0, 0x1
negs r0, r0
cmp r2, r0
beq _08101E2C
lsls r0, r5, 24
asrs r1, r0, 24
lsls r0, r1, 4
adds r0, 0x60
mov r8, r0
movs r7, 0x20
cmp r2, 0x6
bne _08101DCE
cmp r1, 0
bne _08101DCE
movs r7, 0x9D
movs r6, 0x2
b _08101DE4
_08101DCE:
ldr r3, _08101E24 @ =gUnknown_843F958
lsls r1, r4, 24
lsrs r0, r1, 24
movs r2, 0
cmp r0, 0x6
bhi _08101DDC
asrs r2, r1, 24
_08101DDC:
adds r0, r2, r3
ldrb r0, [r0]
adds r7, r0
movs r6, 0x3
_08101DE4:
ldr r5, _08101E28 @ =gUnknown_203ACEC
ldr r0, [r5]
movs r4, 0xB7
lsls r4, 2
adds r0, r4
ldr r0, [r0]
adds r1, r6, 0
bl StartSpriteAnim
ldr r1, [r5]
adds r4, r1, r4
ldr r0, [r4]
strh r7, [r0, 0x20]
ldr r0, [r4]
mov r2, r8
strh r2, [r0, 0x22]
movs r4, 0xB8
lsls r4, 2
adds r1, r4
ldr r0, [r1]
adds r1, r6, 0
bl StartSpriteAnim
ldr r0, [r5]
adds r0, r4
ldr r1, [r0]
strh r7, [r1, 0x20]
ldr r0, [r0]
mov r1, r8
strh r1, [r0, 0x22]
b _08101E72
.align 2, 0
_08101E24: .4byte gUnknown_843F958
_08101E28: .4byte gUnknown_203ACEC
_08101E2C:
ldr r6, _08101E7C @ =gUnknown_203ACEC
ldr r0, [r6]
movs r4, 0xB7
lsls r4, 2
adds r0, r4
ldr r0, [r0]
movs r1, 0x1
bl StartSpriteAnim
ldr r1, [r6]
adds r4, r1, r4
ldr r0, [r4]
movs r2, 0xD8
mov r8, r2
mov r2, r8
strh r2, [r0, 0x20]
ldr r0, [r4]
lsls r4, r5, 24
asrs r4, 20
adds r4, 0x70
strh r4, [r0, 0x22]
movs r5, 0xB8
lsls r5, 2
adds r1, r5
ldr r0, [r1]
movs r1, 0x1
bl StartSpriteAnim
ldr r0, [r6]
adds r0, r5
ldr r1, [r0]
mov r2, r8
strh r2, [r1, 0x20]
ldr r0, [r0]
strh r4, [r0, 0x22]
_08101E72:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08101E7C: .4byte gUnknown_203ACEC
thumb_func_end sub_8101D9C
thumb_func_start sub_8101E80
sub_8101E80: @ 8101E80
push {lr}
ldr r0, _08101EC4 @ =gUnknown_843F968
movs r1, 0
movs r2, 0
movs r3, 0x4
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r1, _08101EC8 @ =gUnknown_203ACEC
ldr r2, [r1]
movs r1, 0xB9
lsls r1, 2
adds r2, r1
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r0, _08101ECC @ =gSprites
adds r1, r0
str r1, [r2]
ldr r0, _08101ED0 @ =sub_8101ED4
str r0, [r1, 0x1C]
ldrb r2, [r1, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r2
movs r2, 0x8
orrs r0, r2
strb r0, [r1, 0x5]
bl sub_8101F04
pop {r0}
bx r0
.align 2, 0
_08101EC4: .4byte gUnknown_843F968
_08101EC8: .4byte gUnknown_203ACEC
_08101ECC: .4byte gSprites
_08101ED0: .4byte sub_8101ED4
thumb_func_end sub_8101E80
thumb_func_start sub_8101ED4
sub_8101ED4: @ 8101ED4
push {lr}
adds r1, r0, 0
ldrh r0, [r1, 0x2E]
adds r0, 0x1
strh r0, [r1, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
ble _08101EFA
movs r0, 0
strh r0, [r1, 0x2E]
ldrh r0, [r1, 0x24]
adds r0, 0x1
strh r0, [r1, 0x24]
lsls r0, 16
cmp r0, 0
ble _08101EFA
ldr r0, _08101F00 @ =0x0000fffa
strh r0, [r1, 0x24]
_08101EFA:
pop {r0}
bx r0
.align 2, 0
_08101F00: .4byte 0x0000fffa
thumb_func_end sub_8101ED4
thumb_func_start sub_8101F04
sub_8101F04: @ 8101F04
push {r4,lr}
sub sp, 0x4
mov r4, sp
adds r4, 0x1
mov r0, sp
adds r1, r4, 0
bl sub_80FFE34
mov r0, sp
movs r1, 0
ldrsb r1, [r0, r1]
movs r0, 0xD
muls r0, r1
adds r0, 0x3
lsls r0, 24
lsrs r0, 24
movs r1, 0
ldrsb r1, [r4, r1]
lsls r1, 25
movs r2, 0xB0
lsls r2, 20
adds r1, r2
lsrs r1, 24
bl sub_8101F40
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8101F04
thumb_func_start sub_8101F40
sub_8101F40: @ 8101F40
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r1, 24
lsrs r4, r1, 24
ldr r0, _08101F7C @ =gUnknown_203ACEC
ldr r0, [r0]
movs r1, 0xB9
lsls r1, 2
adds r3, r0, r1
ldr r1, [r3]
cmp r1, 0
beq _08101F74
lsls r0, r2, 3
adds r0, 0x4
movs r2, 0
strh r0, [r1, 0x20]
ldr r1, [r3]
adds r0, r4, 0x1
lsls r0, 3
adds r0, 0x1
strh r0, [r1, 0x22]
ldr r0, [r3]
strh r2, [r0, 0x24]
ldr r0, [r3]
strh r2, [r0, 0x2E]
_08101F74:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08101F7C: .4byte gUnknown_203ACEC
thumb_func_end sub_8101F40
thumb_func_start sub_8101F80
sub_8101F80: @ 8101F80
push {r4,lr}
ldr r4, _08101FA8 @ =gUnknown_203ACEC
ldr r0, [r4]
movs r1, 0xB9
lsls r1, 2
adds r0, r1
ldr r0, [r0]
cmp r0, 0
beq _08101FA2
bl DestroySprite
ldr r0, [r4]
movs r1, 0xB9
lsls r1, 2
adds r0, r1
movs r1, 0
str r1, [r0]
_08101FA2:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08101FA8: .4byte gUnknown_203ACEC
thumb_func_end sub_8101F80
thumb_func_start sub_8101FAC
sub_8101FAC: @ 8101FAC
push {r4-r6,lr}
ldr r0, _08102004 @ =gUnknown_843FA40
movs r1, 0xD0
movs r2, 0x80
movs r3, 0x6
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r5, _08102008 @ =gUnknown_203ACEC
ldr r2, [r5]
movs r1, 0xBA
lsls r1, 2
adds r2, r1
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r4, _0810200C @ =gSprites
adds r1, r4
str r1, [r2]
movs r6, 0
ldr r0, _08102010 @ =0x0000ffc0
strh r0, [r1, 0x24]
ldr r0, _08102014 @ =gUnknown_843FA20
movs r1, 0xD0
movs r2, 0x50
movs r3, 0x5
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r2, [r5]
movs r1, 0xBB
lsls r1, 2
adds r3, r2, r1
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
str r1, [r3]
strb r6, [r2, 0x9]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08102004: .4byte gUnknown_843FA40
_08102008: .4byte gUnknown_203ACEC
_0810200C: .4byte gSprites
_08102010: .4byte 0x0000ffc0
_08102014: .4byte gUnknown_843FA20
thumb_func_end sub_8101FAC
thumb_func_start sub_8102018
sub_8102018: @ 8102018
push {r4,lr}
ldr r4, _0810202C @ =gUnknown_203ACEC
ldr r2, [r4]
ldrb r3, [r2, 0x9]
cmp r3, 0
beq _08102030
cmp r3, 0x1
beq _08102088
movs r0, 0
b _081020A6
.align 2, 0
_0810202C: .4byte gUnknown_203ACEC
_08102030:
movs r0, 0xBA
lsls r0, 2
adds r2, r0
ldr r1, [r2]
ldrh r0, [r1, 0x24]
adds r0, 0x8
strh r0, [r1, 0x24]
ldr r2, [r2]
movs r1, 0x24
ldrsh r0, [r2, r1]
cmp r0, 0
blt _081020A4
strh r3, [r2, 0x24]
bl sub_80FFE1C
lsls r0, 24
cmp r0, 0
bne _08102066
ldr r0, [r4]
movs r1, 0xBB
lsls r1, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x1
bl StartSpriteAnim
b _08102076
_08102066:
ldr r0, [r4]
movs r1, 0xBB
lsls r1, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x2
bl StartSpriteAnim
_08102076:
ldr r0, _08102084 @ =gUnknown_203ACEC
ldr r1, [r0]
ldrb r0, [r1, 0x9]
adds r0, 0x1
strb r0, [r1, 0x9]
b _081020A4
.align 2, 0
_08102084: .4byte gUnknown_203ACEC
_08102088:
movs r1, 0xBB
lsls r1, 2
adds r0, r2, r1
ldr r0, [r0]
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _081020A4
movs r0, 0x2
strb r0, [r2, 0x9]
movs r0, 0
b _081020A6
_081020A4:
movs r0, 0x1
_081020A6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8102018
thumb_func_start sub_81020AC
sub_81020AC: @ 81020AC
push {lr}
ldr r2, _081020CC @ =gUnknown_203ACEC
ldr r1, [r2]
movs r0, 0
strb r0, [r1, 0x9]
ldr r0, [r2]
movs r1, 0xBB
lsls r1, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x3
bl StartSpriteAnim
pop {r0}
bx r0
.align 2, 0
_081020CC: .4byte gUnknown_203ACEC
thumb_func_end sub_81020AC
thumb_func_start sub_81020D0
sub_81020D0: @ 81020D0
push {r4-r6,lr}
ldr r5, _081020E4 @ =gUnknown_203ACEC
ldr r3, [r5]
ldrb r0, [r3, 0x9]
cmp r0, 0
beq _081020E8
cmp r0, 0x1
beq _08102102
movs r0, 0
b _08102154
.align 2, 0
_081020E4: .4byte gUnknown_203ACEC
_081020E8:
movs r1, 0xBB
lsls r1, 2
adds r0, r3, r1
ldr r0, [r0]
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _08102152
movs r0, 0x1
strb r0, [r3, 0x9]
b _08102152
_08102102:
movs r0, 0xBA
lsls r0, 2
adds r2, r3, r0
ldr r1, [r2]
ldrh r0, [r1, 0x24]
subs r0, 0x8
movs r6, 0
strh r0, [r1, 0x24]
ldr r0, [r2]
movs r2, 0x24
ldrsh r1, [r0, r2]
movs r0, 0x40
negs r0, r0
cmp r1, r0
bgt _08102152
movs r4, 0xBB
lsls r4, 2
adds r0, r3, r4
ldr r0, [r0]
bl DestroySprite
ldr r0, [r5]
movs r1, 0xBA
lsls r1, 2
adds r0, r1
ldr r0, [r0]
bl DestroySprite
ldr r1, [r5]
adds r4, r1, r4
str r6, [r4]
movs r2, 0xBA
lsls r2, 2
adds r0, r1, r2
str r6, [r0]
ldrb r0, [r1, 0x9]
adds r0, 0x1
strb r0, [r1, 0x9]
movs r0, 0
b _08102154
_08102152:
movs r0, 0x1
_08102154:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_81020D0
thumb_func_start sub_810215C
sub_810215C: @ 810215C
push {lr}
ldr r0, _08102174 @ =gUnknown_203ACEC
ldr r0, [r0]
movs r1, 0xBB
lsls r1, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x4
bl StartSpriteAnim
pop {r0}
bx r0
.align 2, 0
_08102174: .4byte gUnknown_203ACEC
thumb_func_end sub_810215C
thumb_func_start sub_8102178
sub_8102178: @ 8102178
push {lr}
bl sub_80FFE1C
lsls r0, 24
cmp r0, 0
bne _0810219C
ldr r0, _08102198 @ =gUnknown_203ACEC
ldr r0, [r0]
movs r1, 0xBB
lsls r1, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x1
bl StartSpriteAnim
b _081021AE
.align 2, 0
_08102198: .4byte gUnknown_203ACEC
_0810219C:
ldr r0, _081021B4 @ =gUnknown_203ACEC
ldr r0, [r0]
movs r1, 0xBB
lsls r1, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x2
bl StartSpriteAnim
_081021AE:
pop {r0}
bx r0
.align 2, 0
_081021B4: .4byte gUnknown_203ACEC
thumb_func_end sub_8102178
thumb_func_start sub_81021B8
sub_81021B8: @ 81021B8
ldr r0, _081021D0 @ =gUnknown_203ACEC
ldr r0, [r0]
movs r1, 0xBB
lsls r1, 2
adds r0, r1
ldr r0, [r0]
adds r0, 0x3F
ldrb r1, [r0]
lsrs r1, 4
movs r0, 0x1
bics r0, r1
bx lr
.align 2, 0
_081021D0: .4byte gUnknown_203ACEC
thumb_func_end sub_81021B8
thumb_func_start sub_81021D4
sub_81021D4: @ 81021D4
push {r4,lr}
ldr r4, _08102240 @ =gUnknown_843FA98
adds r0, r4, 0
movs r1, 0x60
movs r2, 0x50
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x40
beq _08102202
ldr r0, _08102244 @ =gUnknown_203ACEC
ldr r2, [r0]
movs r0, 0xBC
lsls r0, 2
adds r2, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08102248 @ =gSprites
adds r0, r1
str r0, [r2]
_08102202:
adds r0, r4, 0
movs r1, 0x60
movs r2, 0x9C
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x40
beq _08102236
ldr r0, _08102244 @ =gUnknown_203ACEC
ldr r2, [r0]
movs r0, 0xBD
lsls r0, 2
adds r2, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08102248 @ =gSprites
adds r0, r1
str r0, [r2]
adds r0, 0x3F
ldrb r1, [r0]
movs r2, 0x2
orrs r1, r2
strb r1, [r0]
_08102236:
bl sub_81022B0
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08102240: .4byte gUnknown_843FA98
_08102244: .4byte gUnknown_203ACEC
_08102248: .4byte gSprites
thumb_func_end sub_81021D4
thumb_func_start sub_810224C
sub_810224C: @ 810224C
push {r4-r6,lr}
bl sub_80FFE64
ldr r6, _081022AC @ =gUnknown_203ACEC
ldr r1, [r6]
movs r2, 0xBC
lsls r2, 2
adds r1, r2
ldr r1, [r1]
movs r2, 0
cmp r0, 0
bne _08102266
movs r2, 0x1
_08102266:
adds r3, r1, 0
adds r3, 0x3E
movs r4, 0x1
lsls r2, 2
ldrb r1, [r3]
movs r5, 0x5
negs r5, r5
adds r0, r5, 0
ands r0, r1
orrs r0, r2
strb r0, [r3]
bl sub_80FFE98
ldr r1, [r6]
movs r2, 0xBD
lsls r2, 2
adds r1, r2
ldr r1, [r1]
movs r2, 0
cmp r0, 0
bne _08102292
movs r2, 0x1
_08102292:
adds r3, r1, 0
adds r3, 0x3E
adds r1, r4, 0
ands r1, r2
lsls r1, 2
ldrb r2, [r3]
adds r0, r5, 0
ands r0, r2
orrs r0, r1
strb r0, [r3]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_081022AC: .4byte gUnknown_203ACEC
thumb_func_end sub_810224C
thumb_func_start sub_81022B0
sub_81022B0: @ 81022B0
ldr r3, _081022DC @ =gUnknown_203ACEC
ldr r0, [r3]
movs r1, 0xBC
lsls r1, 2
adds r0, r1
ldr r1, [r0]
adds r1, 0x3E
ldrb r0, [r1]
movs r2, 0x4
orrs r0, r2
strb r0, [r1]
ldr r0, [r3]
movs r1, 0xBD
lsls r1, 2
adds r0, r1
ldr r1, [r0]
adds r1, 0x3E
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
bx lr
.align 2, 0
_081022DC: .4byte gUnknown_203ACEC
thumb_func_end sub_81022B0
thumb_func_start sub_81022E0
sub_81022E0: @ 81022E0
push {lr}
cmp r0, 0
bne _081022FC
ldr r0, _081022F8 @ =gUnknown_203ACEC
ldr r2, [r0]
movs r1, 0xBC
lsls r1, 2
adds r0, r2, r1
ldr r0, [r0]
movs r1, 0x60
b _0810230A
.align 2, 0
_081022F8: .4byte gUnknown_203ACEC
_081022FC:
ldr r0, _0810231C @ =gUnknown_203ACEC
ldr r2, [r0]
movs r1, 0xBC
lsls r1, 2
adds r0, r2, r1
ldr r0, [r0]
movs r1, 0x78
_0810230A:
strh r1, [r0, 0x20]
movs r3, 0xBD
lsls r3, 2
adds r0, r2, r3
ldr r0, [r0]
strh r1, [r0, 0x20]
pop {r0}
bx r0
.align 2, 0
_0810231C: .4byte gUnknown_203ACEC
thumb_func_end sub_81022E0
thumb_func_start sub_8102320
sub_8102320: @ 8102320
push {r4,lr}
ldr r4, _08102388 @ =gUnknown_843FA80
adds r0, r4, 0
movs r1, 0xDC
movs r2, 0x54
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x40
beq _0810234E
ldr r0, _0810238C @ =gUnknown_203ACEC
ldr r2, [r0]
movs r0, 0xBE
lsls r0, 2
adds r2, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08102390 @ =gSprites
adds r0, r1
str r0, [r2]
_0810234E:
adds r0, r4, 0
movs r1, 0xDC
movs r2, 0x9C
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x40
beq _0810237E
ldr r0, _0810238C @ =gUnknown_203ACEC
ldr r2, [r0]
movs r0, 0xBF
lsls r0, 2
adds r2, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08102390 @ =gSprites
adds r0, r1
str r0, [r2]
movs r1, 0x1
bl StartSpriteAnim
_0810237E:
bl sub_81023F8
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08102388: .4byte gUnknown_843FA80
_0810238C: .4byte gUnknown_203ACEC
_08102390: .4byte gSprites
thumb_func_end sub_8102320
thumb_func_start sub_8102394
sub_8102394: @ 8102394
push {r4-r6,lr}
bl sub_80FFE64
ldr r6, _081023F4 @ =gUnknown_203ACEC
ldr r1, [r6]
movs r2, 0xBE
lsls r2, 2
adds r1, r2
ldr r1, [r1]
movs r2, 0
cmp r0, 0
bne _081023AE
movs r2, 0x1
_081023AE:
adds r3, r1, 0
adds r3, 0x3E
movs r4, 0x1
lsls r2, 2
ldrb r1, [r3]
movs r5, 0x5
negs r5, r5
adds r0, r5, 0
ands r0, r1
orrs r0, r2
strb r0, [r3]
bl sub_80FFE98
ldr r1, [r6]
movs r2, 0xBF
lsls r2, 2
adds r1, r2
ldr r1, [r1]
movs r2, 0
cmp r0, 0
bne _081023DA
movs r2, 0x1
_081023DA:
adds r3, r1, 0
adds r3, 0x3E
adds r1, r4, 0
ands r1, r2
lsls r1, 2
ldrb r2, [r3]
adds r0, r5, 0
ands r0, r2
orrs r0, r1
strb r0, [r3]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_081023F4: .4byte gUnknown_203ACEC
thumb_func_end sub_8102394
thumb_func_start sub_81023F8
sub_81023F8: @ 81023F8
ldr r3, _08102424 @ =gUnknown_203ACEC
ldr r0, [r3]
movs r1, 0xBE
lsls r1, 2
adds r0, r1
ldr r1, [r0]
adds r1, 0x3E
ldrb r0, [r1]
movs r2, 0x4
orrs r0, r2
strb r0, [r1]
ldr r0, [r3]
movs r1, 0xBF
lsls r1, 2
adds r0, r1
ldr r1, [r0]
adds r1, 0x3E
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
bx lr
.align 2, 0
_08102424: .4byte gUnknown_203ACEC
thumb_func_end sub_81023F8
thumb_func_start sub_8102428
sub_8102428: @ 8102428
push {r4,lr}
sub sp, 0x14
ldr r3, _081024A8 @ =0xffffff00
ldr r0, [sp, 0xC]
ands r0, r3
movs r1, 0x3
orrs r0, r1
ldr r2, _081024AC @ =0xffff00ff
ands r0, r2
movs r1, 0x80
lsls r1, 3
orrs r0, r1
ldr r1, _081024B0 @ =0xff00ffff
ands r0, r1
movs r1, 0xB0
lsls r1, 12
orrs r0, r1
ldr r1, _081024B4 @ =0x00ffffff
ands r0, r1
movs r1, 0xC0
lsls r1, 21
orrs r0, r1
str r0, [sp, 0xC]
ldr r0, [sp, 0x10]
ands r0, r3
movs r1, 0x2
orrs r0, r1
ands r0, r2
movs r1, 0xB0
lsls r1, 4
orrs r0, r1
ldr r1, _081024B8 @ =0x0000ffff
ands r0, r1
movs r1, 0xC0
lsls r1, 14
orrs r0, r1
str r0, [sp, 0x10]
add r0, sp, 0xC
bl AddWindow
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r2, _081024BC @ =gUnknown_841EE2B
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
str r0, [sp, 0x8]
adds r0, r4, 0
movs r1, 0x1
movs r3, 0
bl sub_8100D84
adds r0, r4, 0
bl PutWindowTilemap
add sp, 0x14
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081024A8: .4byte 0xffffff00
_081024AC: .4byte 0xffff00ff
_081024B0: .4byte 0xff00ffff
_081024B4: .4byte 0x00ffffff
_081024B8: .4byte 0x0000ffff
_081024BC: .4byte gUnknown_841EE2B
thumb_func_end sub_8102428
.align 2, 0 @ Don't pad with nop.