mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-06 13:47:12 -05:00
1291 lines
21 KiB
ArmAsm
1291 lines
21 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_813C004
|
|
sub_813C004: @ 813C004
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
cmp r6, 0
|
|
beq _0813C01A
|
|
cmp r6, 0x1
|
|
beq _0813C040
|
|
b _0813C06A
|
|
_0813C01A:
|
|
ldr r5, _0813C03C @ =0x000001ff
|
|
movs r4, 0x1
|
|
str r4, [sp]
|
|
str r6, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
movs r1, 0x1C
|
|
movs r2, 0x3
|
|
movs r3, 0x1
|
|
bl sub_813BC78
|
|
str r4, [sp]
|
|
str r6, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
movs r1, 0x1C
|
|
movs r2, 0x12
|
|
b _0813C050
|
|
.align 2, 0
|
|
_0813C03C: .4byte 0x000001ff
|
|
_0813C040:
|
|
cmp r2, 0
|
|
bne _0813C058
|
|
movs r0, 0xFF
|
|
lsls r0, 1
|
|
str r6, [sp]
|
|
str r2, [sp, 0x4]
|
|
movs r1, 0x1C
|
|
movs r2, 0x3
|
|
_0813C050:
|
|
movs r3, 0x1
|
|
bl sub_813BC78
|
|
b _0813C06A
|
|
_0813C058:
|
|
ldr r0, _0813C074 @ =0x000001fd
|
|
str r6, [sp]
|
|
movs r1, 0
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0x1C
|
|
movs r2, 0x12
|
|
movs r3, 0x1
|
|
bl sub_813BC78
|
|
_0813C06A:
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C074: .4byte 0x000001fd
|
|
thumb_func_end sub_813C004
|
|
|
|
thumb_func_start HelpSystemRenderText
|
|
HelpSystemRenderText: @ 813C078
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x38
|
|
str r1, [sp, 0x28]
|
|
mov r9, r2
|
|
ldr r1, [sp, 0x58]
|
|
ldr r2, [sp, 0x5C]
|
|
ldr r4, [sp, 0x60]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x24]
|
|
lsls r3, 24
|
|
lsrs r7, r3, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r10, r1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
str r2, [sp, 0x2C]
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
str r4, [sp, 0x30]
|
|
str r7, [sp, 0x34]
|
|
_0813C0AC:
|
|
mov r0, r9
|
|
ldrb r1, [r0]
|
|
movs r2, 0x1
|
|
add r9, r2
|
|
adds r0, r1, 0
|
|
subs r0, 0xF8
|
|
cmp r0, 0x7
|
|
bls _0813C0BE
|
|
b _0813C358
|
|
_0813C0BE:
|
|
lsls r0, 2
|
|
ldr r1, _0813C0C8 @ =_0813C0CC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0813C0C8: .4byte _0813C0CC
|
|
.align 2, 0
|
|
_0813C0CC:
|
|
.4byte _0813C2D4
|
|
.4byte _0813C348
|
|
.4byte _0813C1E4
|
|
.4byte _0813C1E4
|
|
.4byte _0813C200
|
|
.4byte _0813C0EC
|
|
.4byte _0813C1E4
|
|
.4byte _0813C39C
|
|
_0813C0EC:
|
|
mov r0, r9
|
|
ldrb r1, [r0]
|
|
movs r2, 0x1
|
|
add r9, r2
|
|
cmp r1, 0x1
|
|
bne _0813C154
|
|
movs r4, 0
|
|
ldr r0, _0813C14C @ =gSaveBlock2Ptr
|
|
ldr r1, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r1, 0xFF
|
|
beq _0813C0AC
|
|
ldr r5, _0813C150 @ =gGlyphInfo + 0x80
|
|
_0813C106:
|
|
ldr r0, [r0]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
ldr r0, [sp, 0x28]
|
|
str r0, [sp]
|
|
str r7, [sp, 0x4]
|
|
mov r2, r10
|
|
str r2, [sp, 0x8]
|
|
ldr r0, [sp, 0x2C]
|
|
str r0, [sp, 0xC]
|
|
ldr r2, [sp, 0x30]
|
|
str r2, [sp, 0x10]
|
|
ldr r0, [sp, 0x24]
|
|
add r2, sp, 0x14
|
|
add r3, sp, 0x1C
|
|
bl sub_813C3AC
|
|
ldr r0, [sp, 0x24]
|
|
ldrb r0, [r5]
|
|
adds r0, r7, r0
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x9
|
|
bhi _0813C0AC
|
|
ldr r0, _0813C14C @ =gSaveBlock2Ptr
|
|
ldr r1, [r0]
|
|
adds r1, r4
|
|
ldrb r1, [r1]
|
|
cmp r1, 0xFF
|
|
bne _0813C106
|
|
b _0813C0AC
|
|
.align 2, 0
|
|
_0813C14C: .4byte gSaveBlock2Ptr
|
|
_0813C150: .4byte gGlyphInfo + 0x80
|
|
_0813C154:
|
|
cmp r1, 0x2
|
|
bne _0813C0AC
|
|
movs r4, 0
|
|
ldr r5, _0813C160 @ =gGlyphInfo + 0x80
|
|
b _0813C1BC
|
|
.align 2, 0
|
|
_0813C160: .4byte gGlyphInfo + 0x80
|
|
_0813C164:
|
|
ldrb r1, [r1]
|
|
ldr r2, [sp, 0x28]
|
|
str r2, [sp]
|
|
str r7, [sp, 0x4]
|
|
mov r0, r10
|
|
str r0, [sp, 0x8]
|
|
ldr r2, [sp, 0x2C]
|
|
str r2, [sp, 0xC]
|
|
ldr r0, [sp, 0x30]
|
|
str r0, [sp, 0x10]
|
|
ldr r0, [sp, 0x24]
|
|
add r2, sp, 0x14
|
|
add r3, sp, 0x1C
|
|
bl sub_813C3AC
|
|
b _0813C1AC
|
|
_0813C184:
|
|
ldr r0, _0813C1D8 @ =gUnknown_841CB41
|
|
adds r1, r4, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
beq _0813C0AC
|
|
adds r1, r0, 0
|
|
ldr r2, [sp, 0x28]
|
|
str r2, [sp]
|
|
str r7, [sp, 0x4]
|
|
mov r0, r10
|
|
str r0, [sp, 0x8]
|
|
ldr r2, [sp, 0x2C]
|
|
str r2, [sp, 0xC]
|
|
ldr r0, [sp, 0x30]
|
|
str r0, [sp, 0x10]
|
|
ldr r0, [sp, 0x24]
|
|
add r2, sp, 0x14
|
|
add r3, sp, 0x1C
|
|
bl sub_813C3AC
|
|
_0813C1AC:
|
|
ldr r1, [sp, 0x24]
|
|
ldrb r0, [r5]
|
|
adds r0, r7, r0
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_0813C1BC:
|
|
ldr r0, _0813C1DC @ =0x00000834
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0813C184
|
|
ldr r0, _0813C1E0 @ =gUnknown_841CB3C
|
|
adds r1, r4, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
bne _0813C164
|
|
b _0813C0AC
|
|
.align 2, 0
|
|
_0813C1D8: .4byte gUnknown_841CB41
|
|
_0813C1DC: .4byte 0x00000834
|
|
_0813C1E0: .4byte gUnknown_841CB3C
|
|
_0813C1E4:
|
|
ldr r7, [sp, 0x34]
|
|
ldr r1, _0813C1FC @ =gGlyphInfo
|
|
adds r1, 0x81
|
|
mov r0, r10
|
|
adds r0, 0x1
|
|
ldrb r1, [r1]
|
|
adds r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
b _0813C0AC
|
|
.align 2, 0
|
|
_0813C1FC: .4byte gGlyphInfo
|
|
_0813C200:
|
|
mov r2, r9
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
add r9, r0
|
|
subs r0, r1, 0x1
|
|
cmp r0, 0x15
|
|
bls _0813C210
|
|
b _0813C0AC
|
|
_0813C210:
|
|
lsls r0, 2
|
|
ldr r1, _0813C21C @ =_0813C220
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0813C21C: .4byte _0813C220
|
|
.align 2, 0
|
|
_0813C220:
|
|
.4byte _0813C2C8
|
|
.4byte _0813C2C8
|
|
.4byte _0813C2C8
|
|
.4byte _0813C278
|
|
.4byte _0813C2C8
|
|
.4byte _0813C2C8
|
|
.4byte _0813C0AC
|
|
.4byte _0813C2C8
|
|
.4byte _0813C0AC
|
|
.4byte _0813C0AC
|
|
.4byte _0813C27C
|
|
.4byte _0813C2C8
|
|
.4byte _0813C2C8
|
|
.4byte _0813C2C8
|
|
.4byte _0813C0AC
|
|
.4byte _0813C27C
|
|
.4byte _0813C2CE
|
|
.4byte _0813C2CE
|
|
.4byte _0813C282
|
|
.4byte _0813C2CE
|
|
.4byte _0813C0AC
|
|
.4byte _0813C0AC
|
|
_0813C278:
|
|
movs r1, 0x1
|
|
add r9, r1
|
|
_0813C27C:
|
|
movs r2, 0x1
|
|
add r9, r2
|
|
b _0813C2C8
|
|
_0813C282:
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
ldr r1, [sp, 0x34]
|
|
adds r0, r1
|
|
subs r6, r0, r7
|
|
cmp r6, 0
|
|
ble _0813C2C8
|
|
ldr r2, [sp, 0x28]
|
|
str r2, [sp, 0x1C]
|
|
ldr r1, [sp, 0x2C]
|
|
lsls r0, r1, 3
|
|
add r4, sp, 0x1C
|
|
movs r5, 0
|
|
strh r0, [r4, 0x4]
|
|
ldr r2, [sp, 0x30]
|
|
lsls r0, r2, 3
|
|
strh r0, [r4, 0x6]
|
|
ldr r0, [sp, 0x24]
|
|
movs r1, 0x1
|
|
bl GetFontAttribute
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r3, r6, 16
|
|
lsrs r3, 16
|
|
str r0, [sp]
|
|
str r5, [sp, 0x4]
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
mov r2, r10
|
|
bl FillBitmapRect4Bit
|
|
adds r0, r7, r6
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
_0813C2C8:
|
|
movs r0, 0x1
|
|
add r9, r0
|
|
b _0813C0AC
|
|
_0813C2CE:
|
|
movs r1, 0x1
|
|
add r9, r1
|
|
b _0813C0AC
|
|
_0813C2D4:
|
|
mov r2, r9
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
add r9, r0
|
|
adds r6, r1, 0
|
|
adds r0, r6, 0
|
|
bl GetKeypadIconTileOffset
|
|
lsls r0, 24
|
|
lsrs r0, 19
|
|
ldr r1, _0813C344 @ =gKeypadIconTiles
|
|
adds r0, r1
|
|
str r0, [sp, 0x14]
|
|
add r1, sp, 0x14
|
|
movs r2, 0
|
|
mov r8, r2
|
|
movs r0, 0x80
|
|
strh r0, [r1, 0x4]
|
|
strh r0, [r1, 0x6]
|
|
ldr r0, [sp, 0x28]
|
|
str r0, [sp, 0x1C]
|
|
ldr r1, [sp, 0x2C]
|
|
lsls r0, r1, 3
|
|
add r5, sp, 0x1C
|
|
strh r0, [r5, 0x4]
|
|
ldr r2, [sp, 0x30]
|
|
lsls r0, r2, 3
|
|
strh r0, [r5, 0x6]
|
|
adds r0, r6, 0
|
|
bl GetKeypadIconWidth
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r6, 0
|
|
bl GetKeypadIconHeight
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r7, [sp]
|
|
mov r1, r10
|
|
str r1, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
str r0, [sp, 0xC]
|
|
mov r2, r8
|
|
str r2, [sp, 0x10]
|
|
add r0, sp, 0x14
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl BlitBitmapRect4Bit
|
|
adds r0, r6, 0
|
|
bl GetKeypadIconWidth
|
|
b _0813C38E
|
|
.align 2, 0
|
|
_0813C344: .4byte gKeypadIconTiles
|
|
_0813C348:
|
|
mov r0, r9
|
|
ldrb r1, [r0]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r2, 0
|
|
orrs r1, r0
|
|
movs r0, 0x1
|
|
add r9, r0
|
|
_0813C358:
|
|
cmp r1, 0
|
|
bne _0813C36A
|
|
ldr r1, [sp, 0x24]
|
|
cmp r1, 0
|
|
bne _0813C366
|
|
adds r0, r7, 0x5
|
|
b _0813C390
|
|
_0813C366:
|
|
adds r0, r7, 0x4
|
|
b _0813C390
|
|
_0813C36A:
|
|
add r3, sp, 0x1C
|
|
ldr r2, [sp, 0x28]
|
|
str r2, [sp]
|
|
str r7, [sp, 0x4]
|
|
mov r0, r10
|
|
str r0, [sp, 0x8]
|
|
ldr r2, [sp, 0x2C]
|
|
str r2, [sp, 0xC]
|
|
ldr r0, [sp, 0x30]
|
|
str r0, [sp, 0x10]
|
|
ldr r0, [sp, 0x24]
|
|
add r2, sp, 0x14
|
|
bl sub_813C3AC
|
|
ldr r1, [sp, 0x24]
|
|
ldr r0, _0813C398 @ =gGlyphInfo
|
|
adds r0, 0x80
|
|
ldrb r0, [r0]
|
|
_0813C38E:
|
|
adds r0, r7, r0
|
|
_0813C390:
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
b _0813C0AC
|
|
.align 2, 0
|
|
_0813C398: .4byte gGlyphInfo
|
|
_0813C39C:
|
|
add sp, 0x38
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end HelpSystemRenderText
|
|
|
|
thumb_func_start sub_813C3AC
|
|
sub_813C3AC: @ 813C3AC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
adds r7, r2, 0
|
|
mov r8, r3
|
|
ldr r2, [sp, 0x38]
|
|
ldr r3, [sp, 0x3C]
|
|
ldr r4, [sp, 0x40]
|
|
ldr r5, [sp, 0x44]
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 16
|
|
lsrs r0, r1, 16
|
|
adds r1, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r10, r2
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r9, r3
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
cmp r6, 0
|
|
bne _0813C3EE
|
|
movs r1, 0
|
|
bl DecompressGlyphFont0
|
|
b _0813C402
|
|
_0813C3EE:
|
|
cmp r6, 0x5
|
|
bne _0813C3FA
|
|
movs r1, 0
|
|
bl DecompressGlyphFont5
|
|
b _0813C402
|
|
_0813C3FA:
|
|
adds r0, r1, 0
|
|
movs r1, 0
|
|
bl DecompressGlyphFont2
|
|
_0813C402:
|
|
ldr r1, _0813C450 @ =gGlyphInfo
|
|
str r1, [r7]
|
|
movs r2, 0
|
|
movs r0, 0x10
|
|
strh r0, [r7, 0x4]
|
|
strh r0, [r7, 0x6]
|
|
ldr r0, [sp, 0x34]
|
|
mov r3, r8
|
|
str r0, [r3]
|
|
lsls r0, r4, 3
|
|
strh r0, [r3, 0x4]
|
|
lsls r0, r5, 3
|
|
strh r0, [r3, 0x6]
|
|
mov r0, r10
|
|
str r0, [sp]
|
|
mov r3, r9
|
|
str r3, [sp, 0x4]
|
|
adds r0, r1, 0
|
|
adds r0, 0x80
|
|
ldrb r0, [r0]
|
|
str r0, [sp, 0x8]
|
|
adds r1, 0x81
|
|
ldrb r0, [r1]
|
|
str r0, [sp, 0xC]
|
|
str r2, [sp, 0x10]
|
|
adds r0, r7, 0
|
|
mov r1, r8
|
|
movs r3, 0
|
|
bl BlitBitmapRect4Bit
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C450: .4byte gGlyphInfo
|
|
thumb_func_end sub_813C3AC
|
|
|
|
thumb_func_start sub_813C454
|
|
sub_813C454: @ 813C454
|
|
push {r4,lr}
|
|
sub sp, 0xC
|
|
adds r4, r0, 0
|
|
movs r0, 0x1
|
|
movs r1, 0xF
|
|
movs r2, 0x2
|
|
bl GenerateFontHalfRowLookupTable
|
|
ldr r1, _0813C484 @ =gDecompressionBuffer + 0x3D00
|
|
movs r2, 0x2
|
|
str r2, [sp]
|
|
movs r0, 0x7
|
|
str r0, [sp, 0x4]
|
|
str r2, [sp, 0x8]
|
|
movs r0, 0x5
|
|
adds r2, r4, 0
|
|
movs r3, 0x6
|
|
bl HelpSystemRenderText
|
|
add sp, 0xC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C484: .4byte gDecompressionBuffer + 0x3D00
|
|
thumb_func_end sub_813C454
|
|
|
|
thumb_func_start sub_813C488
|
|
sub_813C488: @ 813C488
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
adds r5, r0, 0
|
|
movs r0, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl GetStringWidth
|
|
movs r4, 0x7C
|
|
subs r4, r0
|
|
movs r0, 0x1
|
|
movs r1, 0xF
|
|
movs r2, 0x2
|
|
bl GenerateFontHalfRowLookupTable
|
|
ldr r1, _0813C4C8 @ =gDecompressionBuffer + 0x3400
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r2, 0x2
|
|
str r2, [sp]
|
|
movs r0, 0x10
|
|
str r0, [sp, 0x4]
|
|
str r2, [sp, 0x8]
|
|
movs r0, 0
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl HelpSystemRenderText
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C4C8: .4byte gDecompressionBuffer + 0x3400
|
|
thumb_func_end sub_813C488
|
|
|
|
thumb_func_start sub_813C4CC
|
|
sub_813C4CC: @ 813C4CC
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
adds r4, r2, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0x1
|
|
movs r1, 0xF
|
|
movs r2, 0x2
|
|
bl GenerateFontHalfRowLookupTable
|
|
ldr r1, _0813C508 @ =gDecompressionBuffer
|
|
str r4, [sp]
|
|
movs r0, 0x1A
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x10
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x2
|
|
adds r2, r6, 0
|
|
adds r3, r5, 0
|
|
bl HelpSystemRenderText
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C508: .4byte gDecompressionBuffer
|
|
thumb_func_end sub_813C4CC
|
|
|
|
thumb_func_start sub_813C50C
|
|
sub_813C50C: @ 813C50C
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
sub sp, 0x10
|
|
mov r8, r0
|
|
mov r9, r1
|
|
add r1, sp, 0xC
|
|
ldr r2, _0813C578 @ =0x0000eeee
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r4, _0813C57C @ =gDecompressionBuffer
|
|
ldr r2, _0813C580 @ =0x01001a00
|
|
adds r0, r1, 0
|
|
adds r1, r4, 0
|
|
bl CpuSet
|
|
movs r0, 0x1
|
|
movs r1, 0xE
|
|
movs r2, 0x2
|
|
bl GenerateFontHalfRowLookupTable
|
|
movs r6, 0
|
|
str r6, [sp]
|
|
movs r5, 0x1A
|
|
str r5, [sp, 0x4]
|
|
movs r0, 0x10
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x2
|
|
adds r1, r4, 0
|
|
mov r2, r8
|
|
movs r3, 0
|
|
bl HelpSystemRenderText
|
|
movs r0, 0x9C
|
|
lsls r0, 4
|
|
adds r4, r0
|
|
str r6, [sp]
|
|
str r5, [sp, 0x4]
|
|
movs r0, 0xD
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x2
|
|
adds r1, r4, 0
|
|
mov r2, r9
|
|
movs r3, 0
|
|
bl HelpSystemRenderText
|
|
add sp, 0x10
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C578: .4byte 0x0000eeee
|
|
_0813C57C: .4byte gDecompressionBuffer
|
|
_0813C580: .4byte 0x01001a00
|
|
thumb_func_end sub_813C50C
|
|
|
|
thumb_func_start sub_813C584
|
|
sub_813C584: @ 813C584
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
adds r5, r0, 0
|
|
add r1, sp, 0xC
|
|
ldr r2, _0813C5C8 @ =0x00001111
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r4, _0813C5CC @ =gDecompressionBuffer + 0x23C0
|
|
ldr r2, _0813C5D0 @ =0x01000820
|
|
adds r0, r1, 0
|
|
adds r1, r4, 0
|
|
bl CpuSet
|
|
movs r0, 0x2
|
|
movs r1, 0x1
|
|
movs r2, 0x3
|
|
bl GenerateFontHalfRowLookupTable
|
|
movs r0, 0x6
|
|
str r0, [sp]
|
|
movs r0, 0x1A
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x5
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x2
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
movs r3, 0x2
|
|
bl HelpSystemRenderText
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C5C8: .4byte 0x00001111
|
|
_0813C5CC: .4byte gDecompressionBuffer + 0x23C0
|
|
_0813C5D0: .4byte 0x01000820
|
|
thumb_func_end sub_813C584
|
|
|
|
thumb_func_start sub_813C5D4
|
|
sub_813C5D4: @ 813C5D4
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r1, sp
|
|
ldr r2, _0813C5F0 @ =0x0000ffff
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r1, _0813C5F4 @ =gDecompressionBuffer + 0x3D00
|
|
ldr r2, _0813C5F8 @ =0x010000e0
|
|
mov r0, sp
|
|
bl CpuSet
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C5F0: .4byte 0x0000ffff
|
|
_0813C5F4: .4byte gDecompressionBuffer + 0x3D00
|
|
_0813C5F8: .4byte 0x010000e0
|
|
thumb_func_end sub_813C5D4
|
|
|
|
thumb_func_start sub_813C5FC
|
|
sub_813C5FC: @ 813C5FC
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r1, sp
|
|
ldr r2, _0813C618 @ =0x0000ffff
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r1, _0813C61C @ =gDecompressionBuffer + 0x3400
|
|
ldr r2, _0813C620 @ =0x01000200
|
|
mov r0, sp
|
|
bl CpuSet
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C618: .4byte 0x0000ffff
|
|
_0813C61C: .4byte gDecompressionBuffer + 0x3400
|
|
_0813C620: .4byte 0x01000200
|
|
thumb_func_end sub_813C5FC
|
|
|
|
thumb_func_start sub_813C624
|
|
sub_813C624: @ 813C624
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r1, sp
|
|
ldr r2, _0813C640 @ =0x0000ffff
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r1, _0813C644 @ =gDecompressionBuffer
|
|
ldr r2, _0813C648 @ =0x01001a00
|
|
mov r0, sp
|
|
bl CpuSet
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C640: .4byte 0x0000ffff
|
|
_0813C644: .4byte gDecompressionBuffer
|
|
_0813C648: .4byte 0x01001a00
|
|
thumb_func_end sub_813C624
|
|
|
|
thumb_func_start sub_813C64C
|
|
sub_813C64C: @ 813C64C
|
|
push {r4-r7,lr}
|
|
ldr r4, _0813C680 @ =gUnknown_203F190
|
|
adds r3, r4, 0
|
|
ldm r0!, {r5-r7}
|
|
stm r3!, {r5-r7}
|
|
movs r0, 0
|
|
strb r1, [r4, 0xC]
|
|
strb r2, [r4, 0xD]
|
|
strb r0, [r4, 0xE]
|
|
ldrh r0, [r4, 0x4]
|
|
ldrh r1, [r4, 0x6]
|
|
cmp r0, r1
|
|
bcs _0813C668
|
|
strh r0, [r4, 0x6]
|
|
_0813C668:
|
|
movs r0, 0
|
|
bl sub_813BDA4
|
|
bl sub_813C624
|
|
bl sub_813C7CC
|
|
bl sub_813C828
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C680: .4byte gUnknown_203F190
|
|
thumb_func_end sub_813C64C
|
|
|
|
thumb_func_start sub_813C684
|
|
sub_813C684: @ 813C684
|
|
ldr r1, _0813C68C @ =gUnknown_203F176
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0813C68C: .4byte gUnknown_203F176
|
|
thumb_func_end sub_813C684
|
|
|
|
thumb_func_start sub_813C690
|
|
sub_813C690: @ 813C690
|
|
push {lr}
|
|
ldr r1, _0813C6A0 @ =gUnknown_203F176
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0813C6A4
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
b _0813C752
|
|
.align 2, 0
|
|
_0813C6A0: .4byte gUnknown_203F176
|
|
_0813C6A4:
|
|
ldr r2, _0813C6C8 @ =gMain
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0813C6D0
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r1, _0813C6CC @ =gUnknown_203F190
|
|
ldrb r0, [r1, 0xC]
|
|
ldrb r2, [r1, 0xD]
|
|
adds r0, r2
|
|
ldr r1, [r1]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r0, [r0, 0x4]
|
|
b _0813C756
|
|
.align 2, 0
|
|
_0813C6C8: .4byte gMain
|
|
_0813C6CC: .4byte gUnknown_203F190
|
|
_0813C6D0:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0813C6E4
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
b _0813C756
|
|
_0813C6E4:
|
|
movs r0, 0xC0
|
|
lsls r0, 2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0813C6F4
|
|
movs r0, 0x6
|
|
negs r0, r0
|
|
b _0813C756
|
|
_0813C6F4:
|
|
ldrh r1, [r2, 0x30]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0813C702
|
|
movs r0, 0x1
|
|
b _0813C718
|
|
_0813C702:
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0813C70E
|
|
movs r0, 0x1
|
|
b _0813C73A
|
|
_0813C70E:
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0813C730
|
|
movs r0, 0x7
|
|
_0813C718:
|
|
movs r1, 0
|
|
bl sub_813C944
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0813C72A
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
_0813C72A:
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
b _0813C756
|
|
_0813C730:
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0813C752
|
|
movs r0, 0x7
|
|
_0813C73A:
|
|
movs r1, 0x1
|
|
bl sub_813C944
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0813C74C
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
_0813C74C:
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
b _0813C756
|
|
_0813C752:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_0813C756:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813C690
|
|
|
|
thumb_func_start sub_813C75C
|
|
sub_813C75C: @ 813C75C
|
|
push {r4-r6,lr}
|
|
ldr r5, _0813C784 @ =gUnknown_203F190
|
|
ldrh r1, [r5, 0x4]
|
|
subs r0, r1, 0x7
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r1, 0x7
|
|
bls _0813C7C4
|
|
ldrb r4, [r5, 0xC]
|
|
ldrb r0, [r5, 0xD]
|
|
adds r4, r0
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_813C004
|
|
cmp r4, 0
|
|
bne _0813C788
|
|
movs r0, 0x1
|
|
b _0813C7A2
|
|
.align 2, 0
|
|
_0813C784: .4byte gUnknown_203F190
|
|
_0813C788:
|
|
ldrb r0, [r5, 0xC]
|
|
cmp r0, 0
|
|
bne _0813C798
|
|
ldrb r0, [r5, 0xD]
|
|
cmp r0, 0
|
|
beq _0813C798
|
|
movs r0, 0x1
|
|
b _0813C7A2
|
|
_0813C798:
|
|
ldr r0, _0813C7AC @ =gUnknown_203F190
|
|
ldrb r0, [r0, 0xC]
|
|
cmp r0, r6
|
|
bne _0813C7B0
|
|
movs r0, 0
|
|
_0813C7A2:
|
|
movs r1, 0x1
|
|
bl sub_813C004
|
|
b _0813C7C4
|
|
.align 2, 0
|
|
_0813C7AC: .4byte gUnknown_203F190
|
|
_0813C7B0:
|
|
cmp r0, 0
|
|
beq _0813C7C4
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_813C004
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
bl sub_813C004
|
|
_0813C7C4:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813C75C
|
|
|
|
thumb_func_start sub_813C7CC
|
|
sub_813C7CC: @ 813C7CC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r0, 0x2
|
|
movs r1, 0x1
|
|
bl GetFontAttribute
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r3, _0813C824 @ =gUnknown_203F190
|
|
ldrb r5, [r3, 0xC]
|
|
movs r6, 0
|
|
ldrh r0, [r3, 0x6]
|
|
cmp r6, r0
|
|
bge _0813C81A
|
|
adds r4, r3, 0
|
|
movs r7, 0
|
|
_0813C7F2:
|
|
ldrb r1, [r4, 0x8]
|
|
adds r1, 0x8
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r2, [r4, 0x9]
|
|
adds r2, r7
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r3, [r4]
|
|
lsls r0, r5, 3
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
bl sub_813C4CC
|
|
adds r5, 0x1
|
|
add r7, r8
|
|
adds r6, 0x1
|
|
ldrh r0, [r4, 0x6]
|
|
cmp r6, r0
|
|
blt _0813C7F2
|
|
_0813C81A:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C824: .4byte gUnknown_203F190
|
|
thumb_func_end sub_813C7CC
|
|
|
|
thumb_func_start sub_813C828
|
|
sub_813C828: @ 813C828
|
|
push {r4,lr}
|
|
movs r0, 0x2
|
|
movs r1, 0x1
|
|
bl GetFontAttribute
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, _0813C858 @ =gUnknown_203F190
|
|
ldrb r1, [r3, 0x8]
|
|
ldrb r2, [r3, 0xD]
|
|
adds r4, r2, 0
|
|
muls r4, r0
|
|
adds r2, r4, 0
|
|
ldrb r3, [r3, 0x9]
|
|
adds r2, r3
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r0, _0813C85C @ =gFameCheckerText_ListMenuCursor
|
|
bl sub_813C4CC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C858: .4byte gUnknown_203F190
|
|
_0813C85C: .4byte gFameCheckerText_ListMenuCursor
|
|
thumb_func_end sub_813C828
|
|
|
|
thumb_func_start sub_813C860
|
|
sub_813C860: @ 813C860
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0x2
|
|
movs r1, 0x1
|
|
bl GetFontAttribute
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, _0813C894 @ =gUnknown_203F190
|
|
ldrb r1, [r3, 0x8]
|
|
adds r2, r4, 0
|
|
muls r2, r0
|
|
ldrb r3, [r3, 0x9]
|
|
adds r2, r3
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r0, _0813C898 @ =gUnknown_841CB4E
|
|
bl sub_813C4CC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C894: .4byte gUnknown_203F190
|
|
_0813C898: .4byte gUnknown_841CB4E
|
|
thumb_func_end sub_813C860
|
|
|
|
thumb_func_start sub_813C89C
|
|
sub_813C89C: @ 813C89C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0813C8EC
|
|
ldr r0, _0813C8B4 @ =gUnknown_203F190
|
|
ldrh r1, [r0, 0x6]
|
|
adds r5, r0, 0
|
|
cmp r1, 0x1
|
|
bne _0813C8B8
|
|
movs r4, 0
|
|
b _0813C8CA
|
|
.align 2, 0
|
|
_0813C8B4: .4byte gUnknown_203F190
|
|
_0813C8B8:
|
|
ldrh r0, [r5, 0x6]
|
|
lsrs r2, r0, 1
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
adds r2, r1
|
|
subs r0, r2
|
|
subs r0, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
_0813C8CA:
|
|
ldrb r1, [r5, 0xC]
|
|
cmp r1, 0
|
|
bne _0813C8DA
|
|
ldrb r0, [r5, 0xD]
|
|
cmp r0, 0
|
|
beq _0813C926
|
|
subs r0, 0x1
|
|
b _0813C93A
|
|
_0813C8DA:
|
|
ldrb r0, [r5, 0xD]
|
|
cmp r0, r4
|
|
bls _0813C8E4
|
|
subs r0, 0x1
|
|
b _0813C93A
|
|
_0813C8E4:
|
|
subs r0, r1, 0x1
|
|
strb r0, [r5, 0xC]
|
|
movs r0, 0x2
|
|
b _0813C93E
|
|
_0813C8EC:
|
|
ldr r0, _0813C8FC @ =gUnknown_203F190
|
|
ldrh r1, [r0, 0x6]
|
|
adds r5, r0, 0
|
|
cmp r1, 0x1
|
|
bne _0813C900
|
|
movs r4, 0
|
|
b _0813C90A
|
|
.align 2, 0
|
|
_0813C8FC: .4byte gUnknown_203F190
|
|
_0813C900:
|
|
ldrh r0, [r5, 0x6]
|
|
lsrs r2, r0, 1
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
adds r4, r2, r0
|
|
_0813C90A:
|
|
adds r1, r5, 0
|
|
ldrb r2, [r1, 0xC]
|
|
ldrh r0, [r1, 0x4]
|
|
ldrh r3, [r1, 0x6]
|
|
subs r0, r3
|
|
cmp r2, r0
|
|
bne _0813C92A
|
|
ldrb r2, [r1, 0xD]
|
|
subs r0, r3, 0x1
|
|
cmp r2, r0
|
|
bge _0813C926
|
|
adds r0, r2, 0x1
|
|
strb r0, [r1, 0xD]
|
|
b _0813C93C
|
|
_0813C926:
|
|
movs r0, 0
|
|
b _0813C93E
|
|
_0813C92A:
|
|
ldrb r0, [r1, 0xD]
|
|
cmp r0, r4
|
|
bcc _0813C938
|
|
adds r0, r2, 0x1
|
|
strb r0, [r1, 0xC]
|
|
movs r0, 0x2
|
|
b _0813C93E
|
|
_0813C938:
|
|
adds r0, 0x1
|
|
_0813C93A:
|
|
strb r0, [r5, 0xD]
|
|
_0813C93C:
|
|
movs r0, 0x1
|
|
_0813C93E:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813C89C
|
|
|
|
thumb_func_start sub_813C944
|
|
sub_813C944: @ 813C944
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
ldr r0, _0813C97C @ =gUnknown_203F190
|
|
ldrb r7, [r0, 0xD]
|
|
movs r5, 0
|
|
cmp r5, r2
|
|
bge _0813C96C
|
|
adds r4, r2, 0
|
|
_0813C95A:
|
|
adds r0, r6, 0
|
|
bl sub_813C89C
|
|
orrs r5, r0
|
|
lsls r0, r5, 24
|
|
lsrs r5, r0, 24
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bne _0813C95A
|
|
_0813C96C:
|
|
cmp r5, 0x1
|
|
beq _0813C980
|
|
cmp r5, 0x1
|
|
ble _0813C978
|
|
cmp r5, 0x3
|
|
ble _0813C990
|
|
_0813C978:
|
|
movs r0, 0x1
|
|
b _0813C9D6
|
|
.align 2, 0
|
|
_0813C97C: .4byte gUnknown_203F190
|
|
_0813C980:
|
|
adds r0, r7, 0
|
|
bl sub_813C860
|
|
bl sub_813C828
|
|
bl sub_813BC5C
|
|
b _0813C9D4
|
|
_0813C990:
|
|
bl sub_812BF88
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0813C9B8
|
|
movs r0, 0x2
|
|
bl sub_813C684
|
|
bl sub_813C624
|
|
bl sub_813C7CC
|
|
bl sub_813C828
|
|
bl sub_812BDEC
|
|
bl sub_813C75C
|
|
b _0813C9D0
|
|
_0813C9B8:
|
|
movs r0, 0
|
|
bl sub_813BDA4
|
|
bl sub_813C624
|
|
bl sub_813C7CC
|
|
bl sub_813C828
|
|
movs r0, 0x1
|
|
bl sub_813BDA4
|
|
_0813C9D0:
|
|
bl sub_813BC5C
|
|
_0813C9D4:
|
|
movs r0, 0
|
|
_0813C9D6:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813C944
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|