mirror of
https://github.com/pret/pokeemerald-jp.git
synced 2026-09-26 13:32:49 -04:00
1150 lines
19 KiB
ArmAsm
1150 lines
19 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
.text
|
|
.syntax unified
|
|
|
|
thumb_func_start StringCopy10
|
|
StringCopy10: @ 0x08008828
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
movs r5, #5
|
|
movs r3, #0
|
|
_08008830:
|
|
adds r2, r4, r3
|
|
adds r0, r1, r3
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0xff
|
|
bne _08008844
|
|
adds r0, r2, #0
|
|
b _08008854
|
|
_08008844:
|
|
adds r0, r3, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r3, r0, #0x18
|
|
cmp r3, r5
|
|
blo _08008830
|
|
adds r0, r4, r3
|
|
movs r1, #0xff
|
|
strb r1, [r0]
|
|
_08008854:
|
|
pop {r4, r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
thumb_func_end StringCopy10
|
|
|
|
thumb_func_start StringGetEnd10
|
|
StringGetEnd10: @ 0x0800885C
|
|
push {r4, lr}
|
|
adds r3, r0, #0
|
|
movs r4, #5
|
|
movs r2, #0
|
|
_08008864:
|
|
adds r1, r3, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, #0xff
|
|
bne _08008870
|
|
adds r0, r1, #0
|
|
b _08008880
|
|
_08008870:
|
|
adds r0, r2, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
cmp r2, r4
|
|
blo _08008864
|
|
adds r0, r3, r2
|
|
movs r1, #0xff
|
|
strb r1, [r0]
|
|
_08008880:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
thumb_func_end StringGetEnd10
|
|
|
|
thumb_func_start StringCopy7
|
|
StringCopy7: @ 0x08008888
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
movs r5, #5
|
|
movs r3, #0
|
|
_08008890:
|
|
adds r2, r4, r3
|
|
adds r0, r1, r3
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0xff
|
|
bne _080088A4
|
|
adds r0, r2, #0
|
|
b _080088B0
|
|
_080088A4:
|
|
adds r3, #1
|
|
cmp r3, r5
|
|
blt _08008890
|
|
adds r0, r4, r3
|
|
movs r1, #0xff
|
|
strb r1, [r0]
|
|
_080088B0:
|
|
pop {r4, r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
thumb_func_end StringCopy7
|
|
|
|
thumb_func_start StringCopy
|
|
StringCopy: @ 0x080088B8
|
|
push {lr}
|
|
adds r3, r0, #0
|
|
b _080088C4
|
|
_080088BE:
|
|
strb r2, [r3]
|
|
adds r3, #1
|
|
adds r1, #1
|
|
_080088C4:
|
|
ldrb r2, [r1]
|
|
adds r0, r2, #0
|
|
cmp r0, #0xff
|
|
bne _080088BE
|
|
movs r0, #0xff
|
|
strb r0, [r3]
|
|
adds r0, r3, #0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
thumb_func_end StringCopy
|
|
|
|
thumb_func_start StringAppend
|
|
StringAppend: @ 0x080088D8
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
b _080088E0
|
|
_080088DE:
|
|
adds r2, #1
|
|
_080088E0:
|
|
ldrb r0, [r2]
|
|
cmp r0, #0xff
|
|
bne _080088DE
|
|
adds r0, r2, #0
|
|
bl StringCopy
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end StringAppend
|
|
|
|
thumb_func_start StringCopyN
|
|
StringCopyN: @ 0x080088F0
|
|
push {r4, r5, r6, lr}
|
|
adds r4, r0, #0
|
|
adds r6, r1, #0
|
|
lsls r2, r2, #0x18
|
|
lsrs r5, r2, #0x18
|
|
movs r3, #0
|
|
adds r0, r5, #0
|
|
cmp r3, r0
|
|
bhs _08008916
|
|
adds r2, r0, #0
|
|
_08008904:
|
|
adds r1, r4, r3
|
|
adds r0, r6, r3
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r0, r3, #1
|
|
lsls r0, r0, #0x10
|
|
lsrs r3, r0, #0x10
|
|
cmp r3, r2
|
|
blo _08008904
|
|
_08008916:
|
|
adds r0, r4, r5
|
|
pop {r4, r5, r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
thumb_func_end StringCopyN
|
|
|
|
thumb_func_start StringAppendN
|
|
StringAppendN: @ 0x08008920
|
|
push {lr}
|
|
adds r3, r0, #0
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
b _0800892C
|
|
_0800892A:
|
|
adds r3, #1
|
|
_0800892C:
|
|
ldrb r0, [r3]
|
|
cmp r0, #0xff
|
|
bne _0800892A
|
|
adds r0, r3, #0
|
|
bl StringCopyN
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end StringAppendN
|
|
|
|
thumb_func_start StringLength
|
|
StringLength: @ 0x0800893C
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
movs r1, #0
|
|
ldrb r0, [r2]
|
|
cmp r0, #0xff
|
|
beq _08008956
|
|
_08008948:
|
|
adds r0, r1, #1
|
|
lsls r0, r0, #0x10
|
|
lsrs r1, r0, #0x10
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xff
|
|
bne _08008948
|
|
_08008956:
|
|
adds r0, r1, #0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end StringLength
|
|
|
|
thumb_func_start StringCompare
|
|
StringCompare: @ 0x0800895C
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
b _0800896E
|
|
_08008962:
|
|
cmp r0, #0xff
|
|
bne _0800896A
|
|
movs r0, #0
|
|
b _0800897C
|
|
_0800896A:
|
|
adds r2, #1
|
|
adds r1, #1
|
|
_0800896E:
|
|
ldrb r0, [r2]
|
|
ldrb r3, [r1]
|
|
cmp r0, r3
|
|
beq _08008962
|
|
ldrb r0, [r2]
|
|
ldrb r1, [r1]
|
|
subs r0, r0, r1
|
|
_0800897C:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end StringCompare
|
|
|
|
thumb_func_start StringCompareN
|
|
StringCompareN: @ 0x08008980
|
|
push {r4, lr}
|
|
adds r3, r0, #0
|
|
b _08008998
|
|
_08008986:
|
|
cmp r0, #0xff
|
|
beq _08008994
|
|
adds r3, #1
|
|
adds r1, #1
|
|
subs r2, #1
|
|
cmp r2, #0
|
|
bne _08008998
|
|
_08008994:
|
|
movs r0, #0
|
|
b _080089A6
|
|
_08008998:
|
|
ldrb r0, [r3]
|
|
ldrb r4, [r1]
|
|
cmp r0, r4
|
|
beq _08008986
|
|
ldrb r0, [r3]
|
|
ldrb r1, [r1]
|
|
subs r0, r0, r1
|
|
_080089A6:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end StringCompareN
|
|
|
|
thumb_func_start IsStringLengthAtLeast
|
|
IsStringLengthAtLeast: @ 0x080089AC
|
|
push {lr}
|
|
adds r3, r0, #0
|
|
movs r2, #0
|
|
cmp r2, r1
|
|
bge _080089D0
|
|
_080089B6:
|
|
adds r0, r3, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _080089C6
|
|
cmp r0, #0xff
|
|
beq _080089C6
|
|
movs r0, #1
|
|
b _080089D2
|
|
_080089C6:
|
|
adds r0, r2, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
cmp r2, r1
|
|
blt _080089B6
|
|
_080089D0:
|
|
movs r0, #0
|
|
_080089D2:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
thumb_func_end IsStringLengthAtLeast
|
|
|
|
thumb_func_start ConvertIntToDecimalStringN
|
|
ConvertIntToDecimalStringN: @ 0x080089D8
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r0, #0
|
|
adds r6, r1, #0
|
|
lsls r3, r3, #0x18
|
|
ldr r0, _08008A28
|
|
lsrs r3, r3, #0x16
|
|
subs r3, #4
|
|
adds r3, r3, r0
|
|
ldr r0, [r3]
|
|
movs r7, #0
|
|
cmp r2, #1
|
|
bne _080089F6
|
|
movs r7, #2
|
|
_080089F6:
|
|
cmp r2, #2
|
|
bne _080089FC
|
|
movs r7, #1
|
|
_080089FC:
|
|
adds r5, r0, #0
|
|
cmp r5, #0
|
|
ble _08008A68
|
|
ldr r0, _08008A2C
|
|
mov r8, r0
|
|
_08008A06:
|
|
adds r0, r6, #0
|
|
adds r1, r5, #0
|
|
bl __divsi3
|
|
lsls r0, r0, #0x10
|
|
lsrs r2, r0, #0x10
|
|
adds r0, r5, #0
|
|
muls r0, r2, r0
|
|
subs r1, r6, r0
|
|
cmp r7, #1
|
|
bne _08008A30
|
|
adds r3, r4, #0
|
|
adds r4, #1
|
|
cmp r2, #9
|
|
bls _08008A42
|
|
b _08008A4A
|
|
.align 2, 0
|
|
_08008A28: .4byte 0x082BF44C
|
|
_08008A2C: .4byte 0x082BF43C
|
|
_08008A30:
|
|
cmp r2, #0
|
|
bne _08008A38
|
|
cmp r5, #1
|
|
bne _08008A50
|
|
_08008A38:
|
|
movs r7, #1
|
|
adds r3, r4, #0
|
|
adds r4, #1
|
|
cmp r2, #9
|
|
bhi _08008A4A
|
|
_08008A42:
|
|
mov r6, r8
|
|
adds r0, r2, r6
|
|
ldrb r0, [r0]
|
|
b _08008A4C
|
|
_08008A4A:
|
|
movs r0, #0xac
|
|
_08008A4C:
|
|
strb r0, [r3]
|
|
b _08008A58
|
|
_08008A50:
|
|
cmp r7, #2
|
|
bne _08008A58
|
|
strb r2, [r4]
|
|
adds r4, #1
|
|
_08008A58:
|
|
adds r6, r1, #0
|
|
adds r0, r5, #0
|
|
movs r1, #0xa
|
|
bl __divsi3
|
|
adds r5, r0, #0
|
|
cmp r5, #0
|
|
bgt _08008A06
|
|
_08008A68:
|
|
movs r0, #0xff
|
|
strb r0, [r4]
|
|
adds r0, r4, #0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end ConvertIntToDecimalStringN
|
|
|
|
thumb_func_start ConvertUIntToDecimalStringN
|
|
ConvertUIntToDecimalStringN: @ 0x08008A78
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r0, #0
|
|
adds r6, r1, #0
|
|
lsls r3, r3, #0x18
|
|
ldr r0, _08008AC8
|
|
lsrs r3, r3, #0x16
|
|
subs r3, #4
|
|
adds r3, r3, r0
|
|
ldr r0, [r3]
|
|
movs r7, #0
|
|
cmp r2, #1
|
|
bne _08008A96
|
|
movs r7, #2
|
|
_08008A96:
|
|
cmp r2, #2
|
|
bne _08008A9C
|
|
movs r7, #1
|
|
_08008A9C:
|
|
adds r5, r0, #0
|
|
cmp r5, #0
|
|
ble _08008B08
|
|
ldr r0, _08008ACC
|
|
mov r8, r0
|
|
_08008AA6:
|
|
adds r0, r6, #0
|
|
adds r1, r5, #0
|
|
bl __udivsi3
|
|
lsls r0, r0, #0x10
|
|
lsrs r2, r0, #0x10
|
|
adds r0, r5, #0
|
|
muls r0, r2, r0
|
|
subs r1, r6, r0
|
|
cmp r7, #1
|
|
bne _08008AD0
|
|
adds r3, r4, #0
|
|
adds r4, #1
|
|
cmp r2, #9
|
|
bls _08008AE2
|
|
b _08008AEA
|
|
.align 2, 0
|
|
_08008AC8: .4byte 0x082BF44C
|
|
_08008ACC: .4byte 0x082BF43C
|
|
_08008AD0:
|
|
cmp r2, #0
|
|
bne _08008AD8
|
|
cmp r5, #1
|
|
bne _08008AF0
|
|
_08008AD8:
|
|
movs r7, #1
|
|
adds r3, r4, #0
|
|
adds r4, #1
|
|
cmp r2, #9
|
|
bhi _08008AEA
|
|
_08008AE2:
|
|
mov r6, r8
|
|
adds r0, r2, r6
|
|
ldrb r0, [r0]
|
|
b _08008AEC
|
|
_08008AEA:
|
|
movs r0, #0xac
|
|
_08008AEC:
|
|
strb r0, [r3]
|
|
b _08008AF8
|
|
_08008AF0:
|
|
cmp r7, #2
|
|
bne _08008AF8
|
|
strb r2, [r4]
|
|
adds r4, #1
|
|
_08008AF8:
|
|
adds r6, r1, #0
|
|
adds r0, r5, #0
|
|
movs r1, #0xa
|
|
bl __divsi3
|
|
adds r5, r0, #0
|
|
cmp r5, #0
|
|
bgt _08008AA6
|
|
_08008B08:
|
|
movs r0, #0xff
|
|
strb r0, [r4]
|
|
adds r0, r4, #0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end ConvertUIntToDecimalStringN
|
|
|
|
thumb_func_start ConvertIntToHexStringN
|
|
ConvertIntToHexStringN: @ 0x08008B18
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, #4
|
|
adds r6, r0, #0
|
|
adds r7, r1, #0
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
movs r1, #1
|
|
movs r0, #1
|
|
cmp r1, r3
|
|
bhs _08008B3C
|
|
_08008B30:
|
|
lsls r1, r1, #4
|
|
adds r0, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, r3
|
|
blo _08008B30
|
|
_08008B3C:
|
|
movs r3, #0
|
|
cmp r2, #1
|
|
bne _08008B44
|
|
movs r3, #2
|
|
_08008B44:
|
|
cmp r2, #2
|
|
bne _08008B4A
|
|
movs r3, #1
|
|
_08008B4A:
|
|
adds r5, r1, #0
|
|
cmp r5, #0
|
|
ble _08008BB8
|
|
ldr r0, _08008B7C
|
|
mov r8, r0
|
|
_08008B54:
|
|
adds r0, r7, #0
|
|
adds r1, r5, #0
|
|
str r3, [sp]
|
|
bl __divsi3
|
|
adds r4, r0, #0
|
|
adds r0, r7, #0
|
|
adds r1, r5, #0
|
|
bl __modsi3
|
|
adds r1, r0, #0
|
|
ldr r3, [sp]
|
|
cmp r3, #1
|
|
bne _08008B80
|
|
adds r2, r6, #0
|
|
adds r6, #1
|
|
cmp r4, #0xf
|
|
bls _08008B92
|
|
b _08008B9A
|
|
.align 2, 0
|
|
_08008B7C: .4byte 0x082BF43C
|
|
_08008B80:
|
|
cmp r4, #0
|
|
bne _08008B88
|
|
cmp r5, #1
|
|
bne _08008BA0
|
|
_08008B88:
|
|
movs r3, #1
|
|
adds r2, r6, #0
|
|
adds r6, #1
|
|
cmp r4, #0xf
|
|
bhi _08008B9A
|
|
_08008B92:
|
|
mov r7, r8
|
|
adds r0, r4, r7
|
|
ldrb r0, [r0]
|
|
b _08008B9C
|
|
_08008B9A:
|
|
movs r0, #0xac
|
|
_08008B9C:
|
|
strb r0, [r2]
|
|
b _08008BA8
|
|
_08008BA0:
|
|
cmp r3, #2
|
|
bne _08008BA8
|
|
strb r4, [r6]
|
|
adds r6, #1
|
|
_08008BA8:
|
|
adds r7, r1, #0
|
|
adds r0, r5, #0
|
|
cmp r5, #0
|
|
bge _08008BB2
|
|
adds r0, #0xf
|
|
_08008BB2:
|
|
asrs r5, r0, #4
|
|
cmp r5, #0
|
|
bgt _08008B54
|
|
_08008BB8:
|
|
movs r0, #0xff
|
|
strb r0, [r6]
|
|
adds r0, r6, #0
|
|
add sp, #4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
thumb_func_end ConvertIntToHexStringN
|
|
|
|
thumb_func_start StringExpandPlaceholders
|
|
StringExpandPlaceholders: @ 0x08008BCC
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r5, r1, #0
|
|
_08008BD2:
|
|
ldrb r2, [r5]
|
|
adds r5, #1
|
|
adds r0, r2, #0
|
|
subs r0, #0xfa
|
|
cmp r0, #5
|
|
bhi _08008CA6
|
|
lsls r0, r0, #2
|
|
ldr r1, _08008BE8
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08008BE8: .4byte 0x08008BEC
|
|
_08008BEC: @ jump table
|
|
.4byte _08008CA6 @ case 0
|
|
.4byte _08008CA6 @ case 1
|
|
.4byte _08008C18 @ case 2
|
|
.4byte _08008C04 @ case 3
|
|
.4byte _08008CA6 @ case 4
|
|
.4byte _08008CAC @ case 5
|
|
_08008C04:
|
|
ldrb r0, [r5]
|
|
adds r5, #1
|
|
bl GetExpandedPlaceholder
|
|
adds r1, r0, #0
|
|
adds r0, r4, #0
|
|
bl StringExpandPlaceholders
|
|
adds r4, r0, #0
|
|
b _08008BD2
|
|
_08008C18:
|
|
strb r2, [r4]
|
|
adds r4, #1
|
|
ldrb r2, [r5]
|
|
adds r5, #1
|
|
strb r2, [r4]
|
|
adds r4, #1
|
|
subs r0, r2, #4
|
|
cmp r0, #0x14
|
|
bhi _08008C9C
|
|
lsls r0, r0, #2
|
|
ldr r1, _08008C34
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08008C34: .4byte 0x08008C38
|
|
_08008C38: @ jump table
|
|
.4byte _08008C8C @ case 0
|
|
.4byte _08008C9C @ case 1
|
|
.4byte _08008C9C @ case 2
|
|
.4byte _08008BD2 @ case 3
|
|
.4byte _08008C9C @ case 4
|
|
.4byte _08008BD2 @ case 5
|
|
.4byte _08008C9C @ case 6
|
|
.4byte _08008C94 @ case 7
|
|
.4byte _08008C9C @ case 8
|
|
.4byte _08008C9C @ case 9
|
|
.4byte _08008C9C @ case 10
|
|
.4byte _08008BD2 @ case 11
|
|
.4byte _08008C9C @ case 12
|
|
.4byte _08008C9C @ case 13
|
|
.4byte _08008C9C @ case 14
|
|
.4byte _08008C9C @ case 15
|
|
.4byte _08008C9C @ case 16
|
|
.4byte _08008BD2 @ case 17
|
|
.4byte _08008BD2 @ case 18
|
|
.4byte _08008BD2 @ case 19
|
|
.4byte _08008BD2 @ case 20
|
|
_08008C8C:
|
|
ldrb r0, [r5]
|
|
strb r0, [r4]
|
|
adds r5, #1
|
|
adds r4, #1
|
|
_08008C94:
|
|
ldrb r0, [r5]
|
|
strb r0, [r4]
|
|
adds r5, #1
|
|
adds r4, #1
|
|
_08008C9C:
|
|
ldrb r0, [r5]
|
|
strb r0, [r4]
|
|
adds r5, #1
|
|
adds r4, #1
|
|
b _08008BD2
|
|
_08008CA6:
|
|
strb r2, [r4]
|
|
adds r4, #1
|
|
b _08008BD2
|
|
_08008CAC:
|
|
movs r0, #0xff
|
|
strb r0, [r4]
|
|
adds r0, r4, #0
|
|
pop {r4, r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end StringExpandPlaceholders
|
|
|
|
thumb_func_start StringBraille
|
|
StringBraille: @ 0x08008CB8
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
adds r5, r0, #0
|
|
adds r6, r1, #0
|
|
ldr r1, _08008CF0
|
|
mov r0, sp
|
|
movs r2, #4
|
|
bl memcpy
|
|
add r4, sp, #4
|
|
ldr r1, _08008CF4
|
|
adds r0, r4, #0
|
|
movs r2, #5
|
|
bl memcpy
|
|
adds r0, r5, #0
|
|
mov r1, sp
|
|
_08008CDA:
|
|
bl StringCopy
|
|
adds r5, r0, #0
|
|
_08008CE0:
|
|
ldrb r0, [r6]
|
|
adds r6, #1
|
|
cmp r0, #0xfe
|
|
beq _08008CF8
|
|
cmp r0, #0xff
|
|
bne _08008CFE
|
|
b _08008D0A
|
|
.align 2, 0
|
|
_08008CF0: .4byte 0x082BF474
|
|
_08008CF4: .4byte 0x082BF478
|
|
_08008CF8:
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
b _08008CDA
|
|
_08008CFE:
|
|
strb r0, [r5]
|
|
adds r5, #1
|
|
adds r0, #0x40
|
|
strb r0, [r5]
|
|
adds r5, #1
|
|
b _08008CE0
|
|
_08008D0A:
|
|
strb r0, [r5]
|
|
adds r0, r5, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
thumb_func_end StringBraille
|
|
|
|
thumb_func_start ExpandPlaceholder_UnknownStringVar
|
|
ExpandPlaceholder_UnknownStringVar: @ 0x08008D18
|
|
ldr r0, _08008D1C
|
|
bx lr
|
|
.align 2, 0
|
|
_08008D1C: .4byte 0x02022064
|
|
thumb_func_end ExpandPlaceholder_UnknownStringVar
|
|
|
|
thumb_func_start ExpandPlaceholder_PlayerName
|
|
ExpandPlaceholder_PlayerName: @ 0x08008D20
|
|
ldr r0, _08008D28
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08008D28: .4byte 0x03005AF0
|
|
thumb_func_end ExpandPlaceholder_PlayerName
|
|
|
|
thumb_func_start ExpandPlaceholder_StringVar1
|
|
ExpandPlaceholder_StringVar1: @ 0x08008D2C
|
|
ldr r0, _08008D30
|
|
bx lr
|
|
.align 2, 0
|
|
_08008D30: .4byte 0x02021C40
|
|
thumb_func_end ExpandPlaceholder_StringVar1
|
|
|
|
thumb_func_start ExpandPlaceholder_StringVar2
|
|
ExpandPlaceholder_StringVar2: @ 0x08008D34
|
|
ldr r0, _08008D38
|
|
bx lr
|
|
.align 2, 0
|
|
_08008D38: .4byte 0x02021C54
|
|
thumb_func_end ExpandPlaceholder_StringVar2
|
|
|
|
thumb_func_start ExpandPlaceholder_StringVar3
|
|
ExpandPlaceholder_StringVar3: @ 0x08008D3C
|
|
ldr r0, _08008D40
|
|
bx lr
|
|
.align 2, 0
|
|
_08008D40: .4byte 0x02021C68
|
|
thumb_func_end ExpandPlaceholder_StringVar3
|
|
|
|
thumb_func_start ExpandPlaceholder_KunChan
|
|
ExpandPlaceholder_KunChan: @ 0x08008D44
|
|
push {lr}
|
|
ldr r0, _08008D54
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #0
|
|
beq _08008D5C
|
|
ldr r0, _08008D58
|
|
b _08008D5E
|
|
.align 2, 0
|
|
_08008D54: .4byte 0x03005AF0
|
|
_08008D58: .4byte 0x085C8C28
|
|
_08008D5C:
|
|
ldr r0, _08008D64
|
|
_08008D5E:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08008D64: .4byte 0x085C8C25
|
|
thumb_func_end ExpandPlaceholder_KunChan
|
|
|
|
thumb_func_start ExpandPlaceholder_RivalName
|
|
ExpandPlaceholder_RivalName: @ 0x08008D68
|
|
push {lr}
|
|
ldr r0, _08008D78
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #0
|
|
beq _08008D80
|
|
ldr r0, _08008D7C
|
|
b _08008D82
|
|
.align 2, 0
|
|
_08008D78: .4byte 0x03005AF0
|
|
_08008D7C: .4byte 0x085C8C5A
|
|
_08008D80:
|
|
ldr r0, _08008D88
|
|
_08008D82:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08008D88: .4byte 0x085C8C5E
|
|
thumb_func_end ExpandPlaceholder_RivalName
|
|
|
|
thumb_func_start ExpandPlaceholder_Version
|
|
ExpandPlaceholder_Version: @ 0x08008D8C
|
|
ldr r0, _08008D90
|
|
bx lr
|
|
.align 2, 0
|
|
_08008D90: .4byte 0x085C8C36
|
|
thumb_func_end ExpandPlaceholder_Version
|
|
|
|
thumb_func_start ExpandPlaceholder_Aqua
|
|
ExpandPlaceholder_Aqua: @ 0x08008D94
|
|
ldr r0, _08008D98
|
|
bx lr
|
|
.align 2, 0
|
|
_08008D98: .4byte 0x085C8C3C
|
|
thumb_func_end ExpandPlaceholder_Aqua
|
|
|
|
thumb_func_start ExpandPlaceholder_Magma
|
|
ExpandPlaceholder_Magma: @ 0x08008D9C
|
|
ldr r0, _08008DA0
|
|
bx lr
|
|
.align 2, 0
|
|
_08008DA0: .4byte 0x085C8C40
|
|
thumb_func_end ExpandPlaceholder_Magma
|
|
|
|
thumb_func_start ExpandPlaceholder_Archie
|
|
ExpandPlaceholder_Archie: @ 0x08008DA4
|
|
ldr r0, _08008DA8
|
|
bx lr
|
|
.align 2, 0
|
|
_08008DA8: .4byte 0x085C8C44
|
|
thumb_func_end ExpandPlaceholder_Archie
|
|
|
|
thumb_func_start ExpandPlaceholder_Maxie
|
|
ExpandPlaceholder_Maxie: @ 0x08008DAC
|
|
ldr r0, _08008DB0
|
|
bx lr
|
|
.align 2, 0
|
|
_08008DB0: .4byte 0x085C8C49
|
|
thumb_func_end ExpandPlaceholder_Maxie
|
|
|
|
thumb_func_start ExpandPlaceholder_Kyogre
|
|
ExpandPlaceholder_Kyogre: @ 0x08008DB4
|
|
ldr r0, _08008DB8
|
|
bx lr
|
|
.align 2, 0
|
|
_08008DB8: .4byte 0x085C8C4E
|
|
thumb_func_end ExpandPlaceholder_Kyogre
|
|
|
|
thumb_func_start ExpandPlaceholder_Groudon
|
|
ExpandPlaceholder_Groudon: @ 0x08008DBC
|
|
ldr r0, _08008DC0
|
|
bx lr
|
|
.align 2, 0
|
|
_08008DC0: .4byte 0x085C8C54
|
|
thumb_func_end ExpandPlaceholder_Groudon
|
|
|
|
thumb_func_start GetExpandedPlaceholder
|
|
GetExpandedPlaceholder: @ 0x08008DC4
|
|
push {lr}
|
|
cmp r0, #0xd
|
|
bhi _08008DDC
|
|
ldr r1, _08008DD8
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
b _08008DDE
|
|
.align 2, 0
|
|
_08008DD8: .4byte 0x082BF480
|
|
_08008DDC:
|
|
ldr r0, _08008DE4
|
|
_08008DDE:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08008DE4: .4byte 0x085C8C24
|
|
thumb_func_end GetExpandedPlaceholder
|
|
|
|
thumb_func_start StringFill
|
|
StringFill: @ 0x08008DE8
|
|
push {lr}
|
|
adds r3, r0, #0
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
lsls r2, r2, #0x10
|
|
lsrs r2, r2, #0x10
|
|
movs r0, #0
|
|
cmp r0, r2
|
|
bhs _08008E08
|
|
_08008DFA:
|
|
strb r1, [r3]
|
|
adds r3, #1
|
|
adds r0, #1
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, r2
|
|
blo _08008DFA
|
|
_08008E08:
|
|
movs r0, #0xff
|
|
strb r0, [r3]
|
|
adds r0, r3, #0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
thumb_func_end StringFill
|
|
|
|
thumb_func_start StringCopyPadded
|
|
StringCopyPadded: @ 0x08008E14
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r5, r1, #0
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
lsls r3, r3, #0x10
|
|
lsrs r3, r3, #0x10
|
|
b _08008E34
|
|
_08008E24:
|
|
strb r1, [r4]
|
|
adds r5, #1
|
|
adds r4, #1
|
|
cmp r3, #0
|
|
beq _08008E34
|
|
subs r0, r3, #1
|
|
lsls r0, r0, #0x10
|
|
lsrs r3, r0, #0x10
|
|
_08008E34:
|
|
ldrb r1, [r5]
|
|
adds r0, r1, #0
|
|
cmp r0, #0xff
|
|
bne _08008E24
|
|
subs r0, r3, #1
|
|
lsls r0, r0, #0x10
|
|
lsrs r3, r0, #0x10
|
|
ldr r0, _08008E64
|
|
cmp r3, r0
|
|
beq _08008E58
|
|
adds r1, r0, #0
|
|
_08008E4A:
|
|
strb r2, [r4]
|
|
adds r4, #1
|
|
subs r0, r3, #1
|
|
lsls r0, r0, #0x10
|
|
lsrs r3, r0, #0x10
|
|
cmp r3, r1
|
|
bne _08008E4A
|
|
_08008E58:
|
|
movs r0, #0xff
|
|
strb r0, [r4]
|
|
adds r0, r4, #0
|
|
pop {r4, r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08008E64: .4byte 0x0000FFFF
|
|
thumb_func_end StringCopyPadded
|
|
|
|
thumb_func_start StringFillWithTerminator
|
|
StringFillWithTerminator: @ 0x08008E68
|
|
push {lr}
|
|
lsls r2, r1, #0x10
|
|
lsrs r2, r2, #0x10
|
|
movs r1, #0xff
|
|
bl StringFill
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end StringFillWithTerminator
|
|
|
|
thumb_func_start StringCopyN_Multibyte
|
|
StringCopyN_Multibyte: @ 0x08008E78
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r3, r1, #0
|
|
subs r2, #1
|
|
movs r5, #1
|
|
rsbs r5, r5, #0
|
|
b _08008E9E
|
|
_08008E86:
|
|
strb r0, [r4]
|
|
adds r3, #1
|
|
adds r4, #1
|
|
subs r0, r3, #1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xf9
|
|
bne _08008E9C
|
|
ldrb r0, [r3]
|
|
strb r0, [r4]
|
|
adds r3, #1
|
|
adds r4, #1
|
|
_08008E9C:
|
|
subs r2, #1
|
|
_08008E9E:
|
|
cmp r2, r5
|
|
beq _08008EAA
|
|
ldrb r0, [r3]
|
|
adds r1, r0, #0
|
|
cmp r1, #0xff
|
|
bne _08008E86
|
|
_08008EAA:
|
|
movs r0, #0xff
|
|
strb r0, [r4]
|
|
adds r0, r4, #0
|
|
pop {r4, r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
thumb_func_end StringCopyN_Multibyte
|
|
|
|
thumb_func_start StringLength_Multibyte
|
|
StringLength_Multibyte: @ 0x08008EB8
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
movs r3, #0
|
|
b _08008ECA
|
|
_08008EC0:
|
|
cmp r1, #0xf9
|
|
bne _08008EC6
|
|
adds r2, #1
|
|
_08008EC6:
|
|
adds r2, #1
|
|
adds r3, #1
|
|
_08008ECA:
|
|
ldrb r1, [r2]
|
|
adds r0, r1, #0
|
|
cmp r0, #0xff
|
|
bne _08008EC0
|
|
adds r0, r3, #0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end StringLength_Multibyte
|
|
|
|
thumb_func_start WriteColorChangeControlCode
|
|
WriteColorChangeControlCode: @ 0x08008ED8
|
|
push {lr}
|
|
adds r3, r0, #0
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
movs r0, #0xfc
|
|
strb r0, [r3]
|
|
adds r3, #1
|
|
cmp r1, #1
|
|
beq _08008EFA
|
|
cmp r1, #1
|
|
blo _08008EF4
|
|
cmp r1, #2
|
|
beq _08008F00
|
|
b _08008F04
|
|
_08008EF4:
|
|
movs r0, #1
|
|
strb r0, [r3]
|
|
b _08008F02
|
|
_08008EFA:
|
|
movs r0, #3
|
|
strb r0, [r3]
|
|
b _08008F02
|
|
_08008F00:
|
|
strb r1, [r3]
|
|
_08008F02:
|
|
adds r3, #1
|
|
_08008F04:
|
|
strb r2, [r3]
|
|
adds r3, #1
|
|
movs r0, #0xff
|
|
strb r0, [r3]
|
|
adds r0, r3, #0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
thumb_func_end WriteColorChangeControlCode
|
|
|
|
thumb_func_start IsStringJapanese
|
|
IsStringJapanese: @ 0x08008F14
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
b _08008F2A
|
|
_08008F1A:
|
|
adds r0, r1, #0
|
|
cmp r0, #0xa0
|
|
bhi _08008F28
|
|
cmp r0, #0
|
|
beq _08008F28
|
|
movs r0, #1
|
|
b _08008F34
|
|
_08008F28:
|
|
adds r2, #1
|
|
_08008F2A:
|
|
ldrb r1, [r2]
|
|
adds r0, r1, #0
|
|
cmp r0, #0xff
|
|
bne _08008F1A
|
|
movs r0, #0
|
|
_08008F34:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end IsStringJapanese
|
|
|
|
thumb_func_start sub_08008F38
|
|
sub_08008F38: @ 0x08008F38
|
|
push {r4, lr}
|
|
adds r3, r0, #0
|
|
adds r4, r1, #0
|
|
movs r1, #0
|
|
b _08008F54
|
|
_08008F42:
|
|
adds r0, r2, #0
|
|
cmp r0, #0xa0
|
|
bhi _08008F50
|
|
cmp r0, #0
|
|
beq _08008F50
|
|
movs r0, #1
|
|
b _08008F62
|
|
_08008F50:
|
|
adds r3, #1
|
|
adds r1, #1
|
|
_08008F54:
|
|
ldrb r2, [r3]
|
|
adds r0, r2, #0
|
|
cmp r0, #0xff
|
|
beq _08008F60
|
|
cmp r1, r4
|
|
blt _08008F42
|
|
_08008F60:
|
|
movs r0, #0
|
|
_08008F62:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_08008F38
|
|
|