mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-06 13:47:12 -05:00
2255 lines
37 KiB
ArmAsm
2255 lines
37 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_813B870
|
|
sub_813B870: @ 813B870
|
|
push {r4,r5,lr}
|
|
ldr r0, _0813B888 @ =gUnknown_203F178
|
|
ldrb r0, [r0, 0x15]
|
|
cmp r0, 0x8
|
|
bls _0813B87C
|
|
b _0813BB24
|
|
_0813B87C:
|
|
lsls r0, 2
|
|
ldr r1, _0813B88C @ =_0813B890
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0813B888: .4byte gUnknown_203F178
|
|
_0813B88C: .4byte _0813B890
|
|
.align 2, 0
|
|
_0813B890:
|
|
.4byte _0813B8B4
|
|
.4byte _0813B968
|
|
.4byte _0813B994
|
|
.4byte _0813B9D8
|
|
.4byte _0813BA40
|
|
.4byte _0813BA78
|
|
.4byte _0813BAA0
|
|
.4byte _0813BAE0
|
|
.4byte _0813BB14
|
|
_0813B8B4:
|
|
ldr r1, _0813B904 @ =gUnknown_203F177
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r0, _0813B908 @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x13]
|
|
cmp r0, 0
|
|
bne _0813B900
|
|
ldr r2, _0813B90C @ =gMain
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0813B8DA
|
|
ldr r0, _0813B910 @ =gUnknown_203F175
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _0813B900
|
|
_0813B8DA:
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r0, 0xC0
|
|
lsls r0, 2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0813B8E8
|
|
b _0813BB24
|
|
_0813B8E8:
|
|
bl sub_812B45C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0813B8FA
|
|
ldr r0, _0813B914 @ =gUnknown_3005ECC
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0813B918
|
|
_0813B8FA:
|
|
movs r0, 0xFC
|
|
bl PlaySE
|
|
_0813B900:
|
|
movs r0, 0
|
|
b _0813BB28
|
|
.align 2, 0
|
|
_0813B904: .4byte gUnknown_203F177
|
|
_0813B908: .4byte gSaveBlock2Ptr
|
|
_0813B90C: .4byte gMain
|
|
_0813B910: .4byte gUnknown_203F175
|
|
_0813B914: .4byte gUnknown_3005ECC
|
|
_0813B918:
|
|
ldr r0, _0813B94C @ =gMPlay_SE1
|
|
bl m4aMPlayStop
|
|
ldr r0, _0813B950 @ =gMPlay_SE2
|
|
bl m4aMPlayStop
|
|
movs r0, 0xFA
|
|
bl PlaySE
|
|
ldr r0, _0813B954 @ =gUnknown_203F174
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0813B93C
|
|
ldr r0, _0813B958 @ =gMPlay_BGM
|
|
ldr r1, _0813B95C @ =0x0000ffff
|
|
movs r2, 0x80
|
|
bl m4aMPlayVolumeControl
|
|
_0813B93C:
|
|
bl sub_813BB38
|
|
ldr r1, _0813B960 @ =gUnknown_203F177
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, _0813B964 @ =gUnknown_203F178
|
|
movs r0, 0x1
|
|
b _0813BB22
|
|
.align 2, 0
|
|
_0813B94C: .4byte gMPlay_SE1
|
|
_0813B950: .4byte gMPlay_SE2
|
|
_0813B954: .4byte gUnknown_203F174
|
|
_0813B958: .4byte gMPlay_BGM
|
|
_0813B95C: .4byte 0x0000ffff
|
|
_0813B960: .4byte gUnknown_203F177
|
|
_0813B964: .4byte gUnknown_203F178
|
|
_0813B968:
|
|
bl sub_813BBAC
|
|
bl sub_813BB74
|
|
bl sub_813BBC8
|
|
movs r1, 0xA0
|
|
lsls r1, 19
|
|
ldr r0, _0813B98C @ =gUnknown_8464128
|
|
ldrh r0, [r0, 0x1E]
|
|
strh r0, [r1]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r1, _0813B990 @ =gUnknown_203F178
|
|
movs r0, 0x2
|
|
b _0813BB22
|
|
.align 2, 0
|
|
_0813B98C: .4byte gUnknown_8464128
|
|
_0813B990: .4byte gUnknown_203F178
|
|
_0813B994:
|
|
ldr r1, _0813B9C4 @ =0x0600c000
|
|
movs r2, 0x80
|
|
lsls r2, 7
|
|
movs r0, 0
|
|
movs r3, 0
|
|
bl RequestDma3Fill
|
|
ldr r0, _0813B9C8 @ =gUnknown_8464128
|
|
movs r1, 0xA0
|
|
lsls r1, 19
|
|
movs r2, 0x20
|
|
movs r3, 0
|
|
bl RequestDma3Copy
|
|
ldr r0, _0813B9CC @ =gUnknown_8464008
|
|
ldr r1, _0813B9D0 @ =gUnknown_201FEE0
|
|
movs r2, 0x90
|
|
lsls r2, 1
|
|
movs r3, 0
|
|
bl RequestDma3Copy
|
|
ldr r1, _0813B9D4 @ =gUnknown_203F178
|
|
movs r0, 0x3
|
|
b _0813BB22
|
|
.align 2, 0
|
|
_0813B9C4: .4byte 0x0600c000
|
|
_0813B9C8: .4byte gUnknown_8464128
|
|
_0813B9CC: .4byte gUnknown_8464008
|
|
_0813B9D0: .4byte gUnknown_201FEE0
|
|
_0813B9D4: .4byte gUnknown_203F178
|
|
_0813B9D8:
|
|
bl sub_813BCF4
|
|
bl sub_813C5D4
|
|
bl sub_813C5FC
|
|
ldr r0, _0813BA08 @ =gUnknown_841CB49
|
|
bl sub_813C454
|
|
movs r0, 0x1
|
|
bl sub_813BD14
|
|
bl sub_812B40C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0813BA14
|
|
ldr r0, _0813BA0C @ =gUnknown_203F190
|
|
ldr r1, _0813BA10 @ =gUnknown_203F1AC
|
|
bl sub_812BC54
|
|
b _0813BA1C
|
|
.align 2, 0
|
|
_0813BA08: .4byte gUnknown_841CB49
|
|
_0813BA0C: .4byte gUnknown_203F190
|
|
_0813BA10: .4byte gUnknown_203F1AC
|
|
_0813BA14:
|
|
ldr r0, _0813BA34 @ =gUnknown_203F190
|
|
ldr r1, _0813BA38 @ =gUnknown_203F1AC
|
|
bl sub_812BCA8
|
|
_0813BA1C:
|
|
movs r0, 0x1
|
|
bl sub_813BE78
|
|
movs r0, 0x1
|
|
bl sub_813BF50
|
|
bl sub_813BC5C
|
|
ldr r1, _0813BA3C @ =gUnknown_203F178
|
|
movs r0, 0x4
|
|
b _0813BB22
|
|
.align 2, 0
|
|
_0813BA34: .4byte gUnknown_203F190
|
|
_0813BA38: .4byte gUnknown_203F1AC
|
|
_0813BA3C: .4byte gUnknown_203F178
|
|
_0813BA40:
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x10
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x12
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r1, _0813BA70 @ =0x00001f0c
|
|
movs r0, 0x8
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
ldr r1, _0813BA74 @ =gUnknown_203F178
|
|
movs r0, 0x5
|
|
b _0813BB22
|
|
.align 2, 0
|
|
_0813BA70: .4byte 0x00001f0c
|
|
_0813BA74: .4byte gUnknown_203F178
|
|
_0813BA78:
|
|
ldr r0, _0813BA94 @ =gUnknown_203F190
|
|
ldr r1, _0813BA98 @ =gUnknown_203F1AC
|
|
bl sub_812BB9C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0813BB24
|
|
movs r0, 0xFB
|
|
bl PlaySE
|
|
ldr r1, _0813BA9C @ =gUnknown_203F178
|
|
movs r0, 0x6
|
|
b _0813BB22
|
|
.align 2, 0
|
|
_0813BA94: .4byte gUnknown_203F190
|
|
_0813BA98: .4byte gUnknown_203F1AC
|
|
_0813BA9C: .4byte gUnknown_203F178
|
|
_0813BAA0:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
bl sub_813BC2C
|
|
movs r1, 0
|
|
ldr r5, _0813BAD0 @ =0x000001ff
|
|
movs r4, 0xA0
|
|
lsls r4, 19
|
|
ldr r0, _0813BAD4 @ =gUnknown_8464128
|
|
ldrh r2, [r0, 0x1E]
|
|
ldr r3, _0813BAD8 @ =0x05000200
|
|
_0813BABA:
|
|
adds r0, r1, r4
|
|
strh r2, [r0]
|
|
adds r0, r1, r3
|
|
strh r2, [r0]
|
|
adds r1, 0x2
|
|
cmp r1, r5
|
|
ble _0813BABA
|
|
ldr r1, _0813BADC @ =gUnknown_203F178
|
|
movs r0, 0x7
|
|
b _0813BB22
|
|
.align 2, 0
|
|
_0813BAD0: .4byte 0x000001ff
|
|
_0813BAD4: .4byte gUnknown_8464128
|
|
_0813BAD8: .4byte 0x05000200
|
|
_0813BADC: .4byte gUnknown_203F178
|
|
_0813BAE0:
|
|
ldr r0, _0813BB04 @ =gUnknown_203F174
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0813BAF4
|
|
ldr r0, _0813BB08 @ =gMPlay_BGM
|
|
ldr r1, _0813BB0C @ =0x0000ffff
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
bl m4aMPlayVolumeControl
|
|
_0813BAF4:
|
|
bl sub_813BC48
|
|
bl sub_813BBF4
|
|
ldr r1, _0813BB10 @ =gUnknown_203F178
|
|
movs r0, 0x8
|
|
b _0813BB22
|
|
.align 2, 0
|
|
_0813BB04: .4byte gUnknown_203F174
|
|
_0813BB08: .4byte gMPlay_BGM
|
|
_0813BB0C: .4byte 0x0000ffff
|
|
_0813BB10: .4byte gUnknown_203F178
|
|
_0813BB14:
|
|
bl sub_813BBDC
|
|
ldr r1, _0813BB30 @ =gUnknown_203F177
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r1, _0813BB34 @ =gUnknown_203F178
|
|
movs r0, 0
|
|
_0813BB22:
|
|
strb r0, [r1, 0x15]
|
|
_0813BB24:
|
|
ldr r0, _0813BB34 @ =gUnknown_203F178
|
|
ldrb r0, [r0, 0x15]
|
|
_0813BB28:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0813BB30: .4byte gUnknown_203F177
|
|
_0813BB34: .4byte gUnknown_203F178
|
|
thumb_func_end sub_813B870
|
|
|
|
thumb_func_start sub_813BB38
|
|
sub_813BB38: @ 813BB38
|
|
ldr r2, _0813BB60 @ =gUnknown_203F178
|
|
ldr r1, _0813BB64 @ =gMain
|
|
ldr r0, [r1, 0xC]
|
|
str r0, [r2]
|
|
ldr r0, [r1, 0x10]
|
|
str r0, [r2, 0x4]
|
|
movs r0, 0
|
|
str r0, [r1, 0xC]
|
|
str r0, [r1, 0x10]
|
|
ldr r1, _0813BB68 @ =0x040000b0
|
|
ldrh r2, [r1, 0xA]
|
|
ldr r0, _0813BB6C @ =0x0000c5ff
|
|
ands r0, r2
|
|
strh r0, [r1, 0xA]
|
|
ldrh r2, [r1, 0xA]
|
|
ldr r0, _0813BB70 @ =0x00007fff
|
|
ands r0, r2
|
|
strh r0, [r1, 0xA]
|
|
ldrh r0, [r1, 0xA]
|
|
bx lr
|
|
.align 2, 0
|
|
_0813BB60: .4byte gUnknown_203F178
|
|
_0813BB64: .4byte gMain
|
|
_0813BB68: .4byte 0x040000b0
|
|
_0813BB6C: .4byte 0x0000c5ff
|
|
_0813BB70: .4byte 0x00007fff
|
|
thumb_func_end sub_813BB38
|
|
|
|
thumb_func_start sub_813BB74
|
|
sub_813BB74: @ 813BB74
|
|
push {r4,lr}
|
|
movs r0, 0
|
|
bl GetGpuReg
|
|
ldr r4, _0813BBA8 @ =gUnknown_203F178
|
|
strh r0, [r4, 0x8]
|
|
movs r0, 0x8
|
|
bl GetGpuReg
|
|
strh r0, [r4, 0xA]
|
|
movs r0, 0x10
|
|
bl GetGpuReg
|
|
strh r0, [r4, 0xC]
|
|
movs r0, 0x12
|
|
bl GetGpuReg
|
|
strh r0, [r4, 0xE]
|
|
movs r0, 0x50
|
|
bl GetGpuReg
|
|
strh r0, [r4, 0x10]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813BBA8: .4byte gUnknown_203F178
|
|
thumb_func_end sub_813BB74
|
|
|
|
thumb_func_start sub_813BBAC
|
|
sub_813BBAC: @ 813BBAC
|
|
push {lr}
|
|
ldr r0, _0813BBC0 @ =0x0600c000
|
|
ldr r1, _0813BBC4 @ =gUnknown_203B174
|
|
movs r2, 0x80
|
|
lsls r2, 7
|
|
movs r3, 0
|
|
bl RequestDma3Copy
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813BBC0: .4byte 0x0600c000
|
|
_0813BBC4: .4byte gUnknown_203B174
|
|
thumb_func_end sub_813BBAC
|
|
|
|
thumb_func_start sub_813BBC8
|
|
sub_813BBC8: @ 813BBC8
|
|
push {lr}
|
|
ldr r0, _0813BBD8 @ =gUnknown_203F18A
|
|
adds r1, r0, 0x1
|
|
adds r2, r0, 0x2
|
|
bl SaveTextColors
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813BBD8: .4byte gUnknown_203F18A
|
|
thumb_func_end sub_813BBC8
|
|
|
|
thumb_func_start sub_813BBDC
|
|
sub_813BBDC: @ 813BBDC
|
|
ldr r2, _0813BBEC @ =gMain
|
|
ldr r1, _0813BBF0 @ =gUnknown_203F178
|
|
ldr r0, [r1]
|
|
str r0, [r2, 0xC]
|
|
ldr r0, [r1, 0x4]
|
|
str r0, [r2, 0x10]
|
|
bx lr
|
|
.align 2, 0
|
|
_0813BBEC: .4byte gMain
|
|
_0813BBF0: .4byte gUnknown_203F178
|
|
thumb_func_end sub_813BBDC
|
|
|
|
thumb_func_start sub_813BBF4
|
|
sub_813BBF4: @ 813BBF4
|
|
push {r4,lr}
|
|
ldr r4, _0813BC28 @ =gUnknown_203F178
|
|
ldrh r1, [r4, 0x10]
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
ldrh r1, [r4, 0xC]
|
|
movs r0, 0x10
|
|
bl SetGpuReg
|
|
ldrh r1, [r4, 0xE]
|
|
movs r0, 0x12
|
|
bl SetGpuReg
|
|
ldrh r1, [r4, 0xA]
|
|
movs r0, 0x8
|
|
bl SetGpuReg
|
|
ldrh r1, [r4, 0x8]
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813BC28: .4byte gUnknown_203F178
|
|
thumb_func_end sub_813BBF4
|
|
|
|
thumb_func_start sub_813BC2C
|
|
sub_813BC2C: @ 813BC2C
|
|
push {lr}
|
|
ldr r0, _0813BC40 @ =gUnknown_203B174
|
|
ldr r1, _0813BC44 @ =0x0600c000
|
|
movs r2, 0x80
|
|
lsls r2, 7
|
|
movs r3, 0
|
|
bl RequestDma3Copy
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813BC40: .4byte gUnknown_203B174
|
|
_0813BC44: .4byte 0x0600c000
|
|
thumb_func_end sub_813BC2C
|
|
|
|
thumb_func_start sub_813BC48
|
|
sub_813BC48: @ 813BC48
|
|
push {lr}
|
|
ldr r0, _0813BC58 @ =gUnknown_203F18A
|
|
adds r1, r0, 0x1
|
|
adds r2, r0, 0x2
|
|
bl RestoreTextColors
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813BC58: .4byte gUnknown_203F18A
|
|
thumb_func_end sub_813BC48
|
|
|
|
thumb_func_start sub_813BC5C
|
|
sub_813BC5C: @ 813BC5C
|
|
push {lr}
|
|
ldr r0, _0813BC70 @ =gUnknown_201C000
|
|
ldr r1, _0813BC74 @ =0x0600c000
|
|
movs r2, 0x80
|
|
lsls r2, 7
|
|
movs r3, 0
|
|
bl RequestDma3Copy
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813BC70: .4byte gUnknown_201C000
|
|
_0813BC74: .4byte 0x0600c000
|
|
thumb_func_end sub_813BC5C
|
|
|
|
thumb_func_start sub_813BC78
|
|
sub_813BC78: @ 813BC78
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r4, [sp, 0x20]
|
|
ldr r5, [sp, 0x24]
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r9, r1
|
|
lsls r2, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r8, r3
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r5, 16
|
|
lsrs r7, r5, 16
|
|
lsrs r0, r2, 24
|
|
adds r2, r0, r4
|
|
cmp r0, r2
|
|
bge _0813BCDE
|
|
mov r12, r2
|
|
ldr r1, _0813BCF0 @ =gUnknown_201F800
|
|
mov r10, r1
|
|
_0813BCAE:
|
|
mov r4, r9
|
|
mov r2, r8
|
|
adds r1, r4, r2
|
|
adds r3, r0, 0x1
|
|
cmp r4, r1
|
|
bge _0813BCD6
|
|
lsls r2, r0, 6
|
|
mov r5, r10
|
|
_0813BCBE:
|
|
lsls r0, r4, 1
|
|
adds r0, r2, r0
|
|
adds r0, r5
|
|
strh r6, [r0]
|
|
adds r0, r6, r7
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, r1
|
|
blt _0813BCBE
|
|
_0813BCD6:
|
|
lsls r0, r3, 16
|
|
lsrs r0, 16
|
|
cmp r0, r12
|
|
blt _0813BCAE
|
|
_0813BCDE:
|
|
bl sub_813BC5C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813BCF0: .4byte gUnknown_201F800
|
|
thumb_func_end sub_813BC78
|
|
|
|
thumb_func_start sub_813BCF4
|
|
sub_813BCF4: @ 813BCF4
|
|
push {lr}
|
|
sub sp, 0x8
|
|
ldr r0, _0813BD10 @ =0x000001ff
|
|
movs r1, 0x14
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
str r1, [sp, 0x4]
|
|
movs r2, 0
|
|
movs r3, 0x1E
|
|
bl sub_813BC78
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813BD10: .4byte 0x000001ff
|
|
thumb_func_end sub_813BCF4
|
|
|
|
thumb_func_start sub_813BD14
|
|
sub_813BD14: @ 813BD14
|
|
push {lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
beq _0813BD26
|
|
cmp r2, 0x1
|
|
beq _0813BD40
|
|
b _0813BD54
|
|
_0813BD26:
|
|
ldr r0, _0813BD3C @ =0x000001ff
|
|
movs r1, 0x2
|
|
str r1, [sp]
|
|
str r2, [sp, 0x4]
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
movs r3, 0x7
|
|
bl sub_813BC78
|
|
b _0813BD54
|
|
.align 2, 0
|
|
_0813BD3C: .4byte 0x000001ff
|
|
_0813BD40:
|
|
movs r0, 0xF4
|
|
lsls r0, 1
|
|
movs r1, 0x2
|
|
str r1, [sp]
|
|
str r2, [sp, 0x4]
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
movs r3, 0x7
|
|
bl sub_813BC78
|
|
_0813BD54:
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813BD14
|
|
|
|
thumb_func_start sub_813BD5C
|
|
sub_813BD5C: @ 813BD5C
|
|
push {lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
beq _0813BD6E
|
|
cmp r2, 0x1
|
|
beq _0813BD88
|
|
b _0813BD9C
|
|
_0813BD6E:
|
|
ldr r0, _0813BD84 @ =0x000001ff
|
|
movs r1, 0x2
|
|
str r1, [sp]
|
|
str r2, [sp, 0x4]
|
|
movs r1, 0xD
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl sub_813BC78
|
|
b _0813BD9C
|
|
.align 2, 0
|
|
_0813BD84: .4byte 0x000001ff
|
|
_0813BD88:
|
|
movs r0, 0xD0
|
|
lsls r0, 1
|
|
movs r1, 0x2
|
|
str r1, [sp]
|
|
str r2, [sp, 0x4]
|
|
movs r1, 0xD
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl sub_813BC78
|
|
_0813BD9C:
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813BD5C
|
|
|
|
thumb_func_start sub_813BDA4
|
|
sub_813BDA4: @ 813BDA4
|
|
push {lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
beq _0813BDB6
|
|
cmp r2, 0x1
|
|
beq _0813BDD0
|
|
b _0813BDE2
|
|
_0813BDB6:
|
|
ldr r0, _0813BDCC @ =0x000001ff
|
|
movs r1, 0x10
|
|
str r1, [sp]
|
|
str r2, [sp, 0x4]
|
|
movs r1, 0x2
|
|
movs r2, 0x3
|
|
movs r3, 0x1A
|
|
bl sub_813BC78
|
|
b _0813BDE2
|
|
.align 2, 0
|
|
_0813BDCC: .4byte 0x000001ff
|
|
_0813BDD0:
|
|
movs r0, 0x10
|
|
str r0, [sp]
|
|
str r2, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0x3
|
|
movs r3, 0x1A
|
|
bl sub_813BC78
|
|
_0813BDE2:
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813BDA4
|
|
|
|
thumb_func_start sub_813BDE8
|
|
sub_813BDE8: @ 813BDE8
|
|
push {lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
beq _0813BDFA
|
|
cmp r2, 0x1
|
|
beq _0813BE14
|
|
b _0813BE2A
|
|
_0813BDFA:
|
|
ldr r0, _0813BE10 @ =0x000001ff
|
|
movs r1, 0x10
|
|
str r1, [sp]
|
|
str r2, [sp, 0x4]
|
|
movs r1, 0x1
|
|
movs r2, 0x3
|
|
movs r3, 0x1C
|
|
bl sub_813BC78
|
|
b _0813BE2A
|
|
.align 2, 0
|
|
_0813BE10: .4byte 0x000001ff
|
|
_0813BE14:
|
|
movs r0, 0xFD
|
|
lsls r0, 1
|
|
movs r1, 0x11
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0x1
|
|
movs r2, 0x3
|
|
movs r3, 0x1C
|
|
bl sub_813BC78
|
|
_0813BE2A:
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813BDE8
|
|
|
|
thumb_func_start sub_813BE30
|
|
sub_813BE30: @ 813BE30
|
|
push {lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
beq _0813BE42
|
|
cmp r2, 0x1
|
|
beq _0813BE5C
|
|
b _0813BE70
|
|
_0813BE42:
|
|
ldr r0, _0813BE58 @ =0x000001ff
|
|
movs r1, 0x5
|
|
str r1, [sp]
|
|
str r2, [sp, 0x4]
|
|
movs r1, 0x2
|
|
movs r2, 0xE
|
|
movs r3, 0x1A
|
|
bl sub_813BC78
|
|
b _0813BE70
|
|
.align 2, 0
|
|
_0813BE58: .4byte 0x000001ff
|
|
_0813BE5C:
|
|
movs r0, 0x8F
|
|
lsls r0, 1
|
|
movs r1, 0x5
|
|
str r1, [sp]
|
|
str r2, [sp, 0x4]
|
|
movs r1, 0x2
|
|
movs r2, 0xE
|
|
movs r3, 0x1A
|
|
bl sub_813BC78
|
|
_0813BE70:
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813BE30
|
|
|
|
thumb_func_start sub_813BE78
|
|
sub_813BE78: @ 813BE78
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0
|
|
beq _0813BE8A
|
|
cmp r6, 0x1
|
|
beq _0813BEB4
|
|
b _0813BED8
|
|
_0813BE8A:
|
|
ldr r5, _0813BEB0 @ =0x000001ff
|
|
movs r4, 0x1
|
|
str r4, [sp]
|
|
str r6, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x2
|
|
movs r3, 0x1C
|
|
bl sub_813BC78
|
|
str r4, [sp]
|
|
str r6, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x13
|
|
movs r3, 0x1C
|
|
bl sub_813BC78
|
|
b _0813BED8
|
|
.align 2, 0
|
|
_0813BEB0: .4byte 0x000001ff
|
|
_0813BEB4:
|
|
ldr r0, _0813BEE0 @ =0x000001f7
|
|
str r6, [sp]
|
|
movs r4, 0
|
|
str r4, [sp, 0x4]
|
|
movs r1, 0x1
|
|
movs r2, 0x2
|
|
movs r3, 0x1C
|
|
bl sub_813BC78
|
|
movs r0, 0xFC
|
|
lsls r0, 1
|
|
str r6, [sp]
|
|
str r4, [sp, 0x4]
|
|
movs r1, 0x1
|
|
movs r2, 0x13
|
|
movs r3, 0x1C
|
|
bl sub_813BC78
|
|
_0813BED8:
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813BEE0: .4byte 0x000001f7
|
|
thumb_func_end sub_813BE78
|
|
|
|
thumb_func_start sub_813BEE4
|
|
sub_813BEE4: @ 813BEE4
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0
|
|
beq _0813BEF6
|
|
cmp r6, 0x1
|
|
beq _0813BF20
|
|
b _0813BF44
|
|
_0813BEF6:
|
|
ldr r5, _0813BF1C @ =0x000001ff
|
|
movs r4, 0x1
|
|
str r4, [sp]
|
|
str r6, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x2
|
|
movs r3, 0x1C
|
|
bl sub_813BC78
|
|
str r4, [sp]
|
|
str r6, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x13
|
|
movs r3, 0x1C
|
|
bl sub_813BC78
|
|
b _0813BF44
|
|
.align 2, 0
|
|
_0813BF1C: .4byte 0x000001ff
|
|
_0813BF20:
|
|
ldr r0, _0813BF4C @ =0x000001fb
|
|
str r6, [sp]
|
|
movs r4, 0
|
|
str r4, [sp, 0x4]
|
|
movs r1, 0x1
|
|
movs r2, 0x2
|
|
movs r3, 0x1C
|
|
bl sub_813BC78
|
|
movs r0, 0xFE
|
|
lsls r0, 1
|
|
str r6, [sp]
|
|
str r4, [sp, 0x4]
|
|
movs r1, 0x1
|
|
movs r2, 0x13
|
|
movs r3, 0x1C
|
|
bl sub_813BC78
|
|
_0813BF44:
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813BF4C: .4byte 0x000001fb
|
|
thumb_func_end sub_813BEE4
|
|
|
|
thumb_func_start sub_813BF50
|
|
sub_813BF50: @ 813BF50
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0
|
|
beq _0813BF62
|
|
cmp r6, 0x1
|
|
beq _0813BF8C
|
|
b _0813BFB2
|
|
_0813BF62:
|
|
ldr r5, _0813BF88 @ =0x000001ff
|
|
movs r4, 0x14
|
|
str r4, [sp]
|
|
str r6, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl sub_813BC78
|
|
str r4, [sp]
|
|
str r6, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
movs r1, 0x1D
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl sub_813BC78
|
|
b _0813BFB2
|
|
.align 2, 0
|
|
_0813BF88: .4byte 0x000001ff
|
|
_0813BF8C:
|
|
ldr r6, _0813BFBC @ =0x000001f9
|
|
movs r5, 0x14
|
|
str r5, [sp]
|
|
movs r4, 0
|
|
str r4, [sp, 0x4]
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl sub_813BC78
|
|
str r5, [sp]
|
|
str r4, [sp, 0x4]
|
|
adds r0, r6, 0
|
|
movs r1, 0x1D
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl sub_813BC78
|
|
_0813BFB2:
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813BFBC: .4byte 0x000001f9
|
|
thumb_func_end sub_813BF50
|
|
|
|
thumb_func_start sub_813BFC0
|
|
sub_813BFC0: @ 813BFC0
|
|
push {lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
beq _0813BFD2
|
|
cmp r2, 0x1
|
|
beq _0813BFE8
|
|
b _0813BFFC
|
|
_0813BFD2:
|
|
ldr r0, _0813BFE4 @ =0x000001ff
|
|
movs r1, 0x1
|
|
str r1, [sp]
|
|
str r2, [sp, 0x4]
|
|
movs r2, 0x5
|
|
movs r3, 0x1C
|
|
bl sub_813BC78
|
|
b _0813BFFC
|
|
.align 2, 0
|
|
_0813BFE4: .4byte 0x000001ff
|
|
_0813BFE8:
|
|
movs r0, 0xFE
|
|
lsls r0, 1
|
|
str r2, [sp]
|
|
movs r1, 0
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0x1
|
|
movs r2, 0x5
|
|
movs r3, 0x1C
|
|
bl sub_813BC78
|
|
_0813BFFC:
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813BFC0
|
|
|
|
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 sub_813C078
|
|
sub_813C078: @ 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 @ =gUnknown_81EA700
|
|
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 gUnknown_81EA700
|
|
_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 sub_813C078
|
|
|
|
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 @ =gUnknown_201FD00
|
|
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 sub_813C078
|
|
add sp, 0xC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C484: .4byte gUnknown_201FD00
|
|
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 @ =gUnknown_201F400
|
|
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 sub_813C078
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C4C8: .4byte gUnknown_201F400
|
|
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 @ =gUnknown_201C000
|
|
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 sub_813C078
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C508: .4byte gUnknown_201C000
|
|
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 @ =gUnknown_201C000
|
|
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 sub_813C078
|
|
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 sub_813C078
|
|
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 gUnknown_201C000
|
|
_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 @ =gUnknown_201E3C0
|
|
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 sub_813C078
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C5C8: .4byte 0x00001111
|
|
_0813C5CC: .4byte gUnknown_201E3C0
|
|
_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 @ =gUnknown_201FD00
|
|
ldr r2, _0813C5F8 @ =0x010000e0
|
|
mov r0, sp
|
|
bl CpuSet
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C5F0: .4byte 0x0000ffff
|
|
_0813C5F4: .4byte gUnknown_201FD00
|
|
_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 @ =gUnknown_201F400
|
|
ldr r2, _0813C620 @ =0x01000200
|
|
mov r0, sp
|
|
bl CpuSet
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C618: .4byte 0x0000ffff
|
|
_0813C61C: .4byte gUnknown_201F400
|
|
_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 @ =gUnknown_201C000
|
|
ldr r2, _0813C648 @ =0x01001a00
|
|
mov r0, sp
|
|
bl CpuSet
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C640: .4byte 0x0000ffff
|
|
_0813C644: .4byte gUnknown_201C000
|
|
_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 @ =gUnknown_841623B
|
|
bl sub_813C4CC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813C858: .4byte gUnknown_203F190
|
|
_0813C85C: .4byte gUnknown_841623B
|
|
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.
|