Files
2019-09-27 01:42:56 -04:00

11330 lines
184 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.text
.syntax unified
thumb_func_start DoEasyChatScreen
DoEasyChatScreen: @ 0x0811AA5C
push {r4, r5, r6, lr}
mov r6, sb
mov r5, r8
push {r5, r6}
adds r6, r0, #0
mov r8, r1
mov sb, r2
adds r5, r3, #0
lsls r6, r6, #0x18
lsrs r6, r6, #0x18
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
bl ResetTasks
ldr r0, _0811AABC
movs r1, #0
bl CreateTask
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
ldr r1, _0811AAC0
lsls r0, r4, #2
adds r0, r0, r4
lsls r0, r0, #3
adds r0, r0, r1
strh r6, [r0, #0xa]
strh r5, [r0, #0x16]
adds r0, r4, #0
movs r1, #2
mov r2, r8
bl SetWordTaskArg
adds r0, r4, #0
movs r1, #4
mov r2, sb
bl SetWordTaskArg
ldr r0, _0811AAC4
bl SetMainCallback2
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0811AABC: .4byte 0x0811AB11
_0811AAC0: .4byte 0x03005B60
_0811AAC4: .4byte 0x0811AAC9
thumb_func_end DoEasyChatScreen
thumb_func_start MainCallback_EasyChatScreen
MainCallback_EasyChatScreen: @ 0x0811AAC8
push {lr}
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r0}
bx r0
.align 2, 0
thumb_func_end MainCallback_EasyChatScreen
thumb_func_start VBlankCallback_EasyChatScreen
VBlankCallback_EasyChatScreen: @ 0x0811AAE0
push {lr}
bl TransferPlttBuffer
bl LoadOam
bl ProcessSpriteCopyRequests
pop {r0}
bx r0
.align 2, 0
thumb_func_end VBlankCallback_EasyChatScreen
thumb_func_start sub_0811AAF4
sub_0811AAF4: @ 0x0811AAF4
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r3, _0811AB0C
lsls r2, r0, #2
adds r2, r2, r0
lsls r2, r2, #3
adds r2, r2, r3
str r1, [r2]
movs r0, #0
strh r0, [r2, #8]
bx lr
.align 2, 0
_0811AB0C: .4byte 0x03005B60
thumb_func_end sub_0811AAF4
thumb_func_start sub_0811AB10
sub_0811AB10: @ 0x0811AB10
push {r4, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
bl IsUpdateLinkStateCBActive
cmp r0, #0
bne _0811AB2C
_0811AB1E:
adds r0, r4, #0
bl sub_0811AC78
lsls r0, r0, #0x18
cmp r0, #0
bne _0811AB1E
b _0811AB3A
_0811AB2C:
adds r0, r4, #0
bl sub_0811AC78
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
beq _0811AB42
_0811AB3A:
ldr r1, _0811AB48
adds r0, r4, #0
bl sub_0811AAF4
_0811AB42:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0811AB48: .4byte 0x0811AB4D
thumb_func_end sub_0811AB10
thumb_func_start sub_0811AB4C
sub_0811AB4C: @ 0x0811AB4C
push {r4, r5, r6, lr}
sub sp, #4
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
lsls r0, r2, #2
adds r0, r0, r2
lsls r0, r0, #3
ldr r1, _0811AB74
adds r5, r0, r1
movs r1, #0
ldrsh r0, [r5, r1]
cmp r0, #5
bls _0811AB68
b _0811AC6C
_0811AB68:
lsls r0, r0, #2
ldr r1, _0811AB78
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0811AB74: .4byte 0x03005B68
_0811AB78: .4byte 0x0811AB7C
_0811AB7C: @ jump table
.4byte _0811AB94 @ case 0
.4byte _0811ABC0 @ case 1
.4byte _0811AC1C @ case 2
.4byte _0811AC24 @ case 3
.4byte _0811AC3C @ case 4
.4byte _0811AC5C @ case 5
_0811AB94:
ldr r0, _0811ABBC
bl SetVBlankCallback
movs r4, #1
rsbs r4, r4, #0
adds r0, r4, #0
movs r1, #0x10
movs r2, #0
bl BlendPalettes
movs r0, #0
str r0, [sp]
adds r0, r4, #0
adds r1, r4, #0
movs r2, #0x10
movs r3, #0
bl BeginNormalPaletteFade
movs r0, #5
b _0811AC6A
.align 2, 0
_0811ABBC: .4byte 0x0811AAE1
_0811ABC0:
bl sub_0811B2EC
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
adds r6, r4, #0
adds r0, r4, #0
bl sub_0811B0DC
cmp r0, #0
beq _0811ABEE
movs r0, #1
rsbs r0, r0, #0
movs r1, #2
rsbs r1, r1, #0
movs r2, #0
str r2, [sp]
movs r3, #0x10
bl BeginNormalPaletteFade
movs r0, #3
strh r0, [r5]
strh r4, [r5, #0xc]
b _0811AC6C
_0811ABEE:
cmp r4, #0x18
bne _0811AC06
movs r1, #1
rsbs r1, r1, #0
str r0, [sp]
adds r0, r1, #0
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
movs r0, #4
b _0811AC6A
_0811AC06:
cmp r6, #0
beq _0811AC6C
movs r0, #5
bl PlaySE
adds r0, r6, #0
bl sub_0811CA18
ldrh r0, [r5]
adds r0, #1
b _0811AC6A
_0811AC1C:
bl sub_0811CA30
lsls r0, r0, #0x18
b _0811AC64
_0811AC24:
ldr r0, _0811AC38
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0811AC6C
ldrh r0, [r5, #0xc]
bl sub_0811B0F4
b _0811AC6C
.align 2, 0
_0811AC38: .4byte 0x02037C74
_0811AC3C:
ldr r0, _0811AC58
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0811AC6C
adds r0, r2, #0
movs r1, #4
bl GetWordTaskArg
bl sub_0811AD20
b _0811AC6C
.align 2, 0
_0811AC58: .4byte 0x02037C74
_0811AC5C:
ldr r0, _0811AC74
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
_0811AC64:
cmp r0, #0
bne _0811AC6C
movs r0, #1
_0811AC6A:
strh r0, [r5]
_0811AC6C:
add sp, #4
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0811AC74: .4byte 0x02037C74
thumb_func_end sub_0811AB4C
thumb_func_start sub_0811AC78
sub_0811AC78: @ 0x0811AC78
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
ldr r1, _0811AC9C
adds r6, r0, r1
movs r1, #0
ldrsh r0, [r6, r1]
cmp r0, #4
bhi _0811AD0C
lsls r0, r0, #2
ldr r1, _0811ACA0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0811AC9C: .4byte 0x03005B68
_0811ACA0: .4byte 0x0811ACA4
_0811ACA4: @ jump table
.4byte _0811ACB8 @ case 0
.4byte _0811ACCC @ case 1
.4byte _0811ACD2 @ case 2
.4byte _0811ACE8 @ case 3
.4byte _0811AD00 @ case 4
_0811ACB8:
movs r0, #0
bl SetVBlankCallback
bl ResetSpriteData
bl FreeAllSpritePalettes
bl ResetPaletteFade
b _0811AD10
_0811ACCC:
bl sub_0811F7E8
b _0811ACEC
_0811ACD2:
ldrb r4, [r6, #2]
adds r0, r5, #0
movs r1, #2
bl GetWordTaskArg
adds r1, r0, #0
ldrb r2, [r6, #0xe]
adds r0, r4, #0
bl EasyChat_AllocateResources
b _0811ACEC
_0811ACE8:
bl sub_0811C850
_0811ACEC:
lsls r0, r0, #0x18
cmp r0, #0
bne _0811AD10
adds r0, r5, #0
movs r1, #4
bl GetWordTaskArg
bl sub_0811AD20
b _0811AD10
_0811AD00:
bl sub_0811C868
lsls r0, r0, #0x18
cmp r0, #0
beq _0811AD10
b _0811AD16
_0811AD0C:
movs r0, #0
b _0811AD18
_0811AD10:
ldrh r0, [r6]
adds r0, #1
strh r0, [r6]
_0811AD16:
movs r0, #1
_0811AD18:
pop {r4, r5, r6}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811AC78
thumb_func_start sub_0811AD20
sub_0811AD20: @ 0x0811AD20
push {r4, lr}
adds r4, r0, #0
bl sub_0811C9FC
bl EasyChat_FreeResources
bl sub_0811F814
bl FreeAllWindowBuffers
adds r0, r4, #0
bl SetMainCallback2
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_0811AD20
thumb_func_start ShowEasyChatScreen
ShowEasyChatScreen: @ 0x0811AD40
push {r4, r5, lr}
movs r5, #3
ldr r0, _0811AD58
ldrh r0, [r0]
cmp r0, #0x14
bls _0811AD4E
b _0811B024
_0811AD4E:
lsls r0, r0, #2
ldr r1, _0811AD5C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0811AD58: .4byte 0x02037280
_0811AD5C: .4byte 0x0811AD60
_0811AD60: @ jump table
.4byte _0811ADB4 @ case 0
.4byte _0811ADC8 @ case 1
.4byte _0811ADDC @ case 2
.4byte _0811ADF0 @ case 3
.4byte _0811AE04 @ case 4
.4byte _0811AE54 @ case 5
.4byte _0811AE28 @ case 6
.4byte _0811AE80 @ case 7
.4byte _0811AEB4 @ case 8
.4byte _0811AED8 @ case 9
.4byte _0811AF04 @ case 10
.4byte _0811AF24 @ case 11
.4byte _0811AF58 @ case 12
.4byte _0811AF7C @ case 13
.4byte _0811AF8C @ case 14
.4byte _0811AFC0 @ case 15
.4byte _0811B024 @ case 16
.4byte _0811AFD4 @ case 17
.4byte _0811AFE8 @ case 18
.4byte _0811AFFC @ case 19
.4byte _0811B00C @ case 20
_0811ADB4:
ldr r0, _0811ADC0
ldr r0, [r0]
ldr r1, _0811ADC4
adds r4, r0, r1
b _0811B012
.align 2, 0
_0811ADC0: .4byte 0x03005AEC
_0811ADC4: .4byte 0x00002BB0
_0811ADC8:
ldr r0, _0811ADD4
ldr r0, [r0]
ldr r2, _0811ADD8
adds r4, r0, r2
b _0811B012
.align 2, 0
_0811ADD4: .4byte 0x03005AEC
_0811ADD8: .4byte 0x00002BBC
_0811ADDC:
ldr r0, _0811ADE8
ldr r0, [r0]
ldr r3, _0811ADEC
adds r4, r0, r3
b _0811B012
.align 2, 0
_0811ADE8: .4byte 0x03005AEC
_0811ADEC: .4byte 0x00002BC8
_0811ADF0:
ldr r0, _0811ADFC
ldr r0, [r0]
ldr r1, _0811AE00
adds r4, r0, r1
b _0811B012
.align 2, 0
_0811ADFC: .4byte 0x03005AEC
_0811AE00: .4byte 0x00002BD4
_0811AE04:
ldr r2, _0811AE1C
ldr r0, _0811AE20
ldrh r1, [r0]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
ldr r3, _0811AE24
adds r0, r0, r3
ldr r1, [r2]
adds r4, r1, r0
b _0811B012
.align 2, 0
_0811AE1C: .4byte 0x03005AEC
_0811AE20: .4byte 0x02037282
_0811AE24: .4byte 0x00002BE0
_0811AE28:
ldr r0, _0811AE48
ldr r0, [r0]
ldr r2, _0811AE4C
adds r1, r0, r2
ldr r3, _0811AE50
adds r2, r0, r3
movs r3, #5
_0811AE36:
ldrh r0, [r2]
strh r0, [r2, #0xc]
adds r2, #2
subs r3, #1
cmp r3, #0
bge _0811AE36
adds r4, r1, #0
b _0811B012
.align 2, 0
_0811AE48: .4byte 0x03005AEC
_0811AE4C: .4byte 0x00002E36
_0811AE50: .4byte 0x00002E2A
_0811AE54:
ldr r2, _0811AE70
ldr r0, _0811AE74
ldrh r1, [r0]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, [r2]
adds r0, r0, r1
ldr r1, _0811AE78
adds r4, r0, r1
ldr r0, _0811AE7C
ldrb r5, [r0]
b _0811B012
.align 2, 0
_0811AE70: .4byte 0x03005AEC
_0811AE74: .4byte 0x02037282
_0811AE78: .4byte 0x000027D0
_0811AE7C: .4byte 0x02037284
_0811AE80:
ldr r2, _0811AEA4
ldr r0, _0811AEA8
ldrh r1, [r0]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
ldr r3, _0811AEAC
adds r0, r0, r3
ldr r1, [r2]
adds r1, r1, r0
ldr r0, _0811AEB0
ldrh r0, [r0]
lsls r0, r0, #1
adds r0, #0x1c
adds r4, r1, r0
movs r5, #1
b _0811B012
.align 2, 0
_0811AEA4: .4byte 0x03005AEC
_0811AEA8: .4byte 0x02037282
_0811AEAC: .4byte 0x000027CC
_0811AEB0: .4byte 0x02037284
_0811AEB4:
ldr r2, _0811AECC
ldr r0, _0811AED0
ldrh r1, [r0]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, [r2]
adds r0, r0, r1
ldr r1, _0811AED4
adds r4, r0, r1
movs r5, #0
b _0811B012
.align 2, 0
_0811AECC: .4byte 0x03005AEC
_0811AED0: .4byte 0x02037282
_0811AED4: .4byte 0x000027CE
_0811AED8:
ldr r4, _0811AEF4
ldr r1, _0811AEF8
ldr r0, [r1]
ldr r2, _0811AEFC
adds r0, r0, r2
ldrh r0, [r0]
strh r0, [r4]
ldr r0, [r1]
ldr r3, _0811AF00
adds r0, r0, r3
ldrh r0, [r0]
strh r0, [r4, #2]
b _0811B012
.align 2, 0
_0811AEF4: .4byte 0x02021C68
_0811AEF8: .4byte 0x03005AEC
_0811AEFC: .4byte 0x00002E6C
_0811AF00: .4byte 0x00002E6E
_0811AF04:
ldr r0, _0811AF18
ldr r0, [r0]
ldr r1, _0811AF1C
adds r4, r0, r1
ldr r2, _0811AF20
adds r0, r2, #0
strh r0, [r4]
movs r5, #1
b _0811B012
.align 2, 0
_0811AF18: .4byte 0x03005AEC
_0811AF1C: .4byte 0x00002BAA
_0811AF20: .4byte 0x0000FFFF
_0811AF24:
ldr r2, _0811AF48
ldr r0, _0811AF4C
ldrh r1, [r0]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
ldr r3, _0811AF50
adds r0, r0, r3
ldr r1, [r2]
adds r1, r1, r0
ldr r0, _0811AF54
ldrh r0, [r0]
lsls r0, r0, #1
adds r0, #4
adds r4, r1, r0
movs r5, #0
b _0811B012
.align 2, 0
_0811AF48: .4byte 0x03005AEC
_0811AF4C: .4byte 0x02037282
_0811AF50: .4byte 0x000027CC
_0811AF54: .4byte 0x02037284
_0811AF58:
ldr r2, _0811AF70
ldr r0, _0811AF74
ldrh r1, [r0]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, [r2]
adds r0, r0, r1
ldr r1, _0811AF78
adds r4, r0, r1
movs r5, #1
b _0811B012
.align 2, 0
_0811AF70: .4byte 0x03005AEC
_0811AF74: .4byte 0x02037282
_0811AF78: .4byte 0x000027E4
_0811AF7C:
ldr r4, _0811AF88
adds r0, r4, #0
movs r1, #2
bl InitializeEasyChatWordArray
b _0811B012
.align 2, 0
_0811AF88: .4byte 0x02021C68
_0811AF8C:
ldr r2, _0811AFB0
ldr r0, _0811AFB4
ldrh r1, [r0]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
ldr r3, _0811AFB8
adds r0, r0, r3
ldr r1, [r2]
adds r1, r1, r0
adds r4, r1, #0
adds r4, #0x14
ldr r2, _0811AFBC
adds r0, r2, #0
strh r0, [r1, #0x14]
movs r5, #2
b _0811B012
.align 2, 0
_0811AFB0: .4byte 0x03005AEC
_0811AFB4: .4byte 0x02037282
_0811AFB8: .4byte 0x000027CC
_0811AFBC: .4byte 0x0000FFFF
_0811AFC0:
ldr r0, _0811AFCC
ldr r0, [r0]
ldr r3, _0811AFD0
adds r4, r0, r3
b _0811B012
.align 2, 0
_0811AFCC: .4byte 0x03005AEC
_0811AFD0: .4byte 0x00003B6E
_0811AFD4:
ldr r0, _0811AFE0
ldr r0, [r0]
ldr r1, _0811AFE4
adds r4, r0, r1
b _0811B012
.align 2, 0
_0811AFE0: .4byte 0x03005AEC
_0811AFE4: .4byte 0x00003B5A
_0811AFE8:
ldr r0, _0811AFF4
ldr r0, [r0]
ldr r2, _0811AFF8
adds r4, r0, r2
b _0811B012
.align 2, 0
_0811AFF4: .4byte 0x03005AEC
_0811AFF8: .4byte 0x00003B6C
_0811AFFC:
ldr r0, _0811B008
ldr r0, [r0]
movs r3, #0x82
lsls r3, r3, #1
adds r4, r0, r3
b _0811B012
.align 2, 0
_0811B008: .4byte 0x03005AF0
_0811B00C:
bl sub_0801AB30
adds r4, r0, #0
_0811B012:
bl CleanupOverworldWindowsAndTilemaps
ldr r0, _0811B02C
ldrb r0, [r0]
ldr r2, _0811B030
adds r1, r4, #0
adds r3, r5, #0
bl DoEasyChatScreen
_0811B024:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0811B02C: .4byte 0x02037280
_0811B030: .4byte 0x08085B19
thumb_func_end ShowEasyChatScreen
thumb_func_start sub_0811B034
sub_0811B034: @ 0x0811B034
push {lr}
bl UpdatePaletteFade
ldr r0, _0811B050
movs r1, #0x87
lsls r1, r1, #3
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #0
beq _0811B054
cmp r0, #1
beq _0811B05E
b _0811B090
.align 2, 0
_0811B050: .4byte 0x03002360
_0811B054:
movs r0, #1
movs r1, #0
bl FadeScreen
b _0811B090
_0811B05E:
ldr r0, _0811B080
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0811B09E
ldr r0, _0811B084
ldr r0, [r0]
ldr r1, _0811B088
adds r0, r0, r1
ldr r1, _0811B08C
strh r1, [r0, #0x16]
bl CleanupOverworldWindowsAndTilemaps
bl DoQuizQuestionEasyChatScreen
b _0811B09E
.align 2, 0
_0811B080: .4byte 0x02037C74
_0811B084: .4byte 0x03005AEC
_0811B088: .4byte 0x00003B58
_0811B08C: .4byte 0x0000FFFF
_0811B090:
ldr r1, _0811B0A4
movs r0, #0x87
lsls r0, r0, #3
adds r1, r1, r0
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_0811B09E:
pop {r0}
bx r0
.align 2, 0
_0811B0A4: .4byte 0x03002360
thumb_func_end sub_0811B034
thumb_func_start sub_0811B0A8
sub_0811B0A8: @ 0x0811B0A8
push {lr}
ldr r0, _0811B0B4
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_0811B0B4: .4byte 0x0811B035
thumb_func_end sub_0811B0A8
thumb_func_start sub_0811B0B8
sub_0811B0B8: @ 0x0811B0B8
push {lr}
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
movs r0, #0
ldr r1, _0811B0D8
_0811B0C2:
ldrh r3, [r1]
cmp r2, r3
beq _0811B0D4
adds r1, #8
adds r0, #1
cmp r0, #3
bls _0811B0C2
movs r0, #1
rsbs r0, r0, #0
_0811B0D4:
pop {r1}
bx r1
.align 2, 0
_0811B0D8: .4byte 0x08573114
thumb_func_end sub_0811B0B8
thumb_func_start sub_0811B0DC
sub_0811B0DC: @ 0x0811B0DC
push {lr}
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
bl sub_0811B0B8
adds r1, r0, #0
mvns r1, r1
rsbs r0, r1, #0
orrs r0, r1
lsrs r0, r0, #0x1f
pop {r1}
bx r1
thumb_func_end sub_0811B0DC
thumb_func_start sub_0811B0F4
sub_0811B0F4: @ 0x0811B0F4
push {r4, lr}
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
bl sub_0811B0B8
adds r4, r0, #0
bl ResetTasks
ldr r0, _0811B118
lsls r4, r4, #3
adds r0, #4
adds r4, r4, r0
ldr r0, [r4]
bl sub_0811AD20
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0811B118: .4byte 0x08573114
thumb_func_end sub_0811B0F4
thumb_func_start DoQuizAnswerEasyChatScreen
DoQuizAnswerEasyChatScreen: @ 0x0811B11C
push {lr}
ldr r0, _0811B134
ldr r1, [r0]
ldr r0, _0811B138
adds r1, r1, r0
ldr r2, _0811B13C
movs r0, #0xf
movs r3, #3
bl DoEasyChatScreen
pop {r0}
bx r0
.align 2, 0
_0811B134: .4byte 0x03005AEC
_0811B138: .4byte 0x00003B6E
_0811B13C: .4byte 0x08085B19
thumb_func_end DoQuizAnswerEasyChatScreen
thumb_func_start DoQuizQuestionEasyChatScreen
DoQuizQuestionEasyChatScreen: @ 0x0811B140
push {lr}
ldr r0, _0811B158
ldr r1, [r0]
ldr r0, _0811B15C
adds r1, r1, r0
ldr r2, _0811B160
movs r0, #0x10
movs r3, #3
bl DoEasyChatScreen
pop {r0}
bx r0
.align 2, 0
_0811B158: .4byte 0x03005AEC
_0811B15C: .4byte 0x00003B5A
_0811B160: .4byte 0x08085B19
thumb_func_end DoQuizQuestionEasyChatScreen
thumb_func_start DoQuizSetAnswerEasyChatScreen
DoQuizSetAnswerEasyChatScreen: @ 0x0811B164
push {lr}
ldr r0, _0811B17C
ldr r1, [r0]
ldr r0, _0811B180
adds r1, r1, r0
ldr r2, _0811B184
movs r0, #0x12
movs r3, #3
bl DoEasyChatScreen
pop {r0}
bx r0
.align 2, 0
_0811B17C: .4byte 0x03005AEC
_0811B180: .4byte 0x00003B6C
_0811B184: .4byte 0x08085B19
thumb_func_end DoQuizSetAnswerEasyChatScreen
thumb_func_start DoQuizSetQuestionEasyChatScreen
DoQuizSetQuestionEasyChatScreen: @ 0x0811B188
push {lr}
ldr r0, _0811B1A0
ldr r1, [r0]
ldr r0, _0811B1A4
adds r1, r1, r0
ldr r2, _0811B1A8
movs r0, #0x11
movs r3, #3
bl DoEasyChatScreen
pop {r0}
bx r0
.align 2, 0
_0811B1A0: .4byte 0x03005AEC
_0811B1A4: .4byte 0x00003B5A
_0811B1A8: .4byte 0x08085B19
thumb_func_end DoQuizSetQuestionEasyChatScreen
thumb_func_start EasyChat_AllocateResources
EasyChat_AllocateResources: @ 0x0811B1AC
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
mov r8, r1
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
lsls r2, r2, #0x18
lsrs r6, r2, #0x18
ldr r4, _0811B1D0
movs r0, #0x50
bl Alloc
str r0, [r4]
cmp r0, #0
bne _0811B1D4
movs r0, #0
b _0811B2BE
.align 2, 0
_0811B1D0: .4byte 0x02039DE4
_0811B1D4:
movs r7, #0
strb r5, [r0]
ldr r0, [r4]
mov r1, r8
str r1, [r0, #0x38]
strb r7, [r0, #5]
ldr r0, [r4]
strb r7, [r0, #6]
ldr r0, [r4]
strb r7, [r0, #9]
ldr r0, [r4]
strb r6, [r0, #0x12]
ldr r0, [r4]
strb r7, [r0, #0x13]
adds r0, r5, #0
bl GetEachChatScreenTemplateId
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
cmp r5, #0x10
bne _0811B216
ldr r0, [r4]
adds r0, #0x14
bl sub_0811C5F4
ldr r0, [r4]
adds r1, r0, #0
adds r1, #0x14
str r1, [r0, #0x34]
movs r1, #7
strb r1, [r0, #4]
lsls r0, r6, #1
b _0811B22E
_0811B216:
ldr r0, [r4]
strb r7, [r0, #4]
ldr r3, [r4]
ldr r1, _0811B26C
lsls r2, r6, #1
adds r0, r2, r6
lsls r0, r0, #3
adds r1, #4
adds r0, r0, r1
ldr r0, [r0]
str r0, [r3, #0x34]
adds r0, r2, #0
_0811B22E:
ldr r3, _0811B270
ldr r2, [r3]
ldr r1, _0811B26C
adds r0, r0, r6
lsls r0, r0, #3
adds r0, r0, r1
ldrb r1, [r0, #1]
strb r1, [r2, #2]
ldr r1, [r3]
ldrb r0, [r0, #2]
strb r0, [r1, #3]
ldr r0, [r3]
ldrb r2, [r0, #2]
ldrb r1, [r0, #3]
adds r4, r2, #0
muls r4, r1, r4
adds r1, r4, #0
strb r1, [r0, #7]
ldr r0, [r3]
strb r6, [r0, #1]
mov r0, r8
cmp r0, #0
beq _0811B274
ldr r0, [r3]
adds r1, r0, #0
adds r1, #0x3c
ldrb r2, [r0, #7]
mov r0, r8
bl CpuSet
b _0811B2A4
.align 2, 0
_0811B26C: .4byte 0x08573134
_0811B270: .4byte 0x02039DE4
_0811B274:
movs r4, #0
ldr r0, [r3]
ldrb r0, [r0, #7]
cmp r4, r0
bge _0811B29C
adds r6, r3, #0
ldr r1, _0811B2C8
adds r5, r1, #0
_0811B284:
ldr r2, [r6]
lsls r0, r4, #1
adds r1, r2, #0
adds r1, #0x3c
adds r1, r1, r0
ldrh r0, [r1]
orrs r0, r5
strh r0, [r1]
adds r4, #1
ldrb r2, [r2, #7]
cmp r4, r2
blt _0811B284
_0811B29C:
ldr r1, [r3]
adds r0, r1, #0
adds r0, #0x3c
str r0, [r1, #0x38]
_0811B2A4:
bl sub_0811F908
ldr r1, _0811B2CC
ldr r4, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
subs r0, #1
movs r1, #3
bl __divsi3
adds r0, #1
strb r0, [r4, #0xd]
movs r0, #1
_0811B2BE:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_0811B2C8: .4byte 0x0000FFFF
_0811B2CC: .4byte 0x02039DE4
thumb_func_end EasyChat_AllocateResources
thumb_func_start EasyChat_FreeResources
EasyChat_FreeResources: @ 0x0811B2D0
push {r4, lr}
ldr r4, _0811B2E8
ldr r0, [r4]
cmp r0, #0
beq _0811B2E2
bl Free
movs r0, #0
str r0, [r4]
_0811B2E2:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0811B2E8: .4byte 0x02039DE4
thumb_func_end EasyChat_FreeResources
thumb_func_start sub_0811B2EC
sub_0811B2EC: @ 0x0811B2EC
push {lr}
ldr r0, _0811B304
ldr r0, [r0]
ldrb r0, [r0, #4]
cmp r0, #0xa
bhi _0811B37E
lsls r0, r0, #2
ldr r1, _0811B308
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0811B304: .4byte 0x02039DE4
_0811B308: .4byte 0x0811B30C
_0811B30C: @ jump table
.4byte _0811B338 @ case 0
.4byte _0811B33E @ case 1
.4byte _0811B344 @ case 2
.4byte _0811B34A @ case 3
.4byte _0811B350 @ case 4
.4byte _0811B356 @ case 5
.4byte _0811B35C @ case 6
.4byte _0811B362 @ case 7
.4byte _0811B368 @ case 8
.4byte _0811B36E @ case 9
.4byte _0811B374 @ case 10
_0811B338:
bl sub_0811B384
b _0811B378
_0811B33E:
bl sub_0811B4D4
b _0811B378
_0811B344:
bl sub_0811B614
b _0811B378
_0811B34A:
bl sub_0811B6D0
b _0811B378
_0811B350:
bl sub_0811B75C
b _0811B378
_0811B356:
bl sub_0811B810
b _0811B378
_0811B35C:
bl sub_0811B7BC
b _0811B378
_0811B362:
bl sub_0811B85C
b _0811B378
_0811B368:
bl sub_0811B88C
b _0811B378
_0811B36E:
bl sub_0811B8B8
b _0811B378
_0811B374:
bl sub_0811B8C8
_0811B378:
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
b _0811B380
_0811B37E:
movs r0, #0
_0811B380:
pop {r1}
bx r1
thumb_func_end sub_0811B2EC
thumb_func_start sub_0811B384
sub_0811B384: @ 0x0811B384
push {r4, r5, r6, r7, lr}
ldr r0, _0811B3B0
ldrh r1, [r0, #0x2e]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0811B3D4
bl sub_0811C79C
ldr r1, _0811B3B4
ldr r3, [r1]
movs r2, #0
movs r0, #2
strb r0, [r3, #4]
ldr r0, [r1]
strb r2, [r0, #0xa]
ldr r0, [r1]
strb r2, [r0, #0xb]
ldr r0, [r1]
strb r2, [r0, #0xc]
movs r0, #9
b _0811B4CE
.align 2, 0
_0811B3B0: .4byte 0x03002360
_0811B3B4: .4byte 0x02039DE4
_0811B3B8:
movs r0, #0x20
ands r0, r1
cmp r0, #0
bne _0811B484
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0811B474
movs r0, #0x10
ands r0, r1
cmp r0, #0
bne _0811B464
movs r0, #0
b _0811B4CE
_0811B3D4:
movs r0, #2
ands r0, r1
cmp r0, #0
bne _0811B494
movs r0, #8
ands r0, r1
cmp r0, #0
bne _0811B49A
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _0811B3B8
ldr r2, _0811B45C
ldr r1, [r2]
ldrb r0, [r1, #6]
subs r0, #1
_0811B3F4:
strb r0, [r1, #6]
_0811B3F6:
adds r7, r2, #0
adds r4, r7, #0
ldr r2, [r4]
movs r0, #6
ldrsb r0, [r2, r0]
ldr r6, _0811B460
cmp r0, #0
bge _0811B414
ldrb r0, [r2, #1]
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #3
adds r1, r1, r6
ldrb r0, [r1, #2]
strb r0, [r2, #6]
_0811B414:
ldr r3, [r4]
movs r2, #6
ldrsb r2, [r3, r2]
adds r5, r6, #0
ldrb r1, [r3, #1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r5
ldrb r0, [r0, #2]
cmp r2, r0
ble _0811B430
movs r0, #0
strb r0, [r3, #6]
_0811B430:
ldr r3, [r4]
movs r2, #6
ldrsb r2, [r3, r2]
ldrb r1, [r3, #1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r1, r0, r5
ldrb r0, [r1, #2]
cmp r2, r0
bne _0811B4A4
movs r0, #5
ldrsb r0, [r3, r0]
cmp r0, #2
ble _0811B452
movs r0, #2
strb r0, [r3, #5]
_0811B452:
ldr r1, [r4]
movs r0, #1
strb r0, [r1, #4]
movs r0, #3
b _0811B4CE
.align 2, 0
_0811B45C: .4byte 0x02039DE4
_0811B460: .4byte 0x08573134
_0811B464:
ldr r2, _0811B470
ldr r1, [r2]
ldrb r0, [r1, #5]
adds r0, #1
strb r0, [r1, #5]
b _0811B3F6
.align 2, 0
_0811B470: .4byte 0x02039DE4
_0811B474:
ldr r2, _0811B480
ldr r1, [r2]
ldrb r0, [r1, #6]
adds r0, #1
b _0811B3F4
.align 2, 0
_0811B480: .4byte 0x02039DE4
_0811B484:
ldr r2, _0811B490
ldr r1, [r2]
ldrb r0, [r1, #5]
subs r0, #1
strb r0, [r1, #5]
b _0811B3F6
.align 2, 0
_0811B490: .4byte 0x02039DE4
_0811B494:
bl sub_0811B920
b _0811B49E
_0811B49A:
bl sub_0811B984
_0811B49E:
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
b _0811B4CE
_0811B4A4:
movs r0, #5
ldrsb r0, [r3, r0]
cmp r0, #0
bge _0811B4B2
ldrb r0, [r1, #1]
subs r0, #1
strb r0, [r3, #5]
_0811B4B2:
ldr r3, [r7]
movs r2, #5
ldrsb r2, [r3, r2]
ldrb r1, [r3, #1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r6
ldrb r0, [r0, #1]
cmp r2, r0
blt _0811B4CC
movs r0, #0
strb r0, [r3, #5]
_0811B4CC:
movs r0, #2
_0811B4CE:
pop {r4, r5, r6, r7}
pop {r1}
bx r1
thumb_func_end sub_0811B384
thumb_func_start sub_0811B4D4
sub_0811B4D4: @ 0x0811B4D4
push {r4, r5, r6, lr}
ldr r2, _0811B4F4
ldrh r1, [r2, #0x2e]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0811B542
ldr r0, _0811B4F8
ldr r0, [r0]
ldrb r0, [r0, #5]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #1
beq _0811B536
b _0811B51C
.align 2, 0
_0811B4F4: .4byte 0x03002360
_0811B4F8: .4byte 0x02039DE4
_0811B4FC:
movs r0, #0x20
ands r0, r2
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
cmp r3, #0
bne _0811B5D8
movs r0, #0x80
ands r0, r2
cmp r0, #0
bne _0811B5C8
movs r0, #0x10
ands r0, r2
cmp r0, #0
bne _0811B5B8
movs r0, #0
b _0811B60E
_0811B51C:
cmp r0, #1
bgt _0811B526
cmp r0, #0
beq _0811B530
b _0811B542
_0811B526:
cmp r0, #2
beq _0811B5EE
cmp r0, #3
beq _0811B53C
b _0811B542
_0811B530:
bl sub_0811B954
b _0811B5F2
_0811B536:
bl sub_0811B920
b _0811B5F2
_0811B53C:
bl sub_0811BA34
b _0811B5F2
_0811B542:
ldrh r2, [r2, #0x2e]
movs r0, #2
ands r0, r2
cmp r0, #0
bne _0811B5E8
movs r0, #8
ands r0, r2
cmp r0, #0
bne _0811B5EE
movs r0, #0x40
ands r0, r2
cmp r0, #0
beq _0811B4FC
ldr r2, _0811B5B0
ldr r1, [r2]
ldrb r0, [r1, #6]
subs r0, #1
strb r0, [r1, #6]
_0811B566:
adds r6, r2, #0
_0811B568:
adds r5, r6, #0
ldr r4, [r5]
movs r3, #6
ldrsb r3, [r4, r3]
ldr r2, _0811B5B4
ldrb r1, [r4, #1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r1, r0, r2
ldrb r0, [r1, #2]
cmp r3, r0
bne _0811B5F8
bl FooterHasFourOptions
movs r2, #3
cmp r0, #0
beq _0811B58E
movs r2, #4
_0811B58E:
ldr r1, [r5]
movs r0, #5
ldrsb r0, [r1, r0]
cmp r0, #0
bge _0811B59C
subs r0, r2, #1
strb r0, [r1, #5]
_0811B59C:
ldr r1, [r5]
movs r0, #5
ldrsb r0, [r1, r0]
cmp r0, r2
blt _0811B5AA
movs r0, #0
strb r0, [r1, #5]
_0811B5AA:
movs r0, #3
b _0811B60E
.align 2, 0
_0811B5B0: .4byte 0x02039DE4
_0811B5B4: .4byte 0x08573134
_0811B5B8:
ldr r2, _0811B5C4
ldr r1, [r2]
ldrb r0, [r1, #5]
adds r0, #1
strb r0, [r1, #5]
b _0811B566
.align 2, 0
_0811B5C4: .4byte 0x02039DE4
_0811B5C8:
ldr r1, _0811B5D4
ldr r0, [r1]
strb r3, [r0, #6]
adds r6, r1, #0
b _0811B568
.align 2, 0
_0811B5D4: .4byte 0x02039DE4
_0811B5D8:
ldr r2, _0811B5E4
ldr r1, [r2]
ldrb r0, [r1, #5]
subs r0, #1
strb r0, [r1, #5]
b _0811B566
.align 2, 0
_0811B5E4: .4byte 0x02039DE4
_0811B5E8:
bl sub_0811B920
b _0811B5F2
_0811B5EE:
bl sub_0811B984
_0811B5F2:
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
b _0811B60E
_0811B5F8:
movs r0, #5
ldrsb r0, [r4, r0]
ldrb r1, [r1, #1]
cmp r0, r1
blt _0811B606
subs r0, r1, #1
strb r0, [r4, #5]
_0811B606:
ldr r1, [r6]
movs r0, #0
strb r0, [r1, #4]
movs r0, #2
_0811B60E:
pop {r4, r5, r6}
pop {r1}
bx r1
thumb_func_end sub_0811B4D4
thumb_func_start sub_0811B614
sub_0811B614: @ 0x0811B614
push {lr}
ldr r1, _0811B62C
ldrh r2, [r1, #0x2e]
movs r0, #2
ands r0, r2
adds r3, r1, #0
cmp r0, #0
beq _0811B630
bl sub_0811BAFC
b _0811B6C6
.align 2, 0
_0811B62C: .4byte 0x03002360
_0811B630:
movs r0, #1
ands r0, r2
cmp r0, #0
beq _0811B67E
ldr r0, _0811B650
ldr r2, [r0]
movs r1, #0xa
ldrsb r1, [r2, r1]
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
beq _0811B654
bl sub_0811BA80
b _0811B6C6
.align 2, 0
_0811B650: .4byte 0x02039DE4
_0811B654:
movs r0, #0xb
ldrsb r0, [r2, r0]
cmp r0, #1
beq _0811B672
cmp r0, #1
bgt _0811B666
cmp r0, #0
beq _0811B66C
b _0811B67E
_0811B666:
cmp r0, #2
beq _0811B678
b _0811B67E
_0811B66C:
bl sub_0811BB0C
b _0811B6C6
_0811B672:
bl sub_0811BB38
b _0811B6C6
_0811B678:
bl sub_0811BAFC
b _0811B6C6
_0811B67E:
ldrh r1, [r3, #0x2e]
movs r0, #4
ands r0, r1
cmp r0, #0
beq _0811B68E
bl sub_0811BB0C
b _0811B6C6
_0811B68E:
ldrh r1, [r3, #0x30]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _0811B69C
movs r0, #2
b _0811B6C2
_0811B69C:
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0811B6A8
movs r0, #3
b _0811B6C2
_0811B6A8:
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _0811B6B4
movs r0, #1
b _0811B6C2
_0811B6B4:
movs r0, #0x10
ands r0, r1
cmp r0, #0
bne _0811B6C0
movs r0, #0
b _0811B6CA
_0811B6C0:
movs r0, #0
_0811B6C2:
bl sub_0811BCF8
_0811B6C6:
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
_0811B6CA:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811B614
thumb_func_start sub_0811B6D0
sub_0811B6D0: @ 0x0811B6D0
push {lr}
ldr r2, _0811B6EC
ldrh r1, [r2, #0x2e]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0811B6F4
ldr r0, _0811B6F0
ldr r1, [r0]
movs r0, #2
strb r0, [r1, #4]
movs r0, #0xe
b _0811B756
.align 2, 0
_0811B6EC: .4byte 0x03002360
_0811B6F0: .4byte 0x02039DE4
_0811B6F4:
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0811B702
bl sub_0811BB64
b _0811B752
_0811B702:
movs r0, #8
ands r0, r1
cmp r0, #0
beq _0811B70E
movs r0, #4
b _0811B74E
_0811B70E:
movs r0, #4
ands r0, r1
cmp r0, #0
beq _0811B71A
movs r0, #5
b _0811B74E
_0811B71A:
ldrh r1, [r2, #0x30]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _0811B728
movs r0, #2
b _0811B74E
_0811B728:
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0811B734
movs r0, #3
b _0811B74E
_0811B734:
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _0811B740
movs r0, #1
b _0811B74E
_0811B740:
movs r0, #0x10
ands r0, r1
cmp r0, #0
bne _0811B74C
movs r0, #0
b _0811B756
_0811B74C:
movs r0, #0
_0811B74E:
bl sub_0811BF64
_0811B752:
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
_0811B756:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811B6D0
thumb_func_start sub_0811B75C
sub_0811B75C: @ 0x0811B75C
push {lr}
bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, r0, #0x18
asrs r1, r0, #0x18
cmp r1, #0
beq _0811B790
cmp r1, #0
bgt _0811B778
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
beq _0811B77C
b _0811B7B4
_0811B778:
cmp r1, #1
bne _0811B7B4
_0811B77C:
bl sub_0811BA74
ldr r1, _0811B78C
ldr r1, [r1]
strb r0, [r1, #4]
movs r0, #7
b _0811B7B6
.align 2, 0
_0811B78C: .4byte 0x02039DE4
_0811B790:
ldr r0, _0811B7AC
strh r1, [r0]
ldr r0, _0811B7B0
ldr r0, [r0]
ldrb r0, [r0]
subs r0, #0x11
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bhi _0811B7A8
bl sub_0811BBB4
_0811B7A8:
movs r0, #0x18
b _0811B7B6
.align 2, 0
_0811B7AC: .4byte 0x02037290
_0811B7B0: .4byte 0x02039DE4
_0811B7B4:
movs r0, #0
_0811B7B6:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811B75C
thumb_func_start sub_0811B7BC
sub_0811B7BC: @ 0x0811B7BC
push {r4, lr}
bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, r0, #0x18
asrs r1, r0, #0x18
cmp r1, #0
beq _0811B7F0
cmp r1, #0
bgt _0811B7D8
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
beq _0811B7DC
b _0811B808
_0811B7D8:
cmp r1, #1
bne _0811B808
_0811B7DC:
bl sub_0811BA74
ldr r1, _0811B7EC
ldr r1, [r1]
strb r0, [r1, #4]
movs r0, #7
b _0811B80A
.align 2, 0
_0811B7EC: .4byte 0x02039DE4
_0811B7F0:
bl sub_0811C68C
ldr r4, _0811B804
bl sub_0811BCBC
strh r0, [r4]
bl sub_0811BBB4
movs r0, #0x18
b _0811B80A
.align 2, 0
_0811B804: .4byte 0x02037290
_0811B808:
movs r0, #0
_0811B80A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_0811B7BC
thumb_func_start sub_0811B810
sub_0811B810: @ 0x0811B810
push {lr}
bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, r0, #0x18
asrs r1, r0, #0x18
cmp r1, #0
beq _0811B840
cmp r1, #0
bgt _0811B82C
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
beq _0811B830
b _0811B854
_0811B82C:
cmp r1, #1
bne _0811B854
_0811B830:
ldr r0, _0811B83C
ldr r1, [r0]
movs r0, #1
strb r0, [r1, #4]
movs r0, #7
b _0811B856
.align 2, 0
_0811B83C: .4byte 0x02039DE4
_0811B840:
bl sub_0811BBE8
ldr r0, _0811B850
ldr r1, [r0]
movs r0, #1
strb r0, [r1, #4]
movs r0, #8
b _0811B856
.align 2, 0
_0811B850: .4byte 0x02039DE4
_0811B854:
movs r0, #0
_0811B856:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811B810
thumb_func_start sub_0811B85C
sub_0811B85C: @ 0x0811B85C
push {lr}
ldr r0, _0811B870
ldrh r1, [r0, #0x2e]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0811B874
movs r0, #0x1a
b _0811B888
.align 2, 0
_0811B870: .4byte 0x03002360
_0811B874:
movs r0, #2
ands r0, r1
cmp r0, #0
bne _0811B880
movs r0, #0
b _0811B888
_0811B880:
bl sub_0811B920
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
_0811B888:
pop {r1}
bx r1
thumb_func_end sub_0811B85C
thumb_func_start sub_0811B88C
sub_0811B88C: @ 0x0811B88C
push {lr}
ldr r0, _0811B8A0
ldrh r1, [r0, #0x2e]
movs r0, #3
ands r0, r1
cmp r0, #0
bne _0811B8A4
movs r0, #0
b _0811B8B0
.align 2, 0
_0811B8A0: .4byte 0x03002360
_0811B8A4:
bl sub_0811BA74
ldr r1, _0811B8B4
ldr r1, [r1]
strb r0, [r1, #4]
movs r0, #7
_0811B8B0:
pop {r1}
bx r1
.align 2, 0
_0811B8B4: .4byte 0x02039DE4
thumb_func_end sub_0811B88C
thumb_func_start sub_0811B8B8
sub_0811B8B8: @ 0x0811B8B8
ldr r0, _0811B8C4
ldr r1, [r0]
movs r0, #0xa
strb r0, [r1, #4]
movs r0, #6
bx lr
.align 2, 0
_0811B8C4: .4byte 0x02039DE4
thumb_func_end sub_0811B8B8
thumb_func_start sub_0811B8C8
sub_0811B8C8: @ 0x0811B8C8
push {r4, lr}
bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, r0, #0x18
asrs r1, r0, #0x18
cmp r1, #0
beq _0811B904
cmp r1, #0
bgt _0811B8E4
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
beq _0811B8E8
b _0811B918
_0811B8E4:
cmp r1, #1
bne _0811B918
_0811B8E8:
bl sub_0811BC24
ldr r2, _0811B900
ldr r1, [r2]
movs r0, #0
strb r0, [r1, #8]
ldr r1, [r2]
movs r0, #8
strb r0, [r1, #4]
movs r0, #0x1f
b _0811B91A
.align 2, 0
_0811B900: .4byte 0x02039DE4
_0811B904:
ldr r4, _0811B914
bl sub_0811BCBC
strh r0, [r4]
bl sub_0811BBB4
movs r0, #0x18
b _0811B91A
.align 2, 0
_0811B914: .4byte 0x02037290
_0811B918:
movs r0, #0
_0811B91A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_0811B8C8
thumb_func_start sub_0811B920
sub_0811B920: @ 0x0811B920
push {lr}
ldr r1, _0811B940
ldr r2, [r1]
ldrb r0, [r2]
cmp r0, #0x13
beq _0811B930
cmp r0, #0xb
bne _0811B944
_0811B930:
ldrb r0, [r2, #4]
strb r0, [r2, #8]
ldr r1, [r1]
movs r0, #8
strb r0, [r1, #4]
movs r0, #0x22
b _0811B950
.align 2, 0
_0811B940: .4byte 0x02039DE4
_0811B944:
ldrb r0, [r2, #4]
strb r0, [r2, #8]
ldr r1, [r1]
movs r0, #4
strb r0, [r1, #4]
movs r0, #5
_0811B950:
pop {r1}
bx r1
thumb_func_end sub_0811B920
thumb_func_start sub_0811B954
sub_0811B954: @ 0x0811B954
push {lr}
ldr r2, _0811B974
ldr r0, [r2]
ldrb r1, [r0, #4]
strb r1, [r0, #8]
ldr r1, [r2]
ldrb r0, [r1]
cmp r0, #6
bne _0811B978
ldrb r0, [r1, #4]
strb r0, [r1, #8]
ldr r1, [r2]
movs r0, #8
strb r0, [r1, #4]
movs r0, #0x20
b _0811B97E
.align 2, 0
_0811B974: .4byte 0x02039DE4
_0811B978:
movs r0, #5
strb r0, [r1, #4]
movs r0, #4
_0811B97E:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811B954
thumb_func_start sub_0811B984
sub_0811B984: @ 0x0811B984
push {r4, lr}
ldr r4, _0811B9A8
ldr r1, [r4]
ldrb r0, [r1, #4]
strb r0, [r1, #8]
ldr r1, [r4]
ldrb r0, [r1]
cmp r0, #0x11
bne _0811B9AC
bl sub_0811C568
cmp r0, #0
bne _0811B9CA
bl sub_0811C5B4
cmp r0, #0
bne _0811B9B8
b _0811BA26
.align 2, 0
_0811B9A8: .4byte 0x02039DE4
_0811B9AC:
cmp r0, #0x12
bne _0811B9D4
bl sub_0811C5B4
cmp r0, #0
beq _0811B9C2
_0811B9B8:
ldr r1, [r4]
movs r0, #8
strb r0, [r1, #4]
movs r0, #0x1e
b _0811BA2C
_0811B9C2:
bl sub_0811C568
cmp r0, #0
beq _0811BA26
_0811B9CA:
ldr r1, [r4]
movs r0, #8
strb r0, [r1, #4]
movs r0, #0x1d
b _0811BA2C
_0811B9D4:
cmp r0, #9
beq _0811B9DC
cmp r0, #0xd
bne _0811B9EE
_0811B9DC:
bl sub_0811C530
cmp r0, #0
bne _0811BA26
ldr r1, [r4]
movs r0, #8
strb r0, [r1, #4]
movs r0, #0x21
b _0811BA2C
_0811B9EE:
cmp r0, #0x13
beq _0811B9F6
cmp r0, #0xb
bne _0811BA08
_0811B9F6:
bl sub_0811C4F8
cmp r0, #0
beq _0811BA26
ldr r1, [r4]
movs r0, #8
strb r0, [r1, #4]
movs r0, #0x22
b _0811BA2C
_0811BA08:
cmp r0, #0x14
beq _0811BA28
bl sub_0811C4F8
cmp r0, #1
beq _0811BA1C
bl sub_0811BCBC
cmp r0, #0
bne _0811BA26
_0811BA1C:
ldr r1, [r4]
movs r0, #4
strb r0, [r1, #4]
movs r0, #5
b _0811BA2C
_0811BA26:
ldr r1, [r4]
_0811BA28:
movs r0, #6
strb r0, [r1, #4]
_0811BA2C:
pop {r4}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811B984
thumb_func_start sub_0811BA34
sub_0811BA34: @ 0x0811BA34
push {lr}
ldr r2, _0811BA50
ldr r1, [r2]
ldrb r0, [r1, #4]
strb r0, [r1, #8]
ldr r0, [r2]
ldrb r0, [r0]
cmp r0, #0x11
beq _0811BA5E
cmp r0, #0x11
bgt _0811BA54
cmp r0, #0xf
beq _0811BA5A
b _0811BA6E
.align 2, 0
_0811BA50: .4byte 0x02039DE4
_0811BA54:
cmp r0, #0x12
beq _0811BA66
b _0811BA6E
_0811BA5A:
movs r0, #0x19
b _0811BA70
_0811BA5E:
bl sub_0811BBB4
movs r0, #0x1c
b _0811BA70
_0811BA66:
bl sub_0811BBB4
movs r0, #0x1b
b _0811BA70
_0811BA6E:
movs r0, #0
_0811BA70:
pop {r1}
bx r1
thumb_func_end sub_0811BA34
thumb_func_start sub_0811BA74
sub_0811BA74: @ 0x0811BA74
ldr r0, _0811BA7C
ldr r0, [r0]
ldrb r0, [r0, #8]
bx lr
.align 2, 0
_0811BA7C: .4byte 0x02039DE4
thumb_func_end sub_0811BA74
thumb_func_start sub_0811BA80
sub_0811BA80: @ 0x0811BA80
push {r4, r5, r6, lr}
ldr r0, _0811BAA8
ldr r0, [r0]
ldrb r0, [r0, #9]
cmp r0, #0
bne _0811BAAC
bl sub_0811C0B8
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
bl sub_0811F914
adds r1, r0, #0
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
movs r0, #0
bl sub_0811FAA0
b _0811BABC
.align 2, 0
_0811BAA8: .4byte 0x02039DE4
_0811BAAC:
bl GetFooterIndex
adds r1, r0, #0
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
movs r0, #1
bl sub_0811FAA0
_0811BABC:
bl sub_0811FB08
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0
beq _0811BAF4
ldr r4, _0811BAF0
ldr r5, [r4]
subs r0, #1
movs r6, #3
movs r1, #3
bl __divsi3
movs r1, #0
strb r0, [r5, #0xf]
ldr r0, [r4]
strb r1, [r0, #0xe]
ldr r0, [r4]
strb r1, [r0, #0x10]
ldr r0, [r4]
strb r1, [r0, #0x11]
ldr r0, [r4]
strb r6, [r0, #4]
movs r0, #0xb
b _0811BAF6
.align 2, 0
_0811BAF0: .4byte 0x02039DE4
_0811BAF4:
movs r0, #0
_0811BAF6:
pop {r4, r5, r6}
pop {r1}
bx r1
thumb_func_end sub_0811BA80
thumb_func_start sub_0811BAFC
sub_0811BAFC: @ 0x0811BAFC
ldr r0, _0811BB08
ldr r1, [r0]
movs r0, #0
strb r0, [r1, #4]
movs r0, #0xa
bx lr
.align 2, 0
_0811BB08: .4byte 0x02039DE4
thumb_func_end sub_0811BAFC
thumb_func_start sub_0811BB0C
sub_0811BB0C: @ 0x0811BB0C
push {lr}
ldr r1, _0811BB2C
ldr r0, [r1]
movs r2, #0
strb r2, [r0, #0xa]
ldr r0, [r1]
strb r2, [r0, #0xb]
ldr r0, [r1]
strb r2, [r0, #0xc]
ldr r1, [r1]
ldrb r0, [r1, #9]
cmp r0, #0
bne _0811BB30
movs r0, #1
strb r0, [r1, #9]
b _0811BB32
.align 2, 0
_0811BB2C: .4byte 0x02039DE4
_0811BB30:
strb r2, [r1, #9]
_0811BB32:
movs r0, #0x17
pop {r1}
bx r1
thumb_func_end sub_0811BB0C
thumb_func_start sub_0811BB38
sub_0811BB38: @ 0x0811BB38
push {lr}
ldr r0, _0811BB50
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, #6
beq _0811BB58
ldr r0, _0811BB54
bl sub_0811BC58
movs r0, #1
b _0811BB60
.align 2, 0
_0811BB50: .4byte 0x02039DE4
_0811BB54: .4byte 0x0000FFFF
_0811BB58:
movs r0, #0x20
bl PlaySE
movs r0, #0
_0811BB60:
pop {r1}
bx r1
thumb_func_end sub_0811BB38
thumb_func_start sub_0811BB64
sub_0811BB64: @ 0x0811BB64
push {r4, r5, lr}
bl sub_0811C140
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
bl sub_0811FAD0
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
adds r0, r4, #0
bl sub_0811C820
adds r5, r0, #0
cmp r5, #0
beq _0811BB8C
movs r0, #0x20
bl PlaySE
movs r0, #0
b _0811BBAC
_0811BB8C:
adds r0, r4, #0
bl sub_0811BC58
ldr r0, _0811BBA4
ldr r1, [r0]
ldrb r0, [r1]
cmp r0, #6
bne _0811BBA8
movs r0, #9
strb r0, [r1, #4]
movs r0, #0xd
b _0811BBAC
.align 2, 0
_0811BBA4: .4byte 0x02039DE4
_0811BBA8:
strb r5, [r1, #4]
movs r0, #0xc
_0811BBAC:
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811BB64
thumb_func_start sub_0811BBB4
sub_0811BBB4: @ 0x0811BBB4
push {r4, r5, lr}
movs r4, #0
ldr r3, _0811BBE4
ldr r0, [r3]
ldrb r0, [r0, #7]
cmp r4, r0
bge _0811BBDE
adds r5, r3, #0
_0811BBC4:
ldr r3, [r5]
ldr r1, [r3, #0x38]
lsls r2, r4, #1
adds r1, r2, r1
adds r0, r3, #0
adds r0, #0x3c
adds r0, r0, r2
ldrh r0, [r0]
strh r0, [r1]
adds r4, #1
ldrb r3, [r3, #7]
cmp r4, r3
blt _0811BBC4
_0811BBDE:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0811BBE4: .4byte 0x02039DE4
thumb_func_end sub_0811BBB4
thumb_func_start sub_0811BBE8
sub_0811BBE8: @ 0x0811BBE8
push {r4, r5, lr}
movs r3, #0
ldr r2, _0811BC1C
ldr r0, [r2]
ldrb r0, [r0, #7]
cmp r3, r0
bge _0811BC14
adds r5, r2, #0
ldr r0, _0811BC20
adds r4, r0, #0
_0811BBFC:
ldr r2, [r5]
lsls r0, r3, #1
adds r1, r2, #0
adds r1, #0x3c
adds r1, r1, r0
ldrh r0, [r1]
orrs r0, r4
strh r0, [r1]
adds r3, #1
ldrb r2, [r2, #7]
cmp r3, r2
blt _0811BBFC
_0811BC14:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0811BC1C: .4byte 0x02039DE4
_0811BC20: .4byte 0x0000FFFF
thumb_func_end sub_0811BBE8
thumb_func_start sub_0811BC24
sub_0811BC24: @ 0x0811BC24
push {r4, r5, lr}
movs r4, #0
ldr r3, _0811BC54
ldr r0, [r3]
ldrb r0, [r0, #7]
cmp r4, r0
bge _0811BC4E
adds r5, r3, #0
_0811BC34:
ldr r3, [r5]
lsls r1, r4, #1
adds r2, r3, #0
adds r2, #0x3c
adds r2, r2, r1
ldr r0, [r3, #0x38]
adds r1, r1, r0
ldrh r0, [r1]
strh r0, [r2]
adds r4, #1
ldrb r3, [r3, #7]
cmp r4, r3
blt _0811BC34
_0811BC4E:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0811BC54: .4byte 0x02039DE4
thumb_func_end sub_0811BC24
thumb_func_start sub_0811BC58
sub_0811BC58: @ 0x0811BC58
push {r4, lr}
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
bl sub_0811C098
lsls r0, r0, #0x10
ldr r1, _0811BC78
ldr r1, [r1]
lsrs r0, r0, #0xf
adds r1, #0x3c
adds r1, r1, r0
strh r4, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0811BC78: .4byte 0x02039DE4
thumb_func_end sub_0811BC58
thumb_func_start sub_0811BC7C
sub_0811BC7C: @ 0x0811BC7C
push {r4, r5, lr}
movs r2, #0
ldr r0, _0811BCA4
ldr r0, [r0]
ldrb r1, [r0, #7]
cmp r2, r1
bhs _0811BCB2
adds r5, r1, #0
adds r4, r0, #0
adds r4, #0x3c
ldr r3, [r0, #0x38]
_0811BC92:
lsls r0, r2, #1
adds r1, r4, r0
adds r0, r0, r3
ldrh r1, [r1]
ldrh r0, [r0]
cmp r1, r0
beq _0811BCA8
movs r0, #1
b _0811BCB4
.align 2, 0
_0811BCA4: .4byte 0x02039DE4
_0811BCA8:
adds r0, r2, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
cmp r2, r5
blo _0811BC92
_0811BCB2:
movs r0, #0
_0811BCB4:
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811BC7C
thumb_func_start sub_0811BCBC
sub_0811BCBC: @ 0x0811BCBC
push {lr}
ldr r0, _0811BCE4
ldr r0, [r0]
ldrb r0, [r0]
subs r0, #0x11
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bhi _0811BCEC
bl sub_0811C568
cmp r0, #0
bne _0811BCDE
bl sub_0811C5B4
cmp r0, #0
beq _0811BCE8
_0811BCDE:
movs r0, #0
b _0811BCF4
.align 2, 0
_0811BCE4: .4byte 0x02039DE4
_0811BCE8:
movs r0, #1
b _0811BCF4
_0811BCEC:
bl sub_0811BC7C
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
_0811BCF4:
pop {r1}
bx r1
thumb_func_end sub_0811BCBC
thumb_func_start sub_0811BCF8
sub_0811BCF8: @ 0x0811BCF8
push {lr}
adds r2, r0, #0
ldr r0, _0811BD1C
ldr r3, [r0]
movs r1, #0xa
ldrsb r1, [r3, r1]
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
beq _0811BD28
ldrb r0, [r3, #9]
cmp r0, #0
bne _0811BD20
adds r0, r2, #0
bl sub_0811BD38
b _0811BD2E
.align 2, 0
_0811BD1C: .4byte 0x02039DE4
_0811BD20:
adds r0, r2, #0
bl sub_0811BE04
b _0811BD2E
_0811BD28:
adds r0, r2, #0
bl sub_0811BE94
_0811BD2E:
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811BCF8
thumb_func_start sub_0811BD38
sub_0811BD38: @ 0x0811BD38
push {r4, lr}
cmp r0, #1
beq _0811BDAE
cmp r0, #1
blo _0811BDCE
cmp r0, #2
beq _0811BD4C
cmp r0, #3
beq _0811BD74
b _0811BDFA
_0811BD4C:
ldr r0, _0811BD68
ldr r1, [r0]
movs r0, #0xb
ldrsb r0, [r1, r0]
ldrb r3, [r1, #0xc]
cmn r0, r3
beq _0811BDFA
ldrb r2, [r1, #0xb]
cmp r0, #0
beq _0811BD6C
subs r0, r2, #1
strb r0, [r1, #0xb]
_0811BD64:
movs r0, #0xf
b _0811BDFC
.align 2, 0
_0811BD68: .4byte 0x02039DE4
_0811BD6C:
subs r0, r3, #1
strb r0, [r1, #0xc]
movs r0, #0x11
b _0811BDFC
_0811BD74:
ldr r0, _0811BD9C
ldr r2, [r0]
movs r1, #0xb
ldrsb r1, [r2, r1]
ldrb r3, [r2, #0xc]
adds r1, r1, r3
ldrb r0, [r2, #0xd]
subs r0, #1
cmp r1, r0
bge _0811BDFA
ldrb r1, [r2, #0xb]
movs r0, #0xb
ldrsb r0, [r2, r0]
cmp r0, #2
bgt _0811BDA0
adds r0, r1, #1
strb r0, [r2, #0xb]
movs r4, #0xf
b _0811BDA6
.align 2, 0
_0811BD9C: .4byte 0x02039DE4
_0811BDA0:
adds r0, r3, #1
strb r0, [r2, #0xc]
movs r4, #0x10
_0811BDA6:
bl sub_0811C17C
adds r0, r4, #0
b _0811BDFC
_0811BDAE:
ldr r0, _0811BDC4
ldr r1, [r0]
ldrb r2, [r1, #0xa]
movs r0, #0xa
ldrsb r0, [r1, r0]
cmp r0, #0
beq _0811BDC8
subs r0, r2, #1
strb r0, [r1, #0xa]
b _0811BD64
.align 2, 0
_0811BDC4: .4byte 0x02039DE4
_0811BDC8:
bl sub_0811BF14
b _0811BD64
_0811BDCE:
ldr r0, _0811BDF0
ldr r1, [r0]
ldrb r2, [r1, #0xa]
movs r0, #0xa
ldrsb r0, [r1, r0]
cmp r0, #1
bgt _0811BDF4
adds r0, r2, #1
strb r0, [r1, #0xa]
bl sub_0811C1CC
lsls r0, r0, #0x18
cmp r0, #0
beq _0811BD64
bl sub_0811BF14
b _0811BD64
.align 2, 0
_0811BDF0: .4byte 0x02039DE4
_0811BDF4:
bl sub_0811BF14
b _0811BD64
_0811BDFA:
movs r0, #0
_0811BDFC:
pop {r4}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811BD38
thumb_func_start sub_0811BE04
sub_0811BE04: @ 0x0811BE04
push {lr}
cmp r0, #1
beq _0811BE70
cmp r0, #1
blo _0811BE54
cmp r0, #2
beq _0811BE1A
cmp r0, #3
beq _0811BE3A
movs r0, #0
b _0811BE8C
_0811BE1A:
ldr r0, _0811BE2C
ldr r1, [r0]
ldrb r2, [r1, #0xb]
movs r0, #0xb
ldrsb r0, [r1, r0]
cmp r0, #0
ble _0811BE30
subs r0, r2, #1
b _0811BE32
.align 2, 0
_0811BE2C: .4byte 0x02039DE4
_0811BE30:
movs r0, #3
_0811BE32:
strb r0, [r1, #0xb]
bl sub_0811C17C
b _0811BE8A
_0811BE3A:
ldr r0, _0811BE4C
ldr r1, [r0]
ldrb r2, [r1, #0xb]
movs r0, #0xb
ldrsb r0, [r1, r0]
cmp r0, #2
bgt _0811BE50
adds r0, r2, #1
b _0811BE32
.align 2, 0
_0811BE4C: .4byte 0x02039DE4
_0811BE50:
movs r0, #0
b _0811BE32
_0811BE54:
ldr r0, _0811BE6C
ldr r1, [r0]
ldrb r0, [r1, #0xa]
adds r0, #1
strb r0, [r1, #0xa]
bl sub_0811C1CC
lsls r0, r0, #0x18
cmp r0, #0
beq _0811BE8A
b _0811BE86
.align 2, 0
_0811BE6C: .4byte 0x02039DE4
_0811BE70:
ldr r2, _0811BE90
ldr r1, [r2]
ldrb r0, [r1, #0xa]
subs r0, #1
strb r0, [r1, #0xa]
ldr r0, [r2]
ldrb r0, [r0, #0xa]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bge _0811BE8A
_0811BE86:
bl sub_0811BF14
_0811BE8A:
movs r0, #0xf
_0811BE8C:
pop {r1}
bx r1
.align 2, 0
_0811BE90: .4byte 0x02039DE4
thumb_func_end sub_0811BE04
thumb_func_start sub_0811BE94
sub_0811BE94: @ 0x0811BE94
push {lr}
adds r2, r0, #0
cmp r2, #1
beq _0811BEE4
cmp r2, #1
blo _0811BEF8
cmp r2, #2
beq _0811BEAC
cmp r2, #3
beq _0811BEC8
movs r0, #0
b _0811BF0A
_0811BEAC:
ldr r0, _0811BEC0
ldr r1, [r0]
ldrb r3, [r1, #0xb]
movs r0, #0xb
ldrsb r0, [r1, r0]
cmp r0, #0
beq _0811BEC4
subs r0, r3, #1
b _0811BF06
.align 2, 0
_0811BEC0: .4byte 0x02039DE4
_0811BEC4:
strb r2, [r1, #0xb]
b _0811BF08
_0811BEC8:
ldr r0, _0811BEDC
ldr r1, [r0]
ldrb r2, [r1, #0xb]
movs r0, #0xb
ldrsb r0, [r1, r0]
cmp r0, #1
bgt _0811BEE0
adds r0, r2, #1
b _0811BF06
.align 2, 0
_0811BEDC: .4byte 0x02039DE4
_0811BEE0:
movs r0, #0
b _0811BF06
_0811BEE4:
ldr r0, _0811BEF4
ldr r1, [r0]
ldrb r0, [r1, #0xb]
adds r0, #1
strb r0, [r1, #0xb]
bl sub_0811BF38
b _0811BF08
.align 2, 0
_0811BEF4: .4byte 0x02039DE4
_0811BEF8:
ldr r2, _0811BF10
ldr r1, [r2]
movs r0, #0
strb r0, [r1, #0xa]
ldr r1, [r2]
ldrb r0, [r1, #0xb]
adds r0, #1
_0811BF06:
strb r0, [r1, #0xb]
_0811BF08:
movs r0, #0xf
_0811BF0A:
pop {r1}
bx r1
.align 2, 0
_0811BF10: .4byte 0x02039DE4
thumb_func_end sub_0811BE94
thumb_func_start sub_0811BF14
sub_0811BF14: @ 0x0811BF14
push {lr}
ldr r2, _0811BF34
ldr r1, [r2]
movs r0, #0xff
strb r0, [r1, #0xa]
ldr r2, [r2]
ldrb r1, [r2, #0xb]
movs r0, #0xb
ldrsb r0, [r2, r0]
cmp r0, #0
beq _0811BF2E
subs r0, r1, #1
strb r0, [r2, #0xb]
_0811BF2E:
pop {r0}
bx r0
.align 2, 0
_0811BF34: .4byte 0x02039DE4
thumb_func_end sub_0811BF14
thumb_func_start sub_0811BF38
sub_0811BF38: @ 0x0811BF38
push {r4, lr}
ldr r4, _0811BF50
ldr r1, [r4]
ldrb r0, [r1, #9]
cmp r0, #0
bne _0811BF54
movs r0, #2
strb r0, [r1, #0xa]
bl sub_0811C17C
b _0811BF5E
.align 2, 0
_0811BF50: .4byte 0x02039DE4
_0811BF54:
ldrb r0, [r1, #0xb]
bl sub_0811C160
ldr r1, [r4]
strb r0, [r1, #0xa]
_0811BF5E:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_0811BF38
thumb_func_start sub_0811BF64
sub_0811BF64: @ 0x0811BF64
push {r4, lr}
cmp r0, #5
bls _0811BF6C
b _0811C090
_0811BF6C:
lsls r0, r0, #2
ldr r1, _0811BF78
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0811BF78: .4byte 0x0811BF7C
_0811BF7C: @ jump table
.4byte _0811C018 @ case 0
.4byte _0811BFF6 @ case 1
.4byte _0811BF94 @ case 2
.4byte _0811BFC0 @ case 3
.4byte _0811C040 @ case 4
.4byte _0811C060 @ case 5
_0811BF94:
ldr r0, _0811BFB4
ldr r1, [r0]
movs r0, #0x11
ldrsb r0, [r1, r0]
ldrb r3, [r1, #0xe]
adds r0, r0, r3
cmp r0, #0
bgt _0811BFA6
b _0811C090
_0811BFA6:
ldrb r2, [r1, #0x11]
movs r0, #0x11
ldrsb r0, [r1, r0]
cmp r0, #0
ble _0811BFB8
subs r0, r2, #1
b _0811BFDE
.align 2, 0
_0811BFB4: .4byte 0x02039DE4
_0811BFB8:
subs r0, r3, #1
strb r0, [r1, #0xe]
movs r4, #0x13
b _0811BFEE
_0811BFC0:
ldr r0, _0811BFE4
ldr r1, [r0]
movs r0, #0x11
ldrsb r0, [r1, r0]
ldrb r3, [r1, #0xe]
adds r0, r0, r3
ldrb r2, [r1, #0xf]
cmp r0, r2
bge _0811C090
ldrb r2, [r1, #0x11]
movs r0, #0x11
ldrsb r0, [r1, r0]
cmp r0, #2
bgt _0811BFE8
adds r0, r2, #1
_0811BFDE:
strb r0, [r1, #0x11]
movs r4, #0x12
b _0811BFEE
.align 2, 0
_0811BFE4: .4byte 0x02039DE4
_0811BFE8:
adds r0, r3, #1
strb r0, [r1, #0xe]
movs r4, #0x14
_0811BFEE:
bl sub_0811C1A4
adds r0, r4, #0
b _0811C092
_0811BFF6:
ldr r0, _0811C008
ldr r1, [r0]
ldrb r2, [r1, #0x10]
movs r0, #0x10
ldrsb r0, [r1, r0]
cmp r0, #0
ble _0811C00C
subs r0, r2, #1
b _0811C00E
.align 2, 0
_0811C008: .4byte 0x02039DE4
_0811C00C:
movs r0, #2
_0811C00E:
strb r0, [r1, #0x10]
bl sub_0811C1A4
_0811C014:
movs r0, #0x12
b _0811C092
_0811C018:
ldr r4, _0811C03C
ldr r1, [r4]
ldrb r2, [r1, #0x10]
movs r0, #0x10
ldrsb r0, [r1, r0]
cmp r0, #1
bgt _0811C036
adds r0, r2, #1
strb r0, [r1, #0x10]
bl sub_0811C220
lsls r0, r0, #0x18
cmp r0, #0
beq _0811C014
ldr r1, [r4]
_0811C036:
movs r0, #0
strb r0, [r1, #0x10]
b _0811C014
.align 2, 0
_0811C03C: .4byte 0x02039DE4
_0811C040:
ldr r0, _0811C054
ldr r2, [r0]
ldrb r0, [r2, #0xe]
adds r1, r0, #0
cmp r1, #0
beq _0811C090
cmp r1, #3
bls _0811C058
subs r0, #4
b _0811C05A
.align 2, 0
_0811C054: .4byte 0x02039DE4
_0811C058:
movs r0, #0
_0811C05A:
strb r0, [r2, #0xe]
movs r0, #0x15
b _0811C092
_0811C060:
ldr r3, _0811C08C
ldr r1, [r3]
ldrb r2, [r1, #0xe]
ldrb r0, [r1, #0xf]
subs r0, #4
cmp r2, r0
bgt _0811C090
adds r0, r2, #4
strb r0, [r1, #0xe]
ldr r2, [r3]
ldrb r1, [r2, #0xe]
ldrb r3, [r2, #0xf]
subs r0, r3, #3
cmp r1, r0
ble _0811C084
adds r0, r3, #0
adds r0, #0xfd
strb r0, [r2, #0xe]
_0811C084:
bl sub_0811C1A4
movs r0, #0x16
b _0811C092
.align 2, 0
_0811C08C: .4byte 0x02039DE4
_0811C090:
movs r0, #0
_0811C092:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_0811BF64
thumb_func_start sub_0811C098
sub_0811C098: @ 0x0811C098
ldr r0, _0811C0B4
ldr r0, [r0]
movs r2, #6
ldrsb r2, [r0, r2]
ldrb r1, [r0, #2]
muls r1, r2, r1
ldrb r0, [r0, #5]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
bx lr
.align 2, 0
_0811C0B4: .4byte 0x02039DE4
thumb_func_end sub_0811C098
thumb_func_start sub_0811C0B8
sub_0811C0B8: @ 0x0811C0B8
ldr r0, _0811C0D4
ldr r2, [r0]
movs r0, #0xb
ldrsb r0, [r2, r0]
ldrb r1, [r2, #0xc]
adds r0, r0, r1
lsls r1, r0, #1
adds r1, r1, r0
movs r0, #0xa
ldrsb r0, [r2, r0]
adds r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
bx lr
.align 2, 0
_0811C0D4: .4byte 0x02039DE4
thumb_func_end sub_0811C0B8
thumb_func_start GetFooterIndex
GetFooterIndex: @ 0x0811C0D8
push {lr}
ldr r0, _0811C0F8
ldr r2, [r0]
movs r0, #0xa
ldrsb r0, [r2, r0]
cmp r0, #4
bgt _0811C0FC
movs r0, #0xb
ldrsb r0, [r2, r0]
lsls r1, r0, #2
adds r1, r1, r0
adds r1, #1
movs r0, #0xa
ldrsb r0, [r2, r0]
adds r0, r0, r1
b _0811C130
.align 2, 0
_0811C0F8: .4byte 0x02039DE4
_0811C0FC:
cmp r0, #9
bgt _0811C11E
movs r0, #0xb
ldrsb r0, [r2, r0]
cmp r0, #2
bgt _0811C116
lsls r1, r0, #2
adds r1, r1, r0
movs r0, #0xa
ldrsb r0, [r2, r0]
adds r0, r0, r1
adds r0, #0x10
b _0811C130
_0811C116:
movs r0, #0xa
ldrsb r0, [r2, r0]
adds r0, #0x22
b _0811C130
_0811C11E:
cmp r0, #0xc
bgt _0811C13A
movs r0, #0xb
ldrsb r0, [r2, r0]
cmp r0, #0
bne _0811C136
movs r0, #0xa
ldrsb r0, [r2, r0]
adds r0, #0x1a
_0811C130:
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
b _0811C13C
_0811C136:
movs r0, #0
b _0811C13C
_0811C13A:
movs r0, #0x2c
_0811C13C:
pop {r1}
bx r1
thumb_func_end GetFooterIndex
thumb_func_start sub_0811C140
sub_0811C140: @ 0x0811C140
ldr r0, _0811C15C
ldr r2, [r0]
movs r0, #0x11
ldrsb r0, [r2, r0]
ldrb r1, [r2, #0xe]
adds r0, r0, r1
lsls r1, r0, #1
adds r1, r1, r0
movs r0, #0x10
ldrsb r0, [r2, r0]
adds r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
bx lr
.align 2, 0
_0811C15C: .4byte 0x02039DE4
thumb_func_end sub_0811C140
thumb_func_start sub_0811C160
sub_0811C160: @ 0x0811C160
push {lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0
beq _0811C172
cmp r0, #1
beq _0811C176
movs r0, #9
b _0811C178
_0811C172:
movs r0, #0xd
b _0811C178
_0811C176:
movs r0, #0xa
_0811C178:
pop {r1}
bx r1
thumb_func_end sub_0811C160
thumb_func_start sub_0811C17C
sub_0811C17C: @ 0x0811C17C
push {lr}
b _0811C192
_0811C180:
ldr r0, _0811C1A0
ldr r1, [r0]
ldrb r2, [r1, #0xa]
movs r0, #0xa
ldrsb r0, [r1, r0]
cmp r0, #0
beq _0811C19C
subs r0, r2, #1
strb r0, [r1, #0xa]
_0811C192:
bl sub_0811C1CC
lsls r0, r0, #0x18
cmp r0, #0
bne _0811C180
_0811C19C:
pop {r0}
bx r0
.align 2, 0
_0811C1A0: .4byte 0x02039DE4
thumb_func_end sub_0811C17C
thumb_func_start sub_0811C1A4
sub_0811C1A4: @ 0x0811C1A4
push {lr}
b _0811C1BA
_0811C1A8:
ldr r0, _0811C1C8
ldr r1, [r0]
ldrb r2, [r1, #0x10]
movs r0, #0x10
ldrsb r0, [r1, r0]
cmp r0, #0
beq _0811C1C4
subs r0, r2, #1
strb r0, [r1, #0x10]
_0811C1BA:
bl sub_0811C220
lsls r0, r0, #0x18
cmp r0, #0
bne _0811C1A8
_0811C1C4:
pop {r0}
bx r0
.align 2, 0
_0811C1C8: .4byte 0x02039DE4
thumb_func_end sub_0811C1A4
thumb_func_start sub_0811C1CC
sub_0811C1CC: @ 0x0811C1CC
push {r4, lr}
ldr r4, _0811C1F8
ldr r1, [r4]
ldrb r0, [r1, #9]
cmp r0, #0
bne _0811C1FC
bl sub_0811C0B8
adds r4, r0, #0
bl sub_0811F908
movs r1, #0
lsls r0, r0, #0x18
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
lsrs r0, r0, #0x18
cmp r4, r0
blo _0811C1F2
movs r1, #1
_0811C1F2:
adds r0, r1, #0
b _0811C218
.align 2, 0
_0811C1F8: .4byte 0x02039DE4
_0811C1FC:
ldrb r0, [r1, #0xb]
bl sub_0811C160
movs r2, #0
ldr r1, [r4]
ldrb r1, [r1, #0xa]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r1, r0
ble _0811C216
movs r2, #1
_0811C216:
adds r0, r2, #0
_0811C218:
pop {r4}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811C1CC
thumb_func_start sub_0811C220
sub_0811C220: @ 0x0811C220
push {r4, lr}
bl sub_0811C140
adds r4, r0, #0
bl sub_0811FB08
movs r1, #0
lsls r4, r4, #0x10
lsls r0, r0, #0x10
cmp r4, r0
blo _0811C238
movs r1, #1
_0811C238:
adds r0, r1, #0
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_0811C220
thumb_func_start FooterHasFourOptions
FooterHasFourOptions: @ 0x0811C240
ldr r2, _0811C258
ldr r0, _0811C25C
ldr r0, [r0]
ldrb r1, [r0, #1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
ldrb r0, [r0, #3]
lsrs r0, r0, #7
bx lr
.align 2, 0
_0811C258: .4byte 0x08573134
_0811C25C: .4byte 0x02039DE4
thumb_func_end FooterHasFourOptions
thumb_func_start GetEasyChatScreenType
GetEasyChatScreenType: @ 0x0811C260
ldr r0, _0811C268
ldr r0, [r0]
ldrb r0, [r0]
bx lr
.align 2, 0
_0811C268: .4byte 0x02039DE4
thumb_func_end GetEasyChatScreenType
thumb_func_start GetEasyChatScreenFrameId
GetEasyChatScreenFrameId: @ 0x0811C26C
ldr r2, _0811C284
ldr r0, _0811C288
ldr r0, [r0]
ldrb r1, [r0, #1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
ldrb r0, [r0, #3]
lsls r0, r0, #0x19
lsrs r0, r0, #0x19
bx lr
.align 2, 0
_0811C284: .4byte 0x08573134
_0811C288: .4byte 0x02039DE4
thumb_func_end GetEasyChatScreenFrameId
thumb_func_start GetTitleText
GetTitleText: @ 0x0811C28C
ldr r0, _0811C294
ldr r0, [r0]
ldr r0, [r0, #0x34]
bx lr
.align 2, 0
_0811C294: .4byte 0x02039DE4
thumb_func_end GetTitleText
thumb_func_start GetEasyChatWordBuffer
GetEasyChatWordBuffer: @ 0x0811C298
ldr r0, _0811C2A0
ldr r0, [r0]
adds r0, #0x3c
bx lr
.align 2, 0
_0811C2A0: .4byte 0x02039DE4
thumb_func_end GetEasyChatWordBuffer
thumb_func_start GetNumRows
GetNumRows: @ 0x0811C2A4
ldr r0, _0811C2AC
ldr r0, [r0]
ldrb r0, [r0, #3]
bx lr
.align 2, 0
_0811C2AC: .4byte 0x02039DE4
thumb_func_end GetNumRows
thumb_func_start GetNumColumns
GetNumColumns: @ 0x0811C2B0
ldr r0, _0811C2B8
ldr r0, [r0]
ldrb r0, [r0, #2]
bx lr
.align 2, 0
_0811C2B8: .4byte 0x02039DE4
thumb_func_end GetNumColumns
thumb_func_start GetMainCursorColumn
GetMainCursorColumn: @ 0x0811C2BC
ldr r0, _0811C2C4
ldr r0, [r0]
ldrb r0, [r0, #5]
bx lr
.align 2, 0
_0811C2C4: .4byte 0x02039DE4
thumb_func_end GetMainCursorColumn
thumb_func_start GetMainCursorRow
GetMainCursorRow: @ 0x0811C2C8
ldr r0, _0811C2D0
ldr r0, [r0]
ldrb r0, [r0, #6]
bx lr
.align 2, 0
_0811C2D0: .4byte 0x02039DE4
thumb_func_end GetMainCursorRow
thumb_func_start GetEasyChatInstructionsText
GetEasyChatInstructionsText: @ 0x0811C2D4
push {r4, r5, lr}
ldr r4, _0811C304
ldr r2, _0811C308
ldr r5, [r2]
ldrb r3, [r5, #1]
lsls r2, r3, #1
adds r2, r2, r3
lsls r2, r2, #3
adds r3, r4, #0
adds r3, #8
adds r2, r2, r3
ldr r2, [r2]
str r2, [r0]
ldrb r2, [r5, #1]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #3
adds r4, #0xc
adds r0, r0, r4
ldr r0, [r0]
str r0, [r1]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0811C304: .4byte 0x08573134
_0811C308: .4byte 0x02039DE4
thumb_func_end GetEasyChatInstructionsText
thumb_func_start GetEasyChatConfirmText
GetEasyChatConfirmText: @ 0x0811C30C
push {r4, r5, lr}
ldr r4, _0811C33C
ldr r2, _0811C340
ldr r5, [r2]
ldrb r3, [r5, #1]
lsls r2, r3, #1
adds r2, r2, r3
lsls r2, r2, #3
adds r3, r4, #0
adds r3, #0x10
adds r2, r2, r3
ldr r2, [r2]
str r2, [r0]
ldrb r2, [r5, #1]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #3
adds r4, #0x14
adds r0, r0, r4
ldr r0, [r0]
str r0, [r1]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0811C33C: .4byte 0x08573134
_0811C340: .4byte 0x02039DE4
thumb_func_end GetEasyChatConfirmText
thumb_func_start sub_0811C344
sub_0811C344: @ 0x0811C344
push {lr}
adds r2, r0, #0
ldr r0, _0811C358
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, #4
bne _0811C360
ldr r0, _0811C35C
b _0811C37E
.align 2, 0
_0811C358: .4byte 0x02039DE4
_0811C35C: .4byte 0x085CBA71
_0811C360:
cmp r0, #4
blt _0811C37C
cmp r0, #0x10
bgt _0811C37C
cmp r0, #0xf
blt _0811C37C
ldr r0, _0811C374
str r0, [r2]
ldr r0, _0811C378
b _0811C382
.align 2, 0
_0811C374: .4byte 0x085CBCAB
_0811C378: .4byte 0x085CBCB7
_0811C37C:
ldr r0, _0811C388
_0811C37E:
str r0, [r2]
movs r0, #0
_0811C382:
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0811C388: .4byte 0x085CBA63
thumb_func_end sub_0811C344
thumb_func_start GetEasyChatConfirmDeletionText
GetEasyChatConfirmDeletionText: @ 0x0811C38C
ldr r2, _0811C398
str r2, [r0]
ldr r0, _0811C39C
str r0, [r1]
bx lr
.align 2, 0
_0811C398: .4byte 0x085CBAA7
_0811C39C: .4byte 0x085CBAB6
thumb_func_end GetEasyChatConfirmDeletionText
thumb_func_start sub_0811C3A0
sub_0811C3A0: @ 0x0811C3A0
ldr r2, _0811C3B0
ldr r3, [r2]
ldrb r2, [r3, #0xa]
strb r2, [r0]
ldrb r0, [r3, #0xb]
strb r0, [r1]
bx lr
.align 2, 0
_0811C3B0: .4byte 0x02039DE4
thumb_func_end sub_0811C3A0
thumb_func_start sub_0811C3B4
sub_0811C3B4: @ 0x0811C3B4
ldr r0, _0811C3BC
ldr r0, [r0]
ldrb r0, [r0, #9]
bx lr
.align 2, 0
_0811C3BC: .4byte 0x02039DE4
thumb_func_end sub_0811C3B4
thumb_func_start sub_0811C3C0
sub_0811C3C0: @ 0x0811C3C0
ldr r0, _0811C3C8
ldr r0, [r0]
ldrb r0, [r0, #0xc]
bx lr
.align 2, 0
_0811C3C8: .4byte 0x02039DE4
thumb_func_end sub_0811C3C0
thumb_func_start sub_0811C3CC
sub_0811C3CC: @ 0x0811C3CC
ldr r2, _0811C3DC
ldr r3, [r2]
ldrb r2, [r3, #0x10]
strb r2, [r0]
ldrb r0, [r3, #0x11]
strb r0, [r1]
bx lr
.align 2, 0
_0811C3DC: .4byte 0x02039DE4
thumb_func_end sub_0811C3CC
thumb_func_start sub_0811C3E0
sub_0811C3E0: @ 0x0811C3E0
ldr r0, _0811C3E8
ldr r0, [r0]
ldrb r0, [r0, #0xe]
bx lr
.align 2, 0
_0811C3E8: .4byte 0x02039DE4
thumb_func_end sub_0811C3E0
thumb_func_start sub_0811C3EC
sub_0811C3EC: @ 0x0811C3EC
ldr r0, _0811C3F4
ldr r0, [r0]
ldrb r0, [r0, #0xf]
bx lr
.align 2, 0
_0811C3F4: .4byte 0x02039DE4
thumb_func_end sub_0811C3EC
thumb_func_start sub_0811C3F8
sub_0811C3F8: @ 0x0811C3F8
movs r0, #0
bx lr
thumb_func_end sub_0811C3F8
thumb_func_start sub_0811C3FC
sub_0811C3FC: @ 0x0811C3FC
push {lr}
ldr r0, _0811C410
ldr r1, [r0]
ldrb r0, [r1, #4]
cmp r0, #2
beq _0811C414
cmp r0, #3
beq _0811C41E
b _0811C428
.align 2, 0
_0811C410: .4byte 0x02039DE4
_0811C414:
ldrb r0, [r1, #9]
cmp r0, #0
bne _0811C428
ldrb r0, [r1, #0xc]
b _0811C420
_0811C41E:
ldrb r0, [r1, #0xe]
_0811C420:
cmp r0, #0
beq _0811C428
movs r0, #1
b _0811C42A
_0811C428:
movs r0, #0
_0811C42A:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811C3FC
thumb_func_start sub_0811C430
sub_0811C430: @ 0x0811C430
push {lr}
ldr r0, _0811C444
ldr r2, [r0]
ldrb r0, [r2, #4]
cmp r0, #2
beq _0811C448
cmp r0, #3
beq _0811C45E
b _0811C46C
.align 2, 0
_0811C444: .4byte 0x02039DE4
_0811C448:
ldrb r0, [r2, #9]
cmp r0, #0
bne _0811C46C
ldrb r1, [r2, #0xc]
adds r1, #4
ldrb r0, [r2, #0xd]
subs r0, #1
cmp r1, r0
bgt _0811C46C
movs r0, #1
b _0811C46E
_0811C45E:
ldrb r0, [r2, #0xe]
adds r0, #4
ldrb r2, [r2, #0xf]
cmp r0, r2
bgt _0811C46C
movs r0, #1
b _0811C46E
_0811C46C:
movs r0, #0
_0811C46E:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811C430
thumb_func_start FooterHasFourOptions_
FooterHasFourOptions_: @ 0x0811C474
push {lr}
bl FooterHasFourOptions
pop {r1}
bx r1
.align 2, 0
thumb_func_end FooterHasFourOptions_
thumb_func_start sub_0811C480
sub_0811C480: @ 0x0811C480
push {r4, r5, lr}
adds r5, r0, #0
lsls r1, r1, #0x18
lsrs r3, r1, #0x18
movs r2, #0
cmp r2, r3
bhs _0811C4B6
ldr r0, _0811C4A8
ldr r0, [r0]
adds r4, r0, #0
adds r4, #0x3c
_0811C496:
lsls r0, r2, #1
adds r1, r0, r5
adds r0, r4, r0
ldrh r1, [r1]
ldrh r0, [r0]
cmp r1, r0
beq _0811C4AC
movs r0, #1
b _0811C4B8
.align 2, 0
_0811C4A8: .4byte 0x02039DE4
_0811C4AC:
adds r0, r2, #1
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
cmp r2, r3
blo _0811C496
_0811C4B6:
movs r0, #0
_0811C4B8:
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811C480
thumb_func_start GetDisplayedPersonType
GetDisplayedPersonType: @ 0x0811C4C0
ldr r0, _0811C4C8
ldr r0, [r0]
ldrb r0, [r0, #0x12]
bx lr
.align 2, 0
_0811C4C8: .4byte 0x02039DE4
thumb_func_end GetDisplayedPersonType
thumb_func_start GetEachChatScreenTemplateId
GetEachChatScreenTemplateId: @ 0x0811C4CC
push {lr}
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
movs r1, #0
ldr r2, _0811C4E4
_0811C4D6:
ldrb r0, [r2]
cmp r0, r3
bne _0811C4E8
lsls r0, r1, #0x18
lsrs r0, r0, #0x18
b _0811C4F2
.align 2, 0
_0811C4E4: .4byte 0x08573134
_0811C4E8:
adds r2, #0x18
adds r1, #1
cmp r1, #0x14
bls _0811C4D6
movs r0, #0
_0811C4F2:
pop {r1}
bx r1
.align 2, 0
thumb_func_end GetEachChatScreenTemplateId
thumb_func_start sub_0811C4F8
sub_0811C4F8: @ 0x0811C4F8
push {r4, lr}
movs r2, #0
ldr r0, _0811C518
ldr r0, [r0]
ldrb r1, [r0, #7]
cmp r2, r1
bge _0811C528
ldr r4, _0811C51C
adds r3, r1, #0
adds r1, r0, #0
adds r1, #0x3c
_0811C50E:
ldrh r0, [r1]
cmp r0, r4
beq _0811C520
movs r0, #0
b _0811C52A
.align 2, 0
_0811C518: .4byte 0x02039DE4
_0811C51C: .4byte 0x0000FFFF
_0811C520:
adds r1, #2
adds r2, #1
cmp r2, r3
blt _0811C50E
_0811C528:
movs r0, #1
_0811C52A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_0811C4F8
thumb_func_start sub_0811C530
sub_0811C530: @ 0x0811C530
push {r4, lr}
movs r2, #0
ldr r0, _0811C550
ldr r0, [r0]
ldrb r1, [r0, #7]
cmp r2, r1
bge _0811C560
ldr r4, _0811C554
adds r3, r1, #0
adds r1, r0, #0
adds r1, #0x3c
_0811C546:
ldrh r0, [r1]
cmp r0, r4
bne _0811C558
movs r0, #0
b _0811C562
.align 2, 0
_0811C550: .4byte 0x02039DE4
_0811C554: .4byte 0x0000FFFF
_0811C558:
adds r1, #2
adds r2, #1
cmp r2, r3
blt _0811C546
_0811C560:
movs r0, #1
_0811C562:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_0811C530
thumb_func_start sub_0811C568
sub_0811C568: @ 0x0811C568
push {r4, lr}
ldr r0, _0811C57C
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, #0x11
bne _0811C584
bl sub_0811C4F8
b _0811C5A0
.align 2, 0
_0811C57C: .4byte 0x02039DE4
_0811C580:
movs r0, #0
b _0811C5A0
_0811C584:
ldr r0, _0811C5A8
ldr r0, [r0]
movs r2, #0
ldr r3, _0811C5AC
ldr r4, _0811C5B0
adds r1, r0, r4
_0811C590:
ldrh r0, [r1]
cmp r0, r3
bne _0811C580
adds r1, #2
adds r2, #1
cmp r2, #8
ble _0811C590
movs r0, #1
_0811C5A0:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0811C5A8: .4byte 0x03005AEC
_0811C5AC: .4byte 0x0000FFFF
_0811C5B0: .4byte 0x00003B5A
thumb_func_end sub_0811C568
thumb_func_start sub_0811C5B4
sub_0811C5B4: @ 0x0811C5B4
push {lr}
ldr r0, _0811C5C8
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, #0x12
bne _0811C5CC
bl sub_0811C4F8
b _0811C5E2
.align 2, 0
_0811C5C8: .4byte 0x02039DE4
_0811C5CC:
ldr r0, _0811C5E8
ldr r0, [r0]
ldr r1, _0811C5EC
adds r0, r0, r1
movs r2, #0
ldrh r1, [r0, #0x14]
ldr r0, _0811C5F0
cmp r1, r0
bne _0811C5E0
movs r2, #1
_0811C5E0:
adds r0, r2, #0
_0811C5E2:
pop {r1}
bx r1
.align 2, 0
_0811C5E8: .4byte 0x03005AEC
_0811C5EC: .4byte 0x00003B58
_0811C5F0: .4byte 0x0000FFFF
thumb_func_end sub_0811C5B4
thumb_func_start sub_0811C5F4
sub_0811C5F4: @ 0x0811C5F4
push {r4, r5, lr}
adds r5, r0, #0
ldr r0, _0811C61C
ldr r4, [r0]
bl DynamicPlaceholderTextUtil_Reset
ldr r0, _0811C620
adds r4, r4, r0
adds r0, r4, #0
bl StringLength
lsls r0, r0, #0x10
cmp r0, #0
beq _0811C624
movs r0, #0
adds r1, r4, #0
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
b _0811C62C
.align 2, 0
_0811C61C: .4byte 0x03005AEC
_0811C620: .4byte 0x00003B70
_0811C624:
ldr r1, _0811C63C
movs r0, #0
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
_0811C62C:
ldr r1, _0811C640
adds r0, r5, #0
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0811C63C: .4byte 0x085CBC85
_0811C640: .4byte 0x085CBC7B
thumb_func_end sub_0811C5F4
thumb_func_start sub_0811C644
sub_0811C644: @ 0x0811C644
push {r4, r5, lr}
ldr r0, _0811C654
ldr r0, [r0]
adds r4, r0, #0
adds r4, #0x3c
ldr r2, _0811C658
movs r5, #0
b _0811C676
.align 2, 0
_0811C654: .4byte 0x02039DE4
_0811C658: .4byte 0x02021C54
_0811C65C:
ldrh r1, [r4]
adds r0, r2, #0
movs r2, #0
bl CopyEasyChatWordPadded
adds r2, r0, #0
movs r0, #0
strb r0, [r2]
adds r2, #1
adds r4, #2
adds r5, #1
ldr r0, _0811C688
ldr r0, [r0]
_0811C676:
ldrb r0, [r0, #7]
cmp r5, r0
blt _0811C65C
subs r2, #1
movs r0, #0xff
strb r0, [r2]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0811C688: .4byte 0x02039DE4
thumb_func_end sub_0811C644
thumb_func_start sub_0811C68C
sub_0811C68C: @ 0x0811C68C
push {r4, r5, lr}
ldr r5, _0811C6A4
ldr r0, [r5]
ldrb r0, [r0]
cmp r0, #9
beq _0811C6F4
cmp r0, #9
bgt _0811C6A8
cmp r0, #0
beq _0811C6B2
b _0811C718
.align 2, 0
_0811C6A4: .4byte 0x02039DE4
_0811C6A8:
cmp r0, #0xd
beq _0811C710
cmp r0, #0x14
beq _0811C6C0
b _0811C718
_0811C6B2:
ldr r0, _0811C6BC
bl FlagSet
b _0811C718
.align 2, 0
_0811C6BC: .4byte 0x00000865
_0811C6C0:
bl sub_0811C724
cmp r0, #0
beq _0811C6D4
ldr r1, _0811C6D0
movs r0, #1
b _0811C716
.align 2, 0
_0811C6D0: .4byte 0x02037280
_0811C6D4:
bl sub_0811C744
adds r1, r0, #0
cmp r1, #0
beq _0811C6E8
ldr r1, _0811C6E4
movs r0, #2
b _0811C716
.align 2, 0
_0811C6E4: .4byte 0x02037280
_0811C6E8:
ldr r0, _0811C6F0
strh r1, [r0]
b _0811C718
.align 2, 0
_0811C6F0: .4byte 0x02037280
_0811C6F4:
bl sub_0811C644
ldr r4, _0811C70C
ldr r0, [r5]
adds r0, #0x3c
bl sub_081226E4
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
strh r0, [r4]
b _0811C718
.align 2, 0
_0811C70C: .4byte 0x02037280
_0811C710:
bl sub_0811C764
ldr r1, _0811C720
_0811C716:
strh r0, [r1]
_0811C718:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0811C720: .4byte 0x02037280
thumb_func_end sub_0811C68C
thumb_func_start sub_0811C724
sub_0811C724: @ 0x0811C724
push {lr}
ldr r0, _0811C740
movs r1, #4
bl sub_0811C480
movs r1, #0
lsls r0, r0, #0x18
cmp r0, #0
bne _0811C738
movs r1, #1
_0811C738:
adds r0, r1, #0
pop {r1}
bx r1
.align 2, 0
_0811C740: .4byte 0x0857332C
thumb_func_end sub_0811C724
thumb_func_start sub_0811C744
sub_0811C744: @ 0x0811C744
push {lr}
ldr r0, _0811C760
movs r1, #4
bl sub_0811C480
movs r1, #0
lsls r0, r0, #0x18
cmp r0, #0
bne _0811C758
movs r1, #1
_0811C758:
adds r0, r1, #0
pop {r1}
bx r1
.align 2, 0
_0811C760: .4byte 0x08573334
thumb_func_end sub_0811C744
thumb_func_start sub_0811C764
sub_0811C764: @ 0x0811C764
push {r4, r5, lr}
movs r4, #0
movs r5, #0x80
lsls r5, r5, #9
_0811C76C:
lsls r0, r4, #2
ldr r1, _0811C784
adds r0, r0, r1
movs r1, #2
bl sub_0811C480
lsls r0, r0, #0x18
cmp r0, #0
bne _0811C788
lsrs r0, r5, #0x10
b _0811C796
.align 2, 0
_0811C784: .4byte 0x0857333C
_0811C788:
movs r0, #0x80
lsls r0, r0, #9
adds r5, r5, r0
adds r4, #1
cmp r4, #4
ble _0811C76C
movs r0, #0
_0811C796:
pop {r4, r5}
pop {r1}
bx r1
thumb_func_end sub_0811C764
thumb_func_start sub_0811C79C
sub_0811C79C: @ 0x0811C79C
push {r4, r5, r6, lr}
ldr r6, _0811C81C
ldr r1, [r6]
ldrb r0, [r1]
subs r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #2
bhi _0811C814
movs r0, #0
strb r0, [r1, #0x13]
ldr r4, [r6]
bl sub_0811C098
lsls r0, r0, #0x10
lsrs r0, r0, #0xf
adds r4, #0x3c
adds r4, r4, r0
ldrh r0, [r4]
bl GetEasyChatWordStringLength
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #6
bhi _0811C814
ldr r0, [r6]
movs r1, #6
ldrsb r1, [r0, r1]
ldrb r0, [r0, #2]
adds r5, r1, #0
muls r5, r0, r5
movs r4, #0
cmp r4, r0
bge _0811C80C
_0811C7E0:
ldr r2, [r6]
movs r0, #5
ldrsb r0, [r2, r0]
cmp r4, r0
beq _0811C800
lsls r1, r5, #1
adds r0, r2, #0
adds r0, #0x3c
adds r0, r0, r1
ldrh r0, [r0]
bl GetEasyChatWordStringLength
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #6
bls _0811C814
_0811C800:
adds r5, #1
adds r4, #1
ldr r0, [r6]
ldrb r0, [r0, #2]
cmp r4, r0
blt _0811C7E0
_0811C80C:
ldr r0, _0811C81C
ldr r1, [r0]
movs r0, #1
strb r0, [r1, #0x13]
_0811C814:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0811C81C: .4byte 0x02039DE4
thumb_func_end sub_0811C79C
thumb_func_start sub_0811C820
sub_0811C820: @ 0x0811C820
push {lr}
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
ldr r0, _0811C844
ldr r0, [r0]
ldrb r0, [r0, #0x13]
cmp r0, #0
beq _0811C848
adds r0, r1, #0
bl GetEasyChatWordStringLength
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #6
bls _0811C848
movs r0, #1
b _0811C84A
.align 2, 0
_0811C844: .4byte 0x02039DE4
_0811C848:
movs r0, #0
_0811C84A:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811C820
thumb_func_start sub_0811C850
sub_0811C850: @ 0x0811C850
push {lr}
bl sub_0811D748
lsls r0, r0, #0x18
cmp r0, #0
beq _0811C860
movs r0, #1
b _0811C862
_0811C860:
movs r0, #0
_0811C862:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811C850
thumb_func_start sub_0811C868
sub_0811C868: @ 0x0811C868
push {r4, lr}
sub sp, #8
ldr r0, _0811C884
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, #5
bls _0811C878
b _0811C9E0
_0811C878:
lsls r0, r0, #2
ldr r1, _0811C888
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0811C884: .4byte 0x02039DE8
_0811C888: .4byte 0x0811C88C
_0811C88C: @ jump table
.4byte _0811C8A4 @ case 0
.4byte _0811C908 @ case 1
.4byte _0811C950 @ case 2
.4byte _0811C96C @ case 3
.4byte _0811C97E @ case 4
.4byte _0811C994 @ case 5
_0811C8A4:
movs r0, #0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0811C8F4
movs r0, #0
movs r2, #4
bl InitBgsFromTemplates
ldr r4, _0811C8F8
ldr r1, [r4]
ldr r0, _0811C8FC
adds r1, r1, r0
movs r0, #3
bl SetBgTilemapBuffer
ldr r1, [r4]
movs r0, #0xbf
lsls r0, r0, #2
adds r1, r1, r0
movs r0, #1
bl SetBgTilemapBuffer
ldr r0, _0811C900
bl InitWindows
bl DeactivateAllTextPrinters
bl sub_0811D814
bl sub_0811D7B4
movs r0, #0
str r0, [sp, #4]
movs r1, #0xe0
lsls r1, r1, #0x13
ldr r2, _0811C904
add r0, sp, #4
bl CpuFastSet
b _0811C9E4
.align 2, 0
_0811C8F4: .4byte 0x0857437C
_0811C8F8: .4byte 0x02039DE8
_0811C8FC: .4byte 0x00000AFC
_0811C900: .4byte 0x0857438C
_0811C904: .4byte 0x01000100
_0811C908:
ldr r1, _0811C944
movs r0, #0
str r0, [sp]
movs r0, #3
movs r2, #0
movs r3, #0
bl DecompressAndLoadBgGfxUsingHeap
ldr r1, _0811C948
movs r0, #3
movs r2, #0
movs r3, #0
bl CopyToBgTilemapBuffer
bl sub_0811DE14
ldr r0, _0811C94C
ldr r0, [r0]
movs r1, #0xbf
lsls r1, r1, #2
adds r0, r0, r1
bl sub_0811DCAC
bl sub_0811DB10
movs r0, #3
bl CopyBgTilemapBufferToVram
b _0811C9E4
.align 2, 0
_0811C944: .4byte 0x08573E84
_0811C948: .4byte 0x085740E4
_0811C94C: .4byte 0x02039DE8
_0811C950:
ldr r1, _0811C968
movs r0, #0
str r0, [sp]
movs r0, #1
movs r2, #0
movs r3, #0
bl DecompressAndLoadBgGfxUsingHeap
movs r0, #1
bl CopyBgTilemapBufferToVram
b _0811C9E4
.align 2, 0
_0811C968: .4byte 0x0857427C
_0811C96C:
bl sub_0811D87C
bl sub_0811D990
bl sub_0811DBA8
bl sub_0811DE8C
b _0811C9E4
_0811C97E:
bl sub_0811E6A4
bl GetEasyChatScreenType
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x10
beq _0811C9E4
bl sub_0811E6D8
b _0811C9E4
_0811C994:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
cmp r0, #0
bne _0811C9EE
movs r0, #0
movs r1, #0
movs r2, #0
movs r3, #0
bl sub_0811E670
movs r0, #0x48
movs r1, #0x3f
bl SetGpuReg
movs r0, #0x4a
movs r1, #0x3b
bl SetGpuReg
movs r0, #3
bl ShowBg
movs r0, #1
bl ShowBg
movs r0, #2
bl ShowBg
movs r0, #0
bl ShowBg
bl sub_0811ED20
bl sub_0811EE6C
bl sub_0811EF74
b _0811C9E4
_0811C9E0:
movs r0, #0
b _0811C9F0
_0811C9E4:
ldr r0, _0811C9F8
ldr r1, [r0]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0811C9EE:
movs r0, #1
_0811C9F0:
add sp, #8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0811C9F8: .4byte 0x02039DE8
thumb_func_end sub_0811C868
thumb_func_start sub_0811C9FC
sub_0811C9FC: @ 0x0811C9FC
push {r4, lr}
ldr r4, _0811CA14
ldr r0, [r4]
cmp r0, #0
beq _0811CA0E
bl Free
movs r0, #0
str r0, [r4]
_0811CA0E:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0811CA14: .4byte 0x02039DE8
thumb_func_end sub_0811C9FC
thumb_func_start sub_0811CA18
sub_0811CA18: @ 0x0811CA18
push {lr}
ldr r1, _0811CA2C
ldr r1, [r1]
movs r2, #0
strh r0, [r1, #4]
strh r2, [r1]
bl sub_0811CA30
pop {r0}
bx r0
.align 2, 0
_0811CA2C: .4byte 0x02039DE8
thumb_func_end sub_0811CA18
thumb_func_start sub_0811CA30
sub_0811CA30: @ 0x0811CA30
push {lr}
ldr r0, _0811CA48
ldr r0, [r0]
ldrh r0, [r0, #4]
cmp r0, #0x22
bls _0811CA3E
b _0811CB8E
_0811CA3E:
lsls r0, r0, #2
ldr r1, _0811CA4C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0811CA48: .4byte 0x02039DE8
_0811CA4C: .4byte 0x0811CA50
_0811CA50: @ jump table
.4byte _0811CB8E @ case 0
.4byte _0811CADC @ case 1
.4byte _0811CAE2 @ case 2
.4byte _0811CAE8 @ case 3
.4byte _0811CAEE @ case 4
.4byte _0811CAF4 @ case 5
.4byte _0811CAFA @ case 6
.4byte _0811CB00 @ case 7
.4byte _0811CB06 @ case 8
.4byte _0811CB0C @ case 9
.4byte _0811CB12 @ case 10
.4byte _0811CB18 @ case 11
.4byte _0811CB1E @ case 12
.4byte _0811CB24 @ case 13
.4byte _0811CB2A @ case 14
.4byte _0811CB30 @ case 15
.4byte _0811CB36 @ case 16
.4byte _0811CB3C @ case 17
.4byte _0811CB42 @ case 18
.4byte _0811CB48 @ case 19
.4byte _0811CB4E @ case 20
.4byte _0811CB54 @ case 21
.4byte _0811CB5A @ case 22
.4byte _0811CB60 @ case 23
.4byte _0811CB8E @ case 24
.4byte _0811CB8E @ case 25
.4byte _0811CB8E @ case 26
.4byte _0811CB8E @ case 27
.4byte _0811CB8E @ case 28
.4byte _0811CB66 @ case 29
.4byte _0811CB6C @ case 30
.4byte _0811CB72 @ case 31
.4byte _0811CB78 @ case 32
.4byte _0811CB7E @ case 33
.4byte _0811CB84 @ case 34
_0811CADC:
bl sub_0811CB94
b _0811CB88
_0811CAE2:
bl sub_0811CBCC
b _0811CB88
_0811CAE8:
bl sub_0811CC88
b _0811CB88
_0811CAEE:
bl sub_0811CD40
b _0811CB88
_0811CAF4:
bl sub_0811CCB8
b _0811CB88
_0811CAFA:
bl sub_0811CCFC
b _0811CB88
_0811CB00:
bl sub_0811CD84
b _0811CB88
_0811CB06:
bl sub_0811CDCC
b _0811CB88
_0811CB0C:
bl sub_0811CE08
b _0811CB88
_0811CB12:
bl sub_0811CED4
b _0811CB88
_0811CB18:
bl sub_0811D0E4
b _0811CB88
_0811CB1E:
bl sub_0811D1A4
b _0811CB88
_0811CB24:
bl sub_0811D250
b _0811CB88
_0811CB2A:
bl sub_0811D310
b _0811CB88
_0811CB30:
bl sub_0811D034
b _0811CB88
_0811CB36:
bl sub_0811D040
b _0811CB88
_0811CB3C:
bl sub_0811D088
b _0811CB88
_0811CB42:
bl sub_0811D3CC
b _0811CB88
_0811CB48:
bl sub_0811D44C
b _0811CB88
_0811CB4E:
bl sub_0811D3D8
b _0811CB88
_0811CB54:
bl sub_0811D544
b _0811CB88
_0811CB5A:
bl sub_0811D4BC
b _0811CB88
_0811CB60:
bl sub_0811CF74
b _0811CB88
_0811CB66:
bl sub_0811D5C8
b _0811CB88
_0811CB6C:
bl sub_0811D608
b _0811CB88
_0811CB72:
bl sub_0811D648
b _0811CB88
_0811CB78:
bl sub_0811D688
b _0811CB88
_0811CB7E:
bl sub_0811D6C8
b _0811CB88
_0811CB84:
bl sub_0811D708
_0811CB88:
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
b _0811CB90
_0811CB8E:
movs r0, #0
_0811CB90:
pop {r1}
bx r1
thumb_func_end sub_0811CA30
thumb_func_start sub_0811CB94
sub_0811CB94: @ 0x0811CB94
push {r4, lr}
ldr r4, _0811CBA8
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, #0
beq _0811CBAC
cmp r0, #1
beq _0811CBBA
b _0811CBC4
.align 2, 0
_0811CBA8: .4byte 0x02039DE8
_0811CBAC:
bl sub_0811DBA8
ldr r1, [r4]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811CBC4
_0811CBBA:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
b _0811CBC6
_0811CBC4:
movs r0, #1
_0811CBC6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_0811CB94
thumb_func_start sub_0811CBCC
sub_0811CBCC: @ 0x0811CBCC
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
bl GetEasyChatWordBuffer
adds r5, r0, #0
bl GetEasyChatScreenFrameId
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov sl, r0
bl GetMainCursorColumn
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
bl GetMainCursorRow
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov sb, r0
bl GetNumColumns
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov r1, sb
muls r1, r0, r1
adds r0, r1, #0
lsls r0, r0, #1
adds r5, r5, r0
ldr r1, _0811CC3C
mov r2, sl
lsls r0, r2, #2
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x1b
lsrs r0, r0, #0xb
movs r1, #0x80
lsls r1, r1, #9
adds r0, r0, r1
lsrs r4, r0, #0x10
movs r6, #0
cmp r6, r7
bhs _0811CC56
ldr r2, _0811CC40
mov r8, r2
_0811CC2A:
ldrh r0, [r5]
cmp r0, r8
beq _0811CC44
bl GetEasyChatWordStringLength
adds r1, r4, #2
adds r0, r0, r1
b _0811CC46
.align 2, 0
_0811CC3C: .4byte 0x08574358
_0811CC40: .4byte 0x0000FFFF
_0811CC44:
adds r0, r4, #7
_0811CC46:
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
adds r5, #2
adds r0, r6, #1
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
cmp r6, r7
blo _0811CC2A
_0811CC56:
ldr r1, _0811CC84
mov r2, sl
lsls r0, r2, #2
adds r0, r0, r1
ldrb r1, [r0]
lsrs r1, r1, #5
mov r2, sb
lsls r0, r2, #1
adds r1, r1, r0
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
bl sub_0811E76C
movs r0, #0
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_0811CC84: .4byte 0x08574358
thumb_func_end sub_0811CBCC
thumb_func_start sub_0811CC88
sub_0811CC88: @ 0x0811CC88
push {r4, lr}
ldr r4, _0811CCB0
bl GetMainCursorColumn
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r1, _0811CCB4
ldr r1, [r1]
ldrb r1, [r1, #0xa]
lsls r1, r1, #2
adds r0, r0, r1
adds r0, r0, r4
ldrb r0, [r0]
movs r1, #0xa
bl sub_0811E76C
movs r0, #0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0811CCB0: .4byte 0x085743B4
_0811CCB4: .4byte 0x02039DE8
thumb_func_end sub_0811CC88
thumb_func_start sub_0811CCB8
sub_0811CCB8: @ 0x0811CCB8
push {r4, lr}
ldr r4, _0811CCCC
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, #0
beq _0811CCD0
cmp r0, #1
beq _0811CCEA
b _0811CCF4
.align 2, 0
_0811CCCC: .4byte 0x02039DE8
_0811CCD0:
bl sub_0811E7A0
movs r0, #2
bl sub_0811D9D8
movs r0, #1
bl sub_0811DAE4
ldr r1, [r4]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811CCF4
_0811CCEA:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
b _0811CCF6
_0811CCF4:
movs r0, #1
_0811CCF6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_0811CCB8
thumb_func_start sub_0811CCFC
sub_0811CCFC: @ 0x0811CCFC
push {r4, lr}
ldr r4, _0811CD10
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, #0
beq _0811CD14
cmp r0, #1
beq _0811CD2E
b _0811CD38
.align 2, 0
_0811CD10: .4byte 0x02039DE8
_0811CD14:
bl sub_0811E7A0
movs r0, #3
bl sub_0811D9D8
movs r0, #0
bl sub_0811DAE4
ldr r1, [r4]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811CD38
_0811CD2E:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
b _0811CD3A
_0811CD38:
movs r0, #1
_0811CD3A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_0811CCFC
thumb_func_start sub_0811CD40
sub_0811CD40: @ 0x0811CD40
push {r4, lr}
ldr r4, _0811CD54
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, #0
beq _0811CD58
cmp r0, #1
beq _0811CD72
b _0811CD7C
.align 2, 0
_0811CD54: .4byte 0x02039DE8
_0811CD58:
bl sub_0811E7A0
movs r0, #1
bl sub_0811D9D8
movs r0, #1
bl sub_0811DAE4
ldr r1, [r4]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811CD7C
_0811CD72:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
b _0811CD7E
_0811CD7C:
movs r0, #1
_0811CD7E:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_0811CD40
thumb_func_start sub_0811CD84
sub_0811CD84: @ 0x0811CD84
push {r4, lr}
ldr r4, _0811CD98
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, #0
beq _0811CD9C
cmp r0, #1
beq _0811CDBA
b _0811CDC4
.align 2, 0
_0811CD98: .4byte 0x02039DE8
_0811CD9C:
bl sub_0811E7C0
movs r0, #0
bl sub_0811D9D8
bl sub_0811DBA8
movs r0, #0
bl ShowBg
ldr r1, [r4]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811CDC4
_0811CDBA:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
b _0811CDC6
_0811CDC4:
movs r0, #1
_0811CDC6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_0811CD84
thumb_func_start sub_0811CDCC
sub_0811CDCC: @ 0x0811CDCC
push {r4, lr}
ldr r4, _0811CDE0
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, #0
beq _0811CDE4
cmp r0, #1
beq _0811CDFA
movs r0, #1
b _0811CE02
.align 2, 0
_0811CDE0: .4byte 0x02039DE8
_0811CDE4:
bl sub_0811E7C0
movs r0, #0
bl sub_0811D9D8
bl sub_0811DBA8
ldr r1, [r4]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0811CDFA:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
_0811CE02:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_0811CDCC
thumb_func_start sub_0811CE08
sub_0811CE08: @ 0x0811CE08
push {lr}
ldr r0, _0811CE20
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, #4
bhi _0811CEC2
lsls r0, r0, #2
ldr r1, _0811CE24
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0811CE20: .4byte 0x02039DE8
_0811CE24: .4byte 0x0811CE28
_0811CE28: @ jump table
.4byte _0811CE3C @ case 0
.4byte _0811CE58 @ case 1
.4byte _0811CE6A @ case 2
.4byte _0811CE80 @ case 3
.4byte _0811CEA0 @ case 4
_0811CE3C:
bl sub_0811E7A0
movs r0, #0
bl HideBg
movs r0, #0
movs r1, #0
movs r2, #0
movs r3, #0
bl sub_0811E670
bl sub_0811DEDC
b _0811CE8E
_0811CE58:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
cmp r0, #0
bne _0811CECC
movs r0, #0
bl sub_0811E1E0
b _0811CE8E
_0811CE6A:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
cmp r0, #0
bne _0811CECC
bl sub_0811E2B8
lsls r0, r0, #0x18
cmp r0, #0
bne _0811CECC
b _0811CE8E
_0811CE80:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
cmp r0, #0
bne _0811CECC
bl sub_0811EAF8
_0811CE8E:
ldr r0, _0811CE9C
ldr r1, [r0]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811CECC
.align 2, 0
_0811CE9C: .4byte 0x02039DE8
_0811CEA0:
bl sub_0811EB64
lsls r0, r0, #0x18
cmp r0, #0
bne _0811CECC
bl sub_0811E7D8
movs r0, #0
bl sub_0811EE2C
bl sub_0811ED98
ldr r0, _0811CEC8
ldr r1, [r0]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0811CEC2:
movs r0, #0
b _0811CECE
.align 2, 0
_0811CEC8: .4byte 0x02039DE8
_0811CECC:
movs r0, #1
_0811CECE:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811CE08
thumb_func_start sub_0811CED4
sub_0811CED4: @ 0x0811CED4
push {lr}
ldr r0, _0811CEEC
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, #4
bhi _0811CF6C
lsls r0, r0, #2
ldr r1, _0811CEF0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0811CEEC: .4byte 0x02039DE8
_0811CEF0: .4byte 0x0811CEF4
_0811CEF4: @ jump table
.4byte _0811CF08 @ case 0
.4byte _0811CF16 @ case 1
.4byte _0811CF32 @ case 2
.4byte _0811CF44 @ case 3
.4byte _0811CF68 @ case 4
_0811CF08:
bl sub_0811E814
bl sub_0811EBF8
bl sub_0811EDFC
b _0811CF58
_0811CF16:
bl sub_0811EC1C
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
beq _0811CF6C
movs r0, #1
bl sub_0811E1E0
ldr r0, _0811CF40
ldr r1, [r0]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0811CF32:
bl sub_0811E2B8
lsls r0, r0, #0x18
cmp r0, #0
bne _0811CF6C
b _0811CF58
.align 2, 0
_0811CF40: .4byte 0x02039DE8
_0811CF44:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
cmp r0, #0
bne _0811CF6C
bl sub_0811E7C0
movs r0, #0
bl ShowBg
_0811CF58:
ldr r0, _0811CF64
ldr r1, [r0]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811CF6C
.align 2, 0
_0811CF64: .4byte 0x02039DE8
_0811CF68:
movs r0, #0
b _0811CF6E
_0811CF6C:
movs r0, #1
_0811CF6E:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811CED4
thumb_func_start sub_0811CF74
sub_0811CF74: @ 0x0811CF74
push {lr}
ldr r0, _0811CF8C
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, #4
bhi _0811D02C
lsls r0, r0, #2
ldr r1, _0811CF90
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0811CF8C: .4byte 0x02039DE8
_0811CF90: .4byte 0x0811CF94
_0811CF94: @ jump table
.4byte _0811CFA8 @ case 0
.4byte _0811CFBC @ case 1
.4byte _0811CFD6 @ case 2
.4byte _0811CFFC @ case 3
.4byte _0811D022 @ case 4
_0811CFA8:
bl sub_0811E814
bl sub_0811EDFC
bl sub_0811ECA8
movs r0, #5
bl sub_0811E1E0
b _0811CFEA
_0811CFBC:
bl sub_0811E2B8
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D02C
bl sub_0811ED04
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D02C
bl sub_0811DEDC
b _0811CFEA
_0811CFD6:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D02C
movs r0, #6
bl sub_0811E1E0
bl sub_0811ECC4
_0811CFEA:
ldr r0, _0811CFF8
ldr r1, [r0]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811D02C
.align 2, 0
_0811CFF8: .4byte 0x02039DE8
_0811CFFC:
bl sub_0811E2B8
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D02C
bl sub_0811ED04
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D02C
bl sub_0811ED98
bl sub_0811E7D8
ldr r0, _0811D028
ldr r1, [r0]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0811D022:
movs r0, #0
b _0811D02E
.align 2, 0
_0811D028: .4byte 0x02039DE8
_0811D02C:
movs r0, #1
_0811D02E:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811CF74
thumb_func_start sub_0811D034
sub_0811D034: @ 0x0811D034
push {lr}
bl sub_0811E838
movs r0, #0
pop {r1}
bx r1
thumb_func_end sub_0811D034
thumb_func_start sub_0811D040
sub_0811D040: @ 0x0811D040
push {r4, lr}
ldr r4, _0811D054
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, #0
beq _0811D058
cmp r0, #1
beq _0811D068
b _0811D07E
.align 2, 0
_0811D054: .4byte 0x02039DE8
_0811D058:
movs r0, #1
movs r1, #4
bl sub_0811E5C0
ldr r1, [r4]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0811D068:
bl sub_0811E624
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D07E
bl sub_0811E838
bl sub_0811ED98
movs r0, #0
b _0811D080
_0811D07E:
movs r0, #1
_0811D080:
pop {r4}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811D040
thumb_func_start sub_0811D088
sub_0811D088: @ 0x0811D088
push {r4, lr}
ldr r4, _0811D0A0
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, #1
beq _0811D0BC
cmp r0, #1
bgt _0811D0A4
cmp r0, #0
beq _0811D0AA
b _0811D0DC
.align 2, 0
_0811D0A0: .4byte 0x02039DE8
_0811D0A4:
cmp r0, #2
beq _0811D0D4
b _0811D0DC
_0811D0AA:
movs r0, #1
rsbs r0, r0, #0
movs r1, #4
bl sub_0811E5C0
ldr r1, [r4]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0811D0BC:
bl sub_0811E624
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D0DC
bl sub_0811ED98
ldr r0, _0811D0D8
ldr r1, [r0]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0811D0D4:
movs r0, #0
b _0811D0DE
.align 2, 0
_0811D0D8: .4byte 0x02039DE8
_0811D0DC:
movs r0, #1
_0811D0DE:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_0811D088
thumb_func_start sub_0811D0E4
sub_0811D0E4: @ 0x0811D0E4
push {lr}
ldr r0, _0811D0FC
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, #5
bhi _0811D19C
lsls r0, r0, #2
ldr r1, _0811D100
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0811D0FC: .4byte 0x02039DE8
_0811D100: .4byte 0x0811D104
_0811D104: @ jump table
.4byte _0811D11C @ case 0
.4byte _0811D12A @ case 1
.4byte _0811D13A @ case 2
.4byte _0811D14C @ case 3
.4byte _0811D16C @ case 4
.4byte _0811D192 @ case 5
_0811D11C:
bl sub_0811E814
bl sub_0811EBF8
bl sub_0811EDFC
b _0811D15C
_0811D12A:
bl sub_0811EC1C
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D19C
bl sub_0811E1C8
b _0811D15C
_0811D13A:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D19C
movs r0, #2
bl sub_0811E1E0
b _0811D15C
_0811D14C:
bl sub_0811E2B8
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D19C
movs r0, #2
bl sub_0811DEA0
_0811D15C:
ldr r0, _0811D168
ldr r1, [r0]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811D19C
.align 2, 0
_0811D168: .4byte 0x02039DE8
_0811D16C:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D19C
bl sub_0811E9D0
movs r0, #1
bl sub_0811EE2C
bl sub_0811ED98
bl sub_0811EEE0
ldr r0, _0811D198
ldr r1, [r0]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0811D192:
movs r0, #0
b _0811D19E
.align 2, 0
_0811D198: .4byte 0x02039DE8
_0811D19C:
movs r0, #1
_0811D19E:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811D0E4
thumb_func_start sub_0811D1A4
sub_0811D1A4: @ 0x0811D1A4
push {lr}
ldr r0, _0811D1BC
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, #5
bhi _0811D248
lsls r0, r0, #2
ldr r1, _0811D1C0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0811D1BC: .4byte 0x02039DE8
_0811D1C0: .4byte 0x0811D1C4
_0811D1C4: @ jump table
.4byte _0811D1DC @ case 0
.4byte _0811D1E2 @ case 1
.4byte _0811D1F4 @ case 2
.4byte _0811D206 @ case 3
.4byte _0811D228 @ case 4
.4byte _0811D240 @ case 5
_0811D1DC:
bl sub_0811DBA8
b _0811D216
_0811D1E2:
bl sub_0811EACC
bl sub_0811EDFC
bl sub_0811EF44
bl sub_0811E1C8
b _0811D216
_0811D1F4:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D248
movs r0, #3
bl sub_0811E1E0
b _0811D216
_0811D206:
bl sub_0811E2B8
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D248
movs r0, #0
bl ShowBg
_0811D216:
ldr r0, _0811D224
ldr r1, [r0]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811D248
.align 2, 0
_0811D224: .4byte 0x02039DE8
_0811D228:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D248
bl sub_0811E7C0
ldr r0, _0811D244
ldr r1, [r0]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0811D240:
movs r0, #0
b _0811D24A
.align 2, 0
_0811D244: .4byte 0x02039DE8
_0811D248:
movs r0, #1
_0811D24A:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811D1A4
thumb_func_start sub_0811D250
sub_0811D250: @ 0x0811D250
push {lr}
ldr r0, _0811D268
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, #6
bhi _0811D308
lsls r0, r0, #2
ldr r1, _0811D26C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0811D268: .4byte 0x02039DE8
_0811D26C: .4byte 0x0811D270
_0811D270: @ jump table
.4byte _0811D28C @ case 0
.4byte _0811D292 @ case 1
.4byte _0811D2A4 @ case 2
.4byte _0811D2B6 @ case 3
.4byte _0811D2C8 @ case 4
.4byte _0811D2E8 @ case 5
.4byte _0811D300 @ case 6
_0811D28C:
bl sub_0811DBA8
b _0811D2D8
_0811D292:
bl sub_0811EACC
bl sub_0811EDFC
bl sub_0811EF44
bl sub_0811E1C8
b _0811D2D8
_0811D2A4:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D308
movs r0, #3
bl sub_0811E1E0
b _0811D2D8
_0811D2B6:
bl sub_0811E2B8
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D308
movs r0, #3
bl sub_0811D9D8
b _0811D2D8
_0811D2C8:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D308
movs r0, #0
bl ShowBg
_0811D2D8:
ldr r0, _0811D2E4
ldr r1, [r0]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811D308
.align 2, 0
_0811D2E4: .4byte 0x02039DE8
_0811D2E8:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D308
bl sub_0811E7C0
ldr r0, _0811D304
ldr r1, [r0]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0811D300:
movs r0, #0
b _0811D30A
.align 2, 0
_0811D304: .4byte 0x02039DE8
_0811D308:
movs r0, #1
_0811D30A:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811D250
thumb_func_start sub_0811D310
sub_0811D310: @ 0x0811D310
push {lr}
ldr r0, _0811D328
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, #4
bhi _0811D3C4
lsls r0, r0, #2
ldr r1, _0811D32C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0811D328: .4byte 0x02039DE8
_0811D32C: .4byte 0x0811D330
_0811D330: @ jump table
.4byte _0811D344 @ case 0
.4byte _0811D356 @ case 1
.4byte _0811D368 @ case 2
.4byte _0811D378 @ case 3
.4byte _0811D398 @ case 4
_0811D344:
bl sub_0811EACC
bl sub_0811EDFC
bl sub_0811EF44
bl sub_0811E1C8
b _0811D386
_0811D356:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D3C4
movs r0, #4
bl sub_0811E1E0
b _0811D386
_0811D368:
bl sub_0811E2B8
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D3C4
bl sub_0811DEDC
b _0811D386
_0811D378:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D3C4
bl sub_0811EAF8
_0811D386:
ldr r0, _0811D394
ldr r1, [r0]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811D3C4
.align 2, 0
_0811D394: .4byte 0x02039DE8
_0811D398:
bl sub_0811EB64
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D3C4
bl sub_0811E7D8
movs r0, #0
bl sub_0811EE2C
bl sub_0811ED98
ldr r0, _0811D3C0
ldr r1, [r0]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
movs r0, #0
b _0811D3C6
.align 2, 0
_0811D3C0: .4byte 0x02039DE8
_0811D3C4:
movs r0, #1
_0811D3C6:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811D310
thumb_func_start sub_0811D3CC
sub_0811D3CC: @ 0x0811D3CC
push {lr}
bl sub_0811EA54
movs r0, #0
pop {r1}
bx r1
thumb_func_end sub_0811D3CC
thumb_func_start sub_0811D3D8
sub_0811D3D8: @ 0x0811D3D8
push {r4, lr}
ldr r4, _0811D3F0
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, #1
beq _0811D404
cmp r0, #1
bgt _0811D3F4
cmp r0, #0
beq _0811D3FE
b _0811D442
.align 2, 0
_0811D3F0: .4byte 0x02039DE8
_0811D3F4:
cmp r0, #2
beq _0811D420
cmp r0, #3
beq _0811D43E
b _0811D442
_0811D3FE:
bl sub_0811DFBC
b _0811D416
_0811D404:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D442
movs r0, #1
movs r1, #4
bl sub_0811E5C0
_0811D416:
ldr r1, [r4]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811D442
_0811D420:
bl sub_0811E624
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D442
bl sub_0811EA54
bl sub_0811ED98
bl sub_0811EEE0
ldr r1, [r4]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0811D43E:
movs r0, #0
b _0811D444
_0811D442:
movs r0, #1
_0811D444:
pop {r4}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811D3D8
thumb_func_start sub_0811D44C
sub_0811D44C: @ 0x0811D44C
push {r4, lr}
ldr r4, _0811D464
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, #1
beq _0811D478
cmp r0, #1
bgt _0811D468
cmp r0, #0
beq _0811D472
b _0811D4B4
.align 2, 0
_0811D464: .4byte 0x02039DE8
_0811D468:
cmp r0, #2
beq _0811D496
cmp r0, #3
beq _0811D4B0
b _0811D4B4
_0811D472:
bl sub_0811DFE0
b _0811D48C
_0811D478:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D4B4
movs r0, #1
rsbs r0, r0, #0
movs r1, #4
bl sub_0811E5C0
_0811D48C:
ldr r1, [r4]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811D4B4
_0811D496:
bl sub_0811E624
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D4B4
bl sub_0811ED98
bl sub_0811EEE0
ldr r1, [r4]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0811D4B0:
movs r0, #0
b _0811D4B6
_0811D4B4:
movs r0, #1
_0811D4B6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_0811D44C
thumb_func_start sub_0811D4BC
sub_0811D4BC: @ 0x0811D4BC
push {r4, r5, lr}
ldr r5, _0811D4D4
ldr r0, [r5]
ldrh r0, [r0]
cmp r0, #1
beq _0811D4E8
cmp r0, #1
bgt _0811D4D8
cmp r0, #0
beq _0811D4E2
b _0811D53A
.align 2, 0
_0811D4D4: .4byte 0x02039DE8
_0811D4D8:
cmp r0, #2
beq _0811D518
cmp r0, #3
beq _0811D536
b _0811D53A
_0811D4E2:
bl sub_0811E004
b _0811D50E
_0811D4E8:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D53A
bl sub_0811C3E0
adds r4, r0, #0
bl sub_0811E65C
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
subs r4, r4, r0
lsls r4, r4, #0x10
asrs r4, r4, #0x10
adds r0, r4, #0
movs r1, #8
bl sub_0811E5C0
_0811D50E:
ldr r1, [r5]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811D53A
_0811D518:
bl sub_0811E624
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D53A
bl sub_0811EA54
bl sub_0811ED98
bl sub_0811EEE0
ldr r1, [r5]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0811D536:
movs r0, #0
b _0811D53C
_0811D53A:
movs r0, #1
_0811D53C:
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811D4BC
thumb_func_start sub_0811D544
sub_0811D544: @ 0x0811D544
push {r4, r5, lr}
ldr r5, _0811D55C
ldr r0, [r5]
ldrh r0, [r0]
cmp r0, #1
beq _0811D570
cmp r0, #1
bgt _0811D560
cmp r0, #0
beq _0811D56A
b _0811D5BE
.align 2, 0
_0811D55C: .4byte 0x02039DE8
_0811D560:
cmp r0, #2
beq _0811D5A0
cmp r0, #3
beq _0811D5BA
b _0811D5BE
_0811D56A:
bl sub_0811E048
b _0811D596
_0811D570:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D5BE
bl sub_0811C3E0
adds r4, r0, #0
bl sub_0811E65C
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
subs r4, r4, r0
lsls r4, r4, #0x10
asrs r4, r4, #0x10
adds r0, r4, #0
movs r1, #8
bl sub_0811E5C0
_0811D596:
ldr r1, [r5]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811D5BE
_0811D5A0:
bl sub_0811E624
lsls r0, r0, #0x18
cmp r0, #0
bne _0811D5BE
bl sub_0811ED98
bl sub_0811EEE0
ldr r1, [r5]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0811D5BA:
movs r0, #0
b _0811D5C0
_0811D5BE:
movs r0, #1
_0811D5C0:
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811D544
thumb_func_start sub_0811D5C8
sub_0811D5C8: @ 0x0811D5C8
push {r4, lr}
ldr r4, _0811D5DC
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, #0
beq _0811D5E0
cmp r0, #1
beq _0811D5F4
b _0811D5FE
.align 2, 0
_0811D5DC: .4byte 0x02039DE8
_0811D5E0:
bl sub_0811E7A0
movs r0, #4
bl sub_0811D9D8
ldr r1, [r4]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811D5FE
_0811D5F4:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
b _0811D600
_0811D5FE:
movs r0, #1
_0811D600:
pop {r4}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811D5C8
thumb_func_start sub_0811D608
sub_0811D608: @ 0x0811D608
push {r4, lr}
ldr r4, _0811D61C
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, #0
beq _0811D620
cmp r0, #1
beq _0811D634
b _0811D63E
.align 2, 0
_0811D61C: .4byte 0x02039DE8
_0811D620:
bl sub_0811E7A0
movs r0, #5
bl sub_0811D9D8
ldr r1, [r4]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811D63E
_0811D634:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
b _0811D640
_0811D63E:
movs r0, #1
_0811D640:
pop {r4}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811D608
thumb_func_start sub_0811D648
sub_0811D648: @ 0x0811D648
push {r4, lr}
ldr r4, _0811D65C
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, #0
beq _0811D660
cmp r0, #1
beq _0811D674
b _0811D67E
.align 2, 0
_0811D65C: .4byte 0x02039DE8
_0811D660:
bl sub_0811E7A0
movs r0, #6
bl sub_0811D9D8
ldr r1, [r4]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811D67E
_0811D674:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
b _0811D680
_0811D67E:
movs r0, #1
_0811D680:
pop {r4}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811D648
thumb_func_start sub_0811D688
sub_0811D688: @ 0x0811D688
push {r4, lr}
ldr r4, _0811D69C
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, #0
beq _0811D6A0
cmp r0, #1
beq _0811D6B4
b _0811D6BE
.align 2, 0
_0811D69C: .4byte 0x02039DE8
_0811D6A0:
bl sub_0811E7A0
movs r0, #7
bl sub_0811D9D8
ldr r1, [r4]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811D6BE
_0811D6B4:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
b _0811D6C0
_0811D6BE:
movs r0, #1
_0811D6C0:
pop {r4}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811D688
thumb_func_start sub_0811D6C8
sub_0811D6C8: @ 0x0811D6C8
push {r4, lr}
ldr r4, _0811D6DC
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, #0
beq _0811D6E0
cmp r0, #1
beq _0811D6F4
b _0811D6FE
.align 2, 0
_0811D6DC: .4byte 0x02039DE8
_0811D6E0:
bl sub_0811E7A0
movs r0, #8
bl sub_0811D9D8
ldr r1, [r4]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811D6FE
_0811D6F4:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
b _0811D700
_0811D6FE:
movs r0, #1
_0811D700:
pop {r4}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811D6C8
thumb_func_start sub_0811D708
sub_0811D708: @ 0x0811D708
push {r4, lr}
ldr r4, _0811D71C
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, #0
beq _0811D720
cmp r0, #1
beq _0811D734
b _0811D73E
.align 2, 0
_0811D71C: .4byte 0x02039DE8
_0811D720:
bl sub_0811E7A0
movs r0, #9
bl sub_0811D9D8
ldr r1, [r4]
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0811D73E
_0811D734:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
b _0811D740
_0811D73E:
movs r0, #1
_0811D740:
pop {r4}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811D708
thumb_func_start sub_0811D748
sub_0811D748: @ 0x0811D748
push {r4, lr}
ldr r4, _0811D7A4
ldr r0, _0811D7A8
bl Alloc
adds r2, r0, #0
str r2, [r4]
cmp r2, #0
beq _0811D7AC
movs r1, #0
strh r1, [r2]
movs r3, #0xb6
lsls r3, r3, #2
adds r0, r2, r3
str r1, [r0]
adds r3, #4
adds r0, r2, r3
str r1, [r0]
adds r3, #4
adds r0, r2, r3
str r1, [r0]
adds r3, #4
adds r0, r2, r3
str r1, [r0]
adds r3, #4
adds r0, r2, r3
str r1, [r0]
adds r3, #4
adds r0, r2, r3
str r1, [r0]
adds r3, #4
adds r0, r2, r3
str r1, [r0]
adds r3, #4
adds r0, r2, r3
str r1, [r0]
adds r3, #4
adds r0, r2, r3
str r1, [r0]
bl FooterHasFourOptions_
ldr r1, [r4]
strb r0, [r1, #0xa]
movs r0, #1
b _0811D7AE
.align 2, 0
_0811D7A4: .4byte 0x02039DE8
_0811D7A8: .4byte 0x000012FC
_0811D7AC:
movs r0, #0
_0811D7AE:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_0811D748
thumb_func_start sub_0811D7B4
sub_0811D7B4: @ 0x0811D7B4
push {lr}
movs r0, #3
movs r1, #0
movs r2, #0
bl ChangeBgX
movs r0, #3
movs r1, #0
movs r2, #0
bl ChangeBgY
movs r0, #1
movs r1, #0
movs r2, #0
bl ChangeBgX
movs r0, #1
movs r1, #0
movs r2, #0
bl ChangeBgY
movs r0, #2
movs r1, #0
movs r2, #0
bl ChangeBgX
movs r0, #2
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, r1, #6
movs r0, #0
bl SetGpuReg
pop {r0}
bx r0
thumb_func_end sub_0811D7B4
thumb_func_start sub_0811D814
sub_0811D814: @ 0x0811D814
push {r4, lr}
bl ResetPaletteFade
ldr r0, _0811D868
movs r1, #0
movs r2, #0x20
bl LoadPalette
ldr r0, _0811D86C
movs r1, #0x10
movs r2, #0x20
bl LoadPalette
ldr r0, _0811D870
movs r1, #0x40
movs r2, #0x20
bl LoadPalette
ldr r0, _0811D874
movs r1, #0xa0
movs r2, #8
bl LoadPalette
ldr r4, _0811D878
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
.align 2, 0
_0811D868: .4byte 0x08573E64
_0811D86C: .4byte 0x0857423C
_0811D870: .4byte 0x0857425C
_0811D874: .4byte 0x08574344
_0811D878: .4byte 0x0857434C
thumb_func_end sub_0811D814
thumb_func_start sub_0811D87C
sub_0811D87C: @ 0x0811D87C
push {r4, r5, lr}
sub sp, #0x14
bl GetTitleText
adds r5, r0, #0
cmp r5, #0
beq _0811D8D8
bl StringLength
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r4, #0x10
subs r4, r4, r0
lsrs r0, r4, #0x1f
adds r4, r4, r0
asrs r4, r4, #1
lsls r4, r4, #0x13
lsrs r4, r4, #0x10
movs r0, #0
movs r1, #0
bl FillWindowPixelBuffer
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
movs r1, #0
str r1, [sp]
movs r0, #0xff
str r0, [sp, #4]
str r1, [sp, #8]
movs r0, #2
str r0, [sp, #0xc]
movs r0, #3
str r0, [sp, #0x10]
movs r0, #0
movs r1, #1
adds r2, r5, #0
adds r3, r4, #0
bl sub_0811D920
movs r0, #0
bl PutWindowTilemap
movs r0, #0
movs r1, #3
bl CopyWindowToVram
_0811D8D8:
add sp, #0x14
pop {r4, r5}
pop {r0}
bx r0
thumb_func_end sub_0811D87C
thumb_func_start sub_0811D8E0
sub_0811D8E0: @ 0x0811D8E0
push {r4, r5, r6, lr}
sub sp, #0xc
adds r6, r2, #0
ldr r2, [sp, #0x1c]
ldr r4, [sp, #0x20]
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
lsls r2, r2, #0x18
lsrs r0, r2, #0x18
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
cmp r1, #1
bne _0811D908
adds r0, #2
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
_0811D908:
str r0, [sp]
str r4, [sp, #4]
ldr r0, [sp, #0x24]
str r0, [sp, #8]
adds r0, r5, #0
adds r2, r6, #0
bl AddTextPrinterParameterized
add sp, #0xc
pop {r4, r5, r6}
pop {r0}
bx r0
thumb_func_end sub_0811D8E0
thumb_func_start sub_0811D920
sub_0811D920: @ 0x0811D920
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #0x10
mov sb, r2
ldr r2, [sp, #0x2c]
ldr r4, [sp, #0x30]
ldr r5, [sp, #0x34]
ldr r6, [sp, #0x38]
ldr r7, [sp, #0x3c]
mov r8, r7
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov ip, r0
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
lsls r3, r3, #0x18
lsrs r7, r3, #0x18
lsls r2, r2, #0x18
lsrs r3, r2, #0x18
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
lsls r6, r6, #0x18
lsrs r6, r6, #0x18
mov r0, r8
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
cmp r1, #1
bne _0811D966
adds r0, r3, #2
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
_0811D966:
add r0, sp, #0xc
strb r5, [r0]
strb r6, [r0, #1]
strb r2, [r0, #2]
str r0, [sp]
lsls r0, r4, #0x18
asrs r0, r0, #0x18
str r0, [sp, #4]
mov r0, sb
str r0, [sp, #8]
mov r0, ip
adds r2, r7, #0
bl AddTextPrinterParameterized3
add sp, #0x10
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_end sub_0811D920
thumb_func_start sub_0811D990
sub_0811D990: @ 0x0811D990
push {lr}
sub sp, #0xc
movs r0, #0x20
str r0, [sp]
movs r0, #0x14
str r0, [sp, #4]
movs r0, #0x11
str r0, [sp, #8]
movs r0, #0
movs r1, #0
movs r2, #0
movs r3, #0
bl FillBgTilemapBufferRect
movs r0, #1
movs r1, #1
movs r2, #0xe0
bl LoadUserWindowBorderGfx
movs r0, #1
movs r1, #1
movs r2, #0xe
bl DrawTextBorderOuter
movs r0, #0
bl sub_0811D9D8
movs r0, #1
bl PutWindowTilemap
movs r0, #0
bl CopyBgTilemapBufferToVram
add sp, #0xc
pop {r0}
bx r0
thumb_func_end sub_0811D990
thumb_func_start sub_0811D9D8
sub_0811D9D8: @ 0x0811D9D8
push {lr}
sub sp, #0x14
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
movs r0, #0
str r0, [sp, #0x10]
str r0, [sp, #0xc]
cmp r1, #9
bhi _0811DA90
lsls r0, r1, #2
ldr r1, _0811D9F4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0811D9F4: .4byte 0x0811D9F8
_0811D9F8: @ jump table
.4byte _0811DA20 @ case 0
.4byte _0811DA3E @ case 1
.4byte _0811DA2A @ case 2
.4byte _0811DA34 @ case 3
.4byte _0811DA48 @ case 4
.4byte _0811DA54 @ case 5
.4byte _0811DA60 @ case 6
.4byte _0811DA70 @ case 7
.4byte _0811DA7C @ case 8
.4byte _0811DA88 @ case 9
_0811DA20:
add r1, sp, #0x10
add r0, sp, #0xc
bl GetEasyChatInstructionsText
b _0811DA90
_0811DA2A:
add r1, sp, #0x10
add r0, sp, #0xc
bl sub_0811C344
b _0811DA90
_0811DA34:
add r1, sp, #0x10
add r0, sp, #0xc
bl GetEasyChatConfirmText
b _0811DA90
_0811DA3E:
add r1, sp, #0x10
add r0, sp, #0xc
bl GetEasyChatConfirmDeletionText
b _0811DA90
_0811DA48:
ldr r0, _0811DA50
str r0, [sp, #0xc]
b _0811DA90
.align 2, 0
_0811DA50: .4byte 0x085CBCD0
_0811DA54:
ldr r0, _0811DA5C
str r0, [sp, #0xc]
b _0811DA90
.align 2, 0
_0811DA5C: .4byte 0x085CBCE0
_0811DA60:
ldr r0, _0811DA68
str r0, [sp, #0xc]
ldr r0, _0811DA6C
b _0811DA8E
.align 2, 0
_0811DA68: .4byte 0x085CBB1B
_0811DA6C: .4byte 0x085CBB2F
_0811DA70:
ldr r0, _0811DA78
str r0, [sp, #0xc]
b _0811DA90
.align 2, 0
_0811DA78: .4byte 0x085CBCEF
_0811DA7C:
ldr r0, _0811DA84
str r0, [sp, #0xc]
b _0811DA90
.align 2, 0
_0811DA84: .4byte 0x085CBB4E
_0811DA88:
ldr r0, _0811DADC
str r0, [sp, #0xc]
ldr r0, _0811DAE0
_0811DA8E:
str r0, [sp, #0x10]
_0811DA90:
movs r0, #1
movs r1, #0x11
bl FillWindowPixelBuffer
ldr r2, [sp, #0xc]
cmp r2, #0
beq _0811DAB2
movs r1, #0
str r1, [sp]
movs r0, #0xff
str r0, [sp, #4]
str r1, [sp, #8]
movs r0, #1
movs r1, #1
movs r3, #0
bl sub_0811D8E0
_0811DAB2:
ldr r2, [sp, #0x10]
cmp r2, #0
beq _0811DACE
movs r0, #0x10
str r0, [sp]
movs r0, #0xff
str r0, [sp, #4]
movs r0, #0
str r0, [sp, #8]
movs r0, #1
movs r1, #1
movs r3, #0
bl sub_0811D8E0
_0811DACE:
movs r0, #1
movs r1, #3
bl CopyWindowToVram
add sp, #0x14
pop {r0}
bx r0
.align 2, 0
_0811DADC: .4byte 0x085CBC62
_0811DAE0: .4byte 0x085CBC6D
thumb_func_end sub_0811D9D8
thumb_func_start sub_0811DAE4
sub_0811DAE4: @ 0x0811DAE4
push {lr}
sub sp, #0xc
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _0811DB0C
movs r1, #1
str r1, [sp]
movs r1, #0xe
str r1, [sp, #4]
str r0, [sp, #8]
adds r0, r2, #0
movs r1, #1
movs r2, #0
movs r3, #2
bl sub_08198C08
add sp, #0xc
pop {r0}
bx r0
.align 2, 0
_0811DB0C: .4byte 0x085743AC
thumb_func_end sub_0811DAE4
thumb_func_start sub_0811DB10
sub_0811DB10: @ 0x0811DB10
push {r4, r5, r6, lr}
sub sp, #8
bl GetEasyChatScreenFrameId
lsls r0, r0, #0x18
ldr r6, _0811DB8C
ldr r4, [sp]
ands r4, r6
movs r1, #3
orrs r4, r1
str r4, [sp]
ldr r1, _0811DB90
lsrs r0, r0, #0x16
adds r0, r0, r1
ldrb r3, [r0]
lsls r1, r3, #0x1b
lsrs r1, r1, #0x13
ldr r5, _0811DB94
adds r2, r5, #0
ands r2, r4
orrs r2, r1
lsrs r3, r3, #5
lsls r3, r3, #0x10
ldr r1, _0811DB98
ands r2, r1
orrs r2, r3
str r2, [sp]
ldrb r3, [r0, #1]
lsls r3, r3, #0x18
ldr r1, _0811DB9C
ands r1, r2
orrs r1, r3
str r1, [sp]
ldrb r1, [r0, #2]
ldr r0, [sp, #4]
ands r0, r6
orrs r0, r1
ands r0, r5
movs r1, #0xb0
lsls r1, r1, #4
orrs r0, r1
ldr r1, _0811DBA0
ands r0, r1
movs r1, #0xc0
lsls r1, r1, #0xe
orrs r0, r1
str r0, [sp, #4]
mov r0, sp
bl AddWindow
ldr r1, _0811DBA4
ldr r1, [r1]
strh r0, [r1, #2]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
bl PutWindowTilemap
add sp, #8
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0811DB8C: .4byte 0xFFFFFF00
_0811DB90: .4byte 0x08574358
_0811DB94: .4byte 0xFFFF00FF
_0811DB98: .4byte 0xFF00FFFF
_0811DB9C: .4byte 0x00FFFFFF
_0811DBA0: .4byte 0x0000FFFF
_0811DBA4: .4byte 0x02039DE8
thumb_func_end sub_0811DB10
thumb_func_start sub_0811DBA8
sub_0811DBA8: @ 0x0811DBA8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x10
bl GetEasyChatWordBuffer
adds r6, r0, #0
bl GetNumColumns
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov r8, r0
bl GetNumRows
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp, #0xc]
ldr r4, _0811DBE0
ldr r0, [r4]
ldrb r0, [r0, #2]
movs r1, #0x11
bl FillWindowPixelBuffer
movs r5, #0
b _0811DC86
.align 2, 0
_0811DBE0: .4byte 0x02039DE8
_0811DBE4:
ldr r1, _0811DC20
ldr r0, [r1]
adds r0, #0xb
movs r1, #0
movs r2, #0xc0
bl StringFill
ldr r1, _0811DC20
ldr r0, [r1]
adds r2, r0, #0
adds r2, #0xd
movs r4, #0
lsls r7, r5, #0x1c
adds r5, #1
mov sb, r5
cmp r4, r8
bge _0811DC64
ldr r0, _0811DC24
mov sl, r0
_0811DC0A:
ldrh r0, [r6]
cmp r0, sl
beq _0811DC28
adds r1, r0, #0
adds r0, r2, #0
bl CopyEasyChatWord
adds r2, r0, #0
adds r5, r6, #2
adds r4, #1
b _0811DC58
.align 2, 0
_0811DC20: .4byte 0x02039DE8
_0811DC24: .4byte 0x0000FFFF
_0811DC28:
adds r0, r2, #0
movs r1, #0
movs r2, #4
bl WriteColorChangeControlCode
adds r2, r0, #0
adds r5, r6, #2
adds r4, #1
movs r3, #0xf9
movs r1, #9
movs r0, #4
_0811DC3E:
strb r3, [r2]
adds r2, #1
strb r1, [r2]
adds r2, #1
subs r0, #1
cmp r0, #0
bge _0811DC3E
adds r0, r2, #0
movs r1, #0
movs r2, #2
bl WriteColorChangeControlCode
adds r2, r0, #0
_0811DC58:
movs r0, #0
strb r0, [r2]
adds r2, #2
adds r6, r5, #0
cmp r4, r8
blt _0811DC0A
_0811DC64:
movs r0, #0xff
strb r0, [r2]
ldr r1, _0811DCA8
ldr r2, [r1]
ldrb r0, [r2, #2]
adds r2, #0xb
lsrs r1, r7, #0x18
str r1, [sp]
movs r1, #0xff
str r1, [sp, #4]
movs r1, #0
str r1, [sp, #8]
movs r1, #1
movs r3, #0
bl sub_0811D8E0
mov r5, sb
_0811DC86:
ldr r0, [sp, #0xc]
cmp r5, r0
blt _0811DBE4
ldr r0, _0811DCA8
ldr r0, [r0]
ldrb r0, [r0, #2]
movs r1, #3
bl CopyWindowToVram
add sp, #0x10
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0811DCA8: .4byte 0x02039DE8
thumb_func_end sub_0811DBA8
thumb_func_start sub_0811DCAC
sub_0811DCAC: @ 0x0811DCAC
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
mov r8, r0
bl GetEasyChatScreenFrameId
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov sb, r0
movs r0, #0
str r0, [sp]
ldr r2, _0811DDEC
mov r0, sp
mov r1, r8
bl CpuFastSet
ldr r0, _0811DDF0
mov r1, sb
lsls r3, r1, #2
adds r3, r3, r0
ldrb r0, [r3]
lsls r2, r0, #0x18
lsrs r1, r2, #0x1d
subs r6, r1, #1
lsls r0, r0, #0x1b
lsrs r4, r0, #0x1b
subs r5, r4, #1
adds r0, r4, #0
ldrb r1, [r3, #1]
adds r7, r0, r1
lsrs r2, r2, #0x1d
ldrb r3, [r3, #2]
adds r3, r2, r3
lsls r0, r6, #5
adds r0, r0, r5
lsls r0, r0, #1
add r0, r8
ldr r2, _0811DDF4
adds r1, r2, #0
strh r1, [r0]
adds r5, r4, #0
cmp r5, r7
bge _0811DD22
ldr r4, _0811DDF8
adds r2, r4, #0
lsls r1, r5, #1
lsls r0, r6, #6
add r0, r8
adds r1, r1, r0
subs r5, r7, r5
_0811DD16:
strh r2, [r1]
adds r1, #2
subs r5, #1
cmp r5, #0
bne _0811DD16
adds r5, r7, #0
_0811DD22:
lsls r0, r6, #5
adds r0, r0, r5
lsls r0, r0, #1
add r0, r8
ldr r2, _0811DDFC
adds r1, r2, #0
strh r1, [r0]
adds r6, #1
ldr r4, _0811DDF0
mov sl, r4
mov r0, sb
lsls r0, r0, #2
mov sb, r0
cmp r6, r3
bge _0811DD94
add r0, sl
ldrb r0, [r0]
lsls r0, r0, #0x1b
mov ip, r0
_0811DD48:
mov r1, ip
lsrs r0, r1, #0x1b
subs r5, r0, #1
lsls r1, r6, #5
adds r1, r1, r5
lsls r1, r1, #1
add r1, r8
ldr r4, _0811DE00
adds r2, r4, #0
strh r2, [r1]
adds r5, r0, #0
adds r4, r6, #1
cmp r5, r7
bge _0811DD80
movs r0, #0x80
lsls r0, r0, #5
adds r2, r0, #0
lsls r1, r5, #1
lsls r0, r6, #6
add r0, r8
adds r1, r1, r0
subs r5, r7, r5
_0811DD74:
strh r2, [r1]
adds r1, #2
subs r5, #1
cmp r5, #0
bne _0811DD74
adds r5, r7, #0
_0811DD80:
lsls r0, r6, #5
adds r0, r0, r5
lsls r0, r0, #1
add r0, r8
ldr r2, _0811DE04
adds r1, r2, #0
strh r1, [r0]
adds r6, r4, #0
cmp r6, r3
blt _0811DD48
_0811DD94:
mov r0, sb
add r0, sl
ldrb r2, [r0]
lsls r2, r2, #0x1b
lsrs r2, r2, #0x1b
subs r5, r2, #1
lsls r3, r6, #5
adds r0, r3, r5
lsls r0, r0, #1
add r0, r8
ldr r4, _0811DE08
adds r1, r4, #0
strh r1, [r0]
adds r5, r2, #0
cmp r5, r7
bge _0811DDCE
ldr r0, _0811DE0C
adds r2, r0, #0
lsls r1, r5, #1
lsls r0, r6, #6
add r0, r8
adds r0, r1, r0
subs r5, r7, r5
_0811DDC2:
strh r2, [r0]
adds r0, #2
subs r5, #1
cmp r5, #0
bne _0811DDC2
adds r5, r7, #0
_0811DDCE:
adds r0, r3, r5
lsls r0, r0, #1
add r0, r8
ldr r2, _0811DE10
adds r1, r2, #0
strh r1, [r0]
add sp, #4
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0811DDEC: .4byte 0x01000200
_0811DDF0: .4byte 0x08574358
_0811DDF4: .4byte 0x00001001
_0811DDF8: .4byte 0x00001002
_0811DDFC: .4byte 0x00001003
_0811DE00: .4byte 0x00001005
_0811DE04: .4byte 0x00001007
_0811DE08: .4byte 0x00001009
_0811DE0C: .4byte 0x0000100A
_0811DE10: .4byte 0x0000100B
thumb_func_end sub_0811DCAC
thumb_func_start sub_0811DE14
sub_0811DE14: @ 0x0811DE14
push {r4, lr}
sub sp, #8
movs r0, #3
bl GetBgTilemapBuffer
adds r4, r0, #0
bl GetEasyChatScreenFrameId
lsls r0, r0, #0x18
ldr r1, _0811DE3C
lsrs r0, r0, #0x16
adds r0, r0, r1
ldrb r1, [r0, #3]
cmp r1, #2
beq _0811DE46
cmp r1, #2
bgt _0811DE40
cmp r1, #1
beq _0811DE54
b _0811DE84
.align 2, 0
_0811DE3C: .4byte 0x08574358
_0811DE40:
cmp r1, #3
beq _0811DE70
b _0811DE84
_0811DE46:
movs r0, #0xa8
lsls r0, r0, #3
adds r4, r4, r0
movs r0, #0x20
str r0, [sp]
str r1, [sp, #4]
b _0811DE62
_0811DE54:
movs r0, #0xc0
lsls r0, r0, #3
adds r4, r4, r0
movs r0, #0x20
str r0, [sp]
movs r0, #2
str r0, [sp, #4]
_0811DE62:
movs r0, #3
adds r1, r4, #0
movs r2, #0
movs r3, #0xa
bl CopyToBgTilemapBufferRect
b _0811DE84
_0811DE70:
movs r0, #0x20
str r0, [sp]
movs r0, #4
str r0, [sp, #4]
movs r0, #3
adds r1, r4, #0
movs r2, #0
movs r3, #9
bl CopyToBgTilemapBufferRect
_0811DE84:
add sp, #8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_0811DE14
thumb_func_start sub_0811DE8C
sub_0811DE8C: @ 0x0811DE8C
push {lr}
movs r0, #2
bl PutWindowTilemap
movs r0, #2
bl CopyBgTilemapBufferToVram
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0811DE8C
thumb_func_start sub_0811DEA0
sub_0811DEA0: @ 0x0811DEA0
push {r4, lr}
adds r4, r0, #0
bl sub_0811E598
movs r0, #2
movs r1, #0x11
bl FillWindowPixelBuffer
cmp r4, #1
beq _0811DEC4
cmp r4, #1
blo _0811DEBE
cmp r4, #2
beq _0811DECA
b _0811DECE
_0811DEBE:
bl sub_0811DEFC
b _0811DECE
_0811DEC4:
bl sub_0811DF70
b _0811DECE
_0811DECA:
bl sub_0811DFAC
_0811DECE:
movs r0, #2
movs r1, #2
bl CopyWindowToVram
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_0811DEA0
thumb_func_start sub_0811DEDC
sub_0811DEDC: @ 0x0811DEDC
push {lr}
bl sub_0811C3B4
lsls r0, r0, #0x18
cmp r0, #0
bne _0811DEF0
movs r0, #0
bl sub_0811DEA0
b _0811DEF6
_0811DEF0:
movs r0, #1
bl sub_0811DEA0
_0811DEF6:
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0811DEDC
thumb_func_start sub_0811DEFC
sub_0811DEFC: @ 0x0811DEFC
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #0xc
movs r6, #0
movs r0, #0x60
mov r8, r0
_0811DF0A:
movs r5, #0
mov r1, r8
lsls r0, r1, #0x18
lsrs r7, r0, #0x18
movs r4, #0x80
lsls r4, r4, #0x14
_0811DF16:
lsls r0, r6, #0x18
lsrs r0, r0, #0x18
adds r6, #1
bl sub_0811F914
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x16
beq _0811DF54
bl GetEasyChatWordGroupName
adds r2, r0, #0
lsrs r3, r4, #0x18
str r7, [sp]
movs r0, #0xff
str r0, [sp, #4]
movs r0, #0
str r0, [sp, #8]
movs r0, #2
movs r1, #1
bl sub_0811D8E0
movs r0, #0xe0
lsls r0, r0, #0x16
adds r4, r4, r0
adds r5, #1
cmp r5, #2
ble _0811DF16
movs r1, #0x10
add r8, r1
b _0811DF0A
_0811DF54:
bl sub_0811C3C0
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r1, #0
bl sub_0811E5C0
add sp, #0xc
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0811DEFC
thumb_func_start sub_0811DF70
sub_0811DF70: @ 0x0811DF70
push {r4, r5, r6, lr}
sub sp, #0xc
movs r5, #0
movs r4, #0xc0
lsls r4, r4, #0x17
ldr r6, _0811DFA8
_0811DF7C:
ldm r6!, {r2}
lsrs r0, r4, #0x18
str r0, [sp]
movs r0, #0xff
str r0, [sp, #4]
movs r0, #0
str r0, [sp, #8]
movs r0, #2
movs r1, #1
movs r3, #8
bl sub_0811D8E0
movs r0, #0x80
lsls r0, r0, #0x15
adds r4, r4, r0
adds r5, #1
cmp r5, #3
bls _0811DF7C
add sp, #0xc
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0811DFA8: .4byte 0x085743BC
thumb_func_end sub_0811DF70
thumb_func_start sub_0811DFAC
sub_0811DFAC: @ 0x0811DFAC
push {lr}
movs r0, #0
movs r1, #4
bl sub_0811E07C
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0811DFAC
thumb_func_start sub_0811DFBC
sub_0811DFBC: @ 0x0811DFBC
push {r4, lr}
bl sub_0811C3E0
adds r4, r0, #0
adds r4, #3
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
adds r0, r4, #0
movs r1, #1
bl sub_0811E164
adds r0, r4, #0
movs r1, #1
bl sub_0811E07C
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_0811DFBC
thumb_func_start sub_0811DFE0
sub_0811DFE0: @ 0x0811DFE0
push {r4, lr}
bl sub_0811C3E0
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
adds r0, r4, #0
movs r1, #1
bl sub_0811E164
adds r0, r4, #0
movs r1, #1
bl sub_0811E07C
pop {r4}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0811DFE0
thumb_func_start sub_0811E004
sub_0811E004: @ 0x0811E004
push {r4, r5, lr}
bl sub_0811C3E0
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r5, r0, #0
adds r0, r5, #4
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
bl sub_0811C3EC
adds r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r4, r0
bls _0811E026
adds r4, r0, #0
_0811E026:
cmp r5, r4
bhs _0811E040
subs r4, r4, r5
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
adds r0, r5, #0
adds r1, r4, #0
bl sub_0811E164
adds r0, r5, #0
adds r1, r4, #0
bl sub_0811E07C
_0811E040:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0811E004
thumb_func_start sub_0811E048
sub_0811E048: @ 0x0811E048
push {r4, r5, lr}
bl sub_0811C3E0
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
bl sub_0811E65C
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r5, r0
bhs _0811E074
subs r4, r0, r5
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
adds r0, r5, #0
adds r1, r4, #0
bl sub_0811E164
adds r0, r5, #0
adds r1, r4, #0
bl sub_0811E07C
_0811E074:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0811E048
thumb_func_start sub_0811E07C
sub_0811E07C: @ 0x0811E07C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x1c
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
str r1, [sp, #0x14]
lsls r1, r0, #1
adds r7, r1, r0
lsls r0, r0, #4
adds r1, r0, #0
adds r1, #0x60
movs r0, #0xff
ands r1, r0
movs r0, #0
b _0811E144
_0811E0A4:
movs r2, #0x10
adds r2, r2, r1
mov sl, r2
adds r0, #1
str r0, [sp, #0x18]
lsls r0, r1, #0x18
lsrs r6, r0, #0x18
movs r0, #0x80
lsls r0, r0, #0x15
mov r8, r0
movs r2, #2
mov sb, r2
_0811E0BC:
lsls r0, r7, #0x10
lsrs r0, r0, #0x10
adds r7, #1
bl sub_0811FAD0
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
ldr r0, _0811E104
cmp r4, r0
beq _0811E12E
ldr r5, _0811E108
ldr r0, [r5]
adds r0, #0xcc
adds r1, r4, #0
movs r2, #0
bl CopyEasyChatWordPadded
adds r0, r4, #0
bl sub_0811C820
adds r1, r0, #0
cmp r1, #0
bne _0811E10C
ldr r2, [r5]
adds r2, #0xcc
mov r0, r8
lsrs r3, r0, #0x18
str r6, [sp]
movs r0, #0xff
str r0, [sp, #4]
str r1, [sp, #8]
movs r0, #2
movs r1, #1
bl sub_0811D8E0
b _0811E12E
.align 2, 0
_0811E104: .4byte 0x0000FFFF
_0811E108: .4byte 0x02039DE8
_0811E10C:
ldr r2, [r5]
adds r2, #0xcc
mov r0, r8
lsrs r3, r0, #0x18
str r6, [sp]
movs r0, #0xff
str r0, [sp, #4]
movs r0, #1
str r0, [sp, #8]
movs r0, #5
str r0, [sp, #0xc]
movs r0, #3
str r0, [sp, #0x10]
movs r0, #2
movs r1, #1
bl sub_0811D920
_0811E12E:
movs r2, #0x90
lsls r2, r2, #0x17
add r8, r2
movs r0, #1
rsbs r0, r0, #0
add sb, r0
mov r2, sb
cmp r2, #0
bge _0811E0BC
mov r1, sl
ldr r0, [sp, #0x18]
_0811E144:
ldr r2, [sp, #0x14]
cmp r0, r2
blt _0811E0A4
movs r0, #2
movs r1, #2
bl CopyWindowToVram
add sp, #0x1c
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0811E07C
thumb_func_start sub_0811E164
sub_0811E164: @ 0x0811E164
push {r4, r5, lr}
sub sp, #8
lsls r0, r0, #0x18
lsls r1, r1, #0x18
lsrs r0, r0, #0x14
adds r3, r0, #0
adds r3, #0x60
movs r0, #0xff
ands r3, r0
lsrs r0, r1, #0x14
adds r1, r3, r0
cmp r1, #0xff
ble _0811E190
ldr r0, _0811E18C
adds r4, r1, r0
movs r0, #0x80
lsls r0, r0, #1
subs r0, r0, r3
b _0811E192
.align 2, 0
_0811E18C: .4byte 0xFFFFFF00
_0811E190:
movs r4, #0
_0811E192:
movs r5, #0xe0
str r5, [sp]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r0, [sp, #4]
movs r0, #2
movs r1, #0x11
movs r2, #0
bl FillWindowPixelRect
cmp r4, #0
beq _0811E1BE
str r5, [sp]
lsls r0, r4, #0x10
lsrs r0, r0, #0x10
str r0, [sp, #4]
movs r0, #2
movs r1, #0x11
movs r2, #0
movs r3, #0
bl FillWindowPixelRect
_0811E1BE:
add sp, #8
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0811E164
thumb_func_start sub_0811E1C8
sub_0811E1C8: @ 0x0811E1C8
push {lr}
movs r0, #2
movs r1, #0x11
bl FillWindowPixelBuffer
movs r0, #2
movs r1, #2
bl CopyWindowToVram
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0811E1C8
thumb_func_start sub_0811E1E0
sub_0811E1E0: @ 0x0811E1E0
push {lr}
ldr r1, _0811E1F4
cmp r0, #6
bhi _0811E29A
lsls r0, r0, #2
ldr r1, _0811E1F8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0811E1F4: .4byte 0x02039DE8
_0811E1F8: .4byte 0x0811E1FC
_0811E1FC: @ jump table
.4byte _0811E218 @ case 0
.4byte _0811E22C @ case 1
.4byte _0811E23C @ case 2
.4byte _0811E250 @ case 3
.4byte _0811E264 @ case 4
.4byte _0811E278 @ case 5
.4byte _0811E28C @ case 6
_0811E218:
ldr r1, _0811E228
ldr r2, [r1]
movs r0, #0
strb r0, [r2, #6]
ldr r2, [r1]
movs r0, #0xa
b _0811E298
.align 2, 0
_0811E228: .4byte 0x02039DE8
_0811E22C:
ldr r1, _0811E238
ldr r2, [r1]
movs r3, #0
movs r0, #9
b _0811E258
.align 2, 0
_0811E238: .4byte 0x02039DE8
_0811E23C:
ldr r1, _0811E24C
ldr r2, [r1]
movs r0, #0xb
strb r0, [r2, #6]
ldr r2, [r1]
movs r0, #0x11
b _0811E298
.align 2, 0
_0811E24C: .4byte 0x02039DE8
_0811E250:
ldr r1, _0811E260
ldr r2, [r1]
movs r3, #0
movs r0, #0x11
_0811E258:
strb r0, [r2, #6]
ldr r0, [r1]
strb r3, [r0, #7]
b _0811E29A
.align 2, 0
_0811E260: .4byte 0x02039DE8
_0811E264:
ldr r1, _0811E274
ldr r2, [r1]
movs r0, #0x11
strb r0, [r2, #6]
ldr r2, [r1]
movs r0, #0xa
b _0811E298
.align 2, 0
_0811E274: .4byte 0x02039DE8
_0811E278:
ldr r1, _0811E288
ldr r2, [r1]
movs r0, #0x12
strb r0, [r2, #6]
ldr r2, [r1]
movs r0, #0x16
b _0811E298
.align 2, 0
_0811E288: .4byte 0x02039DE8
_0811E28C:
ldr r1, _0811E2B4
ldr r2, [r1]
movs r0, #0x16
strb r0, [r2, #6]
ldr r2, [r1]
movs r0, #0x12
_0811E298:
strb r0, [r2, #7]
_0811E29A:
ldr r1, [r1]
ldrb r0, [r1, #6]
movs r3, #1
rsbs r3, r3, #0
adds r2, r3, #0
ldrb r3, [r1, #7]
cmp r0, r3
bhs _0811E2AC
movs r2, #1
_0811E2AC:
strb r2, [r1, #8]
pop {r0}
bx r0
.align 2, 0
_0811E2B4: .4byte 0x02039DE8
thumb_func_end sub_0811E1E0
thumb_func_start sub_0811E2B8
sub_0811E2B8: @ 0x0811E2B8
push {r4, lr}
ldr r4, _0811E2E4
ldr r1, [r4]
ldrb r2, [r1, #6]
ldrb r0, [r1, #7]
cmp r2, r0
beq _0811E2E8
ldrb r0, [r1, #8]
adds r0, r2, r0
strb r0, [r1, #6]
ldr r0, [r4]
ldrb r0, [r0, #6]
bl sub_0811E2F0
ldr r0, [r4]
ldrb r1, [r0, #6]
ldrb r0, [r0, #7]
eors r1, r0
rsbs r0, r1, #0
orrs r0, r1
lsrs r0, r0, #0x1f
b _0811E2EA
.align 2, 0
_0811E2E4: .4byte 0x02039DE8
_0811E2E8:
movs r0, #0
_0811E2EA:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_0811E2B8
thumb_func_start sub_0811E2F0
sub_0811E2F0: @ 0x0811E2F0
push {r4, lr}
sub sp, #8
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
movs r0, #0x1e
str r0, [sp]
movs r0, #0xa
str r0, [sp, #4]
movs r0, #1
movs r1, #0
movs r2, #0
movs r3, #0xa
bl FillBgTilemapBufferRect_Palette0
cmp r4, #0x16
bls _0811E312
b _0811E42E
_0811E312:
lsls r0, r4, #2
ldr r1, _0811E31C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0811E31C: .4byte 0x0811E320
_0811E320: @ jump table
.4byte _0811E42E @ case 0
.4byte _0811E37C @ case 1
.4byte _0811E384 @ case 2
.4byte _0811E38C @ case 3
.4byte _0811E394 @ case 4
.4byte _0811E39C @ case 5
.4byte _0811E3A4 @ case 6
.4byte _0811E414 @ case 7
.4byte _0811E406 @ case 8
.4byte _0811E3F8 @ case 9
.4byte _0811E3EA @ case 10
.4byte _0811E3B2 @ case 11
.4byte _0811E3BA @ case 12
.4byte _0811E3C2 @ case 13
.4byte _0811E3CA @ case 14
.4byte _0811E3D2 @ case 15
.4byte _0811E3DA @ case 16
.4byte _0811E3E2 @ case 17
.4byte _0811E3EA @ case 18
.4byte _0811E3F8 @ case 19
.4byte _0811E406 @ case 20
.4byte _0811E414 @ case 21
.4byte _0811E422 @ case 22
_0811E37C:
movs r0, #0xb
movs r1, #0xe
movs r2, #3
b _0811E3AA
_0811E384:
movs r0, #9
movs r1, #0xe
movs r2, #7
b _0811E3AA
_0811E38C:
movs r0, #7
movs r1, #0xe
movs r2, #0xb
b _0811E3AA
_0811E394:
movs r0, #5
movs r1, #0xe
movs r2, #0xf
b _0811E3AA
_0811E39C:
movs r0, #3
movs r1, #0xe
movs r2, #0x13
b _0811E3AA
_0811E3A4:
movs r0, #1
movs r1, #0xe
movs r2, #0x17
_0811E3AA:
movs r3, #2
bl sub_0811E43C
b _0811E42E
_0811E3B2:
movs r0, #1
movs r1, #0xa
movs r2, #0x18
b _0811E3F0
_0811E3BA:
movs r0, #1
movs r1, #0xa
movs r2, #0x19
b _0811E3F0
_0811E3C2:
movs r0, #1
movs r1, #0xa
movs r2, #0x1a
b _0811E3F0
_0811E3CA:
movs r0, #1
movs r1, #0xa
movs r2, #0x1b
b _0811E3F0
_0811E3D2:
movs r0, #1
movs r1, #0xa
movs r2, #0x1c
b _0811E3F0
_0811E3DA:
movs r0, #1
movs r1, #0xa
movs r2, #0x1d
b _0811E3F0
_0811E3E2:
movs r0, #0
movs r1, #0xa
movs r2, #0x1e
b _0811E3F0
_0811E3EA:
movs r0, #1
movs r1, #0xa
movs r2, #0x17
_0811E3F0:
movs r3, #0xa
bl sub_0811E43C
b _0811E42E
_0811E3F8:
movs r0, #1
movs r1, #0xb
movs r2, #0x17
movs r3, #8
bl sub_0811E43C
b _0811E42E
_0811E406:
movs r0, #1
movs r1, #0xc
movs r2, #0x17
movs r3, #6
bl sub_0811E43C
b _0811E42E
_0811E414:
movs r0, #1
movs r1, #0xd
movs r2, #0x17
movs r3, #4
bl sub_0811E43C
b _0811E42E
_0811E422:
movs r0, #1
movs r1, #0xe
movs r2, #0x17
movs r3, #2
bl sub_0811E43C
_0811E42E:
movs r0, #1
bl CopyBgTilemapBufferToVram
add sp, #8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_0811E2F0
thumb_func_start sub_0811E43C
sub_0811E43C: @ 0x0811E43C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
mov ip, r0
adds r7, r1, #0
mov sb, r2
mov sl, r3
ldr r0, _0811E574
ldr r0, [r0]
movs r1, #0xbf
lsls r1, r1, #2
adds r6, r0, r1
mov r0, ip
add r0, sb
subs r5, r0, #1
adds r0, r7, r3
subs r0, #1
mov r8, r0
mov r2, ip
adds r3, r7, #0
lsls r0, r3, #5
adds r0, r0, r2
lsls r0, r0, #1
adds r0, r0, r6
ldr r4, _0811E578
adds r1, r4, #0
strh r1, [r0]
adds r2, #1
cmp r2, r5
bge _0811E498
ldr r0, _0811E57C
adds r4, r0, #0
lsls r1, r2, #1
lsls r0, r3, #6
adds r0, r0, r6
adds r1, r1, r0
subs r2, r5, r2
_0811E48C:
strh r4, [r1]
adds r1, #2
subs r2, #1
cmp r2, #0
bne _0811E48C
adds r2, r5, #0
_0811E498:
lsls r0, r3, #5
adds r0, r0, r2
lsls r0, r0, #1
adds r0, r0, r6
ldr r2, _0811E580
adds r1, r2, #0
strh r1, [r0]
adds r3, #1
mov r4, ip
adds r4, #1
adds r0, r7, #1
str r0, [sp, #4]
mov r1, sb
subs r1, #2
str r1, [sp]
movs r2, #2
rsbs r2, r2, #0
add sl, r2
cmp r3, r8
bge _0811E508
lsls r7, r4, #1
mov sb, r7
_0811E4C4:
lsls r0, r3, #5
add r0, ip
lsls r0, r0, #1
adds r0, r0, r6
ldr r2, _0811E584
adds r1, r2, #0
strh r1, [r0]
adds r2, r4, #0
adds r7, r3, #1
cmp r4, r5
bge _0811E4F4
movs r0, #0x80
lsls r0, r0, #7
adds r1, r0, #0
lsls r0, r3, #6
adds r0, r0, r6
add r0, sb
subs r2, r5, r4
_0811E4E8:
strh r1, [r0]
adds r0, #2
subs r2, #1
cmp r2, #0
bne _0811E4E8
adds r2, r5, #0
_0811E4F4:
lsls r0, r3, #5
adds r0, r0, r2
lsls r0, r0, #1
adds r0, r0, r6
ldr r2, _0811E588
adds r1, r2, #0
strh r1, [r0]
adds r3, r7, #0
cmp r3, r8
blt _0811E4C4
_0811E508:
lsls r0, r3, #5
mov r7, ip
adds r1, r0, r7
lsls r1, r1, #1
adds r1, r1, r6
ldr r7, _0811E58C
adds r2, r7, #0
strh r2, [r1]
adds r2, r4, #0
mov ip, r0
cmp r4, r5
bge _0811E53A
ldr r0, _0811E590
adds r7, r0, #0
lsls r1, r4, #1
lsls r0, r3, #6
adds r0, r0, r6
adds r0, r1, r0
subs r2, r5, r4
_0811E52E:
strh r7, [r0]
adds r0, #2
subs r2, #1
cmp r2, #0
bne _0811E52E
adds r2, r5, #0
_0811E53A:
mov r1, ip
adds r0, r1, r2
lsls r0, r0, #1
adds r0, r0, r6
ldr r2, _0811E594
adds r1, r2, #0
strh r1, [r0]
lsls r0, r4, #0x1b
lsrs r0, r0, #0x18
ldr r3, [sp, #4]
lsls r1, r3, #0x1b
lsrs r1, r1, #0x18
ldr r4, [sp]
lsls r2, r4, #0x1b
lsrs r2, r2, #0x18
mov r7, sl
lsls r3, r7, #0x1b
lsrs r3, r3, #0x18
bl sub_0811E670
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0811E574: .4byte 0x02039DE8
_0811E578: .4byte 0x00004001
_0811E57C: .4byte 0x00004002
_0811E580: .4byte 0x00004003
_0811E584: .4byte 0x00004005
_0811E588: .4byte 0x00004007
_0811E58C: .4byte 0x00004009
_0811E590: .4byte 0x0000400A
_0811E594: .4byte 0x0000400B
thumb_func_end sub_0811E43C
thumb_func_start sub_0811E598
sub_0811E598: @ 0x0811E598
push {lr}
movs r1, #0x80
lsls r1, r1, #4
movs r0, #2
movs r2, #0
bl ChangeBgY
ldr r0, _0811E5B8
ldr r0, [r0]
ldr r1, _0811E5BC
adds r0, r0, r1
movs r1, #0
strh r1, [r0]
pop {r0}
bx r0
.align 2, 0
_0811E5B8: .4byte 0x02039DE8
_0811E5BC: .4byte 0x000002CE
thumb_func_end sub_0811E598
thumb_func_start sub_0811E5C0
sub_0811E5C0: @ 0x0811E5C0
push {r4, r5, lr}
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
lsls r1, r1, #0x18
lsrs r5, r1, #0x18
movs r0, #2
bl GetBgY
adds r2, r0, #0
ldr r0, _0811E60C
ldr r3, [r0]
ldr r0, _0811E610
adds r1, r3, r0
ldrh r0, [r1]
adds r0, r0, r4
strh r0, [r1]
lsls r4, r4, #0x14
asrs r4, r4, #0x10
lsls r0, r4, #8
adds r2, r2, r0
cmp r5, #0
beq _0811E614
movs r1, #0xb4
lsls r1, r1, #2
adds r0, r3, r1
str r2, [r0]
movs r0, #0xb5
lsls r0, r0, #2
adds r1, r3, r0
lsls r0, r5, #8
str r0, [r1]
cmp r4, #0
bge _0811E61E
rsbs r0, r0, #0
str r0, [r1]
b _0811E61E
.align 2, 0
_0811E60C: .4byte 0x02039DE8
_0811E610: .4byte 0x000002CE
_0811E614:
movs r0, #2
adds r1, r2, #0
movs r2, #0
bl ChangeBgY
_0811E61E:
pop {r4, r5}
pop {r0}
bx r0
thumb_func_end sub_0811E5C0
thumb_func_start sub_0811E624
sub_0811E624: @ 0x0811E624
push {lr}
movs r0, #2
bl GetBgY
ldr r1, _0811E650
ldr r2, [r1]
movs r3, #0xb4
lsls r3, r3, #2
adds r1, r2, r3
ldr r1, [r1]
cmp r0, r1
beq _0811E654
movs r1, #0xb5
lsls r1, r1, #2
adds r0, r2, r1
ldr r1, [r0]
movs r0, #2
movs r2, #1
bl ChangeBgY
movs r0, #1
b _0811E656
.align 2, 0
_0811E650: .4byte 0x02039DE8
_0811E654:
movs r0, #0
_0811E656:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811E624
thumb_func_start sub_0811E65C
sub_0811E65C: @ 0x0811E65C
ldr r0, _0811E668
ldr r0, [r0]
ldr r1, _0811E66C
adds r0, r0, r1
ldrh r0, [r0]
bx lr
.align 2, 0
_0811E668: .4byte 0x02039DE8
_0811E66C: .4byte 0x000002CE
thumb_func_end sub_0811E65C
thumb_func_start sub_0811E670
sub_0811E670: @ 0x0811E670
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
lsls r4, r0, #8
adds r0, r0, r2
orrs r4, r0
lsls r5, r1, #8
adds r1, 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_0811E670
thumb_func_start sub_0811E6A4
sub_0811E6A4: @ 0x0811E6A4
push {r4, r5, lr}
ldr r0, _0811E6CC
bl LoadSpriteSheets
ldr r0, _0811E6D0
bl LoadSpritePalettes
movs r5, #0
ldr r4, _0811E6D4
_0811E6B6:
adds r0, r4, #0
bl LoadCompressedSpriteSheet
adds r4, #8
adds r5, #1
cmp r5, #3
bls _0811E6B6
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0811E6CC: .4byte 0x085743CC
_0811E6D0: .4byte 0x085743EC
_0811E6D4: .4byte 0x08574414
thumb_func_end sub_0811E6A4
thumb_func_start sub_0811E6D8
sub_0811E6D8: @ 0x0811E6D8
push {lr}
bl GetEasyChatScreenFrameId
lsls r0, r0, #0x18
ldr r1, _0811E724
lsrs r0, r0, #0x16
adds r0, r0, r1
ldrb r2, [r0]
lsls r1, r2, #0x1b
lsrs r1, r1, #8
lsrs r2, r2, #5
adds r2, #1
ldr r0, _0811E728
movs r3, #0xc0
lsls r3, r3, #0xc
adds r1, r1, r3
asrs r1, r1, #0x10
lsls r2, r2, #3
movs r3, #2
bl CreateSprite
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r1, _0811E72C
ldr r2, [r1]
movs r1, #0xb6
lsls r1, r1, #2
adds r2, r2, r1
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
ldr r0, _0811E730
adds r1, r1, r0
str r1, [r2]
movs r0, #1
strh r0, [r1, #0x30]
pop {r0}
bx r0
.align 2, 0
_0811E724: .4byte 0x08574358
_0811E728: .4byte 0x0857443C
_0811E72C: .4byte 0x02039DE8
_0811E730: .4byte 0x020205AC
thumb_func_end sub_0811E6D8
thumb_func_start sub_0811E734
sub_0811E734: @ 0x0811E734
push {lr}
adds r1, r0, #0
movs r2, #0x30
ldrsh r0, [r1, r2]
cmp r0, #0
beq _0811E762
ldrh r0, [r1, #0x2e]
adds r0, #1
strh r0, [r1, #0x2e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _0811E762
movs r0, #0
strh r0, [r1, #0x2e]
ldrh r0, [r1, #0x24]
adds r0, #1
strh r0, [r1, #0x24]
lsls r0, r0, #0x10
cmp r0, #0
ble _0811E762
ldr r0, _0811E768
strh r0, [r1, #0x24]
_0811E762:
pop {r0}
bx r0
.align 2, 0
_0811E768: .4byte 0x0000FFFA
thumb_func_end sub_0811E734
thumb_func_start sub_0811E76C
sub_0811E76C: @ 0x0811E76C
push {r4, lr}
lsls r0, r0, #0x18
lsls r1, r1, #0x18
ldr r2, _0811E79C
ldr r2, [r2]
movs r3, #0xb6
lsls r3, r3, #2
adds r2, r2, r3
ldr r3, [r2]
lsrs r0, r0, #0x15
adds r0, #4
movs r4, #0
strh r0, [r3, #0x20]
ldr r0, [r2]
lsrs r1, r1, #0x15
adds r1, #8
strh r1, [r0, #0x22]
ldr r0, [r2]
strh r4, [r0, #0x24]
ldr r0, [r2]
strh r4, [r0, #0x2e]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0811E79C: .4byte 0x02039DE8
thumb_func_end sub_0811E76C
thumb_func_start sub_0811E7A0
sub_0811E7A0: @ 0x0811E7A0
ldr r0, _0811E7BC
ldr r1, [r0]
movs r0, #0xb6
lsls r0, r0, #2
adds r1, r1, r0
ldr r0, [r1]
movs r2, #0
strh r2, [r0, #0x2e]
ldr r0, [r1]
strh r2, [r0, #0x30]
ldr r0, [r1]
strh r2, [r0, #0x24]
bx lr
.align 2, 0
_0811E7BC: .4byte 0x02039DE8
thumb_func_end sub_0811E7A0
thumb_func_start sub_0811E7C0
sub_0811E7C0: @ 0x0811E7C0
ldr r0, _0811E7D4
ldr r0, [r0]
movs r1, #0xb6
lsls r1, r1, #2
adds r0, r0, r1
ldr r1, [r0]
movs r0, #1
strh r0, [r1, #0x30]
bx lr
.align 2, 0
_0811E7D4: .4byte 0x02039DE8
thumb_func_end sub_0811E7C0
thumb_func_start sub_0811E7D8
sub_0811E7D8: @ 0x0811E7D8
push {lr}
ldr r0, _0811E808
movs r1, #0
movs r2, #0
movs r3, #3
bl CreateSprite
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r1, _0811E80C
ldr r2, [r1]
movs r1, #0xb7
lsls r1, r1, #2
adds r2, r2, r1
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
ldr r0, _0811E810
adds r1, r1, r0
str r1, [r2]
bl sub_0811E838
pop {r0}
bx r0
.align 2, 0
_0811E808: .4byte 0x0857448C
_0811E80C: .4byte 0x02039DE8
_0811E810: .4byte 0x020205AC
thumb_func_end sub_0811E7D8
thumb_func_start sub_0811E814
sub_0811E814: @ 0x0811E814
push {r4, r5, lr}
ldr r5, _0811E834
ldr r0, [r5]
movs r4, #0xb7
lsls r4, r4, #2
adds r0, r0, r4
ldr r0, [r0]
bl DestroySprite
ldr r0, [r5]
adds r0, r0, r4
movs r1, #0
str r1, [r0]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0811E834: .4byte 0x02039DE8
thumb_func_end sub_0811E814
thumb_func_start sub_0811E838
sub_0811E838: @ 0x0811E838
push {r4, lr}
sub sp, #4
ldr r0, _0811E874
ldr r0, [r0]
movs r1, #0xb7
lsls r1, r1, #2
adds r0, r0, r1
ldr r0, [r0]
cmp r0, #0
beq _0811E888
mov r4, sp
adds r4, #1
mov r0, sp
adds r1, r4, #0
bl sub_0811C3A0
bl sub_0811C3B4
lsls r0, r0, #0x18
cmp r0, #0
bne _0811E878
mov r0, sp
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r1, #0
ldrsb r1, [r4, r1]
bl sub_0811E890
b _0811E888
.align 2, 0
_0811E874: .4byte 0x02039DE8
_0811E878:
mov r0, sp
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r1, #0
ldrsb r1, [r4, r1]
bl sub_0811E904
_0811E888:
add sp, #4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_0811E838
thumb_func_start sub_0811E890
sub_0811E890: @ 0x0811E890
push {r4, r5, r6, r7, lr}
lsls r1, r1, #0x18
lsrs r7, r1, #0x18
lsls r0, r0, #0x18
asrs r6, r0, #0x18
movs r0, #1
rsbs r0, r0, #0
cmp r6, r0
beq _0811E8D4
ldr r5, _0811E8D0
ldr r0, [r5]
movs r4, #0xb7
lsls r4, r4, #2
adds r0, r0, r4
ldr r0, [r0]
movs r1, #0
bl StartSpriteAnim
ldr r1, [r5]
adds r1, r1, r4
ldr r2, [r1]
lsls r0, r6, #3
subs r0, r0, r6
lsls r0, r0, #3
adds r0, #0x28
strh r0, [r2, #0x20]
ldr r1, [r1]
lsls r0, r7, #0x18
asrs r0, r0, #0x14
adds r0, #0x60
b _0811E8F8
.align 2, 0
_0811E8D0: .4byte 0x02039DE8
_0811E8D4:
ldr r5, _0811E900
ldr r0, [r5]
movs r4, #0xb7
lsls r4, r4, #2
adds r0, r0, r4
ldr r0, [r0]
movs r1, #1
bl StartSpriteAnim
ldr r0, [r5]
adds r0, r0, r4
ldr r2, [r0]
movs r1, #0xd8
strh r1, [r2, #0x20]
ldr r1, [r0]
lsls r0, r7, #0x18
asrs r0, r0, #0x14
adds r0, #0x70
_0811E8F8:
strh r0, [r1, #0x22]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0811E900: .4byte 0x02039DE8
thumb_func_end sub_0811E890
thumb_func_start sub_0811E904
sub_0811E904: @ 0x0811E904
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
lsls r0, r0, #0x18
lsls r1, r1, #0x18
lsrs r6, r1, #0x18
lsrs r1, r0, #0x18
mov r8, r1
asrs r1, r0, #0x18
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
beq _0811E99C
lsls r7, r6, #0x18
cmp r1, #0xa
bne _0811E950
asrs r0, r7, #0x18
cmp r0, #1
bne _0811E950
ldr r5, _0811E94C
ldr r0, [r5]
movs r4, #0xb7
lsls r4, r4, #2
adds r0, r0, r4
ldr r0, [r0]
movs r1, #2
bl StartSpriteAnim
ldr r0, [r5]
adds r0, r0, r4
ldr r2, [r0]
movs r1, #0x7c
strh r1, [r2, #0x20]
ldr r1, [r0]
movs r0, #0x70
b _0811E9C0
.align 2, 0
_0811E94C: .4byte 0x02039DE8
_0811E950:
ldr r5, _0811E998
ldr r0, [r5]
movs r4, #0xb7
lsls r4, r4, #2
adds r0, r0, r4
ldr r0, [r0]
movs r1, #3
bl StartSpriteAnim
ldr r0, [r5]
adds r6, r0, r4
ldr r5, [r6]
mov r0, r8
lsls r4, r0, #0x18
asrs r4, r4, #0x18
adds r0, r4, #0
movs r1, #5
bl __divsi3
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, r4, r0
lsls r0, r0, #3
adds r0, #0x14
strh r0, [r5, #0x20]
ldr r1, [r6]
asrs r0, r7, #0x14
adds r0, #0x60
strh r0, [r1, #0x22]
cmp r4, #0xc
ble _0811E9C2
ldr r1, [r6]
ldrh r0, [r1, #0x20]
adds r0, #8
strh r0, [r1, #0x20]
b _0811E9C2
.align 2, 0
_0811E998: .4byte 0x02039DE8
_0811E99C:
ldr r5, _0811E9CC
ldr r0, [r5]
movs r4, #0xb7
lsls r4, r4, #2
adds r0, r0, r4
ldr r0, [r0]
movs r1, #1
bl StartSpriteAnim
ldr r0, [r5]
adds r0, r0, r4
ldr r2, [r0]
movs r1, #0xd8
strh r1, [r2, #0x20]
ldr r1, [r0]
lsls r0, r6, #0x18
asrs r0, r0, #0x14
adds r0, #0x70
_0811E9C0:
strh r0, [r1, #0x22]
_0811E9C2:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0811E9CC: .4byte 0x02039DE8
thumb_func_end sub_0811E904
thumb_func_start sub_0811E9D0
sub_0811E9D0: @ 0x0811E9D0
push {lr}
ldr r0, _0811EA14
movs r1, #0
movs r2, #0
movs r3, #4
bl CreateSprite
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r1, _0811EA18
ldr r2, [r1]
movs r1, #0xb8
lsls r1, r1, #2
adds r2, r2, r1
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
ldr r0, _0811EA1C
adds r1, r1, r0
str r1, [r2]
ldr r0, _0811EA20
str r0, [r1, #0x1c]
ldrb r2, [r1, #5]
movs r0, #0xd
rsbs r0, r0, #0
ands r0, r2
movs r2, #8
orrs r0, r2
strb r0, [r1, #5]
bl sub_0811EA54
pop {r0}
bx r0
.align 2, 0
_0811EA14: .4byte 0x0857443C
_0811EA18: .4byte 0x02039DE8
_0811EA1C: .4byte 0x020205AC
_0811EA20: .4byte 0x0811EA25
thumb_func_end sub_0811E9D0
thumb_func_start sub_0811EA24
sub_0811EA24: @ 0x0811EA24
push {lr}
adds r1, r0, #0
ldrh r0, [r1, #0x2e]
adds r0, #1
strh r0, [r1, #0x2e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _0811EA4A
movs r0, #0
strh r0, [r1, #0x2e]
ldrh r0, [r1, #0x24]
adds r0, #1
strh r0, [r1, #0x24]
lsls r0, r0, #0x10
cmp r0, #0
ble _0811EA4A
ldr r0, _0811EA50
strh r0, [r1, #0x24]
_0811EA4A:
pop {r0}
bx r0
.align 2, 0
_0811EA50: .4byte 0x0000FFFA
thumb_func_end sub_0811EA24
thumb_func_start sub_0811EA54
sub_0811EA54: @ 0x0811EA54
push {r4, lr}
sub sp, #4
mov r4, sp
adds r4, #1
mov r0, sp
adds r1, r4, #0
bl sub_0811C3CC
mov r0, sp
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #3
adds r0, r0, r1
adds r0, #2
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r1, #0
ldrsb r1, [r4, r1]
lsls r1, r1, #0x19
movs r2, #0xb0
lsls r2, r2, #0x14
adds r1, r1, r2
lsrs r1, r1, #0x18
bl sub_0811EA90
add sp, #4
pop {r4}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0811EA54
thumb_func_start sub_0811EA90
sub_0811EA90: @ 0x0811EA90
push {r4, lr}
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
lsls r1, r1, #0x18
lsrs r4, r1, #0x18
ldr r0, _0811EAC8
ldr r0, [r0]
movs r1, #0xb8
lsls r1, r1, #2
adds r3, r0, r1
ldr r1, [r3]
cmp r1, #0
beq _0811EAC2
lsls r0, r2, #3
adds r0, #4
movs r2, #0
strh r0, [r1, #0x20]
ldr r1, [r3]
adds r0, r4, #1
lsls r0, r0, #3
strh r0, [r1, #0x22]
ldr r0, [r3]
strh r2, [r0, #0x24]
ldr r0, [r3]
strh r2, [r0, #0x2e]
_0811EAC2:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0811EAC8: .4byte 0x02039DE8
thumb_func_end sub_0811EA90
thumb_func_start sub_0811EACC
sub_0811EACC: @ 0x0811EACC
push {r4, lr}
ldr r4, _0811EAF4
ldr r0, [r4]
movs r1, #0xb8
lsls r1, r1, #2
adds r0, r0, r1
ldr r0, [r0]
cmp r0, #0
beq _0811EAEE
bl DestroySprite
ldr r0, [r4]
movs r1, #0xb8
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #0
str r1, [r0]
_0811EAEE:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0811EAF4: .4byte 0x02039DE8
thumb_func_end sub_0811EACC
thumb_func_start sub_0811EAF8
sub_0811EAF8: @ 0x0811EAF8
push {r4, r5, r6, lr}
ldr r0, _0811EB50
movs r1, #0xd0
movs r2, #0x80
movs r3, #6
bl CreateSprite
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r5, _0811EB54
ldr r2, [r5]
movs r1, #0xb9
lsls r1, r1, #2
adds r2, r2, r1
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
ldr r4, _0811EB58
adds r1, r1, r4
str r1, [r2]
movs r6, #0
ldr r0, _0811EB5C
strh r0, [r1, #0x24]
ldr r0, _0811EB60
movs r1, #0xd0
movs r2, #0x50
movs r3, #5
bl CreateSprite
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, [r5]
movs r1, #0xba
lsls r1, r1, #2
adds r3, r2, r1
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r4
str r1, [r3]
strb r6, [r2, #9]
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0811EB50: .4byte 0x08574514
_0811EB54: .4byte 0x02039DE8
_0811EB58: .4byte 0x020205AC
_0811EB5C: .4byte 0x0000FFC0
_0811EB60: .4byte 0x085744F4
thumb_func_end sub_0811EAF8
thumb_func_start sub_0811EB64
sub_0811EB64: @ 0x0811EB64
push {r4, lr}
ldr r4, _0811EB78
ldr r2, [r4]
ldrb r3, [r2, #9]
cmp r3, #0
beq _0811EB7C
cmp r3, #1
beq _0811EBD4
movs r0, #0
b _0811EBF2
.align 2, 0
_0811EB78: .4byte 0x02039DE8
_0811EB7C:
movs r0, #0xb9
lsls r0, r0, #2
adds r2, r2, r0
ldr r1, [r2]
ldrh r0, [r1, #0x24]
adds r0, #8
strh r0, [r1, #0x24]
ldr r2, [r2]
movs r1, #0x24
ldrsh r0, [r2, r1]
cmp r0, #0
blt _0811EBF0
strh r3, [r2, #0x24]
bl sub_0811C3B4
lsls r0, r0, #0x18
cmp r0, #0
bne _0811EBB2
ldr r0, [r4]
movs r1, #0xba
lsls r1, r1, #2
adds r0, r0, r1
ldr r0, [r0]
movs r1, #1
bl StartSpriteAnim
b _0811EBC2
_0811EBB2:
ldr r0, [r4]
movs r1, #0xba
lsls r1, r1, #2
adds r0, r0, r1
ldr r0, [r0]
movs r1, #2
bl StartSpriteAnim
_0811EBC2:
ldr r0, _0811EBD0
ldr r1, [r0]
ldrb r0, [r1, #9]
adds r0, #1
strb r0, [r1, #9]
b _0811EBF0
.align 2, 0
_0811EBD0: .4byte 0x02039DE8
_0811EBD4:
movs r1, #0xba
lsls r1, 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 _0811EBF0
movs r0, #2
strb r0, [r2, #9]
movs r0, #0
b _0811EBF2
_0811EBF0:
movs r0, #1
_0811EBF2:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_0811EB64
thumb_func_start sub_0811EBF8
sub_0811EBF8: @ 0x0811EBF8
push {lr}
ldr r2, _0811EC18
ldr r1, [r2]
movs r0, #0
strb r0, [r1, #9]
ldr r0, [r2]
movs r1, #0xba
lsls r1, r1, #2
adds r0, r0, r1
ldr r0, [r0]
movs r1, #3
bl StartSpriteAnim
pop {r0}
bx r0
.align 2, 0
_0811EC18: .4byte 0x02039DE8
thumb_func_end sub_0811EBF8
thumb_func_start sub_0811EC1C
sub_0811EC1C: @ 0x0811EC1C
push {r4, r5, r6, lr}
ldr r5, _0811EC30
ldr r3, [r5]
ldrb r0, [r3, #9]
cmp r0, #0
beq _0811EC34
cmp r0, #1
beq _0811EC4E
movs r0, #0
b _0811ECA0
.align 2, 0
_0811EC30: .4byte 0x02039DE8
_0811EC34:
movs r1, #0xba
lsls r1, 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 _0811EC9E
movs r0, #1
strb r0, [r3, #9]
b _0811EC9E
_0811EC4E:
movs r0, #0xb9
lsls r0, r0, #2
adds r2, r3, r0
ldr r1, [r2]
ldrh r0, [r1, #0x24]
subs r0, #8
movs r6, #0
strh r0, [r1, #0x24]
ldr r0, [r2]
movs r2, #0x24
ldrsh r1, [r0, r2]
movs r0, #0x40
rsbs r0, r0, #0
cmp r1, r0
bgt _0811EC9E
movs r4, #0xba
lsls r4, r4, #2
adds r0, r3, r4
ldr r0, [r0]
bl DestroySprite
ldr r0, [r5]
movs r1, #0xb9
lsls r1, r1, #2
adds r0, r0, r1
ldr r0, [r0]
bl DestroySprite
ldr r1, [r5]
adds r4, r1, r4
str r6, [r4]
movs r2, #0xb9
lsls r2, r2, #2
adds r0, r1, r2
str r6, [r0]
ldrb r0, [r1, #9]
adds r0, #1
strb r0, [r1, #9]
movs r0, #0
b _0811ECA0
_0811EC9E:
movs r0, #1
_0811ECA0:
pop {r4, r5, r6}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811EC1C
thumb_func_start sub_0811ECA8
sub_0811ECA8: @ 0x0811ECA8
push {lr}
ldr r0, _0811ECC0
ldr r0, [r0]
movs r1, #0xba
lsls r1, r1, #2
adds r0, r0, r1
ldr r0, [r0]
movs r1, #4
bl StartSpriteAnim
pop {r0}
bx r0
.align 2, 0
_0811ECC0: .4byte 0x02039DE8
thumb_func_end sub_0811ECA8
thumb_func_start sub_0811ECC4
sub_0811ECC4: @ 0x0811ECC4
push {lr}
bl sub_0811C3B4
lsls r0, r0, #0x18
cmp r0, #0
bne _0811ECE8
ldr r0, _0811ECE4
ldr r0, [r0]
movs r1, #0xba
lsls r1, r1, #2
adds r0, r0, r1
ldr r0, [r0]
movs r1, #1
bl StartSpriteAnim
b _0811ECFA
.align 2, 0
_0811ECE4: .4byte 0x02039DE8
_0811ECE8:
ldr r0, _0811ED00
ldr r0, [r0]
movs r1, #0xba
lsls r1, r1, #2
adds r0, r0, r1
ldr r0, [r0]
movs r1, #2
bl StartSpriteAnim
_0811ECFA:
pop {r0}
bx r0
.align 2, 0
_0811ED00: .4byte 0x02039DE8
thumb_func_end sub_0811ECC4
thumb_func_start sub_0811ED04
sub_0811ED04: @ 0x0811ED04
ldr r0, _0811ED1C
ldr r0, [r0]
movs r1, #0xba
lsls r1, r1, #2
adds r0, r0, r1
ldr r0, [r0]
adds r0, #0x3f
ldrb r1, [r0]
lsrs r1, r1, #4
movs r0, #1
bics r0, r1
bx lr
.align 2, 0
_0811ED1C: .4byte 0x02039DE8
thumb_func_end sub_0811ED04
thumb_func_start sub_0811ED20
sub_0811ED20: @ 0x0811ED20
push {r4, lr}
ldr r4, _0811ED8C
adds r0, r4, #0
movs r1, #0x60
movs r2, #0x50
movs r3, #0
bl CreateSprite
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0x40
beq _0811ED4E
ldr r0, _0811ED90
ldr r2, [r0]
movs r0, #0xbb
lsls r0, r0, #2
adds r2, r2, r0
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _0811ED94
adds r0, r0, r1
str r0, [r2]
_0811ED4E:
adds r0, r4, #0
movs r1, #0x60
movs r2, #0x9c
movs r3, #0
bl CreateSprite
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0x40
beq _0811ED82
ldr r0, _0811ED90
ldr r2, [r0]
movs r0, #0xbc
lsls r0, r0, #2
adds r2, r2, r0
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _0811ED94
adds r0, r0, r1
str r0, [r2]
adds r0, #0x3f
ldrb r1, [r0]
movs r2, #2
orrs r1, r2
strb r1, [r0]
_0811ED82:
bl sub_0811EDFC
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0811ED8C: .4byte 0x0857456C
_0811ED90: .4byte 0x02039DE8
_0811ED94: .4byte 0x020205AC
thumb_func_end sub_0811ED20
thumb_func_start sub_0811ED98
sub_0811ED98: @ 0x0811ED98
push {r4, r5, r6, lr}
bl sub_0811C3FC
ldr r6, _0811EDF8
ldr r1, [r6]
movs r2, #0xbb
lsls r2, r2, #2
adds r1, r1, r2
ldr r1, [r1]
movs r2, #0
cmp r0, #0
bne _0811EDB2
movs r2, #1
_0811EDB2:
adds r3, r1, #0
adds r3, #0x3e
movs r4, #1
lsls r2, r2, #2
ldrb r1, [r3]
movs r5, #5
rsbs r5, r5, #0
adds r0, r5, #0
ands r0, r1
orrs r0, r2
strb r0, [r3]
bl sub_0811C430
ldr r1, [r6]
movs r2, #0xbc
lsls r2, r2, #2
adds r1, r1, r2
ldr r1, [r1]
movs r2, #0
cmp r0, #0
bne _0811EDDE
movs r2, #1
_0811EDDE:
adds r3, r1, #0
adds r3, #0x3e
adds r1, r4, #0
ands r1, r2
lsls r1, r1, #2
ldrb r2, [r3]
adds r0, r5, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0811EDF8: .4byte 0x02039DE8
thumb_func_end sub_0811ED98
thumb_func_start sub_0811EDFC
sub_0811EDFC: @ 0x0811EDFC
ldr r3, _0811EE28
ldr r0, [r3]
movs r1, #0xbb
lsls r1, r1, #2
adds r0, r0, r1
ldr r1, [r0]
adds r1, #0x3e
ldrb r0, [r1]
movs r2, #4
orrs r0, r2
strb r0, [r1]
ldr r0, [r3]
movs r1, #0xbc
lsls r1, r1, #2
adds r0, r0, r1
ldr r1, [r0]
adds r1, #0x3e
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
bx lr
.align 2, 0
_0811EE28: .4byte 0x02039DE8
thumb_func_end sub_0811EDFC
thumb_func_start sub_0811EE2C
sub_0811EE2C: @ 0x0811EE2C
push {lr}
cmp r0, #0
bne _0811EE48
ldr r0, _0811EE44
ldr r2, [r0]
movs r1, #0xbb
lsls r1, r1, #2
adds r0, r2, r1
ldr r0, [r0]
movs r1, #0x60
b _0811EE56
.align 2, 0
_0811EE44: .4byte 0x02039DE8
_0811EE48:
ldr r0, _0811EE68
ldr r2, [r0]
movs r1, #0xbb
lsls r1, r1, #2
adds r0, r2, r1
ldr r0, [r0]
movs r1, #0x78
_0811EE56:
strh r1, [r0, #0x20]
movs r3, #0xbc
lsls r3, r3, #2
adds r0, r2, r3
ldr r0, [r0]
strh r1, [r0, #0x20]
pop {r0}
bx r0
.align 2, 0
_0811EE68: .4byte 0x02039DE8
thumb_func_end sub_0811EE2C
thumb_func_start sub_0811EE6C
sub_0811EE6C: @ 0x0811EE6C
push {r4, lr}
ldr r4, _0811EED4
adds r0, r4, #0
movs r1, #0xdc
movs r2, #0x54
movs r3, #1
bl CreateSprite
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0x40
beq _0811EE9A
ldr r0, _0811EED8
ldr r2, [r0]
movs r0, #0xbd
lsls r0, r0, #2
adds r2, r2, r0
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _0811EEDC
adds r0, r0, r1
str r0, [r2]
_0811EE9A:
adds r0, r4, #0
movs r1, #0xdc
movs r2, #0x9c
movs r3, #1
bl CreateSprite
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0x40
beq _0811EECA
ldr r0, _0811EED8
ldr r2, [r0]
movs r0, #0xbe
lsls r0, r0, #2
adds r2, r2, r0
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _0811EEDC
adds r0, r0, r1
str r0, [r2]
movs r1, #1
bl StartSpriteAnim
_0811EECA:
bl sub_0811EF44
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0811EED4: .4byte 0x08574554
_0811EED8: .4byte 0x02039DE8
_0811EEDC: .4byte 0x020205AC
thumb_func_end sub_0811EE6C
thumb_func_start sub_0811EEE0
sub_0811EEE0: @ 0x0811EEE0
push {r4, r5, r6, lr}
bl sub_0811C3FC
ldr r6, _0811EF40
ldr r1, [r6]
movs r2, #0xbd
lsls r2, r2, #2
adds r1, r1, r2
ldr r1, [r1]
movs r2, #0
cmp r0, #0
bne _0811EEFA
movs r2, #1
_0811EEFA:
adds r3, r1, #0
adds r3, #0x3e
movs r4, #1
lsls r2, r2, #2
ldrb r1, [r3]
movs r5, #5
rsbs r5, r5, #0
adds r0, r5, #0
ands r0, r1
orrs r0, r2
strb r0, [r3]
bl sub_0811C430
ldr r1, [r6]
movs r2, #0xbe
lsls r2, r2, #2
adds r1, r1, r2
ldr r1, [r1]
movs r2, #0
cmp r0, #0
bne _0811EF26
movs r2, #1
_0811EF26:
adds r3, r1, #0
adds r3, #0x3e
adds r1, r4, #0
ands r1, r2
lsls r1, r1, #2
ldrb r2, [r3]
adds r0, r5, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0811EF40: .4byte 0x02039DE8
thumb_func_end sub_0811EEE0
thumb_func_start sub_0811EF44
sub_0811EF44: @ 0x0811EF44
ldr r3, _0811EF70
ldr r0, [r3]
movs r1, #0xbd
lsls r1, r1, #2
adds r0, r0, r1
ldr r1, [r0]
adds r1, #0x3e
ldrb r0, [r1]
movs r2, #4
orrs r0, r2
strb r0, [r1]
ldr r0, [r3]
movs r1, #0xbe
lsls r1, r1, #2
adds r0, r0, r1
ldr r1, [r0]
adds r1, #0x3e
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
bx lr
.align 2, 0
_0811EF70: .4byte 0x02039DE8
thumb_func_end sub_0811EF44
thumb_func_start sub_0811EF74
sub_0811EF74: @ 0x0811EF74
push {r4, r5, r6, r7, lr}
sub sp, #4
bl GetDisplayedPersonType
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
beq _0811EF98
cmp r0, #1
bgt _0811EF8E
cmp r0, #0
beq _0811EF94
b _0811F02E
_0811EF8E:
cmp r0, #2
beq _0811EF9C
b _0811F02E
_0811EF94:
movs r4, #0x43
b _0811EF9E
_0811EF98:
movs r4, #0x44
b _0811EF9E
_0811EF9C:
movs r4, #7
_0811EF9E:
bl GetEasyChatScreenFrameId
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #4
beq _0811EFB0
cmp r0, #5
beq _0811EFB6
b _0811F02E
_0811EFB0:
movs r5, #0x4c
movs r3, #0x28
b _0811EFBA
_0811EFB6:
movs r5, #0x30
movs r3, #0x30
_0811EFBA:
adds r0, r4, #0
ldr r7, _0811F038
adds r2, r5, #0
adds r4, r3, #0
movs r6, #0
str r6, [sp]
adds r1, r7, #0
bl AddPseudoEventObject
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
cmp r2, #0x40
beq _0811EFEE
ldr r1, _0811F03C
lsls r0, r2, #4
adds r0, r0, r2
lsls r0, r0, #2
adds r0, r0, r1
ldrb r2, [r0, #5]
movs r1, #0xd
rsbs r1, r1, #0
ands r1, r2
strb r1, [r0, #5]
movs r1, #2
bl StartSpriteAnim
_0811EFEE:
ldr r0, _0811F040
ldr r0, [r0]
ldrb r0, [r0, #8]
movs r1, #0x69
cmp r0, #0
bne _0811EFFC
movs r1, #0x64
_0811EFFC:
adds r2, r5, #0
subs r2, #0x18
str r6, [sp]
adds r0, r1, #0
adds r1, r7, #0
adds r3, r4, #0
bl AddPseudoEventObject
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
cmp r2, #0x40
beq _0811F02E
ldr r1, _0811F03C
lsls r0, r2, #4
adds r0, r0, r2
lsls r0, r0, #2
adds r0, r0, r1
ldrb r2, [r0, #5]
movs r1, #0xd
rsbs r1, r1, #0
ands r1, r2
strb r1, [r0, #5]
movs r1, #3
bl StartSpriteAnim
_0811F02E:
add sp, #4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0811F038: .4byte 0x08007141
_0811F03C: .4byte 0x020205AC
_0811F040: .4byte 0x03005AF0
thumb_func_end sub_0811EF74
thumb_func_start sub_0811F044
sub_0811F044: @ 0x0811F044
push {lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r1, r0, #0
cmp r0, #0x14
beq _0811F06A
cmp r0, #0x14
bgt _0811F064
cmp r0, #0x11
blt _0811F082
ldr r0, _0811F060
bl FlagGet
b _0811F07C
.align 2, 0
_0811F060: .4byte 0x00000864
_0811F064:
cmp r1, #0x15
beq _0811F078
b _0811F082
_0811F06A:
ldr r0, _0811F074
bl FlagGet
b _0811F07C
.align 2, 0
_0811F074: .4byte 0x00000866
_0811F078:
bl sub_0811F5D8
_0811F07C:
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
b _0811F084
_0811F082:
movs r0, #1
_0811F084:
pop {r1}
bx r1
thumb_func_end sub_0811F044
thumb_func_start EasyChat_GetNumWordsInGroup
EasyChat_GetNumWordsInGroup: @ 0x0811F088
push {r4, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r4, r0, #0
cmp r0, #0
bne _0811F0A0
movs r0, #0
bl GetNationalPokedexCount
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
b _0811F0B6
_0811F0A0:
bl sub_0811F044
lsls r0, r0, #0x18
cmp r0, #0
bne _0811F0AE
movs r0, #0
b _0811F0B6
_0811F0AE:
ldr r0, _0811F0BC
lsls r1, r4, #3
adds r1, r1, r0
ldrh r0, [r1, #6]
_0811F0B6:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0811F0BC: .4byte 0x08578D14
thumb_func_end EasyChat_GetNumWordsInGroup
thumb_func_start sub_0811F0C0
sub_0811F0C0: @ 0x0811F0C0
push {r4, r5, lr}
lsls r2, r0, #0x10
lsrs r1, r2, #0x10
ldr r0, _0811F0EC
cmp r1, r0
beq _0811F120
lsrs r3, r2, #0x19
ldr r5, _0811F0F0
ands r5, r1
cmp r3, #0x15
bhi _0811F124
ldr r0, _0811F0F4
lsls r2, r3, #3
adds r1, r2, r0
ldrh r4, [r1, #4]
cmp r3, #0x13
bgt _0811F0F8
cmp r3, #0x12
bge _0811F0FC
cmp r3, #0
beq _0811F0FC
b _0811F11C
.align 2, 0
_0811F0EC: .4byte 0x0000FFFF
_0811F0F0: .4byte 0x000001FF
_0811F0F4: .4byte 0x08578D14
_0811F0F8:
cmp r3, #0x15
bne _0811F11C
_0811F0FC:
adds r0, r2, r0
ldr r2, [r0]
movs r1, #0
cmp r1, r4
bhs _0811F124
_0811F106:
lsls r0, r1, #1
adds r0, r0, r2
ldrh r0, [r0]
cmp r5, r0
beq _0811F120
adds r0, r1, #1
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
cmp r1, r4
blo _0811F106
b _0811F124
_0811F11C:
cmp r5, r4
bhs _0811F124
_0811F120:
movs r0, #0
b _0811F126
_0811F124:
movs r0, #1
_0811F126:
pop {r4, r5}
pop {r1}
bx r1
thumb_func_end sub_0811F0C0
thumb_func_start GetEasyChatWord
GetEasyChatWord: @ 0x0811F12C
push {lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r1, #0x10
lsrs r2, r1, #0x10
cmp r0, #0x13
bgt _0811F144
cmp r0, #0x12
bge _0811F158
cmp r0, #0
beq _0811F148
b _0811F164
_0811F144:
cmp r0, #0x15
bne _0811F164
_0811F148:
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #1
ldr r1, _0811F154
adds r0, r0, r1
b _0811F176
.align 2, 0
_0811F154: .4byte 0x082EA31C
_0811F158:
lsls r0, r2, #3
ldr r1, _0811F160
adds r0, r0, r1
b _0811F176
.align 2, 0
_0811F160: .4byte 0x082EACC4
_0811F164:
ldr r1, _0811F17C
lsls r0, r0, #3
adds r0, r0, r1
ldr r1, [r0]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
_0811F176:
pop {r1}
bx r1
.align 2, 0
_0811F17C: .4byte 0x08578D14
thumb_func_end GetEasyChatWord
thumb_func_start CopyEasyChatWord
CopyEasyChatWord: @ 0x0811F180
push {r4, r5, r6, lr}
adds r5, r0, #0
lsls r6, r1, #0x10
lsrs r0, r6, #0x10
adds r4, r0, #0
bl sub_0811F0C0
lsls r0, r0, #0x18
cmp r0, #0
beq _0811F19C
ldr r1, _0811F198
b _0811F1AE
.align 2, 0
_0811F198: .4byte 0x08579F30
_0811F19C:
ldr r0, _0811F1B8
cmp r4, r0
beq _0811F1C0
ldr r1, _0811F1BC
ands r1, r4
lsrs r0, r6, #0x19
bl GetEasyChatWord
adds r1, r0, #0
_0811F1AE:
adds r0, r5, #0
bl StringCopy
b _0811F1C6
.align 2, 0
_0811F1B8: .4byte 0x0000FFFF
_0811F1BC: .4byte 0x000001FF
_0811F1C0:
movs r0, #0xff
strb r0, [r5]
adds r0, r5, #0
_0811F1C6:
pop {r4, r5, r6}
pop {r1}
bx r1
thumb_func_end CopyEasyChatWord
thumb_func_start ConvertEasyChatWordsToString
ConvertEasyChatWordsToString: @ 0x0811F1CC
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #4
adds r4, r0, #0
adds r5, r1, #0
lsls r2, r2, #0x10
lsls r3, r3, #0x10
lsrs r3, r3, #0x10
mov sb, r3
ldr r0, _0811F254
adds r2, r2, r0
lsrs r7, r2, #0x10
movs r0, #0
cmp r0, sb
bhs _0811F23C
_0811F1EE:
movs r6, #0
adds r0, #1
mov r8, r0
cmp r6, r7
bhs _0811F220
ldr r2, _0811F258
_0811F1FA:
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 _0811F214
movs r0, #0
strb r0, [r4]
adds r4, #1
_0811F214:
adds r5, #2
adds r0, r6, #1
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
cmp r6, r7
blo _0811F1FA
_0811F220:
ldrh r1, [r5]
adds r5, #2
adds r0, r4, #0
bl CopyEasyChatWord
adds r4, r0, #0
movs r0, #0xfe
strb r0, [r4]
adds r4, #1
mov r1, r8
lsls r0, r1, #0x10
lsrs r0, r0, #0x10
cmp r0, sb
blo _0811F1EE
_0811F23C:
subs r4, #1
movs r0, #0xff
strb r0, [r4]
adds r0, r4, #0
add sp, #4
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_0811F254: .4byte 0xFFFF0000
_0811F258: .4byte 0x0000FFFF
thumb_func_end ConvertEasyChatWordsToString
thumb_func_start GetEasyChatWordStringLength
GetEasyChatWordStringLength: @ 0x0811F25C
push {r4, r5, lr}
lsls r5, r0, #0x10
lsrs r0, r5, #0x10
adds r4, r0, #0
ldr r0, _0811F270
cmp r4, r0
bne _0811F274
movs r0, #0
b _0811F29A
.align 2, 0
_0811F270: .4byte 0x0000FFFF
_0811F274:
adds r0, r4, #0
bl sub_0811F0C0
lsls r0, r0, #0x18
cmp r0, #0
bne _0811F290
ldr r1, _0811F28C
ands r1, r4
lsrs r0, r5, #0x19
bl GetEasyChatWord
b _0811F292
.align 2, 0
_0811F28C: .4byte 0x000001FF
_0811F290:
ldr r0, _0811F2A0
_0811F292:
bl StringLength
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
_0811F29A:
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
_0811F2A0: .4byte 0x08579F30
thumb_func_end GetEasyChatWordStringLength
thumb_func_start sub_0811F2A4
sub_0811F2A4: @ 0x0811F2A4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
adds r6, r0, #0
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
mov r8, r2
lsls r3, r3, #0x10
lsrs r3, r3, #0x10
mov sl, r3
movs r7, #0
cmp r7, r8
bhs _0811F306
subs r0, r1, #1
lsls r0, r0, #0x10
mov sb, r0
_0811F2CE:
mov r0, sb
lsrs r4, r0, #0x10
movs r5, #0
cmp r5, r1
bhs _0811F2F4
_0811F2D8:
ldrh r0, [r6]
adds r6, #2
str r1, [sp]
bl GetEasyChatWordStringLength
adds r0, r4, r0
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
adds r0, r5, #1
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r1, [sp]
cmp r5, r1
blo _0811F2D8
_0811F2F4:
cmp r4, sl
bls _0811F2FC
movs r0, #1
b _0811F308
_0811F2FC:
adds r0, r7, #1
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
cmp r7, r8
blo _0811F2CE
_0811F306:
movs r0, #0
_0811F308:
add sp, #4
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
thumb_func_end sub_0811F2A4
thumb_func_start sub_0811F318
sub_0811F318: @ 0x0811F318
push {r4, lr}
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
bl Random
ldr r2, _0811F368
lsls r1, r4, #3
adds r1, r1, r2
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldrh r1, [r1, #4]
bl __umodsi3
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
cmp r4, #0
beq _0811F346
cmp r4, #0x15
beq _0811F346
cmp r4, #0x12
beq _0811F346
cmp r4, #0x13
bne _0811F354
_0811F346:
ldr r1, _0811F368
lsls r0, r4, #3
adds r0, r0, r1
ldr r1, [r0]
lsls r0, r2, #1
adds r0, r0, r1
ldrh r2, [r0]
_0811F354:
movs r0, #0x7f
ands r0, r4
lsls r0, r0, #9
ldr r1, _0811F36C
ands r2, r1
orrs r0, r2
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0811F368: .4byte 0x08578D14
_0811F36C: .4byte 0x000001FF
thumb_func_end sub_0811F318
thumb_func_start sub_0811F370
sub_0811F370: @ 0x0811F370
push {r4, lr}
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r4, r0, #0
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
bl sub_0811F044
lsls r0, r0, #0x18
cmp r0, #0
bne _0811F390
ldr r0, _0811F38C
b _0811F3A4
.align 2, 0
_0811F38C: .4byte 0x0000FFFF
_0811F390:
cmp r4, #0
beq _0811F39C
adds r0, r4, #0
bl sub_0811F318
b _0811F3A0
_0811F39C:
bl sub_0811F5E8
_0811F3A0:
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
_0811F3A4:
pop {r4}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811F370
thumb_func_start sub_0811F3AC
sub_0811F3AC: @ 0x0811F3AC
push {r4, r5, lr}
ldr r0, _0811F3C0
ldrh r0, [r0]
cmp r0, #1
beq _0811F3E4
cmp r0, #1
bgt _0811F3C4
cmp r0, #0
beq _0811F3CE
b _0811F438
.align 2, 0
_0811F3C0: .4byte 0x02037280
_0811F3C4:
cmp r0, #2
beq _0811F40C
cmp r0, #3
beq _0811F41C
b _0811F438
_0811F3CE:
ldr r0, _0811F3DC
ldr r0, [r0]
ldr r1, _0811F3E0
adds r5, r0, r1
movs r2, #2
b _0811F426
.align 2, 0
_0811F3DC: .4byte 0x03005AEC
_0811F3E0: .4byte 0x00002BB0
_0811F3E4:
ldr r0, _0811F404
ldr r0, [r0]
ldr r1, _0811F408
adds r5, r0, r1
adds r0, r5, #0
movs r1, #3
movs r2, #2
movs r3, #0x12
bl sub_0811F2A4
lsls r0, r0, #0x18
cmp r0, #0
beq _0811F424
movs r2, #2
movs r3, #3
b _0811F428
.align 2, 0
_0811F404: .4byte 0x03005AEC
_0811F408: .4byte 0x00002BBC
_0811F40C:
ldr r0, _0811F414
ldr r0, [r0]
ldr r1, _0811F418
b _0811F422
.align 2, 0
_0811F414: .4byte 0x03005AEC
_0811F418: .4byte 0x00002BC8
_0811F41C:
ldr r0, _0811F440
ldr r0, [r0]
ldr r1, _0811F444
_0811F422:
adds r5, r0, r1
_0811F424:
movs r2, #3
_0811F426:
movs r3, #2
_0811F428:
ldr r4, _0811F448
adds r0, r4, #0
adds r1, r5, #0
bl ConvertEasyChatWordsToString
adds r0, r4, #0
bl ShowFieldAutoScrollMessage
_0811F438:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0811F440: .4byte 0x03005AEC
_0811F444: .4byte 0x00002BD4
_0811F448: .4byte 0x02021C7C
thumb_func_end sub_0811F3AC
thumb_func_start sub_0811F44C
sub_0811F44C: @ 0x0811F44C
push {lr}
bl Random
movs r1, #1
ands r1, r0
movs r0, #0xc
cmp r1, #0
beq _0811F45E
movs r0, #0xd
_0811F45E:
bl sub_0811F370
adds r1, r0, #0
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
ldr r0, _0811F474
bl CopyEasyChatWord
pop {r0}
bx r0
.align 2, 0
_0811F474: .4byte 0x02021C54
thumb_func_end sub_0811F44C
thumb_func_start sub_0811F478
sub_0811F478: @ 0x0811F478
lsls r0, r0, #0x18
lsrs r2, r0, #0x1b
movs r1, #0xe0
lsls r1, r1, #0x13
ands r1, r0
lsrs r1, r1, #0x18
ldr r0, _0811F498
ldr r0, [r0]
ldr r3, _0811F49C
adds r0, r0, r3
adds r0, r0, r2
ldrb r0, [r0]
asrs r0, r1
movs r1, #1
ands r0, r1
bx lr
.align 2, 0
_0811F498: .4byte 0x03005AEC
_0811F49C: .4byte 0x00002E20
thumb_func_end sub_0811F478
thumb_func_start sub_0811F4A0
sub_0811F4A0: @ 0x0811F4A0
push {lr}
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0x20
bhi _0811F4C4
lsrs r3, r0, #0x1b
movs r2, #7
ands r2, r1
ldr r0, _0811F4C8
ldr r1, [r0]
ldr r0, _0811F4CC
adds r1, r1, r0
adds r1, r1, r3
movs r0, #1
lsls r0, r2
ldrb r2, [r1]
orrs r0, r2
strb r0, [r1]
_0811F4C4:
pop {r0}
bx r0
.align 2, 0
_0811F4C8: .4byte 0x03005AEC
_0811F4CC: .4byte 0x00002E20
thumb_func_end sub_0811F4A0
thumb_func_start sub_0811F4D0
sub_0811F4D0: @ 0x0811F4D0
push {r4, r5, lr}
movs r4, #0
movs r5, #0
_0811F4D6:
adds r0, r4, #0
bl sub_0811F478
lsls r0, r0, #0x18
cmp r0, #0
beq _0811F4E8
adds r0, r5, #1
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
_0811F4E8:
adds r0, r4, #1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #0x20
bls _0811F4D6
adds r0, r5, #0
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811F4D0
thumb_func_start sub_0811F4FC
sub_0811F4FC: @ 0x0811F4FC
push {r4, r5, r6, lr}
bl sub_0811F4D0
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #0x21
bne _0811F528
b _0811F562
_0811F50C:
adds r0, r5, #0
bl sub_0811F4A0
ldr r0, _0811F524
ands r4, r0
movs r1, #0xa0
lsls r1, r1, #6
adds r0, r1, #0
orrs r4, r0
adds r0, r4, #0
b _0811F564
.align 2, 0
_0811F524: .4byte 0x000001FF
_0811F528:
bl Random
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0x21
subs r1, r1, r4
bl __modsi3
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
movs r4, #0
_0811F53E:
lsls r0, r4, #0x18
lsrs r5, r0, #0x18
adds r0, r5, #0
bl sub_0811F478
lsls r0, r0, #0x18
cmp r0, #0
bne _0811F558
cmp r6, #0
beq _0811F50C
subs r0, r6, #1
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
_0811F558:
adds r0, r4, #1
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
cmp r4, #0x20
bls _0811F53E
_0811F562:
ldr r0, _0811F56C
_0811F564:
pop {r4, r5, r6}
pop {r1}
bx r1
.align 2, 0
_0811F56C: .4byte 0x0000FFFF
thumb_func_end sub_0811F4FC
thumb_func_start sub_0811F570
sub_0811F570: @ 0x0811F570
push {r4, r5, lr}
bl sub_0811F4D0
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
cmp r5, #0
bne _0811F594
b _0811F5CA
_0811F580:
ldr r0, _0811F590
ands r4, r0
movs r1, #0xa0
lsls r1, r1, #6
adds r0, r1, #0
orrs r4, r0
adds r0, r4, #0
b _0811F5CC
.align 2, 0
_0811F590: .4byte 0x000001FF
_0811F594:
bl Random
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r1, r5, #0
bl __umodsi3
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
movs r4, #0
_0811F5A8:
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
bl sub_0811F478
lsls r0, r0, #0x18
cmp r0, #0
beq _0811F5C0
cmp r5, #0
beq _0811F580
subs r0, r5, #1
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
_0811F5C0:
adds r0, r4, #1
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
cmp r4, #0x20
bls _0811F5A8
_0811F5CA:
ldr r0, _0811F5D4
_0811F5CC:
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
_0811F5D4: .4byte 0x0000FFFF
thumb_func_end sub_0811F570
thumb_func_start sub_0811F5D8
sub_0811F5D8: @ 0x0811F5D8
push {lr}
bl IsNationalPokedexEnabled
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811F5D8
thumb_func_start sub_0811F5E8
sub_0811F5E8: @ 0x0811F5E8
push {r4, r5, r6, r7, lr}
movs r0, #0
bl EasyChat_GetNumWordsInGroup
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
cmp r4, #0
bne _0811F608
b _0811F652
_0811F5FA:
ldrh r1, [r5]
ldr r0, _0811F604
ands r0, r1
b _0811F654
.align 2, 0
_0811F604: .4byte 0x000001FF
_0811F608:
bl Random
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r1, r4, #0
bl __umodsi3
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
ldr r0, _0811F65C
ldr r5, [r0]
ldrh r7, [r0, #4]
movs r6, #0
cmp r6, r7
bhs _0811F652
_0811F626:
ldrh r0, [r5]
bl HoennToNationalOrder
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0
bl GetSetPokedexFlag
lsls r0, r0, #0x18
cmp r0, #0
beq _0811F646
cmp r4, #0
beq _0811F5FA
subs r0, r4, #1
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
_0811F646:
adds r5, #2
adds r0, r6, #1
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
cmp r6, r7
blo _0811F626
_0811F652:
ldr r0, _0811F660
_0811F654:
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_0811F65C: .4byte 0x08578D14
_0811F660: .4byte 0x0000FFFF
thumb_func_end sub_0811F5E8
thumb_func_start InitEasyChatPhrases
InitEasyChatPhrases: @ 0x0811F664
push {r4, r5, r6, r7, lr}
ldr r4, _0811F770
ldr r1, [r4]
ldr r0, _0811F774
adds r2, r1, r0
ldr r0, _0811F778
strh r0, [r2]
ldr r5, _0811F77C
adds r2, r1, r5
ldr r0, _0811F780
strh r0, [r2]
ldr r0, _0811F784
adds r2, r1, r0
ldr r0, _0811F788
strh r0, [r2]
adds r5, #4
adds r2, r1, r5
ldr r0, _0811F78C
strh r0, [r2]
ldr r0, _0811F790
adds r2, r1, r0
ldr r0, _0811F794
strh r0, [r2]
adds r5, #8
adds r2, r1, r5
ldr r0, _0811F798
strh r0, [r2]
movs r0, #0xaf
lsls r0, r0, #6
adds r2, r1, r0
ldr r0, _0811F79C
strh r0, [r2]
adds r5, #4
adds r2, r1, r5
ldr r0, _0811F7A0
strh r0, [r2]
ldr r0, _0811F7A4
adds r2, r1, r0
ldr r0, _0811F7A8
strh r0, [r2]
ldr r2, _0811F7AC
adds r0, r1, r2
ldr r3, _0811F7B0
strh r3, [r0]
adds r5, #6
adds r2, r1, r5
ldr r0, _0811F7B4
strh r0, [r2]
ldr r2, _0811F7B8
adds r0, r1, r2
strh r3, [r0]
adds r5, #4
adds r2, r1, r5
ldr r0, _0811F7BC
strh r0, [r2]
ldr r2, _0811F7C0
adds r0, r1, r2
ldr r2, _0811F7C4
strh r2, [r0]
adds r5, #4
adds r0, r1, r5
strh r2, [r0]
ldr r2, _0811F7C8
adds r0, r1, r2
strh r3, [r0]
adds r5, #4
adds r2, r1, r5
ldr r0, _0811F7CC
strh r0, [r2]
ldr r2, _0811F7D0
adds r0, r1, r2
adds r3, #5
strh r3, [r0]
adds r5, #4
adds r2, r1, r5
movs r0, #1
rsbs r0, r0, #0
strh r0, [r2]
ldr r0, _0811F7D4
adds r2, r1, r0
movs r0, #0xc6
lsls r0, r0, #3
strh r0, [r2]
adds r5, #4
adds r2, r1, r5
ldr r0, _0811F7D8
strh r0, [r2]
ldr r0, _0811F7DC
adds r1, r1, r0
strh r3, [r1]
movs r3, #0
adds r7, r4, #0
ldr r6, _0811F7E0
movs r2, #1
rsbs r2, r2, #0
adds r5, r2, #0
_0811F724:
movs r2, #0
lsls r0, r3, #3
adds r0, r0, r3
lsls r4, r0, #2
_0811F72C:
ldr r1, [r7]
lsls r0, r2, #1
adds r0, r0, r4
adds r1, r1, r6
adds r1, r1, r0
ldrh r0, [r1]
orrs r0, r5
strh r0, [r1]
adds r0, r2, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
cmp r2, #8
bls _0811F72C
adds r0, r3, #1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
cmp r3, #0xf
bls _0811F724
movs r3, #0
ldr r4, _0811F770
ldr r2, _0811F7E4
movs r1, #0
_0811F758:
ldr r0, [r4]
adds r0, r0, r2
adds r0, r0, r3
strb r1, [r0]
adds r0, r3, #1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
cmp r3, #0x3f
bls _0811F758
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0811F770: .4byte 0x03005AEC
_0811F774: .4byte 0x00002BB0
_0811F778: .4byte 0x0000020E
_0811F77C: .4byte 0x00002BB2
_0811F780: .4byte 0x00001228
_0811F784: .4byte 0x00002BB4
_0811F788: .4byte 0x0000020B
_0811F78C: .4byte 0x0000101F
_0811F790: .4byte 0x00002BBC
_0811F794: .4byte 0x00000603
_0811F798: .4byte 0x00001405
_0811F79C: .4byte 0x00000C02
_0811F7A0: .4byte 0x00000E0E
_0811F7A4: .4byte 0x00002BC4
_0811F7A8: .4byte 0x00000803
_0811F7AC: .4byte 0x00002BC6
_0811F7B0: .4byte 0x00000C01
_0811F7B4: .4byte 0x0000123C
_0811F7B8: .4byte 0x00002BCA
_0811F7BC: .4byte 0x0000FFFF
_0811F7C0: .4byte 0x00002BCE
_0811F7C4: .4byte 0x00000607
_0811F7C8: .4byte 0x00002BD2
_0811F7CC: .4byte 0x0000121B
_0811F7D0: .4byte 0x00002BD6
_0811F7D4: .4byte 0x00002BDA
_0811F7D8: .4byte 0x0000121F
_0811F7DC: .4byte 0x00002BDE
_0811F7E0: .4byte 0x00002BE0
_0811F7E4: .4byte 0x00002E20
thumb_func_end InitEasyChatPhrases
thumb_func_start sub_0811F7E8
sub_0811F7E8: @ 0x0811F7E8
push {r4, lr}
ldr r4, _0811F804
ldr r0, _0811F808
bl Alloc
str r0, [r4]
cmp r0, #0
beq _0811F80C
bl sub_0811F830
bl sub_0811F9C8
movs r0, #1
b _0811F80E
.align 2, 0
_0811F804: .4byte 0x02039DEC
_0811F808: .4byte 0x00002CE8
_0811F80C:
movs r0, #0
_0811F80E:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_0811F7E8
thumb_func_start sub_0811F814
sub_0811F814: @ 0x0811F814
push {r4, lr}
ldr r4, _0811F82C
ldr r0, [r4]
cmp r0, #0
beq _0811F826
bl Free
movs r0, #0
str r0, [r4]
_0811F826:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0811F82C: .4byte 0x02039DEC
thumb_func_end sub_0811F814
thumb_func_start sub_0811F830
sub_0811F830: @ 0x0811F830
push {r4, r5, lr}
ldr r4, _0811F8FC
ldr r0, [r4]
movs r5, #0
strh r5, [r0]
movs r0, #0
bl GetNationalPokedexCount
lsls r0, r0, #0x10
cmp r0, #0
beq _0811F858
ldr r0, [r4]
ldrh r1, [r0]
adds r2, r1, #1
strh r2, [r0]
lsls r1, r1, #0x10
lsrs r1, r1, #0xf
adds r0, #2
adds r0, r0, r1
strh r5, [r0]
_0811F858:
movs r3, #1
_0811F85A:
ldr r0, [r4]
ldrh r2, [r0]
adds r1, r2, #1
strh r1, [r0]
lsls r2, r2, #0x10
lsrs r2, r2, #0xf
adds r0, #2
adds r0, r0, r2
strh r3, [r0]
adds r3, #1
cmp r3, #0x10
ble _0811F85A
ldr r0, _0811F900
bl FlagGet
lsls r0, r0, #0x18
cmp r0, #0
beq _0811F8B4
ldr r0, _0811F8FC
ldr r2, [r0]
ldrh r0, [r2]
adds r1, r0, #1
strh r1, [r2]
lsls r0, r0, #0x10
lsrs r0, r0, #0xf
adds r3, r2, #2
adds r0, r3, r0
movs r1, #0x11
strh r1, [r0]
ldrh r0, [r2]
adds r1, r0, #1
strh r1, [r2]
lsls r0, r0, #0x10
lsrs r0, r0, #0xf
adds r0, r3, r0
movs r1, #0x12
strh r1, [r0]
ldrh r0, [r2]
adds r1, r0, #1
strh r1, [r2]
lsls r0, r0, #0x10
lsrs r0, r0, #0xf
adds r3, r3, r0
movs r0, #0x13
strh r0, [r3]
_0811F8B4:
ldr r0, _0811F904
bl FlagGet
lsls r0, r0, #0x18
cmp r0, #0
beq _0811F8D6
ldr r0, _0811F8FC
ldr r0, [r0]
ldrh r1, [r0]
adds r2, r1, #1
strh r2, [r0]
lsls r1, r1, #0x10
lsrs r1, r1, #0xf
adds r0, #2
adds r0, r0, r1
movs r1, #0x14
strh r1, [r0]
_0811F8D6:
bl IsNationalPokedexEnabled
cmp r0, #0
beq _0811F8F4
ldr r0, _0811F8FC
ldr r0, [r0]
ldrh r1, [r0]
adds r2, r1, #1
strh r2, [r0]
lsls r1, r1, #0x10
lsrs r1, r1, #0xf
adds r0, #2
adds r0, r0, r1
movs r1, #0x15
strh r1, [r0]
_0811F8F4:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0811F8FC: .4byte 0x02039DEC
_0811F900: .4byte 0x00000864
_0811F904: .4byte 0x00000866
thumb_func_end sub_0811F830
thumb_func_start sub_0811F908
sub_0811F908: @ 0x0811F908
ldr r0, _0811F910
ldr r0, [r0]
ldrb r0, [r0]
bx lr
.align 2, 0
_0811F910: .4byte 0x02039DEC
thumb_func_end sub_0811F908
thumb_func_start sub_0811F914
sub_0811F914: @ 0x0811F914
push {lr}
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
ldr r0, _0811F930
ldr r1, [r0]
ldrh r0, [r1]
cmp r2, r0
bhs _0811F934
lsls r0, r2, #1
adds r1, #2
adds r1, r1, r0
ldrb r0, [r1]
b _0811F936
.align 2, 0
_0811F930: .4byte 0x02039DEC
_0811F934:
movs r0, #0x16
_0811F936:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0811F914
thumb_func_start unref_sub_811F3E0
unref_sub_811F3E0: @ 0x0811F93C
push {r4, r5, lr}
adds r4, r0, #0
lsls r1, r1, #0x18
lsls r2, r2, #0x10
lsrs r5, r2, #0x10
ldr r0, _0811F97C
lsrs r1, r1, #0x16
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl StringCopy
adds r1, r0, #0
subs r4, r1, r4
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
cmp r0, r5
bhs _0811F970
movs r2, #0
_0811F962:
strb r2, [r1]
adds r1, #1
adds r0, #1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, r5
blo _0811F962
_0811F970:
movs r0, #0xff
strb r0, [r1]
adds r0, r1, #0
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
_0811F97C: .4byte 0x08579ED8
thumb_func_end unref_sub_811F3E0
thumb_func_start GetEasyChatWordGroupName
GetEasyChatWordGroupName: @ 0x0811F980
lsls r0, r0, #0x18
ldr r1, _0811F98C
lsrs r0, r0, #0x16
adds r0, r0, r1
ldr r0, [r0]
bx lr
.align 2, 0
_0811F98C: .4byte 0x08579ED8
thumb_func_end GetEasyChatWordGroupName
thumb_func_start CopyEasyChatWordPadded
CopyEasyChatWordPadded: @ 0x0811F990
push {r4, r5, lr}
adds r4, r0, #0
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
lsls r2, r2, #0x10
lsrs r5, r2, #0x10
bl CopyEasyChatWord
adds r1, r0, #0
subs r4, r1, r4
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
cmp r0, r5
bhs _0811F9BC
movs r2, #0
_0811F9AE:
strb r2, [r1]
adds r1, #1
adds r0, #1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, r5
blo _0811F9AE
_0811F9BC:
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_0811F9C8
sub_0811F9C8: @ 0x0811F9C8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x10
movs r3, #0
_0811F9D6:
ldr r2, _0811FA18
lsls r1, r3, #3
adds r0, r2, #4
adds r0, r1, r0
ldr r0, [r0]
str r0, [sp]
adds r1, r1, r2
ldr r7, [r1]
ldr r0, _0811FA1C
ldr r1, [r0]
lsls r2, r3, #1
adds r1, #0x2e
adds r1, r1, r2
movs r0, #0
strh r0, [r1]
mov sl, r0
movs r1, #0
str r2, [sp, #4]
adds r0, r3, #1
str r0, [sp, #8]
ldr r2, [sp]
cmp r1, r2
bge _0811FA88
_0811FA04:
ldrh r0, [r7]
ldr r2, _0811FA20
cmp r0, r2
bne _0811FA54
adds r7, #2
ldrh r4, [r7]
adds r7, #2
adds r0, r1, #1
adds r1, r0, r4
b _0811FA56
.align 2, 0
_0811FA18: .4byte 0x08579D04
_0811FA1C: .4byte 0x02039DEC
_0811FA20: .4byte 0x0000FFFF
_0811FA24:
ldr r0, _0811FA50
ldr r2, [r0]
mov r0, sl
lsls r1, r0, #1
lsls r0, r3, #4
subs r0, r0, r3
lsls r0, r0, #4
adds r1, r1, r0
adds r0, r2, #0
adds r0, #0x88
adds r0, r0, r1
ldrh r1, [r5]
strh r1, [r0]
movs r0, #1
add sl, r0
adds r2, #0x2e
ldr r0, [sp, #4]
adds r2, r2, r0
ldrh r0, [r2]
adds r0, #1
strh r0, [r2]
b _0811FA7E
.align 2, 0
_0811FA50: .4byte 0x02039DEC
_0811FA54:
movs r4, #1
_0811FA56:
movs r6, #0
adds r1, #1
mov sb, r1
lsls r2, r4, #1
mov r8, r2
cmp r6, r4
bge _0811FA7E
adds r5, r7, #0
_0811FA66:
ldrh r0, [r5]
str r3, [sp, #0xc]
bl sub_0811FDB4
lsls r0, r0, #0x18
ldr r3, [sp, #0xc]
cmp r0, #0
bne _0811FA24
adds r5, #2
adds r6, #1
cmp r6, r4
blt _0811FA66
_0811FA7E:
add r7, r8
mov r1, sb
ldr r0, [sp]
cmp r1, r0
blt _0811FA04
_0811FA88:
ldr r3, [sp, #8]
cmp r3, #0x2c
ble _0811F9D6
add sp, #0x10
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0811F9C8
thumb_func_start sub_0811FAA0
sub_0811FAA0: @ 0x0811FAA0
push {lr}
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
cmp r0, #0
bne _0811FAB2
adds r0, r1, #0
bl sub_0811FB1C
b _0811FAB8
_0811FAB2:
adds r0, r1, #0
bl sub_0811FC10
_0811FAB8:
ldr r1, _0811FAC8
ldr r1, [r1]
ldr r2, _0811FACC
adds r1, r1, r2
strh r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0811FAC8: .4byte 0x02039DEC
_0811FACC: .4byte 0x00002CE4
thumb_func_end sub_0811FAA0
thumb_func_start sub_0811FAD0
sub_0811FAD0: @ 0x0811FAD0
push {lr}
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
ldr r0, _0811FAF0
ldr r1, [r0]
ldr r3, _0811FAF4
adds r0, r1, r3
ldrh r0, [r0]
cmp r2, r0
bhs _0811FAFC
lsls r0, r2, #1
ldr r2, _0811FAF8
adds r1, r1, r2
adds r1, r1, r0
ldrh r0, [r1]
b _0811FAFE
.align 2, 0
_0811FAF0: .4byte 0x02039DEC
_0811FAF4: .4byte 0x00002CE4
_0811FAF8: .4byte 0x00002AE4
_0811FAFC:
ldr r0, _0811FB04
_0811FAFE:
pop {r1}
bx r1
.align 2, 0
_0811FB04: .4byte 0x0000FFFF
thumb_func_end sub_0811FAD0
thumb_func_start sub_0811FB08
sub_0811FB08: @ 0x0811FB08
ldr r0, _0811FB14
ldr r0, [r0]
ldr r1, _0811FB18
adds r0, r0, r1
ldrh r0, [r0]
bx lr
.align 2, 0
_0811FB14: .4byte 0x02039DEC
_0811FB18: .4byte 0x00002CE4
thumb_func_end sub_0811FB08
thumb_func_start sub_0811FB1C
sub_0811FB1C: @ 0x0811FB1C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
ldr r1, _0811FB94
lsls r0, r2, #3
adds r0, r0, r1
ldrh r3, [r0, #4]
mov r8, r3
cmp r2, #0
beq _0811FB44
cmp r2, #0x15
beq _0811FB44
cmp r2, #0x12
beq _0811FB44
cmp r2, #0x13
bne _0811FBA4
_0811FB44:
lsls r0, r2, #3
adds r0, r0, r1
ldr r1, [r0]
movs r7, #0
movs r5, #0
cmp r5, r8
bhs _0811FBF0
movs r0, #0x7f
ands r0, r2
lsls r0, r0, #9
mov sb, r0
adds r4, r1, #0
lsls r6, r2, #0x18
_0811FB5E:
ldrh r0, [r4]
lsrs r1, r6, #0x18
bl sub_0811FCB8
lsls r0, r0, #0x18
cmp r0, #0
beq _0811FB88
ldr r0, _0811FB98
ldr r2, [r0]
lsls r0, r5, #1
ldr r1, _0811FB9C
adds r2, r2, r1
adds r2, r2, r0
ldrh r0, [r4]
ldr r3, _0811FBA0
adds r1, r3, #0
ands r0, r1
mov r1, sb
orrs r0, r1
strh r0, [r2]
adds r5, #1
_0811FB88:
adds r4, #2
adds r7, #1
cmp r7, r8
blo _0811FB5E
b _0811FBF0
.align 2, 0
_0811FB94: .4byte 0x08578D14
_0811FB98: .4byte 0x02039DEC
_0811FB9C: .4byte 0x00002AE4
_0811FBA0: .4byte 0x000001FF
_0811FBA4:
ldr r1, [r0]
movs r7, #0
movs r5, #0
cmp r5, r8
bhs _0811FBF0
movs r0, #0x7f
ands r0, r2
lsls r0, r0, #9
mov sl, r0
adds r6, r1, #0
lsls r2, r2, #0x18
mov sb, r2
_0811FBBC:
ldrh r4, [r6, #4]
adds r0, r4, #0
mov r2, sb
lsrs r1, r2, #0x18
bl sub_0811FCB8
lsls r0, r0, #0x18
cmp r0, #0
beq _0811FBE8
ldr r0, _0811FC04
ldr r1, [r0]
lsls r0, r5, #1
ldr r3, _0811FC08
adds r1, r1, r3
adds r1, r1, r0
ldr r2, _0811FC0C
adds r0, r2, #0
ands r4, r0
mov r3, sl
orrs r4, r3
strh r4, [r1]
adds r5, #1
_0811FBE8:
adds r6, #0xc
adds r7, #1
cmp r7, r8
blo _0811FBBC
_0811FBF0:
lsls r0, r5, #0x10
lsrs r0, r0, #0x10
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_0811FC04: .4byte 0x02039DEC
_0811FC08: .4byte 0x00002AE4
_0811FC0C: .4byte 0x000001FF
thumb_func_end sub_0811FB1C
thumb_func_start sub_0811FC10
sub_0811FC10: @ 0x0811FC10
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
movs r4, #0
movs r6, #0
ldr r3, _0811FC78
ldr r0, [r3]
lsls r5, r1, #1
adds r0, #0x2e
adds r0, r0, r5
ldrh r0, [r0]
cmp r6, r0
bhs _0811FC6C
mov r8, r3
lsls r0, r1, #4
subs r0, r0, r1
lsls r7, r0, #4
ldr r0, _0811FC7C
mov ip, r0
_0811FC3A:
mov r0, r8
ldr r3, [r0]
adds r1, r6, #0
adds r0, r1, #1
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
lsls r1, r1, #1
mov r0, ip
adds r2, r3, r0
adds r2, r2, r1
lsls r1, r4, #1
adds r1, r1, r7
adds r0, r3, #0
adds r0, #0x88
adds r0, r0, r1
ldrh r0, [r0]
strh r0, [r2]
adds r0, r4, #1
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
adds r3, #0x2e
adds r3, r3, r5
ldrh r3, [r3]
cmp r4, r3
blo _0811FC3A
_0811FC6C:
adds r0, r6, #0
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_0811FC78: .4byte 0x02039DEC
_0811FC7C: .4byte 0x00002AE4
thumb_func_end sub_0811FC10
thumb_func_start sub_0811FC80
sub_0811FC80: @ 0x0811FC80
push {r4, lr}
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
movs r2, #0
ldr r0, _0811FCA4
ldr r0, [r0]
ldrh r1, [r0]
cmp r2, r1
bge _0811FCB0
adds r4, r3, #0
adds r3, r1, #0
adds r1, r0, #2
_0811FC98:
ldrh r0, [r1]
cmp r0, r4
bne _0811FCA8
movs r0, #1
b _0811FCB2
.align 2, 0
_0811FCA4: .4byte 0x02039DEC
_0811FCA8:
adds r1, #2
adds r2, #1
cmp r2, r3
blt _0811FC98
_0811FCB0:
movs r0, #0
_0811FCB2:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_0811FC80
thumb_func_start sub_0811FCB8
sub_0811FCB8: @ 0x0811FCB8
push {r4, lr}
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
lsls r1, r1, #0x18
lsrs r2, r1, #0x18
cmp r2, #0x15
bhi _0811FD6E
lsls r0, r2, #2
ldr r1, _0811FCD0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0811FCD0: .4byte 0x0811FCD4
_0811FCD4: @ jump table
.4byte _0811FD2C @ case 0
.4byte _0811FD6E @ case 1
.4byte _0811FD6E @ case 2
.4byte _0811FD6E @ case 3
.4byte _0811FD6E @ case 4
.4byte _0811FD6E @ case 5
.4byte _0811FD6E @ case 6
.4byte _0811FD6E @ case 7
.4byte _0811FD6E @ case 8
.4byte _0811FD6E @ case 9
.4byte _0811FD6E @ case 10
.4byte _0811FD6E @ case 11
.4byte _0811FD6E @ case 12
.4byte _0811FD6E @ case 13
.4byte _0811FD6E @ case 14
.4byte _0811FD6E @ case 15
.4byte _0811FD6E @ case 16
.4byte _0811FD6E @ case 17
.4byte _0811FD5C @ case 18
.4byte _0811FD5C @ case 19
.4byte _0811FD60 @ case 20
.4byte _0811FD42 @ case 21
_0811FD2C:
adds r0, r4, #0
bl HoennToNationalOrder
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0
bl GetSetPokedexFlag
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
b _0811FD80
_0811FD42:
adds r0, r4, #0
bl GetFooterOptionXOffset
cmp r0, #0
beq _0811FD5C
adds r0, r4, #0
bl HoennToNationalOrder
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0
bl GetSetPokedexFlag
_0811FD5C:
movs r0, #1
b _0811FD80
_0811FD60:
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
bl sub_0811F478
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
b _0811FD80
_0811FD6E:
ldr r1, _0811FD88
lsls r0, r2, #3
adds r0, r0, r1
ldr r1, [r0]
lsls r0, r4, #1
adds r0, r0, r4
lsls r0, r0, #2
adds r0, r0, r1
ldrb r0, [r0, #8]
_0811FD80:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0811FD88: .4byte 0x08578D14
thumb_func_end sub_0811FCB8
thumb_func_start GetFooterOptionXOffset
GetFooterOptionXOffset: @ 0x0811FD8C
push {lr}
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
movs r2, #0
ldr r1, _0811FDA0
_0811FD96:
ldrh r0, [r1]
cmp r0, r3
bne _0811FDA4
movs r0, #1
b _0811FDAE
.align 2, 0
_0811FDA0: .4byte 0x08579F34
_0811FDA4:
adds r1, #2
adds r2, #1
cmp r2, #0
beq _0811FD96
movs r0, #0
_0811FDAE:
pop {r1}
bx r1
.align 2, 0
thumb_func_end GetFooterOptionXOffset
thumb_func_start sub_0811FDB4
sub_0811FDB4: @ 0x0811FDB4
push {r4, r5, lr}
lsls r0, r0, #0x10
lsrs r5, r0, #0x19
lsls r0, r0, #7
lsrs r4, r0, #0x17
adds r0, r5, #0
bl sub_0811FC80
lsls r0, r0, #0x18
cmp r0, #0
beq _0811FDD8
adds r0, r4, #0
adds r1, r5, #0
bl sub_0811FCB8
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
b _0811FDDA
_0811FDD8:
movs r0, #0
_0811FDDA:
pop {r4, r5}
pop {r1}
bx r1
thumb_func_end sub_0811FDB4
thumb_func_start InitializeEasyChatWordArray
InitializeEasyChatWordArray: @ 0x0811FDE0
push {lr}
adds r2, r0, #0
lsls r1, r1, #0x10
ldr r0, _0811FE08
adds r1, r1, r0
lsrs r0, r1, #0x10
ldr r1, _0811FE0C
cmp r0, r1
beq _0811FE02
adds r3, r1, #0
_0811FDF4:
strh r3, [r2]
adds r2, #2
subs r0, #1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, r1
bne _0811FDF4
_0811FE02:
pop {r0}
bx r0
.align 2, 0
_0811FE08: .4byte 0xFFFF0000
_0811FE0C: .4byte 0x0000FFFF
thumb_func_end InitializeEasyChatWordArray
thumb_func_start sub_0811FE10
sub_0811FE10: @ 0x0811FE10
push {lr}
bl sub_0801AB30
ldr r1, _0811FE28
adds r2, r1, #0
adds r1, r0, #6
_0811FE1C:
strh r2, [r1]
subs r1, #2
cmp r1, r0
bge _0811FE1C
pop {r0}
bx r0
.align 2, 0
_0811FE28: .4byte 0x0000FFFF
thumb_func_end sub_0811FE10
thumb_func_start unref_sub_811BBF4
unref_sub_811BBF4: @ 0x0811FE2C
ldr r1, _0811FE34
str r0, [r1]
bx lr
.align 2, 0
_0811FE34: .4byte 0x02039DF0
thumb_func_end unref_sub_811BBF4