diff options
| author | PikalaxALT <pikalaxalt@gmail.com> | 2021-06-01 21:10:18 -0400 | 
|---|---|---|
| committer | PikalaxALT <pikalaxalt@gmail.com> | 2021-06-01 21:10:18 -0400 | 
| commit | e7929cb735b9c1dc783eef3eb6fbfc7e6f666835 (patch) | |
| tree | a919af97a8d6bef1c29948a571287ad7343faa29 /arm9 | |
| parent | 71320b8a8cd3ec5c46cf4a2a636a65af024d9f7d (diff) | |
Split libc.s, 4
Diffstat (limited to 'arm9')
| -rw-r--r-- | arm9/arm9.lsf | 2 | ||||
| -rw-r--r-- | arm9/asm/MSL_abort_exit.s | 12 | ||||
| -rw-r--r-- | arm9/asm/MSL_ansi_files.s | 9 | ||||
| -rw-r--r-- | arm9/asm/MSL_assert.s | 6 | ||||
| -rw-r--r-- | arm9/asm/MSL_buffer_io.s | 9 | ||||
| -rw-r--r-- | arm9/asm/MSL_direct_io.s | 15 | ||||
| -rw-r--r-- | arm9/asm/MSL_file_io.s | 9 | ||||
| -rw-r--r-- | arm9/asm/MSL_file_pos.s | 15 | ||||
| -rw-r--r-- | arm9/asm/MSL_math.s | 6 | ||||
| -rw-r--r-- | arm9/asm/MSL_mbstring.s | 15 | ||||
| -rw-r--r-- | arm9/asm/MSL_mem.s | 6 | ||||
| -rw-r--r-- | arm9/asm/MSL_printf.s | 44 | ||||
| -rw-r--r-- | arm9/asm/MSL_qsort.s | 6 | ||||
| -rw-r--r-- | arm9/asm/MSL_scanf.s | 18 | ||||
| -rw-r--r-- | arm9/asm/MSL_signal.s | 6 | ||||
| -rw-r--r-- | arm9/asm/MSL_strtold.s | 18 | ||||
| -rw-r--r-- | arm9/asm/MSL_strtoul.s | 18 | ||||
| -rw-r--r-- | arm9/asm/MSL_wctype.s | 61 | ||||
| -rw-r--r-- | arm9/asm/MSL_wmem.s | 6 | ||||
| -rw-r--r-- | arm9/asm/MSL_wprintf.s | 2373 | ||||
| -rw-r--r-- | arm9/asm/libc.s | 2572 | ||||
| -rw-r--r-- | arm9/asm/stdlibmwcc.s | 5 | 
22 files changed, 2664 insertions, 2567 deletions
| diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 0a51e907..7cb36e71 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -571,7 +571,9 @@ Static arm9  	Object MSL_strtold.o  	Object MSL_strtoul.o  	Object MSL_wchar_io.o +	Object MSL_wctype.o  	Object MSL_wmem.o +	Object MSL_wprintf.o  	Object libc.o  	Object stdlibmwcc.o  } diff --git a/arm9/asm/MSL_abort_exit.s b/arm9/asm/MSL_abort_exit.s index 92729b72..e4aadfe3 100644 --- a/arm9/asm/MSL_abort_exit.s +++ b/arm9/asm/MSL_abort_exit.s @@ -158,3 +158,15 @@ _020DE2D8: .word __cs_ref  _020DE2DC: .word __console_exit
  _020DE2E0: .word __atexit_funcs
      arm_func_end __exit
 +
 +    .section .exceptix,4
 +
 +	.word abort
 +	.short 37
 +	.word 0x00100000
 +	.word exit
 +	.short 77
 +	.word 0x00100100
 +	.word __exit
 +	.short 297
 +	.word 0x00200300
 diff --git a/arm9/asm/MSL_ansi_files.s b/arm9/asm/MSL_ansi_files.s index 236868e3..b93323c0 100644 --- a/arm9/asm/MSL_ansi_files.s +++ b/arm9/asm/MSL_ansi_files.s @@ -140,3 +140,12 @@ _020DE3DC:  	.balign 4
  _020DE3EC: .word __files
      arm_func_end __flush_all
 +
 +    .section .exceptix,4
 +
 +	.word __flush_line_buffered_output_files
 +	.short 141
 +	.word 0x00403F00
 +	.word __flush_all
 +	.short 105
 +	.word 0x00403F00
 diff --git a/arm9/asm/MSL_assert.s b/arm9/asm/MSL_assert.s index 140a07f1..161d2ab9 100644 --- a/arm9/asm/MSL_assert.s +++ b/arm9/asm/MSL_assert.s @@ -29,3 +29,9 @@ __msl_assertion_failed: ; 0x020DE3FC  	.balign 4
  _020DE434: .word __local_str__msl_assertion_failed
      arm_func_end __msl_assertion_failed
 +
 +    .section .exceptix,4
 +
 +	.word __msl_assertion_failed
 +	.short 61
 +	.word 0x00200100
 diff --git a/arm9/asm/MSL_buffer_io.s b/arm9/asm/MSL_buffer_io.s index 5fd10b64..940daf6d 100644 --- a/arm9/asm/MSL_buffer_io.s +++ b/arm9/asm/MSL_buffer_io.s @@ -108,3 +108,12 @@ _020DE574:  	mov r0, #0x0
  	ldmia sp!, {r3-r5,pc}
  	arm_func_end __flush_buffer
 +
 +    .section .exceptix,4
 +
 +	.word __load_buffer
 +	.short 141
 +	.word 0x00200700
 +	.word __flush_buffer
 +	.short 137
 +	.word 0x00200300
 diff --git a/arm9/asm/MSL_direct_io.s b/arm9/asm/MSL_direct_io.s index dde2da02..8e9766e5 100644 --- a/arm9/asm/MSL_direct_io.s +++ b/arm9/asm/MSL_direct_io.s @@ -85,6 +85,7 @@ _020DE680: .word __cs  _020DE684: .word OSi_ThreadInfo
  _020DE688: .word __cs_id
  _020DE68C: .word __cs_ref
 +    arm_func_end fread
  	arm_func_start __fread
  __fread: ; 0x020DE690
 @@ -316,6 +317,7 @@ _020DE9C4:  	bl _u32_div_f
  	add sp, sp, #0x4
  	ldmia sp!, {r3-r10,pc}
 +    arm_func_end __fread
  	arm_func_start __fwrite
  __fwrite:
 @@ -504,3 +506,16 @@ _020DEC5C:  	bl _u32_div_f
  	add sp, sp, #0x8
  	ldmia sp!, {r3-r11,pc}
 +    arm_func_end __fwrite
 +
 +    .section .exceptix,4
 +
 +	.word fread
 +	.short 269
 +	.word 0x00407F00
 +	.word __fread
 +	.short 841
 +	.word 0x00507F00
 +	.word __fwrite
 +	.short 689
 +	.word 0x0060FF00
