Decompile more easy_chat.c
This commit is contained in:
-912
@@ -5,918 +5,6 @@
|
||||
|
||||
.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}
|
||||
|
||||
Reference in New Issue
Block a user