mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-22 08:44:20 -05:00
Split libc.s, 3
This commit is contained in:
@@ -563,6 +563,15 @@ Static arm9
|
||||
Object MSL_mem.o
|
||||
Object MSL_mem_funcs.o
|
||||
Object MSL_printf.o
|
||||
Object MSL_qsort.o
|
||||
Object MSL_rand.o
|
||||
Object MSL_scanf.o
|
||||
Object MSL_signal.o
|
||||
Object MSL_string.o
|
||||
Object MSL_strtold.o
|
||||
Object MSL_strtoul.o
|
||||
Object MSL_wchar_io.o
|
||||
Object MSL_wmem.o
|
||||
Object libc.o
|
||||
Object stdlibmwcc.o
|
||||
}
|
||||
|
||||
@@ -26,3 +26,23 @@ __upper_mapC: ; 0x0210428C
|
||||
.byte 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F
|
||||
.byte 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F
|
||||
.size __upper_mapC,.-__upper_mapC
|
||||
|
||||
.global __msl_digit
|
||||
__msl_digit: ; 0x0210430C
|
||||
.short 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004
|
||||
.short 0x0004, 0x0106, 0x0104, 0x0104, 0x0104, 0x0104, 0x0004, 0x0004
|
||||
.short 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004
|
||||
.short 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004
|
||||
.short 0x0142, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0
|
||||
.short 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0
|
||||
.short 0x0458, 0x0458, 0x0458, 0x0458, 0x0458, 0x0458, 0x0458, 0x0458
|
||||
.short 0x0458, 0x0458, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0
|
||||
.short 0x00D0, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0251
|
||||
.short 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251
|
||||
.short 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251
|
||||
.short 0x0251, 0x0251, 0x0251, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0
|
||||
.short 0x00D0, 0x0471, 0x0471, 0x0471, 0x0471, 0x0471, 0x0471, 0x0071
|
||||
.short 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071
|
||||
.short 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071
|
||||
.short 0x0071, 0x0071, 0x0071, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x0004
|
||||
.size __msl_digit,.-__msl_digit
|
||||
|
||||
@@ -8,86 +8,76 @@
|
||||
.extern memchr
|
||||
.extern fwide
|
||||
.extern fabs
|
||||
|
||||
.rodata
|
||||
|
||||
.global UNK_0210430C
|
||||
UNK_0210430C: ; 0x0210430C
|
||||
.byte 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00
|
||||
.byte 0x04, 0x00, 0x06, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x00, 0x04, 0x00
|
||||
.byte 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00
|
||||
.byte 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00
|
||||
.byte 0x42, 0x01, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00
|
||||
.byte 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00
|
||||
.byte 0x58, 0x04, 0x58, 0x04, 0x58, 0x04, 0x58, 0x04, 0x58, 0x04, 0x58, 0x04, 0x58, 0x04, 0x58, 0x04
|
||||
.byte 0x58, 0x04, 0x58, 0x04, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00
|
||||
.byte 0xD0, 0x00, 0x51, 0x06, 0x51, 0x06, 0x51, 0x06, 0x51, 0x06, 0x51, 0x06, 0x51, 0x06, 0x51, 0x02
|
||||
.byte 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02
|
||||
.byte 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02
|
||||
.byte 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00
|
||||
.byte 0xD0, 0x00, 0x71, 0x04, 0x71, 0x04, 0x71, 0x04, 0x71, 0x04, 0x71, 0x04, 0x71, 0x04, 0x71, 0x00
|
||||
.byte 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00
|
||||
.byte 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00
|
||||
.byte 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0x04, 0x00
|
||||
.size UNK_0210430C,.-UNK_0210430C
|
||||
.extern __msl_digit
|
||||
|
||||
.data
|
||||
.global UNK_02106DA0
|
||||
UNK_02106DA0: ; 0x02106DA0
|
||||
.byte 0x30, 0x78, 0x30, 0x70, 0x30, 0x00, 0x00, 0x00
|
||||
.size UNK_02106DA0,.-UNK_02106DA0
|
||||
|
||||
.global UNK_02106DA8
|
||||
UNK_02106DA8: ; 0x02106DA8
|
||||
.asciz "-INF"
|
||||
.size UNK_02106DA8,.-UNK_02106DA8
|
||||
|
||||
.balign 4, 0
|
||||
.global UNK_02106DB0
|
||||
UNK_02106DB0: ; 0x02106DB0
|
||||
.asciz "-inf"
|
||||
.size UNK_02106DB0,.-UNK_02106DB0
|
||||
|
||||
.balign 4, 0
|
||||
.global UNK_02106DB8
|
||||
UNK_02106DB8: ; 0x02106DB8
|
||||
.asciz "INF"
|
||||
.size UNK_02106DB8,.-UNK_02106DB8
|
||||
|
||||
.balign 4, 0
|
||||
.global UNK_02106DBC
|
||||
UNK_02106DBC: ; 0x02106DBC
|
||||
.asciz "inf"
|
||||
.size UNK_02106DBC,.-UNK_02106DBC
|
||||
|
||||
.balign 4, 0
|
||||
.global UNK_02106DC0
|
||||
UNK_02106DC0: ; 0x02106DC0
|
||||
.asciz "-NAN"
|
||||
.size UNK_02106DC0,.-UNK_02106DC0
|
||||
|
||||
.balign 4, 0
|
||||
.global UNK_02106DC8
|
||||
UNK_02106DC8: ; 0x02106DC8
|
||||
.asciz "-nan"
|
||||
.size UNK_02106DC8,.-UNK_02106DC8
|
||||
|
||||
.balign 4, 0
|
||||
.global UNK_02106DD0
|
||||
UNK_02106DD0: ; 0x02106DD0
|
||||
.asciz "NAN"
|
||||
.size UNK_02106DD0,.-UNK_02106DD0
|
||||
|
||||
.balign 4, 0
|
||||
.global UNK_02106DD4
|
||||
UNK_02106DD4: ; 0x02106DD4
|
||||
.asciz "nan"
|
||||
.size UNK_02106DD4,.-UNK_02106DD4
|
||||
|
||||
.balign 4, 0
|
||||
.global UNK_02106DD8
|
||||
UNK_02106DD8: ; 0x02106DD8
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.size UNK_02106DD8,.-UNK_02106DD8
|
||||
|
||||
.global UNK_02106DDC
|
||||
UNK_02106DDC: ; 0x02106DDC
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.size UNK_02106DDC,.-UNK_02106DDC
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start parse_format_printf
|
||||
parse_format_printf: ; 0x020DF600
|
||||
local_arm_func_start parse_format
|
||||
parse_format: ; 0x020DF600
|
||||
stmdb sp!, {r4-r8,lr}
|
||||
sub sp, sp, #0x10
|
||||
ldrsb r3, [r0, #0x1]
|
||||
@@ -181,7 +171,7 @@ _020DF73C:
|
||||
ldrsb r3, [r12, #0x1]!
|
||||
b _020DF794
|
||||
_020DF744:
|
||||
ldr r4, _020DFB88 ; =UNK_0210430C
|
||||
ldr r4, _020DFB88 ; =__msl_digit
|
||||
mov r5, #0x0
|
||||
mov r0, #0xa
|
||||
b _020DF768
|
||||
@@ -238,7 +228,7 @@ _020DF7C4:
|
||||
strltb r0, [sp, #0x2]
|
||||
b _020DF858
|
||||
_020DF808:
|
||||
ldr r2, _020DFB88 ; =UNK_0210430C
|
||||
ldr r2, _020DFB88 ; =__msl_digit
|
||||
mov r4, #0x0
|
||||
mov r0, #0xa
|
||||
b _020DF82C
|
||||
@@ -494,9 +484,9 @@ _020DFB70:
|
||||
add sp, sp, #0x10
|
||||
ldmia sp!, {r4-r8,pc}
|
||||
.balign 4
|
||||
_020DFB88: .word UNK_0210430C
|
||||
_020DFB88: .word __msl_digit
|
||||
_020DFB8C: .word 0x000001FD
|
||||
arm_func_end parse_format_printf
|
||||
arm_func_end parse_format
|
||||
|
||||
arm_func_start long2str
|
||||
long2str: ; 0x020DFB90
|
||||
@@ -1368,7 +1358,7 @@ _020E07BC:
|
||||
mov r1, #0x0
|
||||
b _020E07D4
|
||||
_020E07C4:
|
||||
ldr r1, _020E0DF8 ; =UNK_0210430C
|
||||
ldr r1, _020E0DF8 ; =__msl_digit
|
||||
mov r2, r6, lsl #0x1
|
||||
ldrh r1, [r1, r2]
|
||||
and r1, r1, #0x200
|
||||
@@ -1416,7 +1406,7 @@ _020E0868:
|
||||
mov r1, #0x0
|
||||
b _020E0880
|
||||
_020E0870:
|
||||
ldr r1, _020E0DF8 ; =UNK_0210430C
|
||||
ldr r1, _020E0DF8 ; =__msl_digit
|
||||
mov r2, r6, lsl #0x1
|
||||
ldrh r1, [r1, r2]
|
||||
and r1, r1, #0x200
|
||||
@@ -1463,7 +1453,7 @@ _020E0910:
|
||||
mov r1, #0x0
|
||||
b _020E0928
|
||||
_020E0918:
|
||||
ldr r1, _020E0DF8 ; =UNK_0210430C
|
||||
ldr r1, _020E0DF8 ; =__msl_digit
|
||||
mov r2, r6, lsl #0x1
|
||||
ldrh r1, [r1, r2]
|
||||
and r1, r1, #0x200
|
||||
@@ -1511,7 +1501,7 @@ _020E09BC:
|
||||
mov r1, #0x0
|
||||
b _020E09D4
|
||||
_020E09C4:
|
||||
ldr r1, _020E0DF8 ; =UNK_0210430C
|
||||
ldr r1, _020E0DF8 ; =__msl_digit
|
||||
mov r2, r6, lsl #0x1
|
||||
ldrh r1, [r1, r2]
|
||||
and r1, r1, #0x200
|
||||
@@ -1812,7 +1802,7 @@ _020E0DE0:
|
||||
bx lr
|
||||
.balign 4
|
||||
_020E0DF4: .word 0x000001FD
|
||||
_020E0DF8: .word UNK_0210430C
|
||||
_020E0DF8: .word __msl_digit
|
||||
_020E0DFC: .word UNK_02106DA8
|
||||
_020E0E00: .word UNK_02106DB0
|
||||
_020E0E04: .word UNK_02106DB8
|
||||
@@ -1877,7 +1867,7 @@ _020E0ED4:
|
||||
ldr r0, [sp, #0xc]
|
||||
add r1, sp, #0x25c
|
||||
add r2, sp, #0x1c
|
||||
bl parse_format_printf
|
||||
bl parse_format
|
||||
ldrb r1, [sp, #0x21]
|
||||
mov r11, r0
|
||||
cmp r1, #0x61
|
||||
|
||||
106
arm9/asm/MSL_qsort.s
Normal file
106
arm9/asm/MSL_qsort.s
Normal file
@@ -0,0 +1,106 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start qsort
|
||||
qsort: ; 0x020E1888
|
||||
stmdb sp!, {r3-r11,lr}
|
||||
sub sp, sp, #0x10
|
||||
mov r9, r1
|
||||
cmp r9, #0x2
|
||||
mov r10, r0
|
||||
mov r8, r2
|
||||
mov r7, r3
|
||||
addcc sp, sp, #0x10
|
||||
ldmccia sp!, {r3-r11,pc}
|
||||
mov r0, r9, lsr #0x1
|
||||
add r11, r0, #0x1
|
||||
sub r0, r11, #0x1
|
||||
mla r0, r8, r0, r10
|
||||
sub r2, r9, #0x1
|
||||
str r0, [sp, #0xc]
|
||||
mla r0, r8, r2, r10
|
||||
str r0, [sp, #0x8]
|
||||
mul r0, r11, r8
|
||||
mvn r1, #0x0
|
||||
str r0, [sp, #0x4]
|
||||
mul r0, r8, r1
|
||||
str r0, [sp, #0x0]
|
||||
_020E18E0:
|
||||
cmp r11, #0x1
|
||||
bls _020E1908
|
||||
ldr r0, [sp, #0x4]
|
||||
sub r11, r11, #0x1
|
||||
sub r0, r0, r8
|
||||
str r0, [sp, #0x4]
|
||||
ldr r0, [sp, #0xc]
|
||||
sub r0, r0, r8
|
||||
str r0, [sp, #0xc]
|
||||
b _020E1950
|
||||
_020E1908:
|
||||
mov r2, r8
|
||||
ldr r4, [sp, #0x8]
|
||||
ldr r3, [sp, #0xc]
|
||||
cmp r8, #0x0
|
||||
beq _020E1934
|
||||
_020E191C:
|
||||
ldrsb r0, [r4, #0x0]
|
||||
ldrsb r1, [r3, #0x0]
|
||||
subs r2, r2, #0x1
|
||||
strb r0, [r3], #0x1
|
||||
strb r1, [r4], #0x1
|
||||
bne _020E191C
|
||||
_020E1934:
|
||||
sub r9, r9, #0x1
|
||||
cmp r9, #0x1
|
||||
addeq sp, sp, #0x10
|
||||
ldmeqia sp!, {r3-r11,pc}
|
||||
ldr r0, [sp, #0x8]
|
||||
sub r0, r0, r8
|
||||
str r0, [sp, #0x8]
|
||||
_020E1950:
|
||||
ldr r1, [sp, #0x4]
|
||||
ldr r0, [sp, #0x0]
|
||||
mov r4, r11
|
||||
add r0, r1, r0
|
||||
cmp r9, r11, lsl #0x1
|
||||
add r5, r10, r0
|
||||
blo _020E18E0
|
||||
_020E196C:
|
||||
mov r4, r4, lsl #0x1
|
||||
sub r0, r4, #0x1
|
||||
mov r6, r5
|
||||
mla r5, r8, r0, r10
|
||||
cmp r9, r4
|
||||
bls _020E199C
|
||||
mov r0, r5
|
||||
add r1, r5, r8
|
||||
blx r7
|
||||
cmp r0, #0x0
|
||||
addlt r4, r4, #0x1
|
||||
addlt r5, r5, r8
|
||||
_020E199C:
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
blx r7
|
||||
cmp r0, #0x0
|
||||
bge _020E18E0
|
||||
mov r2, r8
|
||||
mov r3, r5
|
||||
cmp r8, #0x0
|
||||
beq _020E19D8
|
||||
_020E19C0:
|
||||
ldrsb r1, [r6, #0x0]
|
||||
ldrsb r0, [r3, #0x0]
|
||||
subs r2, r2, #0x1
|
||||
strb r0, [r6], #0x1
|
||||
strb r1, [r3], #0x1
|
||||
bne _020E19C0
|
||||
_020E19D8:
|
||||
cmp r9, r4, lsl #0x1
|
||||
bhs _020E196C
|
||||
b _020E18E0
|
||||
add sp, sp, #0x10
|
||||
ldmia sp!, {r3-r11,pc}
|
||||
arm_func_end qsort
|
||||
38
arm9/asm/MSL_rand.s
Normal file
38
arm9/asm/MSL_rand.s
Normal file
@@ -0,0 +1,38 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.data
|
||||
|
||||
.global random_next
|
||||
random_next: ; 0x02106DE0
|
||||
.word 0x00000001
|
||||
.size random_next,.-random_next
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start rand
|
||||
rand: ; 0x020E19EC
|
||||
ldr r2, _020E1A14 ; =random_next
|
||||
ldr r0, _020E1A18 ; =0x41C64E6D
|
||||
ldr r3, [r2, #0x0]
|
||||
ldr r1, _020E1A1C ; =0x00007FFF
|
||||
mul r0, r3, r0
|
||||
add r0, r0, #0x39
|
||||
add r0, r0, #0x3000
|
||||
str r0, [r2, #0x0]
|
||||
and r0, r1, r0, lsr #0x10
|
||||
bx lr
|
||||
.balign 4
|
||||
_020E1A14: .word random_next
|
||||
_020E1A18: .word 0x41C64E6D
|
||||
_020E1A1C: .word 0x00007FFF
|
||||
arm_func_end rand
|
||||
|
||||
arm_func_start srand
|
||||
srand: ; 0x020E1A20
|
||||
ldr r1, _020E1A2C ; =random_next
|
||||
str r0, [r1, #0x0]
|
||||
bx lr
|
||||
.balign 4
|
||||
_020E1A2C: .word random_next
|
||||
arm_func_end srand
|
||||
1450
arm9/asm/MSL_scanf.s
Normal file
1450
arm9/asm/MSL_scanf.s
Normal file
File diff suppressed because it is too large
Load Diff
105
arm9/asm/MSL_signal.s
Normal file
105
arm9/asm/MSL_signal.s
Normal file
@@ -0,0 +1,105 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
.extern OSi_ThreadInfo
|
||||
.extern __cs_id
|
||||
.extern __cs_ref
|
||||
.extern __cs
|
||||
|
||||
.bss
|
||||
|
||||
.global signal_funcs
|
||||
signal_funcs: ; 0x021D74AC
|
||||
.space 0x1c
|
||||
.size signal_funcs,.-signal_funcs
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start raise
|
||||
raise: ; 0x020E2D7C
|
||||
stmdb sp!, {r3-r5,lr}
|
||||
mov r5, r0
|
||||
cmp r5, #0x1
|
||||
blt _020E2D94
|
||||
cmp r5, #0x7
|
||||
ble _020E2D9C
|
||||
_020E2D94:
|
||||
mvn r0, #0x0
|
||||
ldmia sp!, {r3-r5,pc}
|
||||
_020E2D9C:
|
||||
ldr r0, _020E2E98 ; =__cs + 0xA8
|
||||
bl OS_TryLockMutex
|
||||
cmp r0, #0x0
|
||||
bne _020E2DD0
|
||||
ldr r0, _020E2E9C ; =OSi_ThreadInfo
|
||||
ldr r1, _020E2EA0 ; =__cs_id
|
||||
ldr r2, [r0, #0x4]
|
||||
ldr r0, _020E2EA4 ; =__cs_ref
|
||||
ldr r3, [r2, #0x6c]
|
||||
mov r2, #0x1
|
||||
str r3, [r1, #0x1c]
|
||||
str r2, [r0, #0x1c]
|
||||
b _020E2E28
|
||||
_020E2DD0:
|
||||
ldr r0, _020E2E9C ; =OSi_ThreadInfo
|
||||
ldr r1, _020E2EA0 ; =__cs_id
|
||||
ldr r0, [r0, #0x4]
|
||||
ldr r1, [r1, #0x1c]
|
||||
ldr r0, [r0, #0x6c]
|
||||
cmp r1, r0
|
||||
bne _020E2E00
|
||||
ldr r0, _020E2EA4 ; =__cs_ref
|
||||
ldr r1, [r0, #0x1c]
|
||||
add r1, r1, #0x1
|
||||
str r1, [r0, #0x1c]
|
||||
b _020E2E28
|
||||
_020E2E00:
|
||||
ldr r0, _020E2E98 ; =__cs + 0xA8
|
||||
bl OS_LockMutex
|
||||
ldr r0, _020E2E9C ; =OSi_ThreadInfo
|
||||
ldr r1, _020E2EA0 ; =__cs_id
|
||||
ldr r2, [r0, #0x4]
|
||||
ldr r0, _020E2EA4 ; =__cs_ref
|
||||
ldr r3, [r2, #0x6c]
|
||||
mov r2, #0x1
|
||||
str r3, [r1, #0x1c]
|
||||
str r2, [r0, #0x1c]
|
||||
_020E2E28:
|
||||
ldr r1, _020E2EA8 ; =signal_funcs
|
||||
sub r2, r5, #0x1
|
||||
ldr r4, [r1, r2, lsl #0x2]
|
||||
cmp r4, #0x1
|
||||
movne r0, #0x0
|
||||
strne r0, [r1, r2, lsl #0x2]
|
||||
ldr r0, _020E2EA4 ; =__cs_ref
|
||||
ldr r1, [r0, #0x1c]
|
||||
subs r1, r1, #0x1
|
||||
str r1, [r0, #0x1c]
|
||||
bne _020E2E5C
|
||||
ldr r0, _020E2E98 ; =__cs + 0xA8
|
||||
bl OS_UnlockMutex
|
||||
_020E2E5C:
|
||||
cmp r4, #0x1
|
||||
beq _020E2E70
|
||||
cmp r4, #0x0
|
||||
cmpeq r5, #0x1
|
||||
bne _020E2E78
|
||||
_020E2E70:
|
||||
mov r0, #0x0
|
||||
ldmia sp!, {r3-r5,pc}
|
||||
_020E2E78:
|
||||
cmp r4, #0x0
|
||||
bne _020E2E88
|
||||
mov r0, #0x0
|
||||
bl exit
|
||||
_020E2E88:
|
||||
mov r0, r5
|
||||
blx r4
|
||||
mov r0, #0x0
|
||||
ldmia sp!, {r3-r5,pc}
|
||||
.balign 4
|
||||
_020E2E98: .word __cs + 0xA8
|
||||
_020E2E9C: .word OSi_ThreadInfo
|
||||
_020E2EA0: .word __cs_id
|
||||
_020E2EA4: .word __cs_ref
|
||||
_020E2EA8: .word signal_funcs
|
||||
arm_func_end raise
|
||||
364
arm9/asm/MSL_string.s
Normal file
364
arm9/asm/MSL_string.s
Normal file
@@ -0,0 +1,364 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start strlen
|
||||
strlen: ; 0x020E2EAC
|
||||
mvn r2, #0x0
|
||||
_020E2EB0:
|
||||
ldrsb r1, [r0], #0x1
|
||||
add r2, r2, #0x1
|
||||
cmp r1, #0x0
|
||||
bne _020E2EB0
|
||||
mov r0, r2
|
||||
bx lr
|
||||
arm_func_end strlen
|
||||
|
||||
arm_func_start strcpy
|
||||
strcpy: ; 0x020E2EC8
|
||||
stmdb sp!, {r3-r5,lr}
|
||||
and r4, r1, #0x3
|
||||
and r3, r0, #0x3
|
||||
mov r2, r0
|
||||
cmp r3, r4
|
||||
bne _020E2F64
|
||||
cmp r4, #0x0
|
||||
beq _020E2F20
|
||||
ldrb r3, [r1, #0x0]
|
||||
strb r3, [r0, #0x0]
|
||||
cmp r3, #0x0
|
||||
ldmeqia sp!, {r3-r5,pc}
|
||||
rsbs r4, r4, #0x3
|
||||
beq _020E2F18
|
||||
_020E2F00:
|
||||
ldrb r3, [r1, #0x1]!
|
||||
cmp r3, #0x0
|
||||
strb r3, [r2, #0x1]!
|
||||
ldmeqia sp!, {r3-r5,pc}
|
||||
subs r4, r4, #0x1
|
||||
bne _020E2F00
|
||||
_020E2F18:
|
||||
add r2, r2, #0x1
|
||||
add r1, r1, #0x1
|
||||
_020E2F20:
|
||||
ldr r5, [r1, #0x0]
|
||||
ldr r3, _020E2F88 ; =0xFEFEFEFF
|
||||
mvn r4, r5
|
||||
add lr, r5, r3
|
||||
ldr ip, _020E2F8C ; =0x80808080
|
||||
and r4, lr, r4
|
||||
tst r4, r12
|
||||
bne _020E2F64
|
||||
sub r2, r2, #0x4
|
||||
_020E2F44:
|
||||
str r5, [r2, #0x4]!
|
||||
ldr r5, [r1, #0x4]!
|
||||
add r4, r5, r3
|
||||
mvn lr, r5
|
||||
and lr, r4, lr
|
||||
tst lr, r12
|
||||
beq _020E2F44
|
||||
add r2, r2, #0x4
|
||||
_020E2F64:
|
||||
ldrb r3, [r1, #0x0]
|
||||
strb r3, [r2, #0x0]
|
||||
cmp r3, #0x0
|
||||
ldmeqia sp!, {r3-r5,pc}
|
||||
_020E2F74:
|
||||
ldrb r3, [r1, #0x1]!
|
||||
cmp r3, #0x0
|
||||
strb r3, [r2, #0x1]!
|
||||
bne _020E2F74
|
||||
ldmia sp!, {r3-r5,pc}
|
||||
.balign 4
|
||||
_020E2F88: .word 0xFEFEFEFF
|
||||
_020E2F8C: .word 0x80808080
|
||||
arm_func_end strcpy
|
||||
|
||||
arm_func_start strncpy
|
||||
strncpy: ; 0x020E2F90
|
||||
stmdb sp!, {r3,lr}
|
||||
mov lr, r0
|
||||
cmp r2, #0x0
|
||||
ldmeqia sp!, {r3,pc}
|
||||
_020E2FA0:
|
||||
ldrsb r3, [r1], #0x1
|
||||
mov r12, lr
|
||||
strb r3, [lr], #0x1
|
||||
ldrsb r3, [r12, #0x0]
|
||||
cmp r3, #0x0
|
||||
bne _020E2FD4
|
||||
subs r2, r2, #0x1
|
||||
ldmeqia sp!, {r3,pc}
|
||||
mov r1, #0x0
|
||||
_020E2FC4:
|
||||
strb r1, [lr], #0x1
|
||||
subs r2, r2, #0x1
|
||||
bne _020E2FC4
|
||||
ldmia sp!, {r3,pc}
|
||||
_020E2FD4:
|
||||
subs r2, r2, #0x1
|
||||
bne _020E2FA0
|
||||
ldmia sp!, {r3,pc}
|
||||
arm_func_end strncpy
|
||||
|
||||
arm_func_start strcat
|
||||
strcat: ; 0x020E2FE0
|
||||
mov r3, r0
|
||||
_020E2FE4:
|
||||
ldrsb r2, [r3], #0x1
|
||||
cmp r2, #0x0
|
||||
bne _020E2FE4
|
||||
sub r3, r3, #0x1
|
||||
_020E2FF4:
|
||||
ldrsb r2, [r1], #0x1
|
||||
mov r12, r3
|
||||
strb r2, [r3], #0x1
|
||||
ldrsb r2, [r12, #0x0]
|
||||
cmp r2, #0x0
|
||||
bne _020E2FF4
|
||||
bx lr
|
||||
arm_func_end strcat
|
||||
|
||||
arm_func_start strncat
|
||||
strncat: ; 0x020E3010
|
||||
stmdb sp!, {r3,lr}
|
||||
mov r12, r0
|
||||
_020E3018:
|
||||
ldrsb r3, [r12], #0x1
|
||||
cmp r3, #0x0
|
||||
bne _020E3018
|
||||
cmp r2, #0x0
|
||||
sub r12, r12, #0x1
|
||||
beq _020E3054
|
||||
_020E3030:
|
||||
ldrsb r3, [r1], #0x1
|
||||
mov lr, r12
|
||||
strb r3, [r12], #0x1
|
||||
ldrsb r3, [lr, #0x0]
|
||||
cmp r3, #0x0
|
||||
subeq r12, r12, #0x1
|
||||
beq _020E3054
|
||||
subs r2, r2, #0x1
|
||||
bne _020E3030
|
||||
_020E3054:
|
||||
mov r1, #0x0
|
||||
strb r1, [r12, #0x0]
|
||||
ldmia sp!, {r3,pc}
|
||||
arm_func_end strncat
|
||||
|
||||
arm_func_start strcmp
|
||||
strcmp: ; 0x020E3060
|
||||
stmdb sp!, {r4,lr}
|
||||
ldrb r2, [r0, #0x0]
|
||||
ldrb r3, [r1, #0x0]
|
||||
subs r3, r2, r3
|
||||
movne r0, r3
|
||||
ldmneia sp!, {r4,pc}
|
||||
and r4, r0, #0x3
|
||||
and r3, r1, #0x3
|
||||
cmp r3, r4
|
||||
bne _020E313C
|
||||
cmp r4, #0x0
|
||||
beq _020E30D4
|
||||
cmp r2, #0x0
|
||||
moveq r0, #0x0
|
||||
ldmeqia sp!, {r4,pc}
|
||||
rsbs r4, r4, #0x3
|
||||
beq _020E30CC
|
||||
_020E30A4:
|
||||
ldrb r3, [r0, #0x1]!
|
||||
ldrb r2, [r1, #0x1]!
|
||||
subs r2, r3, r2
|
||||
movne r0, r2
|
||||
ldmneia sp!, {r4,pc}
|
||||
cmp r3, #0x0
|
||||
moveq r0, #0x0
|
||||
ldmeqia sp!, {r4,pc}
|
||||
subs r4, r4, #0x1
|
||||
bne _020E30A4
|
||||
_020E30CC:
|
||||
add r0, r0, #0x1
|
||||
add r1, r1, #0x1
|
||||
_020E30D4:
|
||||
ldr r2, [r0, #0x0]
|
||||
ldr r3, _020E316C ; =0xFEFEFEFF
|
||||
mvn r4, r2
|
||||
add lr, r2, r3
|
||||
ldr ip, _020E3170 ; =0x80808080
|
||||
and r4, lr, r4
|
||||
tst r4, r12
|
||||
ldr r4, [r1, #0x0]
|
||||
bne _020E3128
|
||||
cmp r2, r4
|
||||
bne _020E311C
|
||||
_020E3100:
|
||||
ldr r2, [r0, #0x4]!
|
||||
ldr r4, [r1, #0x4]!
|
||||
add lr, r2, r3
|
||||
tst lr, r12
|
||||
bne _020E3128
|
||||
cmp r2, r4
|
||||
beq _020E3100
|
||||
_020E311C:
|
||||
sub r0, r0, #0x1
|
||||
sub r1, r1, #0x1
|
||||
b _020E313C
|
||||
_020E3128:
|
||||
ldrb r2, [r0, #0x0]
|
||||
ldrb r3, [r1, #0x0]
|
||||
subs r3, r2, r3
|
||||
movne r0, r3
|
||||
ldmneia sp!, {r4,pc}
|
||||
_020E313C:
|
||||
cmp r2, #0x0
|
||||
moveq r0, #0x0
|
||||
ldmeqia sp!, {r4,pc}
|
||||
_020E3148:
|
||||
ldrb r3, [r0, #0x1]!
|
||||
ldrb r2, [r1, #0x1]!
|
||||
subs r2, r3, r2
|
||||
movne r0, r2
|
||||
ldmneia sp!, {r4,pc}
|
||||
cmp r3, #0x0
|
||||
bne _020E3148
|
||||
mov r0, #0x0
|
||||
ldmia sp!, {r4,pc}
|
||||
.balign 4
|
||||
_020E316C: .word 0xFEFEFEFF
|
||||
_020E3170: .word 0x80808080
|
||||
arm_func_end strcmp
|
||||
|
||||
arm_func_start strncmp
|
||||
strncmp: ; 0x020E3174
|
||||
cmp r2, #0x0
|
||||
beq _020E31A0
|
||||
_020E317C:
|
||||
ldrb r12, [r1], #0x1
|
||||
ldrb r3, [r0], #0x1
|
||||
cmp r3, r12
|
||||
subne r0, r3, r12
|
||||
bxne lr
|
||||
cmp r3, #0x0
|
||||
beq _020E31A0
|
||||
subs r2, r2, #0x1
|
||||
bne _020E317C
|
||||
_020E31A0:
|
||||
mov r0, #0x0
|
||||
bx lr
|
||||
arm_func_end strncmp
|
||||
|
||||
arm_func_start strchr
|
||||
strchr: ; 0x020E31A8
|
||||
ldrsb r2, [r0], #0x1
|
||||
mov r1, r1, lsl #0x18
|
||||
mov r1, r1, asr #0x18
|
||||
cmp r2, #0x0
|
||||
beq _020E31D4
|
||||
_020E31BC:
|
||||
cmp r2, r1
|
||||
subeq r0, r0, #0x1
|
||||
bxeq lr
|
||||
ldrsb r2, [r0], #0x1
|
||||
cmp r2, #0x0
|
||||
bne _020E31BC
|
||||
_020E31D4:
|
||||
cmp r1, #0x0
|
||||
movne r0, #0x0
|
||||
subeq r0, r0, #0x1
|
||||
bx lr
|
||||
arm_func_end strchr
|
||||
|
||||
arm_func_start strspn
|
||||
strspn: ; 0x020E31E4
|
||||
stmdb sp!, {r4,lr}
|
||||
sub sp, sp, #0x20
|
||||
add r12, sp, #0x0
|
||||
mov r3, #0x8
|
||||
mov r2, #0x0
|
||||
_020E31F8:
|
||||
strb r2, [r12, #0x0]
|
||||
strb r2, [r12, #0x1]
|
||||
strb r2, [r12, #0x2]
|
||||
strb r2, [r12, #0x3]
|
||||
add r12, r12, #0x4
|
||||
subs r3, r3, #0x1
|
||||
bne _020E31F8
|
||||
ldrb r3, [r1, #0x0]
|
||||
add r4, r1, #0x1
|
||||
cmp r3, #0x0
|
||||
beq _020E3254
|
||||
add lr, sp, #0x0
|
||||
mov r2, #0x1
|
||||
_020E322C:
|
||||
and r12, r3, #0xff
|
||||
and r1, r3, #0x7
|
||||
mov r1, r2, lsl r1
|
||||
ldrb r3, [lr, r12, asr #0x3]
|
||||
and r1, r1, #0xff
|
||||
orr r1, r3, r1
|
||||
strb r1, [lr, r12, asr #0x3]
|
||||
ldrb r3, [r4], #0x1
|
||||
cmp r3, #0x0
|
||||
bne _020E322C
|
||||
_020E3254:
|
||||
ldrb r1, [r0, #0x0]
|
||||
add r4, r0, #0x1
|
||||
cmp r1, #0x0
|
||||
beq _020E3294
|
||||
add r12, sp, #0x0
|
||||
mov r2, #0x1
|
||||
_020E326C:
|
||||
and r3, r1, #0xff
|
||||
and r1, r1, #0x7
|
||||
mov r1, r2, lsl r1
|
||||
ldrb r3, [r12, r3, asr #0x3]
|
||||
and r1, r1, #0xff
|
||||
tst r3, r1
|
||||
bne _020E3294
|
||||
ldrb r1, [r4], #0x1
|
||||
cmp r1, #0x0
|
||||
bne _020E326C
|
||||
_020E3294:
|
||||
sub r0, r4, r0
|
||||
sub r0, r0, #0x1
|
||||
add sp, sp, #0x20
|
||||
ldmia sp!, {r4,pc}
|
||||
arm_func_end strspn
|
||||
|
||||
arm_func_start strstr
|
||||
strstr: ; 0x020E32A4
|
||||
stmdb sp!, {r4,lr}
|
||||
cmp r1, #0x0
|
||||
ldrneb r2, [r1, #0x0]
|
||||
cmpne r2, #0x0
|
||||
ldmeqia sp!, {r4,pc}
|
||||
ldrb r3, [r0, #0x0]
|
||||
add r4, r0, #0x1
|
||||
cmp r3, #0x0
|
||||
beq _020E3308
|
||||
_020E32C8:
|
||||
cmp r3, r2
|
||||
bne _020E32FC
|
||||
mov lr, r4
|
||||
add r12, r1, #0x1
|
||||
_020E32D8:
|
||||
ldrb r3, [r12], #0x1
|
||||
ldrb r0, [lr], #0x1
|
||||
cmp r0, r3
|
||||
bne _020E32F0
|
||||
cmp r0, #0x0
|
||||
bne _020E32D8
|
||||
_020E32F0:
|
||||
cmp r3, #0x0
|
||||
subeq r0, r4, #0x1
|
||||
ldmeqia sp!, {r4,pc}
|
||||
_020E32FC:
|
||||
ldrb r3, [r4], #0x1
|
||||
cmp r3, #0x0
|
||||
bne _020E32C8
|
||||
_020E3308:
|
||||
mov r0, #0x0
|
||||
ldmia sp!, {r4,pc}
|
||||
arm_func_end strstr
|
||||
1422
arm9/asm/MSL_strtold.s
Normal file
1422
arm9/asm/MSL_strtold.s
Normal file
File diff suppressed because it is too large
Load Diff
726
arm9/asm/MSL_strtoul.s
Normal file
726
arm9/asm/MSL_strtoul.s
Normal file
@@ -0,0 +1,726 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
.extern __StringRead
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start __strtoul
|
||||
__strtoul:
|
||||
stmdb sp!, {r4-r11,lr}
|
||||
sub sp, sp, #0xc
|
||||
ldr r4, [sp, #0x38]
|
||||
movs r9, r0
|
||||
ldr r0, [sp, #0x34]
|
||||
str r4, [sp, #0x38]
|
||||
mov r4, #0x0
|
||||
str r0, [sp, #0x34]
|
||||
ldr r0, [sp, #0x38]
|
||||
str r1, [sp, #0x0]
|
||||
str r4, [r0, #0x0]
|
||||
mov r0, r4
|
||||
str r0, [sp, #0x4]
|
||||
ldr r0, [sp, #0x34]
|
||||
mov r1, r4
|
||||
str r1, [r0, #0x0]
|
||||
ldr r0, [sp, #0x30]
|
||||
str r4, [sp, #0x8]
|
||||
mov r8, r2
|
||||
mov r7, r3
|
||||
mov r5, r4
|
||||
mov r10, r4
|
||||
str r0, [sp, #0x30]
|
||||
mov r4, #0x1
|
||||
bmi _020E46CC
|
||||
cmp r9, #0x1
|
||||
beq _020E46CC
|
||||
cmp r9, #0x24
|
||||
bgt _020E46CC
|
||||
ldr r0, [sp, #0x0]
|
||||
cmp r0, #0x1
|
||||
bge _020E46D4
|
||||
_020E46CC:
|
||||
mov r4, #0x40
|
||||
b _020E46F0
|
||||
_020E46D4:
|
||||
ldr r1, [sp, #0x8]
|
||||
mov r0, r7
|
||||
mov r3, r1
|
||||
mov r2, r1
|
||||
add r5, r3, #0x1
|
||||
blx r8
|
||||
mov r6, r0
|
||||
_020E46F0:
|
||||
cmp r9, #0x0
|
||||
beq _020E4708
|
||||
mov r1, r9
|
||||
mvn r0, #0x0
|
||||
bl _u32_div_f
|
||||
str r0, [sp, #0x4]
|
||||
_020E4708:
|
||||
mvn r11, #0x0
|
||||
b _020E49C8
|
||||
_020E4710:
|
||||
cmp r4, #0x8
|
||||
bgt _020E4748
|
||||
cmp r4, #0x0
|
||||
addge pc, pc, r4, lsl #0x2
|
||||
b _020E49C8
|
||||
b _020E49C8
|
||||
b _020E4754
|
||||
b _020E4800
|
||||
b _020E49C8
|
||||
b _020E483C
|
||||
b _020E49C8
|
||||
b _020E49C8
|
||||
b _020E49C8
|
||||
b _020E487C
|
||||
_020E4748:
|
||||
cmp r4, #0x10
|
||||
beq _020E487C
|
||||
b _020E49C8
|
||||
_020E4754:
|
||||
cmp r6, #0x0
|
||||
blt _020E4764
|
||||
cmp r6, #0x80
|
||||
blt _020E476C
|
||||
_020E4764:
|
||||
mov r0, #0x0
|
||||
b _020E477C
|
||||
_020E476C:
|
||||
ldr r0, _020E4A2C ; =__msl_digit
|
||||
mov r1, r6, lsl #0x1
|
||||
ldrh r0, [r0, r1]
|
||||
and r0, r0, #0x100
|
||||
_020E477C:
|
||||
cmp r0, #0x0
|
||||
beq _020E47A8
|
||||
mov r1, #0x0
|
||||
mov r0, r7
|
||||
mov r2, r1
|
||||
blx r8
|
||||
mov r6, r0
|
||||
ldr r0, [sp, #0x8]
|
||||
add r0, r0, #0x1
|
||||
str r0, [sp, #0x8]
|
||||
b _020E49C8
|
||||
_020E47A8:
|
||||
cmp r6, #0x2b
|
||||
bne _020E47CC
|
||||
mov r1, #0x0
|
||||
mov r0, r7
|
||||
mov r2, r1
|
||||
add r5, r5, #0x1
|
||||
blx r8
|
||||
mov r6, r0
|
||||
b _020E47F8
|
||||
_020E47CC:
|
||||
cmp r6, #0x2d
|
||||
bne _020E47F8
|
||||
mov r1, #0x0
|
||||
mov r0, r7
|
||||
mov r2, r1
|
||||
add r5, r5, #0x1
|
||||
blx r8
|
||||
mov r6, r0
|
||||
ldr r0, [sp, #0x34]
|
||||
mov r1, #0x1
|
||||
str r1, [r0, #0x0]
|
||||
_020E47F8:
|
||||
mov r4, #0x2
|
||||
b _020E49C8
|
||||
_020E4800:
|
||||
cmp r9, #0x0
|
||||
cmpne r9, #0x10
|
||||
bne _020E4834
|
||||
cmp r6, #0x30
|
||||
bne _020E4834
|
||||
mov r1, #0x0
|
||||
mov r0, r7
|
||||
mov r2, r1
|
||||
mov r4, #0x4
|
||||
add r5, r5, #0x1
|
||||
blx r8
|
||||
mov r6, r0
|
||||
b _020E49C8
|
||||
_020E4834:
|
||||
mov r4, #0x8
|
||||
b _020E49C8
|
||||
_020E483C:
|
||||
cmp r6, #0x58
|
||||
cmpne r6, #0x78
|
||||
bne _020E486C
|
||||
mov r1, #0x0
|
||||
mov r0, r7
|
||||
mov r2, r1
|
||||
mov r9, #0x10
|
||||
mov r4, #0x8
|
||||
add r5, r5, #0x1
|
||||
blx r8
|
||||
mov r6, r0
|
||||
b _020E49C8
|
||||
_020E486C:
|
||||
cmp r9, #0x0
|
||||
moveq r9, #0x8
|
||||
mov r4, #0x10
|
||||
b _020E49C8
|
||||
_020E487C:
|
||||
ldr r0, [sp, #0x4]
|
||||
cmp r9, #0x0
|
||||
moveq r9, #0xa
|
||||
cmp r0, #0x0
|
||||
bne _020E48A0
|
||||
mov r0, r11
|
||||
mov r1, r9
|
||||
bl _u32_div_f
|
||||
str r0, [sp, #0x4]
|
||||
_020E48A0:
|
||||
cmp r6, #0x0
|
||||
blt _020E48B0
|
||||
cmp r6, #0x80
|
||||
blt _020E48B8
|
||||
_020E48B0:
|
||||
mov r0, #0x0
|
||||
b _020E48C8
|
||||
_020E48B8:
|
||||
ldr r0, _020E4A2C ; =__msl_digit
|
||||
mov r1, r6, lsl #0x1
|
||||
ldrh r0, [r0, r1]
|
||||
and r0, r0, #0x8
|
||||
_020E48C8:
|
||||
cmp r0, #0x0
|
||||
beq _020E48F0
|
||||
sub r6, r6, #0x30
|
||||
cmp r6, r9
|
||||
blt _020E4978
|
||||
cmp r4, #0x10
|
||||
moveq r4, #0x20
|
||||
movne r4, #0x40
|
||||
add r6, r6, #0x30
|
||||
b _020E49C8
|
||||
_020E48F0:
|
||||
cmp r6, #0x0
|
||||
blt _020E4900
|
||||
cmp r6, #0x80
|
||||
blt _020E4908
|
||||
_020E4900:
|
||||
mov r0, #0x0
|
||||
b _020E4918
|
||||
_020E4908:
|
||||
ldr r0, _020E4A2C ; =__msl_digit
|
||||
mov r1, r6, lsl #0x1
|
||||
ldrh r0, [r0, r1]
|
||||
and r0, r0, #0x1
|
||||
_020E4918:
|
||||
cmp r0, #0x0
|
||||
beq _020E494C
|
||||
cmp r6, #0x0
|
||||
blt _020E4930
|
||||
cmp r6, #0x80
|
||||
blt _020E4938
|
||||
_020E4930:
|
||||
mov r0, r6
|
||||
b _020E4940
|
||||
_020E4938:
|
||||
ldr r0, _020E4A30 ; =__upper_mapC
|
||||
ldrb r0, [r0, r6]
|
||||
_020E4940:
|
||||
sub r0, r0, #0x37
|
||||
cmp r0, r9
|
||||
blt _020E495C
|
||||
_020E494C:
|
||||
cmp r4, #0x10
|
||||
moveq r4, #0x20
|
||||
movne r4, #0x40
|
||||
b _020E49C8
|
||||
_020E495C:
|
||||
cmp r6, #0x0
|
||||
blt _020E4974
|
||||
cmp r6, #0x80
|
||||
bge _020E4974
|
||||
ldr r0, _020E4A30 ; =__upper_mapC
|
||||
ldrb r6, [r0, r6]
|
||||
_020E4974:
|
||||
sub r6, r6, #0x37
|
||||
_020E4978:
|
||||
ldr r0, [sp, #0x4]
|
||||
mov r4, #0x10
|
||||
cmp r10, r0
|
||||
ldrhi r0, [sp, #0x38]
|
||||
movhi r1, #0x1
|
||||
strhi r1, [r0, #0x0]
|
||||
mul r0, r10, r9
|
||||
mov r10, r0
|
||||
sub r0, r11, r0
|
||||
cmp r6, r0
|
||||
ldrhi r0, [sp, #0x38]
|
||||
movhi r1, #0x1
|
||||
strhi r1, [r0, #0x0]
|
||||
mov r1, #0x0
|
||||
mov r0, r7
|
||||
mov r2, r1
|
||||
add r10, r10, r6
|
||||
add r5, r5, #0x1
|
||||
blx r8
|
||||
mov r6, r0
|
||||
_020E49C8:
|
||||
ldr r0, [sp, #0x0]
|
||||
cmp r5, r0
|
||||
bgt _020E49E4
|
||||
cmp r6, r11
|
||||
beq _020E49E4
|
||||
tst r4, #0x60
|
||||
beq _020E4710
|
||||
_020E49E4:
|
||||
tst r4, #0x34
|
||||
bne _020E49FC
|
||||
ldr r0, [sp, #0x30]
|
||||
mov r10, #0x0
|
||||
str r10, [r0, #0x0]
|
||||
b _020E4A10
|
||||
_020E49FC:
|
||||
ldr r0, [sp, #0x8]
|
||||
sub r1, r5, #0x1
|
||||
add r1, r1, r0
|
||||
ldr r0, [sp, #0x30]
|
||||
str r1, [r0, #0x0]
|
||||
_020E4A10:
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
mov r2, #0x1
|
||||
blx r8
|
||||
mov r0, r10
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {r4-r11,pc}
|
||||
.balign 4
|
||||
_020E4A2C: .word __msl_digit
|
||||
_020E4A30: .word __upper_mapC
|
||||
arm_func_end __strtoul
|
||||
|
||||
arm_func_start __strtoull
|
||||
__strtoull: ; 0x020E4A34
|
||||
stmdb sp!, {r4-r11,lr}
|
||||
sub sp, sp, #0x1c
|
||||
ldr r4, [sp, #0x48]
|
||||
movs r9, r0
|
||||
ldr r0, [sp, #0x44]
|
||||
str r4, [sp, #0x48]
|
||||
mov r4, #0x0
|
||||
str r0, [sp, #0x44]
|
||||
ldr r0, [sp, #0x48]
|
||||
str r1, [sp, #0x0]
|
||||
str r4, [r0, #0x0]
|
||||
mov r0, r4
|
||||
str r0, [sp, #0xc]
|
||||
str r0, [sp, #0x8]
|
||||
ldr r0, [sp, #0x44]
|
||||
mov r1, r4
|
||||
str r1, [r0, #0x0]
|
||||
ldr r0, [sp, #0x40]
|
||||
str r4, [sp, #0x14]
|
||||
mov r8, r2
|
||||
mov r7, r3
|
||||
mov r5, r4
|
||||
mov r10, r4
|
||||
mov r11, r4
|
||||
str r0, [sp, #0x40]
|
||||
mov r4, #0x1
|
||||
bmi _020E4ABC
|
||||
cmp r9, #0x1
|
||||
beq _020E4ABC
|
||||
cmp r9, #0x24
|
||||
bgt _020E4ABC
|
||||
ldr r0, [sp, #0x0]
|
||||
cmp r0, #0x1
|
||||
bge _020E4AC4
|
||||
_020E4ABC:
|
||||
mov r4, #0x40
|
||||
b _020E4ADC
|
||||
_020E4AC4:
|
||||
ldr r1, [sp, #0x14]
|
||||
mov r0, r7
|
||||
mov r2, r1
|
||||
add r5, r1, #0x1
|
||||
blx r8
|
||||
mov r6, r0
|
||||
_020E4ADC:
|
||||
cmp r9, #0x0
|
||||
beq _020E4B00
|
||||
mvn r0, #0x0
|
||||
mov r1, r0
|
||||
mov r3, r9, asr #0x1f
|
||||
mov r2, r9
|
||||
bl _ll_udiv
|
||||
str r0, [sp, #0xc]
|
||||
str r1, [sp, #0x8]
|
||||
_020E4B00:
|
||||
mvn r0, #0x0
|
||||
str r0, [sp, #0x18]
|
||||
b _020E4E08
|
||||
_020E4B0C:
|
||||
cmp r4, #0x8
|
||||
bgt _020E4B44
|
||||
cmp r4, #0x0
|
||||
addge pc, pc, r4, lsl #0x2
|
||||
b _020E4E08
|
||||
b _020E4E08
|
||||
b _020E4B50
|
||||
b _020E4BFC
|
||||
b _020E4E08
|
||||
b _020E4C38
|
||||
b _020E4E08
|
||||
b _020E4E08
|
||||
b _020E4E08
|
||||
b _020E4C78
|
||||
_020E4B44:
|
||||
cmp r4, #0x10
|
||||
beq _020E4C78
|
||||
b _020E4E08
|
||||
_020E4B50:
|
||||
cmp r6, #0x0
|
||||
blt _020E4B60
|
||||
cmp r6, #0x80
|
||||
blt _020E4B68
|
||||
_020E4B60:
|
||||
mov r0, #0x0
|
||||
b _020E4B78
|
||||
_020E4B68:
|
||||
ldr r0, _020E4E78 ; =__msl_digit
|
||||
mov r1, r6, lsl #0x1
|
||||
ldrh r0, [r0, r1]
|
||||
and r0, r0, #0x100
|
||||
_020E4B78:
|
||||
cmp r0, #0x0
|
||||
beq _020E4BA4
|
||||
mov r1, #0x0
|
||||
mov r0, r7
|
||||
mov r2, r1
|
||||
blx r8
|
||||
mov r6, r0
|
||||
ldr r0, [sp, #0x14]
|
||||
add r0, r0, #0x1
|
||||
str r0, [sp, #0x14]
|
||||
b _020E4E08
|
||||
_020E4BA4:
|
||||
cmp r6, #0x2b
|
||||
bne _020E4BC8
|
||||
mov r1, #0x0
|
||||
mov r0, r7
|
||||
mov r2, r1
|
||||
add r5, r5, #0x1
|
||||
blx r8
|
||||
mov r6, r0
|
||||
b _020E4BF4
|
||||
_020E4BC8:
|
||||
cmp r6, #0x2d
|
||||
bne _020E4BF4
|
||||
mov r1, #0x0
|
||||
mov r0, r7
|
||||
mov r2, r1
|
||||
add r5, r5, #0x1
|
||||
blx r8
|
||||
mov r6, r0
|
||||
ldr r0, [sp, #0x44]
|
||||
mov r1, #0x1
|
||||
str r1, [r0, #0x0]
|
||||
_020E4BF4:
|
||||
mov r4, #0x2
|
||||
b _020E4E08
|
||||
_020E4BFC:
|
||||
cmp r9, #0x0
|
||||
cmpne r9, #0x10
|
||||
bne _020E4C30
|
||||
cmp r6, #0x30
|
||||
bne _020E4C30
|
||||
mov r1, #0x0
|
||||
mov r0, r7
|
||||
mov r2, r1
|
||||
mov r4, #0x4
|
||||
add r5, r5, #0x1
|
||||
blx r8
|
||||
mov r6, r0
|
||||
b _020E4E08
|
||||
_020E4C30:
|
||||
mov r4, #0x8
|
||||
b _020E4E08
|
||||
_020E4C38:
|
||||
cmp r6, #0x58
|
||||
cmpne r6, #0x78
|
||||
bne _020E4C68
|
||||
mov r1, #0x0
|
||||
mov r0, r7
|
||||
mov r2, r1
|
||||
mov r9, #0x10
|
||||
mov r4, #0x8
|
||||
add r5, r5, #0x1
|
||||
blx r8
|
||||
mov r6, r0
|
||||
b _020E4E08
|
||||
_020E4C68:
|
||||
cmp r9, #0x0
|
||||
moveq r9, #0x8
|
||||
mov r4, #0x10
|
||||
b _020E4E08
|
||||
_020E4C78:
|
||||
ldr r1, [sp, #0x8]
|
||||
mov r0, #0x0
|
||||
cmp r9, #0x0
|
||||
moveq r9, #0xa
|
||||
cmp r1, r0
|
||||
ldr r1, [sp, #0xc]
|
||||
cmpeq r1, r0
|
||||
bne _020E4CB4
|
||||
ldr r0, [sp, #0x18]
|
||||
mov r3, r9, asr #0x1f
|
||||
mov r1, r0
|
||||
mov r2, r9
|
||||
bl _ll_udiv
|
||||
str r0, [sp, #0xc]
|
||||
str r1, [sp, #0x8]
|
||||
_020E4CB4:
|
||||
cmp r6, #0x0
|
||||
blt _020E4CC4
|
||||
cmp r6, #0x80
|
||||
blt _020E4CCC
|
||||
_020E4CC4:
|
||||
mov r0, #0x0
|
||||
b _020E4CDC
|
||||
_020E4CCC:
|
||||
ldr r0, _020E4E78 ; =__msl_digit
|
||||
mov r1, r6, lsl #0x1
|
||||
ldrh r0, [r0, r1]
|
||||
and r0, r0, #0x8
|
||||
_020E4CDC:
|
||||
cmp r0, #0x0
|
||||
beq _020E4D04
|
||||
sub r6, r6, #0x30
|
||||
cmp r6, r9
|
||||
blt _020E4D8C
|
||||
cmp r4, #0x10
|
||||
moveq r4, #0x20
|
||||
movne r4, #0x40
|
||||
add r6, r6, #0x30
|
||||
b _020E4E08
|
||||
_020E4D04:
|
||||
cmp r6, #0x0
|
||||
blt _020E4D14
|
||||
cmp r6, #0x80
|
||||
blt _020E4D1C
|
||||
_020E4D14:
|
||||
mov r0, #0x0
|
||||
b _020E4D2C
|
||||
_020E4D1C:
|
||||
ldr r0, _020E4E78 ; =__msl_digit
|
||||
mov r1, r6, lsl #0x1
|
||||
ldrh r0, [r0, r1]
|
||||
and r0, r0, #0x1
|
||||
_020E4D2C:
|
||||
cmp r0, #0x0
|
||||
beq _020E4D60
|
||||
cmp r6, #0x0
|
||||
blt _020E4D44
|
||||
cmp r6, #0x80
|
||||
blt _020E4D4C
|
||||
_020E4D44:
|
||||
mov r0, r6
|
||||
b _020E4D54
|
||||
_020E4D4C:
|
||||
ldr r0, _020E4E7C ; =__upper_mapC
|
||||
ldrb r0, [r0, r6]
|
||||
_020E4D54:
|
||||
sub r0, r0, #0x37
|
||||
cmp r0, r9
|
||||
blt _020E4D70
|
||||
_020E4D60:
|
||||
cmp r4, #0x10
|
||||
moveq r4, #0x20
|
||||
movne r4, #0x40
|
||||
b _020E4E08
|
||||
_020E4D70:
|
||||
cmp r6, #0x0
|
||||
blt _020E4D88
|
||||
cmp r6, #0x80
|
||||
bge _020E4D88
|
||||
ldr r0, _020E4E7C ; =__upper_mapC
|
||||
ldrb r6, [r0, r6]
|
||||
_020E4D88:
|
||||
sub r6, r6, #0x37
|
||||
_020E4D8C:
|
||||
ldr r0, [sp, #0x8]
|
||||
umull r2, r3, r10, r9
|
||||
cmp r11, r0
|
||||
ldr r0, [sp, #0xc]
|
||||
mov r4, #0x10
|
||||
cmpeq r10, r0
|
||||
ldrhi r0, [sp, #0x48]
|
||||
movhi r1, #0x1
|
||||
strhi r1, [r0, #0x0]
|
||||
mov r1, r9, asr #0x1f
|
||||
mla r3, r10, r1, r3
|
||||
mla r3, r11, r9, r3
|
||||
ldr r1, [sp, #0x18]
|
||||
mov r10, r2
|
||||
subs r2, r1, r2
|
||||
mov r0, r6, asr #0x1f
|
||||
sbc r1, r1, r3
|
||||
cmp r0, r1
|
||||
cmpeq r6, r2
|
||||
ldrhi r1, [sp, #0x48]
|
||||
movhi r2, #0x1
|
||||
strhi r2, [r1, #0x0]
|
||||
mov r1, #0x0
|
||||
mov r11, r3
|
||||
adds r10, r10, r6
|
||||
adc r11, r11, r0
|
||||
mov r0, r7
|
||||
mov r2, r1
|
||||
add r5, r5, #0x1
|
||||
blx r8
|
||||
mov r6, r0
|
||||
_020E4E08:
|
||||
ldr r0, [sp, #0x0]
|
||||
cmp r5, r0
|
||||
bgt _020E4E28
|
||||
ldr r0, [sp, #0x18]
|
||||
cmp r6, r0
|
||||
beq _020E4E28
|
||||
tst r4, #0x60
|
||||
beq _020E4B0C
|
||||
_020E4E28:
|
||||
tst r4, #0x34
|
||||
bne _020E4E44
|
||||
ldr r0, [sp, #0x40]
|
||||
mov r10, #0x0
|
||||
mov r11, r10
|
||||
str r10, [r0, #0x0]
|
||||
b _020E4E58
|
||||
_020E4E44:
|
||||
ldr r0, [sp, #0x14]
|
||||
sub r1, r5, #0x1
|
||||
add r1, r1, r0
|
||||
ldr r0, [sp, #0x40]
|
||||
str r1, [r0, #0x0]
|
||||
_020E4E58:
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
mov r2, #0x1
|
||||
blx r8
|
||||
mov r0, r10
|
||||
mov r1, r11
|
||||
add sp, sp, #0x1c
|
||||
ldmia sp!, {r4-r11,pc}
|
||||
.balign 4
|
||||
_020E4E78: .word __msl_digit
|
||||
_020E4E7C: .word __upper_mapC
|
||||
arm_func_end __strtoull
|
||||
|
||||
arm_func_start strtoul
|
||||
strtoul: ; 0x020E4E80
|
||||
stmdb sp!, {r3-r5,lr}
|
||||
sub sp, sp, #0x20
|
||||
mov r5, r0
|
||||
mov lr, #0x0
|
||||
mov r0, r2
|
||||
mov r4, r1
|
||||
add r2, sp, #0x1c
|
||||
str r5, [sp, #0xc]
|
||||
str lr, [sp, #0x10]
|
||||
str r2, [sp, #0x0]
|
||||
add r1, sp, #0x18
|
||||
str r1, [sp, #0x4]
|
||||
add r12, sp, #0x14
|
||||
ldr r2, _020E4F10 ; =__StringRead
|
||||
add r3, sp, #0xc
|
||||
sub r1, lr, #0x80000001
|
||||
str r12, [sp, #0x8]
|
||||
bl __strtoul
|
||||
cmp r4, #0x0
|
||||
ldrne r1, [sp, #0x1c]
|
||||
addne r1, r5, r1
|
||||
strne r1, [r4, #0x0]
|
||||
ldr r1, [sp, #0x14]
|
||||
cmp r1, #0x0
|
||||
beq _020E4EFC
|
||||
ldr r0, _020E4F14 ; =errno
|
||||
mov r1, #0x22
|
||||
str r1, [r0, #0x0]
|
||||
add sp, sp, #0x20
|
||||
mvn r0, #0x0
|
||||
ldmia sp!, {r3-r5,pc}
|
||||
_020E4EFC:
|
||||
ldr r1, [sp, #0x18]
|
||||
cmp r1, #0x0
|
||||
rsbne r0, r0, #0x0
|
||||
add sp, sp, #0x20
|
||||
ldmia sp!, {r3-r5,pc}
|
||||
.balign 4
|
||||
_020E4F10: .word __StringRead
|
||||
_020E4F14: .word errno
|
||||
arm_func_end strtoul
|
||||
|
||||
arm_func_start strtol
|
||||
strtol: ; 0x020E4F18
|
||||
stmdb sp!, {r3-r5,lr}
|
||||
sub sp, sp, #0x20
|
||||
mov r5, r0
|
||||
mov lr, #0x0
|
||||
mov r0, r2
|
||||
mov r4, r1
|
||||
add r2, sp, #0x1c
|
||||
str r5, [sp, #0xc]
|
||||
str lr, [sp, #0x10]
|
||||
str r2, [sp, #0x0]
|
||||
add r1, sp, #0x18
|
||||
str r1, [sp, #0x4]
|
||||
add r12, sp, #0x14
|
||||
ldr r2, _020E4FD8 ; =__StringRead
|
||||
add r3, sp, #0xc
|
||||
sub r1, lr, #0x80000001
|
||||
str r12, [sp, #0x8]
|
||||
bl __strtoul
|
||||
cmp r4, #0x0
|
||||
ldrne r1, [sp, #0x1c]
|
||||
addne r1, r5, r1
|
||||
strne r1, [r4, #0x0]
|
||||
ldr r1, [sp, #0x14]
|
||||
cmp r1, #0x0
|
||||
bne _020E4FA4
|
||||
ldr r2, [sp, #0x18]
|
||||
cmp r2, #0x0
|
||||
bne _020E4F94
|
||||
mvn r1, #0x80000000
|
||||
cmp r0, r1
|
||||
bhi _020E4FA4
|
||||
_020E4F94:
|
||||
cmp r2, #0x0
|
||||
beq _020E4FC8
|
||||
cmp r0, #0x80000000
|
||||
bls _020E4FC8
|
||||
_020E4FA4:
|
||||
ldr r0, [sp, #0x18]
|
||||
ldr r1, _020E4FDC ; =errno
|
||||
mov r2, #0x22
|
||||
cmp r0, #0x0
|
||||
movne r0, #0x80000000
|
||||
str r2, [r1, #0x0]
|
||||
add sp, sp, #0x20
|
||||
mvneq r0, #0x80000000
|
||||
ldmia sp!, {r3-r5,pc}
|
||||
_020E4FC8:
|
||||
cmp r2, #0x0
|
||||
rsbne r0, r0, #0x0
|
||||
add sp, sp, #0x20
|
||||
ldmia sp!, {r3-r5,pc}
|
||||
.balign 4
|
||||
_020E4FD8: .word __StringRead
|
||||
_020E4FDC: .word errno
|
||||
arm_func_end strtol
|
||||
|
||||
arm_func_start atol
|
||||
atol: ; 0x020E4FE0
|
||||
ldr ip, _020E4FF0 ; =strtol
|
||||
mov r1, #0x0
|
||||
mov r2, #0xa
|
||||
bx r12
|
||||
.balign 4
|
||||
_020E4FF0: .word strtol
|
||||
arm_func_end atol
|
||||
43
arm9/asm/MSL_wchar_io.s
Normal file
43
arm9/asm/MSL_wchar_io.s
Normal file
@@ -0,0 +1,43 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start fwide
|
||||
fwide:
|
||||
cmp r0, #0x0
|
||||
beq _020E500C
|
||||
ldr r3, [r0, #0x4]
|
||||
mov r2, r3, lsl #0x16
|
||||
movs r2, r2, lsr #0x1d
|
||||
bne _020E5014
|
||||
_020E500C:
|
||||
mov r0, #0x0
|
||||
bx lr
|
||||
_020E5014:
|
||||
mov r2, r3, lsl #0x14
|
||||
movs r2, r2, lsr #0x1e
|
||||
beq _020E5034
|
||||
cmp r2, #0x1
|
||||
beq _020E505C
|
||||
cmp r2, #0x2
|
||||
moveq r1, #0x1
|
||||
b _020E5060
|
||||
_020E5034:
|
||||
cmp r1, #0x0
|
||||
ble _020E504C
|
||||
bic r2, r3, #0xc00
|
||||
orr r2, r2, #0x800
|
||||
str r2, [r0, #0x4]
|
||||
b _020E5060
|
||||
_020E504C:
|
||||
biclt r2, r3, #0xc00
|
||||
orrlt r2, r2, #0x400
|
||||
strlt r2, [r0, #0x4]
|
||||
b _020E5060
|
||||
_020E505C:
|
||||
mvn r1, #0x0
|
||||
_020E5060:
|
||||
mov r0, r1
|
||||
bx lr
|
||||
arm_func_end fwide
|
||||
29
arm9/asm/MSL_wmem.s
Normal file
29
arm9/asm/MSL_wmem.s
Normal file
@@ -0,0 +1,29 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start wmemcpy
|
||||
wmemcpy: ; 0x020E5068
|
||||
ldr ip, _020E5074 ; =memcpy
|
||||
mov r2, r2, lsl #0x1
|
||||
bx r12
|
||||
.balign 4
|
||||
_020E5074: .word memcpy
|
||||
arm_func_end wmemcpy
|
||||
|
||||
arm_func_start wmemchr
|
||||
wmemchr:
|
||||
cmp r2, #0x0
|
||||
beq _020E5098
|
||||
_020E5080:
|
||||
ldrh r3, [r0, #0x0]
|
||||
cmp r3, r1
|
||||
bxeq lr
|
||||
add r0, r0, #0x2
|
||||
subs r2, r2, #0x1
|
||||
bne _020E5080
|
||||
_020E5098:
|
||||
mov r0, #0x0
|
||||
bx lr
|
||||
arm_func_end wmemchr
|
||||
4196
arm9/asm/libc.s
4196
arm9/asm/libc.s
File diff suppressed because it is too large
Load Diff
@@ -8229,7 +8229,7 @@
|
||||
.extern Unk_0210683C
|
||||
.extern __lower_mapC
|
||||
.extern __upper_mapC
|
||||
.extern UNK_0210430C
|
||||
.extern __msl_digit
|
||||
.extern Unk_02106840
|
||||
.extern Unk_02106900
|
||||
.extern Unk_02106A00
|
||||
@@ -8455,7 +8455,7 @@
|
||||
.extern strspn
|
||||
.extern strstr
|
||||
.extern strtold
|
||||
.extern strtold2
|
||||
.extern strtol
|
||||
.extern strtoul
|
||||
.extern swprintf
|
||||
.extern sys_exit
|
||||
|
||||
@@ -220,7 +220,7 @@ _021D9014:
|
||||
add r1, sp, #0
|
||||
add r0, r2, r0
|
||||
mov r2, #0xa
|
||||
bl strtold2
|
||||
bl strtol
|
||||
ldr r2, _021D91BC ; =UNK04_02210468
|
||||
ldr r1, _021D91D4 ; =0x0000100C
|
||||
ldr r5, [r2]
|
||||
@@ -45849,7 +45849,7 @@ _021FFDB8:
|
||||
add r3, r4, #1
|
||||
cmp r0, #0
|
||||
beq _021FFE10
|
||||
ldr r1, _021FFEA8 ; =UNK_0210430C
|
||||
ldr r1, _021FFEA8 ; =__msl_digit
|
||||
mov r2, #0
|
||||
_021FFDD0:
|
||||
cmp r0, #0
|
||||
@@ -45915,7 +45915,7 @@ _021FFE84:
|
||||
.align 2, 0
|
||||
_021FFEA0: .word UNK04_0220EFD8
|
||||
_021FFEA4: .word UNK04_0220EFF8
|
||||
_021FFEA8: .word UNK_0210430C
|
||||
_021FFEA8: .word __msl_digit
|
||||
_021FFEAC: .word 0x0000FFFF
|
||||
arm_func_end MOD04_021FFD28
|
||||
|
||||
@@ -50366,7 +50366,7 @@ _022039A8:
|
||||
mov r1, #0
|
||||
b _022039C0
|
||||
_022039B0:
|
||||
ldr r1, _022039DC ; =UNK_0210430C
|
||||
ldr r1, _022039DC ; =__msl_digit
|
||||
mov r2, r2, lsl #1
|
||||
ldrh r1, [r1, r2]
|
||||
and r1, r1, #8
|
||||
@@ -50381,7 +50381,7 @@ _022039D0:
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_022039D8: .word UNK04_0220F7E0
|
||||
_022039DC: .word UNK_0210430C
|
||||
_022039DC: .word __msl_digit
|
||||
arm_func_end MOD04_0220394C
|
||||
|
||||
arm_func_start MOD04_022039E0
|
||||
|
||||
@@ -3438,7 +3438,7 @@ _022152DC:
|
||||
cmp r0, #0
|
||||
beq _02215448
|
||||
add r4, r0, #9
|
||||
ldr r1, _0221562C ; =UNK_0210430C
|
||||
ldr r1, _0221562C ; =__msl_digit
|
||||
mov r2, #0
|
||||
b _02215330
|
||||
_0221532C:
|
||||
@@ -3460,7 +3460,7 @@ _02215358:
|
||||
cmp r0, #0
|
||||
bne _0221532C
|
||||
mov r3, r4
|
||||
ldr r1, _0221562C ; =UNK_0210430C
|
||||
ldr r1, _0221562C ; =__msl_digit
|
||||
mov r2, #0
|
||||
b _02215374
|
||||
_02215370:
|
||||
@@ -3655,7 +3655,7 @@ _0221561C: .word MOD79_02216F64
|
||||
_02215620: .word MOD79_02216F6C
|
||||
_02215624: .word 0x51EB851F
|
||||
_02215628: .word MOD79_02216F70
|
||||
_0221562C: .word UNK_0210430C
|
||||
_0221562C: .word __msl_digit
|
||||
_02215630: .word MOD79_02216F7C
|
||||
_02215634: .word MOD79_02216F8C
|
||||
_02215638: .word MOD79_0221673C
|
||||
@@ -4101,7 +4101,7 @@ _02215C1C:
|
||||
bl sscanf
|
||||
mov r3, #0
|
||||
mov ip, #1
|
||||
ldr r2, _02215D24 ; =UNK_0210430C
|
||||
ldr r2, _02215D24 ; =__msl_digit
|
||||
b _02215C5C
|
||||
_02215C50:
|
||||
ldr r1, [sp, #0x14]
|
||||
@@ -4163,7 +4163,7 @@ _02215D14: .word 0x0000024E
|
||||
_02215D18: .word MOD79_02217000
|
||||
_02215D1C: .word 0x0000024F
|
||||
_02215D20: .word MOD79_02217020
|
||||
_02215D24: .word UNK_0210430C
|
||||
_02215D24: .word __msl_digit
|
||||
arm_func_end MOD79_02215BD8
|
||||
|
||||
arm_func_start MOD79_02215D28
|
||||
|
||||
Reference in New Issue
Block a user