\ No newline at end of file diff --git a/arm9/asm/MSL_file_io.s b/arm9/asm/MSL_file_io.s index d722367f..ff2da087 100644 --- a/arm9/asm/MSL_file_io.s +++ b/arm9/asm/MSL_file_io.s @@ -104,3 +104,12 @@ _020DEDCC:  	str r0, [r4, #0x28]
  	ldmia sp!, {r4,pc}
      arm_func_end fflush
 +
 +    .section .exceptix,4
 +
 +	.word fclose
 +	.short 117
 +	.word 0x00200300
 +	.word fflush
 +	.short 233
 +	.word 0x00100100
 diff --git a/arm9/asm/MSL_file_pos.s b/arm9/asm/MSL_file_pos.s index a0c82aea..a5870123 100644 --- a/arm9/asm/MSL_file_pos.s +++ b/arm9/asm/MSL_file_pos.s @@ -361,3 +361,18 @@ rewind: ; 0x020DF290  	strb r0, [r4, #0xd]
  	ldmia sp!, {r4,pc}
      arm_func_end rewind
 +
 +    .section .exceptix,4
 +
 +	.word ftell
 +	.short 285
 +	.word 0x00300F00
 +	.word _fseek
 +	.short 489
 +	.word 0x00400320
 +	.word fseek
 +	.short 301
 +	.word 0x00403F00
 +	.word rewind
 +	.short 37
 +	.word 0x00100100
 diff --git a/arm9/asm/MSL_math.s b/arm9/asm/MSL_math.s index aaa97c48..36bb4071 100644 --- a/arm9/asm/MSL_math.s +++ b/arm9/asm/MSL_math.s @@ -14,3 +14,9 @@ nan: ; 0x020DE2E4  _020DE2F4: .word __float_nan
  _020DE2F8: .word _f2d
      arm_func_end nan
 +
 +    .section .exceptix,4
 +
 +	.word nan
 +	.short 25
 +	.word 0x00000000
 diff --git a/arm9/asm/MSL_mbstring.s b/arm9/asm/MSL_mbstring.s index 92c017d5..b63cba8a 100644 --- a/arm9/asm/MSL_mbstring.s +++ b/arm9/asm/MSL_mbstring.s @@ -230,3 +230,18 @@ _020DF430:  	mov r0, r7
  	ldmia sp!, {r3-r9,pc}
      arm_func_end wcstombs
 +
 +    .section .exceptix,4
 +
 +	.word mbtowc
 +	.short 29
 +	.word 0x00100000
 +	.word wctomb
 +	.short 29
 +	.word 0x00100000
 +	.word mbstowcs
 +	.short 137
 +	.word 0x00301F00
 +	.word wcstombs
 +	.short 121
 +	.word 0x00403F00
 diff --git a/arm9/asm/MSL_mem.s b/arm9/asm/MSL_mem.s index 39bdc299..64728f18 100644 --- a/arm9/asm/MSL_mem.s +++ b/arm9/asm/MSL_mem.s @@ -108,3 +108,9 @@ _020DF548:  	mov r0, #0x0
  	bx lr
      arm_func_end memcmp
 +
 +    .section .exceptix,4
 +
 +	.word memset
 +	.short 21
 +	.word 0x00100100
 diff --git a/arm9/asm/MSL_printf.s b/arm9/asm/MSL_printf.s index b33b3841..a87b10f2 100644 --- a/arm9/asm/MSL_printf.s +++ b/arm9/asm/MSL_printf.s @@ -76,7 +76,7 @@ UNK_02106DDC: ; 0x02106DDC      .text
 -	local_arm_func_start parse_format
 +	arm_func_start parse_format
  parse_format: ; 0x020DF600
  	stmdb sp!, {r4-r8,lr}
  	sub sp, sp, #0x10
 @@ -2571,3 +2571,45 @@ sprintf: ; 0x020E185C  	add sp, sp, #0x10
  	bx lr
      arm_func_end sprintf
 +
 +    .section .exceptix,4
 +
 +	.word long2str
 +	.short 589
 +	.word 0x0090FF20
 +	.word longlong2str
 +	.short 737
 +	.word 0x00A0FF20
 +	.word double2hex
 +	.short 1245
 +	.word 0x00F07F20
 +	.word float2str
 +	.short 1893
 +	.word 0x00C0FF20
 +	.word __pformatter
 +	.short 2084
 +	.word UNK_020EC710
 +	.word __FileWrite
 +	.short 45
 +	.word 0x00200300
 +	.word __StringWrite
 +	.short 69
 +	.word 0x00200300
 +	.word printf
 +	.short 281
 +	.word 0x00300120
 +	.word vsnprintf
 +	.short 105
 +	.word 0x00300300
 +	.word snprintf
 +	.short 41
 +	.word 0x00300020
 +	.word sprintf
 +	.short 45
 +	.word 0x00300020
 +
 +    .section .exception,8
 +
 +UNK_020EC710: ; 0x020EC710
 +	.byte 0x20, 0xFF, 0x09, 0x60
 +	.balign 8
 diff --git a/arm9/asm/MSL_qsort.s b/arm9/asm/MSL_qsort.s index 8494337d..8c76ad41 100644 --- a/arm9/asm/MSL_qsort.s +++ b/arm9/asm/MSL_qsort.s @@ -104,3 +104,9 @@ _020E19D8:  	add sp, sp, #0x10
  	ldmia sp!, {r3-r11,pc}
      arm_func_end qsort
 +
 +    .section .exceptix,4
 +
 +	.word qsort
 +	.short 357
 +	.word 0x0070FF00
 diff --git a/arm9/asm/MSL_scanf.s b/arm9/asm/MSL_scanf.s index f0cfa854..c0b41de4 100644 --- a/arm9/asm/MSL_scanf.s +++ b/arm9/asm/MSL_scanf.s @@ -1448,3 +1448,21 @@ sscanf: ; 0x020E2D54  	add sp, sp, #0x10
  	bx lr
      arm_func_end sscanf
 +
 +    .section .exceptix,4
 +
 +	.word __sformatter
 +	.short 3412
 +	.word UNK_020EC718
 +	.word vsscanf
 +	.short 85
 +	.word 0x00200000
 +	.word sscanf
 +	.short 41
 +	.word 0x00300020
 +
 +    .section .exception,8
 +
 +UNK_020EC718: ; 0x020EC718
 +	.byte 0x00, 0xFF, 0x01, 0xB0
 +	.balign 8
 diff --git a/arm9/asm/MSL_signal.s b/arm9/asm/MSL_signal.s index 14370643..01fd6fe8 100644 --- a/arm9/asm/MSL_signal.s +++ b/arm9/asm/MSL_signal.s @@ -103,3 +103,9 @@ _020E2EA0: .word __cs_id  _020E2EA4: .word __cs_ref
  _020E2EA8: .word signal_funcs
      arm_func_end raise
 +
 +    .section .exceptix,4
 +
 +	.word raise
 +	.short 305
 +	.word 0x00200300
 diff --git a/arm9/asm/MSL_strtold.s b/arm9/asm/MSL_strtold.s index b9dce779..c952c47c 100644 --- a/arm9/asm/MSL_strtold.s +++ b/arm9/asm/MSL_strtold.s @@ -1420,3 +1420,21 @@ atod: ; 0x020E463C  	.balign 4
  _020E4648: .word strtold
      arm_func_end atod
 +
 +    .section .exceptix,4
 +
 +	.word __strtold
 +	.short 4684
 +	.word UNK_020EC720
 +	.word strtold
 +	.short 225
 +	.word 0x00500F00
 +	.word atod
 +	.short 17
 +	.word 0x00000000
 +
 +    .section .exception,8
 +
 +UNK_020EC720: ; 0x020EC720
 +	.byte 0x00, 0xFF, 0x01, 0xD0
 +	.balign 8
 diff --git a/arm9/asm/MSL_strtoul.s b/arm9/asm/MSL_strtoul.s index e74a4b4f..d0dceba1 100644 --- a/arm9/asm/MSL_strtoul.s +++ b/arm9/asm/MSL_strtoul.s @@ -724,3 +724,21 @@ atol: ; 0x020E4FE0  	.balign 4
  _020E4FF0: .word strtol
      arm_func_end atol
 +
 +    .section .exceptix,4
 +
 +	.word __strtoul
 +	.short 1001
 +	.word 0x0060FF00
 +	.word __strtoull
 +	.short 1101
 +	.word 0x0080FF00
 +	.word strtoul
 +	.short 153
 +	.word 0x00600300
 +	.word strtol
 +	.short 201
 +	.word 0x00600300
 +	.word atol
 +	.short 21
 +	.word 0x00000000
 diff --git a/arm9/asm/MSL_wctype.s b/arm9/asm/MSL_wctype.s new file mode 100644 index 00000000..73afab83 --- /dev/null +++ b/arm9/asm/MSL_wctype.s @@ -0,0 +1,61 @@ +	.include "asm/macros.inc"
 +	.include "global.inc"
 +
 +    .rodata
 +
 +    .global __wlower_mapC
 +__wlower_mapC: ; 0x02104444
 +	.short 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007
 +	.short 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F
 +	.short 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017
 +	.short 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F
 +	.short 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027
 +	.short 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F
 +	.short 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037
 +	.short 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F
 +	.short 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067
 +	.short 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F
 +	.short 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077
 +	.short 0x0078, 0x0079, 0x007A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F
 +	.short 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067
 +	.short 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F
 +	.short 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077
 +	.short 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F
 +
 +	.global __wctype_mapC
 +__wctype_mapC: ; 0x02104544
 +	.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
 +
 +    .global __wupper_mapC
 +__wupper_mapC: ; 0x02104644
 +	.short 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007
 +	.short 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F
 +	.short 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017
 +	.short 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F
 +	.short 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027
 +	.short 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F
 +	.short 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037
 +	.short 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F
 +	.short 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047
 +	.short 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F
 +	.short 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057
 +	.short 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F
 +	.short 0x0060, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047
 +	.short 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F
 +	.short 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057
 +	.short 0x0058, 0x0059, 0x005A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F
 diff --git a/arm9/asm/MSL_wmem.s b/arm9/asm/MSL_wmem.s index 68bc3f0e..26230ecb 100644 --- a/arm9/asm/MSL_wmem.s +++ b/arm9/asm/MSL_wmem.s @@ -27,3 +27,9 @@ _020E5098:  	mov r0, #0x0
  	bx lr
      arm_func_end wmemchr
 +
 +    .section .exceptix,4
 +
 +	.word wmemcpy
 +	.short 17
 +	.word 0x00000000
 diff --git a/arm9/asm/MSL_wprintf.s b/arm9/asm/MSL_wprintf.s new file mode 100644 index 00000000..7b051834 --- /dev/null +++ b/arm9/asm/MSL_wprintf.s @@ -0,0 +1,2373 @@ +	.include "asm/macros.inc"
 +	.include "global.inc"
 +	.extern memchr
 +	.extern wmemchr
 +	.extern wcschr
 +	.extern __wctype_mapC
 +	.extern wcscpy
 +	.extern fabs
 +
 +    .data
 +
 +wstr$6DE4: ; 0x02106DE4
 +    ; L"0x0p0"
 +	.short 0x0030, 0x0078, 0x0030, 0x0070, 0x0030, 0x0000
 +
 +wstr$6DF0: ; 0x02106DF0
 +    ; L"-INF"
 +	.short 0x002D, 0x0049, 0x004E, 0x0046, 0x0000, 0x0000
 +
 +wstr$6DFC: ; 0x02106DFC
 +    ; L"-inf"
 +	.short 0x002D, 0x0069, 0x006E, 0x0066, 0x0000, 0x0000
 +
 +wstr$6E08: ; 0x02106E08
 +    ; L"INF"
 +	.short 0x0049, 0x004E, 0x0046, 0x0000
 +
 +wstr$6E10: ; 0x02106E10
 +    ; L"inf"
 +	.short 0x0069, 0x006E, 0x0066, 0x0000
 +
 +wstr$6E18: ; 0x02106E18
 +    ; L"-NAN"
 +	.short 0x002D, 0x004E, 0x0041, 0x004E, 0x0000, 0x0000
 +
 +wstr$6E24: ; 0x02106E24
 +    ; L"-nan"
 +	.short 0x002D, 0x006E, 0x0061, 0x006E, 0x0000, 0x0000
 +
 +wstr$6E30: ; 0x02106E30
 +    ; L"NAN"
 +	.short 0x004E, 0x0041, 0x004E, 0x0000
 +
 +wstr$6E38: ; 0x02106E38
 +    ; L"nan"
 +	.short 0x006E, 0x0061, 0x006E, 0x0000
 +
 +buff_ptr$6E40: ; 0x02106E40
 +	.short 0x0000, 0x0000
 +
 +strptr$6E44: ; 0x02106E44
 +	.asciz ""
 +
 +    .text
 +
 +	arm_func_start parse_format__wide
 +parse_format__wide: ; 0x020E50A0
 +	stmdb sp!, {r4-r8,lr}
 +	sub sp, sp, #0x10
 +	ldrh r3, [r0, #0x2]
 +	mov r4, #0x0
 +	mov r5, #0x1
 +	mov lr, r2
 +	strb r5, [sp, #0x0]
 +	strb r4, [sp, #0x1]
 +	strb r4, [sp, #0x2]
 +	strb r4, [sp, #0x3]
 +	strb r4, [sp, #0x4]
 +	str r4, [sp, #0x8]
 +	str r4, [sp, #0xc]
 +	cmp r3, #0x25
 +	add r12, r0, #0x2
 +	bne _020E50FC
 +	add r0, sp, #0x0
 +	strh r3, [sp, #0x6]
 +	ldmia r0, {r0-r3}
 +	stmia lr, {r0-r3}
 +	add sp, sp, #0x10
 +	add r0, r12, #0x2
 +	ldmia sp!, {r4-r8,pc}
 +_020E50FC:
 +	mov r2, #0x2
 +	mov r0, r4
 +	mov r5, r2
 +	mov r6, r4
 +	mov r7, #0x1
 +_020E5110:
 +	mov r8, r7
 +	cmp r3, #0x2b
 +	bgt _020E5140
 +	bge _020E5168
 +	cmp r3, #0x23
 +	bgt _020E5198
 +	cmp r3, #0x20
 +	blt _020E5198
 +	beq _020E5170
 +	cmp r3, #0x23
 +	beq _020E5180
 +	b _020E5198
 +_020E5140:
 +	cmp r3, #0x30
 +	bgt _020E5198
 +	cmp r3, #0x2d
 +	blt _020E5198
 +	beq _020E5160
 +	cmp r3, #0x30
 +	beq _020E5188
 +	b _020E5198
 +_020E5160:
 +	strb r6, [sp, #0x0]
 +	b _020E519C
 +_020E5168:
 +	strb r7, [sp, #0x1]
 +	b _020E519C
 +_020E5170:
 +	ldrb r4, [sp, #0x1]
 +	cmp r4, #0x1
 +	strneb r5, [sp, #0x1]
 +	b _020E519C
 +_020E5180:
 +	strb r7, [sp, #0x3]
 +	b _020E519C
 +_020E5188:
 +	ldrb r4, [sp, #0x0]
 +	cmp r4, #0x0
 +	strneb r2, [sp, #0x0]
 +	b _020E519C
 +_020E5198:
 +	mov r8, r0
 +_020E519C:
 +	cmp r8, #0x0
 +	ldrneh r3, [r12, #0x2]!
 +	bne _020E5110
 +	cmp r3, #0x2a
 +	bne _020E51E4
 +	ldr r0, [r1, #0x0]
 +	add r0, r0, #0x4
 +	str r0, [r1, #0x0]
 +	ldr r0, [r0, #-0x4]
 +	str r0, [sp, #0x8]
 +	cmp r0, #0x0
 +	bge _020E51DC
 +	rsb r0, r0, #0x0
 +	mov r2, #0x0
 +	strb r2, [sp, #0x0]
 +	str r0, [sp, #0x8]
 +_020E51DC:
 +	ldrh r3, [r12, #0x2]!
 +	b _020E5228
 +_020E51E4:
 +	mov r2, #0x0
 +	ldr r5, _020E560C ; =__wctype_mapC
 +	mov r0, #0xa
 +	b _020E5208
 +_020E51F4:
 +	ldr r4, [sp, #0x8]
 +	sub r3, r3, #0x30
 +	mla r6, r4, r0, r3
 +	ldrh r3, [r12, #0x2]!
 +	str r6, [sp, #0x8]
 +_020E5208:
 +	cmp r3, #0x80
 +	movcs r4, r2
 +	bhs _020E5220
 +	mov r4, r3, lsl #0x1
 +	ldrh r4, [r5, r4]
 +	and r4, r4, #0x8
 +_020E5220:
 +	cmp r4, #0x0
 +	bne _020E51F4
 +_020E5228:
 +	ldr r2, [sp, #0x8]
 +	ldr r0, _020E5610 ; =0x000001FD
 +	cmp r2, r0
 +	ble _020E5258
 +	ldr r1, _020E5614 ; =0x0000FFFF
 +	add r0, sp, #0x0
 +	strh r1, [sp, #0x6]
 +	ldmia r0, {r0-r3}
 +	stmia lr, {r0-r3}
 +	add sp, sp, #0x10
 +	add r0, r12, #0x2
 +	ldmia sp!, {r4-r8,pc}
 +_020E5258:
 +	cmp r3, #0x2e
 +	bne _020E52E0
 +	ldrh r3, [r12, #0x2]!
 +	mov r0, #0x1
 +	strb r0, [sp, #0x2]
 +	cmp r3, #0x2a
 +	bne _020E529C
 +	ldr r0, [r1, #0x0]
 +	add r0, r0, #0x4
 +	str r0, [r1, #0x0]
 +	ldr r0, [r0, #-0x4]
 +	ldrh r3, [r12, #0x2]!
 +	str r0, [sp, #0xc]
 +	cmp r0, #0x0
 +	movlt r0, #0x0
 +	strltb r0, [sp, #0x2]
 +	b _020E52E0
 +_020E529C:
 +	mov r1, #0x0
 +	ldr r4, _020E560C ; =__wctype_mapC
 +	mov r0, #0xa
 +	b _020E52C0
 +_020E52AC:
 +	ldr r2, [sp, #0xc]
 +	sub r3, r3, #0x30
 +	mla r5, r2, r0, r3
 +	ldrh r3, [r12, #0x2]!
 +	str r5, [sp, #0xc]
 +_020E52C0:
 +	cmp r3, #0x80
 +	movcs r2, r1
 +	bhs _020E52D8
 +	mov r2, r3, lsl #0x1
 +	ldrh r2, [r4, r2]
 +	and r2, r2, #0x8
 +_020E52D8:
 +	cmp r2, #0x0
 +	bne _020E52AC
 +_020E52E0:
 +	cmp r3, #0x6c
 +	mov r0, #0x1
 +	bgt _020E5318
 +	cmp r3, #0x68
 +	blt _020E530C
 +	beq _020E5334
 +	cmp r3, #0x6a
 +	beq _020E5380
 +	cmp r3, #0x6c
 +	beq _020E5350
 +	b _020E53A4
 +_020E530C:
 +	cmp r3, #0x4c
 +	beq _020E5374
 +	b _020E53A4
 +_020E5318:
 +	cmp r3, #0x74
 +	bgt _020E5328
 +	beq _020E538C
 +	b _020E53A4
 +_020E5328:
 +	cmp r3, #0x7a
 +	beq _020E5398
 +	b _020E53A4
 +_020E5334:
 +	ldrh r1, [r12, #0x2]
 +	mov r2, #0x2
 +	strb r2, [sp, #0x4]
 +	cmp r1, #0x68
 +	streqb r0, [sp, #0x4]
 +	ldreqh r3, [r12, #0x2]!
 +	b _020E53A8
 +_020E5350:
 +	ldrh r1, [r12, #0x2]
 +	mov r2, #0x3
 +	strb r2, [sp, #0x4]
 +	cmp r1, #0x6c
 +	bne _020E53A8
 +	mov r1, #0x4
 +	strb r1, [sp, #0x4]
 +	ldrh r3, [r12, #0x2]!
 +	b _020E53A8
 +_020E5374:
 +	mov r1, #0x9
 +	strb r1, [sp, #0x4]
 +	b _020E53A8
 +_020E5380:
 +	mov r1, #0x6
 +	strb r1, [sp, #0x4]
 +	b _020E53A8
 +_020E538C:
 +	mov r1, #0x8
 +	strb r1, [sp, #0x4]
 +	b _020E53A8
 +_020E5398:
 +	mov r1, #0x7
 +	strb r1, [sp, #0x4]
 +	b _020E53A8
 +_020E53A4:
 +	mov r0, #0x0
 +_020E53A8:
 +	cmp r0, #0x0
 +	ldrneh r3, [r12, #0x2]!
 +	strh r3, [sp, #0x6]
 +	cmp r3, #0x61
 +	bgt _020E53FC
 +	bge _020E54E0
 +	cmp r3, #0x47
 +	bgt _020E53F0
 +	subs r0, r3, #0x41
 +	addpl pc, pc, r0, lsl #0x2
 +	b _020E55EC
 +	b _020E54E0
 +	b _020E55EC
 +	b _020E55EC
 +	b _020E55EC
 +	b _020E5528
 +	b _020E54A8
 +	b _020E5518
 +_020E53F0:
 +	cmp r3, #0x58
 +	beq _020E5470
 +	b _020E55EC
 +_020E53FC:
 +	cmp r3, #0x63
 +	bgt _020E540C
 +	beq _020E5588
 +	b _020E55EC
 +_020E540C:
 +	sub r0, r3, #0x64
 +	cmp r0, #0x14
 +	addls pc, pc, r0, lsl #0x2
 +	b _020E55EC
 +	b _020E5470 ; case
 +	b _020E5528 ; case
 +	b _020E54A8 ; case
 +	b _020E5518 ; case
 +	b _020E55EC ; case
 +	b _020E5470 ; case
 +	b _020E55EC ; case
 +	b _020E55EC ; case
 +	b _020E55EC ; case
 +	b _020E55EC ; case
 +	b _020E55D8 ; case
 +	b _020E5470 ; case
 +	b _020E5564 ; case
 +	b _020E55EC ; case
 +	b _020E55EC ; case
 +	b _020E55B4 ; case
 +	b _020E55EC ; case
 +	b _020E5470 ; case
 +	b _020E55EC ; case
 +	b _020E55EC ; case
 +	b _020E5470 ; case
 +_020E5470:
 +	ldrb r0, [sp, #0x4]
 +	cmp r0, #0x9
 +	moveq r0, #0x4
 +	streqb r0, [sp, #0x4]
 +	ldrb r0, [sp, #0x2]
 +	cmp r0, #0x0
 +	moveq r0, #0x1
 +	streq r0, [sp, #0xc]
 +	beq _020E55F4
 +	ldrb r0, [sp, #0x0]
 +	cmp r0, #0x2
 +	moveq r0, #0x1
 +	streqb r0, [sp, #0x0]
 +	b _020E55F4
 +_020E54A8:
 +	ldrb r0, [sp, #0x4]
 +	cmp r0, #0x2
 +	cmpne r0, #0x6
 +	cmpne r0, #0x7
 +	cmpne r0, #0x8
 +	cmpne r0, #0x4
 +	ldreq r0, _020E5614 ; =0x0000FFFF
 +	streqh r0, [sp, #0x6]
 +	beq _020E55F4
 +	ldrb r0, [sp, #0x2]
 +	cmp r0, #0x0
 +	moveq r0, #0x6
 +	streq r0, [sp, #0xc]
 +	b _020E55F4
 +_020E54E0:
 +	ldrb r0, [sp, #0x2]
 +	cmp r0, #0x0
 +	moveq r0, #0xd
 +	streq r0, [sp, #0xc]
 +	ldrb r0, [sp, #0x4]
 +	cmp r0, #0x2
 +	cmpne r0, #0x6
 +	cmpne r0, #0x7
 +	cmpne r0, #0x8
 +	cmpne r0, #0x4
 +	cmpne r0, #0x1
 +	ldreq r0, _020E5614 ; =0x0000FFFF
 +	streqh r0, [sp, #0x6]
 +	b _020E55F4
 +_020E5518:
 +	ldr r0, [sp, #0xc]
 +	cmp r0, #0x0
 +	moveq r0, #0x1
 +	streq r0, [sp, #0xc]
 +_020E5528:
 +	ldrb r0, [sp, #0x4]
 +	cmp r0, #0x2
 +	cmpne r0, #0x6
 +	cmpne r0, #0x7
 +	cmpne r0, #0x8
 +	cmpne r0, #0x4
 +	cmpne r0, #0x1
 +	ldreq r0, _020E5614 ; =0x0000FFFF
 +	streqh r0, [sp, #0x6]
 +	beq _020E55F4
 +	ldrb r0, [sp, #0x2]
 +	cmp r0, #0x0
 +	moveq r0, #0x6
 +	streq r0, [sp, #0xc]
 +	b _020E55F4
 +_020E5564:
 +	mov r3, #0x3
 +	mov r2, #0x1
 +	mov r1, #0x78
 +	mov r0, #0x8
 +	strb r3, [sp, #0x4]
 +	strb r2, [sp, #0x3]
 +	strh r1, [sp, #0x6]
 +	str r0, [sp, #0xc]
 +	b _020E55F4
 +_020E5588:
 +	ldrb r1, [sp, #0x4]
 +	cmp r1, #0x3
 +	moveq r0, #0x5
 +	streqb r0, [sp, #0x4]
 +	beq _020E55F4
 +	ldrb r0, [sp, #0x2]
 +	cmp r0, #0x0
 +	cmpeq r1, #0x0
 +	ldrne r0, _020E5614 ; =0x0000FFFF
 +	strneh r0, [sp, #0x6]
 +	b _020E55F4
 +_020E55B4:
 +	ldrb r0, [sp, #0x4]
 +	cmp r0, #0x3
 +	moveq r0, #0x5
 +	streqb r0, [sp, #0x4]
 +	beq _020E55F4
 +	cmp r0, #0x0
 +	ldrne r0, _020E5614 ; =0x0000FFFF
 +	strneh r0, [sp, #0x6]
 +	b _020E55F4
 +_020E55D8:
 +	ldrb r0, [sp, #0x4]
 +	cmp r0, #0x9
 +	moveq r0, #0x4
 +	streqb r0, [sp, #0x4]
 +	b _020E55F4
 +_020E55EC:
 +	ldr r0, _020E5614 ; =0x0000FFFF
 +	strh r0, [sp, #0x6]
 +_020E55F4:
 +	add r0, sp, #0x0
 +	ldmia r0, {r0-r3}
 +	stmia lr, {r0-r3}
 +	add r0, r12, #0x2
 +	add sp, sp, #0x10
 +	ldmia sp!, {r4-r8,pc}
 +	.balign 4
 +_020E560C: .word __wctype_mapC
 +_020E5610: .word 0x000001FD
 +_020E5614: .word 0x0000FFFF
 +    arm_func_end parse_format__wide
 +
 +	arm_func_start long2str__wide
 +long2str__wide: ; 0x020E5618
 +	stmdb sp!, {r0-r3}
 +	stmdb sp!, {r3-r11,lr}
 +	sub sp, sp, #0x10
 +	movs r10, r0
 +	mov r0, #0x0
 +	mov r5, r1
 +	str r0, [sp, #0xc]
 +	ldr r7, [sp, #0x4c]
 +	mov r6, r0
 +	strh r0, [r5, #-0x2]!
 +	ldrb r0, [sp, #0x43]
 +	str r1, [sp, #0x0]
 +	ldrh r8, [sp, #0x46]
 +	str r0, [sp, #0x4]
 +	ldr r0, [sp, #0x48]
 +	ldrb r11, [sp, #0x41]
 +	str r0, [sp, #0x8]
 +	cmpeq r7, #0x0
 +	bne _020E568C
 +	ldr r0, [sp, #0x4]
 +	cmp r0, #0x0
 +	beq _020E5678
 +	cmp r8, #0x6f
 +	beq _020E568C
 +_020E5678:
 +	add sp, sp, #0x10
 +	mov r0, r5
 +	ldmia sp!, {r3-r11,lr}
 +	add sp, sp, #0x10
 +	bx lr
 +_020E568C:
 +	cmp r8, #0x69
 +	bgt _020E56B4
 +	bge _020E56E8
 +	cmp r8, #0x58
 +	bgt _020E56A8
 +	beq _020E5714
 +	b _020E571C
 +_020E56A8:
 +	cmp r8, #0x64
 +	beq _020E56E8
 +	b _020E571C
 +_020E56B4:
 +	cmp r8, #0x6f
 +	bgt _020E56C8
 +	moveq r4, #0x8
 +	moveq r11, #0x0
 +	b _020E571C
 +_020E56C8:
 +	cmp r8, #0x78
 +	bgt _020E571C
 +	cmp r8, #0x75
 +	blt _020E571C
 +	beq _020E5708
 +	cmp r8, #0x78
 +	beq _020E5714
 +	b _020E571C
 +_020E56E8:
 +	cmp r10, #0x0
 +	mov r4, #0xa
 +	bge _020E571C
 +	mov r0, #0x1
 +	cmp r10, #0x80000000
 +	rsbne r10, r10, #0x0
 +	str r0, [sp, #0xc]
 +	b _020E571C
 +_020E5708:
 +	mov r4, #0xa
 +	mov r11, #0x0
 +	b _020E571C
 +_020E5714:
 +	mov r4, #0x10
 +	mov r11, #0x0
 +_020E571C:
 +	mov r0, r10
 +	mov r1, r4
 +	bl _u32_div_f
 +	mov r9, r1
 +	mov r0, r10
 +	mov r1, r4
 +	bl _u32_div_f
 +	cmp r9, #0xa
 +	mov r10, r0
 +	addlt r9, r9, #0x30
 +	blt _020E5754
 +	cmp r8, #0x78
 +	addeq r9, r9, #0x57
 +	addne r9, r9, #0x37
 +_020E5754:
 +	cmp r10, #0x0
 +	strh r9, [r5, #-0x2]!
 +	add r6, r6, #0x1
 +	bne _020E571C
 +	cmp r4, #0x8
 +	bne _020E5788
 +	ldr r0, [sp, #0x4]
 +	cmp r0, #0x0
 +	ldrneh r0, [r5, #0x0]
 +	cmpne r0, #0x30
 +	movne r0, #0x30
 +	strneh r0, [r5, #-0x2]!
 +	addne r6, r6, #0x1
 +_020E5788:
 +	ldrb r0, [sp, #0x40]
 +	cmp r0, #0x2
 +	bne _020E57BC
 +	ldr r0, [sp, #0xc]
 +	ldr r7, [sp, #0x8]
 +	cmp r0, #0x0
 +	cmpeq r11, #0x0
 +	subne r7, r7, #0x1
 +	cmp r4, #0x10
 +	bne _020E57BC
 +	ldr r0, [sp, #0x4]
 +	cmp r0, #0x0
 +	subne r7, r7, #0x2
 +_020E57BC:
 +	ldr r0, [sp, #0x0]
 +	ldr r1, _020E5864 ; =0x000001FD
 +	sub r0, r0, r5
 +	add r0, r0, r0, lsr #0x1f
 +	add r0, r7, r0, asr #0x1
 +	cmp r0, r1
 +	addgt sp, sp, #0x10
 +	movgt r0, #0x0
 +	ldmgtia sp!, {r3-r11,lr}
 +	addgt sp, sp, #0x10
 +	bxgt lr
 +	cmp r6, r7
 +	bge _020E5804
 +	mov r0, #0x30
 +_020E57F4:
 +	add r6, r6, #0x1
 +	cmp r6, r7
 +	strh r0, [r5, #-0x2]!
 +	blt _020E57F4
 +_020E5804:
 +	cmp r4, #0x10
 +	bne _020E5820
 +	ldr r0, [sp, #0x4]
 +	cmp r0, #0x0
 +	movne r0, #0x30
 +	strneh r8, [r5, #-0x2]
 +	strneh r0, [r5, #-0x4]!
 +_020E5820:
 +	ldr r0, [sp, #0xc]
 +	cmp r0, #0x0
 +	movne r0, #0x2d
 +	strneh r0, [r5, #-0x2]!
 +	bne _020E5850
 +	cmp r11, #0x1
 +	moveq r0, #0x2b
 +	streqh r0, [r5, #-0x2]!
 +	beq _020E5850
 +	cmp r11, #0x2
 +	moveq r0, #0x20
 +	streqh r0, [r5, #-0x2]!
 +_020E5850:
 +	mov r0, r5
 +	add sp, sp, #0x10
 +	ldmia sp!, {r3-r11,lr}
 +	add sp, sp, #0x10
 +	bx lr
 +	.balign 4
 +_020E5864: .word 0x000001FD
 +    ; arm_func_end long2str__wide
 +
 +	arm_func_start longlong2str__wide
 +longlong2str__wide: ; 0x020E5868
 +	stmdb sp!, {r0-r3}
 +	stmdb sp!, {r3-r11,lr}
 +	sub sp, sp, #0x18
 +	mov r9, r1
 +	mov r1, #0x0
 +	mov r10, r0
 +	mov r6, r2
 +	mov r0, r1
 +	strh r0, [r6, #-0x2]!
 +	ldr r0, [sp, #0x58]
 +	cmp r9, #0x0
 +	str r0, [sp, #0x10]
 +	ldrb r0, [sp, #0x4f]
 +	cmpeq r10, #0x0
 +	str r2, [sp, #0x0]
 +	str r0, [sp, #0x4]
 +	ldr r0, [sp, #0x54]
 +	str r1, [sp, #0x14]
 +	str r0, [sp, #0x8]
 +	ldrb r0, [sp, #0x4d]
 +	mov r7, r1
 +	ldrh r8, [sp, #0x52]
 +	str r0, [sp, #0xc]
 +	ldreq r0, [sp, #0x10]
 +	cmpeq r0, #0x0
 +	bne _020E58F8
 +	ldr r0, [sp, #0x4]
 +	cmp r0, #0x0
 +	beq _020E58E4
 +	cmp r8, #0x6f
 +	beq _020E58F8
 +_020E58E4:
 +	add sp, sp, #0x18
 +	mov r0, r6
 +	ldmia sp!, {r3-r11,lr}
 +	add sp, sp, #0x10
 +	bx lr
 +_020E58F8:
 +	cmp r8, #0x69
 +	bgt _020E5920
 +	bge _020E5950
 +	cmp r8, #0x58
 +	bgt _020E5914
 +	beq _020E59A4
 +	b _020E59B0
 +_020E5914:
 +	cmp r8, #0x64
 +	beq _020E5950
 +	b _020E59B0
 +_020E5920:
 +	cmp r8, #0x6f
 +	bgt _020E5930
 +	beq _020E5984
 +	b _020E59B0
 +_020E5930:
 +	cmp r8, #0x78
 +	bgt _020E59B0
 +	cmp r8, #0x75
 +	blt _020E59B0
 +	beq _020E5994
 +	cmp r8, #0x78
 +	beq _020E59A4
 +	b _020E59B0
 +_020E5950:
 +	subs r0, r10, #0x0
 +	sbcs r0, r9, #0x0
 +	mov r11, #0xa
 +	mov r5, #0x0
 +	bge _020E59B0
 +	cmp r9, #0x80000000
 +	cmpeq r10, r5
 +	beq _020E5978
 +	rsbs r10, r10, #0x0
 +	rsc r9, r9, #0x0
 +_020E5978:
 +	mov r0, #0x1
 +	str r0, [sp, #0x14]
 +	b _020E59B0
 +_020E5984:
 +	mov r5, #0x0
 +	str r5, [sp, #0xc]
 +	mov r11, #0x8
 +	b _020E59B0
 +_020E5994:
 +	mov r5, #0x0
 +	str r5, [sp, #0xc]
 +	mov r11, #0xa
 +	b _020E59B0
 +_020E59A4:
 +	mov r5, #0x0
 +	str r5, [sp, #0xc]
 +	mov r11, #0x10
 +_020E59B0:
 +	mov r0, r10
 +	mov r1, r9
 +	mov r2, r11
 +	mov r3, r5
 +	bl _ull_mod
 +	mov r4, r0
 +	mov r0, r10
 +	mov r1, r9
 +	mov r2, r11
 +	mov r3, r5
 +	bl _ll_udiv
 +	mov r10, r0
 +	cmp r4, #0xa
 +	mov r9, r1
 +	addlt r0, r4, #0x30
 +	blt _020E59FC
 +	cmp r8, #0x78
 +	addeq r0, r4, #0x57
 +	addne r0, r4, #0x37
 +_020E59FC:
 +	strh r0, [r6, #-0x2]!
 +	mov r0, #0x0
 +	cmp r9, r0
 +	cmpeq r10, r0
 +	add r7, r7, #0x1
 +	bne _020E59B0
 +	cmp r5, #0x0
 +	cmpeq r11, #0x8
 +	bne _020E5A3C
 +	ldr r0, [sp, #0x4]
 +	cmp r0, #0x0
 +	ldrneh r0, [r6, #0x0]
 +	cmpne r0, #0x30
 +	movne r0, #0x30
 +	strneh r0, [r6, #-0x2]!
 +	addne r7, r7, #0x1
 +_020E5A3C:
 +	ldrb r0, [sp, #0x4c]
 +	cmp r0, #0x2
 +	bne _020E5A8C
 +	ldr r0, [sp, #0x8]
 +	str r0, [sp, #0x10]
 +	ldr r0, [sp, #0x14]
 +	cmp r0, #0x0
 +	ldreq r0, [sp, #0xc]
 +	cmpeq r0, #0x0
 +	ldrne r0, [sp, #0x10]
 +	subne r0, r0, #0x1
 +	strne r0, [sp, #0x10]
 +	cmp r5, #0x0
 +	cmpeq r11, #0x10
 +	bne _020E5A8C
 +	ldr r0, [sp, #0x4]
 +	cmp r0, #0x0
 +	ldrne r0, [sp, #0x10]
 +	subne r0, r0, #0x2
 +	strne r0, [sp, #0x10]
 +_020E5A8C:
 +	ldr r0, [sp, #0x0]
 +	ldr r2, _020E5B48 ; =0x000001FD
 +	sub r0, r0, r6
 +	add r1, r0, r0, lsr #0x1f
 +	ldr r0, [sp, #0x10]
 +	add r0, r0, r1, asr #0x1
 +	cmp r0, r2
 +	addgt sp, sp, #0x18
 +	movgt r0, #0x0
 +	ldmgtia sp!, {r3-r11,lr}
 +	addgt sp, sp, #0x10
 +	bxgt lr
 +	ldr r0, [sp, #0x10]
 +	cmp r7, r0
 +	bge _020E5AE0
 +	mov r1, #0x30
 +_020E5ACC:
 +	ldr r0, [sp, #0x10]
 +	add r7, r7, #0x1
 +	cmp r7, r0
 +	strh r1, [r6, #-0x2]!
 +	blt _020E5ACC
 +_020E5AE0:
 +	cmp r5, #0x0
 +	cmpeq r11, #0x10
 +	bne _020E5B00
 +	ldr r0, [sp, #0x4]
 +	cmp r0, #0x0
 +	movne r0, #0x30
 +	strneh r8, [r6, #-0x2]
 +	strneh r0, [r6, #-0x4]!
 +_020E5B00:
 +	ldr r0, [sp, #0x14]
 +	cmp r0, #0x0
 +	movne r0, #0x2d
 +	strneh r0, [r6, #-0x2]!
 +	bne _020E5B34
 +	ldr r0, [sp, #0xc]
 +	cmp r0, #0x1
 +	moveq r0, #0x2b
 +	streqh r0, [r6, #-0x2]!
 +	beq _020E5B34
 +	cmp r0, #0x2
 +	moveq r0, #0x20
 +	streqh r0, [r6, #-0x2]!
 +_020E5B34:
 +	mov r0, r6
 +	add sp, sp, #0x18
 +	ldmia sp!, {r3-r11,lr}
 +	add sp, sp, #0x10
 +	bx lr
 +	.balign 4
 +_020E5B48: .word 0x000001FD
 +    ; arm_func_end longlong2str__wide
 +
 +	arm_func_start double2hex__wide
 +double2hex__wide: ; 0x020E5B4C
 +	stmdb sp!, {r0-r3}
 +	stmdb sp!, {r3-r10,lr}
 +	sub sp, sp, #0x44
 +	ldr r7, [sp, #0x80]
 +	ldr r0, _020E5EB8 ; =0x000001FD
 +	mov r8, r2
 +	cmp r7, r0
 +	ldrh r6, [sp, #0x7a]
 +	ldrb r5, [sp, #0x77]
 +	ldrb r4, [sp, #0x75]
 +	ldr r1, [sp, #0x68]
 +	ldr r2, [sp, #0x6c]
 +	addgt sp, sp, #0x44
 +	movgt r0, #0x0
 +	ldmgtia sp!, {r3-r10,lr}
 +	addgt sp, sp, #0x10
 +	bxgt lr
 +	mov r10, #0x0
 +	mov r9, #0x20
 +	add r0, sp, #0x8
 +	add r3, sp, #0xc
 +	strb r10, [sp, #0x8]
 +	strh r9, [sp, #0xa]
 +	bl __num2dec_internal2
 +	ldr r0, [sp, #0x68]
 +	ldr r1, [sp, #0x6c]
 +	bl fabs
 +	mov r2, r0
 +	mov r0, r10
 +	mov r3, r1
 +	mov r1, r0
 +	bl _deq
 +	bne _020E5BF4
 +	sub r4, r8, #0xc
 +	ldr r1, _020E5EBC ; =wstr$6DE4
 +	mov r0, r4
 +	bl wcscpy
 +	add sp, sp, #0x44
 +	mov r0, r4
 +	ldmia sp!, {r3-r10,lr}
 +	add sp, sp, #0x10
 +	bx lr
 +_020E5BF4:
 +	ldrb r0, [sp, #0x11]
 +	cmp r0, #0x49
 +	bne _020E5C74
 +	ldrsb r0, [sp, #0xc]
 +	cmp r0, #0x0
 +	beq _020E5C38
 +	cmp r6, #0x41
 +	sub r4, r8, #0xa
 +	bne _020E5C28
 +	ldr r1, _020E5EC0 ; =wstr$6DF0
 +	mov r0, r4
 +	bl wcscpy
 +	b _020E5C60
 +_020E5C28:
 +	ldr r1, _020E5EC4 ; =wstr$6DFC
 +	mov r0, r4
 +	bl wcscpy
 +	b _020E5C60
 +_020E5C38:
 +	cmp r6, #0x41
 +	sub r4, r8, #0x8
 +	bne _020E5C54
 +	ldr r1, _020E5EC8 ; =wstr$6E08
 +	mov r0, r4
 +	bl wcscpy
 +	b _020E5C60
 +_020E5C54:
 +	ldr r1, _020E5ECC ; =wstr$6E10
 +	mov r0, r4
 +	bl wcscpy
 +_020E5C60:
 +	add sp, sp, #0x44
 +	mov r0, r4
 +	ldmia sp!, {r3-r10,lr}
 +	add sp, sp, #0x10
 +	bx lr
 +_020E5C74:
 +	cmp r0, #0x4e
 +	bne _020E5CF0
 +	ldrsb r0, [sp, #0xc]
 +	cmp r0, #0x0
 +	beq _020E5CB4
 +	cmp r6, #0x41
 +	sub r4, r8, #0xa
 +	bne _020E5CA4
 +	ldr r1, _020E5ED0 ; =wstr$6E18
 +	mov r0, r4
 +	bl wcscpy
 +	b _020E5CDC
 +_020E5CA4:
 +	ldr r1, _020E5ED4 ; =wstr$6E24
 +	mov r0, r4
 +	bl wcscpy
 +	b _020E5CDC
 +_020E5CB4:
 +	cmp r6, #0x41
 +	sub r4, r8, #0x8
 +	bne _020E5CD0
 +	ldr r1, _020E5ED8 ; =wstr$6E30
 +	mov r0, r4
 +	bl wcscpy
 +	b _020E5CDC
 +_020E5CD0:
 +	ldr r1, _020E5EDC ; =wstr$6E38
 +	mov r0, r4
 +	bl wcscpy
 +_020E5CDC:
 +	add sp, sp, #0x44
 +	mov r0, r4
 +	ldmia sp!, {r3-r10,lr}
 +	add sp, sp, #0x10
 +	bx lr
 +_020E5CF0:
 +	mov r3, r10
 +	mov r1, #0x1
 +	mov r0, #0x64
 +	add r9, sp, #0x68
 +	strb r1, [sp, #0x34]
 +	strb r1, [sp, #0x35]
 +	strb r3, [sp, #0x36]
 +	strb r3, [sp, #0x37]
 +	strb r3, [sp, #0x38]
 +	str r3, [sp, #0x3c]
 +	str r1, [sp, #0x40]
 +	strh r0, [sp, #0x3a]
 +_020E5D20:
 +	rsb r1, r3, #0x7
 +	ldrsb r2, [r9, r3]
 +	ldrsb r0, [r9, r1]
 +	strb r0, [r9, r3]
 +	add r3, r3, #0x1
 +	strb r2, [r9, r1]
 +	cmp r3, #0x4
 +	blt _020E5D20
 +	ldrb r0, [sp, #0x69]
 +	ldrb r1, [sp, #0x68]
 +	ldr sb, _020E5EE0 ; =0x000007FF
 +	mov r0, r0, lsl #0x11
 +	orr r1, r0, r1, lsl #0x19
 +	add r0, sp, #0x34
 +	and lr, r9, r1, lsr #0x15
 +	sub r12, sp, #0x8
 +	ldmia r0, {r0-r3}
 +	stmia r12, {r0-r3}
 +	rsb r0, r9, #0x400
 +	mov r1, r8
 +	add r0, lr, r0
 +	ldmia r12, {r2-r3}
 +	bl long2str__wide
 +	cmp r6, #0x61
 +	moveq r1, #0x70
 +	movne r1, #0x50
 +	strh r1, [r0, #-0x2]!
 +	mov r1, r7, lsl #0x2
 +	mov lr, r7
 +	cmp r7, #0x1
 +	add r8, r1, #0xb
 +	add r12, sp, #0x68
 +	blt _020E5E30
 +	mov r9, #0x30
 +_020E5DA8:
 +	cmp r8, #0x40
 +	bge _020E5E18
 +	ldrb r1, [r12, r8, asr #0x3]
 +	and r2, r8, #0x7
 +	rsb r3, r2, #0x7
 +	mov r2, r1, asr r3
 +	sub r10, r8, #0x4
 +	bic r1, r8, #0x7
 +	bic r10, r10, #0x7
 +	cmp r1, r10
 +	add r10, r12, r8, asr #0x3
 +	and r1, r2, #0xff
 +	beq _020E5DEC
 +	ldrb r2, [r10, #-0x1]
 +	mov r2, r2, lsl #0x8
 +	orr r1, r1, r2, asr r3
 +	and r1, r1, #0xff
 +_020E5DEC:
 +	and r1, r1, #0xf
 +	cmp r1, #0xa
 +	addcc r1, r1, #0x30
 +	andcc r1, r1, #0xff
 +	blo _020E5E1C
 +	cmp r6, #0x61
 +	addeq r1, r1, #0x57
 +	andeq r1, r1, #0xff
 +	addne r1, r1, #0x37
 +	andne r1, r1, #0xff
 +	b _020E5E1C
 +_020E5E18:
 +	mov r1, r9
 +_020E5E1C:
 +	sub lr, lr, #0x1
 +	cmp lr, #0x1
 +	strh r1, [r0, #-0x2]!
 +	sub r8, r8, #0x4
 +	bge _020E5DA8
 +_020E5E30:
 +	cmp r7, #0x0
 +	cmpeq r5, #0x0
 +	movne r1, #0x2e
 +	strneh r1, [r0, #-0x2]!
 +	mov r1, #0x31
 +	strh r1, [r0, #-0x2]
 +	cmp r6, #0x61
 +	moveq r1, #0x78
 +	movne r1, #0x58
 +	strh r1, [r0, #-0x4]!
 +	mov r1, #0x30
 +	strh r1, [r0, #-0x2]!
 +	ldrsb r1, [sp, #0xc]
 +	cmp r1, #0x0
 +	movne r1, #0x2d
 +	strneh r1, [r0, #-0x2]!
 +	addne sp, sp, #0x44
 +	ldmneia sp!, {r3-r10,lr}
 +	addne sp, sp, #0x10
 +	bxne lr
 +	cmp r4, #0x1
 +	moveq r1, #0x2b
 +	streqh r1, [r0, #-0x2]!
 +	addeq sp, sp, #0x44
 +	ldmeqia sp!, {r3-r10,lr}
 +	addeq sp, sp, #0x10
 +	bxeq lr
 +	cmp r4, #0x2
 +	moveq r1, #0x20
 +	streqh r1, [r0, #-0x2]!
 +	add sp, sp, #0x44
 +	ldmia sp!, {r3-r10,lr}
 +	add sp, sp, #0x10
 +	bx lr
 +	.balign 4
 +_020E5EB8: .word 0x000001FD
 +_020E5EBC: .word wstr$6DE4
 +_020E5EC0: .word wstr$6DF0
 +_020E5EC4: .word wstr$6DFC
 +_020E5EC8: .word wstr$6E08
 +_020E5ECC: .word wstr$6E10
 +_020E5ED0: .word wstr$6E18
 +_020E5ED4: .word wstr$6E24
 +_020E5ED8: .word wstr$6E30
 +_020E5EDC: .word wstr$6E38
 +_020E5EE0: .word 0x000007FF
 +    ; arm_func_end double2hex__wide
 +
 +	arm_func_start round_decimal__wide
 +round_decimal__wide: ; 0x020E5EE4
 +	stmdb sp!, {r4,lr}
 +	cmp r1, #0x0
 +	bge _020E5F0C
 +_020E5EF0:
 +	mov r1, #0x0
 +	strh r1, [r0, #0x2]
 +	mov r1, #0x1
 +	strb r1, [r0, #0x4]
 +	mov r1, #0x30
 +	strb r1, [r0, #0x5]
 +	ldmia sp!, {r4,pc}
 +_020E5F0C:
 +	ldrb lr, [r0, #0x4]
 +	cmp r1, lr
 +	ldmgeia sp!, {r4,pc}
 +	add r12, r0, #0x5
 +	add r2, r12, r1
 +	add r2, r2, #0x1
 +	ldrsb r3, [r2, #-0x1]!
 +	sub r3, r3, #0x30
 +	mov r3, r3, lsl #0x18
 +	mov r3, r3, asr #0x18
 +	cmp r3, #0x5
 +	bne _020E5F6C
 +	add r12, r12, lr
 +_020E5F40:
 +	sub r12, r12, #0x1
 +	cmp r12, r2
 +	bls _020E5F58
 +	ldrsb r3, [r12, #0x0]
 +	cmp r3, #0x30
 +	beq _020E5F40
 +_020E5F58:
 +	cmp r12, r2
 +	ldreqsb r3, [r2, #-0x1]
 +	andeq r4, r3, #0x1
 +	movne r4, #0x1
 +	b _020E5F74
 +_020E5F6C:
 +	movgt r4, #0x1
 +	movle r4, #0x0
 +_020E5F74:
 +	cmp r1, #0x0
 +	beq _020E5FD0
 +	mov r12, #0x0
 +	mov lr, #0x1
 +_020E5F84:
 +	ldrsb r3, [r2, #-0x1]!
 +	sub r3, r3, #0x30
 +	add r3, r3, r4
 +	mov r3, r3, lsl #0x18
 +	mov r3, r3, asr #0x18
 +	cmp r3, #0x9
 +	movgt r4, lr
 +	movle r4, r12
 +	cmp r4, #0x0
 +	bne _020E5FB4
 +	cmp r3, #0x0
 +	bne _020E5FBC
 +_020E5FB4:
 +	sub r1, r1, #0x1
 +	b _020E5FC8
 +_020E5FBC:
 +	add r3, r3, #0x30
 +	strb r3, [r2, #0x0]
 +	b _020E5FD0
 +_020E5FC8:
 +	cmp r1, #0x0
 +	bne _020E5F84
 +_020E5FD0:
 +	cmp r4, #0x0
 +	beq _020E5FF8
 +	ldrsh r3, [r0, #0x2]
 +	mov r2, #0x1
 +	mov r1, #0x31
 +	add r3, r3, #0x1
 +	strh r3, [r0, #0x2]
 +	strb r2, [r0, #0x4]
 +	strb r1, [r0, #0x5]
 +	ldmia sp!, {r4,pc}
 +_020E5FF8:
 +	cmp r1, #0x0
 +	beq _020E5EF0
 +	strb r1, [r0, #0x4]
 +	ldmia sp!, {r4,pc}
 +    arm_func_end round_decimal__wide
 +
 +	arm_func_start float2str__wide
 +float2str__wide: ; 0x020E6008
 +	stmdb sp!, {r0-r3}
 +	stmdb sp!, {r4-r11,lr}
 +	sub sp, sp, #0x22c
 +	mov r10, r0
 +	add r0, sp, #0x250
 +	ldr r7, [sp, #0x268]
 +	ldr r3, _020E6628 ; =0x000001FD
 +	ldrh r6, [r0, #0x12]
 +	cmp r7, r3
 +	ldrb r5, [sp, #0x25f]
 +	ldrb r4, [sp, #0x25d]
 +	mov r8, r1
 +	mov r9, r2
 +	addgt sp, sp, #0x22c
 +	movgt r0, #0x0
 +	ldmgtia sp!, {r4-r11,lr}
 +	addgt sp, sp, #0x10
 +	bxgt lr
 +	mov r12, #0x0
 +	mov r11, #0x20
 +	add r0, sp, #0x0
 +	add r3, sp, #0x4
 +	mov r1, r10
 +	mov r2, r8
 +	strb r12, [sp, #0x0]
 +	strh r11, [sp, #0x2]
 +	bl __num2dec_internal2
 +	ldrb r0, [sp, #0x8]
 +	add r1, sp, #0x9
 +	add r0, r1, r0
 +	b _020E609C
 +_020E6084:
 +	ldrb r2, [sp, #0x8]
 +	ldrsh r1, [sp, #0x6]
 +	sub r2, r2, #0x1
 +	add r1, r1, #0x1
 +	strb r2, [sp, #0x8]
 +	strh r1, [sp, #0x6]
 +_020E609C:
 +	ldrb r1, [sp, #0x8]
 +	cmp r1, #0x1
 +	bls _020E60B4
 +	ldrsb r1, [r0, #-0x1]!
 +	cmp r1, #0x30
 +	beq _020E6084
 +_020E60B4:
 +	ldrb r0, [sp, #0x9]
 +	cmp r0, #0x30
 +	beq _020E60D4
 +	cmp r0, #0x49
 +	beq _020E60E0
 +	cmp r0, #0x4e
 +	beq _020E6198
 +	b _020E6244
 +_020E60D4:
 +	mov r0, #0x0
 +	strh r0, [sp, #0x6]
 +	b _020E6244
 +_020E60E0:
 +	mov r2, #0x0
 +	mov r0, r10
 +	mov r1, r8
 +	mov r3, r2
 +	bl _dls
 +	bhs _020E6140
 +	cmp r6, #0x80
 +	sub r4, r9, #0xa
 +	movcs r0, #0x0
 +	bhs _020E6118
 +	ldr r0, _020E662C ; =__wctype_mapC
 +	mov r1, r6, lsl #0x1
 +	ldrh r0, [r0, r1]
 +	and r0, r0, #0x200
 +_020E6118:
 +	cmp r0, #0x0
 +	beq _020E6130
 +	ldr r1, _020E6630 ; =wstr$6DF0
 +	mov r0, r4
 +	bl wcscpy
 +	b _020E6184
 +_020E6130:
 +	ldr r1, _020E6634 ; =wstr$6DFC
 +	mov r0, r4
 +	bl wcscpy
 +	b _020E6184
 +_020E6140:
 +	cmp r6, #0x80
 +	sub r4, r9, #0x8
 +	movcs r0, #0x0
 +	bhs _020E6160
 +	ldr r0, _020E662C ; =__wctype_mapC
 +	mov r1, r6, lsl #0x1
 +	ldrh r0, [r0, r1]
 +	and r0, r0, #0x200
 +_020E6160:
 +	cmp r0, #0x0
 +	beq _020E6178
 +	ldr r1, _020E6638 ; =wstr$6E08
 +	mov r0, r4
 +	bl wcscpy
 +	b _020E6184
 +_020E6178:
 +	ldr r1, _020E663C ; =wstr$6E10
 +	mov r0, r4
 +	bl wcscpy
 +_020E6184:
 +	add sp, sp, #0x22c
 +	mov r0, r4
 +	ldmia sp!, {r4-r11,lr}
 +	add sp, sp, #0x10
 +	bx lr
 +_020E6198:
 +	ldrsb r0, [sp, #0x4]
 +	cmp r0, #0x0
 +	beq _020E61EC
 +	cmp r6, #0x80
 +	sub r4, r9, #0xa
 +	movcs r0, #0x0
 +	bhs _020E61C4
 +	ldr r0, _020E662C ; =__wctype_mapC
 +	mov r1, r6, lsl #0x1
 +	ldrh r0, [r0, r1]
 +	and r0, r0, #0x200
 +_020E61C4:
 +	cmp r0, #0x0
 +	beq _020E61DC
 +	ldr r1, _020E6640 ; =wstr$6E18
 +	mov r0, r4
 +	bl wcscpy
 +	b _020E6230
 +_020E61DC:
 +	ldr r1, _020E6644 ; =wstr$6E24
 +	mov r0, r4
 +	bl wcscpy
 +	b _020E6230
 +_020E61EC:
 +	cmp r6, #0x80
 +	sub r4, r9, #0x8
 +	movcs r0, #0x0
 +	bhs _020E620C
 +	ldr r0, _020E662C ; =__wctype_mapC
 +	mov r1, r6, lsl #0x1
 +	ldrh r0, [r0, r1]
 +	and r0, r0, #0x200
 +_020E620C:
 +	cmp r0, #0x0
 +	beq _020E6224
 +	ldr r1, _020E6648 ; =wstr$6E30
 +	mov r0, r4
 +	bl wcscpy
 +	b _020E6230
 +_020E6224:
 +	ldr r1, _020E664C ; =wstr$6E38
 +	mov r0, r4
 +	bl wcscpy
 +_020E6230:
 +	add sp, sp, #0x22c
 +	mov r0, r4
 +	ldmia sp!, {r4-r11,lr}
 +	add sp, sp, #0x10
 +	bx lr
 +_020E6244:
 +	ldrb r1, [sp, #0x8]
 +	ldrsh r2, [sp, #0x6]
 +	add r0, sp, #0x200
 +	sub r1, r1, #0x1
 +	add r0, r0, #0x2a
 +	add r1, r2, r1
 +	sub r8, r0, #0x1
 +	strh r1, [sp, #0x6]
 +	mov r0, #0x0
 +	strb r0, [r8, #0x0]
 +	cmp r6, #0x65
 +	bgt _020E62A0
 +	bge _020E632C
 +	cmp r6, #0x47
 +	bgt _020E65EC
 +	cmp r6, #0x45
 +	blt _020E65EC
 +	beq _020E632C
 +	cmp r6, #0x46
 +	beq _020E6478
 +	cmp r6, #0x47
 +	beq _020E62B8
 +	b _020E65EC
 +_020E62A0:
 +	cmp r6, #0x66
 +	bgt _020E62B0
 +	beq _020E6478
 +	b _020E65EC
 +_020E62B0:
 +	cmp r6, #0x67
 +	bne _020E65EC
 +_020E62B8:
 +	ldrb r0, [sp, #0x8]
 +	cmp r0, r7
 +	ble _020E62D0
 +	add r0, sp, #0x4
 +	mov r1, r7
 +	bl round_decimal__wide
 +_020E62D0:
 +	ldrsh r2, [sp, #0x6]
 +	mvn r0, #0x3
 +	cmp r2, r0
 +	blt _020E62E8
 +	cmp r2, r7
 +	blt _020E6308
 +_020E62E8:
 +	cmp r5, #0x0
 +	ldreqb r0, [sp, #0x8]
 +	subne r7, r7, #0x1
 +	subeq r7, r0, #0x1
 +	cmp r6, #0x67
 +	moveq r6, #0x65
 +	movne r6, #0x45
 +	b _020E632C
 +_020E6308:
 +	cmp r5, #0x0
 +	addne r0, r2, #0x1
 +	subne r7, r7, r0
 +	bne _020E6478
 +	ldrb r1, [sp, #0x8]
 +	add r0, r2, #0x1
 +	subs r7, r1, r0
 +	movmi r7, #0x0
 +	b _020E6478
 +_020E632C:
 +	ldrb r0, [sp, #0x8]
 +	add r1, r7, #0x1
 +	cmp r0, r1
 +	ble _020E6344
 +	add r0, sp, #0x4
 +	bl round_decimal__wide
 +_020E6344:
 +	ldrsh lr, [sp, #0x6]
 +	mov r11, #0x2b
 +	mov r10, #0x0
 +	cmp lr, #0x0
 +	rsblt lr, lr, #0x0
 +	movlt r11, #0x2d
 +	ldr r3, _020E6650 ; =0x66666667
 +	mov r0, #0xa
 +	b _020E6398
 +_020E6368:
 +	mov r1, lr, lsr #0x1f
 +	smull r2, r12, r3, lr
 +	add r12, r1, r12, asr #0x2
 +	smull r1, r2, r0, r12
 +	sub r12, lr, r1
 +	add r1, r12, #0x30
 +	strb r1, [r8, #-0x1]!
 +	mov r2, lr
 +	smull r1, lr, r3, r2
 +	mov r1, r2, lsr #0x1f
 +	add lr, r1, lr, asr #0x2
 +	add r10, r10, #0x1
 +_020E6398:
 +	cmp lr, #0x0
 +	bne _020E6368
 +	cmp r10, #0x2
 +	blt _020E6368
 +	add r0, sp, #0x2a
 +	strb r11, [r8, #-0x1]
 +	strb r6, [r8, #-0x2]!
 +	sub r1, r0, r8
 +	ldr r0, _020E6628 ; =0x000001FD
 +	add r1, r1, r7
 +	cmp r1, r0
 +	addgt sp, sp, #0x22c
 +	movgt r0, #0x0
 +	ldmgtia sp!, {r4-r11,lr}
 +	addgt sp, sp, #0x10
 +	bxgt lr
 +	ldrb r1, [sp, #0x8]
 +	add r0, r7, #0x1
 +	cmp r1, r0
 +	bge _020E6408
 +	add r0, r7, #0x2
 +	sub r0, r0, r1
 +	subs r1, r0, #0x1
 +	beq _020E6408
 +	mov r0, #0x30
 +_020E63FC:
 +	strb r0, [r8, #-0x1]!
 +	subs r1, r1, #0x1
 +	bne _020E63FC
 +_020E6408:
 +	ldrb r1, [sp, #0x8]
 +	add r0, sp, #0x9
 +	add r2, r0, r1
 +	subs r1, r1, #0x1
 +	beq _020E642C
 +_020E641C:
 +	ldrsb r0, [r2, #-0x1]!
 +	subs r1, r1, #0x1
 +	strb r0, [r8, #-0x1]!
 +	bne _020E641C
 +_020E642C:
 +	cmp r7, #0x0
 +	cmpeq r5, #0x0
 +	movne r0, #0x2e
 +	strneb r0, [r8, #-0x1]!
 +	ldrb r0, [sp, #0x9]
 +	strb r0, [r8, #-0x1]!
 +	ldrsb r0, [sp, #0x4]
 +	cmp r0, #0x0
 +	movne r0, #0x2d
 +	strneb r0, [r8, #-0x1]!
 +	bne _020E65EC
 +	cmp r4, #0x1
 +	moveq r0, #0x2b
 +	streqb r0, [r8, #-0x1]!
 +	beq _020E65EC
 +	cmp r4, #0x2
 +	moveq r0, #0x20
 +	streqb r0, [r8, #-0x1]!
 +	b _020E65EC
 +_020E6478:
 +	ldrsh r3, [sp, #0x6]
 +	ldrb r2, [sp, #0x8]
 +	sub r0, r2, r3
 +	subs r1, r0, #0x1
 +	movmi r1, #0x0
 +	cmp r1, r7
 +	ble _020E64B8
 +	sub r1, r1, r7
 +	add r0, sp, #0x4
 +	sub r1, r2, r1
 +	bl round_decimal__wide
 +	ldrsh r3, [sp, #0x6]
 +	ldrb r2, [sp, #0x8]
 +	sub r0, r2, r3
 +	subs r1, r0, #0x1
 +	movmi r1, #0x0
 +_020E64B8:
 +	adds r0, r3, #0x1
 +	movmi r0, #0x0
 +	ldr r3, _020E6628 ; =0x000001FD
 +	add r6, r0, r1
 +	cmp r6, r3
 +	addgt sp, sp, #0x22c
 +	movgt r0, #0x0
 +	ldmgtia sp!, {r4-r11,lr}
 +	addgt sp, sp, #0x10
 +	bxgt lr
 +	add r3, sp, #0x9
 +	sub r6, r7, r1
 +	cmp r6, #0x0
 +	add r2, r3, r2
 +	mov r10, #0x0
 +	ble _020E650C
 +	mov r3, #0x30
 +_020E64FC:
 +	add r10, r10, #0x1
 +	cmp r10, r6
 +	strb r3, [r8, #-0x1]!
 +	blt _020E64FC
 +_020E650C:
 +	mov r6, #0x0
 +	b _020E6520
 +_020E6514:
 +	ldrsb r3, [r2, #-0x1]!
 +	add r6, r6, #0x1
 +	strb r3, [r8, #-0x1]!
 +_020E6520:
 +	cmp r6, r1
 +	ldrltb r3, [sp, #0x8]
 +	cmplt r6, r3
 +	blt _020E6514
 +	cmp r6, r1
 +	bge _020E654C
 +	mov r3, #0x30
 +_020E653C:
 +	add r6, r6, #0x1
 +	cmp r6, r1
 +	strb r3, [r8, #-0x1]!
 +	blt _020E653C
 +_020E654C:
 +	cmp r7, #0x0
 +	cmpeq r5, #0x0
 +	movne r1, #0x2e
 +	strneb r1, [r8, #-0x1]!
 +	cmp r0, #0x0
 +	beq _020E65B4
 +	ldrb r1, [sp, #0x8]
 +	mov r5, #0x0
 +	sub r1, r0, r1
 +	cmp r1, #0x0
 +	ble _020E6594
 +	mov r3, #0x30
 +_020E657C:
 +	strb r3, [r8, #-0x1]!
 +	ldrb r1, [sp, #0x8]
 +	add r5, r5, #0x1
 +	sub r1, r0, r1
 +	cmp r5, r1
 +	blt _020E657C
 +_020E6594:
 +	cmp r5, r0
 +	bge _020E65BC
 +_020E659C:
 +	ldrsb r1, [r2, #-0x1]!
 +	add r5, r5, #0x1
 +	cmp r5, r0
 +	strb r1, [r8, #-0x1]!
 +	blt _020E659C
 +	b _020E65BC
 +_020E65B4:
 +	mov r0, #0x30
 +	strb r0, [r8, #-0x1]!
 +_020E65BC:
 +	ldrsb r0, [sp, #0x4]
 +	cmp r0, #0x0
 +	movne r0, #0x2d
 +	strneb r0, [r8, #-0x1]!
 +	bne _020E65EC
 +	cmp r4, #0x1
 +	moveq r0, #0x2b
 +	streqb r0, [r8, #-0x1]!
 +	beq _020E65EC
 +	cmp r4, #0x2
 +	moveq r0, #0x20
 +	streqb r0, [r8, #-0x1]!
 +_020E65EC:
 +	mov r0, r8
 +	bl strlen
 +	sub r1, r9, r0, lsl #0x1
 +	mov r0, r8
 +	sub r4, r1, #0x2
 +	bl strlen
 +	mov r2, r0
 +	mov r0, r4
 +	mov r1, r8
 +	bl mbstowcs
 +	mov r0, r4
 +	add sp, sp, #0x22c
 +	ldmia sp!, {r4-r11,lr}
 +	add sp, sp, #0x10
 +	bx lr
 +	.balign 4
 +_020E6628: .word 0x000001FD
 +_020E662C: .word __wctype_mapC
 +_020E6630: .word wstr$6DF0
 +_020E6634: .word wstr$6DFC
 +_020E6638: .word wstr$6E08
 +_020E663C: .word wstr$6E10
 +_020E6640: .word wstr$6E18
 +_020E6644: .word wstr$6E24
 +_020E6648: .word wstr$6E30
 +_020E664C: .word wstr$6E38
 +_020E6650: .word 0x66666667
 +    ; arm_func_end float2str__wide
 +
 +	arm_func_start __wpformatter
 +__wpformatter:
 +	stmdb sp!, {r0-r3}
 +	stmdb sp!, {r3-r11,lr}
 +	sub sp, sp, #0x430
 +	mov r3, #0x20
 +	mov r11, r2
 +	strh r3, [sp, #0x1c]
 +	ldrh r2, [r11, #0x0]
 +	mov r9, r0
 +	mov r8, r1
 +	cmp r2, #0x0
 +	mov r4, #0x0
 +	beq _020E6F24
 +_020E6684:
 +	mov r0, r11
 +	mov r1, #0x25
 +	bl wcschr
 +	str r0, [sp, #0xc]
 +	cmp r0, #0x0
 +	bne _020E66D8
 +	mov r0, r11
 +	bl wcslen
 +	movs r2, r0
 +	add r4, r4, r2
 +	beq _020E6F24
 +	mov r0, r8
 +	mov r1, r11
 +	blx r9
 +	cmp r0, #0x0
 +	bne _020E6F24
 +	add sp, sp, #0x430
 +	mvn r0, #0x0
 +	ldmia sp!, {r3-r11,lr}
 +	add sp, sp, #0x10
 +	bx lr
 +_020E66D8:
 +	sub r0, r0, r11
 +	add r0, r0, r0, lsr #0x1f
 +	movs r2, r0, asr #0x1
 +	add r4, r4, r2
 +	beq _020E6710
 +	mov r0, r8
 +	mov r1, r11
 +	blx r9
 +	cmp r0, #0x0
 +	addeq sp, sp, #0x430
 +	mvneq r0, #0x0
 +	ldmeqia sp!, {r3-r11,lr}
 +	addeq sp, sp, #0x10
 +	bxeq lr
 +_020E6710:
 +	add r1, sp, #0x400
 +	ldr r0, [sp, #0xc]
 +	add r1, r1, #0x64
 +	add r2, sp, #0x20
 +	bl parse_format__wide
 +	ldrh r1, [sp, #0x26]
 +	mov r11, r0
 +	cmp r1, #0x61
 +	bgt _020E6780
 +	bge _020E6AEC
 +	cmp r1, #0x47
 +	bgt _020E6774
 +	subs r0, r1, #0x41
 +	addpl pc, pc, r0, lsl #0x2
 +	b _020E6768
 +	b _020E6AEC
 +	b _020E6D90
 +	b _020E6D90
 +	b _020E6D90
 +	b _020E6A7C
 +	b _020E6A7C
 +	b _020E6A7C
 +_020E6768:
 +	cmp r1, #0x25
 +	beq _020E6D7C
 +	b _020E6D90
 +_020E6774:
 +	cmp r1, #0x58
 +	beq _020E6940
 +	b _020E6D90
 +_020E6780:
 +	cmp r1, #0x75
 +	bgt _020E67E8
 +	subs r0, r1, #0x64
 +	addpl pc, pc, r0, lsl #0x2
 +	b _020E67DC
 +	b _020E6804
 +	b _020E6A7C
 +	b _020E6A7C
 +	b _020E6A7C
 +	b _020E6D90
 +	b _020E6804
 +	b _020E6D90
 +	b _020E6D90
 +	b _020E6D90
 +	b _020E6D90
 +	b _020E6C98
 +	b _020E6940
 +	b _020E6D90
 +	b _020E6D90
 +	b _020E6D90
 +	b _020E6B5C
 +	b _020E6D90
 +	b _020E6940
 +_020E67DC:
 +	cmp r1, #0x63
 +	beq _020E6D24
 +	b _020E6D90
 +_020E67E8:
 +	cmp r1, #0x78
 +	bgt _020E67F8
 +	beq _020E6940
 +	b _020E6D90
 +_020E67F8:
 +	ldr r0, _020E6F38 ; =0x0000FFFF
 +	cmp r1, r0
 +	b _020E6D90
 +_020E6804:
 +	ldrb r0, [sp, #0x24]
 +	cmp r0, #0x3
 +	bne _020E6824
 +	ldr r1, [sp, #0x464]
 +	add r1, r1, #0x4
 +	str r1, [sp, #0x464]
 +	ldr r10, [r1, #-0x4]
 +	b _020E68BC
 +_020E6824:
 +	cmp r0, #0x4
 +	bne _020E684C
 +	ldr r1, [sp, #0x464]
 +	add r2, r1, #0x8
 +	str r2, [sp, #0x464]
 +	ldr r1, [r2, #-0x8]
 +	str r1, [sp, #0x10]
 +	ldr r1, [r2, #-0x4]
 +	str r1, [sp, #0x14]
 +	b _020E68BC
 +_020E684C:
 +	cmp r0, #0x6
 +	bne _020E6874
 +	ldr r1, [sp, #0x464]
 +	add r2, r1, #0x8
 +	str r2, [sp, #0x464]
 +	ldr r1, [r2, #-0x8]
 +	str r1, [sp, #0x10]
 +	ldr r1, [r2, #-0x4]
 +	str r1, [sp, #0x14]
 +	b _020E68BC
 +_020E6874:
 +	cmp r0, #0x7
 +	bne _020E6890
 +	ldr r1, [sp, #0x464]
 +	add r1, r1, #0x4
 +	str r1, [sp, #0x464]
 +	ldr r10, [r1, #-0x4]
 +	b _020E68BC
 +_020E6890:
 +	cmp r0, #0x8
 +	bne _020E68AC
 +	ldr r1, [sp, #0x464]
 +	add r1, r1, #0x4
 +	str r1, [sp, #0x464]
 +	ldr r10, [r1, #-0x4]
 +	b _020E68BC
 +_020E68AC:
 +	ldr r1, [sp, #0x464]
 +	add r1, r1, #0x4
 +	str r1, [sp, #0x464]
 +	ldr r10, [r1, #-0x4]
 +_020E68BC:
 +	cmp r0, #0x2
 +	moveq r1, r10, lsl #0x10
 +	moveq r10, r1, asr #0x10
 +	cmp r0, #0x4
 +	cmpne r0, #0x6
 +	add r0, sp, #0x20
 +	bne _020E6904
 +	sub r5, sp, #0x4
 +	ldmia r0, {r0-r3}
 +	stmia r5, {r0-r3}
 +	ldr r3, [r5, #0x0]
 +	ldr r0, [sp, #0x10]
 +	ldr r1, [sp, #0x14]
 +	add r2, sp, #0x430
 +	bl longlong2str__wide
 +	movs r6, r0
 +	beq _020E6D90
 +	b _020E6928
 +_020E6904:
 +	sub r5, sp, #0x8
 +	ldmia r0, {r0-r3}
 +	stmia r5, {r0-r3}
 +	add r1, sp, #0x430
 +	mov r0, r10
 +	ldmia r5, {r2-r3}
 +	bl long2str__wide
 +	movs r6, r0
 +	beq _020E6D90
 +_020E6928:
 +	add r0, sp, #0x400
 +	add r0, r0, #0x2e
 +	sub r0, r0, r6
 +	add r0, r0, r0, lsr #0x1f
 +	mov r7, r0, asr #0x1
 +	b _020E6DDC
 +_020E6940:
 +	ldrb r0, [sp, #0x24]
 +	cmp r0, #0x3
 +	bne _020E6960
 +	ldr r1, [sp, #0x464]
 +	add r1, r1, #0x4
 +	str r1, [sp, #0x464]
 +	ldr r10, [r1, #-0x4]
 +	b _020E69F8
 +_020E6960:
 +	cmp r0, #0x4
 +	bne _020E6988
 +	ldr r1, [sp, #0x464]
 +	add r2, r1, #0x8
 +	str r2, [sp, #0x464]
 +	ldr r1, [r2, #-0x8]
 +	str r1, [sp, #0x10]
 +	ldr r1, [r2, #-0x4]
 +	str r1, [sp, #0x14]
 +	b _020E69F8
 +_020E6988:
 +	cmp r0, #0x6
 +	bne _020E69B0
 +	ldr r1, [sp, #0x464]
 +	add r2, r1, #0x8
 +	str r2, [sp, #0x464]
 +	ldr r1, [r2, #-0x8]
 +	str r1, [sp, #0x10]
 +	ldr r1, [r2, #-0x4]
 +	str r1, [sp, #0x14]
 +	b _020E69F8
 +_020E69B0:
 +	cmp r0, #0x7
 +	bne _020E69CC
 +	ldr r1, [sp, #0x464]
 +	add r1, r1, #0x4
 +	str r1, [sp, #0x464]
 +	ldr r10, [r1, #-0x4]
 +	b _020E69F8
 +_020E69CC:
 +	cmp r0, #0x8
 +	bne _020E69E8
 +	ldr r1, [sp, #0x464]
 +	add r1, r1, #0x4
 +	str r1, [sp, #0x464]
 +	ldr r10, [r1, #-0x4]
 +	b _020E69F8
 +_020E69E8:
 +	ldr r1, [sp, #0x464]
 +	add r1, r1, #0x4
 +	str r1, [sp, #0x464]
 +	ldr r10, [r1, #-0x4]
 +_020E69F8:
 +	cmp r0, #0x2
 +	moveq r1, r10, lsl #0x10
 +	moveq r10, r1, lsr #0x10
 +	cmp r0, #0x4
 +	cmpne r0, #0x6
 +	add r0, sp, #0x20
 +	bne _020E6A40
 +	sub r5, sp, #0x4
 +	ldmia r0, {r0-r3}
 +	stmia r5, {r0-r3}
 +	ldr r3, [r5, #0x0]
 +	ldr r0, [sp, #0x10]
 +	ldr r1, [sp, #0x14]
 +	add r2, sp, #0x430
 +	bl longlong2str__wide
 +	movs r6, r0
 +	beq _020E6D90
 +	b _020E6A64
 +_020E6A40:
 +	sub r5, sp, #0x8
 +	ldmia r0, {r0-r3}
 +	stmia r5, {r0-r3}
 +	add r1, sp, #0x430
 +	mov r0, r10
 +	ldmia r5, {r2-r3}
 +	bl long2str__wide
 +	movs r6, r0
 +	beq _020E6D90
 +_020E6A64:
 +	add r0, sp, #0x400
 +	add r0, r0, #0x2e
 +	sub r0, r0, r6
 +	add r0, r0, r0, lsr #0x1f
 +	mov r7, r0, asr #0x1
 +	b _020E6DDC
 +_020E6A7C:
 +	ldrb r0, [sp, #0x24]
 +	cmp r0, #0x9
 +	ldrne r0, [sp, #0x464]
 +	addne r0, r0, #0x8
 +	strne r0, [sp, #0x464]
 +	bne _020E6AA0
 +	ldr r0, [sp, #0x464]
 +	add r0, r0, #0x8
 +	str r0, [sp, #0x464]
 +_020E6AA0:
 +	ldr r7, [r0, #-0x8]
 +	ldr r6, [r0, #-0x4]
 +	add r0, sp, #0x20
 +	sub r5, sp, #0x4
 +	ldmia r0, {r0-r3}
 +	stmia r5, {r0-r3}
 +	ldr r3, [r5, #0x0]
 +	mov r0, r7
 +	mov r1, r6
 +	add r2, sp, #0x430
 +	bl float2str__wide
 +	movs r6, r0
 +	beq _020E6D90
 +	add r0, sp, #0x400
 +	add r0, r0, #0x2e
 +	sub r0, r0, r6
 +	add r0, r0, r0, lsr #0x1f
 +	mov r7, r0, asr #0x1
 +	b _020E6DDC
 +_020E6AEC:
 +	ldrb r0, [sp, #0x24]
 +	cmp r0, #0x9
 +	ldrne r0, [sp, #0x464]
 +	addne r0, r0, #0x8
 +	strne r0, [sp, #0x464]
 +	bne _020E6B10
 +	ldr r0, [sp, #0x464]
 +	add r0, r0, #0x8
 +	str r0, [sp, #0x464]
 +_020E6B10:
 +	ldr r7, [r0, #-0x8]
 +	ldr r6, [r0, #-0x4]
 +	add r0, sp, #0x20
 +	sub r5, sp, #0x4
 +	ldmia r0, {r0-r3}
 +	stmia r5, {r0-r3}
 +	ldr r3, [r5, #0x0]
 +	mov r0, r7
 +	mov r1, r6
 +	add r2, sp, #0x430
 +	bl double2hex__wide
 +	movs r6, r0
 +	beq _020E6D90
 +	add r0, sp, #0x400
 +	add r0, r0, #0x2e
 +	sub r0, r0, r6
 +	add r0, r0, r0, lsr #0x1f
 +	mov r7, r0, asr #0x1
 +	b _020E6DDC
 +_020E6B5C:
 +	ldrb r0, [sp, #0x24]
 +	cmp r0, #0x5
 +	bne _020E6BF8
 +	ldr r0, [sp, #0x464]
 +	add r0, r0, #0x4
 +	str r0, [sp, #0x464]
 +	ldr r6, [r0, #-0x4]
 +	ldrb r0, [sp, #0x23]
 +	cmp r6, #0x0
 +	ldreq r6, _020E6F3C ; =buff_ptr$6E40
 +	cmp r0, #0x0
 +	beq _020E6BB0
 +	ldrh r1, [r6], #0x2
 +	ldrb r0, [sp, #0x22]
 +	and r7, r1, #0xff
 +	cmp r0, #0x0
 +	beq _020E6DDC
 +	ldr r0, [sp, #0x2c]
 +	cmp r7, r0
 +	movgt r7, r0
 +	b _020E6DDC
 +_020E6BB0:
 +	ldrb r0, [sp, #0x22]
 +	cmp r0, #0x0
 +	beq _020E6BE8
 +	ldr r7, [sp, #0x2c]
 +	mov r0, r6
 +	mov r2, r7
 +	mov r1, #0x0
 +	bl wmemchr
 +	cmp r0, #0x0
 +	beq _020E6DDC
 +	sub r0, r0, r6
 +	add r0, r0, r0, lsr #0x1f
 +	mov r7, r0, asr #0x1
 +	b _020E6DDC
 +_020E6BE8:
 +	mov r0, r6
 +	bl wcslen
 +	mov r7, r0
 +	b _020E6DDC
 +_020E6BF8:
 +	ldr r0, [sp, #0x464]
 +	add r0, r0, #0x4
 +	str r0, [sp, #0x464]
 +	ldr r5, [r0, #-0x4]
 +	ldrb r0, [sp, #0x23]
 +	cmp r5, #0x0
 +	ldreq r5, _020E6F40 ; =strptr$6E44
 +	cmp r0, #0x0
 +	beq _020E6C40
 +	ldrh r1, [r6, #0x0]
 +	ldrb r0, [sp, #0x22]
 +	and r6, r1, #0xff
 +	cmp r0, #0x0
 +	beq _020E6C78
 +	ldr r0, [sp, #0x2c]
 +	cmp r6, r0
 +	movgt r6, r0
 +	b _020E6C78
 +_020E6C40:
 +	ldrb r0, [sp, #0x22]
 +	cmp r0, #0x0
 +	beq _020E6C6C
 +	ldr r6, [sp, #0x2c]
 +	mov r0, r5
 +	mov r2, r6
 +	mov r1, #0x0
 +	bl memchr
 +	cmp r0, #0x0
 +	subne r6, r0, r5
 +	b _020E6C78
 +_020E6C6C:
 +	mov r0, r5
 +	bl strlen
 +	mov r6, r0
 +_020E6C78:
 +	add r0, sp, #0x30
 +	mov r1, r5
 +	mov r2, r6
 +	bl mbstowcs
 +	movs r7, r0
 +	bmi _020E6D90
 +	add r6, sp, #0x30
 +	b _020E6DDC
 +_020E6C98:
 +	ldr r1, [sp, #0x464]
 +	ldrb r0, [sp, #0x24]
 +	add r1, r1, #0x4
 +	str r1, [sp, #0x464]
 +	ldr r6, [r1, #-0x4]
 +	cmp r0, #0x8
 +	addls pc, pc, r0, lsl #0x2
 +	b _020E6F18
 +	b _020E6CDC ; case
 +	b _020E6F18 ; case
 +	b _020E6CE4 ; case
 +	b _020E6CEC ; case
 +	b _020E6D14 ; case
 +	b _020E6F18 ; case
 +	b _020E6CF4 ; case
 +	b _020E6D04 ; case
 +	b _020E6D0C ; case
 +_020E6CDC:
 +	str r4, [r6, #0x0]
 +	b _020E6F18
 +_020E6CE4:
 +	strh r4, [r6, #0x0]
 +	b _020E6F18
 +_020E6CEC:
 +	str r4, [r6, #0x0]
 +	b _020E6F18
 +_020E6CF4:
 +	str r4, [r6, #0x0]
 +	mov r0, r4, asr #0x1f
 +	str r0, [r6, #0x4]
 +	b _020E6F18
 +_020E6D04:
 +	str r4, [r6, #0x0]
 +	b _020E6F18
 +_020E6D0C:
 +	str r4, [r6, #0x0]
 +	b _020E6F18
 +_020E6D14:
 +	str r4, [r6, #0x0]
 +	mov r0, r4, asr #0x1f
 +	str r0, [r6, #0x4]
 +	b _020E6F18
 +_020E6D24:
 +	ldrb r0, [sp, #0x24]
 +	add r6, sp, #0x30
 +	cmp r0, #0x5
 +	bne _020E6D50
 +	ldr r0, [sp, #0x464]
 +	mov r7, #0x1
 +	add r0, r0, #0x4
 +	str r0, [sp, #0x464]
 +	ldr r0, [r0, #-0x4]
 +	strh r0, [r6, #0x0]
 +	b _020E6DDC
 +_020E6D50:
 +	ldr r0, [sp, #0x464]
 +	add r1, sp, #0x18
 +	add r0, r0, #0x4
 +	str r0, [sp, #0x464]
 +	ldr r3, [r0, #-0x4]
 +	mov r0, r6
 +	mov r2, #0x1
 +	strb r3, [sp, #0x18]
 +	bl mbtowc
 +	mov r7, r0
 +	b _020E6DDC
 +_020E6D7C:
 +	mov r0, #0x25
 +	strh r0, [sp, #0x30]
 +	add r6, sp, #0x30
 +	mov r7, #0x1
 +	b _020E6DDC
 +_020E6D90:
 +	ldr r0, [sp, #0xc]
 +	bl wcslen
 +	movs r5, r0
 +	beq _020E6DC8
 +	ldr r1, [sp, #0xc]
 +	mov r0, r8
 +	mov r2, r5
 +	blx r9
 +	cmp r0, #0x0
 +	addeq sp, sp, #0x430
 +	mvneq r0, #0x0
 +	ldmeqia sp!, {r3-r11,lr}
 +	addeq sp, sp, #0x10
 +	bxeq lr
 +_020E6DC8:
 +	add sp, sp, #0x430
 +	add r0, r4, r5
 +	ldmia sp!, {r3-r11,lr}
 +	add sp, sp, #0x10
 +	bx lr
 +_020E6DDC:
 +	ldrb r0, [sp, #0x20]
 +	mov r5, r7
 +	cmp r0, #0x0
 +	beq _020E6E8C
 +	cmp r0, #0x2
 +	moveq r1, #0x30
 +	movne r1, #0x20
 +	strh r1, [sp, #0x1c]
 +	ldrh r0, [r6, #0x0]
 +	cmp r0, #0x2b
 +	cmpne r0, #0x2d
 +	cmpne r0, #0x20
 +	bne _020E6E48
 +	cmp r1, #0x30
 +	bne _020E6E48
 +	mov r0, r8
 +	mov r1, r6
 +	mov r2, #0x1
 +	blx r9
 +	cmp r0, #0x0
 +	addeq sp, sp, #0x430
 +	mvneq r0, #0x0
 +	ldmeqia sp!, {r3-r11,lr}
 +	addeq sp, sp, #0x10
 +	bxeq lr
 +	add r6, r6, #0x2
 +	sub r7, r7, #0x1
 +_020E6E48:
 +	ldr r0, [sp, #0x28]
 +	cmp r5, r0
 +	bge _020E6E8C
 +_020E6E54:
 +	mov r0, r8
 +	add r1, sp, #0x1c
 +	mov r2, #0x1
 +	blx r9
 +	cmp r0, #0x0
 +	addeq sp, sp, #0x430
 +	mvneq r0, #0x0
 +	ldmeqia sp!, {r3-r11,lr}
 +	addeq sp, sp, #0x10
 +	bxeq lr
 +	ldr r0, [sp, #0x28]
 +	add r5, r5, #0x1
 +	cmp r5, r0
 +	blt _020E6E54
 +_020E6E8C:
 +	cmp r7, #0x0
 +	beq _020E6EBC
 +	mov r0, r8
 +	mov r1, r6
 +	mov r2, r7
 +	blx r9
 +	cmp r0, #0x0
 +	addeq sp, sp, #0x430
 +	mvneq r0, #0x0
 +	ldmeqia sp!, {r3-r11,lr}
 +	addeq sp, sp, #0x10
 +	bxeq lr
 +_020E6EBC:
 +	ldrb r0, [sp, #0x20]
 +	cmp r0, #0x0
 +	bne _020E6F14
 +	ldr r0, [sp, #0x28]
 +	cmp r5, r0
 +	bge _020E6F14
 +	mov r7, #0x20
 +_020E6ED8:
 +	mov r0, r8
 +	add r1, sp, #0x1a
 +	mov r2, #0x1
 +	strh r7, [sp, #0x1a]
 +	blx r9
 +	cmp r0, #0x0
 +	addeq sp, sp, #0x430
 +	mvneq r0, #0x0
 +	ldmeqia sp!, {r3-r11,lr}
 +	addeq sp, sp, #0x10
 +	bxeq lr
 +	ldr r0, [sp, #0x28]
 +	add r5, r5, #0x1
 +	cmp r5, r0
 +	blt _020E6ED8
 +_020E6F14:
 +	add r4, r4, r5
 +_020E6F18:
 +	ldrh r0, [r11, #0x0]
 +	cmp r0, #0x0
 +	bne _020E6684
 +_020E6F24:
 +	mov r0, r4
 +	add sp, sp, #0x430
 +	ldmia sp!, {r3-r11,lr}
 +	add sp, sp, #0x10
 +	bx lr
 +	.balign 4
 +_020E6F38: .word 0x0000FFFF
 +_020E6F3C: .word buff_ptr$6E40
 +_020E6F40: .word strptr$6E44
 +    arm_func_end __wpformatter
 +
 +	arm_func_start __wStringWrite
 +__wStringWrite: ; 0x020E6F44
 +	stmdb sp!, {r3-r5,lr}
 +	mov r4, r0
 +	ldr r3, [r4, #0x8]
 +	mov r5, r2
 +	ldr r2, [r4, #0x4]
 +	add r0, r3, r5
 +	cmp r0, r2
 +	ldr r0, [r4, #0x0]
 +	subhi r5, r2, r3
 +	mov r2, r5
 +	add r0, r0, r3, lsl #0x1
 +	bl wmemcpy
 +	ldr r1, [r4, #0x8]
 +	add r1, r1, r5
 +	str r1, [r4, #0x8]
 +	ldmia sp!, {r3-r5,pc}
 +    arm_func_end __wStringWrite
 +
 +	arm_func_start swprintf
 +swprintf: ; 0x020E6F84
 +	stmdb sp!, {r0-r3}
 +	stmdb sp!, {r3,lr}
 +	add r3, sp, #0x10
 +	bic r3, r3, #0x3
 +	ldr r2, [sp, #0x10]
 +	add r3, r3, #0x4
 +	bl vswprintf
 +	ldmia sp!, {r3,lr}
 +	add sp, sp, #0x10
 +	bx lr
 +    arm_func_end swprintf
 +
 +	arm_func_start vswprintf
 +vswprintf: ; 0x020E6FAC
 +	stmdb sp!, {r4-r5,lr}
 +	sub sp, sp, #0xc
 +	mov r5, r0
 +	mov r4, r1
 +	mov r12, #0x0
 +	ldr r0, _020E7018 ; =__wStringWrite
 +	add r1, sp, #0x0
 +	str r5, [sp, #0x0]
 +	str r4, [sp, #0x4]
 +	str r12, [sp, #0x8]
 +	bl __wpformatter
 +	cmp r0, #0x0
 +	addlt sp, sp, #0xc
 +	ldmltia sp!, {r4-r5,pc}
 +	cmp r0, r4
 +	bhs _020E7000
 +	mov r1, r0, lsl #0x1
 +	mov r2, #0x0
 +	add sp, sp, #0xc
 +	strh r2, [r5, r1]
 +	ldmia sp!, {r4-r5,pc}
 +_020E7000:
 +	mov r1, #0x0
 +	add r0, r5, r4, lsl #0x1
 +	strh r1, [r0, #-0x2]
 +	sub r0, r1, #0x1
 +	add sp, sp, #0xc
 +	ldmia sp!, {r4-r5,pc}
 +	.balign 4
 +_020E7018: .word __wStringWrite
 +    arm_func_end vswprintf
 +
 +    .section .exceptix,4
 +
 +	.word long2str__wide
 +	.short 593
 +	.word 0x0090FF20
 +	.word longlong2str__wide
 +	.short 741
 +	.word 0x00A0FF20
 +	.word double2hex__wide
 +	.short 921
 +	.word 0x00F07F20
 +	.word float2str__wide
 +	.short 1612
 +	.word UNK_020EC728
 +	.word __wpformatter
 +	.short 2288
 +	.word UNK_020EC730
 +	.word __wStringWrite
 +	.short 65
 +	.word 0x00200300
 +	.word swprintf
 +	.short 41
 +	.word 0x00300020
 +	.word vswprintf
 +	.short 113
 +	.word 0x00300300
 +
 +    .section .exception,8
 +
 +UNK_020EC728: ; 0x020EC728
 +	.byte 0x20, 0xFF, 0x09, 0x60
 +	.balign 8
 +
 +    .section .exception,8
 +
 +UNK_020EC730: ; 0x020EC730
 +	.byte 0x20, 0xFF, 0x11, 0x68
 +	.balign 8
 diff --git a/arm9/asm/libc.s b/arm9/asm/libc.s index 78769683..fee47ddf 100644 --- a/arm9/asm/libc.s +++ b/arm9/asm/libc.s @@ -17,59 +17,6 @@  	.section .rodata -UNK_021044A4: ; 0x021044A4 -	.short 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007 -	.short 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F -	.short 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017 -	.short 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F -	.short 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027 -	.short 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F -	.short 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037 -	.short 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F -	.short 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067 -	.short 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F -	.short 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077 -	.short 0x0078, 0x0079, 0x007A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F -	.short 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067 -	.short 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F -	.short 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077 -	.short 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F - -	.global UNK_02104544 -UNK_02104544: ; 0x02104544 -	.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 -	.short 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007 -	.short 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F -	.short 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017 -	.short 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F -	.short 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027 -	.short 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F -	.short 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037 -	.short 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F -	.short 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047 -	.short 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F -	.short 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057 -	.short 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F -	.short 0x0060, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047 -	.short 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F -	.short 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057 -	.short 0x0058, 0x0059, 0x005A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F -  	.global UNK_02104744  UNK_02104744: ; 0x02104744  	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x03, 0xB8, 0xE2, 0x3F @@ -86,50 +33,6 @@ UNK_02104764: ; 0x02104764  	.balign 4, 0 -	.global UNK_02106DE4 -UNK_02106DE4: ; 0x02106DE4 -	.byte 0x30, 0x00, 0x78, 0x00, 0x30, 0x00, 0x70, 0x00, 0x30, 0x00, 0x00, 0x00 - -	.global UNK_02106DF0 -UNK_02106DF0: ; 0x02106DF0 -	.byte 0x2D, 0x00, 0x49, 0x00, 0x4E, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00 - -	.global UNK_02106DFC -UNK_02106DFC: ; 0x02106DFC -	.byte 0x2D, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00 - -	.global UNK_02106E08 -UNK_02106E08: ; 0x02106E08 -	.byte 0x49, 0x00, 0x4E, 0x00, 0x46, 0x00, 0x00, 0x00 - -	.global UNK_02106E10 -UNK_02106E10: ; 0x02106E10 -	.byte 0x69, 0x00, 0x6E, 0x00, 0x66, 0x00, 0x00, 0x00 - -	.global UNK_02106E18 -UNK_02106E18: ; 0x02106E18 -	.byte 0x2D, 0x00, 0x4E, 0x00, 0x41, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00 - -	.global UNK_02106E24 -UNK_02106E24: ; 0x02106E24 -	.byte 0x2D, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00 - -	.global UNK_02106E30 -UNK_02106E30: ; 0x02106E30 -	.byte 0x4E, 0x00, 0x41, 0x00, 0x4E, 0x00, 0x00, 0x00 - -	.global UNK_02106E38 -UNK_02106E38: ; 0x02106E38 -	.byte 0x6E, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x00, 0x00 - -	.global UNK_02106E40 -UNK_02106E40: ; 0x02106E40 -	.byte 0x00, 0x00, 0x00, 0x00 - -	.global UNK_02106E44 -UNK_02106E44: ; 0x02106E44 -	.byte 0x00, 0x00, 0x00, 0x00 -  	.global UNK_02106E48  UNK_02106E48: ; 0x02106E48  	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40 @@ -249,2276 +152,6 @@ UNK_02106F5C: ; 0x02106F5C  	.section .text  	.balign 4, 0 -	arm_func_start parse_format_wprintf -parse_format_wprintf: ; 0x020E50A0 -	stmdb sp!, {r4-r8,lr} -	sub sp, sp, #0x10 -	ldrh r3, [r0, #0x2] -	mov r4, #0x0 -	mov r5, #0x1 -	mov lr, r2 -	strb r5, [sp, #0x0] -	strb r4, [sp, #0x1] -	strb r4, [sp, #0x2] -	strb r4, [sp, #0x3] -	strb r4, [sp, #0x4] -	str r4, [sp, #0x8] -	str r4, [sp, #0xc] -	cmp r3, #0x25 -	add r12, r0, #0x2 -	bne _020E50FC -	add r0, sp, #0x0 -	strh r3, [sp, #0x6] -	ldmia r0, {r0-r3} -	stmia lr, {r0-r3} -	add sp, sp, #0x10 -	add r0, r12, #0x2 -	ldmia sp!, {r4-r8,pc} -_020E50FC: -	mov r2, #0x2 -	mov r0, r4 -	mov r5, r2 -	mov r6, r4 -	mov r7, #0x1 -_020E5110: -	mov r8, r7 -	cmp r3, #0x2b -	bgt _020E5140 -	bge _020E5168 -	cmp r3, #0x23 -	bgt _020E5198 -	cmp r3, #0x20 -	blt _020E5198 -	beq _020E5170 -	cmp r3, #0x23 -	beq _020E5180 -	b _020E5198 -_020E5140: -	cmp r3, #0x30 -	bgt _020E5198 -	cmp r3, #0x2d -	blt _020E5198 -	beq _020E5160 -	cmp r3, #0x30 -	beq _020E5188 -	b _020E5198 -_020E5160: -	strb r6, [sp, #0x0] -	b _020E519C -_020E5168: -	strb r7, [sp, #0x1] -	b _020E519C -_020E5170: -	ldrb r4, [sp, #0x1] -	cmp r4, #0x1 -	strneb r5, [sp, #0x1] -	b _020E519C -_020E5180: -	strb r7, [sp, #0x3] -	b _020E519C -_020E5188: -	ldrb r4, [sp, #0x0] -	cmp r4, #0x0 -	strneb r2, [sp, #0x0] -	b _020E519C -_020E5198: -	mov r8, r0 -_020E519C: -	cmp r8, #0x0 -	ldrneh r3, [r12, #0x2]! -	bne _020E5110 -	cmp r3, #0x2a -	bne _020E51E4 -	ldr r0, [r1, #0x0] -	add r0, r0, #0x4 -	str r0, [r1, #0x0] -	ldr r0, [r0, #-0x4] -	str r0, [sp, #0x8] -	cmp r0, #0x0 -	bge _020E51DC -	rsb r0, r0, #0x0 -	mov r2, #0x0 -	strb r2, [sp, #0x0] -	str r0, [sp, #0x8] -_020E51DC: -	ldrh r3, [r12, #0x2]! -	b _020E5228 -_020E51E4: -	mov r2, #0x0 -	ldr r5, _020E560C ; =UNK_02104544 -	mov r0, #0xa -	b _020E5208 -_020E51F4: -	ldr r4, [sp, #0x8] -	sub r3, r3, #0x30 -	mla r6, r4, r0, r3 -	ldrh r3, [r12, #0x2]! -	str r6, [sp, #0x8] -_020E5208: -	cmp r3, #0x80 -	movcs r4, r2 -	bhs _020E5220 -	mov r4, r3, lsl #0x1 -	ldrh r4, [r5, r4] -	and r4, r4, #0x8 -_020E5220: -	cmp r4, #0x0 -	bne _020E51F4 -_020E5228: -	ldr r2, [sp, #0x8] -	ldr r0, _020E5610 ; =0x000001FD -	cmp r2, r0 -	ble _020E5258 -	ldr r1, _020E5614 ; =0x0000FFFF -	add r0, sp, #0x0 -	strh r1, [sp, #0x6] -	ldmia r0, {r0-r3} -	stmia lr, {r0-r3} -	add sp, sp, #0x10 -	add r0, r12, #0x2 -	ldmia sp!, {r4-r8,pc} -_020E5258: -	cmp r3, #0x2e -	bne _020E52E0 -	ldrh r3, [r12, #0x2]! -	mov r0, #0x1 -	strb r0, [sp, #0x2] -	cmp r3, #0x2a -	bne _020E529C -	ldr r0, [r1, #0x0] -	add r0, r0, #0x4 -	str r0, [r1, #0x0] -	ldr r0, [r0, #-0x4] -	ldrh r3, [r12, #0x2]! -	str r0, [sp, #0xc] -	cmp r0, #0x0 -	movlt r0, #0x0 -	strltb r0, [sp, #0x2] -	b _020E52E0 -_020E529C: -	mov r1, #0x0 -	ldr r4, _020E560C ; =UNK_02104544 -	mov r0, #0xa -	b _020E52C0 -_020E52AC: -	ldr r2, [sp, #0xc] -	sub r3, r3, #0x30 -	mla r5, r2, r0, r3 -	ldrh r3, [r12, #0x2]! -	str r5, [sp, #0xc] -_020E52C0: -	cmp r3, #0x80 -	movcs r2, r1 -	bhs _020E52D8 -	mov r2, r3, lsl #0x1 -	ldrh r2, [r4, r2] -	and r2, r2, #0x8 -_020E52D8: -	cmp r2, #0x0 -	bne _020E52AC -_020E52E0: -	cmp r3, #0x6c -	mov r0, #0x1 -	bgt _020E5318 -	cmp r3, #0x68 -	blt _020E530C -	beq _020E5334 -	cmp r3, #0x6a -	beq _020E5380 -	cmp r3, #0x6c -	beq _020E5350 -	b _020E53A4 -_020E530C: -	cmp r3, #0x4c -	beq _020E5374 -	b _020E53A4 -_020E5318: -	cmp r3, #0x74 -	bgt _020E5328 -	beq _020E538C -	b _020E53A4 -_020E5328: -	cmp r3, #0x7a -	beq _020E5398 -	b _020E53A4 -_020E5334: -	ldrh r1, [r12, #0x2] -	mov r2, #0x2 -	strb r2, [sp, #0x4] -	cmp r1, #0x68 -	streqb r0, [sp, #0x4] -	ldreqh r3, [r12, #0x2]! -	b _020E53A8 -_020E5350: -	ldrh r1, [r12, #0x2] -	mov r2, #0x3 -	strb r2, [sp, #0x4] -	cmp r1, #0x6c -	bne _020E53A8 -	mov r1, #0x4 -	strb r1, [sp, #0x4] -	ldrh r3, [r12, #0x2]! -	b _020E53A8 -_020E5374: -	mov r1, #0x9 -	strb r1, [sp, #0x4] -	b _020E53A8 -_020E5380: -	mov r1, #0x6 -	strb r1, [sp, #0x4] -	b _020E53A8 -_020E538C: -	mov r1, #0x8 -	strb r1, [sp, #0x4] -	b _020E53A8 -_020E5398: -	mov r1, #0x7 -	strb r1, [sp, #0x4] -	b _020E53A8 -_020E53A4: -	mov r0, #0x0 -_020E53A8: -	cmp r0, #0x0 -	ldrneh r3, [r12, #0x2]! -	strh r3, [sp, #0x6] -	cmp r3, #0x61 -	bgt _020E53FC -	bge _020E54E0 -	cmp r3, #0x47 -	bgt _020E53F0 -	subs r0, r3, #0x41 -	addpl pc, pc, r0, lsl #0x2 -	b _020E55EC -	b _020E54E0 -	b _020E55EC -	b _020E55EC -	b _020E55EC -	b _020E5528 -	b _020E54A8 -	b _020E5518 -_020E53F0: -	cmp r3, #0x58 -	beq _020E5470 -	b _020E55EC -_020E53FC: -	cmp r3, #0x63 -	bgt _020E540C -	beq _020E5588 -	b _020E55EC -_020E540C: -	sub r0, r3, #0x64 -	cmp r0, #0x14 -	addls pc, pc, r0, lsl #0x2 -	b _020E55EC -	b _020E5470 ; case -	b _020E5528 ; case -	b _020E54A8 ; case -	b _020E5518 ; case -	b _020E55EC ; case -	b _020E5470 ; case -	b _020E55EC ; case -	b _020E55EC ; case -	b _020E55EC ; case -	b _020E55EC ; case -	b _020E55D8 ; case -	b _020E5470 ; case -	b _020E5564 ; case -	b _020E55EC ; case -	b _020E55EC ; case -	b _020E55B4 ; case -	b _020E55EC ; case -	b _020E5470 ; case -	b _020E55EC ; case -	b _020E55EC ; case -	b _020E5470 ; case -_020E5470: -	ldrb r0, [sp, #0x4] -	cmp r0, #0x9 -	moveq r0, #0x4 -	streqb r0, [sp, #0x4] -	ldrb r0, [sp, #0x2] -	cmp r0, #0x0 -	moveq r0, #0x1 -	streq r0, [sp, #0xc] -	beq _020E55F4 -	ldrb r0, [sp, #0x0] -	cmp r0, #0x2 -	moveq r0, #0x1 -	streqb r0, [sp, #0x0] -	b _020E55F4 -_020E54A8: -	ldrb r0, [sp, #0x4] -	cmp r0, #0x2 -	cmpne r0, #0x6 -	cmpne r0, #0x7 -	cmpne r0, #0x8 -	cmpne r0, #0x4 -	ldreq r0, _020E5614 ; =0x0000FFFF -	streqh r0, [sp, #0x6] -	beq _020E55F4 -	ldrb r0, [sp, #0x2] -	cmp r0, #0x0 -	moveq r0, #0x6 -	streq r0, [sp, #0xc] -	b _020E55F4 -_020E54E0: -	ldrb r0, [sp, #0x2] -	cmp r0, #0x0 -	moveq r0, #0xd -	streq r0, [sp, #0xc] -	ldrb r0, [sp, #0x4] -	cmp r0, #0x2 -	cmpne r0, #0x6 -	cmpne r0, #0x7 -	cmpne r0, #0x8 -	cmpne r0, #0x4 -	cmpne r0, #0x1 -	ldreq r0, _020E5614 ; =0x0000FFFF -	streqh r0, [sp, #0x6] -	b _020E55F4 -_020E5518: -	ldr r0, [sp, #0xc] -	cmp r0, #0x0 -	moveq r0, #0x1 -	streq r0, [sp, #0xc] -_020E5528: -	ldrb r0, [sp, #0x4] -	cmp r0, #0x2 -	cmpne r0, #0x6 -	cmpne r0, #0x7 -	cmpne r0, #0x8 -	cmpne r0, #0x4 -	cmpne r0, #0x1 -	ldreq r0, _020E5614 ; =0x0000FFFF -	streqh r0, [sp, #0x6] -	beq _020E55F4 -	ldrb r0, [sp, #0x2] -	cmp r0, #0x0 -	moveq r0, #0x6 -	streq r0, [sp, #0xc] -	b _020E55F4 -_020E5564: -	mov r3, #0x3 -	mov r2, #0x1 -	mov r1, #0x78 -	mov r0, #0x8 -	strb r3, [sp, #0x4] -	strb r2, [sp, #0x3] -	strh r1, [sp, #0x6] -	str r0, [sp, #0xc] -	b _020E55F4 -_020E5588: -	ldrb r1, [sp, #0x4] -	cmp r1, #0x3 -	moveq r0, #0x5 -	streqb r0, [sp, #0x4] -	beq _020E55F4 -	ldrb r0, [sp, #0x2] -	cmp r0, #0x0 -	cmpeq r1, #0x0 -	ldrne r0, _020E5614 ; =0x0000FFFF -	strneh r0, [sp, #0x6] -	b _020E55F4 -_020E55B4: -	ldrb r0, [sp, #0x4] -	cmp r0, #0x3 -	moveq r0, #0x5 -	streqb r0, [sp, #0x4] -	beq _020E55F4 -	cmp r0, #0x0 -	ldrne r0, _020E5614 ; =0x0000FFFF -	strneh r0, [sp, #0x6] -	b _020E55F4 -_020E55D8: -	ldrb r0, [sp, #0x4] -	cmp r0, #0x9 -	moveq r0, #0x4 -	streqb r0, [sp, #0x4] -	b _020E55F4 -_020E55EC: -	ldr r0, _020E5614 ; =0x0000FFFF -	strh r0, [sp, #0x6] -_020E55F4: -	add r0, sp, #0x0 -	ldmia r0, {r0-r3} -	stmia lr, {r0-r3} -	add r0, r12, #0x2 -	add sp, sp, #0x10 -	ldmia sp!, {r4-r8,pc} -	.balign 4 -_020E560C: .word UNK_02104544 -_020E5610: .word 0x000001FD -_020E5614: .word 0x0000FFFF - -	arm_func_start long2str_wide -long2str_wide: ; 0x020E5618 -	stmdb sp!, {r0-r3} -	stmdb sp!, {r3-r11,lr} -	sub sp, sp, #0x10 -	movs r10, r0 -	mov r0, #0x0 -	mov r5, r1 -	str r0, [sp, #0xc] -	ldr r7, [sp, #0x4c] -	mov r6, r0 -	strh r0, [r5, #-0x2]! -	ldrb r0, [sp, #0x43] -	str r1, [sp, #0x0] -	ldrh r8, [sp, #0x46] -	str r0, [sp, #0x4] -	ldr r0, [sp, #0x48] -	ldrb r11, [sp, #0x41] -	str r0, [sp, #0x8] -	cmpeq r7, #0x0 -	bne _020E568C -	ldr r0, [sp, #0x4] -	cmp r0, #0x0 -	beq _020E5678 -	cmp r8, #0x6f -	beq _020E568C -_020E5678: -	add sp, sp, #0x10 -	mov r0, r5 -	ldmia sp!, {r3-r11,lr} -	add sp, sp, #0x10 -	bx lr -_020E568C: -	cmp r8, #0x69 -	bgt _020E56B4 -	bge _020E56E8 -	cmp r8, #0x58 -	bgt _020E56A8 -	beq _020E5714 -	b _020E571C -_020E56A8: -	cmp r8, #0x64 -	beq _020E56E8 -	b _020E571C -_020E56B4: -	cmp r8, #0x6f -	bgt _020E56C8 -	moveq r4, #0x8 -	moveq r11, #0x0 -	b _020E571C -_020E56C8: -	cmp r8, #0x78 -	bgt _020E571C -	cmp r8, #0x75 -	blt _020E571C -	beq _020E5708 -	cmp r8, #0x78 -	beq _020E5714 -	b _020E571C -_020E56E8: -	cmp r10, #0x0 -	mov r4, #0xa -	bge _020E571C -	mov r0, #0x1 -	cmp r10, #0x80000000 -	rsbne r10, r10, #0x0 -	str r0, [sp, #0xc] -	b _020E571C -_020E5708: -	mov r4, #0xa -	mov r11, #0x0 -	b _020E571C -_020E5714: -	mov r4, #0x10 -	mov r11, #0x0 -_020E571C: -	mov r0, r10 -	mov r1, r4 -	bl _u32_div_f -	mov r9, r1 -	mov r0, r10 -	mov r1, r4 -	bl _u32_div_f -	cmp r9, #0xa -	mov r10, r0 -	addlt r9, r9, #0x30 -	blt _020E5754 -	cmp r8, #0x78 -	addeq r9, r9, #0x57 -	addne r9, r9, #0x37 -_020E5754: -	cmp r10, #0x0 -	strh r9, [r5, #-0x2]! -	add r6, r6, #0x1 -	bne _020E571C -	cmp r4, #0x8 -	bne _020E5788 -	ldr r0, [sp, #0x4] -	cmp r0, #0x0 -	ldrneh r0, [r5, #0x0] -	cmpne r0, #0x30 -	movne r0, #0x30 -	strneh r0, [r5, #-0x2]! -	addne r6, r6, #0x1 -_020E5788: -	ldrb r0, [sp, #0x40] -	cmp r0, #0x2 -	bne _020E57BC -	ldr r0, [sp, #0xc] -	ldr r7, [sp, #0x8] -	cmp r0, #0x0 -	cmpeq r11, #0x0 -	subne r7, r7, #0x1 -	cmp r4, #0x10 -	bne _020E57BC -	ldr r0, [sp, #0x4] -	cmp r0, #0x0 -	subne r7, r7, #0x2 -_020E57BC: -	ldr r0, [sp, #0x0] -	ldr r1, _020E5864 ; =0x000001FD -	sub r0, r0, r5 -	add r0, r0, r0, lsr #0x1f -	add r0, r7, r0, asr #0x1 -	cmp r0, r1 -	addgt sp, sp, #0x10 -	movgt r0, #0x0 -	ldmgtia sp!, {r3-r11,lr} -	addgt sp, sp, #0x10 -	bxgt lr -	cmp r6, r7 -	bge _020E5804 -	mov r0, #0x30 -_020E57F4: -	add r6, r6, #0x1 -	cmp r6, r7 -	strh r0, [r5, #-0x2]! -	blt _020E57F4 -_020E5804: -	cmp r4, #0x10 -	bne _020E5820 -	ldr r0, [sp, #0x4] -	cmp r0, #0x0 -	movne r0, #0x30 -	strneh r8, [r5, #-0x2] -	strneh r0, [r5, #-0x4]! -_020E5820: -	ldr r0, [sp, #0xc] -	cmp r0, #0x0 -	movne r0, #0x2d -	strneh r0, [r5, #-0x2]! -	bne _020E5850 -	cmp r11, #0x1 -	moveq r0, #0x2b -	streqh r0, [r5, #-0x2]! -	beq _020E5850 -	cmp r11, #0x2 -	moveq r0, #0x20 -	streqh r0, [r5, #-0x2]! -_020E5850: -	mov r0, r5 -	add sp, sp, #0x10 -	ldmia sp!, {r3-r11,lr} -	add sp, sp, #0x10 -	bx lr -	.balign 4 -_020E5864: .word 0x000001FD - -	arm_func_start longlong2str_wide -longlong2str_wide: ; 0x020E5868 -	stmdb sp!, {r0-r3} -	stmdb sp!, {r3-r11,lr} -	sub sp, sp, #0x18 -	mov r9, r1 -	mov r1, #0x0 -	mov r10, r0 -	mov r6, r2 -	mov r0, r1 -	strh r0, [r6, #-0x2]! -	ldr r0, [sp, #0x58] -	cmp r9, #0x0 -	str r0, [sp, #0x10] -	ldrb r0, [sp, #0x4f] -	cmpeq r10, #0x0 -	str r2, [sp, #0x0] -	str r0, [sp, #0x4] -	ldr r0, [sp, #0x54] -	str r1, [sp, #0x14] -	str r0, [sp, #0x8] -	ldrb r0, [sp, #0x4d] -	mov r7, r1 -	ldrh r8, [sp, #0x52] -	str r0, [sp, #0xc] -	ldreq r0, [sp, #0x10] -	cmpeq r0, #0x0 -	bne _020E58F8 -	ldr r0, [sp, #0x4] -	cmp r0, #0x0 -	beq _020E58E4 -	cmp r8, #0x6f -	beq _020E58F8 -_020E58E4: -	add sp, sp, #0x18 -	mov r0, r6 -	ldmia sp!, {r3-r11,lr} -	add sp, sp, #0x10 -	bx lr -_020E58F8: -	cmp r8, #0x69 -	bgt _020E5920 -	bge _020E5950 -	cmp r8, #0x58 -	bgt _020E5914 -	beq _020E59A4 -	b _020E59B0 -_020E5914: -	cmp r8, #0x64 -	beq _020E5950 -	b _020E59B0 -_020E5920: -	cmp r8, #0x6f -	bgt _020E5930 -	beq _020E5984 -	b _020E59B0 -_020E5930: -	cmp r8, #0x78 -	bgt _020E59B0 -	cmp r8, #0x75 -	blt _020E59B0 -	beq _020E5994 -	cmp r8, #0x78 -	beq _020E59A4 -	b _020E59B0 -_020E5950: -	subs r0, r10, #0x0 -	sbcs r0, r9, #0x0 -	mov r11, #0xa -	mov r5, #0x0 -	bge _020E59B0 -	cmp r9, #0x80000000 -	cmpeq r10, r5 -	beq _020E5978 -	rsbs r10, r10, #0x0 -	rsc r9, r9, #0x0 -_020E5978: -	mov r0, #0x1 -	str r0, [sp, #0x14] -	b _020E59B0 -_020E5984: -	mov r5, #0x0 -	str r5, [sp, #0xc] -	mov r11, #0x8 -	b _020E59B0 -_020E5994: -	mov r5, #0x0 -	str r5, [sp, #0xc] -	mov r11, #0xa -	b _020E59B0 -_020E59A4: -	mov r5, #0x0 -	str r5, [sp, #0xc] -	mov r11, #0x10 -_020E59B0: -	mov r0, r10 -	mov r1, r9 -	mov r2, r11 -	mov r3, r5 -	bl _ull_mod -	mov r4, r0 -	mov r0, r10 -	mov r1, r9 -	mov r2, r11 -	mov r3, r5 -	bl _ll_udiv -	mov r10, r0 -	cmp r4, #0xa -	mov r9, r1 -	addlt r0, r4, #0x30 -	blt _020E59FC -	cmp r8, #0x78 -	addeq r0, r4, #0x57 -	addne r0, r4, #0x37 -_020E59FC: -	strh r0, [r6, #-0x2]! -	mov r0, #0x0 -	cmp r9, r0 -	cmpeq r10, r0 -	add r7, r7, #0x1 -	bne _020E59B0 -	cmp r5, #0x0 -	cmpeq r11, #0x8 -	bne _020E5A3C -	ldr r0, [sp, #0x4] -	cmp r0, #0x0 -	ldrneh r0, [r6, #0x0] -	cmpne r0, #0x30 -	movne r0, #0x30 -	strneh r0, [r6, #-0x2]! -	addne r7, r7, #0x1 -_020E5A3C: -	ldrb r0, [sp, #0x4c] -	cmp r0, #0x2 -	bne _020E5A8C -	ldr r0, [sp, #0x8] -	str r0, [sp, #0x10] -	ldr r0, [sp, #0x14] -	cmp r0, #0x0 -	ldreq r0, [sp, #0xc] -	cmpeq r0, #0x0 -	ldrne r0, [sp, #0x10] -	subne r0, r0, #0x1 -	strne r0, [sp, #0x10] -	cmp r5, #0x0 -	cmpeq r11, #0x10 -	bne _020E5A8C -	ldr r0, [sp, #0x4] -	cmp r0, #0x0 -	ldrne r0, [sp, #0x10] -	subne r0, r0, #0x2 -	strne r0, [sp, #0x10] -_020E5A8C: -	ldr r0, [sp, #0x0] -	ldr r2, _020E5B48 ; =0x000001FD -	sub r0, r0, r6 -	add r1, r0, r0, lsr #0x1f -	ldr r0, [sp, #0x10] -	add r0, r0, r1, asr #0x1 -	cmp r0, r2 -	addgt sp, sp, #0x18 -	movgt r0, #0x0 -	ldmgtia sp!, {r3-r11,lr} -	addgt sp, sp, #0x10 -	bxgt lr -	ldr r0, [sp, #0x10] -	cmp r7, r0 -	bge _020E5AE0 -	mov r1, #0x30 -_020E5ACC: -	ldr r0, [sp, #0x10] -	add r7, r7, #0x1 -	cmp r7, r0 -	strh r1, [r6, #-0x2]! -	blt _020E5ACC -_020E5AE0: -	cmp r5, #0x0 -	cmpeq r11, #0x10 -	bne _020E5B00 -	ldr r0, [sp, #0x4] -	cmp r0, #0x0 -	movne r0, #0x30 -	strneh r8, [r6, #-0x2] -	strneh r0, [r6, #-0x4]! -_020E5B00: -	ldr r0, [sp, #0x14] -	cmp r0, #0x0 -	movne r0, #0x2d -	strneh r0, [r6, #-0x2]! -	bne _020E5B34 -	ldr r0, [sp, #0xc] -	cmp r0, #0x1 -	moveq r0, #0x2b -	streqh r0, [r6, #-0x2]! -	beq _020E5B34 -	cmp r0, #0x2 -	moveq r0, #0x20 -	streqh r0, [r6, #-0x2]! -_020E5B34: -	mov r0, r6 -	add sp, sp, #0x18 -	ldmia sp!, {r3-r11,lr} -	add sp, sp, #0x10 -	bx lr -	.balign 4 -_020E5B48: .word 0x000001FD - -	arm_func_start double2hex_wide -double2hex_wide: ; 0x020E5B4C -	stmdb sp!, {r0-r3} -	stmdb sp!, {r3-r10,lr} -	sub sp, sp, #0x44 -	ldr r7, [sp, #0x80] -	ldr r0, _020E5EB8 ; =0x000001FD -	mov r8, r2 -	cmp r7, r0 -	ldrh r6, [sp, #0x7a] -	ldrb r5, [sp, #0x77] -	ldrb r4, [sp, #0x75] -	ldr r1, [sp, #0x68] -	ldr r2, [sp, #0x6c] -	addgt sp, sp, #0x44 -	movgt r0, #0x0 -	ldmgtia sp!, {r3-r10,lr} -	addgt sp, sp, #0x10 -	bxgt lr -	mov r10, #0x0 -	mov r9, #0x20 -	add r0, sp, #0x8 -	add r3, sp, #0xc -	strb r10, [sp, #0x8] -	strh r9, [sp, #0xa] -	bl __num2dec_internal2 -	ldr r0, [sp, #0x68] -	ldr r1, [sp, #0x6c] -	bl fabs -	mov r2, r0 -	mov r0, r10 -	mov r3, r1 -	mov r1, r0 -	bl _deq -	bne _020E5BF4 -	sub r4, r8, #0xc -	ldr r1, _020E5EBC ; =UNK_02106DE4 -	mov r0, r4 -	bl wcscpy -	add sp, sp, #0x44 -	mov r0, r4 -	ldmia sp!, {r3-r10,lr} -	add sp, sp, #0x10 -	bx lr -_020E5BF4: -	ldrb r0, [sp, #0x11] -	cmp r0, #0x49 -	bne _020E5C74 -	ldrsb r0, [sp, #0xc] -	cmp r0, #0x0 -	beq _020E5C38 -	cmp r6, #0x41 -	sub r4, r8, #0xa -	bne _020E5C28 -	ldr r1, _020E5EC0 ; =UNK_02106DF0 -	mov r0, r4 -	bl wcscpy -	b _020E5C60 -_020E5C28: -	ldr r1, _020E5EC4 ; =UNK_02106DFC -	mov r0, r4 -	bl wcscpy -	b _020E5C60 -_020E5C38: -	cmp r6, #0x41 -	sub r4, r8, #0x8 -	bne _020E5C54 -	ldr r1, _020E5EC8 ; =UNK_02106E08 -	mov r0, r4 -	bl wcscpy -	b _020E5C60 -_020E5C54: -	ldr r1, _020E5ECC ; =UNK_02106E10 -	mov r0, r4 -	bl wcscpy -_020E5C60: -	add sp, sp, #0x44 -	mov r0, r4 -	ldmia sp!, {r3-r10,lr} -	add sp, sp, #0x10 -	bx lr -_020E5C74: -	cmp r0, #0x4e -	bne _020E5CF0 -	ldrsb r0, [sp, #0xc] -	cmp r0, #0x0 -	beq _020E5CB4 -	cmp r6, #0x41 -	sub r4, r8, #0xa -	bne _020E5CA4 -	ldr r1, _020E5ED0 ; =UNK_02106E18 -	mov r0, r4 -	bl wcscpy -	b _020E5CDC -_020E5CA4: -	ldr r1, _020E5ED4 ; =UNK_02106E24 -	mov r0, r4 -	bl wcscpy -	b _020E5CDC -_020E5CB4: -	cmp r6, #0x41 -	sub r4, r8, #0x8 -	bne _020E5CD0 -	ldr r1, _020E5ED8 ; =UNK_02106E30 -	mov r0, r4 -	bl wcscpy -	b _020E5CDC -_020E5CD0: -	ldr r1, _020E5EDC ; =UNK_02106E38 -	mov r0, r4 -	bl wcscpy -_020E5CDC: -	add sp, sp, #0x44 -	mov r0, r4 -	ldmia sp!, {r3-r10,lr} -	add sp, sp, #0x10 -	bx lr -_020E5CF0: -	mov r3, r10 -	mov r1, #0x1 -	mov r0, #0x64 -	add r9, sp, #0x68 -	strb r1, [sp, #0x34] -	strb r1, [sp, #0x35] -	strb r3, [sp, #0x36] -	strb r3, [sp, #0x37] -	strb r3, [sp, #0x38] -	str r3, [sp, #0x3c] -	str r1, [sp, #0x40] -	strh r0, [sp, #0x3a] -_020E5D20: -	rsb r1, r3, #0x7 -	ldrsb r2, [r9, r3] -	ldrsb r0, [r9, r1] -	strb r0, [r9, r3] -	add r3, r3, #0x1 -	strb r2, [r9, r1] -	cmp r3, #0x4 -	blt _020E5D20 -	ldrb r0, [sp, #0x69] -	ldrb r1, [sp, #0x68] -	ldr sb, _020E5EE0 ; =0x000007FF -	mov r0, r0, lsl #0x11 -	orr r1, r0, r1, lsl #0x19 -	add r0, sp, #0x34 -	and lr, r9, r1, lsr #0x15 -	sub r12, sp, #0x8 -	ldmia r0, {r0-r3} -	stmia r12, {r0-r3} -	rsb r0, r9, #0x400 -	mov r1, r8 -	add r0, lr, r0 -	ldmia r12, {r2-r3} -	bl long2str_wide -	cmp r6, #0x61 -	moveq r1, #0x70 -	movne r1, #0x50 -	strh r1, [r0, #-0x2]! -	mov r1, r7, lsl #0x2 -	mov lr, r7 -	cmp r7, #0x1 -	add r8, r1, #0xb -	add r12, sp, #0x68 -	blt _020E5E30 -	mov r9, #0x30 -_020E5DA8: -	cmp r8, #0x40 -	bge _020E5E18 -	ldrb r1, [r12, r8, asr #0x3] -	and r2, r8, #0x7 -	rsb r3, r2, #0x7 -	mov r2, r1, asr r3 -	sub r10, r8, #0x4 -	bic r1, r8, #0x7 -	bic r10, r10, #0x7 -	cmp r1, r10 -	add r10, r12, r8, asr #0x3 -	and r1, r2, #0xff -	beq _020E5DEC -	ldrb r2, [r10, #-0x1] -	mov r2, r2, lsl #0x8 -	orr r1, r1, r2, asr r3 -	and r1, r1, #0xff -_020E5DEC: -	and r1, r1, #0xf -	cmp r1, #0xa -	addcc r1, r1, #0x30 -	andcc r1, r1, #0xff -	blo _020E5E1C -	cmp r6, #0x61 -	addeq r1, r1, #0x57 -	andeq r1, r1, #0xff -	addne r1, r1, #0x37 -	andne r1, r1, #0xff -	b _020E5E1C -_020E5E18: -	mov r1, r9 -_020E5E1C: -	sub lr, lr, #0x1 -	cmp lr, #0x1 -	strh r1, [r0, #-0x2]! -	sub r8, r8, #0x4 -	bge _020E5DA8 -_020E5E30: -	cmp r7, #0x0 -	cmpeq r5, #0x0 -	movne r1, #0x2e -	strneh r1, [r0, #-0x2]! -	mov r1, #0x31 -	strh r1, [r0, #-0x2] -	cmp r6, #0x61 -	moveq r1, #0x78 -	movne r1, #0x58 -	strh r1, [r0, #-0x4]! -	mov r1, #0x30 -	strh r1, [r0, #-0x2]! -	ldrsb r1, [sp, #0xc] -	cmp r1, #0x0 -	movne r1, #0x2d -	strneh r1, [r0, #-0x2]! -	addne sp, sp, #0x44 -	ldmneia sp!, {r3-r10,lr} -	addne sp, sp, #0x10 -	bxne lr -	cmp r4, #0x1 -	moveq r1, #0x2b -	streqh r1, [r0, #-0x2]! -	addeq sp, sp, #0x44 -	ldmeqia sp!, {r3-r10,lr} -	addeq sp, sp, #0x10 -	bxeq lr -	cmp r4, #0x2 -	moveq r1, #0x20 -	streqh r1, [r0, #-0x2]! -	add sp, sp, #0x44 -	ldmia sp!, {r3-r10,lr} -	add sp, sp, #0x10 -	bx lr -	.balign 4 -_020E5EB8: .word 0x000001FD -_020E5EBC: .word UNK_02106DE4 -_020E5EC0: .word UNK_02106DF0 -_020E5EC4: .word UNK_02106DFC -_020E5EC8: .word UNK_02106E08 -_020E5ECC: .word UNK_02106E10 -_020E5ED0: .word UNK_02106E18 -_020E5ED4: .word UNK_02106E24 -_020E5ED8: .word UNK_02106E30 -_020E5EDC: .word UNK_02106E38 -_020E5EE0: .word 0x000007FF - -	arm_func_start round_decimal_wide -round_decimal_wide: ; 0x020E5EE4 -	stmdb sp!, {r4,lr} -	cmp r1, #0x0 -	bge _020E5F0C -_020E5EF0: -	mov r1, #0x0 -	strh r1, [r0, #0x2] -	mov r1, #0x1 -	strb r1, [r0, #0x4] -	mov r1, #0x30 -	strb r1, [r0, #0x5] -	ldmia sp!, {r4,pc} -_020E5F0C: -	ldrb lr, [r0, #0x4] -	cmp r1, lr -	ldmgeia sp!, {r4,pc} -	add r12, r0, #0x5 -	add r2, r12, r1 -	add r2, r2, #0x1 -	ldrsb r3, [r2, #-0x1]! -	sub r3, r3, #0x30 -	mov r3, r3, lsl #0x18 -	mov r3, r3, asr #0x18 -	cmp r3, #0x5 -	bne _020E5F6C -	add r12, r12, lr -_020E5F40: -	sub r12, r12, #0x1 -	cmp r12, r2 -	bls _020E5F58 -	ldrsb r3, [r12, #0x0] -	cmp r3, #0x30 -	beq _020E5F40 -_020E5F58: -	cmp r12, r2 -	ldreqsb r3, [r2, #-0x1] -	andeq r4, r3, #0x1 -	movne r4, #0x1 -	b _020E5F74 -_020E5F6C: -	movgt r4, #0x1 -	movle r4, #0x0 -_020E5F74: -	cmp r1, #0x0 -	beq _020E5FD0 -	mov r12, #0x0 -	mov lr, #0x1 -_020E5F84: -	ldrsb r3, [r2, #-0x1]! -	sub r3, r3, #0x30 -	add r3, r3, r4 -	mov r3, r3, lsl #0x18 -	mov r3, r3, asr #0x18 -	cmp r3, #0x9 -	movgt r4, lr -	movle r4, r12 -	cmp r4, #0x0 -	bne _020E5FB4 -	cmp r3, #0x0 -	bne _020E5FBC -_020E5FB4: -	sub r1, r1, #0x1 -	b _020E5FC8 -_020E5FBC: -	add r3, r3, #0x30 -	strb r3, [r2, #0x0] -	b _020E5FD0 -_020E5FC8: -	cmp r1, #0x0 -	bne _020E5F84 -_020E5FD0: -	cmp r4, #0x0 -	beq _020E5FF8 -	ldrsh r3, [r0, #0x2] -	mov r2, #0x1 -	mov r1, #0x31 -	add r3, r3, #0x1 -	strh r3, [r0, #0x2] -	strb r2, [r0, #0x4] -	strb r1, [r0, #0x5] -	ldmia sp!, {r4,pc} -_020E5FF8: -	cmp r1, #0x0 -	beq _020E5EF0 -	strb r1, [r0, #0x4] -	ldmia sp!, {r4,pc} - -	arm_func_start float2str_wide -float2str_wide: ; 0x020E6008 -	stmdb sp!, {r0-r3} -	stmdb sp!, {r4-r11,lr} -	sub sp, sp, #0x22c -	mov r10, r0 -	add r0, sp, #0x250 -	ldr r7, [sp, #0x268] -	ldr r3, _020E6628 ; =0x000001FD -	ldrh r6, [r0, #0x12] -	cmp r7, r3 -	ldrb r5, [sp, #0x25f] -	ldrb r4, [sp, #0x25d] -	mov r8, r1 -	mov r9, r2 -	addgt sp, sp, #0x22c -	movgt r0, #0x0 -	ldmgtia sp!, {r4-r11,lr} -	addgt sp, sp, #0x10 -	bxgt lr -	mov r12, #0x0 -	mov r11, #0x20 -	add r0, sp, #0x0 -	add r3, sp, #0x4 -	mov r1, r10 -	mov r2, r8 -	strb r12, [sp, #0x0] -	strh r11, [sp, #0x2] -	bl __num2dec_internal2 -	ldrb r0, [sp, #0x8] -	add r1, sp, #0x9 -	add r0, r1, r0 -	b _020E609C -_020E6084: -	ldrb r2, [sp, #0x8] -	ldrsh r1, [sp, #0x6] -	sub r2, r2, #0x1 -	add r1, r1, #0x1 -	strb r2, [sp, #0x8] -	strh r1, [sp, #0x6] -_020E609C: -	ldrb r1, [sp, #0x8] -	cmp r1, #0x1 -	bls _020E60B4 -	ldrsb r1, [r0, #-0x1]! -	cmp r1, #0x30 -	beq _020E6084 -_020E60B4: -	ldrb r0, [sp, #0x9] -	cmp r0, #0x30 -	beq _020E60D4 -	cmp r0, #0x49 -	beq _020E60E0 -	cmp r0, #0x4e -	beq _020E6198 -	b _020E6244 -_020E60D4: -	mov r0, #0x0 -	strh r0, [sp, #0x6] -	b _020E6244 -_020E60E0: -	mov r2, #0x0 -	mov r0, r10 -	mov r1, r8 -	mov r3, r2 -	bl _dls -	bhs _020E6140 -	cmp r6, #0x80 -	sub r4, r9, #0xa -	movcs r0, #0x0 -	bhs _020E6118 -	ldr r0, _020E662C ; =UNK_02104544 -	mov r1, r6, lsl #0x1 -	ldrh r0, [r0, r1] -	and r0, r0, #0x200 -_020E6118: -	cmp r0, #0x0 -	beq _020E6130 -	ldr r1, _020E6630 ; =UNK_02106DF0 -	mov r0, r4 -	bl wcscpy -	b _020E6184 -_020E6130: -	ldr r1, _020E6634 ; =UNK_02106DFC -	mov r0, r4 -	bl wcscpy -	b _020E6184 -_020E6140: -	cmp r6, #0x80 -	sub r4, r9, #0x8 -	movcs r0, #0x0 -	bhs _020E6160 -	ldr r0, _020E662C ; =UNK_02104544 -	mov r1, r6, lsl #0x1 -	ldrh r0, [r0, r1] -	and r0, r0, #0x200 -_020E6160: -	cmp r0, #0x0 -	beq _020E6178 -	ldr r1, _020E6638 ; =UNK_02106E08 -	mov r0, r4 -	bl wcscpy -	b _020E6184 -_020E6178: -	ldr r1, _020E663C ; =UNK_02106E10 -	mov r0, r4 -	bl wcscpy -_020E6184: -	add sp, sp, #0x22c -	mov r0, r4 -	ldmia sp!, {r4-r11,lr} -	add sp, sp, #0x10 -	bx lr -_020E6198: -	ldrsb r0, [sp, #0x4] -	cmp r0, #0x0 -	beq _020E61EC -	cmp r6, #0x80 -	sub r4, r9, #0xa -	movcs r0, #0x0 -	bhs _020E61C4 -	ldr r0, _020E662C ; =UNK_02104544 -	mov r1, r6, lsl #0x1 -	ldrh r0, [r0, r1] -	and r0, r0, #0x200 -_020E61C4: -	cmp r0, #0x0 -	beq _020E61DC -	ldr r1, _020E6640 ; =UNK_02106E18 -	mov r0, r4 -	bl wcscpy -	b _020E6230 -_020E61DC: -	ldr r1, _020E6644 ; =UNK_02106E24 -	mov r0, r4 -	bl wcscpy -	b _020E6230 -_020E61EC: -	cmp r6, #0x80 -	sub r4, r9, #0x8 -	movcs r0, #0x0 -	bhs _020E620C -	ldr r0, _020E662C ; =UNK_02104544 -	mov r1, r6, lsl #0x1 -	ldrh r0, [r0, r1] -	and r0, r0, #0x200 -_020E620C: -	cmp r0, #0x0 -	beq _020E6224 -	ldr r1, _020E6648 ; =UNK_02106E30 -	mov r0, r4 -	bl wcscpy -	b _020E6230 -_020E6224: -	ldr r1, _020E664C ; =UNK_02106E38 -	mov r0, r4 -	bl wcscpy -_020E6230: -	add sp, sp, #0x22c -	mov r0, r4 -	ldmia sp!, {r4-r11,lr} -	add sp, sp, #0x10 -	bx lr -_020E6244: -	ldrb r1, [sp, #0x8] -	ldrsh r2, [sp, #0x6] -	add r0, sp, #0x200 -	sub r1, r1, #0x1 -	add r0, r0, #0x2a -	add r1, r2, r1 -	sub r8, r0, #0x1 -	strh r1, [sp, #0x6] -	mov r0, #0x0 -	strb r0, [r8, #0x0] -	cmp r6, #0x65 -	bgt _020E62A0 -	bge _020E632C -	cmp r6, #0x47 -	bgt _020E65EC -	cmp r6, #0x45 -	blt _020E65EC -	beq _020E632C -	cmp r6, #0x46 -	beq _020E6478 -	cmp r6, #0x47 -	beq _020E62B8 -	b _020E65EC -_020E62A0: -	cmp r6, #0x66 -	bgt _020E62B0 -	beq _020E6478 -	b _020E65EC -_020E62B0: -	cmp r6, #0x67 -	bne _020E65EC -_020E62B8: -	ldrb r0, [sp, #0x8] -	cmp r0, r7 -	ble _020E62D0 -	add r0, sp, #0x4 -	mov r1, r7 -	bl round_decimal_wide -_020E62D0: -	ldrsh r2, [sp, #0x6] -	mvn r0, #0x3 -	cmp r2, r0 -	blt _020E62E8 -	cmp r2, r7 -	blt _020E6308 -_020E62E8: -	cmp r5, #0x0 -	ldreqb r0, [sp, #0x8] -	subne r7, r7, #0x1 -	subeq r7, r0, #0x1 -	cmp r6, #0x67 -	moveq r6, #0x65 -	movne r6, #0x45 -	b _020E632C -_020E6308: -	cmp r5, #0x0 -	addne r0, r2, #0x1 -	subne r7, r7, r0 -	bne _020E6478 -	ldrb r1, [sp, #0x8] -	add r0, r2, #0x1 -	subs r7, r1, r0 -	movmi r7, #0x0 -	b _020E6478 -_020E632C: -	ldrb r0, [sp, #0x8] -	add r1, r7, #0x1 -	cmp r0, r1 -	ble _020E6344 -	add r0, sp, #0x4 -	bl round_decimal_wide -_020E6344: -	ldrsh lr, [sp, #0x6] -	mov r11, #0x2b -	mov r10, #0x0 -	cmp lr, #0x0 -	rsblt lr, lr, #0x0 -	movlt r11, #0x2d -	ldr r3, _020E6650 ; =0x66666667 -	mov r0, #0xa -	b _020E6398 -_020E6368: -	mov r1, lr, lsr #0x1f -	smull r2, r12, r3, lr -	add r12, r1, r12, asr #0x2 -	smull r1, r2, r0, r12 -	sub r12, lr, r1 -	add r1, r12, #0x30 -	strb r1, [r8, #-0x1]! -	mov r2, lr -	smull r1, lr, r3, r2 -	mov r1, r2, lsr #0x1f -	add lr, r1, lr, asr #0x2 -	add r10, r10, #0x1 -_020E6398: -	cmp lr, #0x0 -	bne _020E6368 -	cmp r10, #0x2 -	blt _020E6368 -	add r0, sp, #0x2a -	strb r11, [r8, #-0x1] -	strb r6, [r8, #-0x2]! -	sub r1, r0, r8 -	ldr r0, _020E6628 ; =0x000001FD -	add r1, r1, r7 -	cmp r1, r0 -	addgt sp, sp, #0x22c -	movgt r0, #0x0 -	ldmgtia sp!, {r4-r11,lr} -	addgt sp, sp, #0x10 -	bxgt lr -	ldrb r1, [sp, #0x8] -	add r0, r7, #0x1 -	cmp r1, r0 -	bge _020E6408 -	add r0, r7, #0x2 -	sub r0, r0, r1 -	subs r1, r0, #0x1 -	beq _020E6408 -	mov r0, #0x30 -_020E63FC: -	strb r0, [r8, #-0x1]! -	subs r1, r1, #0x1 -	bne _020E63FC -_020E6408: -	ldrb r1, [sp, #0x8] -	add r0, sp, #0x9 -	add r2, r0, r1 -	subs r1, r1, #0x1 -	beq _020E642C -_020E641C: -	ldrsb r0, [r2, #-0x1]! -	subs r1, r1, #0x1 -	strb r0, [r8, #-0x1]! -	bne _020E641C -_020E642C: -	cmp r7, #0x0 -	cmpeq r5, #0x0 -	movne r0, #0x2e -	strneb r0, [r8, #-0x1]! -	ldrb r0, [sp, #0x9] -	strb r0, [r8, #-0x1]! -	ldrsb r0, [sp, #0x4] -	cmp r0, #0x0 -	movne r0, #0x2d -	strneb r0, [r8, #-0x1]! -	bne _020E65EC -	cmp r4, #0x1 -	moveq r0, #0x2b -	streqb r0, [r8, #-0x1]! -	beq _020E65EC -	cmp r4, #0x2 -	moveq r0, #0x20 -	streqb r0, [r8, #-0x1]! -	b _020E65EC -_020E6478: -	ldrsh r3, [sp, #0x6] -	ldrb r2, [sp, #0x8] -	sub r0, r2, r3 -	subs r1, r0, #0x1 -	movmi r1, #0x0 -	cmp r1, r7 -	ble _020E64B8 -	sub r1, r1, r7 -	add r0, sp, #0x4 -	sub r1, r2, r1 -	bl round_decimal_wide -	ldrsh r3, [sp, #0x6] -	ldrb r2, [sp, #0x8] -	sub r0, r2, r3 -	subs r1, r0, #0x1 -	movmi r1, #0x0 -_020E64B8: -	adds r0, r3, #0x1 -	movmi r0, #0x0 -	ldr r3, _020E6628 ; =0x000001FD -	add r6, r0, r1 -	cmp r6, r3 -	addgt sp, sp, #0x22c -	movgt r0, #0x0 -	ldmgtia sp!, {r4-r11,lr} -	addgt sp, sp, #0x10 -	bxgt lr -	add r3, sp, #0x9 -	sub r6, r7, r1 -	cmp r6, #0x0 -	add r2, r3, r2 -	mov r10, #0x0 -	ble _020E650C -	mov r3, #0x30 -_020E64FC: -	add r10, r10, #0x1 -	cmp r10, r6 -	strb r3, [r8, #-0x1]! -	blt _020E64FC -_020E650C: -	mov r6, #0x0 -	b _020E6520 -_020E6514: -	ldrsb r3, [r2, #-0x1]! -	add r6, r6, #0x1 -	strb r3, [r8, #-0x1]! -_020E6520: -	cmp r6, r1 -	ldrltb r3, [sp, #0x8] -	cmplt r6, r3 -	blt _020E6514 -	cmp r6, r1 -	bge _020E654C -	mov r3, #0x30 -_020E653C: -	add r6, r6, #0x1 -	cmp r6, r1 -	strb r3, [r8, #-0x1]! -	blt _020E653C -_020E654C: -	cmp r7, #0x0 -	cmpeq r5, #0x0 -	movne r1, #0x2e -	strneb r1, [r8, #-0x1]! -	cmp r0, #0x0 -	beq _020E65B4 -	ldrb r1, [sp, #0x8] -	mov r5, #0x0 -	sub r1, r0, r1 -	cmp r1, #0x0 -	ble _020E6594 -	mov r3, #0x30 -_020E657C: -	strb r3, [r8, #-0x1]! -	ldrb r1, [sp, #0x8] -	add r5, r5, #0x1 -	sub r1, r0, r1 -	cmp r5, r1 -	blt _020E657C -_020E6594: -	cmp r5, r0 -	bge _020E65BC -_020E659C: -	ldrsb r1, [r2, #-0x1]! -	add r5, r5, #0x1 -	cmp r5, r0 -	strb r1, [r8, #-0x1]! -	blt _020E659C -	b _020E65BC -_020E65B4: -	mov r0, #0x30 -	strb r0, [r8, #-0x1]! -_020E65BC: -	ldrsb r0, [sp, #0x4] -	cmp r0, #0x0 -	movne r0, #0x2d -	strneb r0, [r8, #-0x1]! -	bne _020E65EC -	cmp r4, #0x1 -	moveq r0, #0x2b -	streqb r0, [r8, #-0x1]! -	beq _020E65EC -	cmp r4, #0x2 -	moveq r0, #0x20 -	streqb r0, [r8, #-0x1]! -_020E65EC: -	mov r0, r8 -	bl strlen -	sub r1, r9, r0, lsl #0x1 -	mov r0, r8 -	sub r4, r1, #0x2 -	bl strlen -	mov r2, r0 -	mov r0, r4 -	mov r1, r8 -	bl mbstowcs -	mov r0, r4 -	add sp, sp, #0x22c -	ldmia sp!, {r4-r11,lr} -	add sp, sp, #0x10 -	bx lr -	.balign 4 -_020E6628: .word 0x000001FD -_020E662C: .word UNK_02104544 -_020E6630: .word UNK_02106DF0 -_020E6634: .word UNK_02106DFC -_020E6638: .word UNK_02106E08 -_020E663C: .word UNK_02106E10 -_020E6640: .word UNK_02106E18 -_020E6644: .word UNK_02106E24 -_020E6648: .word UNK_02106E30 -_020E664C: .word UNK_02106E38 -_020E6650: .word 0x66666667 - -	arm_func_start __wpformatter -__wpformatter: -	stmdb sp!, {r0-r3} -	stmdb sp!, {r3-r11,lr} -	sub sp, sp, #0x430 -	mov r3, #0x20 -	mov r11, r2 -	strh r3, [sp, #0x1c] -	ldrh r2, [r11, #0x0] -	mov r9, r0 -	mov r8, r1 -	cmp r2, #0x0 -	mov r4, #0x0 -	beq _020E6F24 -_020E6684: -	mov r0, r11 -	mov r1, #0x25 -	bl wcschr -	str r0, [sp, #0xc] -	cmp r0, #0x0 -	bne _020E66D8 -	mov r0, r11 -	bl wcslen -	movs r2, r0 -	add r4, r4, r2 -	beq _020E6F24 -	mov r0, r8 -	mov r1, r11 -	blx r9 -	cmp r0, #0x0 -	bne _020E6F24 -	add sp, sp, #0x430 -	mvn r0, #0x0 -	ldmia sp!, {r3-r11,lr} -	add sp, sp, #0x10 -	bx lr -_020E66D8: -	sub r0, r0, r11 -	add r0, r0, r0, lsr #0x1f -	movs r2, r0, asr #0x1 -	add r4, r4, r2 -	beq _020E6710 -	mov r0, r8 -	mov r1, r11 -	blx r9 -	cmp r0, #0x0 -	addeq sp, sp, #0x430 -	mvneq r0, #0x0 -	ldmeqia sp!, {r3-r11,lr} -	addeq sp, sp, #0x10 -	bxeq lr -_020E6710: -	add r1, sp, #0x400 -	ldr r0, [sp, #0xc] -	add r1, r1, #0x64 -	add r2, sp, #0x20 -	bl parse_format_wprintf -	ldrh r1, [sp, #0x26] -	mov r11, r0 -	cmp r1, #0x61 -	bgt _020E6780 -	bge _020E6AEC -	cmp r1, #0x47 -	bgt _020E6774 -	subs r0, r1, #0x41 -	addpl pc, pc, r0, lsl #0x2 -	b _020E6768 -	b _020E6AEC -	b _020E6D90 -	b _020E6D90 -	b _020E6D90 -	b _020E6A7C -	b _020E6A7C -	b _020E6A7C -_020E6768: -	cmp r1, #0x25 -	beq _020E6D7C -	b _020E6D90 -_020E6774: -	cmp r1, #0x58 -	beq _020E6940 -	b _020E6D90 -_020E6780: -	cmp r1, #0x75 -	bgt _020E67E8 -	subs r0, r1, #0x64 -	addpl pc, pc, r0, lsl #0x2 -	b _020E67DC -	b _020E6804 -	b _020E6A7C -	b _020E6A7C -	b _020E6A7C -	b _020E6D90 -	b _020E6804 -	b _020E6D90 -	b _020E6D90 -	b _020E6D90 -	b _020E6D90 -	b _020E6C98 -	b _020E6940 -	b _020E6D90 -	b _020E6D90 -	b _020E6D90 -	b _020E6B5C -	b _020E6D90 -	b _020E6940 -_020E67DC: -	cmp r1, #0x63 -	beq _020E6D24 -	b _020E6D90 -_020E67E8: -	cmp r1, #0x78 -	bgt _020E67F8 -	beq _020E6940 -	b _020E6D90 -_020E67F8: -	ldr r0, _020E6F38 ; =0x0000FFFF -	cmp r1, r0 -	b _020E6D90 -_020E6804: -	ldrb r0, [sp, #0x24] -	cmp r0, #0x3 -	bne _020E6824 -	ldr r1, [sp, #0x464] -	add r1, r1, #0x4 -	str r1, [sp, #0x464] -	ldr r10, [r1, #-0x4] -	b _020E68BC -_020E6824: -	cmp r0, #0x4 -	bne _020E684C -	ldr r1, [sp, #0x464] -	add r2, r1, #0x8 -	str r2, [sp, #0x464] -	ldr r1, [r2, #-0x8] -	str r1, [sp, #0x10] -	ldr r1, [r2, #-0x4] -	str r1, [sp, #0x14] -	b _020E68BC -_020E684C: -	cmp r0, #0x6 -	bne _020E6874 -	ldr r1, [sp, #0x464] -	add r2, r1, #0x8 -	str r2, [sp, #0x464] -	ldr r1, [r2, #-0x8] -	str r1, [sp, #0x10] -	ldr r1, [r2, #-0x4] -	str r1, [sp, #0x14] -	b _020E68BC -_020E6874: -	cmp r0, #0x7 -	bne _020E6890 -	ldr r1, [sp, #0x464] -	add r1, r1, #0x4 -	str r1, [sp, #0x464] -	ldr r10, [r1, #-0x4] -	b _020E68BC -_020E6890: -	cmp r0, #0x8 -	bne _020E68AC -	ldr r1, [sp, #0x464] -	add r1, r1, #0x4 -	str r1, [sp, #0x464] -	ldr r10, [r1, #-0x4] -	b _020E68BC -_020E68AC: -	ldr r1, [sp, #0x464] -	add r1, r1, #0x4 -	str r1, [sp, #0x464] -	ldr r10, [r1, #-0x4] -_020E68BC: -	cmp r0, #0x2 -	moveq r1, r10, lsl #0x10 -	moveq r10, r1, asr #0x10 -	cmp r0, #0x4 -	cmpne r0, #0x6 -	add r0, sp, #0x20 -	bne _020E6904 -	sub r5, sp, #0x4 -	ldmia r0, {r0-r3} -	stmia r5, {r0-r3} -	ldr r3, [r5, #0x0] -	ldr r0, [sp, #0x10] -	ldr r1, [sp, #0x14] -	add r2, sp, #0x430 -	bl longlong2str_wide -	movs r6, r0 -	beq _020E6D90 -	b _020E6928 -_020E6904: -	sub r5, sp, #0x8 -	ldmia r0, {r0-r3} -	stmia r5, {r0-r3} -	add r1, sp, #0x430 -	mov r0, r10 -	ldmia r5, {r2-r3} -	bl long2str_wide -	movs r6, r0 -	beq _020E6D90 -_020E6928: -	add r0, sp, #0x400 -	add r0, r0, #0x2e -	sub r0, r0, r6 -	add r0, r0, r0, lsr #0x1f -	mov r7, r0, asr #0x1 -	b _020E6DDC -_020E6940: -	ldrb r0, [sp, #0x24] -	cmp r0, #0x3 -	bne _020E6960 -	ldr r1, [sp, #0x464] -	add r1, r1, #0x4 -	str r1, [sp, #0x464] -	ldr r10, [r1, #-0x4] -	b _020E69F8 -_020E6960: -	cmp r0, #0x4 -	bne _020E6988 -	ldr r1, [sp, #0x464] -	add r2, r1, #0x8 -	str r2, [sp, #0x464] -	ldr r1, [r2, #-0x8] -	str r1, [sp, #0x10] -	ldr r1, [r2, #-0x4] -	str r1, [sp, #0x14] -	b _020E69F8 -_020E6988: -	cmp r0, #0x6 -	bne _020E69B0 -	ldr r1, [sp, #0x464] -	add r2, r1, #0x8 -	str r2, [sp, #0x464] -	ldr r1, [r2, #-0x8] -	str r1, [sp, #0x10] -	ldr r1, [r2, #-0x4] -	str r1, [sp, #0x14] -	b _020E69F8 -_020E69B0: -	cmp r0, #0x7 -	bne _020E69CC -	ldr r1, [sp, #0x464] -	add r1, r1, #0x4 -	str r1, [sp, #0x464] -	ldr r10, [r1, #-0x4] -	b _020E69F8 -_020E69CC: -	cmp r0, #0x8 -	bne _020E69E8 -	ldr r1, [sp, #0x464] -	add r1, r1, #0x4 -	str r1, [sp, #0x464] -	ldr r10, [r1, #-0x4] -	b _020E69F8 -_020E69E8: -	ldr r1, [sp, #0x464] -	add r1, r1, #0x4 -	str r1, [sp, #0x464] -	ldr r10, [r1, #-0x4] -_020E69F8: -	cmp r0, #0x2 -	moveq r1, r10, lsl #0x10 -	moveq r10, r1, lsr #0x10 -	cmp r0, #0x4 -	cmpne r0, #0x6 -	add r0, sp, #0x20 -	bne _020E6A40 -	sub r5, sp, #0x4 -	ldmia r0, {r0-r3} -	stmia r5, {r0-r3} -	ldr r3, [r5, #0x0] -	ldr r0, [sp, #0x10] -	ldr r1, [sp, #0x14] -	add r2, sp, #0x430 -	bl longlong2str_wide -	movs r6, r0 -	beq _020E6D90 -	b _020E6A64 -_020E6A40: -	sub r5, sp, #0x8 -	ldmia r0, {r0-r3} -	stmia r5, {r0-r3} -	add r1, sp, #0x430 -	mov r0, r10 -	ldmia r5, {r2-r3} -	bl long2str_wide -	movs r6, r0 -	beq _020E6D90 -_020E6A64: -	add r0, sp, #0x400 -	add r0, r0, #0x2e -	sub r0, r0, r6 -	add r0, r0, r0, lsr #0x1f -	mov r7, r0, asr #0x1 -	b _020E6DDC -_020E6A7C: -	ldrb r0, [sp, #0x24] -	cmp r0, #0x9 -	ldrne r0, [sp, #0x464] -	addne r0, r0, #0x8 -	strne r0, [sp, #0x464] -	bne _020E6AA0 -	ldr r0, [sp, #0x464] -	add r0, r0, #0x8 -	str r0, [sp, #0x464] -_020E6AA0: -	ldr r7, [r0, #-0x8] -	ldr r6, [r0, #-0x4] -	add r0, sp, #0x20 -	sub r5, sp, #0x4 -	ldmia r0, {r0-r3} -	stmia r5, {r0-r3} -	ldr r3, [r5, #0x0] -	mov r0, r7 -	mov r1, r6 -	add r2, sp, #0x430 -	bl float2str_wide -	movs r6, r0 -	beq _020E6D90 -	add r0, sp, #0x400 -	add r0, r0, #0x2e -	sub r0, r0, r6 -	add r0, r0, r0, lsr #0x1f -	mov r7, r0, asr #0x1 -	b _020E6DDC -_020E6AEC: -	ldrb r0, [sp, #0x24] -	cmp r0, #0x9 -	ldrne r0, [sp, #0x464] -	addne r0, r0, #0x8 -	strne r0, [sp, #0x464] -	bne _020E6B10 -	ldr r0, [sp, #0x464] -	add r0, r0, #0x8 -	str r0, [sp, #0x464] -_020E6B10: -	ldr r7, [r0, #-0x8] -	ldr r6, [r0, #-0x4] -	add r0, sp, #0x20 -	sub r5, sp, #0x4 -	ldmia r0, {r0-r3} -	stmia r5, {r0-r3} -	ldr r3, [r5, #0x0] -	mov r0, r7 -	mov r1, r6 -	add r2, sp, #0x430 -	bl double2hex_wide -	movs r6, r0 -	beq _020E6D90 -	add r0, sp, #0x400 -	add r0, r0, #0x2e -	sub r0, r0, r6 -	add r0, r0, r0, lsr #0x1f -	mov r7, r0, asr #0x1 -	b _020E6DDC -_020E6B5C: -	ldrb r0, [sp, #0x24] -	cmp r0, #0x5 -	bne _020E6BF8 -	ldr r0, [sp, #0x464] -	add r0, r0, #0x4 -	str r0, [sp, #0x464] -	ldr r6, [r0, #-0x4] -	ldrb r0, [sp, #0x23] -	cmp r6, #0x0 -	ldreq r6, _020E6F3C ; =UNK_02106E40 -	cmp r0, #0x0 -	beq _020E6BB0 -	ldrh r1, [r6], #0x2 -	ldrb r0, [sp, #0x22] -	and r7, r1, #0xff -	cmp r0, #0x0 -	beq _020E6DDC -	ldr r0, [sp, #0x2c] -	cmp r7, r0 -	movgt r7, r0 -	b _020E6DDC -_020E6BB0: -	ldrb r0, [sp, #0x22] -	cmp r0, #0x0 -	beq _020E6BE8 -	ldr r7, [sp, #0x2c] -	mov r0, r6 -	mov r2, r7 -	mov r1, #0x0 -	bl wmemchr -	cmp r0, #0x0 -	beq _020E6DDC -	sub r0, r0, r6 -	add r0, r0, r0, lsr #0x1f -	mov r7, r0, asr #0x1 -	b _020E6DDC -_020E6BE8: -	mov r0, r6 -	bl wcslen -	mov r7, r0 -	b _020E6DDC -_020E6BF8: -	ldr r0, [sp, #0x464] -	add r0, r0, #0x4 -	str r0, [sp, #0x464] -	ldr r5, [r0, #-0x4] -	ldrb r0, [sp, #0x23] -	cmp r5, #0x0 -	ldreq r5, _020E6F40 ; =UNK_02106E44 -	cmp r0, #0x0 -	beq _020E6C40 -	ldrh r1, [r6, #0x0] -	ldrb r0, [sp, #0x22] -	and r6, r1, #0xff -	cmp r0, #0x0 -	beq _020E6C78 -	ldr r0, [sp, #0x2c] -	cmp r6, r0 -	movgt r6, r0 -	b _020E6C78 -_020E6C40: -	ldrb r0, [sp, #0x22] -	cmp r0, #0x0 -	beq _020E6C6C -	ldr r6, [sp, #0x2c] -	mov r0, r5 -	mov r2, r6 -	mov r1, #0x0 -	bl memchr -	cmp r0, #0x0 -	subne r6, r0, r5 -	b _020E6C78 -_020E6C6C: -	mov r0, r5 -	bl strlen -	mov r6, r0 -_020E6C78: -	add r0, sp, #0x30 -	mov r1, r5 -	mov r2, r6 -	bl mbstowcs -	movs r7, r0 -	bmi _020E6D90 -	add r6, sp, #0x30 -	b _020E6DDC -_020E6C98: -	ldr r1, [sp, #0x464] -	ldrb r0, [sp, #0x24] -	add r1, r1, #0x4 -	str r1, [sp, #0x464] -	ldr r6, [r1, #-0x4] -	cmp r0, #0x8 -	addls pc, pc, r0, lsl #0x2 -	b _020E6F18 -	b _020E6CDC ; case -	b _020E6F18 ; case -	b _020E6CE4 ; case -	b _020E6CEC ; case -	b _020E6D14 ; case -	b _020E6F18 ; case -	b _020E6CF4 ; case -	b _020E6D04 ; case -	b _020E6D0C ; case -_020E6CDC: -	str r4, [r6, #0x0] -	b _020E6F18 -_020E6CE4: -	strh r4, [r6, #0x0] -	b _020E6F18 -_020E6CEC: -	str r4, [r6, #0x0] -	b _020E6F18 -_020E6CF4: -	str r4, [r6, #0x0] -	mov r0, r4, asr #0x1f -	str r0, [r6, #0x4] -	b _020E6F18 -_020E6D04: -	str r4, [r6, #0x0] -	b _020E6F18 -_020E6D0C: -	str r4, [r6, #0x0] -	b _020E6F18 -_020E6D14: -	str r4, [r6, #0x0] -	mov r0, r4, asr #0x1f -	str r0, [r6, #0x4] -	b _020E6F18 -_020E6D24: -	ldrb r0, [sp, #0x24] -	add r6, sp, #0x30 -	cmp r0, #0x5 -	bne _020E6D50 -	ldr r0, [sp, #0x464] -	mov r7, #0x1 -	add r0, r0, #0x4 -	str r0, [sp, #0x464] -	ldr r0, [r0, #-0x4] -	strh r0, [r6, #0x0] -	b _020E6DDC -_020E6D50: -	ldr r0, [sp, #0x464] -	add r1, sp, #0x18 -	add r0, r0, #0x4 -	str r0, [sp, #0x464] -	ldr r3, [r0, #-0x4] -	mov r0, r6 -	mov r2, #0x1 -	strb r3, [sp, #0x18] -	bl mbtowc -	mov r7, r0 -	b _020E6DDC -_020E6D7C: -	mov r0, #0x25 -	strh r0, [sp, #0x30] -	add r6, sp, #0x30 -	mov r7, #0x1 -	b _020E6DDC -_020E6D90: -	ldr r0, [sp, #0xc] -	bl wcslen -	movs r5, r0 -	beq _020E6DC8 -	ldr r1, [sp, #0xc] -	mov r0, r8 -	mov r2, r5 -	blx r9 -	cmp r0, #0x0 -	addeq sp, sp, #0x430 -	mvneq r0, #0x0 -	ldmeqia sp!, {r3-r11,lr} -	addeq sp, sp, #0x10 -	bxeq lr -_020E6DC8: -	add sp, sp, #0x430 -	add r0, r4, r5 -	ldmia sp!, {r3-r11,lr} -	add sp, sp, #0x10 -	bx lr -_020E6DDC: -	ldrb r0, [sp, #0x20] -	mov r5, r7 -	cmp r0, #0x0 -	beq _020E6E8C -	cmp r0, #0x2 -	moveq r1, #0x30 -	movne r1, #0x20 -	strh r1, [sp, #0x1c] -	ldrh r0, [r6, #0x0] -	cmp r0, #0x2b -	cmpne r0, #0x2d -	cmpne r0, #0x20 -	bne _020E6E48 -	cmp r1, #0x30 -	bne _020E6E48 -	mov r0, r8 -	mov r1, r6 -	mov r2, #0x1 -	blx r9 -	cmp r0, #0x0 -	addeq sp, sp, #0x430 -	mvneq r0, #0x0 -	ldmeqia sp!, {r3-r11,lr} -	addeq sp, sp, #0x10 -	bxeq lr -	add r6, r6, #0x2 -	sub r7, r7, #0x1 -_020E6E48: -	ldr r0, [sp, #0x28] -	cmp r5, r0 -	bge _020E6E8C -_020E6E54: -	mov r0, r8 -	add r1, sp, #0x1c -	mov r2, #0x1 -	blx r9 -	cmp r0, #0x0 -	addeq sp, sp, #0x430 -	mvneq r0, #0x0 -	ldmeqia sp!, {r3-r11,lr} -	addeq sp, sp, #0x10 -	bxeq lr -	ldr r0, [sp, #0x28] -	add r5, r5, #0x1 -	cmp r5, r0 -	blt _020E6E54 -_020E6E8C: -	cmp r7, #0x0 -	beq _020E6EBC -	mov r0, r8 -	mov r1, r6 -	mov r2, r7 -	blx r9 -	cmp r0, #0x0 -	addeq sp, sp, #0x430 -	mvneq r0, #0x0 -	ldmeqia sp!, {r3-r11,lr} -	addeq sp, sp, #0x10 -	bxeq lr -_020E6EBC: -	ldrb r0, [sp, #0x20] -	cmp r0, #0x0 -	bne _020E6F14 -	ldr r0, [sp, #0x28] -	cmp r5, r0 -	bge _020E6F14 -	mov r7, #0x20 -_020E6ED8: -	mov r0, r8 -	add r1, sp, #0x1a -	mov r2, #0x1 -	strh r7, [sp, #0x1a] -	blx r9 -	cmp r0, #0x0 -	addeq sp, sp, #0x430 -	mvneq r0, #0x0 -	ldmeqia sp!, {r3-r11,lr} -	addeq sp, sp, #0x10 -	bxeq lr -	ldr r0, [sp, #0x28] -	add r5, r5, #0x1 -	cmp r5, r0 -	blt _020E6ED8 -_020E6F14: -	add r4, r4, r5 -_020E6F18: -	ldrh r0, [r11, #0x0] -	cmp r0, #0x0 -	bne _020E6684 -_020E6F24: -	mov r0, r4 -	add sp, sp, #0x430 -	ldmia sp!, {r3-r11,lr} -	add sp, sp, #0x10 -	bx lr -	.balign 4 -_020E6F38: .word 0x0000FFFF -_020E6F3C: .word UNK_02106E40 -_020E6F40: .word UNK_02106E44 - -	arm_func_start __wStringWrite -__wStringWrite: ; 0x020E6F44 -	stmdb sp!, {r3-r5,lr} -	mov r4, r0 -	ldr r3, [r4, #0x8] -	mov r5, r2 -	ldr r2, [r4, #0x4] -	add r0, r3, r5 -	cmp r0, r2 -	ldr r0, [r4, #0x0] -	subhi r5, r2, r3 -	mov r2, r5 -	add r0, r0, r3, lsl #0x1 -	bl wmemcpy -	ldr r1, [r4, #0x8] -	add r1, r1, r5 -	str r1, [r4, #0x8] -	ldmia sp!, {r3-r5,pc} - -	arm_func_start swprintf -swprintf: ; 0x020E6F84 -	stmdb sp!, {r0-r3} -	stmdb sp!, {r3,lr} -	add r3, sp, #0x10 -	bic r3, r3, #0x3 -	ldr r2, [sp, #0x10] -	add r3, r3, #0x4 -	bl vswprintf -	ldmia sp!, {r3,lr} -	add sp, sp, #0x10 -	bx lr - -	arm_func_start vswprintf -vswprintf: ; 0x020E6FAC -	stmdb sp!, {r4-r5,lr} -	sub sp, sp, #0xc -	mov r5, r0 -	mov r4, r1 -	mov r12, #0x0 -	ldr r0, _020E7018 ; =__wStringWrite -	add r1, sp, #0x0 -	str r5, [sp, #0x0] -	str r4, [sp, #0x4] -	str r12, [sp, #0x8] -	bl __wpformatter -	cmp r0, #0x0 -	addlt sp, sp, #0xc -	ldmltia sp!, {r4-r5,pc} -	cmp r0, r4 -	bhs _020E7000 -	mov r1, r0, lsl #0x1 -	mov r2, #0x0 -	add sp, sp, #0xc -	strh r2, [r5, r1] -	ldmia sp!, {r4-r5,pc} -_020E7000: -	mov r1, #0x0 -	add r0, r5, r4, lsl #0x1 -	strh r1, [r0, #-0x2] -	sub r0, r1, #0x1 -	add sp, sp, #0xc -	ldmia sp!, {r4-r5,pc} -	.balign 4 -_020E7018: .word __wStringWrite -  	arm_func_start wcslen  wcslen: ; 0x020E701C  	mvn r2, #0x0 @@ -5551,213 +3184,22 @@ strnicmp: ; 0x020E9B38  	.balign 4  _020E9B40: .word stricmp -	.section .exception -	; 0x020EC710 -	.global UNK_020EC710 -UNK_020EC710: ; 0x020EC710 -	.byte 0x20, 0xFF, 0x09, 0x60 -	.byte 0x00, 0x00, 0x00, 0x00 - -	.global UNK_020EC718 -UNK_020EC718: ; 0x020EC718 -	.byte 0x00, 0xFF, 0x01, 0xB0 -	.byte 0x00, 0x00, 0x00, 0x00 - -	.global UNK_020EC720 -UNK_020EC720: ; 0x020EC720 -	.byte 0x00, 0xFF, 0x01, 0xD0 -	.byte 0x00, 0x00, 0x00, 0x00 - -	.global UNK_020EC728 -UNK_020EC728: ; 0x020EC728 -	.byte 0x20, 0xFF, 0x09, 0x60 -	.byte 0x00, 0x00, 0x00, 0x00 - -	.global UNK_020EC730 -UNK_020EC730: ; 0x020EC730 -	.byte 0x20, 0xFF, 0x11, 0x68 -	.byte 0x00, 0x00, 0x00, 0x00 +	.section .exception,8  	.global UNK_020EC738  UNK_020EC738: ; 0x020EC738  	.byte 0x20, 0xFF, 0x01, 0xB8 -	.byte 0x00, 0x00, 0x00, 0x00 +	.balign 8 + +	.section .exception,8  	.global UNK_020EC740  UNK_020EC740: ; 0x020EC740  	.byte 0x00, 0xFF, 0x05, 0x20 -	.byte 0x00, 0x00, 0x00, 0x00 +	.balign 8 + +    .section .exceptix,4 -	.global UNK_020EC748 -UNK_020EC748: ; 0x020EC748 -	.word abort -	.short 37 -	.word 0x00100000 -	.word exit -	.short 77 -	.word 0x00100100 -	.word __exit -	.short 297 -	.word 0x00200300 -	.word nan -	.short 25 -	.word 0x00000000 -	.word __flush_line_buffered_output_files -	.short 141 -	.word 0x00403F00 -	.word __flush_all -	.short 105 -	.word 0x00403F00 -	.word __msl_assertion_failed -	.short 61 -	.word 0x00200100 -	.word __load_buffer -	.short 141 -	.word 0x00200700 -	.word __flush_buffer -	.short 137 -	.word 0x00200300 -	.word fread -	.short 269 -	.word 0x00407F00 -	.word __fread -	.short 841 -	.word 0x00507F00 -	.word __fwrite -	.short 689 -	.word 0x0060FF00 -	.word fclose -	.short 117 -	.word 0x00200300 -	.word fflush -	.short 233 -	.word 0x00100100 -	.word ftell -	.short 285 -	.word 0x00300F00 -	.word _fseek -	.short 489 -	.word 0x00400320 -	.word fseek -	.short 301 -	.word 0x00403F00 -	.word rewind -	.short 37 -	.word 0x00100100 -	.word mbtowc -	.short 29 -	.word 0x00100000 -	.word wctomb -	.short 29 -	.word 0x00100000 -	.word mbstowcs -	.short 137 -	.word 0x00301F00 -	.word wcstombs -	.short 121 -	.word 0x00403F00 -	.word memset -	.short 21 -	.word 0x00100100 -	.word long2str -	.short 589 -	.word 0x0090FF20 -	.word longlong2str -	.short 737 -	.word 0x00A0FF20 -	.word double2hex -	.short 1245 -	.word 0x00F07F20 -	.word float2str -	.short 1893 -	.word 0x00C0FF20 -	.word __pformatter -	.short 2084 -	.word UNK_020EC710 -	.word __FileWrite -	.short 45 -	.word 0x00200300 -	.word __StringWrite -	.short 69 -	.word 0x00200300 -	.word printf -	.short 281 -	.word 0x00300120 -	.word vsnprintf -	.short 105 -	.word 0x00300300 -	.word snprintf -	.short 41 -	.word 0x00300020 -	.word sprintf -	.short 45 -	.word 0x00300020 -	.word qsort -	.short 357 -	.word 0x0070FF00 -	.word __sformatter -	.short 3412 -	.word UNK_020EC718 -	.word vsscanf -	.short 85 -	.word 0x00200000 -	.word sscanf -	.short 41 -	.word 0x00300020 -	.word raise -	.short 305 -	.word 0x00200300 -	.word __strtold -	.short 4684 -	.word UNK_020EC720 -	.word strtold -	.short 225 -	.word 0x00500F00 -	.word atod -	.short 17 -	.word 0x00000000 -	.word __strtoul -	.short 1001 -	.word 0x0060FF00 -	.word __strtoull -	.short 1101 -	.word 0x0080FF00 -	.word strtoul -	.short 153 -	.word 0x00600300 -	.word strtol -	.short 201 -	.word 0x00600300 -	.word atol -	.short 21 -	.word 0x00000000 -	.word wmemcpy -	.short 17 -	.word 0x00000000 -	.word long2str_wide -	.short 593 -	.word 0x0090FF20 -	.word longlong2str_wide -	.short 741 -	.word 0x00A0FF20 -	.word double2hex_wide -	.short 921 -	.word 0x00F07F20 -	.word float2str_wide -	.short 1612 -	.word UNK_020EC728 -	.word __wpformatter -	.short 2288 -	.word UNK_020EC730 -	.word __wStringWrite -	.short 65 -	.word 0x00200300 -	.word swprintf -	.short 41 -	.word 0x00300020 -	.word vswprintf -	.short 113 -	.word 0x00300300  	.word __ieee754_pow  	.short 4488  	.word UNK_020EC738 diff --git a/arm9/asm/stdlibmwcc.s b/arm9/asm/stdlibmwcc.s index 0af0108d..aa29d4d3 100644 --- a/arm9/asm/stdlibmwcc.s +++ b/arm9/asm/stdlibmwcc.s @@ -3156,7 +3156,10 @@ _ExitProcess: ; 0x020EC704  	.balign 4  _020EC70C: .word sys_exit -	.section .exception +	.section .exception,8 + +	.section .exceptix,4 +  	.word 0x00200100  	.word __read_console  	.short 81 | 
