pokeemerald/asm/easy_chat.s
2019-02-22 11:46:05 -06:00

5492 lines
80 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_811CE94
sub_811CE94: @ 811CE94
push {r4,lr}
ldr r4, =gUnknown_0203A11C
movs r0, 0x98
lsls r0, 5
bl Alloc
adds r2, r0, 0
str r2, [r4]
cmp r2, 0
beq _0811CEFC
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]
bl sub_811BC70
ldr r1, [r4]
strb r0, [r1, 0xA]
movs r0, 0x1
b _0811CEFE
.pool
_0811CEFC:
movs r0, 0
_0811CEFE:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_811CE94
thumb_func_start sub_811CF04
sub_811CF04: @ 811CF04
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_811CF04
thumb_func_start sub_811CF64
sub_811CF64: @ 811CF64
push {r4,lr}
bl ResetPaletteFade
ldr r0, =gEasyChatMode_Pal
movs r1, 0
movs r2, 0x20
bl LoadPalette
ldr r0, =gUnknown_08597B14
movs r1, 0x10
movs r2, 0x20
bl LoadPalette
ldr r0, =gUnknown_08597B34
movs r1, 0x40
movs r2, 0x20
bl LoadPalette
ldr r0, =gUnknown_08597C1C
movs r1, 0xA0
movs r2, 0x8
bl LoadPalette
ldr r4, =gUnknown_08597C24
adds r0, r4, 0
movs r1, 0xB0
movs r2, 0xC
bl LoadPalette
adds r0, r4, 0
movs r1, 0xF0
movs r2, 0xC
bl LoadPalette
adds r0, r4, 0
movs r1, 0x30
movs r2, 0xC
bl LoadPalette
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_811CF64
thumb_func_start sub_811CFCC
sub_811CFCC: @ 811CFCC
push {r4,r5,lr}
sub sp, 0x14
bl sub_811BA88
adds r5, r0, 0
cmp r5, 0
beq _0811D020
movs r0, 0x1
adds r1, r5, 0
movs r2, 0x90
bl GetStringCenterAlignXOffset
adds r4, r0, 0
movs r0, 0
movs r1, 0
bl FillWindowPixelBuffer
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
str r0, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
movs r0, 0
str r0, [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_811D058
movs r0, 0
bl PutWindowTilemap
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
_0811D020:
add sp, 0x14
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_811CFCC
thumb_func_start sub_811D028
sub_811D028: @ 811D028
push {r4-r6,lr}
sub sp, 0xC
ldr r4, [sp, 0x1C]
ldr r5, [sp, 0x20]
ldr r6, [sp, 0x24]
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r3, 24
lsrs r3, 24
lsls r4, 24
lsrs r4, 24
lsls r5, 24
lsrs r5, 24
str r4, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
bl AddTextPrinterParameterized
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_811D028
thumb_func_start sub_811D058
sub_811D058: @ 811D058
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
mov r9, r3
ldr r3, [sp, 0x30]
ldr r4, [sp, 0x34]
mov r8, r4
ldr r7, [sp, 0x38]
mov r10, r7
ldr r5, [sp, 0x3C]
ldr r6, [sp, 0x40]
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
mov r4, r9
lsls r4, 24
lsrs r4, 24
mov r9, r4
lsls r3, 24
lsrs r3, 24
lsls r5, 24
lsrs r5, 24
lsls r6, 24
lsrs r6, 24
add r4, sp, 0xC
mov r7, r10
strb r7, [r4]
strb r5, [r4, 0x1]
strb r6, [r4, 0x2]
str r4, [sp]
mov r4, r8
lsls r4, 24
asrs r4, 24
str r4, [sp, 0x4]
str r2, [sp, 0x8]
mov r2, r9
bl AddTextPrinterParameterized3
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_811D058
thumb_func_start sub_811D0BC
sub_811D0BC: @ 811D0BC
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 LoadUserWindowBorderGfx
movs r0, 0x1
movs r1, 0x1
movs r2, 0xE
bl sub_8098858
movs r0, 0
bl sub_811D104
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
bl CopyBgTilemapBufferToVram
add sp, 0xC
pop {r0}
bx r0
thumb_func_end sub_811D0BC
thumb_func_start sub_811D104
sub_811D104: @ 811D104
push {lr}
sub sp, 0x14
lsls r0, 24
lsrs r1, r0, 24
movs r0, 0
str r0, [sp, 0x10]
str r0, [sp, 0xC]
cmp r1, 0x9
bhi _0811D1BC
lsls r0, r1, 2
ldr r1, =_0811D124
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0811D124:
.4byte _0811D14C
.4byte _0811D16A
.4byte _0811D156
.4byte _0811D160
.4byte _0811D174
.4byte _0811D180
.4byte _0811D18C
.4byte _0811D19C
.4byte _0811D1A8
.4byte _0811D1B4
_0811D14C:
add r1, sp, 0x10
add r0, sp, 0xC
bl sub_811BAD0
b _0811D1BC
_0811D156:
add r1, sp, 0x10
add r0, sp, 0xC
bl sub_811BB40
b _0811D1BC
_0811D160:
add r1, sp, 0x10
add r0, sp, 0xC
bl sub_811BB08
b _0811D1BC
_0811D16A:
add r1, sp, 0x10
add r0, sp, 0xC
bl sub_811BB88
b _0811D1BC
_0811D174:
ldr r0, =gText_CreateAQuiz
str r0, [sp, 0xC]
b _0811D1BC
.pool
_0811D180:
ldr r0, =gText_SelectTheAnswer
str r0, [sp, 0xC]
b _0811D1BC
.pool
_0811D18C:
ldr r0, =gText_OnlyOnePhrase
str r0, [sp, 0xC]
ldr r0, =gText_OriginalSongWillBeUsed
b _0811D1BA
.pool
_0811D19C:
ldr r0, =gText_LyricsCantBeDeleted
str r0, [sp, 0xC]
b _0811D1BC
.pool
_0811D1A8:
ldr r0, =gText_CombineTwoWordsOrPhrases3
str r0, [sp, 0xC]
b _0811D1BC
.pool
_0811D1B4:
ldr r0, =gText_YouCannotQuitHere
str r0, [sp, 0xC]
ldr r0, =gText_SectionMustBeCompleted
_0811D1BA:
str r0, [sp, 0x10]
_0811D1BC:
movs r0, 0x1
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r2, [sp, 0xC]
cmp r2, 0
beq _0811D1E0
movs r0, 0x1
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_811D028
_0811D1E0:
ldr r2, [sp, 0x10]
cmp r2, 0
beq _0811D1FC
movs r0, 0x11
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_811D028
_0811D1FC:
movs r0, 0x1
movs r1, 0x3
bl CopyWindowToVram
add sp, 0x14
pop {r0}
bx r0
.pool
thumb_func_end sub_811D104
thumb_func_start sub_811D214
sub_811D214: @ 811D214
push {lr}
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
ldr r0, =gUnknown_08597C84
movs r1, 0x1
movs r2, 0xE
bl CreateYesNoMenu
pop {r0}
bx r0
.pool
thumb_func_end sub_811D214
thumb_func_start sub_811D230
sub_811D230: @ 811D230
push {r4-r6,lr}
sub sp, 0x8
bl sub_811BA68
lsls r0, 24
ldr r6, =0xffffff00
ldr r4, [sp]
ands r4, r6
movs r1, 0x3
orrs r4, r1
str r4, [sp]
ldr r1, =gUnknown_08597C30
lsrs r0, 22
adds r0, r1
ldrb r3, [r0]
lsls r1, r3, 27
lsrs r1, 19
ldr r5, =0xffff00ff
adds r2, r5, 0
ands r2, r4
orrs r2, r1
lsrs r3, 5
lsls r3, 16
ldr r1, =0xff00ffff
ands r2, r1
orrs r2, r3
str r2, [sp]
ldrb r3, [r0, 0x1]
lsls r3, 24
ldr r1, =0x00ffffff
ands r1, r2
orrs r1, r3
str r1, [sp]
ldrb r1, [r0, 0x2]
ldr r0, [sp, 0x4]
ands r0, r6
orrs r0, r1
ands r0, r5
movs r1, 0xB0
lsls r1, 4
orrs r0, r1
ldr r1, =0x0000ffff
ands r0, r1
movs r1, 0xD8
lsls r1, 15
orrs r0, r1
str r0, [sp, 0x4]
mov r0, sp
bl AddWindow
ldr r1, =gUnknown_0203A11C
ldr r1, [r1]
strh r0, [r1, 0x2]
lsls r0, 24
lsrs r0, 24
bl PutWindowTilemap
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_811D230
thumb_func_start sub_811D2C8
sub_811D2C8: @ 811D2C8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x18
bl sub_811BA94
adds r4, r0, 0
bl sub_811BAAC
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x10]
bl sub_811BAA0
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x14]
bl sub_811BA68
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0
mov r8, r0
cmp r6, 0x7
bne _0811D302
movs r1, 0x1
mov r8, r1
_0811D302:
ldr r0, =gUnknown_0203A11C
ldr r0, [r0]
ldrb r0, [r0, 0x2]
movs r1, 0x11
bl FillWindowPixelBuffer
movs r7, 0
ldr r0, [sp, 0x14]
cmp r7, r0
bge _0811D402
_0811D316:
add r0, sp, 0xC
ldr r1, =gUnknown_08597C8C
movs r2, 0x4
bl memcpy
mov r1, r8
cmp r1, 0
beq _0811D32C
add r1, sp, 0xC
movs r0, 0x6
strb r0, [r1, 0x2]
_0811D32C:
ldr r0, =gUnknown_0203A11C
ldr r1, [r0]
adds r2, r1, 0
adds r2, 0xB
movs r0, 0xFF
strb r0, [r1, 0xB]
adds r0, r2, 0
add r1, sp, 0xC
bl StringAppend
adds r2, r0, 0
movs r5, 0
lsls r0, r7, 4
mov r9, r0
adds r1, r7, 0x1
mov r10, r1
b _0811D3CE
.pool
_0811D358:
ldrh r0, [r4]
ldr r1, =0x0000ffff
cmp r0, r1
beq _0811D374
adds r1, r0, 0
adds r0, r2, 0
bl CopyEasyChatWord
adds r2, r0, 0
adds r4, 0x2
b _0811D3A2
.pool
_0811D374:
adds r4, 0x2
mov r0, r8
cmp r0, 0
bne _0811D3A8
adds r0, r2, 0
movs r1, 0
movs r2, 0x4
bl WriteColorChangeControlCode
adds r2, r0, 0
movs r1, 0xAE
movs r0, 0xB
_0811D38C:
strb r1, [r2]
adds r2, 0x1
subs r0, 0x1
cmp r0, 0
bge _0811D38C
adds r0, r2, 0
movs r1, 0
movs r2, 0x2
bl WriteColorChangeControlCode
adds r2, r0, 0
_0811D3A2:
mov r1, r8
cmp r1, 0
beq _0811D3AE
_0811D3A8:
add r1, sp, 0xC
movs r0, 0x3
strb r0, [r1, 0x2]
_0811D3AE:
adds r0, r2, 0
add r1, sp, 0xC
bl StringAppend
adds r2, r0, 0
cmp r6, 0x2
beq _0811D3C4
cmp r6, 0x7
beq _0811D3C4
cmp r6, 0x8
bne _0811D3CC
_0811D3C4:
cmp r5, 0
bne _0811D3CC
cmp r7, 0x4
beq _0811D3D4
_0811D3CC:
adds r5, 0x1
_0811D3CE:
ldr r0, [sp, 0x10]
cmp r5, r0
blt _0811D358
_0811D3D4:
movs r0, 0xFF
strb r0, [r2]
ldr r0, =gUnknown_0203A11C
ldr r2, [r0]
ldrb r0, [r2, 0x2]
adds r2, 0xB
mov r1, r9
adds r1, 0x1
lsls r1, 24
lsrs r1, 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_811D028
mov r7, r10
ldr r1, [sp, 0x14]
cmp r7, r1
blt _0811D316
_0811D402:
ldr r0, =gUnknown_0203A11C
ldr r0, [r0]
ldrb r0, [r0, 0x2]
movs r1, 0x3
bl CopyWindowToVram
add sp, 0x18
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_811D2C8
thumb_func_start sub_811D424
sub_811D424: @ 811D424
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
mov r8, r0
bl sub_811BA68
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0
str r0, [sp]
ldr r2, =0x01000200
mov r0, sp
mov r1, r8
bl CpuFastSet
cmp r6, 0x2
beq _0811D450
cmp r6, 0x8
bne _0811D4D4
_0811D450:
ldr r0, =gUnknown_08597C30
lsls r2, r6, 2
adds r2, r0
ldrb r1, [r2]
lsls r3, r1, 27
lsrs r0, r3, 27
ldrb r4, [r2, 0x1]
adds r5, r0, r4
lsls r1, 24
lsrs r0, r1, 29
ldrb r2, [r2, 0x2]
adds r2, r0
mov r12, r2
adds r6, r0, 0
cmp r6, r12
blt _0811D472
b _0811D5D6
_0811D472:
mov r9, r3
_0811D474:
mov r0, r9
lsrs r3, r0, 27
subs r7, r3, 0x1
lsls r2, r6, 5
adds r0, r2, r7
lsls r0, 1
add r0, r8
ldr r4, =0x00001005
adds r1, r4, 0
strh r1, [r0]
adds r7, r3, 0
adds r3, r2, 0
adds r4, r6, 0x1
cmp r7, r5
bge _0811D4AE
movs r0, 0x80
lsls r0, 5
adds r2, r0, 0
lsls r1, r7, 1
lsls r0, r6, 6
add r0, r8
adds r0, r1, r0
subs r7, r5, r7
_0811D4A2:
strh r2, [r0]
adds r0, 0x2
subs r7, 0x1
cmp r7, 0
bne _0811D4A2
adds r7, r5, 0
_0811D4AE:
adds r0, r3, r7
lsls r0, 1
add r0, r8
ldr r2, =0x00001007
adds r1, r2, 0
strh r1, [r0]
adds r6, r4, 0
cmp r6, r12
blt _0811D474
b _0811D5D6
.pool
_0811D4D4:
ldr r4, =gUnknown_08597C30
mov r10, r4
lsls r6, 2
mov r9, r6
mov r3, r9
add r3, r10
ldrb r0, [r3]
lsls r2, r0, 24
lsrs r1, r2, 29
subs r6, r1, 0x1
lsls r0, 27
lsrs r4, r0, 27
subs r7, r4, 0x1
adds r0, r4, 0
ldrb r1, [r3, 0x1]
adds r5, r0, r1
lsrs r2, 29
ldrb r3, [r3, 0x2]
adds r3, r2
mov r12, r3
lsls r0, r6, 5
adds r0, r7
lsls r0, 1
add r0, r8
ldr r2, =0x00001001
adds r1, r2, 0
strh r1, [r0]
adds r7, r4, 0
cmp r7, r5
bge _0811D52A
ldr r4, =0x00001002
adds r2, r4, 0
lsls r1, r7, 1
lsls r0, r6, 6
add r0, r8
adds r1, r0
subs r7, r5, r7
_0811D51E:
strh r2, [r1]
adds r1, 0x2
subs r7, 0x1
cmp r7, 0
bne _0811D51E
adds r7, r5, 0
_0811D52A:
lsls r0, r6, 5
adds r0, r7
lsls r0, 1
add r0, r8
ldr r2, =0x00001003
adds r1, r2, 0
strh r1, [r0]
adds r6, 0x1
cmp r6, r12
bge _0811D590
ldr r0, =gUnknown_08597C30
add r0, r9
ldrb r0, [r0]
lsls r3, r0, 27
_0811D546:
lsrs r0, r3, 27
subs r7, r0, 0x1
lsls r1, r6, 5
adds r1, r7
lsls r1, 1
add r1, r8
ldr r4, =0x00001005
adds r2, r4, 0
strh r2, [r1]
adds r7, r0, 0
adds r4, r6, 0x1
cmp r7, r5
bge _0811D57C
movs r0, 0x80
lsls r0, 5
adds r2, r0, 0
lsls r1, r7, 1
lsls r0, r6, 6
add r0, r8
adds r1, r0
subs r7, r5, r7
_0811D570:
strh r2, [r1]
adds r1, 0x2
subs r7, 0x1
cmp r7, 0
bne _0811D570
adds r7, r5, 0
_0811D57C:
lsls r0, r6, 5
adds r0, r7
lsls r0, 1
add r0, r8
ldr r2, =0x00001007
adds r1, r2, 0
strh r1, [r0]
adds r6, r4, 0
cmp r6, r12
blt _0811D546
_0811D590:
mov r0, r9
add r0, r10
ldrb r2, [r0]
lsls r2, 27
lsrs r2, 27
subs r7, r2, 0x1
lsls r3, r6, 5
adds r0, r3, r7
lsls r0, 1
add r0, r8
ldr r4, =0x00001009
adds r1, r4, 0
strh r1, [r0]
adds r7, r2, 0
cmp r7, r5
bge _0811D5CA
ldr r0, =0x0000100a
adds r2, r0, 0
lsls r1, r7, 1
lsls r0, r6, 6
add r0, r8
adds r0, r1, r0
subs r7, r5, r7
_0811D5BE:
strh r2, [r0]
adds r0, 0x2
subs r7, 0x1
cmp r7, 0
bne _0811D5BE
adds r7, r5, 0
_0811D5CA:
adds r0, r3, r7
lsls r0, 1
add r0, r8
ldr r2, =0x0000100b
adds r1, r2, 0
strh r1, [r0]
_0811D5D6:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_811D424
thumb_func_start sub_811D60C
sub_811D60C: @ 811D60C
push {r4,lr}
sub sp, 0x8
movs r0, 0x3
bl GetBgTilemapBuffer
adds r4, r0, 0
bl sub_811BA68
lsls r0, 24
ldr r1, =gUnknown_08597C30
lsrs r0, 22
adds r0, r1
ldrb r1, [r0, 0x3]
cmp r1, 0x2
beq _0811D63E
cmp r1, 0x2
bgt _0811D638
cmp r1, 0x1
beq _0811D64C
b _0811D67C
.pool
_0811D638:
cmp r1, 0x3
beq _0811D668
b _0811D67C
_0811D63E:
movs r0, 0xA8
lsls r0, 3
adds r4, r0
movs r0, 0x20
str r0, [sp]
str r1, [sp, 0x4]
b _0811D65A
_0811D64C:
movs r0, 0xC0
lsls r0, 3
adds r4, r0
movs r0, 0x20
str r0, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
_0811D65A:
movs r0, 0x3
adds r1, r4, 0
movs r2, 0
movs r3, 0xB
bl CopyToBgTilemapBufferRect
b _0811D67C
_0811D668:
movs r0, 0x20
str r0, [sp]
movs r0, 0x4
str r0, [sp, 0x4]
movs r0, 0x3
adds r1, r4, 0
movs r2, 0
movs r3, 0xA
bl CopyToBgTilemapBufferRect
_0811D67C:
add sp, 0x8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_811D60C
thumb_func_start sub_811D684
sub_811D684: @ 811D684
push {lr}
movs r0, 0x2
bl PutWindowTilemap
movs r0, 0x2
bl CopyBgTilemapBufferToVram
pop {r0}
bx r0
thumb_func_end sub_811D684
thumb_func_start sub_811D698
sub_811D698: @ 811D698
push {r4,lr}
adds r4, r0, 0
bl sub_811DD84
movs r0, 0x2
movs r1, 0x11
bl FillWindowPixelBuffer
cmp r4, 0x1
beq _0811D6BC
cmp r4, 0x1
bcc _0811D6B6
cmp r4, 0x2
beq _0811D6C2
b _0811D6C6
_0811D6B6:
bl sub_811D6F4
b _0811D6C6
_0811D6BC:
bl sub_811D758
b _0811D6C6
_0811D6C2:
bl sub_811D794
_0811D6C6:
movs r0, 0x2
movs r1, 0x2
bl CopyWindowToVram
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_811D698
thumb_func_start sub_811D6D4
sub_811D6D4: @ 811D6D4
push {lr}
bl sub_811BBB0
lsls r0, 24
cmp r0, 0
bne _0811D6E8
movs r0, 0
bl sub_811D698
b _0811D6EE
_0811D6E8:
movs r0, 0x1
bl sub_811D698
_0811D6EE:
pop {r0}
bx r0
thumb_func_end sub_811D6D4
thumb_func_start sub_811D6F4
sub_811D6F4: @ 811D6F4
push {r4-r7,lr}
sub sp, 0xC
movs r5, 0
movs r7, 0x61
_0811D6FC:
movs r4, 0
lsls r0, r7, 24
lsrs r6, r0, 24
_0811D702:
lsls r0, r5, 24
lsrs r0, 24
adds r5, 0x1
bl sub_811F3B8
lsls r0, 24
lsrs r0, 24
cmp r0, 0x16
beq _0811D742
bl sub_811F424
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_811D028
adds r4, 0x1
cmp r4, 0x1
ble _0811D702
adds r7, 0x10
b _0811D6FC
_0811D742:
bl sub_811BBBC
lsls r0, 24
lsrs r0, 24
movs r1, 0
bl sub_811DDAC
add sp, 0xC
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_811D6F4
thumb_func_start sub_811D758
sub_811D758: @ 811D758
push {r4-r6,lr}
sub sp, 0xC
movs r5, 0
movs r4, 0xC2
lsls r4, 23
ldr r6, =gUnknown_08597C90
_0811D764:
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_811D028
movs r0, 0x80
lsls r0, 21
adds r4, r0
adds r5, 0x1
cmp r5, 0x3
bls _0811D764
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_811D758
thumb_func_start sub_811D794
sub_811D794: @ 811D794
push {lr}
movs r0, 0
movs r1, 0x4
bl sub_811D864
pop {r0}
bx r0
thumb_func_end sub_811D794
thumb_func_start sub_811D7A4
sub_811D7A4: @ 811D7A4
push {r4,lr}
bl sub_811BBDC
adds r4, r0, 0
adds r4, 0x3
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
movs r1, 0x1
bl sub_811D950
adds r0, r4, 0
movs r1, 0x1
bl sub_811D864
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_811D7A4
thumb_func_start sub_811D7C8
sub_811D7C8: @ 811D7C8
push {r4,lr}
bl sub_811BBDC
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
movs r1, 0x1
bl sub_811D950
adds r0, r4, 0
movs r1, 0x1
bl sub_811D864
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_811D7C8
thumb_func_start sub_811D7EC
sub_811D7EC: @ 811D7EC
push {r4,r5,lr}
bl sub_811BBDC
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
adds r0, r5, 0x4
lsls r0, 24
lsrs r4, r0, 24
bl sub_811BBE8
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
cmp r4, r0
bls _0811D80E
adds r4, r0, 0
_0811D80E:
cmp r5, r4
bcs _0811D828
subs r4, r5
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
adds r1, r4, 0
bl sub_811D950
adds r0, r5, 0
adds r1, r4, 0
bl sub_811D864
_0811D828:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_811D7EC
thumb_func_start sub_811D830
sub_811D830: @ 811D830
push {r4,r5,lr}
bl sub_811BBDC
lsls r0, 24
lsrs r5, r0, 24
bl sub_811DE48
lsls r0, 24
lsrs r0, 24
cmp r5, r0
bcs _0811D85C
subs r4, r0, r5
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
adds r1, r4, 0
bl sub_811D950
adds r0, r5, 0
adds r1, r4, 0
bl sub_811D864
_0811D85C:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_811D830
thumb_func_start sub_811D864
sub_811D864: @ 811D864
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x18
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
str r1, [sp, 0x14]
lsls r1, r0, 1
mov r8, r1
lsls r0, 4
adds r1, r0, 0
adds r1, 0x60
movs r0, 0xFF
ands r1, r0
adds r1, 0x1
movs r0, 0
b _0811D930
_0811D88E:
movs r6, 0
movs r2, 0x10
adds r2, r1
mov r9, r2
adds r0, 0x1
mov r10, r0
lsls r0, r1, 24
lsrs r7, r0, 24
_0811D89E:
mov r1, r8
lsls r0, r1, 16
lsrs r0, 16
movs r2, 0x1
add r8, r2
bl sub_811F578
lsls r0, 16
lsrs r4, r0, 16
ldr r0, =0x0000ffff
cmp r4, r0
beq _0811D926
ldr r5, =gUnknown_0203A11C
ldr r0, [r5]
adds r0, 0xCC
adds r1, r4, 0
movs r2, 0
bl CopyEasyChatWordPadded
adds r0, r4, 0
bl sub_811BF88
adds r1, r0, 0
cmp r1, 0
bne _0811D8FC
ldr r2, [r5]
adds r2, 0xCC
movs r0, 0xD
adds r3, r6, 0
muls r3, r0
adds r3, 0x3
lsls r3, 27
lsrs r3, 24
str r7, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
str r1, [sp, 0x8]
movs r0, 0x2
movs r1, 0x1
bl sub_811D028
b _0811D926
.pool
_0811D8FC:
ldr r2, [r5]
adds r2, 0xCC
movs r0, 0xD
adds r3, r6, 0
muls r3, r0
adds r3, 0x3
lsls r3, 27
lsrs r3, 24
str r7, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x5
str r0, [sp, 0xC]
movs r0, 0x3
str r0, [sp, 0x10]
movs r0, 0x2
movs r1, 0x1
bl sub_811D058
_0811D926:
adds r6, 0x1
cmp r6, 0x1
ble _0811D89E
mov r1, r9
mov r0, r10
_0811D930:
ldr r2, [sp, 0x14]
cmp r0, r2
blt _0811D88E
movs r0, 0x2
movs r1, 0x2
bl CopyWindowToVram
add sp, 0x18
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_811D864
thumb_func_start sub_811D950
sub_811D950: @ 811D950
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 _0811D97C
ldr r0, =0xffffff00
adds r4, r1, r0
movs r0, 0x80
lsls r0, 1
subs r0, r3
b _0811D97E
.pool
_0811D97C:
movs r4, 0
_0811D97E:
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 _0811D9AA
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
_0811D9AA:
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_811D950
thumb_func_start sub_811D9B4
sub_811D9B4: @ 811D9B4
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_811D9B4
thumb_func_start sub_811D9CC
sub_811D9CC: @ 811D9CC
push {lr}
ldr r1, =gUnknown_0203A11C
cmp r0, 0x6
bhi _0811DA86
lsls r0, 2
ldr r1, =_0811D9E8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0811D9E8:
.4byte _0811DA04
.4byte _0811DA18
.4byte _0811DA28
.4byte _0811DA3C
.4byte _0811DA50
.4byte _0811DA64
.4byte _0811DA78
_0811DA04:
ldr r1, =gUnknown_0203A11C
ldr r2, [r1]
movs r0, 0
strb r0, [r2, 0x6]
ldr r2, [r1]
movs r0, 0xA
b _0811DA84
.pool
_0811DA18:
ldr r1, =gUnknown_0203A11C
ldr r2, [r1]
movs r3, 0
movs r0, 0x9
b _0811DA44
.pool
_0811DA28:
ldr r1, =gUnknown_0203A11C
ldr r2, [r1]
movs r0, 0xB
strb r0, [r2, 0x6]
ldr r2, [r1]
movs r0, 0x11
b _0811DA84
.pool
_0811DA3C:
ldr r1, =gUnknown_0203A11C
ldr r2, [r1]
movs r3, 0
movs r0, 0x11
_0811DA44:
strb r0, [r2, 0x6]
ldr r0, [r1]
strb r3, [r0, 0x7]
b _0811DA86
.pool
_0811DA50:
ldr r1, =gUnknown_0203A11C
ldr r2, [r1]
movs r0, 0x11
strb r0, [r2, 0x6]
ldr r2, [r1]
movs r0, 0xA
b _0811DA84
.pool
_0811DA64:
ldr r1, =gUnknown_0203A11C
ldr r2, [r1]
movs r0, 0x12
strb r0, [r2, 0x6]
ldr r2, [r1]
movs r0, 0x16
b _0811DA84
.pool
_0811DA78:
ldr r1, =gUnknown_0203A11C
ldr r2, [r1]
movs r0, 0x16
strb r0, [r2, 0x6]
ldr r2, [r1]
movs r0, 0x12
_0811DA84:
strb r0, [r2, 0x7]
_0811DA86:
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 _0811DA98
movs r2, 0x1
_0811DA98:
strb r2, [r1, 0x8]
pop {r0}
bx r0
.pool
thumb_func_end sub_811D9CC
thumb_func_start sub_811DAA4
sub_811DAA4: @ 811DAA4
push {r4,lr}
ldr r4, =gUnknown_0203A11C
ldr r1, [r4]
ldrb r2, [r1, 0x6]
ldrb r0, [r1, 0x7]
cmp r2, r0
beq _0811DAD4
ldrb r0, [r1, 0x8]
adds r0, r2, r0
strb r0, [r1, 0x6]
ldr r0, [r4]
ldrb r0, [r0, 0x6]
bl sub_811DADC
ldr r0, [r4]
ldrb r1, [r0, 0x6]
ldrb r0, [r0, 0x7]
eors r1, r0
negs r0, r1
orrs r0, r1
lsrs r0, 31
b _0811DAD6
.pool
_0811DAD4:
movs r0, 0
_0811DAD6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_811DAA4
thumb_func_start sub_811DADC
sub_811DADC: @ 811DADC
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 _0811DAFE
b _0811DC1A
_0811DAFE:
lsls r0, r4, 2
ldr r1, =_0811DB0C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0811DB0C:
.4byte _0811DC1A
.4byte _0811DB68
.4byte _0811DB70
.4byte _0811DB78
.4byte _0811DB80
.4byte _0811DB88
.4byte _0811DB90
.4byte _0811DC00
.4byte _0811DBF2
.4byte _0811DBE4
.4byte _0811DBD6
.4byte _0811DB9E
.4byte _0811DBA6
.4byte _0811DBAE
.4byte _0811DBB6
.4byte _0811DBBE
.4byte _0811DBC6
.4byte _0811DBCE
.4byte _0811DBD6
.4byte _0811DBE4
.4byte _0811DBF2
.4byte _0811DC00
.4byte _0811DC0E
_0811DB68:
movs r0, 0xB
movs r1, 0xE
movs r2, 0x3
b _0811DB96
_0811DB70:
movs r0, 0x9
movs r1, 0xE
movs r2, 0x7
b _0811DB96
_0811DB78:
movs r0, 0x7
movs r1, 0xE
movs r2, 0xB
b _0811DB96
_0811DB80:
movs r0, 0x5
movs r1, 0xE
movs r2, 0xF
b _0811DB96
_0811DB88:
movs r0, 0x3
movs r1, 0xE
movs r2, 0x13
b _0811DB96
_0811DB90:
movs r0, 0x1
movs r1, 0xE
movs r2, 0x17
_0811DB96:
movs r3, 0x2
bl sub_811DC28
b _0811DC1A
_0811DB9E:
movs r0, 0x1
movs r1, 0xA
movs r2, 0x18
b _0811DBDC
_0811DBA6:
movs r0, 0x1
movs r1, 0xA
movs r2, 0x19
b _0811DBDC
_0811DBAE:
movs r0, 0x1
movs r1, 0xA
movs r2, 0x1A
b _0811DBDC
_0811DBB6:
movs r0, 0x1
movs r1, 0xA
movs r2, 0x1B
b _0811DBDC
_0811DBBE:
movs r0, 0x1
movs r1, 0xA
movs r2, 0x1C
b _0811DBDC
_0811DBC6:
movs r0, 0x1
movs r1, 0xA
movs r2, 0x1D
b _0811DBDC
_0811DBCE:
movs r0, 0
movs r1, 0xA
movs r2, 0x1E
b _0811DBDC
_0811DBD6:
movs r0, 0x1
movs r1, 0xA
movs r2, 0x17
_0811DBDC:
movs r3, 0xA
bl sub_811DC28
b _0811DC1A
_0811DBE4:
movs r0, 0x1
movs r1, 0xB
movs r2, 0x17
movs r3, 0x8
bl sub_811DC28
b _0811DC1A
_0811DBF2:
movs r0, 0x1
movs r1, 0xC
movs r2, 0x17
movs r3, 0x6
bl sub_811DC28
b _0811DC1A
_0811DC00:
movs r0, 0x1
movs r1, 0xD
movs r2, 0x17
movs r3, 0x4
bl sub_811DC28
b _0811DC1A
_0811DC0E:
movs r0, 0x1
movs r1, 0xE
movs r2, 0x17
movs r3, 0x2
bl sub_811DC28
_0811DC1A:
movs r0, 0x1
bl CopyBgTilemapBufferToVram
add sp, 0x8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_811DADC
thumb_func_start sub_811DC28
sub_811DC28: @ 811DC28
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, =gUnknown_0203A11C
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, =0x00004001
adds r1, r4, 0
strh r1, [r0]
adds r2, 0x1
cmp r2, r5
bge _0811DC84
ldr r0, =0x00004002
adds r4, r0, 0
lsls r1, r2, 1
lsls r0, r3, 6
adds r0, r6
adds r1, r0
subs r2, r5, r2
_0811DC78:
strh r4, [r1]
adds r1, 0x2
subs r2, 0x1
cmp r2, 0
bne _0811DC78
adds r2, r5, 0
_0811DC84:
lsls r0, r3, 5
adds r0, r2
lsls r0, 1
adds r0, r6
ldr r2, =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 _0811DCF4
lsls r7, r4, 1
mov r9, r7
_0811DCB0:
lsls r0, r3, 5
add r0, r12
lsls r0, 1
adds r0, r6
ldr r2, =0x00004005
adds r1, r2, 0
strh r1, [r0]
adds r2, r4, 0
adds r7, r3, 0x1
cmp r4, r5
bge _0811DCE0
movs r0, 0x80
lsls r0, 7
adds r1, r0, 0
lsls r0, r3, 6
adds r0, r6
add r0, r9
subs r2, r5, r4
_0811DCD4:
strh r1, [r0]
adds r0, 0x2
subs r2, 0x1
cmp r2, 0
bne _0811DCD4
adds r2, r5, 0
_0811DCE0:
lsls r0, r3, 5
adds r0, r2
lsls r0, 1
adds r0, r6
ldr r2, =0x00004007
adds r1, r2, 0
strh r1, [r0]
adds r3, r7, 0
cmp r3, r8
blt _0811DCB0
_0811DCF4:
lsls r0, r3, 5
mov r7, r12
adds r1, r0, r7
lsls r1, 1
adds r1, r6
ldr r7, =0x00004009
adds r2, r7, 0
strh r2, [r1]
adds r2, r4, 0
mov r12, r0
cmp r4, r5
bge _0811DD26
ldr r0, =0x0000400a
adds r7, r0, 0
lsls r1, r4, 1
lsls r0, r3, 6
adds r0, r6
adds r0, r1, r0
subs r2, r5, r4
_0811DD1A:
strh r7, [r0]
adds r0, 0x2
subs r2, 0x1
cmp r2, 0
bne _0811DD1A
adds r2, r5, 0
_0811DD26:
mov r1, r12
adds r0, r1, r2
lsls r0, 1
adds r0, r6
ldr r2, =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_811DE5C
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_811DC28
thumb_func_start sub_811DD84
sub_811DD84: @ 811DD84
push {lr}
movs r1, 0x80
lsls r1, 4
movs r0, 0x2
movs r2, 0
bl ChangeBgY
ldr r0, =gUnknown_0203A11C
ldr r0, [r0]
ldr r1, =0x000002ce
adds r0, r1
movs r1, 0
strh r1, [r0]
pop {r0}
bx r0
.pool
thumb_func_end sub_811DD84
thumb_func_start sub_811DDAC
sub_811DDAC: @ 811DDAC
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, =gUnknown_0203A11C
ldr r3, [r0]
ldr r0, =0x000002ce
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 _0811DE00
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 _0811DE0A
negs r0, r0
str r0, [r1]
b _0811DE0A
.pool
_0811DE00:
movs r0, 0x2
adds r1, r2, 0
movs r2, 0
bl ChangeBgY
_0811DE0A:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_811DDAC
thumb_func_start sub_811DE10
sub_811DE10: @ 811DE10
push {lr}
movs r0, 0x2
bl GetBgY
ldr r1, =gUnknown_0203A11C
ldr r2, [r1]
movs r3, 0xB4
lsls r3, 2
adds r1, r2, r3
ldr r1, [r1]
cmp r0, r1
beq _0811DE40
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 _0811DE42
.pool
_0811DE40:
movs r0, 0
_0811DE42:
pop {r1}
bx r1
thumb_func_end sub_811DE10
thumb_func_start sub_811DE48
sub_811DE48: @ 811DE48
ldr r0, =gUnknown_0203A11C
ldr r0, [r0]
ldr r1, =0x000002ce
adds r0, r1
ldrh r0, [r0]
bx lr
.pool
thumb_func_end sub_811DE48
thumb_func_start sub_811DE5C
sub_811DE5C: @ 811DE5C
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_811DE5C
thumb_func_start sub_811DE90
sub_811DE90: @ 811DE90
push {r4,r5,lr}
ldr r0, =gUnknown_08597CA0
bl LoadSpriteSheets
ldr r0, =gUnknown_08597CC0
bl LoadSpritePalettes
movs r5, 0
ldr r4, =gUnknown_08597CE8
_0811DEA2:
adds r0, r4, 0
bl LoadCompressedSpriteSheet
adds r4, 0x8
adds r5, 0x1
cmp r5, 0x3
bls _0811DEA2
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_811DE90
thumb_func_start sub_811DEC4
sub_811DEC4: @ 811DEC4
push {lr}
bl sub_811BA68
lsls r0, 24
ldr r1, =gUnknown_08597C30
lsrs r0, 22
adds r0, r1
ldrb r2, [r0]
lsls r1, r2, 27
lsrs r1, 8
lsrs r2, 5
lsls r2, 19
ldr r0, =gUnknown_08597D18
movs r3, 0xD0
lsls r3, 12
adds r1, r3
asrs r1, 16
movs r3, 0x80
lsls r3, 12
adds r2, r3
asrs r2, 16
movs r3, 0x2
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnknown_0203A11C
ldr r2, [r1]
movs r1, 0xB6
lsls r1, 2
adds r2, r1
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r0, =gSprites
adds r1, r0
str r1, [r2]
movs r0, 0x1
strh r0, [r1, 0x30]
pop {r0}
bx r0
.pool
thumb_func_end sub_811DEC4
thumb_func_start sub_811DF28
sub_811DF28: @ 811DF28
push {lr}
adds r1, r0, 0
movs r2, 0x30
ldrsh r0, [r1, r2]
cmp r0, 0
beq _0811DF56
ldrh r0, [r1, 0x2E]
adds r0, 0x1
strh r0, [r1, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
ble _0811DF56
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 _0811DF56
ldr r0, =0x0000fffa
strh r0, [r1, 0x24]
_0811DF56:
pop {r0}
bx r0
.pool
thumb_func_end sub_811DF28
thumb_func_start sub_811DF60
sub_811DF60: @ 811DF60
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
ldr r2, =gUnknown_0203A11C
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
.pool
thumb_func_end sub_811DF60
thumb_func_start sub_811DF90
sub_811DF90: @ 811DF90
ldr r0, =gUnknown_0203A11C
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
.pool
thumb_func_end sub_811DF90
thumb_func_start sub_811DFB0
sub_811DFB0: @ 811DFB0
ldr r0, =gUnknown_0203A11C
ldr r0, [r0]
movs r1, 0xB6
lsls r1, 2
adds r0, r1
ldr r1, [r0]
movs r0, 0x1
strh r0, [r1, 0x30]
bx lr
.pool
thumb_func_end sub_811DFB0
thumb_func_start sub_811DFC8
sub_811DFC8: @ 811DFC8
push {r4-r6,lr}
mov r6, r8
push {r6}
ldr r6, =gUnknown_08597D68
adds r0, r6, 0
movs r1, 0
movs r2, 0
movs r3, 0x3
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r5, =gUnknown_0203A11C
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, =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, =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_811E088
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_811DFC8
thumb_func_start sub_811E050
sub_811E050: @ 811E050
push {r4-r6,lr}
ldr r5, =gUnknown_0203A11C
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
.pool
thumb_func_end sub_811E050
thumb_func_start sub_811E088
sub_811E088: @ 811E088
push {r4,lr}
sub sp, 0x4
ldr r0, =gUnknown_0203A11C
ldr r1, [r0]
movs r2, 0xB7
lsls r2, 2
adds r0, r1, r2
ldr r0, [r0]
cmp r0, 0
beq _0811E0E4
adds r2, 0x4
adds r0, r1, r2
ldr r0, [r0]
cmp r0, 0
beq _0811E0E4
mov r4, sp
adds r4, 0x1
mov r0, sp
adds r1, r4, 0
bl sub_811BB9C
bl sub_811BBB0
lsls r0, 24
cmp r0, 0
bne _0811E0D4
mov r0, sp
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
movs r1, 0
ldrsb r1, [r4, r1]
bl sub_811E0EC
b _0811E0E4
.pool
_0811E0D4:
mov r0, sp
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
movs r1, 0
ldrsb r1, [r4, r1]
bl sub_811E1A4
_0811E0E4:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_811E088
thumb_func_start sub_811E0EC
sub_811E0EC: @ 811E0EC
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 _0811E150
ldr r0, =gUnknown_0203A11C
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 _0811E192
.pool
_0811E150:
ldr r6, =gUnknown_0203A11C
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]
_0811E192:
ldr r0, [r0]
strh r4, [r0, 0x22]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_811E0EC
thumb_func_start sub_811E1A4
sub_811E1A4: @ 811E1A4
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 _0811E234
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 _0811E1D6
cmp r1, 0
bne _0811E1D6
movs r7, 0x9E
movs r6, 0x2
b _0811E1EC
_0811E1D6:
ldr r3, =gUnknown_08597D08
lsls r1, r4, 24
lsrs r0, r1, 24
movs r2, 0
cmp r0, 0x6
bhi _0811E1E4
asrs r2, r1, 24
_0811E1E4:
adds r0, r2, r3
ldrb r0, [r0]
adds r7, r0
movs r6, 0x3
_0811E1EC:
ldr r5, =gUnknown_0203A11C
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 _0811E27A
.pool
_0811E234:
ldr r6, =gUnknown_0203A11C
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]
_0811E27A:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_811E1A4
thumb_func_start sub_811E288
sub_811E288: @ 811E288
push {lr}
ldr r0, =gUnknown_08597D18
movs r1, 0
movs r2, 0
movs r3, 0x4
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnknown_0203A11C
ldr r2, [r1]
movs r1, 0xB9
lsls r1, 2
adds r2, r1
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r0, =gSprites
adds r1, r0
str r1, [r2]
ldr r0, =sub_811E2DC
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_811E30C
pop {r0}
bx r0
.pool
thumb_func_end sub_811E288
thumb_func_start sub_811E2DC
sub_811E2DC: @ 811E2DC
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 _0811E302
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 _0811E302
ldr r0, =0x0000fffa
strh r0, [r1, 0x24]
_0811E302:
pop {r0}
bx r0
.pool
thumb_func_end sub_811E2DC
thumb_func_start sub_811E30C
sub_811E30C: @ 811E30C
push {r4,lr}
sub sp, 0x4
mov r4, sp
adds r4, 0x1
mov r0, sp
adds r1, r4, 0
bl sub_811BBC8
mov r0, sp
movs r1, 0
ldrsb r1, [r0, r1]
movs r0, 0xD
muls r0, r1
lsls r0, 27
movs r1, 0
ldrsb r1, [r4, r1]
lsls r1, 28
movs r2, 0xE0
lsls r2, 21
adds r0, r2
lsrs r0, 24
movs r2, 0xC0
lsls r2, 23
adds r1, r2
lsrs r1, 24
bl sub_811E34C
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_811E30C
thumb_func_start sub_811E34C
sub_811E34C: @ 811E34C
push {r4,lr}
lsls r0, 24
lsrs r3, r0, 24
lsls r1, 24
lsrs r4, r1, 24
ldr r0, =gUnknown_0203A11C
ldr r0, [r0]
movs r1, 0xB9
lsls r1, 2
adds r2, r0, r1
ldr r0, [r2]
cmp r0, 0
beq _0811E376
movs r1, 0
strh r3, [r0, 0x20]
ldr r0, [r2]
strh r4, [r0, 0x22]
ldr r0, [r2]
strh r1, [r0, 0x24]
ldr r0, [r2]
strh r1, [r0, 0x2E]
_0811E376:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_811E34C
thumb_func_start sub_811E380
sub_811E380: @ 811E380
push {r4,lr}
ldr r4, =gUnknown_0203A11C
ldr r0, [r4]
movs r1, 0xB9
lsls r1, 2
adds r0, r1
ldr r0, [r0]
cmp r0, 0
beq _0811E3A2
bl DestroySprite
ldr r0, [r4]
movs r1, 0xB9
lsls r1, 2
adds r0, r1
movs r1, 0
str r1, [r0]
_0811E3A2:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_811E380
thumb_func_start sub_811E3AC
sub_811E3AC: @ 811E3AC
push {r4-r6,lr}
ldr r0, =gUnknown_08597DF0
movs r1, 0xD0
movs r2, 0x80
movs r3, 0x6
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r5, =gUnknown_0203A11C
ldr r2, [r5]
movs r1, 0xBA
lsls r1, 2
adds r2, r1
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r4, =gSprites
adds r1, r4
str r1, [r2]
movs r6, 0
ldr r0, =0x0000ffc0
strh r0, [r1, 0x24]
ldr r0, =gUnknown_08597DD0
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
.pool
thumb_func_end sub_811E3AC
thumb_func_start sub_811E418
sub_811E418: @ 811E418
push {r4,lr}
ldr r4, =gUnknown_0203A11C
ldr r2, [r4]
ldrb r3, [r2, 0x9]
cmp r3, 0
beq _0811E430
cmp r3, 0x1
beq _0811E488
movs r0, 0
b _0811E4A6
.pool
_0811E430:
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 _0811E4A4
strh r3, [r2, 0x24]
bl sub_811BBB0
lsls r0, 24
cmp r0, 0
bne _0811E466
ldr r0, [r4]
movs r1, 0xBB
lsls r1, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x1
bl StartSpriteAnim
b _0811E476
_0811E466:
ldr r0, [r4]
movs r1, 0xBB
lsls r1, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x2
bl StartSpriteAnim
_0811E476:
ldr r0, =gUnknown_0203A11C
ldr r1, [r0]
ldrb r0, [r1, 0x9]
adds r0, 0x1
strb r0, [r1, 0x9]
b _0811E4A4
.pool
_0811E488:
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 _0811E4A4
movs r0, 0x2
strb r0, [r2, 0x9]
movs r0, 0
b _0811E4A6
_0811E4A4:
movs r0, 0x1
_0811E4A6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_811E418
thumb_func_start sub_811E4AC
sub_811E4AC: @ 811E4AC
push {lr}
ldr r2, =gUnknown_0203A11C
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
.pool
thumb_func_end sub_811E4AC
thumb_func_start sub_811E4D0
sub_811E4D0: @ 811E4D0
push {r4-r6,lr}
ldr r5, =gUnknown_0203A11C
ldr r3, [r5]
ldrb r0, [r3, 0x9]
cmp r0, 0
beq _0811E4E8
cmp r0, 0x1
beq _0811E502
movs r0, 0
b _0811E554
.pool
_0811E4E8:
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 _0811E552
movs r0, 0x1
strb r0, [r3, 0x9]
b _0811E552
_0811E502:
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 _0811E552
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 _0811E554
_0811E552:
movs r0, 0x1
_0811E554:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_811E4D0
thumb_func_start sub_811E55C
sub_811E55C: @ 811E55C
push {lr}
ldr r0, =gUnknown_0203A11C
ldr r0, [r0]
movs r1, 0xBB
lsls r1, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x4
bl StartSpriteAnim
pop {r0}
bx r0
.pool
thumb_func_end sub_811E55C
thumb_func_start sub_811E578
sub_811E578: @ 811E578
push {lr}
bl sub_811BBB0
lsls r0, 24
cmp r0, 0
bne _0811E59C
ldr r0, =gUnknown_0203A11C
ldr r0, [r0]
movs r1, 0xBB
lsls r1, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x1
bl StartSpriteAnim
b _0811E5AE
.pool
_0811E59C:
ldr r0, =gUnknown_0203A11C
ldr r0, [r0]
movs r1, 0xBB
lsls r1, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x2
bl StartSpriteAnim
_0811E5AE:
pop {r0}
bx r0
.pool
thumb_func_end sub_811E578
thumb_func_start sub_811E5B8
sub_811E5B8: @ 811E5B8
ldr r0, =gUnknown_0203A11C
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
.pool
thumb_func_end sub_811E5B8
thumb_func_start sub_811E5D4
sub_811E5D4: @ 811E5D4
push {r4,lr}
ldr r4, =gUnknown_08597E48
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 _0811E602
ldr r0, =gUnknown_0203A11C
ldr r2, [r0]
movs r0, 0xBC
lsls r0, 2
adds r2, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
str r0, [r2]
_0811E602:
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 _0811E636
ldr r0, =gUnknown_0203A11C
ldr r2, [r0]
movs r0, 0xBD
lsls r0, 2
adds r2, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
str r0, [r2]
adds r0, 0x3F
ldrb r1, [r0]
movs r2, 0x2
orrs r1, r2
strb r1, [r0]
_0811E636:
bl sub_811E6B0
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_811E5D4
thumb_func_start sub_811E64C
sub_811E64C: @ 811E64C
push {r4-r6,lr}
bl sub_811BBF8
ldr r6, =gUnknown_0203A11C
ldr r1, [r6]
movs r2, 0xBC
lsls r2, 2
adds r1, r2
ldr r1, [r1]
movs r2, 0
cmp r0, 0
bne _0811E666
movs r2, 0x1
_0811E666:
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_811BC2C
ldr r1, [r6]
movs r2, 0xBD
lsls r2, 2
adds r1, r2
ldr r1, [r1]
movs r2, 0
cmp r0, 0
bne _0811E692
movs r2, 0x1
_0811E692:
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
.pool
thumb_func_end sub_811E64C
thumb_func_start sub_811E6B0
sub_811E6B0: @ 811E6B0
ldr r3, =gUnknown_0203A11C
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
.pool
thumb_func_end sub_811E6B0
thumb_func_start sub_811E6E0
sub_811E6E0: @ 811E6E0
push {lr}
cmp r0, 0
bne _0811E6FC
ldr r0, =gUnknown_0203A11C
ldr r2, [r0]
movs r1, 0xBC
lsls r1, 2
adds r0, r2, r1
ldr r0, [r0]
movs r1, 0x60
b _0811E70A
.pool
_0811E6FC:
ldr r0, =gUnknown_0203A11C
ldr r2, [r0]
movs r1, 0xBC
lsls r1, 2
adds r0, r2, r1
ldr r0, [r0]
movs r1, 0x78
_0811E70A:
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
.pool
thumb_func_end sub_811E6E0
thumb_func_start sub_811E720
sub_811E720: @ 811E720
push {r4,lr}
ldr r4, =gUnknown_08597E30
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 _0811E74E
ldr r0, =gUnknown_0203A11C
ldr r2, [r0]
movs r0, 0xBE
lsls r0, 2
adds r2, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
str r0, [r2]
_0811E74E:
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 _0811E77E
ldr r0, =gUnknown_0203A11C
ldr r2, [r0]
movs r0, 0xBF
lsls r0, 2
adds r2, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
str r0, [r2]
movs r1, 0x1
bl StartSpriteAnim
_0811E77E:
bl sub_811E7F8
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_811E720
thumb_func_start sub_811E794
sub_811E794: @ 811E794
push {r4-r6,lr}
bl sub_811BBF8
ldr r6, =gUnknown_0203A11C
ldr r1, [r6]
movs r2, 0xBE
lsls r2, 2
adds r1, r2
ldr r1, [r1]
movs r2, 0
cmp r0, 0
bne _0811E7AE
movs r2, 0x1
_0811E7AE:
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_811BC2C
ldr r1, [r6]
movs r2, 0xBF
lsls r2, 2
adds r1, r2
ldr r1, [r1]
movs r2, 0
cmp r0, 0
bne _0811E7DA
movs r2, 0x1
_0811E7DA:
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
.pool
thumb_func_end sub_811E794
thumb_func_start sub_811E7F8
sub_811E7F8: @ 811E7F8
ldr r3, =gUnknown_0203A11C
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
.pool
thumb_func_end sub_811E7F8
thumb_func_start sub_811E828
sub_811E828: @ 811E828
push {r4,r5,lr}
sub sp, 0x4
bl sub_811BCBC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0811E84C
cmp r0, 0x1
bgt _0811E842
cmp r0, 0
beq _0811E848
b _0811E8D0
_0811E842:
cmp r0, 0x2
beq _0811E850
b _0811E8D0
_0811E848:
movs r4, 0x43
b _0811E852
_0811E84C:
movs r4, 0x44
b _0811E852
_0811E850:
movs r4, 0x7
_0811E852:
bl sub_811BA68
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bne _0811E8D0
adds r0, r4, 0
ldr r5, =SpriteCallbackDummy
movs r4, 0
str r4, [sp]
adds r1, r5, 0
movs r2, 0x4C
movs r3, 0x28
bl AddPseudoEventObject
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x40
beq _0811E892
ldr r1, =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r2, [r0, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r2
strb r1, [r0, 0x5]
movs r1, 0x2
bl StartSpriteAnim
_0811E892:
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
movs r1, 0x69
cmp r0, 0
bne _0811E8A0
movs r1, 0x64
_0811E8A0:
str r4, [sp]
adds r0, r1, 0
adds r1, r5, 0
movs r2, 0x34
movs r3, 0x28
bl AddPseudoEventObject
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x40
beq _0811E8D0
ldr r1, =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r2, [r0, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r2
strb r1, [r0, 0x5]
movs r1, 0x3
bl StartSpriteAnim
_0811E8D0:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_811E828
thumb_func_start sub_811E8E4
sub_811E8E4: @ 811E8E4
push {lr}
bl sub_811BA68
lsls r0, 24
ldr r1, =gUnknown_08597C30
lsrs r0, 22
adds r0, r1
ldrb r0, [r0, 0x3]
cmp r0, 0x1
beq _0811E90E
cmp r0, 0x1
bgt _0811E908
cmp r0, 0
beq _0811E916
b _0811E91A
.pool
_0811E908:
cmp r0, 0x2
beq _0811E912
b _0811E91A
_0811E90E:
movs r0, 0x1
b _0811E91C
_0811E912:
movs r0, 0x2
b _0811E91C
_0811E916:
movs r0, 0
b _0811E91C
_0811E91A:
movs r0, 0x3
_0811E91C:
pop {r1}
bx r1
thumb_func_end sub_811E8E4
thumb_func_start sub_811E920
sub_811E920: @ 811E920
push {r4,lr}
adds r4, r0, 0
bl sub_811E8E4
adds r1, r0, 0
cmp r1, 0x2
ble _0811E932
movs r0, 0
b _0811E93E
_0811E932:
ldr r0, =gUnknown_08597E60
lsls r1, 2
adds r1, r4, r1
adds r1, r0
ldrb r0, [r1]
adds r0, 0x4
_0811E93E:
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_811E920
thumb_func_start sub_811E948
sub_811E948: @ 811E948
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
bl sub_811E8E4
mov r8, r0
cmp r0, 0x3
beq _0811E9FA
ldr r3, =0xffffff00
ldr r0, [sp, 0xC]
ands r0, r3
movs r1, 0x3
orrs r0, r1
ldr r2, =0xffff00ff
ands r0, r2
adds r1, 0xFD
orrs r0, r1
ldr r1, =0xff00ffff
ands r0, r1
movs r1, 0xB0
lsls r1, 12
orrs r0, r1
ldr r1, =0x00ffffff
ands r0, r1
movs r1, 0xE0
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, =0x0000ffff
ands r0, r1
movs r1, 0xD0
lsls r1, 14
orrs r0, r1
str r0, [sp, 0x10]
add r0, sp, 0xC
bl AddWindow
lsls r0, 16
lsrs r7, r0, 16
lsls r4, r7, 24
lsrs r0, r4, 24
movs r1, 0x11
bl FillWindowPixelBuffer
movs r6, 0
mov r0, r8
lsls r1, r0, 4
ldr r0, =gUnknown_08597E6C
adds r5, r1, r0
ldr r1, =gUnknown_08597E60
mov r10, r1
mov r9, r4
_0811E9C6:
ldr r2, [r5]
lsls r4, r7, 24
cmp r2, 0
beq _0811E9EC
mov r1, r8
lsls r0, r1, 2
adds r0, r6, r0
add r0, r10
ldrb r3, [r0]
movs r0, 0x1
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
str r0, [sp, 0x8]
mov r1, r9
lsrs r0, r1, 24
movs r1, 0x1
bl sub_811D028
_0811E9EC:
adds r5, 0x4
adds r6, 0x1
cmp r6, 0x3
ble _0811E9C6
lsrs r0, r4, 24
bl PutWindowTilemap
_0811E9FA:
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_811E948
thumb_func_start sub_811EA28
sub_811EA28: @ 811EA28
push {lr}
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
cmp r0, 0x14
beq _0811EA4E
cmp r0, 0x14
bgt _0811EA48
cmp r0, 0x11
blt _0811EA66
ldr r0, =0x00000864 @ = FLAG_SYS_GAME_CLEAR
bl FlagGet
b _0811EA60
.pool
_0811EA48:
cmp r1, 0x15
beq _0811EA5C
b _0811EA66
_0811EA4E:
ldr r0, =0x00000866
bl FlagGet
b _0811EA60
.pool
_0811EA5C:
bl sub_811F0F8
_0811EA60:
lsls r0, 24
lsrs r0, 24
b _0811EA68
_0811EA66:
movs r0, 0x1
_0811EA68:
pop {r1}
bx r1
thumb_func_end sub_811EA28
thumb_func_start EasyChat_GetNumWordsInGroup
EasyChat_GetNumWordsInGroup: @ 811EA6C
push {r4,lr}
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
cmp r0, 0
bne _0811EA84
movs r0, 0
bl GetNationalPokedexCount
lsls r0, 16
lsrs r0, 16
b _0811EA9A
_0811EA84:
bl sub_811EA28
lsls r0, 24
cmp r0, 0
bne _0811EA92
movs r0, 0
b _0811EA9A
_0811EA92:
ldr r0, =gEasyChatGroups
lsls r1, r4, 3
adds r1, r0
ldrh r0, [r1, 0x6]
_0811EA9A:
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end EasyChat_GetNumWordsInGroup
thumb_func_start sub_811EAA4
sub_811EAA4: @ 811EAA4
push {r4,r5,lr}
lsls r2, r0, 16
lsrs r1, r2, 16
ldr r0, =0x0000ffff
cmp r1, r0
beq _0811EB04
lsrs r3, r2, 25
ldr r5, =0x000001ff
ands r5, r1
cmp r3, 0x15
bhi _0811EB08
ldr r0, =gEasyChatGroups
lsls r2, r3, 3
adds r1, r2, r0
ldrh r4, [r1, 0x4]
cmp r3, 0x13
bgt _0811EADC
cmp r3, 0x12
bge _0811EAE0
cmp r3, 0
beq _0811EAE0
b _0811EB00
.pool
_0811EADC:
cmp r3, 0x15
bne _0811EB00
_0811EAE0:
adds r0, r2, r0
ldr r2, [r0]
movs r1, 0
cmp r1, r4
bcs _0811EB08
_0811EAEA:
lsls r0, r1, 1
adds r0, r2
ldrh r0, [r0]
cmp r5, r0
beq _0811EB04
adds r0, r1, 0x1
lsls r0, 16
lsrs r1, r0, 16
cmp r1, r4
bcc _0811EAEA
b _0811EB08
_0811EB00:
cmp r5, r4
bcs _0811EB08
_0811EB04:
movs r0, 0
b _0811EB0A
_0811EB08:
movs r0, 0x1
_0811EB0A:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_811EAA4
thumb_func_start ECWord_CheckIfOutsideOfValidRange
ECWord_CheckIfOutsideOfValidRange: @ 811EB10
push {lr}
lsls r0, 16
lsrs r2, r0, 25
lsls r0, 7
lsrs r3, r0, 23
cmp r2, 0x15
bhi _0811EB5C
cmp r2, 0x13
bgt _0811EB2C
cmp r2, 0x12
bge _0811EB3C
cmp r2, 0
beq _0811EB30
b _0811EB48
_0811EB2C:
cmp r2, 0x15
bne _0811EB48
_0811EB30:
ldr r0, =gUnknown_085F5490
ldrh r0, [r0]
b _0811EB50
.pool
_0811EB3C:
ldr r0, =gUnknown_085FA1D4
ldrh r0, [r0]
b _0811EB50
.pool
_0811EB48:
ldr r1, =gEasyChatGroups
lsls r0, r2, 3
adds r0, r1
ldrh r0, [r0, 0x4]
_0811EB50:
cmp r0, r3
bls _0811EB5C
movs r0, 0
b _0811EB5E
.pool
_0811EB5C:
movs r0, 0x1
_0811EB5E:
pop {r1}
bx r1
thumb_func_end ECWord_CheckIfOutsideOfValidRange
thumb_func_start GetEasyChatWord
@ char *GetEasyChatWord(u8 groupId, u16 wordId)
GetEasyChatWord: @ 811EB64
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 16
lsrs r2, r1, 16
cmp r0, 0x13
bgt _0811EB7C
cmp r0, 0x12
bge _0811EB90
cmp r0, 0
beq _0811EB80
b _0811EBA0
_0811EB7C:
cmp r0, 0x15
bne _0811EBA0
_0811EB80:
movs r0, 0xB
muls r0, r2
ldr r1, =gSpeciesNames
adds r0, r1
b _0811EBB2
.pool
_0811EB90:
movs r0, 0xD
muls r0, r2
ldr r1, =gMoveNames
adds r0, r1
b _0811EBB2
.pool
_0811EBA0:
ldr r1, =gEasyChatGroups
lsls r0, 3
adds r0, r1
ldr r1, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
ldr r0, [r0]
_0811EBB2:
pop {r1}
bx r1
.pool
thumb_func_end GetEasyChatWord
thumb_func_start CopyEasyChatWord
@ char *CopyEasyChatWord(char *dest, u16 groupIdWordIdPair)
CopyEasyChatWord: @ 811EBBC
push {r4-r6,lr}
adds r5, r0, 0
lsls r6, r1, 16
lsrs r0, r6, 16
adds r4, r0, 0
bl sub_811EAA4
lsls r0, 24
cmp r0, 0
beq _0811EBD8
ldr r1, =gText_ThreeQuestionMarks
b _0811EBEA
.pool
_0811EBD8:
ldr r0, =0x0000ffff
cmp r4, r0
beq _0811EBFC
ldr r1, =0x000001ff
ands r1, r4
lsrs r0, r6, 25
bl GetEasyChatWord
adds r1, r0, 0
_0811EBEA:
adds r0, r5, 0
bl StringCopy
b _0811EC02
.pool
_0811EBFC:
movs r0, 0xFF
strb r0, [r5]
adds r0, r5, 0
_0811EC02:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end CopyEasyChatWord
thumb_func_start ConvertEasyChatWordsToString
ConvertEasyChatWordsToString: @ 811EC08
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
lsls r2, 16
lsls r3, 16
lsrs r3, 16
mov r9, r3
ldr r0, =0xffff0000
adds r2, r0
lsrs r7, r2, 16
movs r0, 0
cmp r0, r9
bcs _0811EC78
_0811EC2A:
movs r6, 0
adds r0, 0x1
mov r8, r0
cmp r6, r7
bcs _0811EC5C
ldr r2, =0x0000ffff
_0811EC36:
ldrh r1, [r5]
adds r0, r4, 0
str r2, [sp]
bl CopyEasyChatWord
adds r4, r0, 0
ldrh r0, [r5]
ldr r2, [sp]
cmp r0, r2
beq _0811EC50
movs r0, 0
strb r0, [r4]
adds r4, 0x1
_0811EC50:
adds r5, 0x2
adds r0, r6, 0x1
lsls r0, 16
lsrs r6, r0, 16
cmp r6, r7
bcc _0811EC36
_0811EC5C:
ldrh r1, [r5]
adds r5, 0x2
adds r0, r4, 0
bl CopyEasyChatWord
adds r4, r0, 0
movs r0, 0xFE
strb r0, [r4]
adds r4, 0x1
mov r1, r8
lsls r0, r1, 16
lsrs r0, 16
cmp r0, r9
bcc _0811EC2A
_0811EC78:
subs r4, 0x1
movs r0, 0xFF
strb r0, [r4]
adds r0, r4, 0
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end ConvertEasyChatWordsToString
thumb_func_start sub_811EC98
sub_811EC98: @ 811EC98
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
adds r4, r0, 0
adds r5, r1, 0
lsls r2, 16
lsrs r2, 16
mov r8, r2
lsls r3, 16
lsrs r3, 16
str r3, [sp]
mov r7, r8
movs r0, 0
str r0, [sp, 0x4]
subs r0, r7, 0x1
lsls r0, 16
lsrs r0, 16
mov r8, r0
movs r0, 0
cmp r0, r3
bcs _0811ED62
_0811ECC8:
adds r3, r5, 0
movs r2, 0
movs r1, 0
adds r0, 0x1
mov r10, r0
cmp r2, r7
bcs _0811ECEE
ldr r6, =0x0000ffff
_0811ECD8:
lsls r0, r1, 1
adds r0, r3
ldrh r0, [r0]
cmp r0, r6
beq _0811ECE4
movs r2, 0x1
_0811ECE4:
adds r0, r1, 0x1
lsls r0, 16
lsrs r1, r0, 16
cmp r1, r7
bcc _0811ECD8
_0811ECEE:
cmp r2, 0
bne _0811ECFC
lsls r0, r7, 1
adds r5, r0
b _0811ED56
.pool
_0811ECFC:
movs r6, 0
ldr r1, [sp, 0x4]
adds r1, 0x1
mov r9, r1
cmp r6, r8
bcs _0811ED30
ldr r2, =0x0000ffff
_0811ED0A:
ldrh r1, [r5]
adds r0, r4, 0
str r2, [sp, 0x8]
bl CopyEasyChatWord
adds r4, r0, 0
ldrh r0, [r5]
ldr r2, [sp, 0x8]
cmp r0, r2
beq _0811ED24
movs r0, 0
strb r0, [r4]
adds r4, 0x1
_0811ED24:
adds r5, 0x2
adds r0, r6, 0x1
lsls r0, 16
lsrs r6, r0, 16
cmp r6, r8
bcc _0811ED0A
_0811ED30:
ldrh r1, [r5]
adds r5, 0x2
adds r0, r4, 0
bl CopyEasyChatWord
adds r4, r0, 0
ldr r0, [sp, 0x4]
cmp r0, 0
bne _0811ED4C
movs r0, 0xFE
b _0811ED4E
.pool
_0811ED4C:
movs r0, 0xFA
_0811ED4E:
strb r0, [r4]
adds r4, 0x1
mov r1, r9
str r1, [sp, 0x4]
_0811ED56:
mov r1, r10
lsls r0, r1, 16
lsrs r0, 16
ldr r1, [sp]
cmp r0, r1
bcc _0811ECC8
_0811ED62:
subs r4, 0x1
movs r0, 0xFF
strb r0, [r4]
adds r0, r4, 0
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_811EC98
thumb_func_start sub_811ED7C
sub_811ED7C: @ 811ED7C
push {r4,r5,lr}
lsls r5, r0, 16
lsrs r0, r5, 16
adds r4, r0, 0
ldr r0, =0x0000ffff
cmp r4, r0
bne _0811ED94
movs r0, 0
b _0811EDBA
.pool
_0811ED94:
adds r0, r4, 0
bl sub_811EAA4
lsls r0, 24
cmp r0, 0
bne _0811EDB0
ldr r1, =0x000001ff
ands r1, r4
lsrs r0, r5, 25
bl GetEasyChatWord
b _0811EDB2
.pool
_0811EDB0:
ldr r0, =gText_ThreeQuestionMarks
_0811EDB2:
bl StringLength
lsls r0, 16
lsrs r0, 16
_0811EDBA:
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_811ED7C
thumb_func_start sub_811EDC4
sub_811EDC4: @ 811EDC4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
adds r6, r0, 0
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
mov r8, r2
lsls r3, 16
lsrs r3, 16
mov r10, r3
movs r7, 0
cmp r7, r8
bcs _0811EE26
subs r0, r1, 0x1
lsls r0, 16
mov r9, r0
_0811EDEE:
mov r0, r9
lsrs r4, r0, 16
movs r5, 0
cmp r5, r1
bcs _0811EE14
_0811EDF8:
ldrh r0, [r6]
adds r6, 0x2
str r1, [sp]
bl sub_811ED7C
adds r0, r4, r0
lsls r0, 16
lsrs r4, r0, 16
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
ldr r1, [sp]
cmp r5, r1
bcc _0811EDF8
_0811EE14:
cmp r4, r10
bls _0811EE1C
movs r0, 0x1
b _0811EE28
_0811EE1C:
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
cmp r7, r8
bcc _0811EDEE
_0811EE26:
movs r0, 0
_0811EE28:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_811EDC4
thumb_func_start sub_811EE38
sub_811EE38: @ 811EE38
push {r4,lr}
lsls r0, 16
lsrs r4, r0, 16
bl Random
ldr r2, =gEasyChatGroups
lsls r1, r4, 3
adds r1, r2
lsls r0, 16
lsrs r0, 16
ldrh r1, [r1, 0x4]
bl __umodsi3
lsls r0, 16
lsrs r2, r0, 16
cmp r4, 0
beq _0811EE66
cmp r4, 0x15
beq _0811EE66
cmp r4, 0x12
beq _0811EE66
cmp r4, 0x13
bne _0811EE74
_0811EE66:
ldr r1, =gEasyChatGroups
lsls r0, r4, 3
adds r0, r1
ldr r1, [r0]
lsls r0, r2, 1
adds r0, r1
ldrh r2, [r0]
_0811EE74:
movs r0, 0x7F
ands r0, r4
lsls r0, 9
ldr r1, =0x000001ff
ands r2, r1
orrs r0, r2
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_811EE38
thumb_func_start sub_811EE90
sub_811EE90: @ 811EE90
push {r4,lr}
lsls r0, 16
lsrs r0, 16
adds r4, r0, 0
lsls r0, r4, 24
lsrs r0, 24
bl sub_811EA28
lsls r0, 24
cmp r0, 0
bne _0811EEB0
ldr r0, =0x0000ffff
b _0811EEC4
.pool
_0811EEB0:
cmp r4, 0
beq _0811EEBC
adds r0, r4, 0
bl sub_811EE38
b _0811EEC0
_0811EEBC:
bl sub_811F108
_0811EEC0:
lsls r0, 16
lsrs r0, 16
_0811EEC4:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_811EE90
thumb_func_start sub_811EECC
sub_811EECC: @ 811EECC
push {r4,r5,lr}
ldr r0, =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0x1
beq _0811EF04
cmp r0, 0x1
bgt _0811EEE4
cmp r0, 0
beq _0811EEEE
b _0811EF58
.pool
_0811EEE4:
cmp r0, 0x2
beq _0811EF2C
cmp r0, 0x3
beq _0811EF3C
b _0811EF58
_0811EEEE:
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, =0x00002bb0
adds r5, r0, r1
movs r2, 0x2
b _0811EF46
.pool
_0811EF04:
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, =0x00002bbc
adds r5, r0, r1
adds r0, r5, 0
movs r1, 0x3
movs r2, 0x2
movs r3, 0x12
bl sub_811EDC4
lsls r0, 24
cmp r0, 0
beq _0811EF44
movs r2, 0x2
movs r3, 0x3
b _0811EF48
.pool
_0811EF2C:
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, =0x00002bc8
b _0811EF42
.pool
_0811EF3C:
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, =0x00002bd4
_0811EF42:
adds r5, r0, r1
_0811EF44:
movs r2, 0x3
_0811EF46:
movs r3, 0x2
_0811EF48:
ldr r4, =gStringVar4
adds r0, r4, 0
adds r1, r5, 0
bl ConvertEasyChatWordsToString
adds r0, r4, 0
bl ShowFieldAutoScrollMessage
_0811EF58:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_811EECC
thumb_func_start sub_811EF6C
sub_811EF6C: @ 811EF6C
push {lr}
bl Random
movs r1, 0x1
ands r1, r0
movs r0, 0xC
cmp r1, 0
beq _0811EF7E
movs r0, 0xD
_0811EF7E:
bl sub_811EE90
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
ldr r0, =gStringVar2
bl CopyEasyChatWord
pop {r0}
bx r0
.pool
thumb_func_end sub_811EF6C
thumb_func_start sub_811EF98
sub_811EF98: @ 811EF98
lsls r0, 24
lsrs r2, r0, 27
movs r1, 0xE0
lsls r1, 19
ands r1, r0
lsrs r1, 24
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r3, =0x00002e20
adds r0, r3
adds r0, r2
ldrb r0, [r0]
asrs r0, r1
movs r1, 0x1
ands r0, r1
bx lr
.pool
thumb_func_end sub_811EF98
thumb_func_start sub_811EFC0
sub_811EFC0: @ 811EFC0
push {lr}
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x20
bhi _0811EFE4
lsrs r3, r0, 27
movs r2, 0x7
ands r2, r1
ldr r0, =gSaveBlock1Ptr
ldr r1, [r0]
ldr r0, =0x00002e20
adds r1, r0
adds r1, r3
movs r0, 0x1
lsls r0, r2
ldrb r2, [r1]
orrs r0, r2
strb r0, [r1]
_0811EFE4:
pop {r0}
bx r0
.pool
thumb_func_end sub_811EFC0
thumb_func_start sub_811EFF0
sub_811EFF0: @ 811EFF0
push {r4,r5,lr}
movs r4, 0
movs r5, 0
_0811EFF6:
adds r0, r4, 0
bl sub_811EF98
lsls r0, 24
cmp r0, 0
beq _0811F008
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
_0811F008:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x20
bls _0811EFF6
adds r0, r5, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_811EFF0
thumb_func_start sub_811F01C
sub_811F01C: @ 811F01C
push {r4-r6,lr}
bl sub_811EFF0
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x21
bne _0811F048
b _0811F082
_0811F02C:
adds r0, r5, 0
bl sub_811EFC0
ldr r0, =0x000001ff
ands r4, r0
movs r1, 0xA0
lsls r1, 6
adds r0, r1, 0
orrs r4, r0
adds r0, r4, 0
b _0811F084
.pool
_0811F048:
bl Random
lsls r0, 16
lsrs r0, 16
movs r1, 0x21
subs r1, r4
bl __modsi3
lsls r0, 16
lsrs r6, r0, 16
movs r4, 0
_0811F05E:
lsls r0, r4, 24
lsrs r5, r0, 24
adds r0, r5, 0
bl sub_811EF98
lsls r0, 24
cmp r0, 0
bne _0811F078
cmp r6, 0
beq _0811F02C
subs r0, r6, 0x1
lsls r0, 16
lsrs r6, r0, 16
_0811F078:
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0x20
bls _0811F05E
_0811F082:
ldr r0, =0x0000ffff
_0811F084:
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_811F01C
thumb_func_start sub_811F090
sub_811F090: @ 811F090
push {r4,r5,lr}
bl sub_811EFF0
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
bne _0811F0B4
b _0811F0EA
_0811F0A0:
ldr r0, =0x000001ff
ands r4, r0
movs r1, 0xA0
lsls r1, 6
adds r0, r1, 0
orrs r4, r0
adds r0, r4, 0
b _0811F0EC
.pool
_0811F0B4:
bl Random
lsls r0, 16
lsrs r0, 16
adds r1, r5, 0
bl __umodsi3
lsls r0, 16
lsrs r5, r0, 16
movs r4, 0
_0811F0C8:
lsls r0, r4, 24
lsrs r0, 24
bl sub_811EF98
lsls r0, 24
cmp r0, 0
beq _0811F0E0
cmp r5, 0
beq _0811F0A0
subs r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
_0811F0E0:
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0x20
bls _0811F0C8
_0811F0EA:
ldr r0, =0x0000ffff
_0811F0EC:
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_811F090
thumb_func_start sub_811F0F8
sub_811F0F8: @ 811F0F8
push {lr}
bl IsNationalPokedexEnabled
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_811F0F8
thumb_func_start sub_811F108
sub_811F108: @ 811F108
push {r4-r7,lr}
movs r0, 0
bl EasyChat_GetNumWordsInGroup
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0
bne _0811F128
b _0811F172
_0811F11A:
ldrh r1, [r5]
ldr r0, =0x000001ff
ands r0, r1
b _0811F174
.pool
_0811F128:
bl Random
lsls r0, 16
lsrs r0, 16
adds r1, r4, 0
bl __umodsi3
lsls r0, 16
lsrs r4, r0, 16
ldr r0, =gEasyChatGroups
ldr r5, [r0]
ldrh r7, [r0, 0x4]
movs r6, 0
cmp r6, r7
bcs _0811F172
_0811F146:
ldrh r0, [r5]
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
movs r1, 0
bl GetSetPokedexFlag
lsls r0, 24
cmp r0, 0
beq _0811F166
cmp r4, 0
beq _0811F11A
subs r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
_0811F166:
adds r5, 0x2
adds r0, r6, 0x1
lsls r0, 16
lsrs r6, r0, 16
cmp r6, r7
bcc _0811F146
_0811F172:
ldr r0, =0x0000ffff
_0811F174:
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_811F108
thumb_func_start InitEasyChatPhrases
InitEasyChatPhrases: @ 811F184
push {r4-r7,lr}
movs r2, 0
ldr r5, =gSaveBlock1Ptr
ldr r4, =0x00002bb0
ldr r3, =gUnknown_0859E62C
_0811F18E:
ldr r1, [r5]
lsls r0, r2, 1
adds r1, r4
adds r1, r0
adds r0, r3
ldrh r0, [r0]
strh r0, [r1]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0x3
bls _0811F18E
movs r2, 0
ldr r5, =gSaveBlock1Ptr
ldr r4, =0x00002bbc
ldr r3, =gUnknown_0859E634
_0811F1AE:
ldr r1, [r5]
lsls r0, r2, 1
adds r1, r4
adds r1, r0
adds r0, r3
ldrh r0, [r0]
strh r0, [r1]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0x5
bls _0811F1AE
movs r2, 0
ldr r5, =gSaveBlock1Ptr
ldr r4, =0x00002bc8
ldr r3, =gUnknown_0859E640
_0811F1CE:
ldr r1, [r5]
lsls r0, r2, 1
adds r1, r4
adds r1, r0
adds r0, r3
ldrh r0, [r0]
strh r0, [r1]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0x5
bls _0811F1CE
movs r2, 0
ldr r5, =gSaveBlock1Ptr
ldr r4, =0x00002bd4
ldr r3, =gUnknown_0859E64C
_0811F1EE:
ldr r1, [r5]
lsls r0, r2, 1
adds r1, r4
adds r1, r0
adds r0, r3
ldrh r0, [r0]
strh r0, [r1]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0x5
bls _0811F1EE
movs r2, 0
ldr r7, =gSaveBlock1Ptr
ldr r6, =0x00002be0
ldr r0, =0x0000ffff
adds r5, r0, 0
_0811F210:
movs r3, 0
lsls r0, r2, 3
adds r0, r2
lsls r4, r0, 2
_0811F218:
ldr r1, [r7]
lsls r0, r3, 1
adds r0, r4
adds r1, r6
adds r1, r0
ldrh r0, [r1]
orrs r0, r5
strh r0, [r1]
adds r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0x8
bls _0811F218
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0xF
bls _0811F210
movs r2, 0
ldr r4, =gSaveBlock1Ptr
ldr r3, =0x00002e20
movs r1, 0
_0811F244:
ldr r0, [r4]
adds r0, r3
adds r0, r2
strb r1, [r0]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0x3F
bls _0811F244
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end InitEasyChatPhrases
thumb_func_start sub_811F28C
sub_811F28C: @ 811F28C
push {r4,lr}
ldr r4, =gUnknown_0203A120
ldr r0, =0x00003ba4
bl Alloc
str r0, [r4]
cmp r0, 0
beq _0811F2B0
bl sub_811F2D4
bl sub_811F46C
movs r0, 0x1
b _0811F2B2
.pool
_0811F2B0:
movs r0, 0
_0811F2B2:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_811F28C
thumb_func_start sub_811F2B8
sub_811F2B8: @ 811F2B8
push {r4,lr}
ldr r4, =gUnknown_0203A120
ldr r0, [r4]
cmp r0, 0
beq _0811F2CA
bl Free
movs r0, 0
str r0, [r4]
_0811F2CA:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_811F2B8
thumb_func_start sub_811F2D4
sub_811F2D4: @ 811F2D4
push {r4,r5,lr}
ldr r4, =gUnknown_0203A120
ldr r0, [r4]
movs r5, 0
strh r5, [r0]
movs r0, 0
bl GetNationalPokedexCount
lsls r0, 16
cmp r0, 0
beq _0811F2FC
ldr r0, [r4]
ldrh r1, [r0]
adds r2, r1, 0x1
strh r2, [r0]
lsls r1, 16
lsrs r1, 15
adds r0, 0x2
adds r0, r1
strh r5, [r0]
_0811F2FC:
movs r3, 0x1
_0811F2FE:
ldr r0, [r4]
ldrh r2, [r0]
adds r1, r2, 0x1
strh r1, [r0]
lsls r2, 16
lsrs r2, 15
adds r0, 0x2
adds r0, r2
strh r3, [r0]
adds r3, 0x1
cmp r3, 0x10
ble _0811F2FE
ldr r0, =0x00000864 @ = FLAG_SYS_GAME_CLEAR
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _0811F358
ldr r0, =gUnknown_0203A120
ldr r2, [r0]
ldrh r0, [r2]
adds r1, r0, 0x1
strh r1, [r2]
lsls r0, 16
lsrs r0, 15
adds r3, r2, 0x2
adds r0, r3, r0
movs r1, 0x11
strh r1, [r0]
ldrh r0, [r2]
adds r1, r0, 0x1
strh r1, [r2]
lsls r0, 16
lsrs r0, 15
adds r0, r3, r0
movs r1, 0x12
strh r1, [r0]
ldrh r0, [r2]
adds r1, r0, 0x1
strh r1, [r2]
lsls r0, 16
lsrs r0, 15
adds r3, r0
movs r0, 0x13
strh r0, [r3]
_0811F358:
ldr r0, =0x00000866
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _0811F37A
ldr r0, =gUnknown_0203A120
ldr r0, [r0]
ldrh r1, [r0]
adds r2, r1, 0x1
strh r2, [r0]
lsls r1, 16
lsrs r1, 15
adds r0, 0x2
adds r0, r1
movs r1, 0x14
strh r1, [r0]
_0811F37A:
bl IsNationalPokedexEnabled
cmp r0, 0
beq _0811F398
ldr r0, =gUnknown_0203A120
ldr r0, [r0]
ldrh r1, [r0]
adds r2, r1, 0x1
strh r2, [r0]
lsls r1, 16
lsrs r1, 15
adds r0, 0x2
adds r0, r1
movs r1, 0x15
strh r1, [r0]
_0811F398:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_811F2D4
thumb_func_start sub_811F3AC
sub_811F3AC: @ 811F3AC
ldr r0, =gUnknown_0203A120
ldr r0, [r0]
ldrb r0, [r0]
bx lr
.pool
thumb_func_end sub_811F3AC
thumb_func_start sub_811F3B8
sub_811F3B8: @ 811F3B8
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, =gUnknown_0203A120
ldr r1, [r0]
ldrh r0, [r1]
cmp r2, r0
bcs _0811F3D8
lsls r0, r2, 1
adds r1, 0x2
adds r1, r0
ldrb r0, [r1]
b _0811F3DA
.pool
_0811F3D8:
movs r0, 0x16
_0811F3DA:
pop {r1}
bx r1
thumb_func_end sub_811F3B8
thumb_func_start sub_811F3E0
sub_811F3E0: @ 811F3E0
push {r4,r5,lr}
adds r4, r0, 0
lsls r1, 24
lsls r2, 16
lsrs r5, r2, 16
ldr r0, =gEasyChatGroupNamePointers
lsrs r1, 22
adds r1, r0
ldr r1, [r1]
adds r0, r4, 0
bl StringCopy
adds r1, r0, 0
subs r4, r1, r4
lsls r4, 16
lsrs r0, r4, 16
cmp r0, r5
bcs _0811F414
movs r2, 0
_0811F406:
strb r2, [r1]
adds r1, 0x1
adds r0, 0x1
lsls r0, 16
lsrs r0, 16
cmp r0, r5
bcc _0811F406
_0811F414:
movs r0, 0xFF
strb r0, [r1]
adds r0, r1, 0
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_811F3E0
thumb_func_start sub_811F424
sub_811F424: @ 811F424
lsls r0, 24
ldr r1, =gEasyChatGroupNamePointers
lsrs r0, 22
adds r0, r1
ldr r0, [r0]
bx lr
.pool
thumb_func_end sub_811F424
thumb_func_start CopyEasyChatWordPadded
@ char *CopyEasyChatWordPadded(char *dest, u16 groupIdWordIdPair, u16 minLength)
CopyEasyChatWordPadded: @ 811F434
push {r4,r5,lr}
adds r4, r0, 0
lsls r1, 16
lsrs r1, 16
lsls r2, 16
lsrs r5, r2, 16
bl CopyEasyChatWord
adds r1, r0, 0
subs r4, r1, r4
lsls r4, 16
lsrs r0, r4, 16
cmp r0, r5
bcs _0811F460
movs r2, 0
_0811F452:
strb r2, [r1]
adds r1, 0x1
adds r0, 0x1
lsls r0, 16
lsrs r0, 16
cmp r0, r5
bcc _0811F452
_0811F460:
movs r0, 0xFF
strb r0, [r1]
adds r0, r1, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end CopyEasyChatWordPadded
thumb_func_start sub_811F46C
sub_811F46C: @ 811F46C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
movs r3, 0
_0811F47A:
ldr r2, =gEasyChatWordsByLetterPointers
lsls r1, r3, 3
adds r0, r2, 0x4
adds r0, r1, r0
ldr r0, [r0]
str r0, [sp]
adds r1, r2
ldr r7, [r1]
ldr r0, =gUnknown_0203A120
ldr r1, [r0]
lsls r2, r3, 1
adds r1, 0x2E
adds r1, r2
movs r0, 0
strh r0, [r1]
mov r10, r0
movs r1, 0
str r2, [sp, 0x4]
adds r0, r3, 0x1
str r0, [sp, 0x8]
ldr r2, [sp]
cmp r1, r2
bge _0811F530
_0811F4A8:
ldrh r0, [r7]
ldr r2, =0x0000ffff
cmp r0, r2
bne _0811F4FC
adds r7, 0x2
ldrh r4, [r7]
adds r7, 0x2
adds r0, r1, 0x1
adds r1, r0, r4
b _0811F4FE
.pool
_0811F4C8:
ldr r0, =gUnknown_0203A120
ldr r2, [r0]
mov r0, r10
lsls r1, r0, 1
lsls r0, r3, 4
adds r0, r3
lsls r0, 3
subs r0, r3
lsls r0, 2
adds r1, r0
adds r0, r2, 0
adds r0, 0x64
adds r0, r1
ldrh r1, [r5]
strh r1, [r0]
movs r0, 0x1
add r10, r0
adds r2, 0x2E
ldr r0, [sp, 0x4]
adds r2, r0
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
b _0811F526
.pool
_0811F4FC:
movs r4, 0x1
_0811F4FE:
movs r6, 0
adds r1, 0x1
mov r9, r1
lsls r2, r4, 1
mov r8, r2
cmp r6, r4
bge _0811F526
adds r5, r7, 0
_0811F50E:
ldrh r0, [r5]
str r3, [sp, 0xC]
bl sub_811F860
lsls r0, 24
ldr r3, [sp, 0xC]
cmp r0, 0
bne _0811F4C8
adds r5, 0x2
adds r6, 0x1
cmp r6, r4
blt _0811F50E
_0811F526:
add r7, r8
mov r1, r9
ldr r0, [sp]
cmp r1, r0
blt _0811F4A8
_0811F530:
ldr r3, [sp, 0x8]
cmp r3, 0x1A
ble _0811F47A
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_811F46C
thumb_func_start sub_811F548
sub_811F548: @ 811F548
push {lr}
lsls r1, 16
lsrs r1, 16
cmp r0, 0
bne _0811F55A
adds r0, r1, 0
bl sub_811F5C4
b _0811F560
_0811F55A:
adds r0, r1, 0
bl sub_811F6B8
_0811F560:
ldr r1, =gUnknown_0203A120
ldr r1, [r1]
ldr r2, =0x00003ba0
adds r1, r2
strh r0, [r1]
pop {r0}
bx r0
.pool
thumb_func_end sub_811F548
thumb_func_start sub_811F578
sub_811F578: @ 811F578
push {lr}
lsls r0, 16
lsrs r2, r0, 16
ldr r0, =gUnknown_0203A120
ldr r1, [r0]
ldr r3, =0x00003ba0
adds r0, r1, r3
ldrh r0, [r0]
cmp r2, r0
bcs _0811F5A4
lsls r0, r2, 1
ldr r2, =0x00003984
adds r1, r2
adds r1, r0
ldrh r0, [r1]
b _0811F5A6
.pool
_0811F5A4:
ldr r0, =0x0000ffff
_0811F5A6:
pop {r1}
bx r1
.pool
thumb_func_end sub_811F578
thumb_func_start sub_811F5B0
sub_811F5B0: @ 811F5B0
ldr r0, =gUnknown_0203A120
ldr r0, [r0]
ldr r1, =0x00003ba0
adds r0, r1
ldrh r0, [r0]
bx lr
.pool
thumb_func_end sub_811F5B0
thumb_func_start sub_811F5C4
sub_811F5C4: @ 811F5C4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 16
lsrs r2, r0, 16
ldr r1, =gEasyChatGroups
lsls r0, r2, 3
adds r0, r1
ldrh r3, [r0, 0x4]
mov r8, r3
cmp r2, 0
beq _0811F5EC
cmp r2, 0x15
beq _0811F5EC
cmp r2, 0x12
beq _0811F5EC
cmp r2, 0x13
bne _0811F64C
_0811F5EC:
lsls r0, r2, 3
adds r0, r1
ldr r1, [r0]
movs r7, 0
movs r5, 0
cmp r5, r8
bcs _0811F698
movs r0, 0x7F
ands r0, r2
lsls r0, 9
mov r9, r0
adds r4, r1, 0
lsls r6, r2, 24
_0811F606:
ldrh r0, [r4]
lsrs r1, r6, 24
bl sub_811F764
lsls r0, 24
cmp r0, 0
beq _0811F630
ldr r0, =gUnknown_0203A120
ldr r2, [r0]
lsls r0, r5, 1
ldr r1, =0x00003984
adds r2, r1
adds r2, r0
ldrh r0, [r4]
ldr r3, =0x000001ff
adds r1, r3, 0
ands r0, r1
mov r1, r9
orrs r0, r1
strh r0, [r2]
adds r5, 0x1
_0811F630:
adds r4, 0x2
adds r7, 0x1
cmp r7, r8
bcc _0811F606
b _0811F698
.pool
_0811F64C:
ldr r1, [r0]
movs r7, 0
movs r5, 0
cmp r5, r8
bcs _0811F698
movs r0, 0x7F
ands r0, r2
lsls r0, 9
mov r10, r0
adds r6, r1, 0
lsls r2, 24
mov r9, r2
_0811F664:
ldrh r4, [r6, 0x4]
adds r0, r4, 0
mov r2, r9
lsrs r1, r2, 24
bl sub_811F764
lsls r0, 24
cmp r0, 0
beq _0811F690
ldr r0, =gUnknown_0203A120
ldr r1, [r0]
lsls r0, r5, 1
ldr r3, =0x00003984
adds r1, r3
adds r1, r0
ldr r2, =0x000001ff
adds r0, r2, 0
ands r4, r0
mov r3, r10
orrs r4, r3
strh r4, [r1]
adds r5, 0x1
_0811F690:
adds r6, 0xC
adds r7, 0x1
cmp r7, r8
bcc _0811F664
_0811F698:
lsls r0, r5, 16
lsrs r0, 16
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_811F5C4
thumb_func_start sub_811F6B8
sub_811F6B8: @ 811F6B8
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 16
lsrs r1, r0, 16
movs r4, 0
movs r6, 0
ldr r3, =gUnknown_0203A120
ldr r0, [r3]
lsls r5, r1, 1
adds r0, 0x2E
adds r0, r5
ldrh r0, [r0]
cmp r6, r0
bcs _0811F718
mov r8, r3
lsls r0, r1, 4
adds r0, r1
lsls r0, 3
subs r0, r1
lsls r7, r0, 2
ldr r0, =0x00003984
mov r12, r0
_0811F6E6:
mov r0, r8
ldr r3, [r0]
adds r1, r6, 0
adds r0, r1, 0x1
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 1
mov r0, r12
adds r2, r3, r0
adds r2, r1
lsls r1, r4, 1
adds r1, r7
adds r0, r3, 0
adds r0, 0x64
adds r0, r1
ldrh r0, [r0]
strh r0, [r2]
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
adds r3, 0x2E
adds r3, r5
ldrh r3, [r3]
cmp r4, r3
bcc _0811F6E6
_0811F718:
adds r0, r6, 0
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_811F6B8
thumb_func_start sub_811F72C
sub_811F72C: @ 811F72C
push {r4,lr}
lsls r0, 24
lsrs r3, r0, 24
movs r2, 0
ldr r0, =gUnknown_0203A120
ldr r0, [r0]
ldrh r1, [r0]
cmp r2, r1
bge _0811F75C
adds r4, r3, 0
adds r3, r1, 0
adds r1, r0, 0x2
_0811F744:
ldrh r0, [r1]
cmp r0, r4
bne _0811F754
movs r0, 0x1
b _0811F75E
.pool
_0811F754:
adds r1, 0x2
adds r2, 0x1
cmp r2, r3
blt _0811F744
_0811F75C:
movs r0, 0
_0811F75E:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_811F72C
thumb_func_start sub_811F764
sub_811F764: @ 811F764
push {r4,lr}
lsls r0, 16
lsrs r4, r0, 16
lsls r1, 24
lsrs r2, r1, 24
cmp r2, 0x15
bhi _0811F81A
lsls r0, r2, 2
ldr r1, =_0811F780
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0811F780:
.4byte _0811F7D8
.4byte _0811F81A
.4byte _0811F81A
.4byte _0811F81A
.4byte _0811F81A
.4byte _0811F81A
.4byte _0811F81A
.4byte _0811F81A
.4byte _0811F81A
.4byte _0811F81A
.4byte _0811F81A
.4byte _0811F81A
.4byte _0811F81A
.4byte _0811F81A
.4byte _0811F81A
.4byte _0811F81A
.4byte _0811F81A
.4byte _0811F81A
.4byte _0811F808
.4byte _0811F808
.4byte _0811F80C
.4byte _0811F7EE
_0811F7D8:
adds r0, r4, 0
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
movs r1, 0
bl GetSetPokedexFlag
lsls r0, 24
lsrs r0, 24
b _0811F82C
_0811F7EE:
adds r0, r4, 0
bl sub_811F838
cmp r0, 0
beq _0811F808
adds r0, r4, 0
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
movs r1, 0
bl GetSetPokedexFlag
_0811F808:
movs r0, 0x1
b _0811F82C
_0811F80C:
lsls r0, r4, 24
lsrs r0, 24
bl sub_811EF98
lsls r0, 24
lsrs r0, 24
b _0811F82C
_0811F81A:
ldr r1, =gEasyChatGroups
lsls r0, r2, 3
adds r0, r1
ldr r1, [r0]
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
adds r0, r1
ldrb r0, [r0, 0x8]
_0811F82C:
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_811F764
thumb_func_start sub_811F838
sub_811F838: @ 811F838
push {lr}
lsls r0, 16
lsrs r3, r0, 16
movs r2, 0
ldr r1, =gUnknown_0859E658
_0811F842:
ldrh r0, [r1]
cmp r0, r3
bne _0811F850
movs r0, 0x1
b _0811F85A
.pool
_0811F850:
adds r1, 0x2
adds r2, 0x1
cmp r2, 0
beq _0811F842
movs r0, 0
_0811F85A:
pop {r1}
bx r1
thumb_func_end sub_811F838
thumb_func_start sub_811F860
sub_811F860: @ 811F860
push {r4,r5,lr}
lsls r0, 16
lsrs r5, r0, 25
lsls r0, 7
lsrs r4, r0, 23
adds r0, r5, 0
bl sub_811F72C
lsls r0, 24
cmp r0, 0
beq _0811F884
adds r0, r4, 0
adds r1, r5, 0
bl sub_811F764
lsls r0, 24
lsrs r0, 24
b _0811F886
_0811F884:
movs r0, 0
_0811F886:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_811F860
thumb_func_start InitializeEasyChatWordArray
InitializeEasyChatWordArray: @ 811F88C
push {lr}
adds r2, r0, 0
lsls r1, 16
ldr r0, =0xffff0000
adds r1, r0
lsrs r0, r1, 16
ldr r1, =0x0000ffff
cmp r0, r1
beq _0811F8AE
adds r3, r1, 0
_0811F8A0:
strh r3, [r2]
adds r2, 0x2
subs r0, 0x1
lsls r0, 16
lsrs r0, 16
cmp r0, r1
bne _0811F8A0
_0811F8AE:
pop {r0}
bx r0
.pool
thumb_func_end InitializeEasyChatWordArray
@void sub_811F8BC() {
@ s16* v;
@ s16* ptr;
@ v = GetSaveBlock1Field3564();
@ for (ptr = v + 3; ptr >= v; ptr--) {
@ *ptr = -1;
@ }
@}
thumb_func_start sub_811F8BC
sub_811F8BC: @ 811F8BC
push {lr}
bl GetSaveBlock1Field3564
ldr r1, =0x0000ffff
adds r2, r1, 0
adds r1, r0, 0x6
_0811F8C8:
strh r2, [r1]
subs r1, 0x2
cmp r1, r0
bge _0811F8C8
pop {r0}
bx r0
.pool
thumb_func_end sub_811F8BC
thumb_func_start sub_811F8D8
sub_811F8D8: @ 811F8D8
push {r4,r5,lr}
asrs r4, r0, 9
movs r1, 0x7F
ldr r5, =0x000001ff
ands r5, r0
ands r4, r1
adds r0, r4, 0
bl sub_811EA28
lsls r0, 24
cmp r0, 0
beq _0811F904
adds r0, r5, 0
adds r1, r4, 0
bl sub_811F764
lsls r0, 24
lsrs r0, 24
b _0811F906
.pool
_0811F904:
movs r0, 0
_0811F906:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_811F8D8
.align 2, 0 @ Don't pad with nop.