summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-12-16 21:43:34 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2017-12-16 21:43:34 -0500
commit666f5d4e3a51fb4e7e836304336cbed3120c0efd (patch)
treef51f6e90e19943bad132fdf68428396885d19058
parentf95a4a932476be2ba99e2fd081e8d2bc6ea12813 (diff)
Link newlib
-rw-r--r--Makefile2
-rw-r--r--asm/libc.s9104
-rw-r--r--data/libc_data.s165
-rw-r--r--ld_script.txt65
-rw-r--r--newlib/Makefile6
-rw-r--r--sym_ewram2.txt55
6 files changed, 24 insertions, 9373 deletions
diff --git a/Makefile b/Makefile
index a5a0180..2b8f353 100644
--- a/Makefile
+++ b/Makefile
@@ -98,7 +98,7 @@ $(LIBC) $(LIBM):
make -C newlib
pmd_red.elf: ld_script.ld $(OBJS) $(LIBC) $(LIBM)
- $(LD) -T ld_script.ld -Map pmd_red.map -o $@ $(OBJS) $(LIBGCC) # $(LIBC) $(LIBM)
+ $(LD) -T ld_script.ld -Map pmd_red.map -o $@ $(OBJS) $(LIBC) $(LIBM) $(LIBGCC)
pmd_red.gba: pmd_red.elf
$(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0xA000000 $< $@
diff --git a/asm/libc.s b/asm/libc.s
deleted file mode 100644
index 17758b2..0000000
--- a/asm/libc.s
+++ /dev/null
@@ -1,9104 +0,0 @@
- .include "asm/macros.inc"
-
- .syntax unified
-
- .section .text.memcpy
-
- thumb_func_start memcpy
-memcpy:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r5, 0
- adds r3, r1, 0
- cmp r2, 0xF
- bls _080B2700
- adds r0, r3, 0
- orrs r0, r5
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080B2700
- adds r1, r5, 0
-_080B26DA:
- ldm r3!, {r0}
- stm r1!, {r0}
- ldm r3!, {r0}
- stm r1!, {r0}
- ldm r3!, {r0}
- stm r1!, {r0}
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x10
- cmp r2, 0xF
- bhi _080B26DA
- cmp r2, 0x3
- bls _080B26FE
-_080B26F4:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x4
- cmp r2, 0x3
- bhi _080B26F4
-_080B26FE:
- adds r4, r1, 0
-_080B2700:
- subs r2, 0x1
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _080B271A
- adds r1, r0, 0
-_080B270C:
- ldrb r0, [r3]
- strb r0, [r4]
- adds r3, 0x1
- adds r4, 0x1
- subs r2, 0x1
- cmp r2, r1
- bne _080B270C
-_080B271A:
- adds r0, r5, 0
- pop {r4,r5,pc}
- thumb_func_end memcpy
-
- .align 2, 0 @ don't pad with nop
- .section .text.memset
-
- thumb_func_start memset
-memset:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r3, r5, 0
- cmp r2, 0x3
- bls _080B2766
- movs r0, 0x3
- ands r0, r5
- cmp r0, 0
- bne _080B2766
- adds r1, r5, 0
- movs r0, 0xFF
- ands r4, r0
- lsls r3, r4, 8
- orrs r3, r4
- lsls r0, r3, 16
- orrs r3, r0
- cmp r2, 0xF
- bls _080B275A
-_080B2746:
- stm r1!, {r3}
- stm r1!, {r3}
- stm r1!, {r3}
- stm r1!, {r3}
- subs r2, 0x10
- cmp r2, 0xF
- bhi _080B2746
- b _080B275A
-_080B2756:
- stm r1!, {r3}
- subs r2, 0x4
-_080B275A:
- cmp r2, 0x3
- bhi _080B2756
- adds r3, r1, 0
- b _080B2766
-_080B2762:
- strb r4, [r3]
- adds r3, 0x1
-_080B2766:
- adds r0, r2, 0
- subs r2, 0x1
- cmp r0, 0
- bne _080B2762
- adds r0, r5, 0
- pop {r4,r5,pc}
- thumb_func_end memset
-
- .align 2, 0 @ don't pad with nop
- .section .text.sprintf
-
- thumb_func_start _sprintf_r
-_sprintf_r:
- push {r2,r3}
- push {r4,r5,lr}
- sub sp, 0x58
- ldr r4, [sp, 0x64]
- mov r3, sp
- movs r5, 0
- movs r2, 0x82
- lsls r2, 2
- strh r2, [r3, 0xC]
- str r1, [sp]
- str r1, [sp, 0x10]
- ldr r1, _080B27AC
- str r1, [sp, 0x8]
- str r1, [sp, 0x14]
- str r0, [sp, 0x54]
- add r2, sp, 0x68
- mov r0, sp
- adds r1, r4, 0
- bl vfprintf
- ldr r1, [sp]
- strb r5, [r1]
- add sp, 0x58
- pop {r4,r5}
- pop {r3}
- add sp, 0x8
- bx r3
- .align 2, 0
-_080B27AC: .4byte 0x7fffffff
- thumb_func_end _sprintf_r
-
- thumb_func_start sprintf
-sprintf:
- push {r1-r3}
- push {r4,lr}
- sub sp, 0x58
- ldr r1, [sp, 0x60]
- mov r3, sp
- movs r4, 0
- movs r2, 0x82
- lsls r2, 2
- strh r2, [r3, 0xC]
- str r0, [sp]
- str r0, [sp, 0x10]
- ldr r0, _080B27E8
- str r0, [sp, 0x8]
- str r0, [sp, 0x14]
- ldr r0, _080B27EC
- ldr r0, [r0]
- str r0, [sp, 0x54]
- add r2, sp, 0x64
- mov r0, sp
- bl vfprintf
- ldr r1, [sp]
- strb r4, [r1]
- add sp, 0x58
- pop {r4}
- pop {r3}
- add sp, 0xC
- bx r3
- .align 2, 0
-_080B27E8: .4byte 0x7fffffff
-_080B27EC: .4byte _impure_ptr
- thumb_func_end sprintf
-
- .align 2, 0 @ don't pad with nop
- .section .text.strcat
-
- thumb_func_start strcat
-strcat:
- push {r4-r6,lr}
- adds r2, r0, 0
- adds r6, r1, 0
- adds r4, r2, 0
- movs r0, 0x3
- ands r0, r4
- cmp r0, 0
- bne _080B2826
- ldr r1, [r4]
- ldr r5, _080B280C
- adds r0, r1, r5
- bics r0, r1
- ldr r3, _080B2810
- b _080B281C
- .align 2, 0
-_080B280C: .4byte 0xfefefeff
-_080B2810: .4byte 0x80808080
-_080B2814:
- adds r2, 0x4
- ldr r1, [r2]
- adds r0, r1, r5
- bics r0, r1
-_080B281C:
- ands r0, r3
- cmp r0, 0
- beq _080B2814
- b _080B2826
-_080B2824:
- adds r2, 0x1
-_080B2826:
- ldrb r0, [r2]
- cmp r0, 0
- bne _080B2824
- adds r0, r2, 0
- adds r1, r6, 0
- bl strcpy
- adds r0, r4, 0
- pop {r4-r6,pc}
- thumb_func_end strcat
-
- .align 2, 0 @ don't pad with nop
- .section .text.strcmp
-
- thumb_func_start strcmp
-strcmp:
- push {r4,r5,lr}
- adds r2, r0, 0
- adds r3, r1, 0
- orrs r0, r3
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080B287E
- ldr r1, [r2]
- ldr r0, [r3]
- cmp r1, r0
- bne _080B287E
- ldr r5, _080B2864
- ldr r4, _080B2868
-_080B2854:
- ldr r1, [r2]
- adds r0, r1, r5
- bics r0, r1
- ands r0, r4
- cmp r0, 0
- beq _080B286C
- movs r0, 0
- b _080B2890
- .align 2, 0
-_080B2864: .4byte 0xfefefeff
-_080B2868: .4byte 0x80808080
-_080B286C:
- adds r2, 0x4
- adds r3, 0x4
- ldr r1, [r2]
- ldr r0, [r3]
- cmp r1, r0
- beq _080B2854
- b _080B287E
-_080B287A:
- adds r2, 0x1
- adds r3, 0x1
-_080B287E:
- ldrb r0, [r2]
- cmp r0, 0
- beq _080B288A
- ldrb r1, [r3]
- cmp r0, r1
- beq _080B287A
-_080B288A:
- ldrb r2, [r2]
- ldrb r3, [r3]
- subs r0, r2, r3
-_080B2890:
- pop {r4,r5,pc}
- thumb_func_end strcmp
-
- .align 2, 0 @ don't pad with nop
- .section .text.strcpy
-
- thumb_func_start strcpy
-strcpy:
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r3, r6, 0
- adds r2, r1, 0
- adds r0, r2, 0
- orrs r0, r6
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080B28CC
- ldr r1, [r2]
- ldr r5, _080B28B4
- adds r0, r1, r5
- bics r0, r1
- ldr r4, _080B28B8
- b _080B28C6
- .align 2, 0
-_080B28B4: .4byte 0xfefefeff
-_080B28B8: .4byte 0x80808080
-_080B28BC:
- ldm r2!, {r0}
- stm r3!, {r0}
- ldr r1, [r2]
- adds r0, r1, r5
- bics r0, r1
-_080B28C6:
- ands r0, r4
- cmp r0, 0
- beq _080B28BC
-_080B28CC:
- ldrb r0, [r2]
- strb r0, [r3]
- lsls r0, 24
- adds r2, 0x1
- adds r3, 0x1
- cmp r0, 0
- bne _080B28CC
- adds r0, r6, 0
- pop {r4-r6,pc}
- thumb_func_end strcpy
-
- .align 2, 0 @ don't pad with nop
- .section .text.strlen
-
- thumb_func_start strlen
-strlen:
- push {r4,r5,lr}
- adds r1, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080B2918
- adds r2, r1, 0
- ldr r1, [r2]
- ldr r4, _080B28FC
- adds r0, r1, r4
- bics r0, r1
- ldr r3, _080B2900
- b _080B290C
- .align 2, 0
-_080B28FC: .4byte 0xfefefeff
-_080B2900: .4byte 0x80808080
-_080B2904:
- adds r2, 0x4
- ldr r1, [r2]
- adds r0, r1, r4
- bics r0, r1
-_080B290C:
- ands r0, r3
- cmp r0, 0
- beq _080B2904
- adds r1, r2, 0
- b _080B2918
-_080B2916:
- adds r1, 0x1
-_080B2918:
- ldrb r0, [r1]
- cmp r0, 0
- bne _080B2916
- subs r0, r1, r5
- pop {r4,r5,pc}
- thumb_func_end strlen
-
- .align 2, 0 @ don't pad with nop
- .section .text.strncpy
-
- thumb_func_start strncpy
-strncpy:
- push {r4-r7,lr}
- adds r7, r0, 0
- adds r4, r7, 0
- adds r3, r1, 0
- adds r0, r3, 0
- orrs r0, r7
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080B2966
- cmp r2, 0x3
- bls _080B2966
- ldr r1, [r3]
- ldr r6, _080B2948
- adds r0, r1, r6
- bics r0, r1
- ldr r5, _080B294C
- b _080B2960
- .align 2, 0
-_080B2948: .4byte 0xfefefeff
-_080B294C: .4byte 0x80808080
-_080B2950:
- subs r2, 0x4
- ldm r3!, {r0}
- stm r4!, {r0}
- cmp r2, 0x3
- bls _080B2966
- ldr r1, [r3]
- adds r0, r1, r6
- bics r0, r1
-_080B2960:
- ands r0, r5
- cmp r0, 0
- beq _080B2950
-_080B2966:
- cmp r2, 0
- beq _080B297A
- subs r2, 0x1
- ldrb r0, [r3]
- strb r0, [r4]
- lsls r0, 24
- adds r3, 0x1
- adds r4, 0x1
- cmp r0, 0
- bne _080B2966
-_080B297A:
- adds r0, r2, 0
- subs r2, 0x1
- cmp r0, 0
- beq _080B2990
- movs r1, 0
-_080B2984:
- strb r1, [r4]
- adds r4, 0x1
- adds r0, r2, 0
- subs r2, 0x1
- cmp r0, 0
- bne _080B2984
-_080B2990:
- adds r0, r7, 0
- pop {r4-r7,pc}
- thumb_func_end strncpy
-
- .align 2, 0 @ don't pad with nop
- .section .text.vfprintf
-
- thumb_func_start __sprint
-__sprint:
- push {r4,lr}
- adds r4, r1, 0
- ldr r1, [r4, 0x8]
- cmp r1, 0
- beq _080B29AC
- adds r1, r4, 0
- bl __sfvwrite
- movs r1, 0
- str r1, [r4, 0x8]
- str r1, [r4, 0x4]
- b _080B29B0
-_080B29AC:
- str r1, [r4, 0x4]
- movs r0, 0
-_080B29B0:
- pop {r4,pc}
- thumb_func_end __sprint
-
- thumb_func_start __sbprintf
-__sbprintf:
- push {r4,r5,lr}
- ldr r4, _080B2A24
- add sp, r4
- adds r5, r0, 0
- ldr r0, [r5, 0x54]
- str r0, [sp, 0x54]
- mov r3, sp
- movs r0, 0x3
- negs r0, r0
- ldrh r4, [r5, 0xC]
- ands r0, r4
- movs r4, 0
- strh r0, [r3, 0xC]
- ldrh r0, [r5, 0xE]
- strh r0, [r3, 0xE]
- ldr r0, [r5, 0x1C]
- str r0, [sp, 0x1C]
- ldr r0, [r5, 0x24]
- str r0, [sp, 0x24]
- add r0, sp, 0x58
- str r0, [sp]
- str r0, [sp, 0x10]
- movs r0, 0x80
- lsls r0, 3
- str r0, [sp, 0x8]
- str r0, [sp, 0x14]
- str r4, [sp, 0x18]
- mov r0, sp
- bl vfprintf
- adds r4, r0, 0
- cmp r4, 0
- blt _080B2A04
- mov r0, sp
- bl fflush
- cmp r0, 0
- beq _080B2A04
- movs r4, 0x1
- negs r4, r4
-_080B2A04:
- mov r1, sp
- movs r0, 0x40
- ldrh r1, [r1, 0xC]
- ands r0, r1
- cmp r0, 0
- beq _080B2A18
- movs r0, 0x40
- ldrh r1, [r5, 0xC]
- orrs r0, r1
- strh r0, [r5, 0xC]
-_080B2A18:
- adds r0, r4, 0
- movs r3, 0x8B
- lsls r3, 3
- add sp, r3
- pop {r4,r5,pc}
- .align 2, 0
-_080B2A24: .4byte 0xfffffba8
- thumb_func_end __sbprintf
-
- thumb_func_start vfprintf
-vfprintf:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, [r4, 0x54]
- adds r1, r4, 0
- adds r2, r5, 0
- bl _vfprintf_r
- pop {r4,r5,pc}
- thumb_func_end vfprintf
-
- thumb_func_start _vfprintf_r
-_vfprintf_r:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _080B2AA4
- add sp, r4
- str r0, [sp, 0x1DC]
- str r1, [sp, 0x1E0]
- adds r4, r2, 0
- mov r10, r3
- bl localeconv
- ldr r0, [r0]
- str r0, [sp, 0x1F8]
- movs r1, 0
- add r0, sp, 0x1D0
- str r1, [r0]
- ldr r1, [sp, 0x1E0]
- ldr r0, [r1, 0x54]
- cmp r0, 0
- bne _080B2A6E
- ldr r0, _080B2AA8
- ldr r0, [r0]
- str r0, [r1, 0x54]
-_080B2A6E:
- ldr r2, [sp, 0x1E0]
- ldr r1, [r2, 0x54]
- ldr r0, [r1, 0x38]
- cmp r0, 0
- bne _080B2A7E
- adds r0, r1, 0
- bl __sinit
-_080B2A7E:
- movs r0, 0x8
- ldr r1, [sp, 0x1E0]
- ldrh r1, [r1, 0xC]
- ands r0, r1
- cmp r0, 0
- beq _080B2A92
- ldr r2, [sp, 0x1E0]
- ldr r0, [r2, 0x10]
- cmp r0, 0
- bne _080B2AAC
-_080B2A92:
- ldr r0, [sp, 0x1E0]
- bl __swsetup
- cmp r0, 0
- beq _080B2AAC
- movs r0, 0x1
- negs r0, r0
- bl _080B398C
- .align 2, 0
-_080B2AA4: .4byte 0xfffffde0
-_080B2AA8: .4byte _impure_ptr
-_080B2AAC:
- movs r0, 0x1A
- ldr r1, [sp, 0x1E0]
- ldrh r1, [r1, 0xC]
- ands r0, r1
- cmp r0, 0xA
- bne _080B2AD0
- ldr r2, [sp, 0x1E0]
- movs r1, 0xE
- ldrsh r0, [r2, r1]
- cmp r0, 0
- blt _080B2AD0
- adds r0, r2, 0
- adds r1, r4, 0
- mov r2, r10
- bl __sbprintf
- bl _080B398C
-_080B2AD0:
- str r4, [sp, 0x1E4]
- add r1, sp, 0x1C
- add r5, sp, 0x28
- str r5, [sp, 0x1C]
- movs r0, 0
- str r0, [r1, 0x8]
- str r0, [r1, 0x4]
- movs r2, 0
- str r2, [sp, 0x1F0]
- mov r9, r1
- movs r4, 0xE6
- lsls r4, 1
- add r4, sp
- str r4, [sp, 0x214]
- movs r0, 0xE8
- lsls r0, 1
- add r0, sp
- str r0, [sp, 0x218]
-_080B2AF4:
- ldr r1, [sp, 0x1E4]
- mov r8, r1
-_080B2AF8:
- ldr r0, _080B2BA4
- ldr r0, [r0]
- ldr r1, _080B2BA8
- ldr r3, [r1]
- ldr r2, [sp, 0x218]
- str r2, [sp]
- ldr r1, [sp, 0x214]
- ldr r2, [sp, 0x1E4]
- bl _mbtowc_r
- adds r4, r0, 0
- cmp r4, 0
- ble _080B2B26
- ldr r0, [sp, 0x1E4]
- adds r0, r4
- str r0, [sp, 0x1E4]
- add r0, sp, 0x1CC
- ldr r0, [r0]
- cmp r0, 0x25
- bne _080B2AF8
- ldr r1, [sp, 0x1E4]
- subs r1, 0x1
- str r1, [sp, 0x1E4]
-_080B2B26:
- ldr r2, [sp, 0x1E4]
- mov r0, r8
- subs r6, r2, r0
- cmp r6, 0
- beq _080B2B5E
- str r0, [r5]
- str r6, [r5, 0x4]
- mov r1, r9
- ldr r0, [r1, 0x8]
- adds r0, r6
- str r0, [r1, 0x8]
- adds r5, 0x8
- ldr r0, [r1, 0x4]
- adds r0, 0x1
- str r0, [r1, 0x4]
- cmp r0, 0x7
- ble _080B2B58
- ldr r0, [sp, 0x1E0]
- bl __sprint
- cmp r0, 0
- beq _080B2B56
- bl _080B3978
-_080B2B56:
- add r5, sp, 0x28
-_080B2B58:
- ldr r2, [sp, 0x1F0]
- adds r2, r6
- str r2, [sp, 0x1F0]
-_080B2B5E:
- cmp r4, 0
- bgt _080B2B66
- bl _080B3960
-_080B2B66:
- ldr r4, [sp, 0x1E4]
- adds r4, 0x1
- str r4, [sp, 0x1E4]
- movs r0, 0
- str r0, [sp, 0x1EC]
- movs r1, 0
- str r1, [sp, 0x208]
- movs r2, 0
- str r2, [sp, 0x1F4]
- movs r6, 0x1
- negs r6, r6
- ldr r0, _080B2BAC
- add r0, sp
- strb r2, [r0]
-_080B2B82:
- ldr r0, [sp, 0x1E4]
- ldrb r0, [r0]
- str r0, [sp, 0x1E8]
- ldr r1, [sp, 0x1E4]
- adds r1, 0x1
- str r1, [sp, 0x1E4]
-_080B2B8E:
- ldr r0, [sp, 0x1E8]
- subs r0, 0x20
- cmp r0, 0x58
- bls _080B2B98
- b _080B324A
-_080B2B98:
- lsls r0, 2
- ldr r1, _080B2BB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B2BA4: .4byte _impure_ptr
-_080B2BA8: .4byte __mb_cur_max
-_080B2BAC: .4byte 0x000001c9
-_080B2BB0: .4byte _080B2BB4
- .align 2, 0
-_080B2BB4:
- .4byte _080B2D18
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B2D30
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B2D34
- .4byte _080B2D4E
- .4byte _080B324A
- .4byte _080B2D4A
- .4byte _080B2D5C
- .4byte _080B324A
- .4byte _080B2DBC
- .4byte _080B2DC0
- .4byte _080B2DC0
- .4byte _080B2DC0
- .4byte _080B2DC0
- .4byte _080B2DC0
- .4byte _080B2DC0
- .4byte _080B2DC0
- .4byte _080B2DC0
- .4byte _080B2DC0
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B2E2A
- .4byte _080B2E7C
- .4byte _080B324A
- .4byte _080B2E7C
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B2DE4
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B3032
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B30CA
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B3106
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B2E18
- .4byte _080B2E32
- .4byte _080B2E7C
- .4byte _080B2E7C
- .4byte _080B2E7C
- .4byte _080B2DE8
- .4byte _080B2E32
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B2DEC
- .4byte _080B324A
- .4byte _080B2FEC
- .4byte _080B303A
- .4byte _080B3068
- .4byte _080B2E0E
- .4byte _080B324A
- .4byte _080B3088
- .4byte _080B324A
- .4byte _080B30D2
- .4byte _080B324A
- .4byte _080B324A
- .4byte _080B3110
-_080B2D18:
- ldr r1, _080B2D2C
- add r1, sp
- ldrb r0, [r1]
- cmp r0, 0
- beq _080B2D24
- b _080B2B82
-_080B2D24:
- movs r0, 0x20
- strb r0, [r1]
- b _080B2B82
- .align 2, 0
-_080B2D2C: .4byte 0x000001c9
-_080B2D30:
- movs r0, 0x1
- b _080B2DFC
-_080B2D34:
- movs r4, 0x4
- add r10, r4
- mov r0, r10
- subs r0, 0x4
- ldr r0, [r0]
- str r0, [sp, 0x1F4]
- cmp r0, 0
- blt _080B2D46
- b _080B2B82
-_080B2D46:
- negs r0, r0
- str r0, [sp, 0x1F4]
-_080B2D4A:
- movs r0, 0x4
- b _080B2E10
-_080B2D4E:
- ldr r1, _080B2D58
- add r1, sp
- movs r0, 0x2B
- strb r0, [r1]
- b _080B2B82
- .align 2, 0
-_080B2D58: .4byte 0x000001c9
-_080B2D5C:
- ldr r2, [sp, 0x1E4]
- ldrb r2, [r2]
- str r2, [sp, 0x1E8]
- ldr r4, [sp, 0x1E4]
- adds r4, 0x1
- str r4, [sp, 0x1E4]
- cmp r2, 0x2A
- bne _080B2D86
- movs r0, 0x4
- add r10, r0
- mov r0, r10
- subs r0, 0x4
- ldr r4, [r0]
- adds r6, r4, 0
- movs r0, 0x1
- negs r0, r0
- cmp r6, r0
- blt _080B2D82
- b _080B2B82
-_080B2D82:
- adds r6, r0, 0
- b _080B2B82
-_080B2D86:
- movs r4, 0
- ldr r0, [sp, 0x1E8]
- b _080B2DA6
-_080B2D8C:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 1
- subs r0, 0x30
- ldr r1, [sp, 0x1E8]
- adds r4, r0, r1
- ldr r2, [sp, 0x1E4]
- ldrb r2, [r2]
- str r2, [sp, 0x1E8]
- ldr r0, [sp, 0x1E4]
- adds r0, 0x1
- str r0, [sp, 0x1E4]
- adds r0, r2, 0
-_080B2DA6:
- subs r0, 0x30
- cmp r0, 0x9
- bls _080B2D8C
- adds r6, r4, 0
- movs r0, 0x1
- negs r0, r0
- cmp r6, r0
- blt _080B2DB8
- b _080B2B8E
-_080B2DB8:
- adds r6, r0, 0
- b _080B2B8E
-_080B2DBC:
- movs r0, 0x80
- b _080B2E10
-_080B2DC0:
- movs r4, 0
-_080B2DC2:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 1
- subs r0, 0x30
- ldr r2, [sp, 0x1E8]
- adds r4, r0, r2
- ldr r0, [sp, 0x1E4]
- ldrb r0, [r0]
- str r0, [sp, 0x1E8]
- ldr r1, [sp, 0x1E4]
- adds r1, 0x1
- str r1, [sp, 0x1E4]
- subs r0, 0x30
- cmp r0, 0x9
- bls _080B2DC2
- str r4, [sp, 0x1F4]
- b _080B2B8E
-_080B2DE4:
- movs r0, 0x8
- b _080B2DFC
-_080B2DE8:
- movs r0, 0x40
- b _080B2E06
-_080B2DEC:
- ldr r0, [sp, 0x1E4]
- ldrb r0, [r0]
- cmp r0, 0x6C
- bne _080B2E04
- ldr r1, [sp, 0x1E4]
- adds r1, 0x1
- str r1, [sp, 0x1E4]
- movs r0, 0x20
-_080B2DFC:
- ldr r2, [sp, 0x1EC]
- orrs r2, r0
- str r2, [sp, 0x1EC]
- b _080B2B82
-_080B2E04:
- movs r0, 0x10
-_080B2E06:
- ldr r4, [sp, 0x1EC]
- orrs r4, r0
- str r4, [sp, 0x1EC]
- b _080B2B82
-_080B2E0E:
- movs r0, 0x20
-_080B2E10:
- ldr r1, [sp, 0x1EC]
- orrs r1, r0
- str r1, [sp, 0x1EC]
- b _080B2B82
-_080B2E18:
- add r2, sp, 0x68
- mov r8, r2
- movs r4, 0x4
- add r10, r4
- mov r0, r10
- subs r0, 0x4
- ldr r0, [r0]
- strb r0, [r2]
- b _080B3258
-_080B2E2A:
- movs r0, 0x10
- ldr r1, [sp, 0x1EC]
- orrs r1, r0
- str r1, [sp, 0x1EC]
-_080B2E32:
- movs r0, 0x10
- ldr r2, [sp, 0x1EC]
- ands r0, r2
- cmp r0, 0
- beq _080B2E42
- movs r4, 0x4
- add r10, r4
- b _080B2E5E
-_080B2E42:
- movs r0, 0x40
- ldr r1, [sp, 0x1EC]
- ands r0, r1
- cmp r0, 0
- beq _080B2E5A
- movs r2, 0x4
- add r10, r2
- mov r0, r10
- subs r0, 0x4
- movs r1, 0
- ldrsh r4, [r0, r1]
- b _080B2E64
-_080B2E5A:
- movs r2, 0x4
- add r10, r2
-_080B2E5E:
- mov r0, r10
- subs r0, 0x4
- ldr r4, [r0]
-_080B2E64:
- cmp r4, 0
- bge _080B2E72
- negs r4, r4
- ldr r1, _080B2E78
- add r1, sp
- movs r0, 0x2D
- strb r0, [r1]
-_080B2E72:
- movs r2, 0x1
- b _080B315E
- .align 2, 0
-_080B2E78: .4byte 0x000001c9
-_080B2E7C:
- movs r0, 0x1
- negs r0, r0
- cmp r6, r0
- bne _080B2E88
- movs r6, 0x6
- b _080B2E98
-_080B2E88:
- ldr r4, [sp, 0x1E8]
- cmp r4, 0x67
- beq _080B2E92
- cmp r4, 0x47
- bne _080B2E98
-_080B2E92:
- cmp r6, 0
- bne _080B2E98
- movs r6, 0x1
-_080B2E98:
- movs r0, 0x8
- ldr r1, [sp, 0x1EC]
- ands r0, r1
- movs r2, 0x8
- add r10, r2
- mov r0, r10
- subs r0, 0x8
- ldr r1, [r0]
- ldr r2, [r0, 0x4]
- str r1, [sp, 0x1FC]
- str r2, [sp, 0x200]
- ldr r0, [sp, 0x1FC]
- ldr r1, [sp, 0x200]
- bl isinf
- cmp r0, 0
- beq _080B2EEC
- ldr r3, _080B2EDC+4
- ldr r2, _080B2EDC
- ldr r0, [sp, 0x1FC]
- ldr r1, [sp, 0x200]
- bl __ltdf2
- cmp r0, 0
- bge _080B2ED2
- ldr r1, _080B2EE4
- add r1, sp
- movs r0, 0x2D
- strb r0, [r1]
-_080B2ED2:
- ldr r2, _080B2EE8
- mov r8, r2
- movs r3, 0x3
- b _080B3262
- .align 2, 0
-_080B2EDC: .8byte 0x0000000000000000
-_080B2EE4: .4byte 0x000001c9
-_080B2EE8: .4byte gUnknown_826FE04
-_080B2EEC:
- ldr r0, [sp, 0x1FC]
- ldr r1, [sp, 0x200]
- bl isnan
- cmp r0, 0
- beq _080B2F04
- ldr r4, _080B2F00
- mov r8, r4
- movs r3, 0x3
- b _080B3262
- .align 2, 0
-_080B2F00: .4byte gUnknown_826FE08
-_080B2F04:
- movs r0, 0x80
- lsls r0, 1
- ldr r1, [sp, 0x1EC]
- orrs r1, r0
- str r1, [sp, 0x1EC]
- str r1, [sp]
- add r0, sp, 0x1C8
- str r0, [sp, 0x4]
- add r0, sp, 0x1D4
- str r0, [sp, 0x8]
- ldr r2, [sp, 0x1E8]
- str r2, [sp, 0xC]
- add r0, sp, 0x1D8
- str r0, [sp, 0x10]
- ldr r0, [sp, 0x1DC]
- ldr r1, [sp, 0x1FC]
- ldr r2, [sp, 0x200]
- adds r3, r6, 0
- bl cvt
- mov r8, r0
- ldr r4, [sp, 0x1E8]
- cmp r4, 0x67
- beq _080B2F38
- cmp r4, 0x47
- bne _080B2F5A
-_080B2F38:
- add r0, sp, 0x1D4
- ldr r1, [r0]
- movs r0, 0x4
- negs r0, r0
- cmp r1, r0
- ble _080B2F48
- cmp r1, r6
- ble _080B2F56
-_080B2F48:
- movs r0, 0x45
- ldr r1, [sp, 0x1E8]
- cmp r1, 0x67
- bne _080B2F52
- movs r0, 0x65
-_080B2F52:
- str r0, [sp, 0x1E8]
- b _080B2F5A
-_080B2F56:
- movs r2, 0x67
- str r2, [sp, 0x1E8]
-_080B2F5A:
- ldr r4, [sp, 0x1E8]
- cmp r4, 0x65
- bgt _080B2F80
- add r0, sp, 0x1D4
- ldr r1, [r0]
- subs r1, 0x1
- str r1, [r0]
- add r0, sp, 0x14
- ldr r2, [sp, 0x1E8]
- bl exponent
- str r0, [sp, 0x204]
- add r0, sp, 0x1D8
- ldr r0, [r0]
- ldr r1, [sp, 0x204]
- adds r3, r1, r0
- cmp r0, 0x1
- bgt _080B2FC0
- b _080B2FB6
-_080B2F80:
- ldr r4, [sp, 0x1E8]
- cmp r4, 0x66
- bne _080B2FA8
- add r0, sp, 0x1D4
- ldr r0, [r0]
- cmp r0, 0
- ble _080B2FA4
- adds r3, r0, 0
- cmp r6, 0
- bne _080B2F9E
- movs r0, 0x1
- ldr r1, [sp, 0x1EC]
- ands r0, r1
- cmp r0, 0
- beq _080B2FD0
-_080B2F9E:
- adds r0, r3, 0x1
- adds r3, r0, r6
- b _080B2FD0
-_080B2FA4:
- adds r3, r6, 0x2
- b _080B2FD0
-_080B2FA8:
- add r0, sp, 0x1D4
- ldr r1, [r0]
- add r0, sp, 0x1D8
- ldr r0, [r0]
- cmp r1, r0
- blt _080B2FC4
- adds r3, r1, 0
-_080B2FB6:
- movs r0, 0x1
- ldr r2, [sp, 0x1EC]
- ands r0, r2
- cmp r0, 0
- beq _080B2FD0
-_080B2FC0:
- adds r3, 0x1
- b _080B2FD0
-_080B2FC4:
- cmp r1, 0
- bgt _080B2FCE
- adds r0, 0x2
- subs r3, r0, r1
- b _080B2FD0
-_080B2FCE:
- adds r3, r0, 0x1
-_080B2FD0:
- add r0, sp, 0x1C8
- ldrb r0, [r0]
- adds r7, r5, 0
- adds r7, 0x8
- cmp r0, 0
- bne _080B2FDE
- b _080B3266
-_080B2FDE:
- ldr r1, _080B2FE8
- add r1, sp
- movs r0, 0x2D
- strb r0, [r1]
- b _080B3266
- .align 2, 0
-_080B2FE8: .4byte 0x000001c9
-_080B2FEC:
- movs r0, 0x10
- ldr r4, [sp, 0x1EC]
- ands r0, r4
- cmp r0, 0
- beq _080B3006
- movs r0, 0x4
- add r10, r0
- mov r0, r10
- subs r0, 0x4
- ldr r0, [r0]
- ldr r1, [sp, 0x1F0]
- str r1, [r0]
- b _080B2AF4
-_080B3006:
- movs r0, 0x40
- ldr r2, [sp, 0x1EC]
- ands r2, r0
- cmp r2, 0
- beq _080B3022
- movs r4, 0x4
- add r10, r4
- mov r0, r10
- subs r0, 0x4
- ldr r0, [r0]
- add r1, sp, 0x1F0
- ldrh r1, [r1]
- strh r1, [r0]
- b _080B2AF4
-_080B3022:
- movs r2, 0x4
- add r10, r2
- mov r0, r10
- subs r0, 0x4
- ldr r0, [r0]
- ldr r4, [sp, 0x1F0]
- str r4, [r0]
- b _080B2AF4
-_080B3032:
- movs r0, 0x10
- ldr r1, [sp, 0x1EC]
- orrs r1, r0
- str r1, [sp, 0x1EC]
-_080B303A:
- movs r0, 0x10
- ldr r2, [sp, 0x1EC]
- ands r0, r2
- cmp r0, 0
- bne _080B305A
- movs r0, 0x40
- ldr r1, [sp, 0x1EC]
- ands r0, r1
- cmp r0, 0
- beq _080B305A
- movs r2, 0x4
- add r10, r2
- mov r0, r10
- subs r0, 0x4
- ldrh r4, [r0]
- b _080B3064
-_080B305A:
- movs r4, 0x4
- add r10, r4
- mov r0, r10
- subs r0, 0x4
- ldr r4, [r0]
-_080B3064:
- movs r2, 0
- b _080B3156
-_080B3068:
- movs r0, 0x4
- add r10, r0
- mov r0, r10
- subs r0, 0x4
- ldr r4, [r0]
- movs r2, 0x2
- ldr r1, _080B3084
- str r1, [sp, 0x210]
- ldr r0, [sp, 0x1EC]
- orrs r0, r2
- str r0, [sp, 0x1EC]
- movs r1, 0x78
- str r1, [sp, 0x1E8]
- b _080B3156
- .align 2, 0
-_080B3084: .4byte gUnknown_826FE0C
-_080B3088:
- movs r2, 0x4
- add r10, r2
- mov r0, r10
- subs r0, 0x4
- ldr r0, [r0]
- mov r8, r0
- cmp r0, 0
- bne _080B309C
- ldr r4, _080B30BC
- mov r8, r4
-_080B309C:
- cmp r6, 0
- blt _080B30C0
- mov r0, r8
- movs r1, 0
- adds r2, r6, 0
- bl memchr
- cmp r0, 0
- beq _080B30B8
- mov r1, r8
- subs r3, r0, r1
- cmp r3, r6
- bgt _080B30B8
- b _080B325A
-_080B30B8:
- adds r3, r6, 0
- b _080B325A
- .align 2, 0
-_080B30BC: .4byte gUnknown_826FE20
-_080B30C0:
- mov r0, r8
- bl strlen
- adds r3, r0, 0
- b _080B325A
-_080B30CA:
- movs r0, 0x10
- ldr r2, [sp, 0x1EC]
- orrs r2, r0
- str r2, [sp, 0x1EC]
-_080B30D2:
- movs r0, 0x10
- ldr r4, [sp, 0x1EC]
- ands r0, r4
- cmp r0, 0
- beq _080B30E2
- movs r0, 0x4
- add r10, r0
- b _080B30FC
-_080B30E2:
- movs r0, 0x40
- ldr r1, [sp, 0x1EC]
- ands r0, r1
- cmp r0, 0
- beq _080B30F8
- movs r2, 0x4
- add r10, r2
- mov r0, r10
- subs r0, 0x4
- ldrh r4, [r0]
- b _080B3102
-_080B30F8:
- movs r4, 0x4
- add r10, r4
-_080B30FC:
- mov r0, r10
- subs r0, 0x4
- ldr r4, [r0]
-_080B3102:
- movs r2, 0x1
- b _080B3156
-_080B3106:
- ldr r0, _080B310C
- str r0, [sp, 0x210]
- b _080B3114
- .align 2, 0
-_080B310C: .4byte gUnknown_826FE28
-_080B3110:
- ldr r1, _080B3134
- str r1, [sp, 0x210]
-_080B3114:
- movs r0, 0x10
- ldr r2, [sp, 0x1EC]
- ands r0, r2
- cmp r0, 0
- bne _080B3138
- movs r0, 0x40
- ldr r1, [sp, 0x1EC]
- ands r0, r1
- cmp r0, 0
- beq _080B3138
- movs r2, 0x4
- add r10, r2
- mov r0, r10
- subs r0, 0x4
- ldrh r4, [r0]
- b _080B3142
- .align 2, 0
-_080B3134: .4byte gUnknown_826FE0C
-_080B3138:
- movs r4, 0x4
- add r10, r4
- mov r0, r10
- subs r0, 0x4
- ldr r4, [r0]
-_080B3142:
- movs r2, 0x2
- movs r0, 0x1
- ldr r1, [sp, 0x1EC]
- ands r0, r1
- cmp r0, 0
- beq _080B3156
- cmp r4, 0
- beq _080B3156
- orrs r1, r2
- str r1, [sp, 0x1EC]
-_080B3156:
- ldr r1, _080B31A0
- add r1, sp
- movs r0, 0
- strb r0, [r1]
-_080B315E:
- str r6, [sp, 0x208]
- cmp r6, 0
- blt _080B316E
- movs r0, 0x81
- negs r0, r0
- ldr r1, [sp, 0x1EC]
- ands r1, r0
- str r1, [sp, 0x1EC]
-_080B316E:
- movs r0, 0xE2
- lsls r0, 1
- add r0, sp
- mov r8, r0
- cmp r4, 0
- bne _080B3184
- adds r7, r5, 0
- adds r7, 0x8
- ldr r1, [sp, 0x208]
- cmp r1, 0
- beq _080B323C
-_080B3184:
- cmp r2, 0x1
- beq _080B31E2
- cmp r2, 0x1
- bcc _080B31A8
- cmp r2, 0x2
- beq _080B321C
- ldr r2, _080B31A4
- mov r8, r2
- mov r0, r8
- bl strlen
- adds r3, r0, 0
- b _080B3262
- .align 2, 0
-_080B31A0: .4byte 0x000001c9
-_080B31A4: .4byte gUnknown_826FE3C
-_080B31A8:
- adds r7, r5, 0
- adds r7, 0x8
- movs r2, 0x7
-_080B31AE:
- movs r0, 0x1
- negs r0, r0
- add r8, r0
- adds r0, r4, 0
- ands r0, r2
- adds r1, r0, 0
- adds r1, 0x30
- mov r0, r8
- strb r1, [r0]
- lsrs r4, 3
- cmp r4, 0
- bne _080B31AE
- movs r0, 0x1
- ldr r2, [sp, 0x1EC]
- ands r0, r2
- cmp r0, 0
- beq _080B323C
- cmp r1, 0x30
- beq _080B323C
- movs r4, 0x1
- negs r4, r4
- add r8, r4
- movs r0, 0x30
- mov r1, r8
- strb r0, [r1]
- b _080B323C
-_080B31E2:
- adds r7, r5, 0
- adds r7, 0x8
- cmp r4, 0x9
- bls _080B320C
-_080B31EA:
- movs r2, 0x1
- negs r2, r2
- add r8, r2
- adds r0, r4, 0
- movs r1, 0xA
- bl __umodsi3
- adds r0, 0x30
- mov r1, r8
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0xA
- bl __udivsi3
- adds r4, r0, 0
- cmp r4, 0x9
- bhi _080B31EA
-_080B320C:
- movs r2, 0x1
- negs r2, r2
- add r8, r2
- adds r0, r4, 0
- adds r0, 0x30
- mov r4, r8
- strb r0, [r4]
- b _080B323C
-_080B321C:
- adds r7, r5, 0
- adds r7, 0x8
- movs r1, 0xF
-_080B3222:
- movs r0, 0x1
- negs r0, r0
- add r8, r0
- adds r0, r4, 0
- ands r0, r1
- ldr r2, [sp, 0x210]
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r2, r8
- strb r0, [r2]
- lsrs r4, 4
- cmp r4, 0
- bne _080B3222
-_080B323C:
- add r4, sp, 0x14
- mov r1, r8
- subs r0, r4, r1
- movs r2, 0xD8
- lsls r2, 1
- adds r3, r0, r2
- b _080B3266
-_080B324A:
- ldr r4, [sp, 0x1E8]
- cmp r4, 0
- bne _080B3252
- b _080B3960
-_080B3252:
- add r0, sp, 0x68
- mov r8, r0
- strb r4, [r0]
-_080B3258:
- movs r3, 0x1
-_080B325A:
- ldr r1, _080B3284
- add r1, sp
- movs r0, 0
- strb r0, [r1]
-_080B3262:
- adds r7, r5, 0
- adds r7, 0x8
-_080B3266:
- str r3, [sp, 0x20C]
- ldr r2, [sp, 0x208]
- cmp r3, r2
- bge _080B3270
- str r2, [sp, 0x20C]
-_080B3270:
- ldr r0, _080B3284
- add r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B3288
- ldr r4, [sp, 0x20C]
- adds r4, 0x1
- str r4, [sp, 0x20C]
- b _080B3298
- .align 2, 0
-_080B3284: .4byte 0x000001c9
-_080B3288:
- movs r0, 0x2
- ldr r1, [sp, 0x1EC]
- ands r0, r1
- cmp r0, 0
- beq _080B3298
- ldr r2, [sp, 0x20C]
- adds r2, 0x2
- str r2, [sp, 0x20C]
-_080B3298:
- movs r0, 0x84
- ldr r4, [sp, 0x1EC]
- ands r0, r4
- cmp r0, 0
- bne _080B3318
- ldr r0, [sp, 0x1F4]
- ldr r1, [sp, 0x20C]
- subs r4, r0, r1
- cmp r4, 0
- ble _080B3318
- ldr r1, _080B3344
- cmp r4, 0x10
- ble _080B32EC
- mov r6, r9
-_080B32B4:
- str r1, [r5]
- movs r0, 0x10
- str r0, [r5, 0x4]
- ldr r0, [r6, 0x8]
- adds r0, 0x10
- str r0, [r6, 0x8]
- adds r5, r7, 0
- ldr r0, [r6, 0x4]
- adds r0, 0x1
- str r0, [r6, 0x4]
- cmp r0, 0x7
- ble _080B32E2
- ldr r0, [sp, 0x1E0]
- mov r1, r9
- str r3, [sp, 0x21C]
- bl __sprint
- ldr r3, [sp, 0x21C]
- cmp r0, 0
- beq _080B32DE
- b _080B3978
-_080B32DE:
- add r5, sp, 0x28
- ldr r1, _080B3344
-_080B32E2:
- subs r4, 0x10
- adds r7, r5, 0
- adds r7, 0x8
- cmp r4, 0x10
- bgt _080B32B4
-_080B32EC:
- str r1, [r5]
- str r4, [r5, 0x4]
- mov r2, r9
- ldr r0, [r2, 0x8]
- adds r0, r4
- str r0, [r2, 0x8]
- adds r5, r7, 0
- ldr r0, [r2, 0x4]
- adds r0, 0x1
- str r0, [r2, 0x4]
- cmp r0, 0x7
- ble _080B3318
- ldr r0, [sp, 0x1E0]
- mov r1, r9
- str r3, [sp, 0x21C]
- bl __sprint
- ldr r3, [sp, 0x21C]
- cmp r0, 0
- beq _080B3316
- b _080B3978
-_080B3316:
- add r5, sp, 0x28
-_080B3318:
- ldr r1, _080B3348
- add r1, sp
- ldrb r0, [r1]
- cmp r0, 0
- beq _080B334C
- str r1, [r5]
- movs r0, 0x1
- str r0, [r5, 0x4]
- mov r4, r9
- ldr r0, [r4, 0x8]
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r5, 0x8
- ldr r0, [r4, 0x4]
- adds r0, 0x1
- str r0, [r4, 0x4]
- cmp r0, 0x7
- ble _080B338C
- ldr r0, [sp, 0x1E0]
- mov r1, r9
- b _080B337C
- .align 2, 0
-_080B3344: .4byte gUnknown_826FDE4
-_080B3348: .4byte 0x000001c9
-_080B334C:
- movs r2, 0x2
- ldr r0, [sp, 0x1EC]
- ands r0, r2
- cmp r0, 0
- beq _080B338C
- add r1, sp, 0x1C4
- movs r0, 0x30
- strb r0, [r1]
- add r0, sp, 0x1E8
- ldrb r0, [r0]
- strb r0, [r1, 0x1]
- str r1, [r5]
- str r2, [r5, 0x4]
- mov r1, r9
- ldr r0, [r1, 0x8]
- adds r0, 0x2
- str r0, [r1, 0x8]
- adds r5, 0x8
- ldr r0, [r1, 0x4]
- adds r0, 0x1
- str r0, [r1, 0x4]
- cmp r0, 0x7
- ble _080B338C
- ldr r0, [sp, 0x1E0]
-_080B337C:
- str r3, [sp, 0x21C]
- bl __sprint
- ldr r3, [sp, 0x21C]
- cmp r0, 0
- beq _080B338A
- b _080B3978
-_080B338A:
- add r5, sp, 0x28
-_080B338C:
- movs r0, 0x84
- ldr r2, [sp, 0x1EC]
- ands r0, r2
- cmp r0, 0x80
- bne _080B3408
- ldr r0, [sp, 0x1F4]
- ldr r1, [sp, 0x20C]
- subs r4, r0, r1
- cmp r4, 0
- ble _080B3408
- ldr r1, _080B34A4
- cmp r4, 0x10
- ble _080B33DC
- mov r6, r9
-_080B33A8:
- str r1, [r5]
- movs r0, 0x10
- str r0, [r5, 0x4]
- ldr r0, [r6, 0x8]
- adds r0, 0x10
- str r0, [r6, 0x8]
- adds r5, 0x8
- ldr r0, [r6, 0x4]
- adds r0, 0x1
- str r0, [r6, 0x4]
- cmp r0, 0x7
- ble _080B33D6
- ldr r0, [sp, 0x1E0]
- mov r1, r9
- str r3, [sp, 0x21C]
- bl __sprint
- ldr r3, [sp, 0x21C]
- cmp r0, 0
- beq _080B33D2
- b _080B3978
-_080B33D2:
- add r5, sp, 0x28
- ldr r1, _080B34A4
-_080B33D6:
- subs r4, 0x10
- cmp r4, 0x10
- bgt _080B33A8
-_080B33DC:
- str r1, [r5]
- str r4, [r5, 0x4]
- mov r2, r9
- ldr r0, [r2, 0x8]
- adds r0, r4
- str r0, [r2, 0x8]
- adds r5, 0x8
- ldr r0, [r2, 0x4]
- adds r0, 0x1
- str r0, [r2, 0x4]
- cmp r0, 0x7
- ble _080B3408
- ldr r0, [sp, 0x1E0]
- mov r1, r9
- str r3, [sp, 0x21C]
- bl __sprint
- ldr r3, [sp, 0x21C]
- cmp r0, 0
- beq _080B3406
- b _080B3978
-_080B3406:
- add r5, sp, 0x28
-_080B3408:
- ldr r0, [sp, 0x208]
- subs r4, r0, r3
- cmp r4, 0
- ble _080B3476
- ldr r1, _080B34A4
- cmp r4, 0x10
- ble _080B344C
- mov r6, r9
-_080B3418:
- str r1, [r5]
- movs r0, 0x10
- str r0, [r5, 0x4]
- ldr r0, [r6, 0x8]
- adds r0, 0x10
- str r0, [r6, 0x8]
- adds r5, 0x8
- ldr r0, [r6, 0x4]
- adds r0, 0x1
- str r0, [r6, 0x4]
- cmp r0, 0x7
- ble _080B3446
- ldr r0, [sp, 0x1E0]
- mov r1, r9
- str r3, [sp, 0x21C]
- bl __sprint
- ldr r3, [sp, 0x21C]
- cmp r0, 0
- beq _080B3442
- b _080B3978
-_080B3442:
- add r5, sp, 0x28
- ldr r1, _080B34A4
-_080B3446:
- subs r4, 0x10
- cmp r4, 0x10
- bgt _080B3418
-_080B344C:
- str r1, [r5]
- str r4, [r5, 0x4]
- mov r1, r9
- ldr r0, [r1, 0x8]
- adds r0, r4
- str r0, [r1, 0x8]
- adds r5, 0x8
- ldr r0, [r1, 0x4]
- adds r0, 0x1
- str r0, [r1, 0x4]
- cmp r0, 0x7
- ble _080B3476
- ldr r0, [sp, 0x1E0]
- str r3, [sp, 0x21C]
- bl __sprint
- ldr r3, [sp, 0x21C]
- cmp r0, 0
- beq _080B3474
- b _080B3978
-_080B3474:
- add r5, sp, 0x28
-_080B3476:
- movs r0, 0x80
- lsls r0, 1
- ldr r2, [sp, 0x1EC]
- ands r0, r2
- cmp r0, 0
- bne _080B34A8
- mov r4, r8
- str r4, [r5]
- str r3, [r5, 0x4]
- mov r1, r9
- ldr r0, [r1, 0x8]
- adds r0, r3
- str r0, [r1, 0x8]
- adds r5, 0x8
- ldr r0, [r1, 0x4]
- adds r0, 0x1
- str r0, [r1, 0x4]
- cmp r0, 0x7
- bgt _080B349E
- b _080B38BE
-_080B349E:
- ldr r0, [sp, 0x1E0]
- b _080B38B4
- .align 2, 0
-_080B34A4: .4byte gUnknown_826FDF4
-_080B34A8:
- ldr r2, [sp, 0x1E8]
- cmp r2, 0x65
- bgt _080B34B0
- b _080B3794
-_080B34B0:
- ldr r3, _080B357C
- ldr r2, _080B3578
- ldr r0, [sp, 0x1FC]
- ldr r1, [sp, 0x200]
- bl __eqdf2
- cmp r0, 0
- bne _080B3588
- ldr r0, _080B3580
- str r0, [r5]
- movs r6, 0x1
- str r6, [r5, 0x4]
- mov r4, r9
- ldr r0, [r4, 0x8]
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r5, 0x8
- ldr r0, [r4, 0x4]
- adds r0, 0x1
- str r0, [r4, 0x4]
- cmp r0, 0x7
- ble _080B34EC
- ldr r0, [sp, 0x1E0]
- mov r1, r9
- bl __sprint
- cmp r0, 0
- beq _080B34EA
- b _080B3978
-_080B34EA:
- add r5, sp, 0x28
-_080B34EC:
- add r0, sp, 0x1D4
- ldr r1, [r0]
- add r4, sp, 0x1D8
- ldr r0, [r4]
- cmp r1, r0
- blt _080B3502
- ldr r0, [sp, 0x1EC]
- ands r0, r6
- cmp r0, 0
- bne _080B3502
- b _080B38BE
-_080B3502:
- ldr r0, [sp, 0x1F8]
- str r0, [r5]
- str r6, [r5, 0x4]
- mov r1, r9
- ldr r0, [r1, 0x8]
- adds r0, 0x1
- str r0, [r1, 0x8]
- adds r5, 0x8
- ldr r0, [r1, 0x4]
- adds r0, 0x1
- str r0, [r1, 0x4]
- cmp r0, 0x7
- ble _080B352A
- ldr r0, [sp, 0x1E0]
- bl __sprint
- cmp r0, 0
- beq _080B3528
- b _080B3978
-_080B3528:
- add r5, sp, 0x28
-_080B352A:
- ldr r0, [r4]
- subs r4, r0, 0x1
- cmp r4, 0
- bgt _080B3534
- b _080B38BE
-_080B3534:
- ldr r1, _080B3584
- cmp r4, 0x10
- ble _080B356C
- mov r6, r9
-_080B353C:
- str r1, [r5]
- movs r0, 0x10
- str r0, [r5, 0x4]
- ldr r0, [r6, 0x8]
- adds r0, 0x10
- str r0, [r6, 0x8]
- adds r5, 0x8
- ldr r0, [r6, 0x4]
- adds r0, 0x1
- str r0, [r6, 0x4]
- cmp r0, 0x7
- ble _080B3566
- ldr r0, [sp, 0x1E0]
- mov r1, r9
- bl __sprint
- cmp r0, 0
- beq _080B3562
- b _080B3978
-_080B3562:
- add r5, sp, 0x28
- ldr r1, _080B3584
-_080B3566:
- subs r4, 0x10
- cmp r4, 0x10
- bgt _080B353C
-_080B356C:
- str r1, [r5]
- str r4, [r5, 0x4]
- mov r2, r9
- ldr r0, [r2, 0x8]
- adds r0, r4
- b _080B38A2
- .align 2, 0
-_080B3578: .4byte 0x00000000
-_080B357C: .4byte 0x00000000
-_080B3580: .4byte gUnknown_826FE58
-_080B3584: .4byte gUnknown_826FDF4
-_080B3588:
- add r6, sp, 0x1D4
- ldr r2, [r6]
- cmp r2, 0
- bgt _080B3670
- ldr r0, _080B3668
- str r0, [r5]
- movs r4, 0x1
- str r4, [r5, 0x4]
- mov r1, r9
- ldr r0, [r1, 0x8]
- adds r0, 0x1
- str r0, [r1, 0x8]
- adds r5, 0x8
- ldr r0, [r1, 0x4]
- adds r0, 0x1
- str r0, [r1, 0x4]
- cmp r0, 0x7
- ble _080B35BA
- ldr r0, [sp, 0x1E0]
- bl __sprint
- cmp r0, 0
- beq _080B35B8
- b _080B3978
-_080B35B8:
- add r5, sp, 0x28
-_080B35BA:
- ldr r2, [sp, 0x1F8]
- str r2, [r5]
- str r4, [r5, 0x4]
- mov r4, r9
- ldr r0, [r4, 0x8]
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r5, 0x8
- ldr r0, [r4, 0x4]
- adds r0, 0x1
- str r0, [r4, 0x4]
- cmp r0, 0x7
- ble _080B35E4
- ldr r0, [sp, 0x1E0]
- mov r1, r9
- bl __sprint
- cmp r0, 0
- beq _080B35E2
- b _080B3978
-_080B35E2:
- add r5, sp, 0x28
-_080B35E4:
- ldr r0, [r6]
- negs r4, r0
- cmp r4, 0
- ble _080B364A
- ldr r1, _080B366C
- cmp r4, 0x10
- ble _080B3624
- mov r6, r9
-_080B35F4:
- str r1, [r5]
- movs r0, 0x10
- str r0, [r5, 0x4]
- ldr r0, [r6, 0x8]
- adds r0, 0x10
- str r0, [r6, 0x8]
- adds r5, 0x8
- ldr r0, [r6, 0x4]
- adds r0, 0x1
- str r0, [r6, 0x4]
- cmp r0, 0x7
- ble _080B361E
- ldr r0, [sp, 0x1E0]
- mov r1, r9
- bl __sprint
- cmp r0, 0
- beq _080B361A
- b _080B3978
-_080B361A:
- add r5, sp, 0x28
- ldr r1, _080B366C
-_080B361E:
- subs r4, 0x10
- cmp r4, 0x10
- bgt _080B35F4
-_080B3624:
- str r1, [r5]
- str r4, [r5, 0x4]
- mov r1, r9
- ldr r0, [r1, 0x8]
- adds r0, r4
- str r0, [r1, 0x8]
- adds r5, 0x8
- ldr r0, [r1, 0x4]
- adds r0, 0x1
- str r0, [r1, 0x4]
- cmp r0, 0x7
- ble _080B364A
- ldr r0, [sp, 0x1E0]
- bl __sprint
- cmp r0, 0
- beq _080B3648
- b _080B3978
-_080B3648:
- add r5, sp, 0x28
-_080B364A:
- mov r2, r8
- str r2, [r5]
- add r0, sp, 0x1D8
- ldr r1, [r0]
- str r1, [r5, 0x4]
- mov r4, r9
- ldr r0, [r4, 0x8]
- adds r0, r1
- str r0, [r4, 0x8]
- adds r5, 0x8
- ldr r0, [r4, 0x4]
- adds r0, 0x1
- str r0, [r4, 0x4]
- b _080B38AC
- .align 2, 0
-_080B3668: .4byte gUnknown_826FE58
-_080B366C: .4byte gUnknown_826FDF4
-_080B3670:
- add r4, sp, 0x1D8
- ldr r1, [r4]
- cmp r2, r1
- blt _080B372C
- mov r0, r8
- str r0, [r5]
- str r1, [r5, 0x4]
- mov r2, r9
- ldr r0, [r2, 0x8]
- adds r0, r1
- str r0, [r2, 0x8]
- adds r5, 0x8
- ldr r0, [r2, 0x4]
- adds r0, 0x1
- str r0, [r2, 0x4]
- cmp r0, 0x7
- ble _080B36A2
- ldr r0, [sp, 0x1E0]
- mov r1, r9
- bl __sprint
- cmp r0, 0
- beq _080B36A0
- b _080B3978
-_080B36A0:
- add r5, sp, 0x28
-_080B36A2:
- ldr r1, [r6]
- ldr r0, [r4]
- subs r4, r1, r0
- cmp r4, 0
- ble _080B370A
- ldr r1, _080B3724
- cmp r4, 0x10
- ble _080B36E4
- mov r6, r9
-_080B36B4:
- str r1, [r5]
- movs r0, 0x10
- str r0, [r5, 0x4]
- ldr r0, [r6, 0x8]
- adds r0, 0x10
- str r0, [r6, 0x8]
- adds r5, 0x8
- ldr r0, [r6, 0x4]
- adds r0, 0x1
- str r0, [r6, 0x4]
- cmp r0, 0x7
- ble _080B36DE
- ldr r0, [sp, 0x1E0]
- mov r1, r9
- bl __sprint
- cmp r0, 0
- beq _080B36DA
- b _080B3978
-_080B36DA:
- add r5, sp, 0x28
- ldr r1, _080B3724
-_080B36DE:
- subs r4, 0x10
- cmp r4, 0x10
- bgt _080B36B4
-_080B36E4:
- str r1, [r5]
- str r4, [r5, 0x4]
- mov r1, r9
- ldr r0, [r1, 0x8]
- adds r0, r4
- str r0, [r1, 0x8]
- adds r5, 0x8
- ldr r0, [r1, 0x4]
- adds r0, 0x1
- str r0, [r1, 0x4]
- cmp r0, 0x7
- ble _080B370A
- ldr r0, [sp, 0x1E0]
- bl __sprint
- cmp r0, 0
- beq _080B3708
- b _080B3978
-_080B3708:
- add r5, sp, 0x28
-_080B370A:
- movs r1, 0x1
- ldr r0, [sp, 0x1EC]
- ands r0, r1
- cmp r0, 0
- bne _080B3716
- b _080B38BE
-_080B3716:
- ldr r0, _080B3728
- str r0, [r5]
- str r1, [r5, 0x4]
- mov r2, r9
- ldr r0, [r2, 0x8]
- adds r0, 0x1
- b _080B38A2
- .align 2, 0
-_080B3724: .4byte gUnknown_826FDF4
-_080B3728: .4byte gUnknown_826FE5C
-_080B372C:
- mov r0, r8
- str r0, [r5]
- str r2, [r5, 0x4]
- mov r1, r9
- ldr r0, [r1, 0x8]
- adds r0, r2
- str r0, [r1, 0x8]
- adds r5, 0x8
- ldr r0, [r1, 0x4]
- adds r0, 0x1
- str r0, [r1, 0x4]
- cmp r0, 0x7
- ble _080B3754
- ldr r0, [sp, 0x1E0]
- bl __sprint
- cmp r0, 0
- beq _080B3752
- b _080B3978
-_080B3752:
- add r5, sp, 0x28
-_080B3754:
- ldr r0, [r6]
- add r8, r0
- ldr r0, _080B3790
- str r0, [r5]
- movs r0, 0x1
- str r0, [r5, 0x4]
- mov r2, r9
- ldr r0, [r2, 0x8]
- adds r0, 0x1
- str r0, [r2, 0x8]
- adds r5, 0x8
- ldr r0, [r2, 0x4]
- adds r0, 0x1
- str r0, [r2, 0x4]
- cmp r0, 0x7
- ble _080B3784
- ldr r0, [sp, 0x1E0]
- mov r1, r9
- bl __sprint
- cmp r0, 0
- beq _080B3782
- b _080B3978
-_080B3782:
- add r5, sp, 0x28
-_080B3784:
- mov r0, r8
- str r0, [r5]
- ldr r1, [r4]
- ldr r0, [r6]
- subs r1, r0
- b _080B389A
- .align 2, 0
-_080B3790: .4byte gUnknown_826FE5C
-_080B3794:
- add r4, sp, 0x1D8
- ldr r0, [r4]
- cmp r0, 0x1
- bgt _080B37A6
- movs r1, 0x1
- ldr r0, [sp, 0x1EC]
- ands r0, r1
- cmp r0, 0
- beq _080B386C
-_080B37A6:
- add r1, sp, 0x1C4
- mov r2, r8
- ldrb r0, [r2]
- strb r0, [r1]
- movs r0, 0x1
- add r8, r0
- movs r0, 0x2E
- strb r0, [r1, 0x1]
- str r1, [r5]
- movs r0, 0x2
- str r0, [r5, 0x4]
- mov r1, r9
- ldr r0, [r1, 0x8]
- adds r0, 0x2
- str r0, [r1, 0x8]
- adds r5, 0x8
- ldr r0, [r1, 0x4]
- adds r0, 0x1
- str r0, [r1, 0x4]
- cmp r0, 0x7
- ble _080B37DE
- ldr r0, [sp, 0x1E0]
- bl __sprint
- cmp r0, 0
- beq _080B37DC
- b _080B3978
-_080B37DC:
- add r5, sp, 0x28
-_080B37DE:
- ldr r3, _080B3808
- ldr r2, _080B3804
- ldr r0, [sp, 0x1FC]
- ldr r1, [sp, 0x200]
- bl __nedf2
- cmp r0, 0
- beq _080B380C
- mov r2, r8
- str r2, [r5]
- ldr r1, [r4]
- subs r0, r1, 0x1
- str r0, [r5, 0x4]
- mov r4, r9
- ldr r0, [r4, 0x8]
- subs r0, 0x1
- adds r0, r1
- b _080B3878
- .align 2, 0
-_080B3804: .4byte 0x00000000
-_080B3808: .4byte 0x00000000
-_080B380C:
- ldr r0, [r4]
- subs r4, r0, 0x1
- cmp r4, 0
- ble _080B3894
- ldr r1, _080B3868
- cmp r4, 0x10
- ble _080B384C
- mov r6, r9
-_080B381C:
- str r1, [r5]
- movs r0, 0x10
- str r0, [r5, 0x4]
- ldr r0, [r6, 0x8]
- adds r0, 0x10
- str r0, [r6, 0x8]
- adds r5, 0x8
- ldr r0, [r6, 0x4]
- adds r0, 0x1
- str r0, [r6, 0x4]
- cmp r0, 0x7
- ble _080B3846
- ldr r0, [sp, 0x1E0]
- mov r1, r9
- bl __sprint
- cmp r0, 0
- beq _080B3842
- b _080B3978
-_080B3842:
- add r5, sp, 0x28
- ldr r1, _080B3868
-_080B3846:
- subs r4, 0x10
- cmp r4, 0x10
- bgt _080B381C
-_080B384C:
- str r1, [r5]
- str r4, [r5, 0x4]
- mov r1, r9
- ldr r0, [r1, 0x8]
- adds r0, r4
- str r0, [r1, 0x8]
- adds r5, 0x8
- ldr r0, [r1, 0x4]
- adds r0, 0x1
- str r0, [r1, 0x4]
- cmp r0, 0x7
- ble _080B3894
- ldr r0, [sp, 0x1E0]
- b _080B388A
- .align 2, 0
-_080B3868: .4byte gUnknown_826FDF4
-_080B386C:
- mov r2, r8
- str r2, [r5]
- str r1, [r5, 0x4]
- mov r4, r9
- ldr r0, [r4, 0x8]
- adds r0, 0x1
-_080B3878:
- str r0, [r4, 0x8]
- adds r5, 0x8
- ldr r0, [r4, 0x4]
- adds r0, 0x1
- str r0, [r4, 0x4]
- cmp r0, 0x7
- ble _080B3894
- ldr r0, [sp, 0x1E0]
- mov r1, r9
-_080B388A:
- bl __sprint
- cmp r0, 0
- bne _080B3978
- add r5, sp, 0x28
-_080B3894:
- add r0, sp, 0x14
- str r0, [r5]
- ldr r1, [sp, 0x204]
-_080B389A:
- str r1, [r5, 0x4]
- mov r2, r9
- ldr r0, [r2, 0x8]
- adds r0, r1
-_080B38A2:
- str r0, [r2, 0x8]
- adds r5, 0x8
- ldr r0, [r2, 0x4]
- adds r0, 0x1
- str r0, [r2, 0x4]
-_080B38AC:
- cmp r0, 0x7
- ble _080B38BE
- ldr r0, [sp, 0x1E0]
- mov r1, r9
-_080B38B4:
- bl __sprint
- cmp r0, 0
- bne _080B3978
- add r5, sp, 0x28
-_080B38BE:
- movs r0, 0x4
- ldr r4, [sp, 0x1EC]
- ands r4, r0
- cmp r4, 0
- beq _080B392A
- ldr r0, [sp, 0x1F4]
- ldr r1, [sp, 0x20C]
- subs r4, r0, r1
- cmp r4, 0
- ble _080B392A
- ldr r1, _080B395C
- cmp r4, 0x10
- ble _080B3908
- mov r6, r9
-_080B38DA:
- str r1, [r5]
- movs r0, 0x10
- str r0, [r5, 0x4]
- ldr r0, [r6, 0x8]
- adds r0, 0x10
- str r0, [r6, 0x8]
- adds r5, 0x8
- ldr r0, [r6, 0x4]
- adds r0, 0x1
- str r0, [r6, 0x4]
- cmp r0, 0x7
- ble _080B3902
- ldr r0, [sp, 0x1E0]
- mov r1, r9
- bl __sprint
- cmp r0, 0
- bne _080B3978
- add r5, sp, 0x28
- ldr r1, _080B395C
-_080B3902:
- subs r4, 0x10
- cmp r4, 0x10
- bgt _080B38DA
-_080B3908:
- str r1, [r5]
- str r4, [r5, 0x4]
- mov r2, r9
- ldr r0, [r2, 0x8]
- adds r0, r4
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x4]
- adds r0, 0x1
- str r0, [r2, 0x4]
- cmp r0, 0x7
- ble _080B392A
- ldr r0, [sp, 0x1E0]
- mov r1, r9
- bl __sprint
- cmp r0, 0
- bne _080B3978
-_080B392A:
- ldr r0, [sp, 0x20C]
- ldr r4, [sp, 0x1F4]
- cmp r0, r4
- bge _080B3934
- adds r0, r4, 0
-_080B3934:
- ldr r1, [sp, 0x1F0]
- adds r1, r0
- str r1, [sp, 0x1F0]
- mov r2, r9
- ldr r0, [r2, 0x8]
- cmp r0, 0
- beq _080B394E
- ldr r0, [sp, 0x1E0]
- mov r1, r9
- bl __sprint
- cmp r0, 0
- bne _080B3978
-_080B394E:
- movs r0, 0
- mov r4, r9
- str r0, [r4, 0x4]
- add r5, sp, 0x28
- bl _080B2AF4
- .align 2, 0
-_080B395C: .4byte gUnknown_826FDE4
-_080B3960:
- mov r1, r9
- ldr r0, [r1, 0x8]
- cmp r0, 0
- beq _080B3972
- ldr r0, [sp, 0x1E0]
- bl __sprint
- cmp r0, 0
- bne _080B3978
-_080B3972:
- movs r0, 0
- mov r1, r9
- str r0, [r1, 0x4]
-_080B3978:
- movs r0, 0x40
- ldr r2, [sp, 0x1E0]
- ldrh r2, [r2, 0xC]
- ands r0, r2
- movs r1, 0x1
- negs r1, r1
- cmp r0, 0
- bne _080B398A
- ldr r1, [sp, 0x1F0]
-_080B398A:
- adds r0, r1, 0
-_080B398C:
- movs r3, 0x88
- lsls r3, 2
- add sp, r3
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7,pc}
- thumb_func_end _vfprintf_r
-
- thumb_func_start cvt
-cvt:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- str r0, [sp, 0x18]
- adds r5, r2, 0
- adds r4, r1, 0
- mov r8, r3
- ldr r6, [sp, 0x3C]
- ldr r0, [sp, 0x44]
- mov r10, r0
- ldr r1, [sp, 0x48]
- mov r9, r1
- cmp r1, 0x66
- bne _080B39C2
- movs r7, 0x3
- b _080B39D2
-_080B39C2:
- mov r0, r9
- cmp r0, 0x65
- beq _080B39CC
- cmp r0, 0x45
- bne _080B39D0
-_080B39CC:
- movs r1, 0x1
- add r8, r1
-_080B39D0:
- movs r7, 0x2
-_080B39D2:
- lsls r0, r4, 31
- lsrs r0, 31
- cmp r0, 0
- beq _080B39E8
- adds r1, r5, 0
- adds r0, r4, 0
- bl __negdf2
- adds r5, r1, 0
- adds r4, r0, 0
- movs r0, 0x2D
-_080B39E8:
- ldr r1, [sp, 0x40]
- strb r0, [r1]
- mov r0, r8
- str r0, [sp]
- mov r1, r10
- str r1, [sp, 0x4]
- add r0, sp, 0x10
- str r0, [sp, 0x8]
- add r0, sp, 0x14
- str r0, [sp, 0xC]
- ldr r0, [sp, 0x18]
- adds r2, r5, 0
- adds r1, r4, 0
- adds r3, r7, 0
- bl _dtoa_r
- adds r7, r0, 0
- mov r1, r9
- cmp r1, 0x67
- beq _080B3A14
- cmp r1, 0x47
- bne _080B3A1C
-_080B3A14:
- movs r0, 0x1
- ands r6, r0
- cmp r6, 0
- beq _080B3A70
-_080B3A1C:
- mov r0, r8
- adds r6, r7, r0
- mov r1, r9
- cmp r1, 0x66
- bne _080B3A4C
- ldrb r0, [r7]
- cmp r0, 0x30
- bne _080B3A46
- ldr r3, _080B3A8C
- ldr r2, _080B3A88
- adds r1, r5, 0
- adds r0, r4, 0
- bl __nedf2
- cmp r0, 0
- beq _080B3A46
- mov r1, r8
- negs r0, r1
- adds r0, 0x1
- mov r1, r10
- str r0, [r1]
-_080B3A46:
- mov r1, r10
- ldr r0, [r1]
- adds r6, r0
-_080B3A4C:
- ldr r3, _080B3A8C
- ldr r2, _080B3A88
- adds r1, r5, 0
- adds r0, r4, 0
- bl __eqdf2
- cmp r0, 0
- bne _080B3A5E
- str r6, [sp, 0x14]
-_080B3A5E:
- ldr r0, [sp, 0x14]
- cmp r0, r6
- bcs _080B3A70
- movs r1, 0x30
-_080B3A66:
- strb r1, [r0]
- adds r0, 0x1
- str r0, [sp, 0x14]
- cmp r0, r6
- bcc _080B3A66
-_080B3A70:
- ldr r0, [sp, 0x14]
- subs r0, r7
- ldr r1, [sp, 0x4C]
- str r0, [r1]
- adds r0, r7, 0
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7,pc}
- .align 2, 0
- @ double 0.0
-_080B3A88: .4byte 0x00000000
-_080B3A8C: .4byte 0x00000000
- thumb_func_end cvt
-
- thumb_func_start exponent
-exponent:
- push {r4-r7,lr}
- sub sp, 0x134
- adds r7, r0, 0
- adds r6, r1, 0
- strb r2, [r7]
- adds r5, r7, 0x1
- cmp r6, 0
- bge _080B3AA6
- negs r6, r6
- movs r0, 0x2D
- b _080B3AA8
-_080B3AA6:
- movs r0, 0x2B
-_080B3AA8:
- strb r0, [r7, 0x1]
- adds r5, 0x1
- add r4, sp, 0x134
- cmp r6, 0x9
- ble _080B3AEA
-_080B3AB2:
- subs r4, 0x1
- adds r0, r6, 0
- movs r1, 0xA
- bl __modsi3
- adds r0, 0x30
- strb r0, [r4]
- adds r0, r6, 0
- movs r1, 0xA
- bl __divsi3
- adds r6, r0, 0
- cmp r6, 0x9
- bgt _080B3AB2
- subs r4, 0x1
- adds r0, 0x30
- strb r0, [r4]
- add r0, sp, 0x134
- cmp r4, r0
- bcs _080B3AF8
- adds r1, r0, 0
-_080B3ADC:
- ldrb r0, [r4]
- strb r0, [r5]
- adds r4, 0x1
- adds r5, 0x1
- cmp r4, r1
- bcc _080B3ADC
- b _080B3AF8
-_080B3AEA:
- movs r0, 0x30
- strb r0, [r5]
- adds r5, 0x1
- adds r0, r6, 0
- adds r0, 0x30
- strb r0, [r5]
- adds r5, 0x1
-_080B3AF8:
- subs r0, r5, r7
- add sp, 0x134
- pop {r4-r7,pc}
- thumb_func_end exponent
-
- .align 2, 0 @ don't pad with nop
- .section .text.vsprintf
-
- thumb_func_start vsprintf
-vsprintf:
- push {r4,r5,lr}
- sub sp, 0x58
- mov r4, sp
- movs r5, 0
- movs r3, 0x82
- lsls r3, 2
- strh r3, [r4, 0xC]
- str r0, [sp]
- str r0, [sp, 0x10]
- ldr r0, _080B3B2C
- str r0, [sp, 0x8]
- str r0, [sp, 0x14]
- ldr r0, _080B3B30
- ldr r0, [r0]
- str r0, [sp, 0x54]
- mov r0, sp
- bl vfprintf
- ldr r1, [sp]
- strb r5, [r1]
- add sp, 0x58
- pop {r4,r5,pc}
- .align 2, 0
-_080B3B2C: .4byte 0x7fffffff
-_080B3B30: .4byte _impure_ptr
- thumb_func_end vsprintf
-
- .align 2, 0 @ don't pad with nop
- .section .text.wsetup
-
- thumb_func_start __swsetup
-__swsetup:
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x54]
- cmp r0, 0
- bne _080B3B44
- ldr r0, _080B3B70
- ldr r0, [r0]
- str r0, [r4, 0x54]
-_080B3B44:
- ldr r1, [r4, 0x54]
- ldr r0, [r1, 0x38]
- cmp r0, 0
- bne _080B3B52
- adds r0, r1, 0
- bl __sinit
-_080B3B52:
- ldrh r1, [r4, 0xC]
- movs r0, 0x8
- ands r0, r1
- lsls r0, 16
- asrs r5, r0, 16
- cmp r5, 0
- bne _080B3BAC
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080B3B74
- movs r0, 0x1
- negs r0, r0
- b _080B3BDE
- .align 2, 0
-_080B3B70: .4byte _impure_ptr
-_080B3B74:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080B3BA4
- ldr r1, [r4, 0x30]
- cmp r1, 0
- beq _080B3B92
- adds r0, r4, 0
- adds r0, 0x40
- cmp r1, r0
- beq _080B3B90
- ldr r0, [r4, 0x54]
- bl _free_r
-_080B3B90:
- str r5, [r4, 0x30]
-_080B3B92:
- movs r0, 0x25
- negs r0, r0
- ldrh r1, [r4, 0xC]
- ands r0, r1
- movs r1, 0
- strh r0, [r4, 0xC]
- str r1, [r4, 0x4]
- ldr r0, [r4, 0x10]
- str r0, [r4]
-_080B3BA4:
- movs r0, 0x8
- ldrh r1, [r4, 0xC]
- orrs r0, r1
- strh r0, [r4, 0xC]
-_080B3BAC:
- ldr r0, [r4, 0x10]
- cmp r0, 0
- bne _080B3BB8
- adds r0, r4, 0
- bl __smakebuf
-_080B3BB8:
- ldrh r1, [r4, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B3BCE
- movs r0, 0
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x14]
- negs r0, r0
- str r0, [r4, 0x18]
- b _080B3BDC
-_080B3BCE:
- movs r0, 0x2
- ands r0, r1
- movs r1, 0
- cmp r0, 0
- bne _080B3BDA
- ldr r1, [r4, 0x14]
-_080B3BDA:
- str r1, [r4, 0x8]
-_080B3BDC:
- movs r0, 0
-_080B3BDE:
- pop {r4,r5,pc}
- thumb_func_end __swsetup
-
- .align 2, 0 @ don't pad with nop
- .section .text.dtoa
-
- thumb_func_start quorem
-quorem:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r7, [r1, 0x10]
- ldr r0, [r0, 0x10]
- cmp r0, r7
- bge _080B3BFC
- movs r0, 0
- b _080B3D30
-_080B3BFC:
- ldr r0, [sp, 0x4]
- adds r0, 0x14
- mov r8, r0
- subs r7, 0x1
- lsls r0, r7, 2
- mov r1, r8
- adds r1, r0
- str r1, [sp, 0xC]
- ldr r4, [sp]
- adds r4, 0x14
- adds r5, r4, r0
- ldr r1, [r1]
- adds r1, 0x1
- ldr r2, [r5]
- mov r10, r2
- mov r0, r10
- bl __udivsi3
- str r0, [sp, 0x8]
- mov r3, r8
- str r3, [sp, 0x14]
- str r4, [sp, 0x10]
- cmp r0, 0
- beq _080B3CA6
- movs r6, 0
- mov r9, r6
- ldr r0, _080B3C90
- mov r12, r0
-_080B3C34:
- mov r2, r8
- adds r2, 0x4
- mov r8, r2
- subs r2, 0x4
- ldm r2!, {r1}
- adds r0, r1, 0
- mov r3, r12
- ands r0, r3
- ldr r2, [sp, 0x8]
- muls r0, r2
- mov r3, r9
- adds r2, r0, r3
- lsrs r0, r1, 16
- ldr r3, [sp, 0x8]
- adds r1, r0, 0
- muls r1, r3
- lsrs r0, r2, 16
- adds r3, r1, r0
- lsrs r0, r3, 16
- mov r9, r0
- ldr r0, [r4]
- mov r1, r12
- ands r0, r1
- ands r2, r1
- subs r0, r2
- adds r2, r0, r6
- asrs r6, r2, 16
- ldr r0, [r4]
- lsrs r1, r0, 16
- mov r0, r12
- ands r3, r0
- subs r1, r3
- adds r0, r1, r6
- asrs r6, r0, 16
- strh r0, [r4]
- strh r2, [r4, 0x2]
- adds r4, 0x4
- ldr r1, [sp, 0xC]
- cmp r8, r1
- bls _080B3C34
- mov r2, r10
- cmp r2, 0
- bne _080B3CA6
- ldr r4, [sp, 0x10]
- b _080B3C96
- .align 2, 0
-_080B3C90: .4byte 0x0000ffff
-_080B3C94:
- subs r7, 0x1
-_080B3C96:
- subs r5, 0x4
- cmp r5, r4
- bls _080B3CA2
- ldr r0, [r5]
- cmp r0, 0
- beq _080B3C94
-_080B3CA2:
- ldr r3, [sp]
- str r7, [r3, 0x10]
-_080B3CA6:
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- bl __mcmp
- cmp r0, 0
- blt _080B3D2E
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- str r0, [sp, 0x8]
- movs r6, 0
- mov r9, r6
- ldr r4, [sp, 0x10]
- ldr r1, [sp, 0x14]
- mov r8, r1
- lsls r2, r7, 2
- mov r10, r2
- ldr r5, _080B3D18
-_080B3CC8:
- mov r3, r8
- adds r3, 0x4
- mov r8, r3
- subs r3, 0x4
- ldm r3!, {r1}
- adds r0, r1, 0
- ands r0, r5
- mov r3, r9
- adds r2, r0, r3
- lsrs r1, 16
- lsrs r0, r2, 16
- adds r3, r1, r0
- lsrs r0, r3, 16
- mov r9, r0
- ldr r1, [r4]
- adds r0, r1, 0
- ands r0, r5
- ands r2, r5
- subs r0, r2
- adds r2, r0, r6
- asrs r6, r2, 16
- lsrs r1, 16
- ands r3, r5
- subs r1, r3
- adds r0, r1, r6
- asrs r6, r0, 16
- strh r0, [r4]
- strh r2, [r4, 0x2]
- adds r4, 0x4
- ldr r1, [sp, 0xC]
- cmp r8, r1
- bls _080B3CC8
- ldr r4, [sp, 0x10]
- mov r2, r10
- adds r5, r4, r2
- ldr r0, [r5]
- cmp r0, 0
- bne _080B3D2E
- b _080B3D1E
- .align 2, 0
-_080B3D18: .4byte 0x0000ffff
-_080B3D1C:
- subs r7, 0x1
-_080B3D1E:
- subs r5, 0x4
- cmp r5, r4
- bls _080B3D2A
- ldr r0, [r5]
- cmp r0, 0
- beq _080B3D1C
-_080B3D2A:
- ldr r3, [sp]
- str r7, [r3, 0x10]
-_080B3D2E:
- ldr r0, [sp, 0x8]
-_080B3D30:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7,pc}
- thumb_func_end quorem
-
- thumb_func_start _dtoa_r
-_dtoa_r:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x84
- mov r10, r0
- str r3, [sp, 0xC]
- ldr r4, [sp, 0xAC]
- str r1, [sp, 0x40]
- str r2, [sp, 0x44]
- ldr r2, [r0, 0x40]
- cmp r2, 0
- beq _080B3D74
- ldr r0, [r0, 0x44]
- str r0, [r2, 0x4]
- mov r0, r10
- ldr r1, [r0, 0x44]
- movs r0, 0x1
- lsls r0, r1
- str r0, [r2, 0x8]
- mov r0, r10
- adds r1, r2, 0
- bl _Bfree
- movs r0, 0
- mov r1, r10
- str r0, [r1, 0x40]
-_080B3D74:
- movs r0, 0x80
- lsls r0, 24
- ldr r1, [sp, 0x40]
- ands r0, r1
- cmp r0, 0
- beq _080B3D90
- movs r0, 0x1
- str r0, [r4]
- ldr r0, _080B3D8C
- ands r1, r0
- str r1, [sp, 0x40]
- b _080B3D92
- .align 2, 0
-_080B3D8C: .4byte 0x7fffffff
-_080B3D90:
- str r0, [r4]
-_080B3D92:
- ldr r1, _080B3DD4
- ldr r2, [sp, 0x40]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, r1
- bne _080B3DE8
- ldr r0, _080B3DD8
- ldr r3, [sp, 0xA8]
- str r0, [r3]
- ldr r0, _080B3DDC
- mov r9, r0
- ldr r1, [sp, 0x44]
- cmp r1, 0
- bne _080B3DBA
- ldr r0, _080B3DE0
- ands r2, r0
- cmp r2, 0
- bne _080B3DBA
- ldr r2, _080B3DE4
- mov r9, r2
-_080B3DBA:
- ldr r3, [sp, 0xB0]
- cmp r3, 0
- beq _080B3E0C
- mov r1, r9
- ldrb r0, [r1, 0x3]
- adds r1, 0x3
- cmp r0, 0
- beq _080B3DCC
- adds r1, 0x5
-_080B3DCC:
- ldr r2, [sp, 0xB0]
- str r1, [r2]
- b _080B3E0C
- .align 2, 0
-_080B3DD4: .4byte 0x7ff00000
-_080B3DD8: .4byte 0x0000270f
-_080B3DDC: .4byte gUnknown_826FE6C
-_080B3DE0: .4byte 0x000fffff
-_080B3DE4: .4byte gUnknown_826FE60
-_080B3DE8:
- ldr r3, _080B3E18
- ldr r2, _080B3E14
- ldr r0, [sp, 0x40]
- ldr r1, [sp, 0x44]
- bl __eqdf2
- cmp r0, 0
- bne _080B3E20
- movs r0, 0x1
- ldr r3, [sp, 0xA8]
- str r0, [r3]
- ldr r0, _080B3E1C
- mov r9, r0
- ldr r1, [sp, 0xB0]
- cmp r1, 0
- beq _080B3E0C
- adds r0, 0x1
- str r0, [r1]
-_080B3E0C:
- mov r0, r9
- bl _080B4A26
- .align 2, 0
-_080B3E14: .4byte 0x00000000
-_080B3E18: .4byte 0x00000000
-_080B3E1C: .4byte gUnknown_826FE70
-_080B3E20:
- add r0, sp, 0x8
- str r0, [sp]
- mov r0, r10
- ldr r1, [sp, 0x40]
- ldr r2, [sp, 0x44]
- add r3, sp, 0x4
- bl _d2b
- str r0, [sp, 0x5C]
- ldr r2, [sp, 0x40]
- lsls r0, r2, 1
- lsrs r0, 21
- mov r8, r0
- cmp r0, 0
- beq _080B3E70
- ldr r0, [sp, 0x40]
- ldr r1, [sp, 0x44]
- str r0, [sp, 0x48]
- str r1, [sp, 0x4C]
- ldr r0, _080B3E64
- ldr r1, [sp, 0x48]
- ands r1, r0
- str r1, [sp, 0x48]
- ldr r0, _080B3E68
- adds r2, r1, 0
- orrs r2, r0
- str r2, [sp, 0x48]
- ldr r3, _080B3E6C
- add r8, r3
- movs r0, 0
- str r0, [sp, 0x58]
- ldr r6, [sp, 0x8]
- b _080B3ED0
- .align 2, 0
-_080B3E64: .4byte 0x000fffff
-_080B3E68: .4byte 0x3ff00000
-_080B3E6C: .4byte 0xfffffc01
-_080B3E70:
- ldr r1, [sp, 0x8]
- ldr r0, [sp, 0x4]
- adds r2, r1, r0
- ldr r3, _080B3E98
- adds r3, r2
- mov r8, r3
- adds r6, r1, 0
- cmp r3, 0x20
- ble _080B3EA0
- movs r0, 0x40
- subs r0, r3
- ldr r4, [sp, 0x40]
- lsls r4, r0
- ldr r1, _080B3E9C
- adds r0, r2, r1
- ldr r2, [sp, 0x44]
- lsrs r2, r0
- adds r0, r2, 0
- orrs r4, r0
- b _080B3EAA
- .align 2, 0
-_080B3E98: .4byte 0x00000432
-_080B3E9C: .4byte 0x00000412
-_080B3EA0:
- movs r0, 0x20
- mov r3, r8
- subs r0, r3
- ldr r4, [sp, 0x44]
- lsls r4, r0
-_080B3EAA:
- adds r0, r4, 0
- bl __floatsidf
- cmp r4, 0
- bge _080B3EBC
- ldr r3, _080B3F7C+4
- ldr r2, _080B3F7C
- bl __adddf3
-_080B3EBC:
- str r0, [sp, 0x48]
- str r1, [sp, 0x4C]
- ldr r1, _080B3F84
- ldr r0, [sp, 0x48]
- adds r1, r0, r1
- str r1, [sp, 0x48]
- ldr r2, _080B3F84+4
- add r8, r2
- movs r3, 0x1
- str r3, [sp, 0x58]
-_080B3ED0:
- ldr r2, _080B3F8C
- ldr r3, _080B3F8C+4
- ldr r0, [sp, 0x48]
- ldr r1, [sp, 0x4C]
- bl __subdf3
- ldr r2, _080B3F94
- ldr r3, _080B3F94+4
- bl __muldf3
- ldr r2, _080B3F9C
- ldr r3, _080B3F9C+4
- bl __adddf3
- adds r5, r1, 0
- adds r4, r0, 0
- mov r0, r8
- bl __floatsidf
- ldr r2, _080B3FA4
- ldr r3, _080B3FA4+4
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- adds r1, r5, 0
- adds r0, r4, 0
- bl __adddf3
- str r0, [sp, 0x6C]
- str r1, [sp, 0x70]
- bl __fixdfsi
- str r0, [sp, 0x24]
- ldr r2, _080B3FAC
- ldr r3, _080B3FAC+4
- ldr r0, [sp, 0x6C]
- ldr r1, [sp, 0x70]
- bl __ltdf2
- cmp r0, 0
- bge _080B3F40
- ldr r0, [sp, 0x24]
- bl __floatsidf
- adds r3, r1, 0
- adds r2, r0, 0
- ldr r0, [sp, 0x6C]
- ldr r1, [sp, 0x70]
- bl __nedf2
- cmp r0, 0
- beq _080B3F40
- ldr r0, [sp, 0x24]
- subs r0, 0x1
- str r0, [sp, 0x24]
-_080B3F40:
- movs r1, 0x1
- str r1, [sp, 0x2C]
- ldr r2, [sp, 0x24]
- cmp r2, 0x16
- bhi _080B3F6A
- ldr r1, _080B3FB4
- lsls r0, r2, 3
- adds r0, r1
- ldr r2, [r0]
- ldr r3, [r0, 0x4]
- ldr r0, [sp, 0x40]
- ldr r1, [sp, 0x44]
- bl __ltdf2
- cmp r0, 0
- bge _080B3F66
- ldr r3, [sp, 0x24]
- subs r3, 0x1
- str r3, [sp, 0x24]
-_080B3F66:
- movs r0, 0
- str r0, [sp, 0x2C]
-_080B3F6A:
- mov r1, r8
- subs r0, r6, r1
- subs r4, r0, 0x1
- cmp r4, 0
- blt _080B3FB8
- movs r2, 0
- str r2, [sp, 0x10]
- str r4, [sp, 0x34]
- b _080B3FC0
- .align 2, 0
-_080B3F7C: .8byte 0x0000000041f00000 @ 4294967296.0
-_080B3F84: .8byte 0xfffffbcdfe100000 @ -1.6742337954003907e+299
-_080B3F8C: .8byte 0x000000003ff80000 @ 1.5
-_080B3F94: .8byte 0x636f43613fd287a7 @ 0.289529654602168
-_080B3F9C: .8byte 0x8b60c8b33fc68a28 @ 0.1760912590558
-_080B3FA4: .8byte 0x509f79fb3fd34413 @ 0.301029995663981
-_080B3FAC: .8byte 0x0000000000000000 @ 0.0
-_080B3FB4: .4byte __mprec_tens
-_080B3FB8:
- negs r4, r4
- str r4, [sp, 0x10]
- movs r3, 0
- str r3, [sp, 0x34]
-_080B3FC0:
- ldr r0, [sp, 0x24]
- cmp r0, 0
- blt _080B3FD4
- movs r1, 0
- str r1, [sp, 0x14]
- str r0, [sp, 0x38]
- ldr r2, [sp, 0x34]
- adds r2, r0
- str r2, [sp, 0x34]
- b _080B3FE4
-_080B3FD4:
- ldr r3, [sp, 0x10]
- ldr r0, [sp, 0x24]
- subs r3, r0
- str r3, [sp, 0x10]
- negs r1, r0
- str r1, [sp, 0x14]
- movs r2, 0
- str r2, [sp, 0x38]
-_080B3FE4:
- ldr r3, [sp, 0xC]
- cmp r3, 0x9
- bls _080B3FEE
- movs r0, 0
- str r0, [sp, 0xC]
-_080B3FEE:
- movs r5, 0x1
- ldr r1, [sp, 0xC]
- cmp r1, 0x5
- ble _080B3FFC
- subs r1, 0x4
- str r1, [sp, 0xC]
- movs r5, 0
-_080B3FFC:
- movs r2, 0x1
- str r2, [sp, 0x30]
- ldr r3, [sp, 0xC]
- cmp r3, 0x5
- bhi _080B4076
- lsls r0, r3, 2
- ldr r1, _080B4010
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B4010: .4byte _080B4014
- .align 2, 0
-_080B4014:
- .4byte _080B402C
- .4byte _080B402C
- .4byte _080B403E
- .4byte _080B405A
- .4byte _080B4042
- .4byte _080B405E
-_080B402C:
- movs r0, 0x1
- negs r0, r0
- str r0, [sp, 0x18]
- str r0, [sp, 0x20]
- movs r1, 0x12
- mov r8, r1
- movs r2, 0
- str r2, [sp, 0xA4]
- b _080B4076
-_080B403E:
- movs r3, 0
- str r3, [sp, 0x30]
-_080B4042:
- ldr r0, [sp, 0xA4]
- cmp r0, 0
- bgt _080B404C
- movs r1, 0x1
- str r1, [sp, 0xA4]
-_080B404C:
- ldr r2, [sp, 0xA4]
- mov r8, r2
- mov r3, r8
- str r3, [sp, 0x20]
- mov r0, r8
- str r0, [sp, 0x18]
- b _080B4076
-_080B405A:
- movs r1, 0
- str r1, [sp, 0x30]
-_080B405E:
- ldr r2, [sp, 0xA4]
- ldr r3, [sp, 0x24]
- adds r0, r2, r3
- adds r1, r0, 0x1
- mov r8, r1
- mov r2, r8
- str r2, [sp, 0x18]
- str r0, [sp, 0x20]
- cmp r1, 0
- bgt _080B4076
- movs r3, 0x1
- mov r8, r3
-_080B4076:
- movs r4, 0x4
- movs r0, 0
- mov r1, r10
- str r0, [r1, 0x44]
- mov r2, r8
- cmp r2, 0x17
- bls _080B4096
- movs r1, 0
-_080B4086:
- adds r1, 0x1
- lsls r4, 1
- adds r0, r4, 0
- adds r0, 0x14
- cmp r0, r8
- bls _080B4086
- mov r3, r10
- str r1, [r3, 0x44]
-_080B4096:
- mov r0, r10
- ldr r1, [r0, 0x44]
- bl _Balloc
- mov r1, r10
- str r0, [r1, 0x40]
- str r0, [sp, 0x74]
- mov r9, r0
- ldr r2, [sp, 0x18]
- cmp r2, 0xE
- bls _080B40AE
- b _080B4420
-_080B40AE:
- cmp r5, 0
- bne _080B40B4
- b _080B4420
-_080B40B4:
- ldr r0, [sp, 0x40]
- ldr r1, [sp, 0x44]
- str r0, [sp, 0x78]
- str r1, [sp, 0x7C]
- str r0, [sp, 0x48]
- str r1, [sp, 0x4C]
- ldr r1, [sp, 0x24]
- str r1, [sp, 0x28]
- str r2, [sp, 0x1C]
- movs r7, 0x2
- cmp r1, 0
- ble _080B4144
- ldr r0, _080B413C
- movs r2, 0xF
- ands r1, r2
- lsls r1, 3
- adds r3, r1, r0
- ldr r0, [r3]
- ldr r1, [r3, 0x4]
- str r0, [sp, 0x6C]
- str r1, [sp, 0x70]
- ldr r1, [sp, 0x24]
- asrs r4, r1, 4
- movs r0, 0x10
- ands r0, r4
- cmp r0, 0
- beq _080B4100
- ands r4, r2
- ldr r0, _080B4140
- ldr r2, [r0, 0x20]
- ldr r3, [r0, 0x24]
- ldr r0, [sp, 0x78]
- ldr r1, [sp, 0x7C]
- bl __divdf3
- str r0, [sp, 0x40]
- str r1, [sp, 0x44]
- movs r7, 0x3
-_080B4100:
- cmp r4, 0
- beq _080B4128
- ldr r5, _080B4140
-_080B4106:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080B4120
- adds r7, 0x1
- ldr r2, [r5]
- ldr r3, [r5, 0x4]
- ldr r0, [sp, 0x6C]
- ldr r1, [sp, 0x70]
- bl __muldf3
- str r0, [sp, 0x6C]
- str r1, [sp, 0x70]
-_080B4120:
- asrs r4, 1
- adds r5, 0x8
- cmp r4, 0
- bne _080B4106
-_080B4128:
- ldr r0, [sp, 0x40]
- ldr r1, [sp, 0x44]
- ldr r2, [sp, 0x6C]
- ldr r3, [sp, 0x70]
- bl __divdf3
- str r0, [sp, 0x40]
- str r1, [sp, 0x44]
- b _080B4190
- .align 2, 0
-_080B413C: .4byte __mprec_tens
-_080B4140: .4byte __mprec_bigtens
-_080B4144:
- ldr r2, [sp, 0x24]
- negs r6, r2
- cmp r6, 0
- beq _080B4190
- ldr r1, _080B4238
- movs r0, 0xF
- ands r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- ldr r2, [sp, 0x78]
- ldr r3, [sp, 0x7C]
- bl __muldf3
- str r0, [sp, 0x40]
- str r1, [sp, 0x44]
- asrs r4, r6, 4
- cmp r4, 0
- beq _080B4190
- ldr r5, _080B423C
-_080B416E:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080B4188
- adds r7, 0x1
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- ldr r2, [sp, 0x40]
- ldr r3, [sp, 0x44]
- bl __muldf3
- str r0, [sp, 0x40]
- str r1, [sp, 0x44]
-_080B4188:
- asrs r4, 1
- adds r5, 0x8
- cmp r4, 0
- bne _080B416E
-_080B4190:
- ldr r3, [sp, 0x2C]
- cmp r3, 0
- beq _080B41CE
- ldr r2, _080B4240
- ldr r3, _080B4244
- ldr r0, [sp, 0x40]
- ldr r1, [sp, 0x44]
- bl __ltdf2
- cmp r0, 0
- bge _080B41CE
- ldr r0, [sp, 0x18]
- cmp r0, 0
- ble _080B41CE
- ldr r1, [sp, 0x20]
- cmp r1, 0
- bgt _080B41B4
- b _080B440C
-_080B41B4:
- str r1, [sp, 0x18]
- ldr r2, [sp, 0x24]
- subs r2, 0x1
- str r2, [sp, 0x24]
- ldr r0, _080B4248
- ldr r1, _080B424C
- ldr r2, [sp, 0x40]
- ldr r3, [sp, 0x44]
- bl __muldf3
- str r0, [sp, 0x40]
- str r1, [sp, 0x44]
- adds r7, 0x1
-_080B41CE:
- adds r0, r7, 0
- bl __floatsidf
- ldr r2, [sp, 0x40]
- ldr r3, [sp, 0x44]
- bl __muldf3
- ldr r2, _080B4250
- ldr r3, _080B4254
- bl __adddf3
- str r0, [sp, 0x50]
- str r1, [sp, 0x54]
- ldr r0, _080B4258
- ldr r3, [sp, 0x50]
- adds r0, r3, r0
- str r0, [sp, 0x50]
- ldr r1, [sp, 0x18]
- cmp r1, 0
- bne _080B4264
- movs r2, 0
- str r2, [sp, 0x64]
- movs r3, 0
- str r3, [sp, 0x68]
- ldr r2, _080B425C
- ldr r3, _080B4260
- ldr r0, [sp, 0x40]
- ldr r1, [sp, 0x44]
- bl __subdf3
- adds r5, r1, 0
- adds r4, r0, 0
- ldr r2, [sp, 0x50]
- ldr r3, [sp, 0x54]
- bl __gtdf2
- cmp r0, 0
- ble _080B421C
- b _080B4796
-_080B421C:
- ldr r0, [sp, 0x50]
- ldr r1, [sp, 0x54]
- bl __negdf2
- adds r3, r1, 0
- adds r2, r0, 0
- adds r1, r5, 0
- adds r0, r4, 0
- bl __ltdf2
- cmp r0, 0
- bge _080B4236
- b _080B478E
-_080B4236:
- b _080B440C
- .align 2, 0
-_080B4238: .4byte __mprec_tens @ tens
-_080B423C: .4byte __mprec_bigtens
-_080B4240: .4byte 0x3ff00000
-_080B4244: .4byte 0x00000000
-_080B4248: .4byte 0x40240000
-_080B424C: .4byte 0x00000000
-_080B4250: .4byte 0x401c0000
-_080B4254: .4byte 0x00000000
-_080B4258: .4byte 0xfcc00000
-_080B425C: .4byte 0x40140000
-_080B4260: .4byte 0x00000000
-_080B4264:
- ldr r0, [sp, 0x30]
- cmp r0, 0
- beq _080B4334
- ldr r1, _080B4294
- ldr r0, [sp, 0x18]
- subs r0, 0x1
- lsls r0, 3
- adds r0, r1
- ldr r2, [r0]
- ldr r3, [r0, 0x4]
- ldr r0, _080B4298
- ldr r1, _080B429C
- bl __divdf3
- ldr r2, [sp, 0x50]
- ldr r3, [sp, 0x54]
- bl __subdf3
- str r0, [sp, 0x50]
- str r1, [sp, 0x54]
- movs r1, 0
- mov r8, r1
- b _080B42C0
- .align 2, 0
-_080B4294: .4byte __mprec_tens
-_080B4298: .4byte 0x3fe00000
-_080B429C: .4byte 0x00000000
-_080B42A0:
- ldr r1, _080B4328
- ldr r0, _080B4324
- ldr r2, [sp, 0x50]
- ldr r3, [sp, 0x54]
- bl __muldf3
- str r0, [sp, 0x50]
- str r1, [sp, 0x54]
- ldr r1, _080B4328
- ldr r0, _080B4324
- adds r3, r5, 0
- adds r2, r4, 0
- bl __muldf3
- str r0, [sp, 0x40]
- str r1, [sp, 0x44]
-_080B42C0:
- ldr r0, [sp, 0x40]
- ldr r1, [sp, 0x44]
- bl __fixdfsi
- adds r6, r0, 0
- bl __floatsidf
- adds r3, r1, 0
- adds r2, r0, 0
- ldr r0, [sp, 0x40]
- ldr r1, [sp, 0x44]
- bl __subdf3
- adds r5, r1, 0
- adds r4, r0, 0
- adds r0, r6, 0
- adds r0, 0x30
- mov r2, r9
- strb r0, [r2]
- movs r3, 0x1
- add r9, r3
- adds r1, r5, 0
- adds r0, r4, 0
- ldr r2, [sp, 0x50]
- ldr r3, [sp, 0x54]
- bl __ltdf2
- cmp r0, 0
- bge _080B42FC
- b _080B4A06
-_080B42FC:
- ldr r0, _080B432C
- ldr r1, _080B4330
- adds r3, r5, 0
- adds r2, r4, 0
- bl __subdf3
- ldr r2, [sp, 0x50]
- ldr r3, [sp, 0x54]
- bl __ltdf2
- cmp r0, 0
- bge _080B4316
- b _080B4520
-_080B4316:
- movs r0, 0x1
- add r8, r0
- ldr r1, [sp, 0x18]
- cmp r8, r1
- blt _080B42A0
- b _080B440C
- .align 2, 0
-_080B4324: .4byte 0x40240000
-_080B4328: .4byte 0x00000000
-_080B432C: .4byte 0x3ff00000
-_080B4330: .4byte 0x00000000
-_080B4334:
- ldr r1, _080B4354
- ldr r0, [sp, 0x18]
- subs r0, 0x1
- lsls r0, 3
- adds r0, r1
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- ldr r2, [sp, 0x50]
- ldr r3, [sp, 0x54]
- bl __muldf3
- str r0, [sp, 0x50]
- str r1, [sp, 0x54]
- movs r2, 0x1
- mov r8, r2
- b _080B436C
- .align 2, 0
-_080B4354: .4byte __mprec_tens
-_080B4358:
- movs r3, 0x1
- add r8, r3
- ldr r1, _080B4400
- ldr r0, _080B43FC
- adds r3, r5, 0
- adds r2, r4, 0
- bl __muldf3
- str r0, [sp, 0x40]
- str r1, [sp, 0x44]
-_080B436C:
- ldr r0, [sp, 0x40]
- ldr r1, [sp, 0x44]
- bl __fixdfsi
- adds r6, r0, 0
- bl __floatsidf
- adds r3, r1, 0
- adds r2, r0, 0
- ldr r0, [sp, 0x40]
- ldr r1, [sp, 0x44]
- bl __subdf3
- adds r5, r1, 0
- adds r4, r0, 0
- adds r0, r6, 0
- adds r0, 0x30
- mov r1, r9
- strb r0, [r1]
- movs r2, 0x1
- add r9, r2
- ldr r3, [sp, 0x18]
- cmp r8, r3
- bne _080B4358
- ldr r6, _080B4404
- ldr r7, _080B4408
- adds r1, r7, 0
- adds r0, r6, 0
- ldr r2, [sp, 0x50]
- ldr r3, [sp, 0x54]
- bl __adddf3
- adds r3, r1, 0
- adds r2, r0, 0
- adds r1, r5, 0
- adds r0, r4, 0
- bl __gtdf2
- cmp r0, 0
- ble _080B43BE
- b _080B4520
-_080B43BE:
- adds r1, r7, 0
- adds r0, r6, 0
- ldr r2, [sp, 0x50]
- ldr r3, [sp, 0x54]
- bl __subdf3
- adds r3, r1, 0
- adds r2, r0, 0
- adds r1, r5, 0
- adds r0, r4, 0
- bl __ltdf2
- cmp r0, 0
- bge _080B440C
- movs r0, 0x1
- negs r0, r0
- add r9, r0
- mov r1, r9
- ldrb r1, [r1]
- cmp r1, 0x30
- beq _080B43EA
- b _080B4546
-_080B43EA:
- movs r2, 0x1
- negs r2, r2
- add r9, r2
- mov r3, r9
- ldrb r3, [r3]
- cmp r3, 0x30
- beq _080B43EA
- b _080B4546
- .align 2, 0
-_080B43FC: .4byte 0x40240000
-_080B4400: .4byte 0x00000000
-_080B4404: .4byte 0x3fe00000
-_080B4408: .4byte 0x00000000
-_080B440C:
- ldr r1, [sp, 0x74]
- mov r9, r1
- ldr r2, [sp, 0x48]
- ldr r3, [sp, 0x4C]
- str r2, [sp, 0x40]
- str r3, [sp, 0x44]
- ldr r3, [sp, 0x28]
- str r3, [sp, 0x24]
- ldr r0, [sp, 0x1C]
- str r0, [sp, 0x18]
-_080B4420:
- ldr r0, [sp, 0x4]
- cmp r0, 0
- bge _080B4428
- b _080B455C
-_080B4428:
- ldr r1, [sp, 0x24]
- cmp r1, 0xE
- ble _080B4430
- b _080B455C
-_080B4430:
- ldr r1, _080B447C
- ldr r2, [sp, 0x24]
- lsls r0, r2, 3
- adds r0, r1
- ldr r1, [r0]
- ldr r2, [r0, 0x4]
- str r1, [sp, 0x6C]
- str r2, [sp, 0x70]
- ldr r2, [sp, 0xA4]
- cmp r2, 0
- bge _080B4488
- ldr r3, [sp, 0x18]
- cmp r3, 0
- bgt _080B4488
- movs r0, 0
- str r0, [sp, 0x64]
- movs r1, 0
- str r1, [sp, 0x68]
- cmp r3, 0
- bge _080B445A
- b _080B478E
-_080B445A:
- ldr r2, _080B4480
- ldr r3, _080B4480+4
- ldr r0, [sp, 0x6C]
- ldr r1, [sp, 0x70]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- ldr r0, [sp, 0x40]
- ldr r1, [sp, 0x44]
- bl __ledf2
- cmp r0, 0
- bgt _080B4478
- b _080B478E
-_080B4478:
- b _080B4796
- .align 2, 0
-_080B447C: .4byte __mprec_tens
-_080B4480: .8byte 0x0000000040140000
-_080B4488:
- movs r2, 0x1
- mov r8, r2
- b _080B44AC
-_080B448E:
- ldr r1, _080B454C+4
- ldr r0, _080B454C
- bl __muldf3
- str r0, [sp, 0x40]
- str r1, [sp, 0x44]
- ldr r2, _080B4554
- ldr r3, _080B4554+4
- bl __eqdf2
- cmp r0, 0
- bne _080B44A8
- b _080B4A06
-_080B44A8:
- movs r3, 0x1
- add r8, r3
-_080B44AC:
- ldr r0, [sp, 0x40]
- ldr r1, [sp, 0x44]
- ldr r2, [sp, 0x6C]
- ldr r3, [sp, 0x70]
- bl __divdf3
- bl __fixdfsi
- adds r6, r0, 0
- bl __floatsidf
- ldr r2, [sp, 0x6C]
- ldr r3, [sp, 0x70]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- ldr r0, [sp, 0x40]
- ldr r1, [sp, 0x44]
- bl __subdf3
- adds r3, r1, 0
- adds r2, r0, 0
- adds r0, r6, 0
- adds r0, 0x30
- mov r1, r9
- strb r0, [r1]
- movs r0, 0x1
- add r9, r0
- ldr r1, [sp, 0x18]
- cmp r8, r1
- bne _080B448E
- adds r1, r3, 0
- adds r0, r2, 0
- bl __adddf3
- adds r5, r1, 0
- adds r4, r0, 0
- ldr r2, [sp, 0x6C]
- ldr r3, [sp, 0x70]
- bl __gtdf2
- cmp r0, 0
- bgt _080B4520
- adds r1, r5, 0
- adds r0, r4, 0
- ldr r2, [sp, 0x6C]
- ldr r3, [sp, 0x70]
- bl __eqdf2
- cmp r0, 0
- beq _080B4516
- b _080B4A06
-_080B4516:
- movs r0, 0x1
- ands r0, r6
- cmp r0, 0
- bne _080B4520
- b _080B4A06
-_080B4520:
- movs r0, 0x30
-_080B4522:
- movs r2, 0x1
- negs r2, r2
- add r9, r2
- mov r3, r9
- ldrb r3, [r3]
- cmp r3, 0x39
- bne _080B453E
- ldr r1, [sp, 0x74]
- cmp r9, r1
- bne _080B4522
- ldr r2, [sp, 0x24]
- adds r2, 0x1
- str r2, [sp, 0x24]
- strb r0, [r1]
-_080B453E:
- mov r3, r9
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
-_080B4546:
- movs r0, 0x1
- add r9, r0
- b _080B4A06
- .align 2, 0
-_080B454C: .8byte 0x0000000040240000 @ 10.0
-_080B4554: .8byte 0x0000000000000000 @ 0.0
-_080B455C:
- ldr r5, [sp, 0x10]
- ldr r6, [sp, 0x14]
- movs r1, 0
- str r1, [sp, 0x60]
- movs r2, 0
- str r2, [sp, 0x64]
- ldr r3, [sp, 0x30]
- cmp r3, 0
- beq _080B45D2
- ldr r1, [sp, 0xC]
- cmp r1, 0x1
- bgt _080B4590
- ldr r2, [sp, 0x58]
- cmp r2, 0
- beq _080B4588
- ldr r3, _080B4584
- adds r3, r0
- mov r8, r3
- b _080B45BC
- .align 2, 0
-_080B4584: .4byte 0x00000433
-_080B4588:
- ldr r1, [sp, 0x8]
- movs r0, 0x36
- subs r0, r1
- b _080B45BA
-_080B4590:
- ldr r4, [sp, 0x18]
- subs r4, 0x1
- ldr r0, [sp, 0x14]
- cmp r0, r4
- blt _080B459E
- subs r6, r0, r4
- b _080B45AE
-_080B459E:
- ldr r1, [sp, 0x14]
- subs r4, r1
- ldr r2, [sp, 0x38]
- adds r2, r4
- str r2, [sp, 0x38]
- adds r1, r4
- str r1, [sp, 0x14]
- movs r6, 0
-_080B45AE:
- ldr r3, [sp, 0x18]
- mov r8, r3
- cmp r3, 0
- bge _080B45BC
- subs r5, r3
- movs r0, 0
-_080B45BA:
- mov r8, r0
-_080B45BC:
- ldr r1, [sp, 0x10]
- add r1, r8
- str r1, [sp, 0x10]
- ldr r2, [sp, 0x34]
- add r2, r8
- str r2, [sp, 0x34]
- mov r0, r10
- movs r1, 0x1
- bl _i2b
- str r0, [sp, 0x64]
-_080B45D2:
- cmp r5, 0
- ble _080B45F4
- ldr r3, [sp, 0x34]
- cmp r3, 0
- ble _080B45F4
- mov r8, r3
- cmp r8, r5
- ble _080B45E4
- mov r8, r5
-_080B45E4:
- ldr r0, [sp, 0x10]
- mov r1, r8
- subs r0, r1
- str r0, [sp, 0x10]
- subs r5, r1
- ldr r2, [sp, 0x34]
- subs r2, r1
- str r2, [sp, 0x34]
-_080B45F4:
- ldr r3, [sp, 0x14]
- cmp r3, 0
- ble _080B4642
- ldr r0, [sp, 0x30]
- cmp r0, 0
- beq _080B4636
- cmp r6, 0
- ble _080B4626
- mov r0, r10
- ldr r1, [sp, 0x64]
- adds r2, r6, 0
- bl _pow5mult
- str r0, [sp, 0x64]
- mov r0, r10
- ldr r1, [sp, 0x64]
- ldr r2, [sp, 0x5C]
- bl _multiply
- adds r4, r0, 0
- mov r0, r10
- ldr r1, [sp, 0x5C]
- bl _Bfree
- str r4, [sp, 0x5C]
-_080B4626:
- ldr r1, [sp, 0x14]
- subs r4, r1, r6
- cmp r4, 0
- beq _080B4642
- mov r0, r10
- ldr r1, [sp, 0x5C]
- adds r2, r4, 0
- b _080B463C
-_080B4636:
- mov r0, r10
- ldr r1, [sp, 0x5C]
- ldr r2, [sp, 0x14]
-_080B463C:
- bl _pow5mult
- str r0, [sp, 0x5C]
-_080B4642:
- mov r0, r10
- movs r1, 0x1
- bl _i2b
- str r0, [sp, 0x68]
- ldr r2, [sp, 0x38]
- cmp r2, 0
- ble _080B465C
- mov r0, r10
- ldr r1, [sp, 0x68]
- bl _pow5mult
- str r0, [sp, 0x68]
-_080B465C:
- ldr r3, [sp, 0xC]
- cmp r3, 0x1
- bgt _080B4698
- ldr r0, [sp, 0x44]
- cmp r0, 0
- bne _080B4694
- ldr r0, _080B468C
- ldr r1, [sp, 0x40]
- ands r0, r1
- cmp r0, 0
- bne _080B4694
- ldr r0, _080B4690
- ands r1, r0
- cmp r1, 0
- beq _080B4694
- ldr r1, [sp, 0x10]
- adds r1, 0x1
- str r1, [sp, 0x10]
- ldr r2, [sp, 0x34]
- adds r2, 0x1
- str r2, [sp, 0x34]
- movs r3, 0x1
- str r3, [sp, 0x3C]
- b _080B4698
- .align 2, 0
-_080B468C: .4byte 0x000fffff
-_080B4690: .4byte 0x7ff00000
-_080B4694:
- movs r0, 0
- str r0, [sp, 0x3C]
-_080B4698:
- ldr r1, [sp, 0x38]
- cmp r1, 0
- beq _080B46C4
- ldr r2, [sp, 0x68]
- ldr r1, [r2, 0x10]
- subs r1, 0x1
- lsls r1, 2
- adds r0, r2, 0
- adds r0, 0x14
- adds r0, r1
- ldr r0, [r0]
- bl _hi0bits
- ldr r1, [sp, 0x34]
- adds r1, 0x20
- subs r1, r0
- mov r8, r1
- movs r0, 0x1F
- mov r3, r8
- ands r3, r0
- mov r8, r3
- b _080B46D2
-_080B46C4:
- ldr r0, [sp, 0x34]
- adds r0, 0x1
- mov r8, r0
- movs r0, 0x1F
- mov r1, r8
- ands r1, r0
- mov r8, r1
-_080B46D2:
- mov r2, r8
- cmp r2, 0
- beq _080B46DE
- movs r0, 0x20
- subs r2, r0, r2
- mov r8, r2
-_080B46DE:
- mov r3, r8
- cmp r3, 0x4
- ble _080B46EA
- movs r0, 0x4
- negs r0, r0
- b _080B46F2
-_080B46EA:
- mov r3, r8
- cmp r3, 0x3
- bgt _080B4702
- movs r0, 0x1C
-_080B46F2:
- add r8, r0
- ldr r1, [sp, 0x10]
- add r1, r8
- str r1, [sp, 0x10]
- add r5, r8
- ldr r2, [sp, 0x34]
- add r2, r8
- str r2, [sp, 0x34]
-_080B4702:
- ldr r3, [sp, 0x10]
- cmp r3, 0
- ble _080B4714
- mov r0, r10
- ldr r1, [sp, 0x5C]
- adds r2, r3, 0
- bl _lshift
- str r0, [sp, 0x5C]
-_080B4714:
- ldr r0, [sp, 0x34]
- cmp r0, 0
- ble _080B4726
- mov r0, r10
- ldr r1, [sp, 0x68]
- ldr r2, [sp, 0x34]
- bl _lshift
- str r0, [sp, 0x68]
-_080B4726:
- ldr r1, [sp, 0x2C]
- cmp r1, 0
- beq _080B4764
- ldr r0, [sp, 0x5C]
- ldr r1, [sp, 0x68]
- bl __mcmp
- cmp r0, 0
- bge _080B4764
- ldr r2, [sp, 0x24]
- subs r2, 0x1
- str r2, [sp, 0x24]
- mov r0, r10
- ldr r1, [sp, 0x5C]
- movs r2, 0xA
- movs r3, 0
- bl _multadd
- str r0, [sp, 0x5C]
- ldr r3, [sp, 0x30]
- cmp r3, 0
- beq _080B4760
- mov r0, r10
- ldr r1, [sp, 0x64]
- movs r2, 0xA
- movs r3, 0
- bl _multadd
- str r0, [sp, 0x64]
-_080B4760:
- ldr r0, [sp, 0x20]
- str r0, [sp, 0x18]
-_080B4764:
- ldr r1, [sp, 0x18]
- cmp r1, 0
- bgt _080B47A8
- ldr r2, [sp, 0xC]
- cmp r2, 0x2
- ble _080B47A8
- cmp r1, 0
- blt _080B478E
- mov r0, r10
- ldr r1, [sp, 0x68]
- movs r2, 0x5
- movs r3, 0
- bl _multadd
- str r0, [sp, 0x68]
- ldr r0, [sp, 0x5C]
- ldr r1, [sp, 0x68]
- bl __mcmp
- cmp r0, 0
- bgt _080B4796
-_080B478E:
- ldr r3, [sp, 0xA4]
- mvns r3, r3
- str r3, [sp, 0x24]
- b _080B49DE
-_080B4796:
- movs r0, 0x31
- mov r1, r9
- strb r0, [r1]
- movs r2, 0x1
- add r9, r2
- ldr r3, [sp, 0x24]
- adds r3, 0x1
- str r3, [sp, 0x24]
- b _080B49DE
-_080B47A8:
- ldr r0, [sp, 0x30]
- cmp r0, 0
- bne _080B47B0
- b _080B4926
-_080B47B0:
- cmp r5, 0
- ble _080B47C0
- mov r0, r10
- ldr r1, [sp, 0x64]
- adds r2, r5, 0
- bl _lshift
- str r0, [sp, 0x64]
-_080B47C0:
- ldr r1, [sp, 0x64]
- str r1, [sp, 0x60]
- ldr r2, [sp, 0x3C]
- cmp r2, 0
- beq _080B47F2
- ldr r1, [r1, 0x4]
- mov r0, r10
- bl _Balloc
- str r0, [sp, 0x64]
- adds r0, 0xC
- ldr r1, [sp, 0x60]
- adds r1, 0xC
- ldr r3, [sp, 0x60]
- ldr r2, [r3, 0x10]
- lsls r2, 2
- adds r2, 0x8
- bl memcpy
- mov r0, r10
- ldr r1, [sp, 0x64]
- movs r2, 0x1
- bl _lshift
- str r0, [sp, 0x64]
-_080B47F2:
- movs r0, 0x1
- mov r8, r0
- mov r1, r8
- ldr r2, [sp, 0x44]
- ands r2, r1
- str r2, [sp, 0x80]
- b _080B4848
-_080B4800:
- mov r0, r10
- ldr r1, [sp, 0x5C]
- movs r2, 0xA
- movs r3, 0
- bl _multadd
- str r0, [sp, 0x5C]
- ldr r3, [sp, 0x60]
- ldr r0, [sp, 0x64]
- cmp r3, r0
- bne _080B4828
- mov r0, r10
- ldr r1, [sp, 0x64]
- movs r2, 0xA
- movs r3, 0
- bl _multadd
- str r0, [sp, 0x64]
- str r0, [sp, 0x60]
- b _080B4844
-_080B4828:
- mov r0, r10
- ldr r1, [sp, 0x60]
- movs r2, 0xA
- movs r3, 0
- bl _multadd
- str r0, [sp, 0x60]
- mov r0, r10
- ldr r1, [sp, 0x64]
- movs r2, 0xA
- movs r3, 0
- bl _multadd
- str r0, [sp, 0x64]
-_080B4844:
- movs r1, 0x1
- add r8, r1
-_080B4848:
- ldr r0, [sp, 0x5C]
- ldr r1, [sp, 0x68]
- bl quorem
- adds r7, r0, 0
- adds r7, 0x30
- ldr r0, [sp, 0x5C]
- ldr r1, [sp, 0x60]
- bl __mcmp
- adds r4, r0, 0
- mov r0, r10
- ldr r1, [sp, 0x68]
- ldr r2, [sp, 0x64]
- bl __mdiff
- adds r5, r0, 0
- ldr r0, [r5, 0xC]
- cmp r0, 0
- bne _080B487C
- ldr r0, [sp, 0x5C]
- adds r1, r5, 0
- bl __mcmp
- adds r6, r0, 0
- b _080B487E
-_080B487C:
- movs r6, 0x1
-_080B487E:
- mov r0, r10
- adds r1, r5, 0
- bl _Bfree
- cmp r6, 0
- bne _080B48AA
- ldr r2, [sp, 0xC]
- cmp r2, 0
- bne _080B48AA
- ldr r3, [sp, 0x80]
- cmp r3, 0
- bne _080B48AA
- cmp r7, 0x39
- beq _080B48FC
- cmp r4, 0
- ble _080B48A0
- adds r7, 0x1
-_080B48A0:
- mov r0, r9
- strb r7, [r0]
- movs r1, 0x1
- add r9, r1
- b _080B49DE
-_080B48AA:
- cmp r4, 0
- blt _080B48BE
- cmp r4, 0
- bne _080B48F4
- ldr r2, [sp, 0xC]
- cmp r2, 0
- bne _080B48F4
- ldr r3, [sp, 0x80]
- cmp r3, 0
- bne _080B48F4
-_080B48BE:
- cmp r6, 0
- ble _080B48EE
- mov r0, r10
- ldr r1, [sp, 0x5C]
- movs r2, 0x1
- bl _lshift
- str r0, [sp, 0x5C]
- ldr r1, [sp, 0x68]
- bl __mcmp
- adds r6, r0, 0
- cmp r6, 0
- bgt _080B48E8
- cmp r6, 0
- bne _080B48EE
- adds r0, r7, 0
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B48EE
-_080B48E8:
- adds r7, 0x1
- cmp r7, 0x3A
- beq _080B48FC
-_080B48EE:
- mov r2, r9
- strb r7, [r2]
- b _080B49A6
-_080B48F4:
- cmp r6, 0
- ble _080B4914
- cmp r7, 0x39
- bne _080B4908
-_080B48FC:
- movs r0, 0x39
- mov r1, r9
- strb r0, [r1]
- movs r2, 0x1
- add r9, r2
- b _080B497C
-_080B4908:
- adds r0, r7, 0x1
- mov r3, r9
- strb r0, [r3]
- movs r0, 0x1
- add r9, r0
- b _080B49DE
-_080B4914:
- mov r1, r9
- strb r7, [r1]
- movs r2, 0x1
- add r9, r2
- ldr r3, [sp, 0x18]
- cmp r8, r3
- beq _080B4924
- b _080B4800
-_080B4924:
- b _080B4958
-_080B4926:
- movs r0, 0x1
- mov r8, r0
- b _080B493E
-_080B492C:
- mov r0, r10
- ldr r1, [sp, 0x5C]
- movs r2, 0xA
- movs r3, 0
- bl _multadd
- str r0, [sp, 0x5C]
- movs r1, 0x1
- add r8, r1
-_080B493E:
- ldr r0, [sp, 0x5C]
- ldr r1, [sp, 0x68]
- bl quorem
- adds r7, r0, 0
- adds r7, 0x30
- mov r2, r9
- strb r7, [r2]
- movs r3, 0x1
- add r9, r3
- ldr r0, [sp, 0x18]
- cmp r8, r0
- blt _080B492C
-_080B4958:
- mov r0, r10
- ldr r1, [sp, 0x5C]
- movs r2, 0x1
- bl _lshift
- str r0, [sp, 0x5C]
- ldr r1, [sp, 0x68]
- bl __mcmp
- adds r4, r0, 0
- cmp r4, 0
- bgt _080B497C
- cmp r4, 0
- bne _080B49BE
- movs r0, 0x1
- ands r7, r0
- cmp r7, 0
- beq _080B49BE
-_080B497C:
- movs r1, 0x1
- negs r1, r1
- add r9, r1
- mov r2, r9
- ldrb r2, [r2]
- cmp r2, 0x39
- bne _080B499E
-_080B498A:
- ldr r3, [sp, 0x74]
- cmp r9, r3
- beq _080B49AC
- movs r0, 0x1
- negs r0, r0
- add r9, r0
- mov r1, r9
- ldrb r1, [r1]
- cmp r1, 0x39
- beq _080B498A
-_080B499E:
- mov r2, r9
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
-_080B49A6:
- movs r3, 0x1
- add r9, r3
- b _080B49DE
-_080B49AC:
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- str r0, [sp, 0x24]
- movs r0, 0x31
- ldr r1, [sp, 0x74]
- strb r0, [r1]
- adds r1, 0x1
- mov r9, r1
- b _080B49DE
-_080B49BE:
- movs r2, 0x1
- negs r2, r2
- add r9, r2
- mov r3, r9
- ldrb r3, [r3]
- cmp r3, 0x30
- bne _080B49DA
-_080B49CC:
- movs r0, 0x1
- negs r0, r0
- add r9, r0
- mov r1, r9
- ldrb r1, [r1]
- cmp r1, 0x30
- beq _080B49CC
-_080B49DA:
- movs r2, 0x1
- add r9, r2
-_080B49DE:
- mov r0, r10
- ldr r1, [sp, 0x68]
- bl _Bfree
- ldr r3, [sp, 0x64]
- cmp r3, 0
- beq _080B4A06
- ldr r0, [sp, 0x60]
- cmp r0, 0
- beq _080B49FE
- cmp r0, r3
- beq _080B49FE
- mov r0, r10
- ldr r1, [sp, 0x60]
- bl _Bfree
-_080B49FE:
- mov r0, r10
- ldr r1, [sp, 0x64]
- bl _Bfree
-_080B4A06:
- mov r0, r10
- ldr r1, [sp, 0x5C]
- bl _Bfree
- movs r0, 0
- mov r1, r9
- strb r0, [r1]
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- ldr r2, [sp, 0xA8]
- str r0, [r2]
- ldr r3, [sp, 0xB0]
- cmp r3, 0
- beq _080B4A24
- str r1, [r3]
-_080B4A24:
- ldr r0, [sp, 0x74]
-_080B4A26:
- add sp, 0x84
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7,pc}
- thumb_func_end _dtoa_r
-
- .align 2, 0 @ don't pad with nop
- .section .text.fflush
-
- thumb_func_start fflush
-fflush:
- push {r4-r6,lr}
- adds r4, r0, 0
- cmp r4, 0
- bne _080B4A50
- ldr r0, _080B4A48
- ldr r0, [r0]
- ldr r1, _080B4A4C
- bl _fwalk
- b _080B4AC6
- .align 2, 0
-_080B4A48: .4byte _impure_ptr
-_080B4A4C: .4byte fflush
-_080B4A50:
- ldr r0, [r4, 0x54]
- cmp r0, 0
- bne _080B4A5C
- ldr r0, _080B4A90
- ldr r0, [r0]
- str r0, [r4, 0x54]
-_080B4A5C:
- ldr r1, [r4, 0x54]
- ldr r0, [r1, 0x38]
- cmp r0, 0
- bne _080B4A6A
- adds r0, r1, 0
- bl __sinit
-_080B4A6A:
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080B4AC4
- ldr r6, [r4, 0x10]
- cmp r6, 0
- beq _080B4AC4
- ldr r0, [r4]
- subs r5, r0, r6
- str r6, [r4]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080B4AA2
- ldr r0, [r4, 0x14]
- b _080B4AA4
- .align 2, 0
-_080B4A90: .4byte _impure_ptr
-_080B4A94:
- movs r0, 0x40
- ldrh r1, [r4, 0xC]
- orrs r0, r1
- strh r0, [r4, 0xC]
- movs r0, 0x1
- negs r0, r0
- b _080B4AC6
-_080B4AA2:
- movs r0, 0
-_080B4AA4:
- str r0, [r4, 0x8]
- cmp r5, 0
- ble _080B4AC4
-_080B4AAA:
- ldr r0, [r4, 0x1C]
- ldr r3, [r4, 0x24]
- adds r1, r6, 0
- adds r2, r5, 0
- bl _call_via_r3
- adds r1, r0, 0
- cmp r1, 0
- ble _080B4A94
- adds r6, r1
- subs r5, r1
- cmp r5, 0
- bgt _080B4AAA
-_080B4AC4:
- movs r0, 0
-_080B4AC6:
- pop {r4-r6,pc}
- thumb_func_end fflush
-
- .align 2, 0 @ don't pad with nop
- .section .text.findfp
-
- thumb_func_start std
-std:
- push {r4,lr}
- movs r4, 0
- str r4, [r0]
- str r4, [r0, 0x4]
- str r4, [r0, 0x8]
- strh r1, [r0, 0xC]
- strh r2, [r0, 0xE]
- str r4, [r0, 0x10]
- str r4, [r0, 0x18]
- str r0, [r0, 0x1C]
- ldr r1, _080B4AF0
- str r1, [r0, 0x20]
- ldr r1, _080B4AF4
- str r1, [r0, 0x24]
- ldr r1, _080B4AF8
- str r1, [r0, 0x28]
- ldr r1, _080B4AFC
- str r1, [r0, 0x2C]
- str r3, [r0, 0x54]
- pop {r4,pc}
- .align 2, 0
-_080B4AF0: .4byte __sread
-_080B4AF4: .4byte __swrite
-_080B4AF8: .4byte __sseek
-_080B4AFC: .4byte __sclose
- thumb_func_end std
-
- thumb_func_start __sfmoreglue
-__sfmoreglue:
- push {r4-r6,lr}
- adds r5, r1, 0
- movs r1, 0x58
- adds r6, r5, 0
- muls r6, r1
- adds r1, r6, 0
- adds r1, 0xC
- bl _malloc_r
- adds r4, r0, 0
- cmp r4, 0
- beq _080B4B2C
- adds r0, 0xC
- movs r1, 0
- str r1, [r4]
- str r5, [r4, 0x4]
- str r0, [r4, 0x8]
- adds r2, r6, 0
- bl memset
- adds r0, r4, 0
- b _080B4B2E
-_080B4B2C:
- movs r0, 0
-_080B4B2E:
- pop {r4-r6,pc}
- thumb_func_end __sfmoreglue
-
- thumb_func_start __sfp
-__sfp:
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, [r5, 0x38]
- cmp r0, 0
- bne _080B4B40
- adds r0, r5, 0
- bl __sinit
-_080B4B40:
- movs r0, 0xEC
- lsls r0, 1
- adds r4, r5, r0
- b _080B4B4A
-_080B4B48:
- ldr r4, [r4]
-_080B4B4A:
- ldr r2, [r4, 0x8]
- ldr r0, [r4, 0x4]
- b _080B4B5A
-_080B4B50:
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- cmp r1, 0
- beq _080B4B7C
- adds r2, 0x58
-_080B4B5A:
- subs r0, 0x1
- cmp r0, 0
- bge _080B4B50
- ldr r0, [r4]
- cmp r0, 0
- bne _080B4B48
- adds r0, r5, 0
- movs r1, 0x4
- bl __sfmoreglue
- str r0, [r4]
- cmp r0, 0
- bne _080B4B48
- movs r0, 0xC
- str r0, [r5]
- movs r0, 0
- b _080B4B9C
-_080B4B7C:
- movs r0, 0x1
- strh r0, [r2, 0xC]
- str r1, [r2]
- str r1, [r2, 0x8]
- str r1, [r2, 0x4]
- str r1, [r2, 0x10]
- str r1, [r2, 0x14]
- str r1, [r2, 0x18]
- ldr r0, _080B4BA0
- strh r0, [r2, 0xE]
- str r1, [r2, 0x30]
- str r1, [r2, 0x34]
- str r1, [r2, 0x44]
- str r1, [r2, 0x48]
- str r5, [r2, 0x54]
- adds r0, r2, 0
-_080B4B9C:
- pop {r4,r5,pc}
- .align 2, 0
-_080B4BA0: .4byte 0x0000ffff
- thumb_func_end __sfp
-
- thumb_func_start _cleanup_r
-_cleanup_r:
- push {lr}
- ldr r1, _080B4BB0
- bl _fwalk
- pop {pc}
- .align 2, 0
-_080B4BB0: .4byte fflush
- thumb_func_end _cleanup_r
-
- thumb_func_start _cleanup
-_cleanup:
- push {lr}
- ldr r0, _080B4BC0
- ldr r0, [r0]
- bl _cleanup_r
- pop {pc}
- .align 2, 0
-_080B4BC0: .4byte _impure_ptr
- thumb_func_end _cleanup
-
- thumb_func_start __sinit
-__sinit:
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080B4C20
- str r0, [r5, 0x3C]
- movs r0, 0x1
- str r0, [r5, 0x38]
- movs r0, 0xF2
- lsls r0, 1
- adds r4, r5, r0
- adds r0, r4, 0
- movs r1, 0x4
- movs r2, 0
- adds r3, r5, 0
- bl std
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r5, r1
- movs r1, 0x9
- movs r2, 0x1
- adds r3, r5, 0
- bl std
- movs r1, 0xA5
- lsls r1, 2
- adds r0, r5, r1
- movs r1, 0xA
- movs r2, 0x2
- adds r3, r5, 0
- bl std
- movs r0, 0xEC
- lsls r0, 1
- adds r1, r5, r0
- movs r0, 0
- str r0, [r1]
- movs r0, 0xEE
- lsls r0, 1
- adds r1, r5, r0
- movs r0, 0x3
- str r0, [r1]
- movs r1, 0xF0
- lsls r1, 1
- adds r0, r5, r1
- str r4, [r0]
- pop {r4,r5,pc}
- .align 2, 0
-_080B4C20: .4byte _cleanup_r
- thumb_func_end __sinit
-
- .align 2, 0 @ don't pad with nop
- .section .text.mallocr_FREE
-
- thumb_func_start _free_r
-_free_r:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r0
- adds r4, r1, 0
- cmp r4, 0
- bne _080B4C36
- b _080B4DDA
-_080B4C36:
- bl __malloc_lock
- adds r5, r4, 0
- subs r5, 0x8
- ldr r1, [r5, 0x4]
- movs r6, 0x2
- negs r6, r6
- ands r6, r1
- adds r7, r5, r6
- ldr r4, [r7, 0x4]
- movs r0, 0x4
- negs r0, r0
- ands r4, r0
- ldr r0, _080B4C98
- mov r12, r0
- ldr r0, [r0, 0x8]
- cmp r7, r0
- bne _080B4CA4
- adds r6, r4
- movs r4, 0x1
- ands r1, r4
- cmp r1, 0
- bne _080B4C72
- ldr r0, [r5]
- subs r5, r0
- adds r6, r0
- ldr r3, [r5, 0xC]
- ldr r2, [r5, 0x8]
- str r3, [r2, 0xC]
- str r2, [r3, 0x8]
-_080B4C72:
- adds r0, r6, 0
- orrs r0, r4
- str r0, [r5, 0x4]
- mov r2, r12
- str r5, [r2, 0x8]
- ldr r0, _080B4C9C
- ldr r0, [r0]
- cmp r6, r0
- bcc _080B4C8E
- ldr r0, _080B4CA0
- ldr r1, [r0]
- mov r0, r9
- bl _malloc_trim_r
-_080B4C8E:
- mov r0, r9
- bl __malloc_unlock
- b _080B4DDA
- .align 2, 0
-_080B4C98: .4byte __malloc_av_
-_080B4C9C: .4byte __malloc_trim_threshold
-_080B4CA0: .4byte __malloc_top_pad
-_080B4CA4:
- str r4, [r7, 0x4]
- movs r0, 0
- mov r8, r0
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- bne _080B4CD0
- ldr r0, [r5]
- subs r5, r0
- adds r6, r0
- ldr r1, [r5, 0x8]
- mov r0, r12
- adds r0, 0x8
- cmp r1, r0
- bne _080B4CC8
- movs r2, 0x1
- mov r8, r2
- b _080B4CD0
-_080B4CC8:
- ldr r3, [r5, 0xC]
- adds r2, r1, 0
- str r3, [r2, 0xC]
- str r2, [r3, 0x8]
-_080B4CD0:
- adds r0, r7, r4
- ldr r0, [r0, 0x4]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080B4D08
- adds r6, r4
- ldr r1, [r7, 0x8]
- mov r0, r8
- cmp r0, 0
- bne _080B4D00
- ldr r0, _080B4CFC
- cmp r1, r0
- bne _080B4D00
- movs r2, 0x1
- mov r8, r2
- str r5, [r1, 0xC]
- str r5, [r1, 0x8]
- str r1, [r5, 0xC]
- str r1, [r5, 0x8]
- b _080B4D08
- .align 2, 0
-_080B4CFC: .4byte __malloc_av_+8
-_080B4D00:
- ldr r3, [r7, 0xC]
- adds r2, r1, 0
- str r3, [r2, 0xC]
- str r2, [r3, 0x8]
-_080B4D08:
- movs r1, 0x1
- adds r0, r6, 0
- orrs r0, r1
- str r0, [r5, 0x4]
- adds r0, r5, r6
- str r6, [r0]
- mov r0, r8
- cmp r0, 0
- bne _080B4DD4
- ldr r0, _080B4D38
- cmp r6, r0
- bhi _080B4D40
- lsrs r4, r6, 3
- ldr r2, _080B4D3C
- adds r0, r4, 0
- asrs r0, 2
- lsls r1, r0
- ldr r0, [r2, 0x4]
- orrs r0, r1
- str r0, [r2, 0x4]
- lsls r0, r4, 3
- adds r3, r0, r2
- ldr r2, [r3, 0x8]
- b _080B4DCC
- .align 2, 0
-_080B4D38: .4byte 0x000001ff
-_080B4D3C: .4byte __malloc_av_
-_080B4D40:
- lsrs r1, r6, 9
- cmp r1, 0
- bne _080B4D4A
- lsrs r4, r6, 3
- b _080B4D92
-_080B4D4A:
- cmp r1, 0x4
- bhi _080B4D56
- lsrs r0, r6, 6
- adds r4, r0, 0
- adds r4, 0x38
- b _080B4D92
-_080B4D56:
- cmp r1, 0x14
- bhi _080B4D60
- adds r4, r1, 0
- adds r4, 0x5B
- b _080B4D92
-_080B4D60:
- cmp r1, 0x54
- bhi _080B4D6C
- lsrs r0, r6, 12
- adds r4, r0, 0
- adds r4, 0x6E
- b _080B4D92
-_080B4D6C:
- movs r0, 0xAA
- lsls r0, 1
- cmp r1, r0
- bhi _080B4D7C
- lsrs r0, r6, 15
- adds r4, r0, 0
- adds r4, 0x77
- b _080B4D92
-_080B4D7C:
- ldr r0, _080B4D8C
- cmp r1, r0
- bhi _080B4D90
- lsrs r0, r6, 18
- adds r4, r0, 0
- adds r4, 0x7C
- b _080B4D92
- .align 2, 0
-_080B4D8C: .4byte 0x00000554
-_080B4D90:
- movs r4, 0x7E
-_080B4D92:
- lsls r0, r4, 3
- ldr r7, _080B4DB0
- adds r3, r0, r7
- ldr r2, [r3, 0x8]
- cmp r2, r3
- bne _080B4DB4
- adds r0, r4, 0
- asrs r0, 2
- movs r1, 0x1
- lsls r1, r0
- ldr r0, [r7, 0x4]
- orrs r0, r1
- str r0, [r7, 0x4]
- b _080B4DCC
- .align 2, 0
-_080B4DB0: .4byte __malloc_av_
-_080B4DB4:
- ldr r0, [r2, 0x4]
- movs r1, 0x4
- negs r1, r1
- b _080B4DC4
-_080B4DBC:
- ldr r2, [r2, 0x8]
- cmp r2, r3
- beq _080B4DCA
- ldr r0, [r2, 0x4]
-_080B4DC4:
- ands r0, r1
- cmp r6, r0
- bcc _080B4DBC
-_080B4DCA:
- ldr r3, [r2, 0xC]
-_080B4DCC:
- str r3, [r5, 0xC]
- str r2, [r5, 0x8]
- str r5, [r3, 0x8]
- str r5, [r2, 0xC]
-_080B4DD4:
- mov r0, r9
- bl __malloc_unlock
-_080B4DDA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7,pc}
- thumb_func_end _free_r
-
- thumb_func_start _malloc_trim_r
-_malloc_trim_r:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r4, r1, 0
- bl __malloc_lock
- ldr r0, _080B4E6C
- mov r8, r0
- ldr r0, [r0, 0x8]
- ldr r6, [r0, 0x4]
- movs r0, 0x4
- negs r0, r0
- ands r6, r0
- subs r4, r6, r4
- movs r5, 0x80
- lsls r5, 5
- ldr r1, _080B4E70
- adds r4, r1
- adds r0, r4, 0
- adds r1, r5, 0
- bl __udivsi3
- subs r0, 0x1
- lsls r4, r0, 12
- cmp r4, r5
- blt _080B4E62
- adds r0, r7, 0
- movs r1, 0
- bl _sbrk_r
- adds r2, r0, 0
- mov r1, r8
- ldr r0, [r1, 0x8]
- adds r0, r6
- cmp r2, r0
- bne _080B4E62
- negs r1, r4
- adds r0, r7, 0
- bl _sbrk_r
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080B4E7C
- adds r0, r7, 0
- movs r1, 0
- bl _sbrk_r
- adds r2, r0, 0
- mov r0, r8
- ldr r3, [r0, 0x8]
- subs r6, r2, r3
- cmp r6, 0xF
- ble _080B4E62
- ldr r1, _080B4E74
- ldr r0, _080B4E78
- ldr r0, [r0]
- subs r0, r2, r0
- str r0, [r1]
- movs r0, 0x1
- orrs r6, r0
- str r6, [r3, 0x4]
-_080B4E62:
- adds r0, r7, 0
- bl __malloc_unlock
- movs r0, 0
- b _080B4E98
- .align 2, 0
-_080B4E6C: .4byte __malloc_av_
-_080B4E70: .4byte 0x00000fef
-_080B4E74: .4byte __malloc_current_mallinfo
-_080B4E78: .4byte __malloc_sbrk_base
-_080B4E7C:
- mov r1, r8
- ldr r2, [r1, 0x8]
- subs r0, r6, r4
- movs r1, 0x1
- orrs r0, r1
- str r0, [r2, 0x4]
- ldr r1, _080B4EA0
- ldr r0, [r1]
- subs r0, r4
- str r0, [r1]
- adds r0, r7, 0
- bl __malloc_unlock
- movs r0, 0x1
-_080B4E98:
- pop {r3}
- mov r8, r3
- pop {r4-r7,pc}
- .align 2, 0
-_080B4EA0: .4byte __malloc_current_mallinfo
- thumb_func_end _malloc_trim_r
-
- .align 2, 0 @ don't pad with nop
- .section .text.fvwrite
-
- thumb_func_start __sfvwrite
-__sfvwrite:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r5, r0, 0
- mov r10, r1
- ldr r6, [r1, 0x8]
- cmp r6, 0
- bne _080B4EBC
- b _080B50B2
-_080B4EBC:
- movs r0, 0x8
- ldrh r1, [r5, 0xC]
- ands r0, r1
- cmp r0, 0
- beq _080B4ECC
- ldr r0, [r5, 0x10]
- cmp r0, 0
- bne _080B4ED8
-_080B4ECC:
- adds r0, r5, 0
- bl __swsetup
- cmp r0, 0
- beq _080B4ED8
- b _080B50BE
-_080B4ED8:
- mov r2, r10
- ldr r2, [r2]
- mov r8, r2
- movs r6, 0
- ldrh r1, [r5, 0xC]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080B4F2C
-_080B4EEA:
- ldr r0, [r5, 0x1C]
- ldr r3, [r5, 0x24]
- cmp r6, 0
- bne _080B4F00
-_080B4EF2:
- mov r1, r8
- ldr r7, [r1]
- ldr r6, [r1, 0x4]
- movs r2, 0x8
- add r8, r2
- cmp r6, 0
- beq _080B4EF2
-_080B4F00:
- adds r2, r6, 0
- movs r1, 0x80
- lsls r1, 3
- cmp r6, r1
- bls _080B4F0C
- adds r2, r1, 0
-_080B4F0C:
- adds r1, r7, 0
- bl _call_via_r3
- adds r4, r0, 0
- cmp r4, 0
- bgt _080B4F1A
- b _080B50B6
-_080B4F1A:
- adds r7, r4
- subs r6, r4
- mov r1, r10
- ldr r0, [r1, 0x8]
- subs r0, r4
- str r0, [r1, 0x8]
- cmp r0, 0
- bne _080B4EEA
- b _080B50B2
-_080B4F2C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080B4FE6
-_080B4F34:
- ldrh r1, [r5, 0xC]
- ldr r0, [r5, 0x8]
- ldr r3, [r5]
- cmp r6, 0
- bne _080B4F4C
-_080B4F3E:
- mov r2, r8
- ldr r7, [r2]
- ldr r6, [r2, 0x4]
- movs r2, 0x8
- add r8, r2
- cmp r6, 0
- beq _080B4F3E
-_080B4F4C:
- adds r4, r0, 0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080B4F7A
- cmp r6, r4
- bcs _080B4F60
- adds r4, r6, 0
-_080B4F60:
- adds r0, r3, 0
- adds r1, r7, 0
- adds r2, r4, 0
- bl memmove
- ldr r0, [r5, 0x8]
- subs r0, r4
- str r0, [r5, 0x8]
- ldr r0, [r5]
- adds r0, r4
- str r0, [r5]
- adds r4, r6, 0
- b _080B4FD4
-_080B4F7A:
- ldr r0, [r5, 0x10]
- cmp r3, r0
- bls _080B4FA2
- cmp r6, r4
- bls _080B4FA2
- adds r0, r3, 0
- adds r1, r7, 0
- adds r2, r4, 0
- bl memmove
- ldr r0, [r5]
- adds r0, r4
- str r0, [r5]
- adds r0, r5, 0
- bl fflush
- cmp r0, 0
- beq _080B4FA0
- b _080B50B6
-_080B4FA0:
- b _080B4FD4
-_080B4FA2:
- ldr r4, [r5, 0x14]
- cmp r6, r4
- bcc _080B4FBC
- ldr r0, [r5, 0x1C]
- ldr r3, [r5, 0x24]
- adds r1, r7, 0
- adds r2, r4, 0
- bl _call_via_r3
- adds r4, r0, 0
- cmp r4, 0
- ble _080B50B6
- b _080B4FD4
-_080B4FBC:
- adds r4, r6, 0
- adds r0, r3, 0
- adds r1, r7, 0
- adds r2, r4, 0
- bl memmove
- ldr r0, [r5, 0x8]
- subs r0, r4
- str r0, [r5, 0x8]
- ldr r0, [r5]
- adds r0, r4
- str r0, [r5]
-_080B4FD4:
- adds r7, r4
- subs r6, r4
- mov r1, r10
- ldr r0, [r1, 0x8]
- subs r0, r4
- str r0, [r1, 0x8]
- cmp r0, 0
- bne _080B4F34
- b _080B50B2
-_080B4FE6:
- movs r2, 0
- str r2, [sp]
-_080B4FEA:
- cmp r6, 0
- bne _080B5000
- movs r0, 0
- str r0, [sp]
-_080B4FF2:
- mov r1, r8
- ldr r7, [r1]
- ldr r6, [r1, 0x4]
- movs r2, 0x8
- add r8, r2
- cmp r6, 0
- beq _080B4FF2
-_080B5000:
- ldr r0, [sp]
- cmp r0, 0
- bne _080B5024
- adds r0, r7, 0
- movs r1, 0xA
- adds r2, r6, 0
- bl memchr
- adds r1, r0, 0
- cmp r1, 0
- beq _080B501C
- subs r0, r7, 0x1
- subs r1, r0
- b _080B501E
-_080B501C:
- adds r1, r6, 0x1
-_080B501E:
- mov r9, r1
- movs r2, 0x1
- str r2, [sp]
-_080B5024:
- mov r2, r9
- cmp r9, r6
- bls _080B502C
- adds r2, r6, 0
-_080B502C:
- ldr r0, [r5, 0x8]
- ldr r1, [r5, 0x14]
- adds r4, r0, r1
- ldr r0, [r5, 0x10]
- ldr r3, [r5]
- cmp r3, r0
- bls _080B505A
- cmp r2, r4
- ble _080B505A
- adds r0, r3, 0
- adds r1, r7, 0
- adds r2, r4, 0
- bl memmove
- ldr r0, [r5]
- adds r0, r4
- str r0, [r5]
- adds r0, r5, 0
- bl fflush
- cmp r0, 0
- bne _080B50B6
- b _080B508A
-_080B505A:
- adds r4, r1, 0
- cmp r2, r4
- blt _080B5074
- ldr r0, [r5, 0x1C]
- ldr r3, [r5, 0x24]
- adds r1, r7, 0
- adds r2, r4, 0
- bl _call_via_r3
- adds r4, r0, 0
- cmp r4, 0
- ble _080B50B6
- b _080B508A
-_080B5074:
- adds r4, r2, 0
- adds r0, r3, 0
- adds r1, r7, 0
- bl memmove
- ldr r0, [r5, 0x8]
- subs r0, r4
- str r0, [r5, 0x8]
- ldr r0, [r5]
- adds r0, r4
- str r0, [r5]
-_080B508A:
- mov r0, r9
- subs r0, r4
- mov r9, r0
- cmp r0, 0
- bne _080B50A2
- adds r0, r5, 0
- bl fflush
- cmp r0, 0
- bne _080B50B6
- movs r1, 0
- str r1, [sp]
-_080B50A2:
- adds r7, r4
- subs r6, r4
- mov r2, r10
- ldr r0, [r2, 0x8]
- subs r0, r4
- str r0, [r2, 0x8]
- cmp r0, 0
- bne _080B4FEA
-_080B50B2:
- movs r0, 0
- b _080B50C2
-_080B50B6:
- movs r0, 0x40
- ldrh r1, [r5, 0xC]
- orrs r0, r1
- strh r0, [r5, 0xC]
-_080B50BE:
- movs r0, 0x1
- negs r0, r0
-_080B50C2:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7,pc}
- thumb_func_end __sfvwrite
-
- .align 2, 0 @ don't pad with nop
- .section .text.fwalk
-
- thumb_func_start _fwalk
-_fwalk:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r1
- movs r7, 0
- movs r1, 0xEC
- lsls r1, 1
- adds r6, r0, r1
- cmp r6, 0
- beq _080B5108
-_080B50E4:
- ldr r5, [r6, 0x8]
- ldr r4, [r6, 0x4]
- b _080B50FC
-_080B50EA:
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080B50FA
- adds r0, r5, 0
- bl _call_via_r8
- orrs r7, r0
-_080B50FA:
- adds r5, 0x58
-_080B50FC:
- subs r4, 0x1
- cmp r4, 0
- bge _080B50EA
- ldr r6, [r6]
- cmp r6, 0
- bne _080B50E4
-_080B5108:
- adds r0, r7, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7,pc}
- thumb_func_end _fwalk
-
- .align 2, 0 @ don't pad with nop
- .section .text.locale
-
- thumb_func_start _setlocale_r
-_setlocale_r:
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- adds r4, r2, 0
- cmp r4, 0
- beq _080B5144
- ldr r1, _080B5138
- adds r0, r4, 0
- bl strcmp
- cmp r0, 0
- beq _080B5140
- ldr r1, _080B513C
- adds r0, r4, 0
- bl strcmp
- cmp r0, 0
- beq _080B5140
- movs r0, 0
- b _080B5146
- .align 2, 0
-_080B5138: .4byte gUnknown_826FEB0
-_080B513C: .4byte gUnknown_826FEA8
-_080B5140:
- str r6, [r5, 0x30]
- str r4, [r5, 0x34]
-_080B5144:
- ldr r0, _080B5148
-_080B5146:
- pop {r4-r6,pc}
- .align 2, 0
-_080B5148: .4byte gUnknown_826FEB0
- thumb_func_end _setlocale_r
-
- thumb_func_start _localeconv_r
-_localeconv_r:
- ldr r0, _080B5150
- bx lr
- .align 2, 0
-_080B5150: .4byte lconv
- thumb_func_end _localeconv_r
-
- thumb_func_start setlocale
-setlocale:
- push {lr}
- adds r3, r0, 0
- adds r2, r1, 0
- ldr r0, _080B5168
- ldr r0, [r0]
- adds r1, r3, 0
- bl _setlocale_r
- pop {pc}
- .align 2, 0
-_080B5168: .4byte _impure_ptr
- thumb_func_end setlocale
-
- thumb_func_start localeconv
-localeconv:
- push {lr}
- ldr r0, _080B5178
- ldr r0, [r0]
- bl _localeconv_r
- pop {pc}
- .align 2, 0
-_080B5178: .4byte _impure_ptr
- thumb_func_end localeconv
-
- .align 2, 0 @ don't pad with nop
- .section .text.makebuf
-
- thumb_func_start __smakebuf
-__smakebuf:
- push {r4-r7,lr}
- sub sp, 0x3C
- adds r4, r0, 0
- movs r0, 0x2
- ldrh r1, [r4, 0xC]
- ands r0, r1
- cmp r0, 0
- bne _080B5212
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- blt _080B51A4
- ldr r0, [r4, 0x54]
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- mov r2, sp
- bl _fstat_r
- cmp r0, 0
- bge _080B51B6
-_080B51A4:
- movs r7, 0
- movs r6, 0x80
- lsls r6, 3
- movs r1, 0x80
- lsls r1, 4
- adds r0, r1, 0
- ldrh r2, [r4, 0xC]
- orrs r0, r2
- b _080B51FA
-_080B51B6:
- movs r7, 0
- ldr r1, [sp, 0x4]
- movs r0, 0xF0
- lsls r0, 8
- ands r1, r0
- movs r0, 0x80
- lsls r0, 6
- cmp r1, r0
- bne _080B51CA
- movs r7, 0x1
-_080B51CA:
- movs r6, 0x80
- lsls r6, 3
- movs r0, 0x80
- lsls r0, 8
- cmp r1, r0
- bne _080B51F0
- ldr r1, [r4, 0x28]
- ldr r0, _080B51EC
- cmp r1, r0
- bne _080B51F0
- adds r0, r6, 0
- ldrh r1, [r4, 0xC]
- orrs r0, r1
- strh r0, [r4, 0xC]
- str r6, [r4, 0x4C]
- b _080B51FC
- .align 2, 0
-_080B51EC: .4byte __sseek
-_080B51F0:
- movs r2, 0x80
- lsls r2, 4
- adds r0, r2, 0
- ldrh r1, [r4, 0xC]
- orrs r0, r1
-_080B51FA:
- strh r0, [r4, 0xC]
-_080B51FC:
- ldr r0, [r4, 0x54]
- adds r1, r6, 0
- bl _malloc_r
- adds r2, r0, 0
- cmp r2, 0
- bne _080B5220
- movs r0, 0x2
- ldrh r2, [r4, 0xC]
- orrs r0, r2
- strh r0, [r4, 0xC]
-_080B5212:
- adds r0, r4, 0
- adds r0, 0x43
- str r0, [r4]
- str r0, [r4, 0x10]
- movs r0, 0x1
- str r0, [r4, 0x14]
- b _080B524E
-_080B5220:
- ldr r1, [r4, 0x54]
- ldr r0, _080B5254
- str r0, [r1, 0x3C]
- movs r0, 0x80
- movs r5, 0
- ldrh r1, [r4, 0xC]
- orrs r0, r1
- strh r0, [r4, 0xC]
- str r2, [r4]
- str r2, [r4, 0x10]
- str r6, [r4, 0x14]
- cmp r7, 0
- beq _080B524E
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- bl isatty
- cmp r0, 0
- beq _080B524E
- movs r0, 0x1
- ldrh r1, [r4, 0xC]
- orrs r0, r1
- strh r0, [r4, 0xC]
-_080B524E:
- add sp, 0x3C
- pop {r4-r7,pc}
- .align 2, 0
-_080B5254: .4byte _cleanup_r
- thumb_func_end __smakebuf
-
- .align 2, 0 @ don't pad with nop
- .section .text.mallocr_MALLOC
-
- thumb_func_start malloc_extend_top
-malloc_extend_top:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- str r0, [sp]
- ldr r0, _080B52CC
- ldr r0, [r0, 0x8]
- mov r8, r0
- ldr r7, [r0, 0x4]
- movs r0, 0x4
- negs r0, r0
- ands r7, r0
- mov r2, r8
- adds r4, r2, r7
- ldr r0, _080B52D0
- ldr r0, [r0]
- adds r1, r0
- adds r6, r1, 0
- adds r6, 0x10
- ldr r3, _080B52D4
- mov r10, r3
- ldr r0, [r3]
- movs r2, 0x1
- negs r2, r2
- mov r9, r2
- cmp r0, r9
- beq _080B529A
- ldr r3, _080B52D8
- adds r6, r1, r3
- ldr r0, _080B52DC
- ands r6, r0
-_080B529A:
- ldr r0, [sp]
- adds r1, r6, 0
- bl _sbrk_r
- adds r5, r0, 0
- cmp r5, r9
- beq _080B539C
- cmp r5, r4
- bcs _080B52B2
- ldr r0, _080B52CC
- cmp r8, r0
- bne _080B539C
-_080B52B2:
- ldr r1, _080B52E0
- ldr r0, [r1]
- adds r2, r0, r6
- str r2, [r1]
- cmp r5, r4
- bne _080B52E4
- adds r2, r6, r7
- ldr r3, _080B52CC
- ldr r1, [r3, 0x8]
- movs r0, 0x1
- orrs r2, r0
- str r2, [r1, 0x4]
- b _080B5384
- .align 2, 0
-_080B52CC: .4byte __malloc_av_
-_080B52D0: .4byte __malloc_top_pad
-_080B52D4: .4byte __malloc_sbrk_base
-_080B52D8: .4byte 0x0000100f
-_080B52DC: .4byte 0xfffff000
-_080B52E0: .4byte __malloc_current_mallinfo
-_080B52E4:
- mov r3, r10
- ldr r0, [r3]
- cmp r0, r9
- bne _080B52F0
- str r5, [r3]
- b _080B52F6
-_080B52F0:
- subs r0, r5, r4
- adds r0, r2, r0
- str r0, [r1]
-_080B52F6:
- adds r1, r5, 0
- adds r1, 0x8
- movs r0, 0x7
- ands r1, r0
- cmp r1, 0
- beq _080B530A
- movs r0, 0x8
- subs r4, r0, r1
- adds r5, r4
- b _080B530C
-_080B530A:
- movs r4, 0
-_080B530C:
- adds r0, r5, r6
- movs r1, 0x80
- lsls r1, 5
- subs r1, 0x1
- ands r0, r1
- movs r1, 0x80
- lsls r1, 5
- subs r0, r1, r0
- adds r4, r0
- ldr r0, [sp]
- adds r1, r4, 0
- bl _sbrk_r
- adds r2, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _080B539C
- ldr r1, _080B5354
- ldr r0, [r1]
- adds r0, r4
- str r0, [r1]
- ldr r1, _080B5358
- str r5, [r1, 0x8]
- subs r0, r2, r5
- adds r2, r0, r4
- movs r3, 0x1
- orrs r2, r3
- str r2, [r5, 0x4]
- cmp r8, r1
- beq _080B5384
- cmp r7, 0xF
- bhi _080B535C
- str r3, [r5, 0x4]
- b _080B539C
- .align 2, 0
-_080B5354: .4byte __malloc_current_mallinfo
-_080B5358: .4byte __malloc_av_
-_080B535C:
- subs r7, 0xC
- movs r0, 0x8
- negs r0, r0
- ands r7, r0
- mov r2, r8
- ldr r0, [r2, 0x4]
- ands r0, r3
- orrs r0, r7
- str r0, [r2, 0x4]
- adds r1, r2, r7
- movs r0, 0x5
- str r0, [r1, 0x4]
- str r0, [r1, 0x8]
- cmp r7, 0xF
- bls _080B5384
- mov r1, r8
- adds r1, 0x8
- ldr r0, [sp]
- bl _free_r
-_080B5384:
- ldr r0, _080B53A8
- ldr r2, _080B53AC
- ldr r1, [r0]
- ldr r0, [r2]
- cmp r1, r0
- bls _080B5392
- str r1, [r2]
-_080B5392:
- ldr r2, _080B53B0
- ldr r0, [r2]
- cmp r1, r0
- bls _080B539C
- str r1, [r2]
-_080B539C:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7,pc}
- .align 2, 0
-_080B53A8: .4byte __malloc_current_mallinfo
-_080B53AC: .4byte __malloc_max_sbrked_mem
-_080B53B0: .4byte __malloc_max_total_mem
- thumb_func_end malloc_extend_top
-
- thumb_func_start _malloc_r
-_malloc_r:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- str r0, [sp]
- adds r1, 0xB
- cmp r1, 0x16
- ble _080B53D6
- movs r0, 0x8
- negs r0, r0
- mov r8, r0
- mov r2, r8
- ands r2, r1
- mov r8, r2
- b _080B53DA
-_080B53D6:
- movs r3, 0x10
- mov r8, r3
-_080B53DA:
- ldr r0, [sp]
- bl __malloc_lock
- ldr r0, _080B5420
- cmp r8, r0
- bhi _080B542E
- mov r4, r8
- lsrs r4, 3
- mov r12, r4
- ldr r0, _080B5424
- mov r7, r8
- adds r2, r7, r0
- ldr r5, [r2, 0xC]
- cmp r5, r2
- bne _080B5402
- adds r2, r5, 0
- adds r2, 0x8
- ldr r5, [r2, 0xC]
- cmp r5, r2
- beq _080B5428
-_080B5402:
- ldr r2, [r5, 0x4]
- movs r0, 0x4
- negs r0, r0
- ands r2, r0
- ldr r6, [r5, 0xC]
- ldr r4, [r5, 0x8]
- str r6, [r4, 0xC]
- str r4, [r6, 0x8]
- adds r2, r5, r2
- ldr r0, [r2, 0x4]
- movs r1, 0x1
- orrs r0, r1
- str r0, [r2, 0x4]
- b _080B575A
- .align 2, 0
-_080B5420: .4byte 0x000001f7
-_080B5424: .4byte __malloc_av_
-_080B5428:
- movs r0, 0x2
- add r12, r0
- b _080B54DA
-_080B542E:
- mov r2, r8
- lsrs r1, r2, 9
- cmp r1, 0
- bne _080B543A
- lsrs r2, 3
- b _080B548A
-_080B543A:
- cmp r1, 0x4
- bhi _080B5448
- mov r3, r8
- lsrs r0, r3, 6
- adds r0, 0x38
- mov r12, r0
- b _080B548C
-_080B5448:
- cmp r1, 0x14
- bhi _080B5452
- adds r1, 0x5B
- mov r12, r1
- b _080B548C
-_080B5452:
- cmp r1, 0x54
- bhi _080B5460
- mov r4, r8
- lsrs r0, r4, 12
- adds r0, 0x6E
- mov r12, r0
- b _080B548C
-_080B5460:
- movs r0, 0xAA
- lsls r0, 1
- cmp r1, r0
- bhi _080B5472
- mov r7, r8
- lsrs r0, r7, 15
- adds r0, 0x77
- mov r12, r0
- b _080B548C
-_080B5472:
- ldr r0, _080B5484
- cmp r1, r0
- bhi _080B5488
- mov r1, r8
- lsrs r0, r1, 18
- adds r0, 0x7C
- mov r12, r0
- b _080B548C
- .align 2, 0
-_080B5484: .4byte 0x00000554
-_080B5488:
- movs r2, 0x7E
-_080B548A:
- mov r12, r2
-_080B548C:
- mov r3, r12
- lsls r0, r3, 3
- ldr r1, _080B54B0
- adds r4, r0, r1
- ldr r5, [r4, 0xC]
- cmp r5, r4
- beq _080B54D6
- ldr r1, [r5, 0x4]
- movs r0, 0x4
- negs r0, r0
- ands r1, r0
- mov r7, r8
- subs r3, r1, r7
- cmp r3, 0xF
- ble _080B54B4
- adds r0, 0x3
- add r12, r0
- b _080B54D6
- .align 2, 0
-_080B54B0: .4byte __malloc_av_
-_080B54B4:
- cmp r3, 0
- blt _080B54BA
- b _080B56F4
-_080B54BA:
- ldr r5, [r5, 0xC]
- cmp r5, r4
- beq _080B54D6
- ldr r1, [r5, 0x4]
- movs r0, 0x4
- negs r0, r0
- ands r1, r0
- mov r2, r8
- subs r3, r1, r2
- cmp r3, 0xF
- ble _080B54B4
- movs r3, 0x1
- negs r3, r3
- add r12, r3
-_080B54D6:
- movs r4, 0x1
- add r12, r4
-_080B54DA:
- ldr r0, _080B5518
- ldr r5, [r0, 0x8]
- mov r10, r0
- cmp r5, r10
- bne _080B54E6
- b _080B55E8
-_080B54E6:
- ldr r1, [r5, 0x4]
- movs r0, 0x4
- negs r0, r0
- ands r1, r0
- mov r7, r8
- subs r3, r1, r7
- cmp r3, 0xF
- ble _080B551C
- adds r2, r5, r7
- movs r1, 0x1
- adds r0, r7, 0
- orrs r0, r1
- str r0, [r5, 0x4]
- mov r4, r10
- str r2, [r4, 0xC]
- str r2, [r4, 0x8]
- str r4, [r2, 0xC]
- str r4, [r2, 0x8]
- adds r0, r3, 0
- orrs r0, r1
- str r0, [r2, 0x4]
- adds r0, r2, r3
- str r3, [r0]
- b _080B575A
- .align 2, 0
-_080B5518: .4byte __malloc_av_+8
-_080B551C:
- mov r7, r10
- str r7, [r7, 0xC]
- str r7, [r7, 0x8]
- cmp r3, 0
- blt _080B5532
- adds r2, r5, r1
- ldr r0, [r2, 0x4]
- movs r1, 0x1
- orrs r0, r1
- str r0, [r2, 0x4]
- b _080B575A
-_080B5532:
- ldr r0, _080B5554
- cmp r1, r0
- bhi _080B5558
- lsrs r2, r1, 3
- mov r3, r10
- subs r3, 0x8
- adds r0, r2, 0
- asrs r0, 2
- movs r1, 0x1
- lsls r1, r0
- ldr r0, [r3, 0x4]
- orrs r0, r1
- str r0, [r3, 0x4]
- lsls r0, r2, 3
- adds r6, r0, r3
- ldr r4, [r6, 0x8]
- b _080B55E0
- .align 2, 0
-_080B5554: .4byte 0x000001ff
-_080B5558:
- lsrs r2, r1, 9
- cmp r2, 0
- bne _080B5562
- lsrs r2, r1, 3
- b _080B55A6
-_080B5562:
- cmp r2, 0x4
- bhi _080B556E
- lsrs r0, r1, 6
- adds r2, r0, 0
- adds r2, 0x38
- b _080B55A6
-_080B556E:
- cmp r2, 0x14
- bhi _080B5576
- adds r2, 0x5B
- b _080B55A6
-_080B5576:
- cmp r2, 0x54
- bhi _080B5582
- lsrs r0, r1, 12
- adds r2, r0, 0
- adds r2, 0x6E
- b _080B55A6
-_080B5582:
- movs r0, 0xAA
- lsls r0, 1
- cmp r2, r0
- bhi _080B5592
- lsrs r0, r1, 15
- adds r2, r0, 0
- adds r2, 0x77
- b _080B55A6
-_080B5592:
- ldr r0, _080B55A0
- cmp r2, r0
- bhi _080B55A4
- lsrs r0, r1, 18
- adds r2, r0, 0
- adds r2, 0x7C
- b _080B55A6
- .align 2, 0
-_080B55A0: .4byte 0x00000554
-_080B55A4:
- movs r2, 0x7E
-_080B55A6:
- lsls r0, r2, 3
- ldr r3, _080B55C4
- adds r6, r0, r3
- ldr r4, [r6, 0x8]
- cmp r4, r6
- bne _080B55C8
- adds r0, r2, 0
- asrs r0, 2
- movs r1, 0x1
- lsls r1, r0
- ldr r7, _080B55C4
- ldr r0, [r7, 0x4]
- orrs r0, r1
- str r0, [r7, 0x4]
- b _080B55E0
- .align 2, 0
-_080B55C4: .4byte __malloc_av_
-_080B55C8:
- ldr r0, [r4, 0x4]
- movs r2, 0x4
- negs r2, r2
- b _080B55D8
-_080B55D0:
- ldr r4, [r4, 0x8]
- cmp r4, r6
- beq _080B55DE
- ldr r0, [r4, 0x4]
-_080B55D8:
- ands r0, r2
- cmp r1, r0
- bcc _080B55D0
-_080B55DE:
- ldr r6, [r4, 0xC]
-_080B55E0:
- str r6, [r5, 0xC]
- str r4, [r5, 0x8]
- str r5, [r6, 0x8]
- str r5, [r4, 0xC]
-_080B55E8:
- mov r0, r12
- cmp r0, 0
- bge _080B55F0
- adds r0, 0x3
-_080B55F0:
- asrs r0, 2
- movs r6, 0x1
- lsls r6, r0
- ldr r0, _080B5614
- ldr r1, [r0, 0x4]
- cmp r6, r1
- bhi _080B56B2
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _080B5626
- movs r0, 0x4
- negs r0, r0
- mov r2, r12
- ands r0, r2
- adds r0, 0x4
- mov r12, r0
- b _080B561C
- .align 2, 0
-_080B5614: .4byte __malloc_av_
-_080B5618:
- movs r3, 0x4
- add r12, r3
-_080B561C:
- lsls r6, 1
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _080B5618
-_080B5626:
- ldr r4, _080B56A4
- mov r9, r4
-_080B562A:
- mov r7, r12
- str r7, [sp, 0x4]
- mov r1, r12
- lsls r0, r1, 3
- mov r3, r9
- adds r2, r0, r3
- adds r4, r2, 0
-_080B5638:
- ldr r5, [r4, 0xC]
- cmp r5, r4
- beq _080B5658
- movs r0, 0x4
- negs r0, r0
-_080B5642:
- ldr r1, [r5, 0x4]
- ands r1, r0
- mov r7, r8
- subs r3, r1, r7
- cmp r3, 0xF
- bgt _080B5708
- cmp r3, 0
- bge _080B5730
- ldr r5, [r5, 0xC]
- cmp r5, r4
- bne _080B5642
-_080B5658:
- adds r4, 0x8
- movs r0, 0x1
- add r12, r0
- mov r0, r12
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080B5638
-_080B5668:
- ldr r0, [sp, 0x4]
- ands r0, r1
- cmp r0, 0
- beq _080B56A8
- ldr r3, [sp, 0x4]
- subs r3, 0x1
- str r3, [sp, 0x4]
- subs r2, 0x8
- ldr r0, [r2, 0x8]
- cmp r0, r2
- beq _080B5668
-_080B567E:
- lsls r6, 1
- mov r4, r9
- ldr r1, [r4, 0x4]
- cmp r6, r1
- bhi _080B56B2
- cmp r6, 0
- beq _080B56B2
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _080B562A
-_080B5694:
- movs r7, 0x4
- add r12, r7
- lsls r6, 1
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _080B5694
- b _080B562A
- .align 2, 0
-_080B56A4: .4byte __malloc_av_
-_080B56A8:
- mov r1, r9
- ldr r0, [r1, 0x4]
- bics r0, r6
- str r0, [r1, 0x4]
- b _080B567E
-_080B56B2:
- ldr r2, _080B56F0
- ldr r0, [r2, 0x8]
- ldr r0, [r0, 0x4]
- movs r4, 0x4
- negs r4, r4
- ands r0, r4
- mov r7, r8
- subs r3, r0, r7
- cmp r0, r8
- bcc _080B56CA
- cmp r3, 0xF
- bgt _080B5744
-_080B56CA:
- ldr r0, [sp]
- mov r1, r8
- bl malloc_extend_top
- ldr r1, _080B56F0
- ldr r0, [r1, 0x8]
- ldr r0, [r0, 0x4]
- ands r0, r4
- mov r2, r8
- subs r3, r0, r2
- cmp r0, r8
- bcc _080B56E6
- cmp r3, 0xF
- bgt _080B5744
-_080B56E6:
- ldr r0, [sp]
- bl __malloc_unlock
- movs r0, 0
- b _080B5764
- .align 2, 0
-_080B56F0: .4byte __malloc_av_
-_080B56F4:
- ldr r6, [r5, 0xC]
- ldr r4, [r5, 0x8]
- str r6, [r4, 0xC]
- str r4, [r6, 0x8]
- adds r2, r5, r1
- ldr r0, [r2, 0x4]
- movs r1, 0x1
- orrs r0, r1
- str r0, [r2, 0x4]
- b _080B575A
-_080B5708:
- mov r4, r8
- adds r2, r5, r4
- movs r1, 0x1
- orrs r4, r1
- str r4, [r5, 0x4]
- ldr r6, [r5, 0xC]
- ldr r4, [r5, 0x8]
- str r6, [r4, 0xC]
- str r4, [r6, 0x8]
- mov r7, r10
- str r2, [r7, 0xC]
- str r2, [r7, 0x8]
- str r7, [r2, 0xC]
- str r7, [r2, 0x8]
- adds r0, r3, 0
- orrs r0, r1
- str r0, [r2, 0x4]
- adds r0, r2, r3
- str r3, [r0]
- b _080B575A
-_080B5730:
- adds r2, r5, r1
- ldr r0, [r2, 0x4]
- movs r1, 0x1
- orrs r0, r1
- str r0, [r2, 0x4]
- ldr r6, [r5, 0xC]
- ldr r4, [r5, 0x8]
- str r6, [r4, 0xC]
- str r4, [r6, 0x8]
- b _080B575A
-_080B5744:
- ldr r2, _080B5770
- ldr r5, [r2, 0x8]
- movs r1, 0x1
- mov r0, r8
- orrs r0, r1
- str r0, [r5, 0x4]
- mov r4, r8
- adds r0, r5, r4
- str r0, [r2, 0x8]
- orrs r3, r1
- str r3, [r0, 0x4]
-_080B575A:
- ldr r0, [sp]
- bl __malloc_unlock
- adds r0, r5, 0
- adds r0, 0x8
-_080B5764:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7,pc}
- .align 2, 0
-_080B5770: .4byte __malloc_av_
- thumb_func_end _malloc_r
-
- .align 2, 0 @ don't pad with nop
- .section .text.mbtowc_r
-
- thumb_func_start _mbtowc_r
-_mbtowc_r:
- sub sp, 0x4
- cmp r1, 0
- bne _080B577C
- mov r1, sp
-_080B577C:
- cmp r2, 0
- beq _080B5798
- cmp r3, 0
- bne _080B578A
- movs r0, 0x1
- negs r0, r0
- b _080B579A
-_080B578A:
- ldrb r0, [r2]
- str r0, [r1]
- ldrb r0, [r2]
- cmp r0, 0
- beq _080B5798
- movs r0, 0x1
- b _080B579A
-_080B5798:
- movs r0, 0
-_080B579A:
- add sp, 0x4
- bx lr
- thumb_func_end _mbtowc_r
-
- .align 2, 0 @ don't pad with nop
- .section .text.memchr
-
- thumb_func_start memchr
-memchr:
- push {r4-r7,lr}
- adds r5, r1, 0
- adds r1, r0, 0
- movs r0, 0xFF
- ands r5, r0
- cmp r2, 0x3
- bls _080B5814
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080B5814
- adds r4, r1, 0
- movs r6, 0
- movs r1, 0
-_080B57BC:
- lsls r0, r6, 8
- adds r6, r0, r5
- adds r1, 0x1
- cmp r1, 0x3
- bls _080B57BC
- cmp r2, 0x3
- bls _080B57FA
- ldr r0, _080B5800
- mov r12, r0
- ldr r7, _080B5804
-_080B57D0:
- ldr r1, [r4]
- eors r1, r6
- mov r3, r12
- adds r0, r1, r3
- bics r0, r1
- ands r0, r7
- cmp r0, 0
- beq _080B57F2
- adds r1, r4, 0
- movs r3, 0
-_080B57E4:
- ldrb r0, [r1]
- cmp r0, r5
- beq _080B580E
- adds r1, 0x1
- adds r3, 0x1
- cmp r3, 0x3
- bls _080B57E4
-_080B57F2:
- subs r2, 0x4
- adds r4, 0x4
- cmp r2, 0x3
- bhi _080B57D0
-_080B57FA:
- adds r1, r4, 0
- b _080B5814
- .align 2, 0
-_080B5800: .4byte 0xfefefeff
-_080B5804: .4byte 0x80808080
-_080B5808:
- ldrb r0, [r1]
- cmp r0, r5
- bne _080B5812
-_080B580E:
- adds r0, r1, 0
- b _080B581E
-_080B5812:
- adds r1, 0x1
-_080B5814:
- adds r0, r2, 0
- subs r2, 0x1
- cmp r0, 0
- bne _080B5808
- movs r0, 0
-_080B581E:
- pop {r4-r7,pc}
- thumb_func_end memchr
-
- .align 2, 0 @ don't pad with nop
- .section .text.memmove
-
- thumb_func_start memmove
-memmove:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r5, 0
- adds r3, r1, 0
- cmp r3, r5
- bcs _080B5852
- adds r0, r3, r2
- cmp r5, r0
- bcs _080B5852
- adds r3, r0, 0
- adds r4, r5, r2
- subs r2, 0x1
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _080B58A4
- adds r1, r0, 0
-_080B5842:
- subs r4, 0x1
- subs r3, 0x1
- ldrb r0, [r3]
- strb r0, [r4]
- subs r2, 0x1
- cmp r2, r1
- bne _080B5842
- b _080B58A4
-_080B5852:
- cmp r2, 0xF
- bls _080B588A
- adds r0, r3, 0
- orrs r0, r4
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080B588A
- adds r1, r3, 0
-_080B5864:
- ldm r1!, {r0}
- stm r4!, {r0}
- ldm r1!, {r0}
- stm r4!, {r0}
- ldm r1!, {r0}
- stm r4!, {r0}
- ldm r1!, {r0}
- stm r4!, {r0}
- subs r2, 0x10
- cmp r2, 0xF
- bhi _080B5864
- cmp r2, 0x3
- bls _080B5888
-_080B587E:
- ldm r1!, {r0}
- stm r4!, {r0}
- subs r2, 0x4
- cmp r2, 0x3
- bhi _080B587E
-_080B5888:
- adds r3, r1, 0
-_080B588A:
- subs r2, 0x1
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _080B58A4
- adds r1, r0, 0
-_080B5896:
- ldrb r0, [r3]
- strb r0, [r4]
- adds r3, 0x1
- adds r4, 0x1
- subs r2, 0x1
- cmp r2, r1
- bne _080B5896
-_080B58A4:
- adds r0, r5, 0
- pop {r4,r5,pc}
- thumb_func_end memmove
-
- .align 2, 0 @ don't pad with nop
- .section .text.mlock
-
- thumb_func_start __malloc_lock
-__malloc_lock:
- bx lr
- thumb_func_end __malloc_lock
-
- thumb_func_start __malloc_unlock
-__malloc_unlock:
- bx lr
- thumb_func_end __malloc_unlock
-
- .align 2, 0 @ don't pad with nop
- .section .text.mprec
-
- thumb_func_start _Balloc
-_Balloc:
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- ldr r0, [r4, 0x4C]
- cmp r0, 0
- bne _080B58CC
- adds r0, r4, 0
- movs r1, 0x4
- movs r2, 0x10
- bl _calloc_r
- str r0, [r4, 0x4C]
- cmp r0, 0
- beq _080B58F4
-_080B58CC:
- ldr r1, [r4, 0x4C]
- lsls r0, r6, 2
- adds r2, r0, r1
- ldr r1, [r2]
- cmp r1, 0
- beq _080B58DE
- ldr r0, [r1]
- str r0, [r2]
- b _080B58FC
-_080B58DE:
- movs r5, 0x1
- lsls r5, r6
- lsls r2, r5, 2
- adds r2, 0x14
- adds r0, r4, 0
- movs r1, 0x1
- bl _calloc_r
- adds r1, r0, 0
- cmp r1, 0
- bne _080B58F8
-_080B58F4:
- movs r0, 0
- b _080B5904
-_080B58F8:
- str r6, [r1, 0x4]
- str r5, [r1, 0x8]
-_080B58FC:
- movs r0, 0
- str r0, [r1, 0x10]
- str r0, [r1, 0xC]
- adds r0, r1, 0
-_080B5904:
- pop {r4-r6,pc}
- thumb_func_end _Balloc
-
- thumb_func_start _Bfree
-_Bfree:
- adds r3, r0, 0
- adds r2, r1, 0
- cmp r2, 0
- beq _080B591E
- ldr r0, [r2, 0x4]
- ldr r1, [r3, 0x4C]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- str r1, [r2]
- str r2, [r0]
-_080B591E:
- bx lr
- thumb_func_end _Bfree
-
- thumb_func_start _multadd
-_multadd:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r0
- adds r5, r1, 0
- adds r4, r2, 0
- mov r8, r3
- ldr r6, [r5, 0x10]
- adds r3, r5, 0
- adds r3, 0x14
- movs r7, 0
- ldr r0, _080B59B4
- mov r12, r0
-_080B593C:
- ldr r1, [r3]
- adds r0, r1, 0
- mov r2, r12
- ands r0, r2
- adds r2, r0, 0
- muls r2, r4
- add r2, r8
- lsrs r1, 16
- adds r0, r1, 0
- muls r0, r4
- lsrs r1, r2, 16
- adds r0, r1
- lsrs r1, r0, 16
- mov r8, r1
- lsls r0, 16
- mov r1, r12
- ands r2, r1
- adds r0, r2
- stm r3!, {r0}
- adds r7, 0x1
- cmp r7, r6
- blt _080B593C
- mov r2, r8
- cmp r2, 0
- beq _080B59AA
- ldr r0, [r5, 0x8]
- cmp r6, r0
- blt _080B599A
- ldr r1, [r5, 0x4]
- adds r1, 0x1
- mov r0, r9
- bl _Balloc
- adds r4, r0, 0
- adds r0, 0xC
- adds r1, r5, 0
- adds r1, 0xC
- ldr r2, [r5, 0x10]
- lsls r2, 2
- adds r2, 0x8
- bl memcpy
- mov r0, r9
- adds r1, r5, 0
- bl _Bfree
- adds r5, r4, 0
-_080B599A:
- lsls r1, r6, 2
- adds r0, r5, 0
- adds r0, 0x14
- adds r0, r1
- mov r1, r8
- str r1, [r0]
- adds r6, 0x1
- str r6, [r5, 0x10]
-_080B59AA:
- adds r0, r5, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7,pc}
- .align 2, 0
-_080B59B4: .4byte 0x0000ffff
- thumb_func_end _multadd
-
- thumb_func_start _s2b
-_s2b:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- mov r8, r3
- mov r0, r8
- adds r0, 0x8
- movs r1, 0x9
- bl __divsi3
- movs r1, 0
- movs r2, 0x1
- cmp r0, 0x1
- ble _080B59E0
-_080B59D8:
- lsls r2, 1
- adds r1, 0x1
- cmp r0, r2
- bgt _080B59D8
-_080B59E0:
- adds r0, r7, 0
- bl _Balloc
- adds r1, r0, 0
- ldr r0, [sp, 0x18]
- str r0, [r1, 0x14]
- movs r0, 0x1
- str r0, [r1, 0x10]
- movs r5, 0x9
- cmp r6, 0x9
- ble _080B5A12
- adds r4, 0x9
-_080B59F8:
- ldrb r3, [r4]
- subs r3, 0x30
- adds r4, 0x1
- adds r0, r7, 0
- movs r2, 0xA
- bl _multadd
- adds r1, r0, 0
- adds r5, 0x1
- cmp r5, r6
- blt _080B59F8
- adds r4, 0x1
- b _080B5A14
-_080B5A12:
- adds r4, 0xA
-_080B5A14:
- cmp r5, r8
- bge _080B5A32
- mov r0, r8
- subs r5, r0, r5
-_080B5A1C:
- ldrb r3, [r4]
- subs r3, 0x30
- adds r4, 0x1
- adds r0, r7, 0
- movs r2, 0xA
- bl _multadd
- adds r1, r0, 0
- subs r5, 0x1
- cmp r5, 0
- bne _080B5A1C
-_080B5A32:
- adds r0, r1, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7,pc}
- thumb_func_end _s2b
-
- thumb_func_start _hi0bits
-_hi0bits:
- adds r1, r0, 0
- movs r2, 0
- ldr r0, _080B5A8C
- ands r0, r1
- cmp r0, 0
- bne _080B5A4C
- movs r2, 0x10
- lsls r1, 16
-_080B5A4C:
- movs r0, 0xFF
- lsls r0, 24
- ands r0, r1
- cmp r0, 0
- bne _080B5A5A
- adds r2, 0x8
- lsls r1, 8
-_080B5A5A:
- movs r0, 0xF0
- lsls r0, 24
- ands r0, r1
- cmp r0, 0
- bne _080B5A68
- adds r2, 0x4
- lsls r1, 4
-_080B5A68:
- movs r0, 0xC0
- lsls r0, 24
- ands r0, r1
- cmp r0, 0
- bne _080B5A76
- adds r2, 0x2
- lsls r1, 2
-_080B5A76:
- cmp r1, 0
- blt _080B5A90
- adds r2, 0x1
- movs r0, 0x80
- lsls r0, 23
- ands r0, r1
- cmp r0, 0
- bne _080B5A90
- movs r0, 0x20
- b _080B5A92
- .align 2, 0
-_080B5A8C: .4byte 0xffff0000
-_080B5A90:
- adds r0, r2, 0
-_080B5A92:
- bx lr
- thumb_func_end _hi0bits
-
- thumb_func_start _lo0bits
-_lo0bits:
- adds r3, r0, 0
- ldr r1, [r3]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080B5AC4
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B5AAC
- movs r0, 0
- b _080B5B14
-_080B5AAC:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080B5ABC
- lsrs r0, r1, 1
- str r0, [r3]
- movs r0, 0x1
- b _080B5B14
-_080B5ABC:
- lsrs r0, r1, 2
- str r0, [r3]
- movs r0, 0x2
- b _080B5B14
-_080B5AC4:
- movs r2, 0
- ldr r0, _080B5B0C
- ands r0, r1
- cmp r0, 0
- bne _080B5AD2
- movs r2, 0x10
- lsrs r1, 16
-_080B5AD2:
- movs r0, 0xFF
- ands r0, r1
- cmp r0, 0
- bne _080B5ADE
- adds r2, 0x8
- lsrs r1, 8
-_080B5ADE:
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _080B5AEA
- adds r2, 0x4
- lsrs r1, 4
-_080B5AEA:
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080B5AF6
- adds r2, 0x2
- lsrs r1, 2
-_080B5AF6:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080B5B10
- adds r2, 0x1
- lsrs r1, 1
- cmp r1, 0
- bne _080B5B10
- movs r0, 0x20
- b _080B5B14
- .align 2, 0
-_080B5B0C: .4byte 0x0000ffff
-_080B5B10:
- str r1, [r3]
- adds r0, r2, 0
-_080B5B14:
- bx lr
- thumb_func_end _lo0bits
-
- thumb_func_start _i2b
-_i2b:
- push {r4,lr}
- adds r4, r1, 0
- movs r1, 0x1
- bl _Balloc
- str r4, [r0, 0x14]
- movs r1, 0x1
- str r1, [r0, 0x10]
- pop {r4,pc}
- thumb_func_end _i2b
-
- thumb_func_start _multiply
-_multiply:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- adds r3, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- ldr r1, [r4, 0x10]
- ldr r0, [r5, 0x10]
- cmp r1, r0
- bge _080B5B4C
- str r4, [sp]
- adds r4, r5, 0
- ldr r5, [sp]
-_080B5B4C:
- ldr r1, [r4, 0x4]
- ldr r6, [r4, 0x10]
- ldr r0, [r5, 0x10]
- mov r8, r0
- mov r2, r8
- adds r2, r6, r2
- str r2, [sp, 0x4]
- ldr r0, [r4, 0x8]
- cmp r2, r0
- ble _080B5B62
- adds r1, 0x1
-_080B5B62:
- adds r0, r3, 0
- bl _Balloc
- str r0, [sp]
- adds r7, r0, 0
- adds r7, 0x14
- ldr r1, [sp, 0x4]
- lsls r0, r1, 2
- adds r2, r7, r0
- str r2, [sp, 0x8]
- str r0, [sp, 0x18]
- adds r1, r4, 0
- adds r1, 0x14
- lsls r3, r6, 2
- adds r2, r5, 0
- adds r2, 0x14
- mov r5, r8
- lsls r4, r5, 2
- ldr r0, [sp, 0x8]
- cmp r7, r0
- bcs _080B5B96
- movs r0, 0
-_080B5B8E:
- stm r7!, {r0}
- ldr r5, [sp, 0x8]
- cmp r7, r5
- bcc _080B5B8E
-_080B5B96:
- str r1, [sp, 0x8]
- adds r3, r1, r3
- str r3, [sp, 0xC]
- mov r8, r2
- add r4, r8
- str r4, [sp, 0x10]
- ldr r0, [sp]
- adds r0, 0x14
- mov r9, r0
- mov r1, r9
- str r1, [sp, 0x20]
- cmp r8, r4
- bcs _080B5C5E
-_080B5BB0:
- mov r2, r8
- ldm r2!, {r6}
- str r2, [sp, 0x14]
- ldr r0, _080B5C6C
- ands r6, r0
- mov r4, r9
- adds r4, 0x4
- str r4, [sp, 0x1C]
- cmp r6, 0
- beq _080B5C08
- ldr r7, [sp, 0x8]
- mov r5, r9
- movs r1, 0
- mov r12, r1
- mov r10, r0
-_080B5BCE:
- ldm r7!, {r3}
- adds r0, r3, 0
- mov r2, r10
- ands r0, r2
- adds r1, r0, 0
- muls r1, r6
- ldr r2, [r5]
- adds r0, r2, 0
- mov r4, r10
- ands r0, r4
- adds r1, r0
- mov r0, r12
- adds r4, r1, r0
- lsrs r1, r4, 16
- lsrs r3, 16
- adds r0, r3, 0
- muls r0, r6
- lsrs r2, 16
- adds r0, r2
- adds r2, r0, r1
- lsrs r0, r2, 16
- mov r12, r0
- strh r2, [r5]
- strh r4, [r5, 0x2]
- adds r5, 0x4
- ldr r1, [sp, 0xC]
- cmp r7, r1
- bcc _080B5BCE
- str r0, [r5]
-_080B5C08:
- mov r2, r8
- ldrh r6, [r2, 0x2]
- cmp r6, 0
- beq _080B5C50
- ldr r7, [sp, 0x8]
- mov r5, r9
- movs r4, 0
- mov r12, r4
- ldr r2, [r5]
- ldr r3, _080B5C6C
-_080B5C1C:
- ldm r7!, {r1}
- adds r0, r1, 0
- ands r0, r3
- muls r0, r6
- ldrh r4, [r5, 0x2]
- adds r4, r0
- mov r8, r4
- add r4, r12
- lsrs r0, r4, 16
- mov r12, r0
- strh r4, [r5]
- strh r2, [r5, 0x2]
- adds r5, 0x4
- lsrs r1, 16
- muls r1, r6
- ldr r0, [r5]
- ands r0, r3
- adds r1, r0
- mov r4, r12
- adds r2, r1, r4
- lsrs r0, r2, 16
- mov r12, r0
- ldr r1, [sp, 0xC]
- cmp r7, r1
- bcc _080B5C1C
- str r2, [r5]
-_080B5C50:
- ldr r2, [sp, 0x14]
- mov r8, r2
- ldr r4, [sp, 0x1C]
- mov r9, r4
- ldr r5, [sp, 0x10]
- cmp r8, r5
- bcc _080B5BB0
-_080B5C5E:
- ldr r0, [sp, 0x20]
- ldr r1, [sp, 0x18]
- adds r5, r0, r1
- ldr r2, [sp, 0x4]
- cmp r2, 0
- ble _080B5C82
- b _080B5C7A
- .align 2, 0
-_080B5C6C: .4byte 0x0000ffff
-_080B5C70:
- ldr r4, [sp, 0x4]
- subs r4, 0x1
- str r4, [sp, 0x4]
- cmp r4, 0
- ble _080B5C82
-_080B5C7A:
- subs r5, 0x4
- ldr r0, [r5]
- cmp r0, 0
- beq _080B5C70
-_080B5C82:
- ldr r5, [sp, 0x4]
- ldr r0, [sp]
- str r5, [r0, 0x10]
- ldr r0, [sp]
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7,pc}
- thumb_func_end _multiply
-
- thumb_func_start _pow5mult
-_pow5mult:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- adds r7, r1, 0
- adds r6, r2, 0
- movs r1, 0x3
- ands r1, r6
- cmp r1, 0
- beq _080B5CC2
- ldr r0, _080B5CE4
- subs r1, 0x1
- lsls r1, 2
- adds r1, r0
- ldr r2, [r1]
- mov r0, r8
- adds r1, r7, 0
- movs r3, 0
- bl _multadd
- adds r7, r0, 0
-_080B5CC2:
- asrs r6, 2
- cmp r6, 0
- beq _080B5D28
- mov r0, r8
- ldr r5, [r0, 0x48]
- adds r4, r5, 0
- cmp r5, 0
- bne _080B5D04
- ldr r1, _080B5CE8
- bl _i2b
- mov r1, r8
- str r0, [r1, 0x48]
- adds r5, r0, 0
- str r4, [r5]
- b _080B5D04
- .align 2, 0
-_080B5CE4: .4byte gUnknown_826FEB4
-_080B5CE8: .4byte 0x00000271
-_080B5CEC:
- ldr r0, [r5]
- adds r4, r0, 0
- cmp r0, 0
- bne _080B5D02
- mov r0, r8
- adds r1, r5, 0
- adds r2, r5, 0
- bl _multiply
- str r0, [r5]
- str r4, [r0]
-_080B5D02:
- adds r5, r0, 0
-_080B5D04:
- movs r0, 0x1
- ands r0, r6
- cmp r0, 0
- beq _080B5D22
- mov r0, r8
- adds r1, r7, 0
- adds r2, r5, 0
- bl _multiply
- adds r4, r0, 0
- mov r0, r8
- adds r1, r7, 0
- bl _Bfree
- adds r7, r4, 0
-_080B5D22:
- asrs r6, 1
- cmp r6, 0
- bne _080B5CEC
-_080B5D28:
- adds r0, r7, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7,pc}
- thumb_func_end _pow5mult
-
- thumb_func_start _lshift
-_lshift:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r0
- mov r8, r1
- adds r5, r2, 0
- asrs r6, r5, 5
- ldr r1, [r1, 0x4]
- mov r2, r8
- ldr r0, [r2, 0x10]
- adds r0, r6, r0
- adds r7, r0, 0x1
- ldr r2, [r2, 0x8]
- cmp r7, r2
- ble _080B5D5A
-_080B5D52:
- adds r1, 0x1
- lsls r2, 1
- cmp r7, r2
- bgt _080B5D52
-_080B5D5A:
- mov r0, r10
- bl _Balloc
- mov r9, r0
- mov r4, r9
- adds r4, 0x14
- mov r0, r8
- adds r0, 0x14
- cmp r6, 0
- ble _080B5D7A
- movs r1, 0
- adds r2, r6, 0
-_080B5D72:
- stm r4!, {r1}
- subs r2, 0x1
- cmp r2, 0
- bne _080B5D72
-_080B5D7A:
- adds r3, r0, 0
- mov r1, r8
- ldr r0, [r1, 0x10]
- lsls r0, 2
- adds r6, r3, r0
- movs r0, 0x1F
- ands r5, r0
- cmp r5, 0
- beq _080B5DAC
- movs r0, 0x20
- subs r1, r0, r5
- movs r2, 0
-_080B5D92:
- ldr r0, [r3]
- lsls r0, r5
- orrs r0, r2
- stm r4!, {r0}
- ldm r3!, {r2}
- lsrs r2, r1
- cmp r3, r6
- bcc _080B5D92
- str r2, [r4]
- cmp r2, 0
- beq _080B5DB4
- adds r7, 0x1
- b _080B5DB4
-_080B5DAC:
- ldm r3!, {r0}
- stm r4!, {r0}
- cmp r3, r6
- bcc _080B5DAC
-_080B5DB4:
- subs r0, r7, 0x1
- mov r2, r9
- str r0, [r2, 0x10]
- mov r0, r10
- mov r1, r8
- bl _Bfree
- mov r0, r9
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7,pc}
- thumb_func_end _lshift
-
- thumb_func_start __mcmp
-__mcmp:
- push {r4,r5,lr}
- adds r2, r0, 0
- adds r5, r1, 0
- ldr r0, [r2, 0x10]
- ldr r1, [r5, 0x10]
- subs r0, r1
- cmp r0, 0
- bne _080B5E0C
- adds r4, r2, 0
- adds r4, 0x14
- lsls r1, 2
- adds r3, r4, r1
- adds r0, r5, 0
- adds r0, 0x14
- adds r1, r0, r1
-_080B5DEE:
- subs r3, 0x4
- subs r1, 0x4
- ldr r0, [r3]
- ldr r2, [r1]
- cmp r0, r2
- beq _080B5E06
- movs r1, 0x1
- cmp r0, r2
- bcs _080B5E02
- subs r1, 0x2
-_080B5E02:
- adds r0, r1, 0
- b _080B5E0C
-_080B5E06:
- cmp r3, r4
- bhi _080B5DEE
- movs r0, 0
-_080B5E0C:
- pop {r4,r5,pc}
- thumb_func_end __mcmp
-
- thumb_func_start __mdiff
-__mdiff:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r6, r0, 0
- adds r5, r1, 0
- mov r8, r2
- adds r0, r5, 0
- mov r1, r8
- bl __mcmp
- adds r4, r0, 0
- cmp r4, 0
- bne _080B5E42
- adds r0, r6, 0
- movs r1, 0
- bl _Balloc
- adds r7, r0, 0
- movs r0, 0x1
- str r0, [r7, 0x10]
- str r4, [r7, 0x14]
- b _080B5EF2
-_080B5E42:
- cmp r4, 0
- bge _080B5E50
- adds r7, r5, 0
- mov r5, r8
- mov r8, r7
- movs r4, 0x1
- b _080B5E52
-_080B5E50:
- movs r4, 0
-_080B5E52:
- ldr r1, [r5, 0x4]
- adds r0, r6, 0
- bl _Balloc
- adds r7, r0, 0
- str r4, [r7, 0xC]
- ldr r0, [r5, 0x10]
- mov r9, r0
- adds r6, r5, 0
- adds r6, 0x14
- lsls r0, 2
- adds r0, r6
- mov r10, r0
- mov r1, r8
- ldr r0, [r1, 0x10]
- movs r3, 0x14
- add r3, r8
- mov r12, r3
- lsls r0, 2
- add r0, r12
- str r0, [sp]
- adds r4, r7, 0
- adds r4, 0x14
- movs r5, 0
- ldr r0, _080B5EDC
- mov r8, r0
-_080B5E86:
- ldm r6!, {r1}
- str r1, [sp, 0x4]
- mov r3, r8
- ands r1, r3
- mov r0, r12
- adds r0, 0x4
- mov r12, r0
- subs r0, 0x4
- ldm r0!, {r2}
- adds r0, r2, 0
- ands r0, r3
- subs r1, r0
- adds r0, r1, r5
- asrs r5, r0, 16
- ldr r1, [sp, 0x4]
- lsrs r3, r1, 16
- lsrs r2, 16
- subs r3, r2
- adds r1, r3, r5
- asrs r5, r1, 16
- strh r1, [r4]
- strh r0, [r4, 0x2]
- adds r4, 0x4
- ldr r3, [sp]
- cmp r12, r3
- bcc _080B5E86
- cmp r6, r10
- bcs _080B5EE6
- ldr r2, _080B5EDC
-_080B5EC0:
- ldm r6!, {r1}
- adds r0, r1, 0
- ands r0, r2
- adds r0, r5
- asrs r5, r0, 16
- lsrs r1, 16
- adds r1, r5
- asrs r5, r1, 16
- strh r1, [r4]
- strh r0, [r4, 0x2]
- adds r4, 0x4
- cmp r6, r10
- bcc _080B5EC0
- b _080B5EE6
- .align 2, 0
-_080B5EDC: .4byte 0x0000ffff
-_080B5EE0:
- movs r0, 0x1
- negs r0, r0
- add r9, r0
-_080B5EE6:
- subs r4, 0x4
- ldr r0, [r4]
- cmp r0, 0
- beq _080B5EE0
- mov r1, r9
- str r1, [r7, 0x10]
-_080B5EF2:
- adds r0, r7, 0
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7,pc}
- thumb_func_end __mdiff
-
- thumb_func_start _ulp
-_ulp:
- push {r4,lr}
- ldr r2, _080B5F14
- ands r2, r0
- ldr r0, _080B5F18
- adds r2, r0
- cmp r2, 0
- ble _080B5F1C
- adds r3, r2, 0
- movs r4, 0
- b _080B5F46
- .align 2, 0
-_080B5F14: .4byte 0x7ff00000
-_080B5F18: .4byte 0xfcc00000
-_080B5F1C:
- negs r0, r2
- asrs r2, r0, 20
- cmp r2, 0x13
- bgt _080B5F30
- movs r0, 0x80
- lsls r0, 12
- adds r3, r0, 0
- asrs r3, r2
- movs r4, 0
- b _080B5F46
-_080B5F30:
- movs r3, 0
- subs r2, 0x14
- cmp r2, 0x1E
- bgt _080B5F42
- movs r0, 0x1F
- subs r0, r2
- movs r1, 0x1
- lsls r1, r0
- b _080B5F44
-_080B5F42:
- movs r1, 0x1
-_080B5F44:
- adds r4, r1, 0
-_080B5F46:
- adds r1, r4, 0
- adds r0, r3, 0
- pop {r4,pc}
- thumb_func_end _ulp
-
- thumb_func_start _b2d
-_b2d:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r1, 0
- movs r1, 0x14
- adds r1, r0
- mov r8, r1
- ldr r0, [r0, 0x10]
- lsls r0, 2
- adds r5, r1, r0
- subs r5, 0x4
- ldr r2, [r5]
- adds r0, r2, 0
- str r2, [sp]
- bl _hi0bits
- adds r3, r0, 0
- movs r0, 0x20
- subs r0, r3
- str r0, [r4]
- ldr r2, [sp]
- cmp r3, 0xA
- bgt _080B5FAC
- movs r0, 0xB
- subs r0, r3
- adds r1, r2, 0
- lsrs r1, r0
- ldr r0, _080B5F94
- adds r6, r1, 0
- orrs r6, r0
- cmp r5, r8
- bls _080B5F98
- subs r5, 0x4
- ldr r1, [r5]
- b _080B5F9A
- .align 2, 0
-_080B5F94: .4byte 0x3ff00000
-_080B5F98:
- movs r1, 0
-_080B5F9A:
- adds r0, r3, 0
- adds r0, 0x15
- lsls r2, r0
- movs r0, 0xB
- subs r0, r3
- lsrs r1, r0
- adds r7, r2, 0
- orrs r7, r1
- b _080B5FF8
-_080B5FAC:
- cmp r5, r8
- bls _080B5FB6
- subs r5, 0x4
- ldr r4, [r5]
- b _080B5FB8
-_080B5FB6:
- movs r4, 0
-_080B5FB8:
- subs r3, 0xB
- cmp r3, 0
- beq _080B5FF0
- lsls r2, r3
- movs r0, 0x20
- subs r0, r3
- adds r1, r4, 0
- lsrs r1, r0
- ldr r0, _080B5FDC
- orrs r1, r0
- adds r6, r2, 0
- orrs r6, r1
- cmp r5, r8
- bls _080B5FE0
- subs r5, 0x4
- ldr r2, [r5]
- b _080B5FE2
- .align 2, 0
-_080B5FDC: .4byte 0x3ff00000
-_080B5FE0:
- movs r2, 0
-_080B5FE2:
- lsls r4, r3
- movs r0, 0x20
- subs r0, r3
- lsrs r2, r0
- adds r7, r4, 0
- orrs r7, r2
- b _080B5FF8
-_080B5FF0:
- ldr r0, _080B6004
- adds r6, r2, 0
- orrs r6, r0
- adds r7, r4, 0
-_080B5FF8:
- adds r1, r7, 0
- adds r0, r6, 0
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7,pc}
- .align 2, 0
-_080B6004: .4byte 0x3ff00000
- thumb_func_end _b2d
-
- thumb_func_start _d2b
-_d2b:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r9, r3
- ldr r3, [sp, 0x28]
- mov r10, r3
- adds r5, r2, 0
- adds r4, r1, 0
- movs r1, 0x1
- bl _Balloc
- adds r6, r0, 0
- movs r0, 0x14
- adds r0, r6
- mov r8, r0
- ldr r2, _080B6070
- adds r1, r4, 0
- ands r2, r1
- str r2, [sp, 0x4]
- ldr r0, _080B6074
- ands r4, r0
- lsrs r7, r4, 20
- cmp r7, 0
- beq _080B6046
- movs r0, 0x80
- lsls r0, 13
- orrs r0, r2
- str r0, [sp, 0x4]
-_080B6046:
- str r5, [sp]
- cmp r5, 0
- beq _080B6090
- mov r0, sp
- bl _lo0bits
- adds r2, r0, 0
- cmp r2, 0
- beq _080B6078
- movs r0, 0x20
- subs r0, r2
- ldr r1, [sp, 0x4]
- lsls r1, r0
- ldr r0, [sp]
- orrs r0, r1
- str r0, [r6, 0x14]
- ldr r0, [sp, 0x4]
- lsrs r0, r2
- str r0, [sp, 0x4]
- b _080B607C
- .align 2, 0
-_080B6070: .4byte 0x000fffff
-_080B6074: .4byte 0x7fffffff
-_080B6078:
- ldr r0, [sp]
- str r0, [r6, 0x14]
-_080B607C:
- ldr r0, [sp, 0x4]
- mov r1, r8
- str r0, [r1, 0x4]
- movs r1, 0x1
- cmp r0, 0
- beq _080B608A
- movs r1, 0x2
-_080B608A:
- str r1, [r6, 0x10]
- adds r4, r1, 0
- b _080B60A4
-_080B6090:
- add r0, sp, 0x4
- bl _lo0bits
- adds r2, r0, 0
- ldr r0, [sp, 0x4]
- str r0, [r6, 0x14]
- movs r0, 0x1
- str r0, [r6, 0x10]
- movs r4, 0x1
- adds r2, 0x20
-_080B60A4:
- cmp r7, 0
- beq _080B60C0
- ldr r3, _080B60BC
- adds r0, r2, r3
- adds r0, r7, r0
- mov r1, r9
- str r0, [r1]
- movs r0, 0x35
- subs r0, r2
- mov r3, r10
- str r0, [r3]
- b _080B60DC
- .align 2, 0
-_080B60BC: .4byte 0xfffffbcd
-_080B60C0:
- ldr r1, _080B60EC
- adds r0, r2, r1
- mov r3, r9
- str r0, [r3]
- lsls r0, r4, 2
- add r0, r8
- subs r0, 0x4
- ldr r0, [r0]
- bl _hi0bits
- lsls r1, r4, 5
- subs r1, r0
- mov r0, r10
- str r1, [r0]
-_080B60DC:
- adds r0, r6, 0
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7,pc}
- .align 2, 0
-_080B60EC: .4byte 0xfffffbce
- thumb_func_end _d2b
-
- thumb_func_start _ratio
-_ratio:
- push {r4-r7,lr}
- sub sp, 0x10
- adds r4, r0, 0
- adds r5, r1, 0
- mov r1, sp
- bl _b2d
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- add r1, sp, 0x4
- adds r0, r5, 0
- bl _b2d
- adds r7, r1, 0
- adds r6, r0, 0
- ldr r2, [sp]
- ldr r0, [sp, 0x4]
- subs r2, r0
- ldr r0, [r4, 0x10]
- ldr r1, [r5, 0x10]
- subs r0, r1
- lsls r0, 5
- adds r0, r2, r0
- cmp r0, 0
- ble _080B612C
- lsls r0, 20
- ldr r1, [sp, 0x8]
- adds r0, r1, r0
- str r0, [sp, 0x8]
- b _080B6130
-_080B612C:
- lsls r0, 20
- subs r6, r0
-_080B6130:
- ldr r0, [sp, 0x8]
- ldr r1, [sp, 0xC]
- adds r3, r7, 0
- adds r2, r6, 0
- bl __divdf3
- add sp, 0x10
- pop {r4-r7,pc}
- thumb_func_end _ratio
-
- thumb_func_start _mprec_log10
-_mprec_log10:
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080B615C
- ldr r0, _080B6158
- cmp r4, 0x17
- bgt _080B6164
- ldr r0, _080B6160
- lsls r1, r4, 3
- adds r1, r0
- ldr r0, [r1]
- ldr r1, [r1, 0x4]
- b _080B6176
- .align 2, 0
-_080B6158: .4byte 0x3ff00000
-_080B615C: .4byte 0x00000000
-_080B6160: .4byte __mprec_tens
-_080B6164:
- cmp r4, 0
- ble _080B6176
-_080B6168:
- ldr r3, _080B617C
- ldr r2, _080B6178
- bl __muldf3
- subs r4, 0x1
- cmp r4, 0
- bgt _080B6168
-_080B6176:
- pop {r4,pc}
- .align 2, 0
-_080B6178: .4byte 0x40240000
-_080B617C: .4byte 0x00000000
- thumb_func_end _mprec_log10
-
- .align 2, 0 @ don't pad with nop
- .section .text.s_isinf
-
- thumb_func_start isinf
-isinf:
- ldr r3, _080B619C
- ands r3, r0
- negs r2, r1
- orrs r2, r1
- lsrs r2, 31
- orrs r3, r2
- ldr r0, _080B61A0
- subs r3, r0, r3
- negs r0, r3
- orrs r3, r0
- lsrs r3, 31
- movs r0, 0x1
- subs r0, r3
- bx lr
- .align 2, 0
- @ inf
-_080B619C: .4byte 0x7fffffff
-_080B61A0: .4byte 0x7ff00000
- thumb_func_end isinf
-
- .align 2, 0 @ don't pad with nop
- .section .text.s_isnan
-
- thumb_func_start isnan
-isnan:
- ldr r3, _080B61BC
- ands r3, r0
- negs r2, r1
- orrs r2, r1
- lsrs r2, 31
- orrs r3, r2
- ldr r0, _080B61C0
- subs r3, r0, r3
- lsrs r3, 31
- adds r0, r3, 0
- bx lr
- .align 2, 0
- @ nan
-_080B61BC: .4byte 0x7fffffff
-_080B61C0: .4byte 0x7ff00000
- thumb_func_end isnan
-
- .align 2, 0 @ don't pad with nop
- .section .text.sbrkr
-
- thumb_func_start _sbrk_r
-_sbrk_r:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r0, r1, 0
- ldr r4, _080B61EC
- movs r1, 0
- str r1, [r4]
- bl _sbrk
- adds r1, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080B61E6
- ldr r0, [r4]
- cmp r0, 0
- beq _080B61E6
- str r0, [r5]
-_080B61E6:
- adds r0, r1, 0
- pop {r4,r5,pc}
- .align 2, 0
-_080B61EC: .4byte errno
- thumb_func_end _sbrk_r
-
- .align 2, 0 @ don't pad with nop
- .section .text.stdio
-
- thumb_func_start __sread
-__sread:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r3, r2, 0
- ldr r0, [r5, 0x54]
- movs r2, 0xE
- ldrsh r1, [r5, r2]
- adds r2, r4, 0
- bl _read_r
- adds r1, r0, 0
- cmp r1, 0
- blt _080B6212
- ldr r0, [r5, 0x50]
- adds r0, r1
- str r0, [r5, 0x50]
- b _080B621A
-_080B6212:
- ldr r0, _080B6220
- ldrh r2, [r5, 0xC]
- ands r0, r2
- strh r0, [r5, 0xC]
-_080B621A:
- adds r0, r1, 0
- pop {r4,r5,pc}
- .align 2, 0
-_080B6220: .4byte 0xffffefff
- thumb_func_end __sread
-
- thumb_func_start __swrite
-__swrite:
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- movs r0, 0x80
- lsls r0, 1
- ldrh r1, [r4, 0xC]
- ands r0, r1
- cmp r0, 0
- beq _080B6246
- ldr r0, [r4, 0x54]
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- movs r2, 0
- movs r3, 0x2
- bl _lseek_r
-_080B6246:
- ldr r0, _080B6260
- ldrh r1, [r4, 0xC]
- ands r0, r1
- strh r0, [r4, 0xC]
- ldr r0, [r4, 0x54]
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- adds r2, r5, 0
- adds r3, r6, 0
- bl _write_r
- pop {r4-r6,pc}
- .align 2, 0
-_080B6260: .4byte 0xffffefff
- thumb_func_end __swrite
-
- thumb_func_start __sseek
-__sseek:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r3, r2, 0
- ldr r0, [r5, 0x54]
- movs r2, 0xE
- ldrsh r1, [r5, r2]
- adds r2, r4, 0
- bl _lseek_r
- adds r1, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080B6290
- ldr r0, _080B628C
- ldrh r2, [r5, 0xC]
- ands r0, r2
- strh r0, [r5, 0xC]
- b _080B629E
- .align 2, 0
-_080B628C: .4byte 0xffffefff
-_080B6290:
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- ldrh r2, [r5, 0xC]
- orrs r0, r2
- strh r0, [r5, 0xC]
- str r1, [r5, 0x50]
-_080B629E:
- adds r0, r1, 0
- pop {r4,r5,pc}
- thumb_func_end __sseek
-
- thumb_func_start __sclose
-__sclose:
- push {lr}
- ldr r2, [r0, 0x54]
- movs r3, 0xE
- ldrsh r1, [r0, r3]
- adds r0, r2, 0
- bl _close_r
- pop {pc}
- thumb_func_end __sclose
-
- .align 2, 0 @ don't pad with nop
- .section .text.syscalls
-
- thumb_func_start findslot
-findslot:
- adds r3, r0, 0
- movs r1, 0
- ldr r2, _080B62BC
- b _080B62C8
- .align 2, 0
-_080B62BC: .4byte openfiles
-_080B62C0:
- adds r2, 0x8
- adds r1, 0x1
- cmp r1, 0x13
- bgt _080B62CE
-_080B62C8:
- ldr r0, [r2]
- cmp r0, r3
- bne _080B62C0
-_080B62CE:
- adds r0, r1, 0
- bx lr
- thumb_func_end findslot
-
- thumb_func_start remap_handle
-remap_handle:
- adds r2, r0, 0
- ldr r0, _080B62E8
- ldr r1, [r0]
- ldr r0, [r1, 0x4]
- movs r3, 0xE
- ldrsh r0, [r0, r3]
- cmp r2, r0
- bne _080B62F0
- ldr r0, _080B62EC
- b _080B6316
- .align 2, 0
-_080B62E8: .4byte _impure_ptr
-_080B62EC: .4byte monitor_stdin
-_080B62F0:
- ldr r0, [r1, 0x8]
- movs r3, 0xE
- ldrsh r0, [r0, r3]
- cmp r2, r0
- bne _080B6304
- ldr r0, _080B6300
- b _080B6316
- .align 2, 0
-_080B6300: .4byte monitor_stdout
-_080B6304:
- ldr r0, [r1, 0xC]
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r2, r0
- beq _080B6314
- adds r0, r2, 0
- subs r0, 0x20
- b _080B6318
-_080B6314:
- ldr r0, _080B631C
-_080B6316:
- ldr r0, [r0]
-_080B6318:
- bx lr
- .align 2, 0
-_080B631C: .4byte monitor_stderr
- thumb_func_end remap_handle
-
- thumb_func_start initialise_monitor_handles
-initialise_monitor_handles:
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r4, _080B637C
- str r4, [sp]
- movs r3, 0x3
- str r3, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0x4]
- movs r5, 0x1
- adds r0, r5, 0
- mov r1, sp
- swi 0xAB
- adds r2, r0, 0
- ldr r5, _080B6380
- str r2, [r5]
- str r4, [sp]
- str r3, [sp, 0x8]
- movs r0, 0x4
- str r0, [sp, 0x4]
- ldr r3, _080B6384
- movs r4, 0x1
- adds r0, r4, 0
- mov r1, sp
- swi 0xAB
- adds r2, r0, 0
- ldr r0, _080B6388
- str r2, [r0]
- str r2, [r3]
- ldr r2, _080B638C
- adds r1, r2, 0
- subs r4, 0x2
- adds r0, r2, 0
- adds r0, 0x98
-_080B6362:
- str r4, [r0]
- subs r0, 0x8
- cmp r0, r1
- bge _080B6362
- movs r0, 0
- ldr r1, [r5]
- str r1, [r2]
- str r0, [r2, 0x4]
- ldr r1, [r3]
- str r1, [r2, 0x8]
- str r0, [r2, 0xC]
- add sp, 0xC
- pop {r4,r5,pc}
- .align 2, 0
-_080B637C: .4byte gUnknown_826FFD8
-_080B6380: .4byte monitor_stdin
-_080B6384: .4byte monitor_stdout
-_080B6388: .4byte monitor_stderr
-_080B638C: .4byte openfiles
- thumb_func_end initialise_monitor_handles
-
- thumb_func_start get_errno
-get_errno:
- push {r4,lr}
- movs r3, 0x13
- movs r4, 0
- adds r0, r3, 0
- adds r1, r4, 0
- swi 0xAB
- adds r2, r0, 0
- adds r0, r2, 0
- pop {r4,pc}
- thumb_func_end get_errno
-
- thumb_func_start error
-error:
- push {r4,r5,lr}
- adds r5, r0, 0
- bl __errno
- adds r4, r0, 0
- bl get_errno
- str r0, [r4]
- adds r0, r5, 0
- pop {r4,r5,pc}
- thumb_func_end error
-
- thumb_func_start wrap
-wrap:
- push {lr}
- adds r1, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080B63C8
- adds r0, r1, 0
- b _080B63CE
-_080B63C8:
- adds r0, r1, 0
- bl error
-_080B63CE:
- pop {pc}
- thumb_func_end wrap
-
- thumb_func_start _swiread
-_swiread:
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r1, 0
- adds r5, r2, 0
- bl remap_handle
- str r0, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r3, 0x6
- adds r0, r3, 0
- mov r1, sp
- swi 0xAB
- adds r2, r0, 0
- adds r0, r2, 0
- add sp, 0xC
- pop {r4,r5,pc}
- thumb_func_end _swiread
-
- thumb_func_start _read
-_read:
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r7, r2, 0
- bl remap_handle
- bl findslot
- adds r6, r0, 0
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r7, 0
- bl _swiread
- cmp r0, 0
- bge _080B641E
- movs r0, 0x1
- negs r0, r0
- bl error
- b _080B6434
-_080B641E:
- subs r2, r7, r0
- cmp r6, 0x14
- beq _080B6432
- ldr r0, _080B6438
- lsls r1, r6, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- adds r0, r2
- str r0, [r1]
-_080B6432:
- adds r0, r2, 0
-_080B6434:
- pop {r4-r7,pc}
- .align 2, 0
-_080B6438: .4byte openfiles
- thumb_func_end _read
-
- thumb_func_start _swilseek
-_swilseek:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- mov r8, r0
- adds r5, r1, 0
- adds r4, r2, 0
- bl remap_handle
- adds r7, r0, 0
- bl findslot
- adds r6, r0, 0
- cmp r4, 0x1
- bne _080B6472
- cmp r6, 0x14
- bne _080B6464
- movs r0, 0x1
- negs r0, r0
- b _080B64B4
-_080B6464:
- ldr r0, _080B64BC
- lsls r1, r6, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- adds r5, r0
- movs r4, 0
-_080B6472:
- cmp r4, 0x2
- bne _080B6484
- str r7, [sp]
- movs r3, 0xC
- adds r0, r3, 0
- mov r1, sp
- swi 0xAB
- adds r2, r0, 0
- adds r5, r2
-_080B6484:
- mov r0, r8
- bl remap_handle
- str r0, [sp]
- str r5, [sp, 0x4]
- movs r3, 0xA
- adds r0, r3, 0
- mov r1, sp
- swi 0xAB
- adds r2, r0, 0
- cmp r6, 0x14
- beq _080B64AA
- cmp r2, 0
- bne _080B64AA
- ldr r0, _080B64BC
- lsls r1, r6, 3
- adds r0, 0x4
- adds r1, r0
- str r5, [r1]
-_080B64AA:
- movs r0, 0x1
- negs r0, r0
- cmp r2, 0
- bne _080B64B4
- adds r0, r5, 0
-_080B64B4:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7,pc}
- .align 2, 0
-_080B64BC: .4byte openfiles
- thumb_func_end _swilseek
-
- thumb_func_start _lseek
-_lseek:
- push {lr}
- bl _swilseek
- bl wrap
- pop {pc}
- thumb_func_end _lseek
-
- thumb_func_start _swiwrite
-_swiwrite:
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r1, 0
- adds r5, r2, 0
- bl remap_handle
- str r0, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r3, 0x5
- adds r0, r3, 0
- mov r1, sp
- swi 0xAB
- adds r2, r0, 0
- adds r0, r2, 0
- add sp, 0xC
- pop {r4,r5,pc}
- thumb_func_end _swiwrite
-
- thumb_func_start _write
-_write:
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- bl remap_handle
- bl findslot
- adds r7, r0, 0
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl _swiwrite
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080B6518
- cmp r0, r6
- bne _080B6520
-_080B6518:
- adds r0, r1, 0
- bl error
- b _080B6536
-_080B6520:
- subs r2, r6, r0
- cmp r7, 0x14
- beq _080B6534
- ldr r0, _080B6538
- lsls r1, r7, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- adds r0, r2
- str r0, [r1]
-_080B6534:
- adds r0, r2, 0
-_080B6536:
- pop {r4-r7,pc}
- .align 2, 0
-_080B6538: .4byte openfiles
- thumb_func_end _write
-
- thumb_func_start _swiopen
-_swiopen:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r7, r0, 0
- adds r4, r1, 0
- movs r5, 0
- movs r6, 0x1
- negs r6, r6
- adds r0, r6, 0
- bl findslot
- mov r8, r0
- cmp r0, 0x14
- bne _080B655E
- adds r0, r6, 0
- b _080B65D2
-_080B655E:
- movs r0, 0x2
- ands r0, r4
- cmp r0, 0
- beq _080B6568
- movs r5, 0x2
-_080B6568:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r4
- cmp r0, 0
- beq _080B6576
- movs r0, 0x4
- orrs r5, r0
-_080B6576:
- movs r0, 0x80
- lsls r0, 3
- ands r0, r4
- cmp r0, 0
- beq _080B6584
- movs r0, 0x4
- orrs r5, r0
-_080B6584:
- movs r1, 0x8
- ands r4, r1
- cmp r4, 0
- beq _080B6594
- movs r0, 0x5
- negs r0, r0
- ands r5, r0
- orrs r5, r1
-_080B6594:
- str r7, [sp]
- adds r0, r7, 0
- bl strlen
- str r0, [sp, 0x8]
- str r5, [sp, 0x4]
- movs r2, 0x1
- adds r0, r2, 0
- mov r1, sp
- swi 0xAB
- adds r3, r0, 0
- cmp r3, 0
- blt _080B65CC
- ldr r0, _080B65C8
- mov r1, r8
- lsls r2, r1, 3
- adds r1, r2, r0
- str r3, [r1]
- adds r0, 0x4
- adds r2, r0
- movs r0, 0
- str r0, [r2]
- adds r0, r3, 0
- adds r0, 0x20
- b _080B65D2
- .align 2, 0
-_080B65C8: .4byte openfiles
-_080B65CC:
- adds r0, r3, 0
- bl error
-_080B65D2:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7,pc}
- thumb_func_end _swiopen
-
- thumb_func_start _open
-_open:
- push {r1-r3}
- push {lr}
- ldr r1, [sp, 0x4]
- bl _swiopen
- bl wrap
- pop {r3}
- add sp, 0xC
- bx r3
- thumb_func_end _open
-
- thumb_func_start _swiclose
-_swiclose:
- push {lr}
- sub sp, 0x4
- bl remap_handle
- str r0, [sp]
- bl findslot
- adds r1, r0, 0
- cmp r1, 0x14
- beq _080B6610
- ldr r0, _080B6620
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- negs r0, r0
- str r0, [r1]
-_080B6610:
- movs r3, 0x2
- adds r0, r3, 0
- mov r1, sp
- swi 0xAB
- adds r2, r0, 0
- adds r0, r2, 0
- add sp, 0x4
- pop {pc}
- .align 2, 0
-_080B6620: .4byte openfiles
- thumb_func_end _swiclose
-
- thumb_func_start _close
-_close:
- push {lr}
- bl _swiclose
- bl wrap
- pop {pc}
- thumb_func_end _close
-
- thumb_func_start _exit
-_exit:
- mov r12, r3
- mov r3, r8
- push {r3}
- mov r3, r12
- movs r2, 0x18
- ldr r3, _080B664C
- adds r0, r2, 0
- adds r1, r3, 0
- swi 0xAB
- mov r8, r0
- pop {r3}
- mov r8, r3
- bx lr
- .align 2, 0
-_080B664C: .4byte 0x00020026
- thumb_func_end _exit
-
- thumb_func_start _kill
-_kill:
- mov r12, r3
- mov r3, r8
- push {r3}
- mov r3, r12
- movs r2, 0x18
- ldr r3, _080B666C
- adds r0, r2, 0
- adds r1, r3, 0
- swi 0xAB
- mov r8, r0
- pop {r3}
- mov r8, r3
- bx lr
- .align 2, 0
-_080B666C: .4byte 0x00020026
- thumb_func_end _kill
-
- thumb_func_start _getpid
-_getpid:
- movs r0, 0x1
- bx lr
- thumb_func_end _getpid
-
- thumb_func_start _sbrk
-_sbrk:
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r4, _080B66A4
- ldr r0, [r4]
- cmp r0, 0
- bne _080B6684
- ldr r0, _080B66A8
- str r0, [r4]
-_080B6684:
- ldr r5, [r4]
- adds r0, r5, r6
- cmp r0, sp
- bls _080B669A
- ldr r1, _080B66AC
- movs r0, 0x1
- movs r2, 0x20
- bl _write
- bl abort
-_080B669A:
- ldr r0, [r4]
- adds r0, r6
- str r0, [r4]
- adds r0, r5, 0
- pop {r4-r6,pc}
- .align 2, 0
-_080B66A4: .4byte heap_end
-_080B66A8: .4byte end
-_080B66AC: .4byte gUnknown_826FFDC
- thumb_func_end _sbrk
-
- thumb_func_start _fstat
-_fstat:
- movs r0, 0x80
- lsls r0, 6
- str r0, [r1, 0x4]
- movs r0, 0
- bx lr
- thumb_func_end _fstat
-
- thumb_func_start _link
-_link:
- movs r0, 0x1
- negs r0, r0
- bx lr
- thumb_func_end _link
-
- thumb_func_start _raise
-_raise:
- bx lr
- thumb_func_end _raise
-
- thumb_func_start _gettimeofday
-_gettimeofday:
- push {r4,r5,lr}
- adds r2, r0, 0
- adds r3, r1, 0
- cmp r2, 0
- beq _080B66E6
- movs r4, 0x11
- movs r5, 0
- adds r0, r4, 0
- adds r1, r5, 0
- swi 0xAB
- adds r5, r0, 0
- adds r4, r5, 0
- str r4, [r2]
- movs r0, 0
- str r0, [r2, 0x4]
-_080B66E6:
- cmp r3, 0
- beq _080B66F0
- movs r0, 0
- str r0, [r3]
- str r0, [r3, 0x4]
-_080B66F0:
- movs r0, 0
- pop {r4,r5,pc}
- thumb_func_end _gettimeofday
-
- thumb_func_start _times
-_times:
- push {r4,r5,lr}
- adds r2, r0, 0
- movs r4, 0x10
- movs r5, 0
- adds r0, r4, 0
- adds r1, r5, 0
- swi 0xAB
- adds r3, r0, 0
- cmp r2, 0
- beq _080B6712
- str r3, [r2]
- movs r0, 0
- str r0, [r2, 0x4]
- str r0, [r2, 0x8]
- str r0, [r2, 0xC]
-_080B6712:
- adds r0, r3, 0
- pop {r4,r5,pc}
- thumb_func_end _times
-
- .align 2, 0 @ don't pad with nop
- .section .text.writer
-
- thumb_func_start _write_r
-_write_r:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r2, r3, 0
- ldr r4, _080B6744
- movs r3, 0
- str r3, [r4]
- bl _write
- adds r1, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080B673E
- ldr r0, [r4]
- cmp r0, 0
- beq _080B673E
- str r0, [r5]
-_080B673E:
- adds r0, r1, 0
- pop {r4,r5,pc}
- .align 2, 0
-_080B6744: .4byte errno
- thumb_func_end _write_r
-
- .align 2, 0 @ don't pad with nop
- .section .text.mallocr_CALLOC
-
- thumb_func_start _calloc_r
-_calloc_r:
- push {r4,lr}
- muls r1, r2
- bl _malloc_r
- adds r4, r0, 0
- cmp r4, 0
- bne _080B675A
- movs r0, 0
- b _080B679E
-_080B675A:
- adds r0, r4, 0
- subs r0, 0x8
- ldr r0, [r0, 0x4]
- movs r1, 0x4
- negs r1, r1
- ands r0, r1
- subs r2, r0, 0x4
- cmp r2, 0x24
- bhi _080B6794
- adds r1, r4, 0
- cmp r2, 0x13
- bls _080B678A
- movs r0, 0
- stm r1!, {r0}
- str r0, [r4, 0x4]
- adds r1, 0x4
- cmp r2, 0x1B
- bls _080B678A
- stm r1!, {r0}
- stm r1!, {r0}
- cmp r2, 0x23
- bls _080B678A
- stm r1!, {r0}
- stm r1!, {r0}
-_080B678A:
- movs r0, 0
- stm r1!, {r0}
- stm r1!, {r0}
- str r0, [r1]
- b _080B679C
-_080B6794:
- adds r0, r4, 0
- movs r1, 0
- bl memset
-_080B679C:
- adds r0, r4, 0
-_080B679E:
- pop {r4,pc}
- thumb_func_end _calloc_r
-
- .align 2, 0 @ don't pad with nop
- .section .text.closer
-
- thumb_func_start _close_r
-_close_r:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r0, r1, 0
- ldr r4, _080B67C8
- movs r1, 0
- str r1, [r4]
- bl _close
- adds r1, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080B67C2
- ldr r0, [r4]
- cmp r0, 0
- beq _080B67C2
- str r0, [r5]
-_080B67C2:
- adds r0, r1, 0
- pop {r4,r5,pc}
- .align 2, 0
-_080B67C8: .4byte errno
- thumb_func_end _close_r
-
- .align 2, 0 @ don't pad with nop
- .section .text.errno
-
- thumb_func_start __errno
-__errno:
- ldr r0, _080B67D4
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_080B67D4: .4byte _impure_ptr
- thumb_func_end __errno
-
- .align 2, 0 @ don't pad with nop
- .section .text.fstatr
-
- thumb_func_start _fstat_r
-_fstat_r:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r0, r1, 0
- adds r1, r2, 0
- ldr r4, _080B6800
- movs r2, 0
- str r2, [r4]
- bl _fstat
- adds r1, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080B67FC
- ldr r0, [r4]
- cmp r0, 0
- beq _080B67FC
- str r0, [r5]
-_080B67FC:
- adds r0, r1, 0
- pop {r4,r5,pc}
- .align 2, 0
-_080B6800: .4byte errno
- thumb_func_end _fstat_r
-
- .align 2, 0 @ don't pad with nop
- .section .text.abort
-
- thumb_func_start abort
-abort:
- mov r12, r3
- mov r3, r8
- push {r3}
- mov r3, r12
- movs r2, 0x18
- ldr r3, _080B6820
- adds r0, r2, 0
- adds r1, r3, 0
- swi 0xAB
- mov r8, r0
- pop {r3}
- mov r8, r3
- bx lr
- .align 2, 0
-_080B6820: .4byte 0x00020022
- thumb_func_end abort
-
- .align 2, 0 @ don't pad with nop
- .section .text.libcfunc
-
- thumb_func_start isatty
-isatty:
- movs r0, 0x1
- bx lr
- thumb_func_end isatty
-
- thumb_func_start alarm
-alarm:
- bx lr
- thumb_func_end alarm
-
- .align 2, 0 @ don't pad with nop
- .section .text.lseekr
-
- thumb_func_start _lseek_r
-_lseek_r:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r2, r3, 0
- ldr r4, _080B6858
- movs r3, 0
- str r3, [r4]
- bl _lseek
- adds r1, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080B6852
- ldr r0, [r4]
- cmp r0, 0
- beq _080B6852
- str r0, [r5]
-_080B6852:
- adds r0, r1, 0
- pop {r4,r5,pc}
- .align 2, 0
-_080B6858: .4byte errno
- thumb_func_end _lseek_r
-
- .align 2, 0 @ don't pad with nop
- .section .text.readr
-
- thumb_func_start _read_r
-_read_r:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r2, r3, 0
- ldr r4, _080B6888
- movs r3, 0
- str r3, [r4]
- bl _read
- adds r1, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080B6882
- ldr r0, [r4]
- cmp r0, 0
- beq _080B6882
- str r0, [r5]
-_080B6882:
- adds r0, r1, 0
- pop {r4,r5,pc}
- .align 2, 0
-_080B6888: .4byte errno
- thumb_func_end _read_r
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/data/libc_data.s b/data/libc_data.s
deleted file mode 100644
index bf06edd..0000000
--- a/data/libc_data.s
+++ /dev/null
@@ -1,165 +0,0 @@
- .section .rodata
-
- .align 2, 0
- .global gUnknown_826FDE4
-gUnknown_826FDE4: @ 826FDE4
- .byte 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20
-
- .global gUnknown_826FDF4
-gUnknown_826FDF4: @ 826FDF4
- .byte 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30
-
- .align 2, 0
- .global gUnknown_826FE04
-gUnknown_826FE04: @ 826FE04
- .ascii "Inf"
-
- .align 2, 0
- .global gUnknown_826FE08
-gUnknown_826FE08: @ 826FE08
- .ascii "NaN"
-
- .align 2, 0
- .global gUnknown_826FE0C
-gUnknown_826FE0C: @ 826FE0C
- .ascii "0123456789abcdef"
- .space 4
-
- .global gUnknown_826FE20
-gUnknown_826FE20: @ 826FE20
- .ascii "(null)"
-
- .align 2, 0
- .global gUnknown_826FE28
-gUnknown_826FE28: @ 826FE28
- .ascii "0123456789ABCDEF"
- .space 4
-
- .global gUnknown_826FE3C
-gUnknown_826FE3C: @ 826FE3C
- .ascii "bug in vfprintf: bad base"
-
- .align 2, 0
- .global gUnknown_826FE58
-gUnknown_826FE58: @ 826FE58
- .ascii "0"
-
- .align 2, 0
- .global gUnknown_826FE5C
-gUnknown_826FE5C: @ 826FE5C
- .ascii "."
-
- .align 2, 0
- .global gUnknown_826FE60
-gUnknown_826FE60: @ 826FE60
- .ascii "Infinity"
-
- .space 4
- .global gUnknown_826FE6C
-gUnknown_826FE6C: @ 826FE6C
- .ascii "NaN"
-
- .align 2, 0
- .global gUnknown_826FE70
-gUnknown_826FE70: @ 826FE70
- .ascii "0"
- .align 2, 0
- .ascii "C"
- .align 2, 0
-
-@ locale
-
- .global lconv
-lconv: @ 826FE78
- .4byte gUnknown_826FEAC, gUnknown_826FEA8
- .4byte gUnknown_826FEA8, gUnknown_826FEA8
- .4byte gUnknown_826FEA8, gUnknown_826FEA8
- .4byte gUnknown_826FEA8, gUnknown_826FEA8
- .4byte gUnknown_826FEA8, gUnknown_826FEA8
- .4byte 0xffffffff, 0xffffffff
-
- .global gUnknown_826FEA8
-gUnknown_826FEA8: @ 826FEA8
- .ascii ""
-
- .space 4
- .global gUnknown_826FEAC
-gUnknown_826FEAC: @ 826FEAC
- .ascii "."
-
- .align 2, 0
- .global gUnknown_826FEB0
-gUnknown_826FEB0: @ 826FEB0
- .ascii "C"
-
-@ mprec
-
- .align 2, 0
- .global gUnknown_826FEB4
-gUnknown_826FEB4: @ 826FEB4
- .4byte 5
- .4byte 25
- .4byte 125
-
- .align 2, 0
- .global __mprec_tens
-__mprec_tens: @ 826FEC0
- .8byte 0x000000003ff00000 @ 1e0
- .8byte 0x0000000040240000 @ 1e1
- .8byte 0x0000000040590000 @ 1e2
- .8byte 0x00000000408f4000 @ 1e3
- .8byte 0x0000000040c38800 @ 1e4
- .8byte 0x0000000040f86a00 @ 1e5
- .8byte 0x00000000412e8480 @ 1e6
- .8byte 0x00000000416312d0 @ 1e7
- .8byte 0x000000004197d784 @ 1e8
- .8byte 0x0000000041cdcd65 @ 1e9
- .8byte 0x200000004202a05f @ 1e10
- .8byte 0xe800000042374876 @ 1e11
- .8byte 0xa2000000426d1a94 @ 1e12
- .8byte 0xe540000042a2309c @ 1e13
- .8byte 0x1e90000042d6bcc4 @ 1e14
- .8byte 0x26340000430c6bf5 @ 1e15
- .8byte 0x37e080004341c379 @ 1e16
- .8byte 0x85d8a00043763457 @ 1e17
- .8byte 0x674ec80043abc16d @ 1e18
- .8byte 0x60913d0043e158e4 @ 1e19
- .8byte 0x78b58c404415af1d @ 1e20
- .8byte 0xd6e2ef50444b1ae4 @ 1e21
- .8byte 0x064dd5924480f0cf @ 1e22
- .8byte 0xc7e14af644b52d02 @ 1e23
- .8byte 0x79d99db444ea7843 @ 1e24
-
- .align 2, 0
- .global __mprec_bigtens
-__mprec_bigtens: @ 826FF88
- .8byte 0x37e080004341c379 @ 1e16
- .8byte 0xb5056e174693b8b5 @ 1e32
- .8byte 0xe93ff9f54d384f03 @ 1e64
- .8byte 0xf9301d325a827748 @ 1e128
- .8byte 0x7f73bf3c75154fdd @ 1e256
-
- .align 2, 0
- .global __mprec_tinytens
-__mprec_tinytens:
- .8byte 0x97d889bc3c9cd2b2 @ 1e-16
- .8byte 0xd5a8a7333949f623 @ 1e-32
- .8byte 0x44f4a73d32a50ffd @ 1e-64
- .8byte 0xcf8c979d255bba08 @ 1e-128
- .8byte 0x64ac6f430ac80628 @ 1e-256
-
-@ syscalls
-
- .align 2, 0
- .global gUnknown_826FFD8
-gUnknown_826FFD8: @ 826FFD8
- .ascii ":tt"
- .byte 0
-
- .align 2, 0
- .global gUnknown_826FFDC
-gUnknown_826FFDC: @ 826FFDC
- .ascii "_sbrk: Heap and stack collision\n"
- .byte 0
-
- .align 2, 0 @ don't pad with nop
diff --git a/ld_script.txt b/ld_script.txt
index c5cdad9..e77cb9e 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -14,8 +14,18 @@ SECTIONS {
tools/agbcc/lib/libgcc.a:fp-bit.o(.bss);
. = ALIGN(4);
tools/agbcc/lib/libgcc.a:dp-bit.o(.bss);
- . = ALIGN(8);
+ . = ALIGN(4);
+ newlib/libc.a:syscalls.o(.bss);
+ . = ALIGN(16);
<EWRAM2>
+ . = ALIGN(4);
+ newlib/libc.a:impure.o(.data);
+ . = ALIGN(4);
+ newlib/libc.a:locale.o(.data);
+ . = ALIGN(4);
+ newlib/libc.a:mallocr_MALLOC.o(.data);
+ . = ALIGN(4);
+ gUnknown_203BC04 = .;
. = 0x40000;
}
@@ -75,7 +85,6 @@ SECTIONS {
tools/agbcc/lib/libgcc.a:dp-bit.o(.text);
tools/agbcc/lib/libgcc.a:_lshrdi3.o(.text);
tools/agbcc/lib/libgcc.a:_negdi2.o(.text);
- /*
newlib/libc.a:memcpy.o(.text);
newlib/libc.a:memset.o(.text);
newlib/libc.a:sprintf.o(.text);
@@ -115,46 +124,6 @@ SECTIONS {
newlib/libc.a:libcfunc.o(.text);
newlib/libc.a:lseekr.o(.text);
newlib/libc.a:readr.o(.text);
- */
- asm/libc.o(.text.memcpy);
- asm/libc.o(.text.memset);
- asm/libc.o(.text.sprintf);
- asm/libc.o(.text.strcat);
- asm/libc.o(.text.strcmp);
- asm/libc.o(.text.strcpy);
- asm/libc.o(.text.strlen);
- asm/libc.o(.text.strncpy);
- asm/libc.o(.text.vfprintf);
- asm/libc.o(.text.vsprintf);
- asm/libc.o(.text.wsetup);
- asm/libc.o(.text.dtoa);
- asm/libc.o(.text.fflush);
- asm/libc.o(.text.findfp);
- asm/libc.o(.text.mallocr_FREE);
- asm/libc.o(.text.fvwrite);
- asm/libc.o(.text.fwalk);
- asm/libc.o(.text.locale);
- asm/libc.o(.text.makebuf);
- asm/libc.o(.text.mallocr_MALLOC);
- asm/libc.o(.text.mbtowc_r);
- asm/libc.o(.text.memchr);
- asm/libc.o(.text.memmove);
- asm/libc.o(.text.mlock);
- asm/libc.o(.text.mprec);
- asm/libc.o(.text.s_isinf);
- asm/libc.o(.text.s_isnan);
- asm/libc.o(.text.sbrkr);
- asm/libc.o(.text.stdio);
- asm/libc.o(.text.syscalls);
- asm/libc.o(.text.writer);
- asm/libc.o(.text.mallocr_CALLOC);
- asm/libc.o(.text.closer);
- asm/libc.o(.text.errno);
- asm/libc.o(.text.fstatr);
- asm/libc.o(.text.abort);
- asm/libc.o(.text.libcfunc);
- asm/libc.o(.text.lseekr);
- asm/libc.o(.text.readr);
tools/agbcc/lib/libgcc.a:_udivsi3.o(.text);
} =0
@@ -168,15 +137,21 @@ SECTIONS {
src/agb_flash_1m.o(.rodata);
src/agb_flash_mx.o(.rodata);
src/agb_flash_le.o(.rodata);
- /*
+ . = ALIGN(4);
newlib/libc.a:sprintf.o(.rodata);
+ . = ALIGN(4);
newlib/libc.a:vfprintf.o(.rodata);
+ . = ALIGN(4);
newlib/libc.a:dtoa.o(.rodata);
+ . = ALIGN(4);
+ newlib/libc.a:impure.o(.rodata);
+ . = ALIGN(4);
newlib/libc.a:locale.o(.rodata);
+ . = ALIGN(4);
newlib/libc.a:mprec.o(.rodata);
+ . = ALIGN(4);
newlib/libc.a:syscalls.o(.rodata);
- */
- data/libc_data.o(.rodata);
+ . = ALIGN(4);
data/data_8270000.o(.rodata);
} =0
diff --git a/newlib/Makefile b/newlib/Makefile
index b0157c5..f54e28f 100644
--- a/newlib/Makefile
+++ b/newlib/Makefile
@@ -1,11 +1,11 @@
AS := $(DEVKITARM)/bin/arm-none-eabi-as
ASFLAGS := -mcpu=arm7tdmi
-CC1 := ../tools/agbcc/bin/agbcc
-override CFLAGS += -O2 -fhex-asm
+CC1 := ../tools/agbcc/bin/old_agbcc
+override CFLAGS += -O2 -fhex-asm -fno-builtin
CPP := cpp
-CPPFLAGS := -I ../tools/agbcc/include -I libc/include -iquote libm/common -D__thumb__ -D__GNUC__ -nostdinc -undef
+CPPFLAGS := -I ../tools/agbcc/include -I libc/include -iquote libm/common -D__thumb__ -D__GNUC__ -DARM_RDI_MONITOR -undef -nostdinc
AR := ar
ARFLAGS := "-rc"
diff --git a/sym_ewram2.txt b/sym_ewram2.txt
index 2cb7d24..ad9521d 100644
--- a/sym_ewram2.txt
+++ b/sym_ewram2.txt
@@ -1,21 +1,5 @@
.align 2
- .include "newlib/libc.a:syscalls.o"
-heap_end: @ 2039E18
- .space 0x4
-
-monitor_stdin: @ 2039E1C
- .space 0x4
-
-monitor_stdout: @ 2039E20
- .space 0x4
-
-monitor_stderr: @ 2039E24
- .space 0x4
-
-openfiles: @ 2039E28
- .space 0xA8
-
gUnknown_2039ED0: @ 2039ED0
.space 0xFB0
@@ -667,43 +651,4 @@ gUnknown_203B4B4: @ 203B4B4
.space 0x4
gUnknown_203B4B8: @ 203B4B8
- .space 0x2F0
-
-@ libc
- /*
- .include "newlib/libc.a:impure.o"
- .include "newlib/libc.a:locale.o"
- .include "newlib/libc.a:mallocr_MALLOC.o"
- */
-
-_impure_ptr: @ 203B7A8
.space 0x4
-
-__mb_cur_max: @ 203B7AC
- .space 0x14
-
-@ libc:stdlib/mallocr_MALLOC
-
-__malloc_av_: @ 203B7C0
- .space 0x408
-
-__malloc_trim_threshold: @ 203BBC8
- .space 0x4
-
-__malloc_top_pad: @ 203BBCC
- .space 0x4
-
-__malloc_sbrk_base: @ 203BBD0
- .space 0x4
-
-__malloc_max_sbrked_mem: @ 203BBD4
- .space 0x4
-
-__malloc_max_total_mem: @ 203BBD8
- .space 0x4
-
-__malloc_current_mallinfo: @ 203BBDC
- .space 0x28
-
-
-gUnknown_203BC04: @ 203BC04 @ main