pokeemerald/asm/easy_chat.s
2019-02-24 10:09:57 -06:00

2092 lines
31 KiB
ArmAsm

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